当前位置: 首页 > news >正文

【奔跑吧!Linux 内核(第二版)】第1章:Linux 系统基础知识

笨叔 陈悦. 奔跑吧 Linux 内核(第2版) [M]. 北京: 人民邮电出版社, 2020.

文章目录

    • Linux 系统的发展历史
    • Linux 发行版
      • Red Hat Linux
      • Debian Linux
      • SuSE Linux
      • 优麒麟 Linux
    • Linux 内核介绍
      • 宏内核和微内核
      • Linux 内核概貌

Linux 系统的发展历史

Linux 系统诞生于 1991 年 10 月 5 日,它的产生和开源运动有着密切的关系。

  • 1983 年,Richard Stallman 发起 GNU(GUN’s Not UNIX)计划,他是美国自由软件的精神领袖,也是 GNU 计划和自由软件基金会的创立者,到了 1991 年,根据该计划已经完成了 Emacs 和 GCC 编译器等工具,但是唯独没有完成操作系统和和内核。GNU 在 1990 年发布了一个名为 Hurb 的内核开发计划,不过开发过程不顺利,后来逐步被 Linux 内核所替代。
  • 1991 年,Linus Torvalds 在一台 386 计算机上学习 Minix 操作系统,并动手实现了一个新的操作系统,然后在 comp.os.minix 新闻组上发布了第一个版本的 Linux 内核。
  • 1994 年,采用 GPL(General Public License)协议的 Linux 1.0 正式发布。GPL 协议最初由 Richard Stallman 撰写,是一个广泛使用的开源软件许可协议。
  • 1995 年,Bob Young 创办了 Red Hat 公司,以 GNU/Linux 为核心,把当时大部分的开源软件打包成发行版,这就是 Red Hat Linux 发行版。

Linux 发行版

Linux 最早的应用就是个人计算机操作系统,也是我们常说的 Linux 发行版。

Red Hat Linux

Red Hat Linux 不是第一个制作 Linux 发行版的厂商,但它是在商业和技术上做得最好的 Linux 厂商。从 Red Hat 9.0 版本发布后,Red Hat 公司不再发行个人计算机的桌面 Linux 发行版,而是转向利润更高、发展前景更好的服务器版本开发上,也就是后来的 Red Hat Enterprise Linux(Red Hat 企业版 Linux,RHEL),原来的 Red Hat Linux 个人发行版和 Fedora 社区合并,成为 Fedora Linux 发行版。

1. Fedora Core

Fedora Core 发行版是 Red Hat 公司的新技术测试平台,很多新的技术首先会应用到 Fedore Core 中。经过性能测试才会加入 Red Hat 的 RHEL 版本中。Fedora Core 面向桌面应用,所以 Fedore Core 会提供最新的软件包。Fedore Core 由 Fedora Project 社区开发。

2. RHEL

面向服务器应用的 Linux 发行版,注重性能、稳定性和服务器端软件的支持。

3. CentOS Linux

CentOS 全称为 Community Enterprise Operating System,它根据 RHEL 的源代码重新编译而成。除此之外,CentOS 和 RHEL 的另一个不同之处是 CentOS 不包含封闭源代码的软件。因此,CentOS 可以免费使用,并由社区主导。

Debian Linux

因为 Debian 项目以 Linux 内核为主,所以 Debian 一般指的是 Debian GNU/Linux。Debian 能风靡全球的主要原因在于其特有的 apt-get/dpkg 软件包管理工具,该工具被誉为所有 Linux 软件包管理工具中最强大、最好用的一个。

目前有很多 Linux 发行版基于 Debian,如最流行的 Ubuntu Linux。

SuSE Linux

来自德国。

优麒麟 Linux

诞生于 2013 年,是由中国国防科技大学联合 Ubuntu、CSIP 开发的开源桌面 Linux 发行版,是 Ubuntu 的官方衍生版本。

Linux 内核介绍

宏内核和微内核

宏内核是指所有的内核代码都被编译成二进制文件,所有的内核代码都运行在一个大的内核地址空间里,内核代码可以直接访问和调用,效率高并且性能好。宏内核架构的优点是设计简洁且性能较好。

微内核是指把操作系统分成多个独立的功能模块,每个功能模块之间的访问需要通过消息来完成,因此效率相对较低。微内核架构的优势明显,比如稳定性和实时性等。微内核架构最大的问题就是高度模块化带来的交互的冗余和效率的损耗。

宏内核和微内核在系统实时性方面的设计差异

Linux 内核支持动态加载内核模块,模块是被编译成的目标文件,并且可以在运行时的内核中动态加载和卸载。和微内核实现的模块化不一样,它们不是作为独立模块执行的,而是和静态编译的内核函数一样,运行在内核态中。

Linux 内核概貌

1. 系统调用层

Linux 内核为内核态和用户态之间的切换设置了软件抽象层,叫做系统调用层,其实每个处理器的架构设计中都提供了一些特殊的指令来实现内核态和用户态之间的切换。

系统调用层最大的目的是让用户进程看不到真实的硬件信息。

用户进程大部分时间运行在用户态,当需要向内核请求服务时,它会调用系统提供的接口进入内核态。

2. arch 抽象层

Linux 内核支持多种架构,Linux 内核为不同架构的实现做了很好的抽象和隔离,也提供了统一的接口来实现。比如,在内存管理方面,Linux 内核把和架构相关的代码存放在 arch/xx/mm 目录里,把和架构不相干的代码都存放在 mm 目录里,实现了分层。

3. 进程管理

Linux 内核并没有严格区分进程和线程,而经常使用 task_struct 数据结构来描述。在 Linux 内核中,调度器的发展经历了好几代,从很早的 O(n) 调度器到 Linux 2.6 内核中的 O(1) 调度器,再到现在的完全公平调度器(CFS)算法。

目前比较热门的话题是关于性能和功耗的优化,比如 ARM 阵营提出了大小核架构,至今在 Linux 内核中还没有体现。因此,诸如绿色节能调度器(EAS)这样的调度算法是研究热点。

4. 内存管理

内存管理是 Linux 内核中最复杂的模块,涉及物理内存的管理和虚拟内存的管理。在一些小型嵌入式 RTOS 中,内存管理不涉及虚拟内存管理,比较简单和简洁。

在 Linux 内核中,关于虚拟内存的模块由反向映射、页面回收、内核同页合并、mmap、缺页中断、共享内存、进程虚拟地址空间管理等。

物理内存的管理也比较复杂,页面分配器是核心部件,它需要考虑当系统内存紧张时,如何回收页面和继续分配物理内存。其他比较重要的模块有交换分区管理、页面回收和 OOM (Out Of Memory) Killer 等。

5. 中断管理

中断管理包含处理器的异常处理和中断处理。

Linux 内核在中断管理方面有上半部和下半部之分。上半部是在关闭中断的情况下执行的,因此处理时间要求短、平、快;而下半部是在开启中断的情况下执行的,很多对执行时间要求不高的操作可以放到下半部来执行。Linux 内核为下半部提供了多种机制,如软中断、tasklet 和工作队列等。

6. 设备管理

Linux 内核的设备管理是一个很广泛的概念,包含的内容很多,如 ACPI、设备树、设备模型 kobject、设备总线(如 PCI 总线)、字符设备驱动、块设备驱动、网络设备驱动等。

7. 文件系统

为了支持各种各样的文件系统,Linux 抽象出名为虚拟文件系统层的软件层,这样 Linux 内核就可以很方便地集成多种文件系统。

相关文章:

  • Ros工作空间
  • IDEA 占用C盘太大清理
  • LangChain:大语言模型应用的“瑞士军刀”入门指南
  • 上市公司-企业上下游供应链数据(2003-2023年)-社科数据
  • 推导部分和-图论+dfs+连通块
  • 【数据挖掘】Apriori算法
  • 主数据 × 知识图谱:打造企业认知智能的核心基础设施
  • 全国青少年信息素养大赛 Python编程挑战赛初赛 内部集训模拟试卷一及详细答案解析
  • 孤岛铜怎么解决
  • 极狐GitLab 如何将项目共享给群组?
  • 极狐Gitlab 里程碑功能介绍
  • 手写 Vue 源码 === Effect 机制解析
  • Vue3.5 企业级管理系统实战(十七):角色管理
  • WordPress_AdsProPlugin Sql注入漏洞复现(CVE-2024-13322)
  • vue3 computed方法传参数
  • 人工智能 计算智能模糊逻辑讲解
  • 【基于SSM+Vue+Mysql】健身房俱乐部管理系统(附源码+数据库脚本)
  • Kaggle——House Prices(房屋价格预测)简单实现
  • java springboot deepseek流式对话集成示例
  • 推荐系统架构设计
  • 【社论】三个“靠谱”为市场注入确定性
  • 中俄领导人将讨论从俄罗斯经蒙古至中国天然气管道项目?外交部回应
  • 是否有中国公民受印巴冲突影响?外交部:建议中国公民避免前往冲突涉及地点
  • “80后”海南琼海市长傅晟,去向公布
  • 大规模空袭也门一日后,以军又对也门萨那机场发出撤离警告
  • 五一小长假上海“人从众”,全要素旅游交易总额超200亿元