操作系统历史回顾

简介:

版权信息 介绍
这是这一系列文章的第一篇,在今后不断推出的文章中,我将介绍一个完整的类UNIX内核、库还有一部分编译器的开发方法、工具使用和相关理论,只需要读者熟悉操作Windows或者Linux操作系统,并且拥有简单的C语言知识即可。不过我在这里提前声明,如果您是一位很认真对待OS开发的朋友,期待通过阅读、学习本系列文章从而重新开发一个取代现有系统的新OS,那么我推荐您就不需要再继续看下去了,那样只会浪费您的生命,程序界还有太多值得探索的领域。目前为止我们基于商业的选择Windows和免费的选择Linux能够顺利的完成我们日常的工作,所以尽量去完善这些现有系统,而千万不要只是为了取代别人而去重新发明车轮(Re-inventing the wheel)。当然,即使您是认真的开发者,如果您继续阅读我的文章我也会很高兴,并且很愿意与你们探讨相关的有用技术或者提供帮助。
在本系列文章中,我将尽量避免过多的使用未说明的术语,以便让读者能够从简单、深入浅出的方法追随整个开发旅程。其实这里涉及到一个哲学问题,那就是我们是在学习时更有幻想和创造力,还是在学会以后更有创造力。这是一个很难回答的问题,因为以我个人为例,当我学习一个全新的知识领域的时候,我会在阅读前人所攥写的精美篇章时,突然迸发出许多相关领域的知识片段,出现在眼前,甚至想出了许多比作者所描述的传统思路更加好的解决方案,虽然由于缺乏全面的理论基础而不知道自己创想的方案是否能够真正实现,但是逻辑上清晰的知道,自己想到的其实更简单、方便一些。然而对于过去传统教育中学过的知识,我却很少充满创想,往往只会追随前人所固有的思维模式去重复解决各个问题,不能开创出独特的解决方法。
codemastor AT gmail DOT com
UNIX 发展史
OS/360 是面向当时IBM提出的大型计算机而开发的,其在20世纪60年代初开始开发,到1964年正式发布,作为了第三代计算机技术的见证。记得曾经读过《人月神话》中,作为 OS/360 项目的开发主持者之一的 Frederic P. Brooks Jr. 说到,当时 OS/360 项目曾经红极一时,在最高峰时曾经有一万人同时在写代码。作为一个庞大的软件项目的同时,其背后是一个更加庞大而复杂的管理项目,因此我推荐读者有兴趣的可以去读一读《人月神话》,这本书也成为了后来许多软件工程学的思想的主要来源。OS/360后来虽然并不成功,也没有延续至今,但其为后来的许许多多由商业公司组办的OS开发项目提供了充分的技术基础,这些受到启发的商业OS项目中就包含Multics和UNIX操作系统。
贝尔实验室曾经参与Multics开发的两名技术人员 Thompson 和 Ritchie 在不经意中,由于想运行一个著名的叫做"Star Trek"的游戏而开始编在DEC的PDP计算机上利用Multics的一些概念和设计开发一个小型的操作系统,最开始是全部用汇编语言编写的。后来由于这个操作系统概念简单、使用方便,获得了大量应用,两名作者为了更有效的管理和移植代码,发明了一种基于脚本的自动汇编代码生成工具,最后演变成了C语言编译器。由于C语言的简单、功能强大和UNIX的简单、功能丰富的设计,最后UNIX获得了大量成功,并且最后在贝尔实验室完成了 UNIX V6 和 UNIX V7 版本。基于V7版本,最后发展出了当今的各种商业 UNIX,UNIX V6、V7 的代码以及注释可以在这里下载到,对于OS开发学习者是一笔不小的财富:
http://download.csdn.net/source/346718
  1. 一个完整的操作系统应当包含一个内核、编译器、高级语言编译器、标准库、驱动程序(服务)、应用程序;
  2. 每一个应用程序应当享有相互独立的内存区域,称为进程,在相同的内存中,应当可以创建子程序,并且各个子进程可以并发同时的运行,分享同一个处理器(线程);
  3. 操作系统应当提出用户的概念,用户分享一系列基础的程序、数据、配置,同时每一个用户需要享有自己独立受保护的程序、数据以及配置;
  4. 一切都是文件,无论是硬盘区域、数据、设备、内核设施(如管道、消息)、甚至是远程的ftp、http目录,并且一切都可以通过文件的标准接口进行操作(open、close、lseek、fcntl、read、write等);
  5. 对于磁盘数据应当以树形数据结构进行管理,提出节点(文件、目录、特殊文件)的概念;
  6. 设备内部的存储控件应当可以挂载到当前的磁盘某节点上(比如将ISO文件装到loopback设备中,然后将loopback挂载到磁盘上,然后就可以像访问本地磁盘一样的访问ISO光盘镜像上的文件);
Microsoft 公司自从1985年成立以后,就 从Windows 3.1 系统开始花大量资金注重GUI(Graphical User Interface)图形用户界面操作系统的开发,后来延续发展出了 Windows 95、Windows 98、Windows ME、Windows NT、Windows 2000 一直到最成功的 Windows XP 操作系统。我们先不评价相比UNIX操作系统,它在技术上有多么欠缺、实现上的过于复杂或者不易使用,但是它简单易用、所见即所得的图形界面最终让比尔盖茨实现了他当年的理想”每个人都拥有一台电脑“,同时让计算机技术如今得到了大量的普及。作为一个受惠者,没有微软的Windows操作系统就没有今天我们人人都有的个人电脑和由于产业规模所实现的如此低廉的造价,我们需要向微软致敬,向比尔盖茨致敬。
 





本文转自 xkdcc 51CTO博客,原文链接:http://blog.51cto.com/brantc/210829,如需转载请自行联系原作者
目录
相关文章
|
7月前
|
人工智能 JavaScript 前端开发
「操作系统」1. 基础
「操作系统」1. 基础
|
4月前
|
人机交互 iOS开发 MacOS
【操作系统】—操作系统的发展与分类
【操作系统】—操作系统的发展与分类
|
4月前
|
调度 Windows
【操作系统】—操作系统的概念 目标和功能
【操作系统】—操作系统的概念 目标和功能
|
算法 人机交互
【操作系统】1.2 操作系统的发展与分类
【操作系统】1.2 操作系统的发展与分类
【操作系统】1.2 操作系统的发展与分类
|
调度 C语言 Python
【操作系统】1.1.1 操作系统的概念、目标和功能
【操作系统】1.1.1 操作系统的概念、目标和功能
【操作系统】1.1.1 操作系统的概念、目标和功能
|
存储 算法 安全
【操作系统】操作系统综述(一)
操作系统的重要性不言而喻,学习操作系统对我们理解计算机的工作流程是非常有利的,也很有利于我们学习掌握其他语言,因为语言中的很多概念都是直接和操作系统相关的,学好操作系统就是基础中的基础,所以,很有必要好好掌握操作系统这门基础知识。
264 0
【操作系统】操作系统综述(一)
|
Linux Android开发 Windows
不同操作系统之间的软件管理理念的分析_学习笔记
时间:2017.11.30作者:李强参考:man,info,magedu讲义,神奇的internet声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好。
884 0