分享

深入理解linux操作系统知识

 拿破仑小子 2018-03-27

1.UNIX系统模型

深入理解linux操作系统知识

内核是操作系统的核心,所以操作系统也被称为内核。Shell本意为“壳”,是操作系统最外面的一层。

2.通过以下三个问题来理解系统编程:

(1)它能做什么?(分析程序)

(2)它是如何实现的?(学习系统调用)

(3)能不能自己编写一个?(编程实现)

例如:who命令的编写

1)首先了解who的作用:显示当前系统中已登录的用户信息;

2)Who命令如何工作:

查看who的联机帮助:(所输入的命令及得到的结果因Linux版本而异,本实验环境为Ubuntu14.04)

man who

深入理解linux操作系统知识

深入理解linux操作系统知识

深入理解linux操作系统知识

由此得知,已登录用户的信息存放在/var/run/utmp,继续查看联机帮助:

man -k utmp

man 5 utmp

深入理解linux操作系统知识

即已经得到我们想要的结果,接下来的工作就是打开utmp,然后读取所需字段(具体实现如下)。由于关乎文件的操作,所以需要用到的系统调用及函数大致有:open,read,lseek,close,creat,write。

3)编写一个能实现who命令的函数。

总结:

1.对于cp命令,以及第三章中ls命令等的编写,都遵循上述三个问题来实现,通过对这三个问题的解答,来学习目录和文件的类型与属性。

2.对目录的操作:opendir,readdir,closedir

3.stat系统调用

功能:得到文件信息

深入理解linux操作系统知识

stat把有path所指的文件的信息复制到buf所致的结构中。例如:

深入理解linux操作系统知识

这是一个实现find命令的部分函数,它将指定大小的文件的文件名输出到屏幕,即需用到文件大小,就必须使用stat来获取文件的信息,然后判断该文件的大小是否符合要求。

stat获取的文件信息包括:

深入理解linux操作系统知识

即我们可以输出我们想输出的文件的任意信息。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多