前三章:主要讲解了,unix的历史,以及与其他操作系统的不同之处
第四章:模块性-->保持清晰,保持简洁。
1:模块化的首要特质就是封装,不要过多的披露自身的细节,不胡乱共享全局数据,不直接调用其他模块的实现码。
2:尽量保持正交性,各个功能独立,互不影响。比如:调节显示器对比度,不会影响亮度,调节色彩,不会影响对比度。(改变属性有且只有一个方法,其他都是调用这个方法)
3:重构代码,尽量在功能完成之后进行重构
4:自顶向下:从抽象到具体。
自底向上:从具体到抽象。
软件设计都会用到这2中方式,或者同时一起用。一起用的时候,中间需要一个衔接层。也就是胶合层,胶合层应该尽量的薄,不然容易产生bug
第五章:文本-->好协议产生好实践
1:主要讲解了,unix文本的一些标准。
2:介绍了各种协议的格式。
第六章:透明性
。。。
第七章:多道程序设计-->分离进程为独立的功能
1.生成多个进程,分工完成特定的功能,提高效率。
2.管道依赖于没个程序都有的:标准输出和输入。并且具有单向性。
3.信号,套接字也可以用与进程间通信
4.共享内存用于进程间通信。
5.线程提高了编程复杂度,由于共享了全局内存,使得地址空间管理和临界区竞争变得相当困难。尽管创建开销小,上下文切换开支同样也小。但是共享数据加锁,同样开销也很大,而且还容易造成死锁。