通过Linux理解操作系统(一):概述

通过Linux理解操作系统(一):概述

通过Linux理解操作系统(一):概述

用了那么多年电脑,操作系统从WinXP,Vista, 再到Win7, 然后是现在用的Ubuntu,这么长的时间里,一直没有搞明白这操作系统是个什么东西,为什么这么神奇,只要点一点,按一按,那些一块一块的硬件就可以完成我们的工作。直到学了操作系统这门课程,才开始有点朦朦胧胧的理解,最近又看了一些linux系统设计的资料,觉得有些领悟,所以写出来跟大家分享一下。

先声明,本人不是linux技术极客,所以本文不会讲一些很酷的linux使用技术,也不会讲一些很深入的linux内核分析,这些都有相应的书籍和资料可以学习,比如鸟哥的linux私房菜和Linux内核源码剖析,我只是希望通过linux这样一个开源的操作系统实例来帮助像我一样的菜鸟们理解操作系统这个东西,更多地是从系统本身的设计,数据结构,算法,代码来讲,如何实现了I/O,进程管理,内存管理这些东西,有讲错的地方请指正或者补充。(还有请轻喷~)

1、操作系统究竟是个神马东西

操作系统 (英语:Operating System,简称OS )是管理计算机 硬件与软件资源的计算机程序 ,同时也是计算机系统的内核与基石。 操作系统需要处理如管理与配置内存 、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。 操作系统也提供一个让用户与系统交互的操作界面。(摘自维基百科)

以上定义言简意赅,但是看起来还是云里雾里,好像知道了是这么个东西,其实心里疑问多多。其实说白了,抛开所有面纱,所有特殊地位,它就是一个计算机程序,它一样是通过源代码编译出来的,一样是由程序设计语言,数据结构,算法支撑起来的,它的目的就是管理计算机的硬件资源(硬盘,屏幕,键盘,鼠标,打印机,网卡等等)和软件资源(系统上运行的程序,像浏览器,播放器,文本编辑器,游戏等等),而这个目的的目的最终还是为用户服务,用户通过它,就只要点一点,按一按,高级一点的就输入一些命令,写写脚本什么的就能够完成那么多复杂的任务(你能想象自己去控制那么多硬件计算吗,想想电路实验的时候各种插线拔线吧~)。意识到这一点,我们才能抛开对它的恐惧,来好好的研究一下它。

2、Linux的历史发展

linux的历史已经要被讲烂了,几乎所有的资料里都会花很大的篇幅来讲linux的发展,但是为了后面的理解需要,这里还是要简单提一提,详细的可以参阅:鸟哥的linux私房菜这个站点:

提到Linux,就不得不提到Unix,因为linux就是由unix发展而来的。unix最早诞生与20世纪四五十年代,是贝尔实验室的Ken Thompson在一台叫PDP-7的机器上写出来的,这个东西出来以后他的同事都被这个系统的能力感到惊讶,因为在此之前操作计算机是很痛苦的,(这里涉及到计算机的历史,就不展开了)。很多人开始加入到Unix的开发中,而由于这个系统一开始是用汇编写的,这意味着要把它用在其他机器上,就必须在新的机器上重新编写整个系统。怎么办呢?学过编译原理的同学就知道应该使用一种高级语言来编写这个程序,然后在不同的机器上通过编译器将其编译成能在该机器上运行的机器代码就行了。Thompson于是自己设计了一种语言叫做B,然后用这种语言重写了Unix,但是由于这个语言设计的缺陷最终不是很成功,这时候大名鼎鼎的Dennis Ritchie出现了,根据B,他又设计出了大家都相当熟悉的C语言,而且还为C写了一个很棒的编译器,然后他们两个就用了C把Unix给重写了一遍,而C语言也成为了一种影响深远的程序设计语言(这两位大哥真心牛叉~)。

把你的脸迎向阳光,那就不会有阴影

通过Linux理解操作系统(一):概述

相关文章:

你感兴趣的文章:

标签云: