操作系统是什么?

    我认为操作系统可以理解为是一个软件运行在硬件上,负责管理硬件资源,并且将硬件资源所提供的计算能力切割(cpu切割成多片分配给多个不同的程序,内存切割成多段分割给多个不同的程序,并且在它们之间完成协调)。还负责一个程序的启动、终止、切换、回收等工作。总的来说,它不负责具体工作,只负责协调其他程序的工作。

    要学习操作系统,还需要了解进程的概念。进程其实就是一个程序的处理过程,具有生命周期。

    用户怎么打开一个进程呢?这就需要知道shell的概念。shell是一个把计算机的功能通过人类容易操作的方式输出的一个接口。就是人机交互接口(也可以说是人机交互界面)。shell分为GUI(图形用户界面)和CLI(命令行用户界面)。我理解shell就是将用户的指令行为翻译成内核能理解的指令。

    下图为我理解的一个程序的执行过程。

wKiom1ROUYjRg8EHAAH6ShMrxZ0686.jpg

    上图的操作系统内核主要功能就是进程管理,内存管理,提供文件系统,网络功能,硬件驱动,安装机制等等。

    在我看来操作系统内核的根源是Unix,其他都是在它的基础是演变而来(仅为个人观点)。如苹果的OS X是基于Unix的基础,内核是FreeBSD;Windows的DOS早先是是比尔盖茨在IBM一位职员手中买来的QDOS加以改进的,QDOS也是根据Unix而开发出来的;Linux就更不用说了。

    常见的操作系统有Android, iOS, Linux, Windows。