现在的位置: 首页 > 综合 > 正文

读书笔记之Linux操作系统

2013年10月09日 ⁄ 综合 ⁄ 共 1280字 ⁄ 字号 评论关闭

      去年年末的时候我在卓越买了一本《现代操作系统》,颇厚的。寒假的时候看完了前面的9章,由于看得不是很细,也没有人指导,所以也只是了解了操作系统的皮毛。返校后,我开始看第10章:"实例研究1:Linux"。现在就说说我阅读这一章的收获。

      前面几章讲的都是操作系统的实现理论,而这一章讲的是实例,理解起来会轻松一点。从Linux的历史以及UNIX与Linux的演化开始讨论,然后给出Linux的概述。接着是具体的各部分重要内容,包括进程、内存管理、I/O、文件系统。对于每个主题,先讨论基本概念,然后是系统调用,最后讨论实现机制。

      历史部分概括起来就是,最初版本UNIX由Ken Thompson写出,然后Thompson连同Bell实验室的同事对UNIX进行了升级完善,出现了可移植的UNIX,接着加州大学伯克利分校发展了UNIX第6版,开发出了BSD。为了促进UNIX的发展,在IEEE的主导下发起了POSIX项目,制定了名为1003.1的标准。由于UNIX被发展得越来越庞大复杂,越来越难以学习、理解,一个叫MINIX的微内核的类UNIX系统被开发了出来。在MINIX的基础上,Linus Torvalds编写出了最初的Linux,然后Linux一直发展至今。

      进程部分。基本概念包括,守护进程、父进程、子进程、进程标识符(PID)、管道、信号。相关的系统调用,fork系统调用是Linux中创建一个新进程的主要方式;waitpid由父进程在等待子进程结束的过程中调用;exec由子进程调用,执行用户命令。在Linux系统内核中,进程通过数据结构task_struct被表示成任务。Linux系统调度算法使用一个重要的数据结构——调度队列。

      内存管理部分。基本概念包括,地址空间、代码段、数据段、栈段。相关的系统调用,brk用来制定数据段的大小;mmap和unmap用来控制内存映射文件。分配物理内存页框的主要机制是页面分配器,它使用了著名的伙伴算法。

      I/O部分。基本概念包括,特殊文件、块特殊文件、字符特殊文件、主设备号。相关系统调用,cfsetospeed设置输出速率、cfsetispeed设置输入速率、tcsetattr设置属性、tcgetattr获取属性。在Linux中I/O是通过一系列的设备驱动来实现的,每个设备类型对应一个设备驱动。

      文件系统部分。基本概念包括,绝对路径、相对路径、工作目录、加锁、共享锁、互斥锁。相关的系统调用,creat创建文件;open打开文件进行读写;close关闭已打开的文件。虚拟文件系统(VFS)对高层进程和应用程序隐藏了Linux支持的所有文件系统之间的区别,以及文件系统是存储在本地设备,还是要通过网络访问的远程设备。NFS:网络文件系统(一看到NFS我就想起了极品飞车Need For Speed,哇哈哈)作用是将不同计算机上的不同文件系统连接成一个逻辑整体。

      学习总是逐步深入的,这次先是了解了操作系统的表面的东西,再次阅读学习时就会慢慢深入了。

抱歉!评论已关闭.