从事软件开发尤其是嵌入式软件开发的人,都无可避免的与操作系统打交道。说起操作系统,大家最耳熟能详的恐怕windows莫属,但,其实世界上操作系统的种类很多,如:Unix类、Linux类、VxWorks、ucos、Ecos、OSE等等,而windows只是特定于pc领域,符合“我国国情”的最大的操作系统。所谓符合我国国情是指:早期,我们的盗版事业比较红火,而微软也聪明的利用了这一点,不限制大家盗版windows,加之windows的图形界面确实很方便,符合我们大众的需求,不需要了解太多计算机知识就可以轻松玩电脑,就这样,windows就像洪水一样迅速蔓延到我们大众的家庭之中。使得大家一提操作系统首先想起来的就是windows,市场策略之成功,可以让我们想到“今年过节不收礼,要收礼就收脑白金”;其实,前面的计划只是微软整体入华计划的一部分,也就是第一步,第二步就是:一旦第一步成功,大家都离不开windows的时候,就启动了“收费”的这步计划。可是,微软低估了我国人民的意志,前些年试着收费,但是,效果出奇的不理想,我们就好像什么事情也没有发生过,照样用盗版,破解版,使得微软第二计划失败。前面说多了,回到主题上来,我们主要研究的是linux,linux也是一种操作系统(类unix操作系统),这里反反复复提到了操作系统的概念,到底什么是操作系统?
百度百科的解释:“操作系统是管理硬件与资源的,同时也是计算机系统的与基石”。看起来有点拗口,其实说白了:操作系统就是一个软件程序,这个软件程序的目的是为了让用户更方便的使用计算机,以人们容易理解的手段或形式来给人们提供服务,让人们的计算机使用起来更方便、更容易。那操作系统能够提供哪些服务呢?这些服务的基础又是什么呢?答:硬件。操作系统所能够提供的一切服务都以计算机的硬件配置相关,如:我的计算机配置了硬件,操作系统就能让我保存程序;提供了网卡,操作系统就可以让我上网;等等。那么,能不能没有操作系统呢?答:能。在计算机发展的很早期,是没有操作系统的,一切对计算机的操作都需要程序员自己来写驱动程序,自己来操作。注意,这里用的是程序员,而没有用“用户”,是因为那时候,计算机还没有普及,当然,其中重要的原因之一是价格太昂贵,另外,还有一个很重要的原因就是对“用户”的要求特别高,你必须得是专业人士,得懂得计算机语言,会编程,这样的人毕竟那个时候太少了,而且,即使是专业人士,使用起来也很麻烦,你既得懂硬件,又得懂软件,人力成本太高,而且,使用起来也太麻烦。在这样的情况下,操作系统应运而生了!想想今天我们使用起来有多么得“so easy”,不管你是不是专业人士,只要拿起鼠标,就可以上网,不需要了解太多的专业知识。
其实,我的观点一直都是,把专业的知识和内容用最通俗易懂的方式讲出来,这样才有更大的意义,才能让更多的人接触和理解操作系统,才能消除知识的屏障。回到操作系统上来,我们自己想想,可以发现很多的内容都和我们人类社会有相同之处,毕竟操作系统也是人写出来的,总是,脱离不了人的思维。现在我拿人类社会制度来做个比喻,更利于理解,声明一点,在这里我们刨除一切政治因素和观点,只从技术和可观的额角度描述:
操作系统分为用户态和内核态,内核态又叫kernel,主要就是前面我们说操作系统的概念。若是这样的话,大家有没有发现操作系统和我们人类社会的那一部分很相像?对了,是政府。政府的信条是:为人民服务,而操作系统的信条:为用户服务;政府属于特权阶层,而操作系统又位于特权级别。政府掌握着国家的关键资源(如煤矿、石油、银行等),通过特定的政府部门,如:企事业单位、国企等为人民提供服务。而操作系统掌握着关键的硬件资源,如:内存、cpu等,通过特定的系统调用来为用户提供服务。政府部门通常是被动的,等待大家主动到政府部门办事情,毕竟政府部门人员是少数,而且,从效率的关键来看,这样也是合理的,否则,政府部门怎么知道有多少人需要办公司,什么时候办等等。操作系统也相对来说也被动的,等待着用户主动发送请求,来为你服务。现在政府也在积极出台各种措施来改进工作效率,广纳百姓的意见,正如,操作系统也提供一些驱动程序模块(例如linux的ko模块)的形式,让用户或驱动程序员可以动态的注册自己的一些想法和措施到操作系统中,以便更好的为用户服务。我们的地球村有很多国家,也有很多政府,大家都在以自己额方式来管理着自己的国家和人民。正如,操作系统领域有很多操作系统一样,至于你用哪个操作系统,根据你的情况而定等等。
这样的例子太多了,说到这里,大家应当对操作系统有了一个基本概念了吧,希望从这里能够让你对操作系统有一个基本的了解,让您对操作系统有兴趣。我的计划是后面将不定期的以通俗的方式,以自己的视角,一步步的将操作系统的基本内容呈现给大家,当然,主要是针对linux。最后,特别感谢大家能够看完的博客,多谢:)
阅读(3621) | 评论(2) | 转发(0) |