前言:
微软的windows,苹果的macos以及linux都是市面上常见的计算机的操作系统(Operator System,简称OS)。虽然随着时代的发展以及操作系统版本的不断迭代,各种操作系统都拥有属于自己的特特色,但无论是哪一款操作系统,它们的“使命”都是一致的:管理软件和硬件资源。
1.操作系统的概念
操作系统是一种最接近硬件的软件,它控制和管理计算机系统的硬件和软件资源,为用户提供了一个便捷的操作平台和接口。操作系统包括:
内核(进程管理,内存管理,文件管理,驱动管理)
外壳程序(例如函数库,shell程序等等)
2.操作系统的结构示意图:
3.什么是接口?
接口即计算机系统中两个独立的部件进行信息交换的共享边界,应用程序和操作系统之间存在接口,操作系统和计算机硬件之间也存在接口。通过接口可以实现应用程序与操作系统之间的通信和操作系统和计算机硬件之间的通信。
4.什么是驱动程序?
相信上面安装驱动程序的弹窗大家都见过,那么这个驱动程序到底是啥呢?
驱动程序:驱动程序是一种硬件厂商提供的特殊的软件组件,相当于硬件设备的接口,操作系统通过这个接口来控制和操作硬件设备。其主要功能是使计算机和设备之间能够进行通信。
理论上来说,没有驱动,操作系统内核就无法访问硬件。
为什么每个硬件的驱动程序都要硬件厂商提供呢?
这是因为,硬件设备的品牌有很多,各种品牌之间的设备可能会有差别, 操作系统无法应对所有的硬件提供合适的驱动。这样一来,干脆就让厂家自己提供不同操作系统的驱动程序,操作系统只需要使用这些接口就可以了。所以各个硬件厂商为了保证硬件的兼容性及增强硬件的功能会不断地升级驱动程序。就好像我们买的网卡和显卡,它们都会自带驱动程序,在使用它们之前系统需要先安装驱动程序。
4.什么是系统调用(system call)?
系统调用,又名系统呼叫,是指运行在使用者空间的程序向操作系统内核请求更高权限的服务。(来自维基百科)
用printf函数举例,假如我们在运行某份代码文件。由于printf函数是向屏幕文件写入数据,需要访问屏幕这个硬件。在执行printf函数的时候,就会发出一个系统调用的请求,请求操作系统分配屏幕资源。这也使操作系统内核的不被暴露在外面。
5.操作系统和操作系统内核的区别
内核(kernel):是整个操作系统的核心部分,负责管理 CPU、内存、磁盘、网络等硬件资源,并为应用程序提供进程管理、内存管理、文件管理、设备管理等功能。操作系统:是指包含内核系统、系统服务等一整套软件系统,内核系统和操作系统不是相互排斥的概念,它们是层次分明的关系,内核系统是操作系统的基础,而操作系统则是更广泛的概念,包括了内核系统以外的一些其他组成部分。
6.设计OS的核心目的
与硬件交互,管理所有的软硬件资源
为用户程序(应用程序)提供一个良好的执行环境