操作系统概述

1,028 阅读30分钟

操作系统的基本概念

操作系统概念解释

操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源和分配,以提供给用户和其它软件方便的接口和环境。它是计算机系统中最基本的系统软件。


操作系统的四大特征

并发、共享、虚拟、异步

并发(Concurrence)

并发指同一时间间隔内发生。这些事件宏观上同时发生、微观上交替发生。

操作系统的并发性是通过分时得以实现的。

并行是指两个或多个事件在同一时刻发生。需要硬件支持。

共享(Sharing)

共享是指系统中的硬件资源和信息资源,可供多个并发执行的进程共同使用且不独占,又称资源复用。

分为互斥共享和同时访问。

互斥共享是一段时间内只允许一个进程访问。通过加锁操作,这种技术往往是通过阻塞实现的。

同时访问是一段时间内允许多个进程同时访问该资源。但是也只是宏观上同时,微观上是交替访问。

并发和共享互为存在的条件,也是操作系统最基本的两个特征。

虚拟(Virtual)

虚拟是指把物理上的一个实体变成若干逻辑上的对应物。

空分复用技术:使用虚拟存储技术提高内存利用率,使用虚拟设备技术以便多个用户共享一个I/O设备。

时分复用技术:使用虚拟处理技术让多道程序并发执行,分时使用CPU,使他能同时为多个用户服务。

异步(Asynchronism)

多个程序并发执行,由于资源有限,进程可能不是一贯到底,而是走走停停,以不可预知的速度向前推进。

执行的顺序不确定,但结果要一定。

操作系统的功能

作为计算机系统资源的管理者

处理机管理、内存管理、文件管理、I/O设备管理

(1)处理机管理

在多道程序环境下,处理机的分配和运行都以进程(或线程)为基本单位,因而对处理机的管理可归结为对进程的管理。并发时在计算机内同时运行多个进程,所以,进程何时创建、何时撤销、如何管理、如何避免冲突、合理共享就是进程管理的最主要的任务。进程管理的主要功能有:进程控制、进程同步、进程通信、死锁处理、处理机调度等。

(2)存储器管理

存储器管理是为了给多道程序的运行提供良好的环境,方便用户使用以及提高内存的利用率,主要包括内存分配、地址映射、内存保护与共享和内存扩充等功能。

(3)文件管理

计算机中的信息都是以文件的形式存在的,操作系统中负责文件管理的部分称为文件系统。

文件管理包括文件存储空间的管理、目录管理及文件读写管理和保护等。

(4)设备管理

设备管理的主要任务是完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率,主要包括缓冲管理、设备分配、设备处理和虚拟设备等功能。

作为用户与计算机硬件系统之间的接口

命令接口、程序接口(系统调用)、图形接口

(1)命令接口

使用命令接口进行作业控制的主要方式有联机控制方式和脱机控制方式。按作业控制方式的不同,可以将命令接口分为联机命令接口和脱机命令接口

联机命令接口又称交互式命令接口,适用于分时或实时系统的接口。它由一组键盘操作命令组成。用户通过控制台或终端输入操作命令,向系统提出各种服务要求。用户每输入完一条命令,控制权就转入操作系统的命令解释程序,然后由命令解释程序对输入的命令解释并执行,完成指定的功能。之后,控制权又转回到控制台或终端,此时用户又可以输入下一条命令。

脱机命令接口又称批处理命令接口,即适用于批处理系统,它由一组作业控制命令(或称作业控制语句)组成。脱机用户不能直接干预作业的运行,应事先用相应的作业控制命令写成一份作业操作说明书,连同作业一起提交给系统。当系统调度到该作业时,由系统中的命令解释程序对作业说明书上的命令或作业控制语句逐条解释执行,从而间接地控制作业的运行。

(2)程序接口

程序接口由一组系统调用命令(简称系统调用,也称广义指令)组成。用户通过在程序中使用这些系统调用命令来请求操作系统为其提供服务。用户在程序中可以直接使用这组系统调用命令向系统提出各种服务要求,如使用各种外部设备,进行有关磁盘文件的操作,申请分配和回收内存以及其他各种控制要求。

(3)图形接口

GUI最终还是调用的是程序接口。

实现了对计算机资源的抽象

操作系统用来扩充机器,形成功能更加强大的虚拟机。


操作系统的发展与分类

OS从无到有、从简单到复杂、完善。

OS 随着计算机硬件技术的发展而发展。

为满足不同的需求,出现了多种类型的OS。

第一代 (1946年-1955年): 真空管时代,无操作系统

第二代 (1955年-1965年): 晶体管时代,批处理系统

第三代 (1965年-1980年): 集成电路时代,多道程序设计

第四代 (1980年 - 至今): 大规模和超大规模集成电路时代,分时系统。 现代计算机正向着巨型、微型、并行、分布、网络化和智能化几个方面发展。

1、手工操作阶段(无操作系统)

分为人工操作方式和脱机输入输出方式。

人工操作方式:人机矛盾大,人机矛盾即人工操作方式与机器利用率的矛盾。

提高效率的途径:1、批处理。2、脱机I/O

脱机输入输出方式:该技术是为了解决人机矛盾及CPU和IO设备速度不匹配的矛盾,采用外围机和磁带脱机完成I/O操作。

用户独占全机,不会发生用户等待现象,但资源利用率底。

CPU等待手工操作,CPU利用不充分。

2、批处理阶段

分为单道批处理系统和多道批处理系统。

批处理系统诞生的硬件背景是,50年代中期晶体管的出现。

批处理系统解决了高速计算机的运算、处理能力与人工干预之间的速度矛盾,实现了作业自动过渡。

2.1、单道操作系统

50年代末 ~ 60年代中(晶体管)

把一批作业以脱机输入方式输入到磁带/磁鼓。利用磁带或磁盘把任务分类编成作业顺序执行。每批作业由专门监督程序(Monitor)自动依次处理。

自动性:无需人工干预,自动依次运行。

顺序性:有序进入内存,按序处理完毕。

单道性:每次调入一道程序进入内存,内存中仅有一道程序运行,当程序完成或发生异常时,才换后续程序进入内存运行。

优点:减少了CPU的空闲时间,提高了主机、CPU和I/O设备的使用效率,提高了吞吐量。

缺点:CPU和I/O设备使用忙闲不均

2.2、多道操作系统

60年代中 ~ 70年代中(集成电路)

60年代通道和中断技术的出现,解决了输入输出等待计算的问题。

为了改进单道批处理系统,提高资源利用率和吞吐量。

允许由作业调度程序按一定算法从后备队列选择若干作业同时进入内存,使它们共享CPU、内存、外设等资源。

多道程序设计的特点有:多道、宏观上并行、微观上串行。

1)多道:计算机内存中同时存放多道相互独立的程序。

2)宏观上并行:同时进入系统的多道程序都处于运行过程中,即它们先后开始了各自的运行,但都未运行完毕。

3)微观上串行:内存中的多道程序轮流占有CPU,交替执行。

多道程序设计技术的实现需要解决下列问题:

1)如何分配处理器。

2)多道程序的内存分配问题。

3)I/O设备如何分配。

4)如何组织和存放大量的程序和数据,以便于用户使用和保证其安全性与一致性。

在批处理系统中采用多道程序设计技术,就形成了多道批处理操作系统。该系统把用户提交的作业成批地送入计算机内存,然后由作业调度程序自动地选择作业运行。

优点是资源利用率高,多道程序共享计算机资源,从而使各种资源得到充分利用;系统吞吐量大,CPU和其他资源保持“忙碌”状态。缺点是用户响应的时间较长。不提供人机交互能力,用户既不能了解自己程序的运行情况,也不能控制计算机。

多道批处理操作系统的特点:多道性、无序性、调度性

优点:1、资源利用率高。2、系统吞吐量大。

缺点:1、无交互能力,用户响应时间长。2、作业平均周转时间长。

分时操作系统

分时是指多个用户分享使用同一台计算机,分时共享硬件和软件资源。比如Unix和Linux,可以使用多个客户端进行连接。

分时技术就是把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时停止运行,把处理器让给其他作业使用,等待下一轮再继续运行。由于计算机速度很快,作业运行轮转得很快,给每个用户的感觉好像是自己独占一台计算机。

分时操作系统是多个用户通过终端同时共享一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而互不干扰。所以,实现分时系统最关键的问题是如何使用户能与自己的作业进行交互,即当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回用户。分时系统也是支持多道程序设计的系统,但它不同于多道批处理系统。多道批处理是实现作业自动控制而无需人工干预的系统,而分时系统是实现人机交互的系统,这使得分时系统具有与批处理系统不同的特征,其主要特征如下:

1)同时性。同时性也称多路性,指允许多个终端用户同时使用一台计算机,即一台计算机与若干台终端相连接,终端上的这些用户可以同时或基本同时使用计算机。

2)交互性。用户能够方便地与系统进行人-机对话,即用户通过终端采用人-机对话的方式直接控制程序运行,与同程序进行交互。

3)独立性。系统中多个用户可以彼此独立地进行操作,互不干扰,单个用户感觉不到别人也在使用这台计算机,好像只有自己单独使用这台计算机一样。

4)及时性。用户请求能在很短时间内获得响应。分时系统采用时间片轮转方式使一台计算机同时为多个终端服务,使用户能够对系统的及时响应感到满意。

在分时系统的基础上,操作系统的发展开始分化, 如实时系统、通用(桌面)系统、网络系统、分布 式系统等。

实时操作系统

虽然分时操作系统比较好地解决了人机交互问题,但是在一些应用场合,需要系统能对外部的信息在规定的时间(比时间片的时间还短)内作出处理(比如飞机订票系统或导弹制导系统)。

因此,实时系统应运而生。

为了能在某个时间限制内完成某些紧急任务而不需时间片排队,诞生了实时操作系统。这里的时间限制可以分为两种情况:如果某个动作必须绝对地在规定的时刻(或规定的时间范围)发生,则称为硬实时系统。例如,飞行器的飞行自动控制系统,这类系统必须提供绝对保证,让某个特定的动作在规定的时间内完成。如果能够接受偶尔违反时间规定,并且不会引起任何永久性的损害,则称为软实时系统,如飞机订票系统、银行管理系统。

实时系统要求系统及时响应外部事件的请求,在规定时间内处理完。按截止时间可将实时任务分为
硬实时任务(必须在截止时间内完成)和软实时任务(不太严格地在截止时间前执行完)。
以上的单道系统、多道系统、分时系统和实时系统可以看成是按使用环境对操作系统进行分类。此外,还可以从用户的数量上对操作系统分类:
(1)单用户操作系统。单用户单任务操作系统,如CP/M、PC-DOS。单用户多任务操作系统,如
OS/2、Windows.
(2)多用户操作系统。如UNIX、VMS、MVS、AOS/VS。

在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完接收的事件。实时操作系统的主要特点是及时性和高可靠性。

网络操作系统

网络操作系统把计算机网络中的各台计算机有机地结合起来,提供一种统一、经济而有效的使用各台计算机的方法,实现各个计算机之间的互相传送数据。网络操作系统最主要的特点是网络中各种资源的共享以及各台计算机之间的通信。

分布式操作系统

分布式计算机系统是由多台计算机组成并满足下列条件的系统:系统中任意两台计算机通过通信方式交换信息;系统中的每一台计算机都具有同等的地位,即没有主机也没有从机;每台计算机上的资源为所有用户共享;系统中的任意若干台计算机都可以构成一个子系统,并且还能重构;任何工作都可以分布在几台计算机上,由它们并行工作、协同完成。用于管理分布式计算机系统的操作系统称为分布式计算机系统。该系统的主要特点是:分布性和并行性。分布式操作系统与网络操作系统本质上的不同之处在于分布式操作系统中,若干台计算机相互协同完成同一任务。

个人计算机操作系统

Windows,Android,IOS,等


操作系统的运行机制

两种程序

内核程序

应用程序

操作系统的内核程序是系统的管理者,既可以执行特权指令,也可以执行非特权指令,运行在核心态。

为了保证系统能安全运行,普通应用程序只能执行非特权指令,运行在用户态

两种指令

特权指令

非特权指令

CPU的两种状态

目态(用户态)

管态(核心态、内核态)

使用程序状态字寄存器(PSW) 的某标志位来标识处理器处于什么状态。

内核体系

时钟管理

中断机制

中断的分类

原语

系统调用

CPU的运行环境

1.CPU运行模式
大多数的现代操作系统中,CPU是在两种不同的模式下运行的:内核模式和用户模式。依据CPU上
诀行的代码的类型,CPU在两个模式之间切换。一般情况下,应用程序在用户模式下执行,核心操作系
统组件在内核模式下执行。

内核模式运行也称为核心态(管态),又叫特权态、内核态。用户模式运行也称为用户态(目态)运行于处理器核心态的代码不受任何限制,可以自由地访问任何有效地址,进行直接端口访问,即代码可以无限制地对系统存储、外部设备进行访问。而运行于用户态的代码则要受到处理器的诸多检查,它们只能访问其用户地址空问的数据(如,若系统采用页式存储管理,则在用户态下,代码只能访问其页表中页表项对应的物理地址空间),且只能对在用户态下可访问的设备进行访问。
用户态切换到核心态的主要方式:系统调用、异常和外围设备的中断。
2.中断和异常处理
外围设备的中断处理:当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时
CPU会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的中断处理程序。如果先前执行的指令是用户态下的程序,那么这个转换的过程也就发生了由用户态到核心态的切换。如,硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序执行,进行磁盘读写完成的后续处理工作。
异常处理:当CPU在技行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序中,也就转到了核心态。如,缺页异常。
3.系统调用
这是用户态进程主动要求切换到内核态的一种方式。用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作。系统调用又叫软中断,如,Linux的int 80h中断、DOS的INT20h中断,UNIX中fork()实际上就是执行了一个创建新进程的系统调用。
4.程序的链接与装入参见第4意存储器管理
5.程序运行时内存映像与地址空间参见第4章存储器管理。
八、操作系统引导
操作系统引导指的是将操作系统内核装入内存并启动系统的过程。系统引导通常是由一段被称为启动引导程序的特殊代码完成的,它位于系统ROM中,用来完成定位内核代码在外存的具体位置、按照要求正确装入内核至内存并最终使内核运行起来的整个系统启动过程。在该过程中,启动引导程序要完成多个初始化过程,当这些过程顺利完成后才能使用系统的各种服务。这些过程包括初始引导、内核初始化、全系统初始化。
初始引导过程主要由计算机的BIOS完成。BIOS是固化在ROM中的基本输人输出系统(Basic lnput/Output System),其内容存储在主板ROM芯片中,主要功能是为内核运作环境进行预先检测,主要包括中断服务程序、系统设置程序、上电自检(Power On Self Test,POST)和系统启动自举程序等。中断服务程序是系统软硬件间的一个可编程接口,用于完成硬件初始化;系统设置程序用来设置CMOSRAM中的各项参数,这些参数通常表示系统基本情况、CPU特性、磁盘驱动器等部件的信息等,开机时按Delete 键即可进人该程序界面;上电自检POST所做的工作是在计算机通电后自动对系统中各关键和主要外设进行检查,一旦在自检中发现问题,将会通过鸣笛或提示信息警告用户;系统启动自举程序是在POST完成工作后执行的,它首先按照系统CMOS设置中保存的启动顺序搜索磁盘驱动器、CD-ROM、网络服务器等有效的驱动器,读入操作系统引导程序,接着将系统控制权交给引导程序,并由引导程序装入内核代码,以便完成系统的服后后码此cDU 块和如本丛山操作系统内核装入内存后,引导程序将CPU控制权交给内核,此时内核才可以开始运行。内核将首先完成初始化功能,包括对硬件、电路逻辑等的初始化,以及对内核数据结构的初始化,如页表(段表)等。
上述两个步骤完成后,最后要做的就是后动用户接口,使系统处于等待命令输入状态即可。这个阶
段操作系统做的主要工作是为用户创建基本工作环境,接收、解释和执行用户程序与指令。不同系统、不同设置,全系统初始化完成后的接口表现是不同的。如果选择了图形界面,此时会显示用户账号和密码输入界面,典型的如Windows的用户登录界面;若使用的是命令接口,则会显示命令行形式的用户登
录界面。无论是图形接口还是命令接口,只要全系统初始化完成,即可使用用户名和相应密码进人操作系统环境。
九、虚拟机
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实休计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。虚拟机技术是虚拟化技术的一种。
Linux虚拟机:一种安装在Windows上的虚拟Linux 操作环境,就被称为Linux 虚拟机。它实际上是一个或一组文件,是虚拟的Linux环境,但是它们的实际效果是一样的。
Java虚拟机(JVM):是 Java Virtual Machine 的缩写,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄
存器等,还具有相应的指令系统。Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高奶语言加里更在不的业么 行至小需要编译成不同的目标代码。而引入Java虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
另外,现在企业内部或互联网上公有云服务商提供的云主机、VPC等大多都是虚拟机,易于动态地创建、
回收:集群中所有虚拟机的运行情况都能及时掌握和按需调配。虚拟化可以说是云计算的基础技术支撑。


操作系统的体系结构

无结构OS

OS是由众多的过程直接构成,各过程之间可相互调用,但OS内部不存在任何结构,又称为整体系
统结构。
缺点:既庞大又杂乱,缺乏清晰的程序结构:程序错误多,调试难、阅读难、理解难、维护难。

模块化OS结构

OS是采用“模块化程序设计”技术,按其功能划分为若干个独立的模块,管理相应的功能,同时
规定好各模块之间的接口,以实现其交互,对较大模块又可按子功能进一步细分下去。
优点:提高了OS设计的正确性、可理解性和可维护性;增强了OS的可适用性;加速了OS的开发过程。
缺点:模块及接口划分较困难;未区别共享资源和独占资源;由于管理的差异,使OS结构变得不
够清晰。

分层式OS结构

分层式OS结构是对模块化结构的一种改进,它按分层式结构设计的基本原则,将OS划分为若干个层次,每一层都只能使用其底层所提供的功能和服务,从硬件开始,在其上面一层一层地自底向上增添相应功能的软件,这种OS结构称为分层式OS结构。
特点:每一步设计都建立在可靠的基础上,结构更清晰;调试和验证更容易,正确性更高。

微内核OS结构

在OS内核中只留下一些最基本的功能,而将其他服务分离出去,由工作在用户态下的进程来实现,
形成所谓“客户/服务器”模式。客户进程可通过内核向服务器进程发送请求,以取得OS的服务。
特点:微内核便于扩充操作系统,拥有很好的可移植性。

宏内核OS结构

在宏内核架构中,用户服务和内核服务在同一空间中实现。内核可以代表内核进程运行代码,就是
酒常的内核进程:当用户进程经过系统调用或者中断进人内核态后,内核也可以代表它运行代码。因此,内核需要管理的资源多于微内核,其大小相对大一些。
宏内核与微内核的区别:微内核主要提供进程间通信(IPC),自身完成很少功能,主要是传递一个《块对另一个模块的功能请求;而宏内核则是把内存管理、文件管理等全部接管。从理论上来看,微内长的思想更好些,微内核把系统分为各个小的功能块,降低了设计难度,系统的维护与修改也容易,但通信带来的效率损失是个问题;宏内核的功能块之间的耦合度太高,造成修改与维护的代价太高,但宏内核因为是直接调用,所以效率是比较高的
常见操作系统中,UNIX和Linux采用宏内核结构;鸿蒙操作系统、Window NT/2000/XP、Mach OS等采用微内核结构。

外核

操作系统内核在硬件管理方面的两个主要功能是资源抽象与多路复用(muliplexing)。其中,对硬件资要的抽象存在两方面的问题:过度的硬件资源抽象可能会带来较大的性能损失,违反“抽象但不隐藏
能力”;操作系统所提供的硬件资源抽象是针对所有应用的通用抽象,这些抽象对一些具体的应用如数据库、Web服务器等)来说往往不是最优的选择。
为此,有研究者提出了外核(Exokernel,Engler等人,1995年)架构。他们观察到在许多场景中,应用比操作系统更了解该如何去抽象和使用硬件资源,因此,应当由应用来尽可能地控制对硬件资源的抽象;同时提出了库操作系统(LibOS)的概念,将对硬件的抽象封装到LibOS中,与应用直接链接,降低应用开发的复杂度;而操作系统内核只负责对硬件资源在多个库操作系统之间的多路复用的支持,并管理这些LibOS的生命周期。
外核架构可为不同的应用提供定制化的高效资源管理,按照不同应用领域的要求,将对硬件资源的
抽象模块化为一系列的库(即LibOS)。这样的设计带来两个主要好处:可按照应用领域的特点与需求,
动态组装成最适合该应用领域的LibOS,最小化非必要的代码,从而获得更高的性能;处于硬件特权级
的操作系统内核可以做到非常小,并且由于多个LibOS之间的强隔离性,从而可以提升整个计算机系统
的安全性与可靠性
外核架构的劣势在于:LibOS通常是为某种应用定制的,缺之跨场景的通用性,应用生态差,较难用于功能要求复杂、生态与接口丰富的场最。

宏内核与微内核的比较

操作系统提供的服务
操作系统提供一个用以执行程序的环境,它给各种程序和用户提供服务。一般来说,操作系统提供
的服务有:
(1)程序执行。能将程序装入内存并执行。
(2)I/O操作。用户通过操作系统与I/O设备通信。
(3)文件系统操作。管理文件。
(4)通信。同一计算机的不同进程之间、不同计算机之间通信。
(5)错误检测。做到能检测并区分各种错误。
(6)资源分配。调度各种有限的系统资源,以合理使用。
(7)统计。提供给研究人员进行分析改进。
(8)保护。提供系统安全性:

操作系统的意义

想要让电脑执行程序就要参考硬件的指令集,并且通过机器语言来编写程序。由于大部分不同硬件的功能函数不同,若想要在不同的硬件上实现相同的功能,只能重新改写程序。这时,操作系统出现了!!

操作系统的意义在于它可以将所有的硬件驱动,并且提供一个软件接口来给程序员开发软件,只要程序员遵守该软件接口的开发规则,就可以随心所欲的开发软件。这就是操作系统。

操作系统内核

如上文所述,操作系统可以驱动系统中所有的硬件来管理电脑的所有活动。比如内存的存取功能,I/O设备的输入与输出等。硬件的所有操作必须要通过操作系统来实现。

硬件的所有功能是操作系统的内核来完成的,内核是硬件的管理者。

而在操作系统中,硬件的所有功能是操作系统的内核来完成的,内核是硬件的管理者。就是说,内核有什么功能,我们的电脑就有什么功能,内核没有的,我们就无论如何也用不了。举个栗子:如果内核不支持网卡的TCP协议,那无论用什么网卡,都不能实现网络功能。

因此,内核对于我们的计算机来说十分重要,所以内核程序一定要放在被保护的区域,并且启动后就一直在内存中的保护区域。


系统调用

内核的功能只是管理硬件,但在我们的电脑中有那么多的软件是怎么来的呢?系统调用的功能就在于此。

系统调用:即操作系统的应用编程接口(Application Programming Interface, API),是用于实现各种系统功能的子程序。

用户开发软件时,只需遵守该API就可以开发软件了。举个栗子:我们学习一门高级语言(C,C++,Java,Python)等,只需遵守它们各自的语法以及函数即可,无须考虑内部的实现原理。而内核的系统调用会自动的将这些高级语言程序转化为内核可以运行的命令函数,自然就达成了想要的功能。

注意事项

电脑主要由硬件构成,而内核的功能在于管理硬件,因此只要硬件不同,内核就会有所差别。

软件与内核有比较大的关系,硬件也和内核有比较大的关系,而软件与硬件关系不大。

操作系统的内核是参考硬件种类编写的,所以同一个操作系统在不同的硬件架构下是无法运行的。

操作系统只是管理硬件资源,如果没有其它辅助程序,操作系统是无法运行其他功能的,只不过它已经准备好运行其他功能了。

应用程序开发必须遵守操作系统的API,而同一个应用程序不可以在其他的操作系统上运行,所以我们下载软件时,厂商会提供多种不同系统的软件版本。


开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 14 天,点击查看活动详情