操作系统
常见的操作系统有Windows,Mac,Android,Liunx,DOS等。
操作系统是人们为了方便管理计算机而创造出来的。操作系统由shell和内核以及其他等系统软件组成。它覆盖在计算机硬件的第一层,负责与硬件直接打交道,是介于用户应用程序与计算机硬件之间的一层系统软件,通俗一点讲,操作系统就是用户和计算机硬件二者连接的桥梁。
下面我们来介绍一下操作系统中的shell和内核。
shell
shell就是系统的用户界面,提供了用户与内核进行交互操作的一种接口。shell是一个程序,从广义上讲shell包括我们熟知的gui用户界面(如windows的操作界面)和cmd命令行界面。用户通过鼠标点击,键盘等方式将请求发送给shell,shell通过解释之后把用户语言转化为机器语言给内核,内核再与硬件打交道。
内核
内核负责CPU和进程管理、内存管理、文件管理、磁盘管理等。用户将请求告知shell后,由shell和内核通信,内核再负责和硬件通信。内核是操作系统的核心,内核可以决定一个程序在什么时候能对某部分硬件操作多长时间(待会我们会谈到)。
那么,如果没有操作系统,用户应用程序直接和硬件打交道会发生什么呢?
以打印机为例,如果用户a要执行打印操作,用户a的打印请求直接由应用程序发送给打印机(硬件),那么打印机响应a用户的打印请求后开始打印。一切看起来都没有问题。天气也很晴朗,可是这个时候,B用户也通过应用程序向打印机发送了打印请求,打印机像接受用户a的请求一样响应并接受了用户b的请求,那么此时结果会如何?我们可想而知,打印机把用户a的打印内容打印一半就开始打印B用户的打印内容,两位用户的打印内容以一种十分暧昧的关系呈现。如果你说这种程度你能够接受,那么要是用户C,用户D...也发送了打印请求......场面一度混乱。这是我们不愿意看到的。
这就是为什么我们需要操作系统来管理硬件,而不能用用户应用程序去直接调用计算机硬件。