【Linux内核设计与实现读书笔记】(一)内核简介

Linux内核设计与实现读书笔记---(一)内核简介

(1)Unix历史

为啥要说Unix呢,因为Linux 并非凭空诞生,它深受 Unix 操作系统的影响。就像Unix是传统的油车,Linux就是电车,根据Unix仿制并加以改进。至于历史嘛巴拉巴拉巴拉,总之Unix 以简洁著称。其核心理念包括:"一切皆文件"、使用 C 语言编写(移植性强)、进程创建迅速、提供简单稳定的进程间通信元语 。

(2)Linux简介

Linux 是"类 Unix"系统,但不是 Unix。它借鉴了 Unix 的设计并实现了 POSIX 标准,但没有直接使用 Unix 的源代码。

(3)操作系统和内核简介

  • 操作系统: 包含内核、设备驱动、启动引导程序、Shell、用户界面和系统工具等。
  • 内核: 操作系统的核心。负责管理硬件、分配资源(CPU时间、内存)、响应中断等 。
  • 运行空间:
    • 内核空间:内核运行在受保护的、拥有所有硬件访问权限的系统态 。
    • 用户空间: 应用程序运行在受限的环境中 。
  • 交互方式: 应用程序通过系统调用 与内核通信 。

(4)Linux内核与传统Unix内核的比较

①单内核和微内核

操作系统的内核可以分为两大阵营:单内核和微内核

原理 优势 劣势
单内核 整个内核都在一个大内核地址空间上运行 简单、高效:所有内核都在一个大的地址空间上,所以内核各个功能之间的调用和调用函数类似,几乎没有性能开销 一个功能的崩溃会导致整个内核无法使用
微内核 内核按功能被划分成各个独立的过程。每个过程独立的运行在自己的地址空间上 安全:内核的各种服务独立运行,一种服务挂了不会影响其他服务。 内核各个服务之间的调用涉及进程间的通信,比较复杂且效率低。
  • Linux是一个单内核,Linux内核运行在单独的内核地址空间上
  • 不过它也汲取了微内核的精华:
    • 模块化设计
    • 抢占式内核
    • 支持内核线程以及动态装载内核模块的能力
  • Linux还避免微内核设计的缺陷,让所有事情都运行在内核态,直接调用函数,无需消息传递

因此Linux内核是模块化,多线程的以及内核本身可调度的操作系统

②Linux内核与传统Unix内核(单内核)的不同

  • Linux支持动态的加载内核模块:虽说他是单内核但是运行动态加载内核模块
  • Linux支持SMP机制
  • Linux内核可以抢占
  • Linux内核不区分线程和其他一般的进程,实质是共享资源

(5)Linux内核版本

这部分纯科普了,也看看吧

Linux的命名机制如下:

巴拉巴拉巴拉,总之任何一个规则都是有他背后的故事,了解一下也蛮有意思。

相关推荐
IMPYLH9 分钟前
Linux 的时间为什么会被拨回去
linux·运维·服务器
叼烟扛炮2 小时前
[Git 实战] 学习笔记:从生成 SSH 密钥到解决 TortoiseGit 推送报错全指南
linux·运维·笔记·git·学习
xbzb2 小时前
OpenStack 网络管理(理论):Linux 网络虚拟化是 Neutron 的地基
linux·服务器·网络·openstack·network·neutron
Android系统攻城狮4 小时前
Linux FFmpeg深度解析之avcodec_flush_buffers调用流程与实战(十九)
linux·运维·服务器·ffmpeg·车载音视频·ffmpeg音视频进阶
水饺编程5 小时前
第2章:Linux 基础,解压缩【.tar.bz2】压缩包文件
linux·c语言·汇编
Zevalin爱灰灰5 小时前
Linux入门第二部分(ARM裸机篇) 第二章 Cortex-A7 MPCore架构与ARM汇编基础
linux·汇编·arm开发·嵌入式
倔强的石头1065 小时前
【Linux指南】进程通信系列(七):System V 信号量 —— 同步互斥的内核原语
linux·运维·服务器
GeW5 小时前
从"补短板"到"强优势"Linux与数据库认证成为产业跃迁人才支点
linux·数据库
PellyKoo7 小时前
【Ubuntu】GTX 1080 Ti 显卡占用为0但功率高达60W的排查与解决
linux·运维·ubuntu
Fruiticecake8 小时前
epoll 回显服务器是怎么工作的:从 accept 队列到就绪链表,以及它和 select / poll 的区别
linux