《Linux/UNIX系统编程手册》读书笔记1

写在前面的话: 一切伟大的行动和思想都有一个眇乎小哉的开始。 第1章 历史和标准 看第1章题目就可以知道本章要讲的是历史和标准。我们会问,历史是讲谁的历史? 1.UNIX和C语言的历史 这段历史已经听过很多了,要注意它是AT&T公司整出来的,其中C语言完全是为了实现UNIX内核及相关软件而开发的。注意其中的前后关系,UNIX一开始是用汇编语言写的,开发C语言是为了重写UNIX。书中有一段话:“C语言的设计理念和设计需求出自于几位程序员的构思,他们的目的很单纯:为实现UNIX内核及相关软件而开发一种高层语言。像UNIX操作系统本身一样,C语言由专业程序员设计而为己用。”这让我非常佩服那个年代老美那帮程序员,不光是技术,还有他们那种纯粹。 UNIX第七版分裂为了两大分支:BSD(伯克利软件发布)和System V。由来我就不说了,自己看书,这里只要知道它们是UNIX系统的两个衍生系统,BSD是加州大学伯克利分校搞出来的,而System V是AT&T的。 2.linux的历史 讲Linux历史前要先了解伟大的GNU项目。UNIX刚问世时是不开源的,要花美刀才能用,Richard Stallman致力于开发出一套完整而又可*获取,包含内核以及所有相关软件包的类UNIX系统,于是发起了GNU项目(“GNU's not UNIX”)。 GNU项目制定了GNU GPL(通用公共许可协议),以GPL发布的软件必须开源,可以修改,但修改后仍要继续开源,哈哈,只要一用我的东西,就避免不了打上我的烙印!就这样,GUN项目开发了大量能够在UNIX上运行的软件,Emacs文本编辑器,GCC,bash shell都是这个时候的成果,但是唯独没有自己的内核。 这个时候,Linus Torvalds整出了Linux,据说他那个时候还是个在读大学生。好了,众望所归,GNU项目完美了,一整套Linux操作系统就这样诞生了。 3.标准化 对这一小节进行归纳,总的来说,讲了三个标准: 1)C语言标准:C99 2)操作系统接口标准:POSIX标准和SUS标准 3)Linux系统标准:LSB标准 具体每个标准的由来不多说,需要注意的是在操作系统接口标准中包括了很多实时性扩展,如:文件同步、异步IO、进程调度、高精度时钟和定时器、进程间通信,这些也是本书主要讲的东西。 诚如作者Michael Kerrisk在前言中说,他把兴趣集中在了内核和用户控件的“分水岭”——Linux编程接口上,本书介绍了大量的API接口。博主正奋战在学习嵌入式的道路上,前段时间刚刚接触了I/O、进程和网络编程,直到见到本书,才明白自己学的多么肤浅——居然有人能将API接口写了这么厚两本书。于是立志吃透本书,把自己的读书笔记分享出来,望诸位指教!