你好,
复制的啊:
(还不知道有这样的书啊)呵呵
在本书的第七篇 (第22章) ,作者概括性地介绍了操作系统设计的10条哲学原理,它们是:
第1条哲学原理:层次架构。操作系统的功能分为多个模块,并按层次分解。下面一层向上面一层提供功能,而上面一层只能对直接下属进行控制。采用层次结构不仅使得操作系统的构造过程容易,也因为符合人类的习惯而更加易于理解,从而使操作系统结构清晰,节省开发操作系统的成本。
第2条哲学原理:没有对错。作者认为:操作系统本身并无对错之分,只有好坏之分。就像我们不能说Windows是对的,UNIX是错的。我们只能说,Windows更容易使用,而UNIX不太好使用而已。因此,在设计操作系统时,只要达到功能、效率、公平、正确的平衡即可。例如,操作系统进程调度策略有很多,而每种调度策略有其适用的场景。我们不能说“时间片轮转是对的,而优先级调度是错误的”。
第3条哲学原理:懒人哲学。以UNIX操作系统里面fork系统调用的实现为例,作者介绍了在操作系统设计中懒人哲学的应用:fork系统调用中有时需要进行父子进程地址空间的复制,但在设计中“不到万不得已不复制”。这在计算机术语中称为懒惰或延迟的复制。懒人哲学的合理性在于提前将事情做掉也许是一种浪费。
第4条哲学原理:让困于人。以文件系统为例,作者指出:对于操作系统来说,它需要保证自己的正确性,而文件夹对于操作系统的文件系统的正常运转至关重要,因此,文件夹必须保持不能出现问题,操作系统会使用各种原语操作保证文件系统的一致性。而用户文件的一致与否并不影响操作系统本身的运行。虽然用户文件的毁坏有可能激怒用户,但这不是操作系统有义务管的事情。这种哲学就是“让困于人”。
第5条哲学原理:留有余地。例如,文件系统目录夹的记录里面通常都有一部分所谓的保留空间,如DOS目录夹记录里面就有10个字节的保留空间,而事实上,这10个保留字在Windows 98的文件系统里面就得到了利用。如果没有这些保留字,将不得不设计全新的系统而导致无法兼容。
第6条哲学原理:子虚乌有。操作系统的目的是服务上层的应用程序和用户,用户要什么就提供什么。而提供的这种东西虽然在用户看来实实在在,但实际上都是子虚乌有。例如,在操作系统里面,用户看到的内存是一个非常大 (其实是与磁盘一样大) ,速度无限快 (其实是与缓存一样快) 。但实际上,我们的物理内存可能只不过 4G,速度也只有缓存的十分之一。
第7条哲学原理:时空转换。以页表的实现为例。由于页表的尺寸通常太大,占用内存过多,便将页表分级,只保留一部分页表在内存,而其他部分放置于磁盘上。这样,页表所占空间大为减少,但付出的代价就是时间成本。
第8条哲学原理:策机分离。立法就是策略,执法就是实现机制。立法和执法的分离就是所谓的“策机分离”哲学。作者认为,操作系统里面的策机分离主要是为了实现的灵活性。比如“调度算法参数化”,算法在内核里,参数可以由用户指定。又例如,在程序设计领域,对界面的设计和对界面的实现是分开的;在计算机安全领域,对安全标准的设计和安全设计的实现是分开的。
第9条哲学原理:简单为美。作者指出:在数学领域有个不成文的共识:“如果一个问题有多个数字表示,那么最简单的表示通常是正确的。”在操作系统设计中,文件存储的方式有网状组织、树状组织、记录流、数据块流和字节流等各种选择,而现代操作系统选择的都是最简单的字节流。
第10条哲学原理:适可而止。作者认为,第10条哲学原理是用来修正前面的9条原理的。即在前面9条原理的贯彻过程中,要保持一个度,适可而止。例如,“简单为美”但不能过于简单。正如爱因斯坦所言:“一切都应该尽可能简单,但没有更简单”。
是操作系统哲学原理吗,这本书真他M。。。。。不想说了