聊聊操作系统设计

简介:

我关注操作系统已经好长时间了,其实这个领域有很多新鲜事,并不像人们认为的那样没有做应用有趣,我甚至认为设计操作系统是一种艺术,别看就那几项功能,它的设计难度要远高于一般的应用。

我认为设计操作系统要将操作系统作为一个主体看待而不是将它看做被设计的对象,设计者要认为自己设计的东西是活的。最终是操作系统来管理一切事物而不是设计操作系统的人,因此不要把操作系统当做客体,一定把它作为主体。前面的两篇文章谈到了linux多任务和多用户的一些要点,其实是操作系统的设计者设计出这一切了吗?不是,而是在操作系统被定位后必然的结果,比如unix/linux最开始就不是让普通用户用的,当然linux可能是,但是当时除了unix又有谁可以模仿呢?既然不是为普通用户设计的,那么就可以按照简洁,统一的原则来设计了,因为只要不是设计用户接口都是可以找到很艺术的方案的,毕竟用户是善变的,是难缠的。几个大的原则可以让unix哲学历经几十年依然闪亮,可见当时设计者的才华。在一款操作系统被设计出来后,一定要站在此操作系统的立场上看一下进程,内存,文件等等操作系统管理的对象,将灵魂注入作品,这个作品就活了,unix就包含着设计者的灵魂。

另一个要点就是寻找一个最简单的基本原则,比如狭义相对论的基本原则也就是那几点。在工程学上也是如此,往往设计得好的基本原则可以带来很多的好处,你可以看到unix/linux的fork模型多么简单,但是它们的分时调度性能和进程管理性能是多么得好,第一,越简单越好;其次,越直观越好,直观是给人看的,但是人做的事不一定就是对的,简单才是这个世界的本质。



 本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1274153

相关文章
|
8月前
|
存储 缓存 Unix
第九章 操作系统接口【操作系统】2
第九章 操作系统接口【操作系统】2
118 1
|
8月前
|
自然语言处理 安全 Windows
第九章 操作系统接口【操作系统】1
第九章 操作系统接口【操作系统】1
125 1
|
1月前
|
Linux Android开发 iOS开发
操作系统的作用与常见操作系统介绍
操作系统的作用与常见操作系统介绍
|
7月前
|
人工智能 JavaScript 前端开发
「操作系统」1. 基础
「操作系统」1. 基础
|
3月前
|
存储 算法
操作系统:虚拟存储管理技术
操作系统:虚拟存储管理技术
43 0
|
4月前
|
存储 编译器 Linux
操作系统相关问题——应用程序和操作系统怎么配合
应用程序和操作系统都是软件, CPU会将它们一视同仁,甚至CPU不知道自己在执行的程序是操作系统还是一般应用软件。CPU只知道去cs:ip寄存器中指向的内存取出指令并执行,它不知道什么是操作系统。
|
4月前
|
调度 Windows
【操作系统】—操作系统的概念 目标和功能
【操作系统】—操作系统的概念 目标和功能
|
8月前
|
Unix Linux API
第九章 操作系统接口【操作系统】3
第九章 操作系统接口【操作系统】3
102 1
|
算法 安全 调度
操作系统学习(二):浅析多级反馈队列MLFQ
在上篇文章操作系统学习(一):浅析操作系统进程调度算法中讲到,在一个通用的操作系统中,操作系统通常对每个作业的长度知之甚少。因此,我们如何建立一个没有这种先验知识的 SJF/STCF?更进一步,我们如何能够将已经看到的一些想法与 RR 调度程序结合起来,以便响应时间也变得很好?没有工作长度的先验(priori)知识,如何设计一个能同时减少响应时间和周转时间的调度程序? 多级反馈队列是用历史经验预测未来的一个典型的例子,操作系统中有很多地方采用了这种技术。
198 0
操作系统学习(二):浅析多级反馈队列MLFQ