操作系统和操作系统内核

2024-04-11 -

1.操作系统的理解

一句话理解操作系统:操作系统为用户(使用计算机的人)提供服务,使用户能够使用计算机上的各种应用程序(扣扣、浏览器)来操作计算机资源(例如扣扣需要使用监控资源) ),使用浏览器下载数据需要硬盘资源,而所有这些应用程序都需要使用CPU,这是主要资源)。

上述言论可以从两个方面来理解。 一方面可以从操作系统本身来理解。 其实,说到操作系统的概念,大多数人都比较模糊。 同时他们又觉得和这个东西很接近,因为每台电脑里都有一个操作系统,你运行的任何应用软件都离不开操作系统。 为什么它与操作系统如此分离? 如果不打开操作系统怎么办?其实说白了,一台电脑就是一组资源。 你在计算机上运行的应用程序本质上都离不开计算机的各种资源(如处理器、内存、I/O设备等)。 只是为了方便,人们这就是我们构建操作系统之类的东西的方式。 由于每台计算机的各种资源来自不同的制造商,它们具有不同的标准和差异,因此您为某种类型的 I/O 设备开发的应用程序 无法在另一台配备不同 I/O 设备的计算机上运行,​​并且操作系统完美的消除了这种差异以及无法扩展的缺点。 因此,从逻辑上讲,操作系统位于应用程序和计算机资源之间。 中间层

同时,作为中间层,它必须做好自己的工作,所以一般来说,操作系统有两个基本功能:

(1)防止硬件被失控的应用程序滥用;

(2) 为应用程序提供简单且一致的机制来控制复杂且通常不同的低级硬件设备

另一方面,从计算机CPU的角度来看,操作系统其实只是一组计算机程序(可以理解为很多应用程序的集合,而这些应用程序基本上都是和硬件打交道的),与其他计算机程序类似(无论是你自己写的程序还是像QQ这样的应用程序或者大型服务器程序),它们都是向处理器提供指令,然后处理器执行这些指令来完成这些程序的功能。 最大的区别是操作系统的意图与其他程序不同:操作系统程序控制处理器对其他计算机资源的使用,并控制其他程序的执行时序,从而促使处理器完成系统任务的调度。 然而(正如之前所解释的,操作系统与其他程序有着相同的意图,所以)为了做任何这样的事情(指执行另一个程序),处理器必须停止执行操作系统程序,然后执行其他程序(这实际上是进程切换),因为由于操作系统也是一个程序(进程,即程序的实例)并且任何处理器一次只能处理一个进程,所以操作系统也和其他程序一样。 (进程)也需要调度,只不过操作系统处于主动调度的位置,而其他程序则是被动的由操作系统控制来实现调度。

3.操作系统内核

关于操作系统和操作系统内核这两个概念,很多人试图区分和解释它们,但发现很难完全解释清楚。 总结后,作出如下解释:

(1)操作系统包含操作系统内核(这是必然的),也就是说内核程序是操作系统包含的一组计算机程序的子集,因此内核程序也是一组计算机程序程序,而这些内核程序是操作系统中最常用的基本模块,直接与硬件打交道。 它主要由用于管理内存、文件、外设和系统资源的部分组成。

(2)内核程序总是占用一段内存,以便处理器可以随时调用这些内核程序。

(3)操作系统除了内核程序外,还包括其他基本组件,如文本编辑器、编译器以及用于与客户交互的程序等。

对于第(2)点,可以引入《深入理解计算机系统》一书中关于“虚拟内存”解释的一张图来说明,如下:

上图中,在进程虚拟地址空间的描述中,最上面的子区域“内核虚拟内存”用于存储内核程序和数据。 这个地址空间是固定结构的,因此对于每个应用程序(进程)都具有相同结构的虚拟地址空间,这保证了每个进程都可以调用操作系统内核程序来完成自己的功能。

我们用另一幅图来说明操作系统内核是操作系统的一组子程序:

组件电脑系统怎么安装_电脑系统组件的问题怎么办_电脑系统组件

上图中,操作系统的内核围绕着硬件,其外层是系统调用接口,即操作系统除内核之外的其他组件。

下面总结了两位网友关于操作系统和操作系统内核的解释:

(1)内核是操作系统的基本模块,用于管理系统资源。 例如,它提供软件级的抽象(如进程、文件系统、同步、内存、网络协议等对象的操作和权限控制),以及硬件访问的抽象(如磁盘、显示器、网络接口等)卡(NIC))。 操作系统是内核的扩展,包括提供基本服务的系统组件。

(2)内核是计算机科学意义上的操作系统。 它直接与硬件交互,提供CPU时间片管理、中断、内存管理、IO管理等。一般意义上,一个操作系统包含的东西比较多,至少是用于用户交互的基本程序,比如命令行界面和基本指令(文件遍历、进程管理等),或者用于桌面和文件浏览的图形界面。 设备。

三、总结

一般来说,一个操作系统包括内核(提供硬件抽象层、磁盘文件系统控制、多任务处理等功能的系统软件)和计算机系统所必需的其他组件(如函数库、编译器、调试工具、文本编辑器等)。 、网站服务器、以及Unix用户界面(Unix shell)等,这些都是操作系统的一部分,而编译器等各个模块都是运行在操作系统中的独立进程)。 所以内核并不是一个完整的操作系统。 以Linux为例。 Linux这个词本身仅指Linux内核,但现在大家已经默认将Linux理解为整个Linux系统。 这是由于历史原因,也就是说,人们已经习惯用Linux来描述基于Linux内核并使用GNU (也称为GNU/Linux)的各种工具和应用程序的整个操作系统,基于这些组件的Linux软件称为Linux发行版。 一般来说,一个Linux发行版不仅包括Linux内核,还包括大量的软件(套件),例如软件开发工具、数据库、Web服务器(例如)、桌面环境(例如GNOM和KDE)、套件(例如,组织)等。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权本站发表,未经许可,不得转载。

扫一扫在手机阅读、分享本文