写给小白的操作系统入门科普

原创 鲜枣课堂 2024-09-09 18:22

今天这篇文章,我们来聊聊操作系统(Operating System, OS)。


我们每天都在使用操作系统。Windows、Linux、安卓、iOS,都是非常经典的操作系统。有了它们,我们才能够更好地使用电脑、手机这样的硬件终端设备。


那么,操作系统的本质是什么?到底具有哪些功能和特性?我们常说的进程、线程、内核、中断、GUI、CLI……又是什么意思?


接下来,我们一起寻找答案。



什么是操作系统

从本质来看,操作系统其实就是一套软件。它也是代码写出来的,像我们现在普遍使用的Windows10,主要就是C/C++写的。

操作系统属于软件,但又是非常特别的软件。

在整个计算机架构中,它距离硬件最近,是最重要、最基础的软件。它负责控制和管理整个计算机系统的资源,并进行合理组织、调度和分配。

计算机的层次架构

对于用户(user)和上层应用软件(application)来说,操作系统把很多底层的细节都封装隐藏起来了,通过标准接口以供调用,大大简化了上层应用软件的开发。

与此同时,它又提供了很多辅助性的工具和功能,让用户可以更好地掌控计算机的运行状态。

换句话说,操作系统就是一个超级大管家。它什么都管,为用户服务,向用户负责。


 操作系统的核心功能

我们可以把操作系统的核心功能分为以下几个方面:

首先,是进程管理

进程(Process)和线程(Thread),是操作系统里非常重要的两个概念。

进程是资源分配的基本单位。进程的创建、终止、调度、同步以及进程间的通信,都是由操作系统负责的。应用程序的运行,包括操作系统本身核心功能的运行,都是以进程的形式存在。

每个进程都包括程序的代码、数据、状态,以及操作系统为该程序分配的资源(如内存空间、文件句柄、网络端口等)。操作系统通过进程管理,来确保各个进程能够高效、安全地共享CPU时间。

我们使用“Ctrl+Alt+Del”快捷键调出Windows的任务管理器,就可以看到很多的进程:

任务管理器

线程,则是操作系统进行运算调度的最小单位。

线程比进程更低一级,是进程内的一个可以独立调度和指派的执行单元。

一个进程中可以有多个线程,共享相同的内存空间和资源,可以更容易地进行通信和数据共享。

进程与线程

例如你启动了一个浏览器程序,那么,操作系统就会开启一个相应的进程。这个进程里面,又会有多个线程,如HTTP请求线程、事件响应线程、渲染线程等。

如果你关闭这个浏览器程序,从任务管理器可以看到,这个进程和对应的线程都没有了。当然,你也可以在任务管理器里,直接右键关闭某个进程,程序也就强制退出了。Linux里干掉一个进程,用的命令就是“kill(杀掉)”。

线程是操作系统发展到后期才引入的。它进一步提供了程序执行的并发性,提高了系统的效率。

进程和线程,都可以包括执行态、就绪态、阻塞态等状态。对进程和线程进行管理,本质上是为了实现对CPU资源的分配调度。

进程的状态变化

需要注意的是,一个程序可以对应一个或多个进程。而一个进程同样可以对应一个或多个程序(虽然比较罕见)。

其次,是内存管理

以前我们多次提到过冯·诺依曼架构。程序要从硬盘到内存,才能够被运算器(CPU)处理。每个程序都有足够的内存空间,才能够确保正常运行。

冯·诺依曼架构

运行之后,内存也需要被及时释放,才能让别的程序能够继续占用。

内存的分配和回收,也是操作系统负责的。

除了内存分配之外,操作系统还要负责进行内存保护(确保每道程序都只在自己的内存区中运行,进程间不会互相干扰)、地址映射(将程序装入内存运行时,需要将逻辑地址转化成内存单元所限定的物理地址)、内存扩充(借助于虚拟存储技术,从逻辑上去扩充内存容量)等工作。

第三,是设备管理

这是操作系统的重要任务之一。它管理和控制外部设备(如打印机、硬盘驱动器、键盘、鼠标等)的使用。


具体来说,它可以完成用户进程提出的I/O(输入/输出)请求,为用户进程分配其所需的I/O设备,提高CPU和I/O设备的利用率,提高I/O速度等。高效的I/O调度,可以避免I/O设备拖累系统的运行。

第四,是文件系统管理

文件系统是操作系统用来组织、存储和检索数据的一套规则。

操作系统提供了一套机制来组织、存储、检索和保护文件,包括文件的创建、删除、读写操作以及目录结构的维护。我们也可以将其理解为操作系统对存储设备和资源的管理和调用。

第五,安全和权限管理

有了硬件和软件资源,我们还要指定到底谁能够使用他们。

操作系统提供了完善的安全机制,确保用户数据的安全性和完整性,包括用户身份验证、访问控制和加密等。

最后一个核心功能,是交互界面

操作系统是用户使用计算机的一个工具。我们想要让计算机工作,就需要一个好的交互界面,以便下达命令、查询结果和状态。

操作系统提供图形用户界面(GUI,Graphical User Interface)或命令行界面(CLI,Command Line Interface),让用户能够方便地与计算机交互。这是计算机在社会全面普及的一个前提条件。

很多人都用过“cmd”调出来的命令行界面,那种叫做联机命令接口,也叫交互式命令接口。


以前,我们还学过写批处理文件(.bat文件),给出好几个命令,让计算机逐一执行。这种叫做脱机命令接口。

值得一提的是,除了(联机、脱机)命令接口之外,操作系统还提供了程序接口。

程序接口由一组系统调用(system call)组成,允许应用程序间接调用资源。


现在有很多应用程序通过高级语言提供的库函数,间接地进行系统调用。我们可以把这些库函数视为对系统调用的进一步封装。


需要注意,凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式,向操作系统内核提出服务请求,由操作系统内核代为完成。这样可以保证系统的稳定性和安全性。


 操作系统的主要特性

除了上面说的六大功能之外,操作系统还有四个特性,分别是:并发、共享、异步和虚拟。

  • 并发(concurrency)

并发是指两个或多个事件在同一时间间隔内发生。操作系统具有并发特性,是指其具有处理和调度多个程序同时执行的能力。

并发和并行(parallellism)是有区别的。并行是两个或多个事件在同一时刻内发生。举例来说,一边吃苹果一边看电视,是并行。在1分钟之内,吃掉苹果、香蕉和橘子,就是并发。


很显然,并发从宏观上看是同时发生的,但从微观上看是分时交替发生的(和通信里面的“时分复用”有点像)。并发考验的是资源调度的能力,而并行需要硬件的支持,例如采用多核处理器。

  • 共享(sharing)

共享,是指系统中的资源可以被多个并发进程共同使用。它分为两种方式,互斥共享和同时共享。

互斥共享,顾名思义,就是不能同时用。仅当某一进程访问完并释放该资源后,才允许另一进程对该资源进行访问。这类资源称为临界资源或独占资源。计算机系统中的大多数物理设备,都属于临界资源。

同时共享,就是能够多个进程同时用。最典型的设备,就是硬盘。

大家应该也能看出来,共享的底层逻辑也和通信里的“复用”很像,要么是分时间进行共享(时分复用),要么是分物理资源空间进行共享(空分复用),主要看资源本身的属性。

  • 异步(asynchronous)

异步,是同步的反义词。同步是大家保持节奏统一。而异步,是各走各的路。

异步的前提是并发性,如果没有并发性,所有任务只能one by one串行执行,那么,整个系统的效率就会很低。

  • 虚拟(virtualization)

最后是虚拟。这个我们在云计算里经常会提到。把一个物理实体,变成若干个逻辑实体,就是虚拟。

虚拟的本质,还是资源的复用。只不过通过软件来实现了,用户感受到的,是多个逻辑实体。


 操作系统的组成架构

我们再来看看操作系统的组成架构。

操作系统的核心,就是大家经常听说的内核(Kernel)


内核直接与硬件进行交互,并为其他系统软件和应用程序提供服务。前面提到的操作系统核心功能,除了交互界面之外,大部分都和内核紧密相关。

计算机里的CPU,工作状态可以分为内核态(也叫管态)和用户态(也叫目态)。运行内核程序时,是内核态。运行应用程序时,是用户态。

操作系统有“非特权指令”和“特权指令”两种指令。

应用程序只能使用“非特权指令”,如:加法指令、减法指令等。操作系统内核作为 “管理者”,有时会让CPU执行一些high level的“特权指令”,如:内存清零指令。这些指令影响重大,只允许操作系统内核来使用。

操作系统处于内核态时,可以执行特权指令。如果处于用户态,则只能执行非特权指令。

一般情况下,开机后,用户启动某个应用程序,操作系统内核程序会在合适的时候主动让出CPU,转为用户态。这时,如果发生了中断,操作系统内核会强行夺回CPU控制权,让CPU从用户态变成内核态。

这里刚好说说中断(Interrupt)

处理器收到信号,提示发生了某个事件,应予以注意,这种情况就称为中断。

中断分为内中断和外中断。

内中断也叫异常,是指来自CPU内部的事件,与当前执行的指令有关。如程序的非法操作码、地址越界、运算溢出等。异常不能被屏蔽,一旦出现,就应该立即处理。

内中断的三种典型类型包括:陷入(trap,由陷入指令引发)、故障(fault,由错误条件引发,内核程序可以修复)、终止(abort,由致命错误引发,内核程序无法修复)。

外中断是狭义的中断,信号来自CPU外部的事件,与当前执行的指令无关。很典型的是时钟中断以及I/O中断,或人为干预。

继续说内核。

内核也分为多种类型,例如大内核、微内核。

所有的操作系统服务都在内核空间运行,就是大内核,也叫宏内核、单内核。

只有最基本的系统服务在内核空间运行,其它服务移出内核,放在用户空间运行,是微内核。


相比大内核,微内核更灵活,架构更清晰,代码没有那么庞大,维护起来也容易一些。

操作系统负责交互界面的,叫做外壳(Shell)。前面介绍过,包括命令解释器和图形用户界面等。

除了内核和外壳以外,操作系统还包括许多其它工具和服务,例如备份工具、恢复工具、防火墙、网络服务等。

下面这个,是一个操作系统整体架构的示意图:


这个是Linux系统的架构示意图,供参考:



 操作系统的常见分类

随着技术的发展,现代操作系统已经经历了数十年的演变。

计算机硬件不断升级,用户需求不断增加,系统功能不断迭代,最终导致整个操作系统的架构变得越来越复杂,代码体积也越来越庞大。

以前的操作系统只有几MB,一个软盘就能装得下。现在的操作系统,动辄几个GB,甚至几十GB,DVD光盘都装不下。

针对不同的设备终端类型,以及不同的应用场景,操作系统也出现了细化分的趋势,演变出很多类别。

通常来说,操作系统大致可以分为桌面操作系统、服务器操作系统、移动终端操作系统、嵌入式操作系统、物联网操作系统等类别。

如下表所示:


关于这些操作系统的具体故事,大家可以参考小枣君之前的文章,今天就不再赘述了:

操作系统的最强入门科普(Unix/Linux篇)
操作系统的发展史(DOS/Windows篇)
手机操作系统的沉浮往事(上)
手机操作系统的沉浮往事(下)

好啦,以上就是今天文章的全部内容。

感谢大家的耐心观看。如果大家觉得文章有用,欢迎多多转发。谢谢!


鲜枣课堂 学通信,学5G,就上鲜枣课堂!
评论
  • 本文介绍Linux系统更换开机logo方法教程,通用RK3566、RK3568、RK3588、RK3576等开发板,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。制作图片开机logo图片制作注意事项(1)图片必须为bmp格式;(2)图片大小不能大于4MB;(3)BMP位深最大是32,建议设置为8;(4)图片名称为logo.bmp和logo_kernel.bmp;开机
    Industio_触觉智能 2025-01-06 10:43 58浏览
  • 自动化已成为现代制造业的基石,而驱动隔离器作为关键组件,在提升效率、精度和可靠性方面起到了不可或缺的作用。随着工业技术不断革新,驱动隔离器正助力自动化生产设备适应新兴趋势,并推动行业未来的发展。本文将探讨自动化的核心趋势及驱动隔离器在其中的重要角色。自动化领域的新兴趋势智能工厂的崛起智能工厂已成为自动化生产的新标杆。通过结合物联网(IoT)、人工智能(AI)和机器学习(ML),智能工厂实现了实时监控和动态决策。驱动隔离器在其中至关重要,它确保了传感器、执行器和控制单元之间的信号完整性,同时提供高
    腾恩科技-彭工 2025-01-03 16:28 164浏览
  • 光耦合器,也称为光隔离器,是一种利用光在两个隔离电路之间传输电信号的组件。在医疗领域,确保患者安全和设备可靠性至关重要。在众多有助于医疗设备安全性和效率的组件中,光耦合器起着至关重要的作用。这些紧凑型设备经常被忽视,但对于隔离高压和防止敏感医疗设备中的电气危害却是必不可少的。本文深入探讨了光耦合器的功能、其在医疗应用中的重要性以及其实际使用示例。什么是光耦合器?它通常由以下部分组成:LED(发光二极管):将电信号转换为光。光电探测器(例如光电晶体管):检测光并将其转换回电信号。这种布置确保输入和
    腾恩科技-彭工 2025-01-03 16:27 167浏览
  • 车身域是指负责管理和控制汽车车身相关功能的一个功能域,在汽车域控系统中起着至关重要的作用。它涵盖了车门、车窗、车灯、雨刮器等各种与车身相关的功能模块。与汽车电子电气架构升级相一致,车身域发展亦可以划分为三个阶段,功能集成愈加丰富:第一阶段为分布式架构:对应BCM车身控制模块,包含灯光、雨刮、门窗等传统车身控制功能。第二阶段为域集中架构:对应BDC/CEM域控制器,在BCM基础上集成网关、PEPS等。第三阶段为SOA理念下的中央集中架构:VIU/ZCU区域控制器,在BDC/CEM基础上集成VCU、
    北汇信息 2025-01-03 16:01 184浏览
  • 这篇内容主要讨论三个基本问题,硅电容是什么,为什么要使用硅电容,如何正确使用硅电容?1.  硅电容是什么首先我们需要了解电容是什么?物理学上电容的概念指的是给定电位差下自由电荷的储藏量,记为C,单位是F,指的是容纳电荷的能力,C=εS/d=ε0εrS/4πkd(真空)=Q/U。百度百科上电容器的概念指的是两个相互靠近的导体,中间夹一层不导电的绝缘介质。通过观察电容本身的定义公式中可以看到,在各个变量中比较能够改变的就是εr,S和d,也就是介质的介电常数,金属板有效相对面积以及距离。当前
    知白 2025-01-06 12:04 73浏览
  • 彼得·德鲁克被誉为“现代管理学之父”,他的管理思想影响了无数企业和管理者。然而,关于他的书籍分类,一种流行的说法令人感到困惑:德鲁克一生写了39本书,其中15本是关于管理的,而其中“专门写工商企业或为企业管理者写的”只有两本——《为成果而管理》和《创新与企业家精神》。这样的表述广为流传,但深入探讨后却发现并不完全准确。让我们一起重新审视这一说法,解析其中的矛盾与根源,进而重新认识德鲁克的管理思想及其著作的真正价值。从《创新与企业家精神》看德鲁克的视角《创新与企业家精神》通常被认为是一本专为企业管
    优思学院 2025-01-06 12:03 47浏览
  • 随着市场需求不断的变化,各行各业对CPU的要求越来越高,特别是近几年流行的 AIOT,为了有更好的用户体验,CPU的算力就要求更高了。今天为大家推荐由米尔基于瑞芯微RK3576处理器推出的MYC-LR3576核心板及开发板。关于RK3576处理器国产CPU,是这些年的骄傲,华为手机全国产化,国人一片呼声,再也不用卡脖子了。RK3576处理器,就是一款由国产是厂商瑞芯微,今年第二季推出的全新通用型的高性能SOC芯片,这款CPU到底有多么的高性能,下面看看它的几个特性:8核心6 TOPS超强算力双千
    米尔电子嵌入式 2025-01-03 17:04 30浏览
  • 根据Global Info Research项目团队最新调研,预计2030年全球封闭式电机产值达到1425百万美元,2024-2030年期间年复合增长率CAGR为3.4%。 封闭式电机是一种电动机,其外壳设计为密闭结构,通常用于要求较高的防护等级的应用场合。封闭式电机可以有效防止外部灰尘、水分和其他污染物进入内部,从而保护电机的内部组件,延长其使用寿命。 环洋市场咨询机构出版的调研分析报告【全球封闭式电机行业总体规模、主要厂商及IPO上市调研报告,2025-2031】研究全球封闭式电机总体规
    GIRtina 2025-01-06 11:10 62浏览
  • 在快速发展的能源领域,发电厂是发电的支柱,效率和安全性至关重要。在这种背景下,国产数字隔离器已成为现代化和优化发电厂运营的重要组成部分。本文探讨了这些设备在提高性能方面的重要性,同时展示了中国在生产可靠且具有成本效益的数字隔离器方面的进步。什么是数字隔离器?数字隔离器充当屏障,在电气上将系统的不同部分隔离开来,同时允许无缝数据传输。在发电厂中,它们保护敏感的控制电路免受高压尖峰的影响,确保准确的信号处理,并在恶劣条件下保持系统完整性。中国国产数字隔离器经历了重大创新,在许多方面达到甚至超过了全球
    克里雅半导体科技 2025-01-03 16:10 121浏览
  • PLC组态方式主要有三种,每种都有其独特的特点和适用场景。下面来简单说说: 1. 硬件组态   定义:硬件组态指的是选择适合的PLC型号、I/O模块、通信模块等硬件组件,并按照实际需求进行连接和配置。    灵活性:这种方式允许用户根据项目需求自由搭配硬件组件,具有较高的灵活性。    成本:可能需要额外的硬件购买成本,适用于对系统性能和扩展性有较高要求的场合。 2. 软件组态   定义:软件组态主要是通过PLC
    丙丁先生 2025-01-06 09:23 50浏览
  •     为控制片内设备并且查询其工作状态,MCU内部总是有一组特殊功能寄存器(SFR,Special Function Register)。    使用Eclipse环境调试MCU程序时,可以利用 Peripheral Registers Viewer来查看SFR。这个小工具是怎样知道某个型号的MCU有怎样的寄存器定义呢?它使用一种描述性的文本文件——SVD文件。这个文件存储在下面红色字体的路径下。    例:南京沁恒  &n
    电子知识打边炉 2025-01-04 20:04 46浏览
  • 在测试XTS时会遇到修改产品属性、SElinux权限、等一些内容,修改源码再编译很费时。今天为大家介绍一个便捷的方法,让OpenHarmony通过挂载镜像来修改镜像内容!触觉智能Purple Pi OH鸿蒙开发板演示。搭载了瑞芯微RK3566四核处理器,树莓派卡片电脑设计,支持开源鸿蒙OpenHarmony3.2-5.0系统,适合鸿蒙开发入门学习。挂载镜像首先,将要修改内容的镜像传入虚拟机当中,并创建一个要挂载镜像的文件夹,如下图:之后通过挂载命令将system.img镜像挂载到sys
    Industio_触觉智能 2025-01-03 11:39 115浏览
  • 物联网(IoT)的快速发展彻底改变了从智能家居到工业自动化等各个行业。由于物联网系统需要高效、可靠且紧凑的组件来处理众多传感器、执行器和通信设备,国产固态继电器(SSR)已成为满足中国这些需求的关键解决方案。本文探讨了国产SSR如何满足物联网应用的需求,重点介绍了它们的优势、技术能力以及在现实场景中的应用。了解物联网中的固态继电器固态继电器是一种电子开关设备,它使用半导体而不是机械触点来控制负载。与传统的机械继电器不同,固态继电器具有以下优势:快速切换:确保精确快速的响应,这对于实时物联网系统至
    克里雅半导体科技 2025-01-03 16:11 170浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦