本文属作者本人观点,若理解错误,欢迎指正。
操作系统简介
计算机的出现是因为战争的需要,随着计算机的诞生,操作系统也就应运而生。可以说计算机的发展史,相对来说是比较快速的发展。尤其是在当代中国,计算机更是经历了飞速的发展。操作系统对于计算机的重要性不言而喻,它是布置在硬件系统上的第一个软件,也是其他应用软件运行的基础,是人与硬件之间的接口。可以说,没有操作系统,计算机硬件,就是一堆废铁。就现在社会,比较主流的操作系统主要有在服务器端运行的Linux,以及桌面操作系统,Windows和MacOS等。本文主要对Linux系统进行介绍。
Linux系统可以说在服务器上,几乎占据绝大多数市场,这主要取决于系统的高稳定性和占据资源小的特点。可以这样理解,就服务器而言,我不需要那么多非常华丽的功能,例如动态桌面等,甚至说,服务器是连桌面本身这个功能也不需要的。因为他只需要向用户提供服务,当用户发来请求时,我只需将用户请求的数据返回回去就行,功能很单一。正是这种特点决定了Linux的地位。Linux系统是一个开源的操作系统,开源就代表着所有人都可以修改,修改过后变成自己的系统,也正是开源,让Linux融合了来自全世界各地的优秀黑客的智慧。Linux内核是有Linux系统的创始人团队进行维护,所以所有的Linux系统都是采用这个内核,但我可以在这个内核上集成不同的功能,甚至开发更多好用的功能,于是,便诞生了很多的发行版。Linux发行版大约有100多种,其中主流的有RHEL(红帽企业版),CentOS(社区操作系统),Ubuntu(好用的桌面系统),Fedora(红帽实验版)等。目前最新的红帽系统是RHEL7版本,但企业来说很多还是跑的6,甚至5版本的系统。
Linux系统运行原理
我们说,任何的操作系统都是为人所服务的,是要让硬件资源之间更协调。那操作系统就必须包含进程管理,存储管理,设备管理,文件管理,和用户接口几大功能。Linux也提供这些功能。在介绍原理前,我们首先介绍一下上述概念。进程管理,就是对系统中运行的进程进行管理。进程就是一个动态的过程,每一次的进程都是不一样的,进程是程序和PCB进程控制块的集合,这样可以保证每次系统中运行多个进程,实现多任务。当硬件加电时,cpu执行第一条指令,运行BIOS。BIOS进行开机自检,检查各部件运行是否正常,如果正常的话,则按照用户设定的运行顺序进行运行操作系统。下面一张图列出了操作系统的结构:
本图为引用
在上图中,我们非常直观的看到操作体统的结构,最底层是硬件,硬件是没办法为人类所直接使用的,他放在那儿就是一对毫无意义的金属。而操作系统就是用来管理这些硬件的,也就是资源。但要管理这些资源的话,需要一个非常复杂的过程。他需要很多软件的协调合作才能完成,而操作系统就是那么一个功能强大的软件。硬件上的第一层,也就是操作系统的内核(kernel),它是一个操作系统的心脏,是灵魂,他的重要性不言而喻,所以我们不能随意的对他进行操作。为了我们更好的使用操作系统,我们就要通过一个叫shell的应用程序来对内核进行使用,其中shell程序通过系统调用来实现对内核的使用,还包含其他的一些共享库的支持。shell程序就类似于windows的桌面,只不过它是通过CLI(命令行)来对内核进行调用的,和windows本质上是一样的,都是提供一个和用户的接口,只不过shell程序可能操作上接受度没桌面的好。
开机自检完成后,cpu会加载磁盘上的文件到内存中去执行,而首先加载进去的便是/boot 文件夹里的引导文件,这个文件记载着操作系统的执行顺序,加载并执行后,便会将内核也加载中,正常过程是加载完内核,操作系统便启动完成了,但由于内核我们是没办法直接是使用的,所以随着内核的加载,我们会加载shell程序也一起启动,方便我们进行操作,这样操作系统便是我们看到的开机界面了。
原文地址:http://blog.51cto.com/13570184/2060611