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

本文介绍了Linux内核的基础,探讨了其与Unix的关系,并详细对比了两者之间的主要区别,包括内核特性、进程管理和设备模型等方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第1章 Linux内核的简介

1.1 Unix

Unix强大的根本原因

  1. Unix很简洁:仅提供几百个系统调用并且有一个非常明确的设计目的;
  2. 所有东西都被当做文件对待:提供一套系统调用接口—open()、read()、write()、lseek()和close();
  3. 用C语言编写而成:移植力强;
  4. 进程创建非常迅速:调用fork();
  5. 拥有一套简单又稳定的进程间通信元语。

1.2 Linux

Linux系统的基础

Linux系统的基础:内核、C库、工具集和系统的基本工具

操作系统

操作系统是指整个系统中负责完成最基本功能和系统管理的那些部分。
其中系统管理的那些部分应该包括:

  • 内核
  • 设备驱动程序
  • 启动引导程序
  • 命令行shell
  • 其他种类的用户界面
  • 基本的文件管理工具
  • 系统工具

1.3 Linux与Unix的区别

  1. Linux支持动态加载内核模块;
  2. Linux支持对称多处理(多CPU系统)机制(SMP),而传统的Unix不支持只有部分变体的Unix才支持;
  3. Linux内核可以抢占,而Unix大多数不支持仅有少数变体的Unix才支持;
  4. Linux内核不区分线程和一般进程;
  5. Linux提供具有设备类的面向对象的设备模型、热插拔事件以及用户空间的设备文件系统(sysfs);
  6. Linux忽略了一些被认为是设计得拙劣的Unix特性和过时的标准;
  7. Linux体现了自由这个词的精髓。
以下是关于《Linux内核设计实现》的笔记: 1. 进程管理 - 进程控制块(Process Control Block, PCB)个进程在内核中的表示,包含了进程的状态、各种计数器和指针,以及进程所需要的资源。 - 进程调度:内核必须在可能的情况下公平地分配CPU时间片给每个进程。Linux内核使用完全公平调度(Completely Fair Scheduler, CFS)来实现点。 - 进程同步:进程在访问共享资源时需要同步,以避免冲突。Linux内核提供了多种同步机制,如信号量、自旋锁和读写锁等。 2. 内存管理 - 虚拟内存:每个进程都拥有自己的虚拟内存空间,这使得每个进程都可以认为自己独占整个系统内存。 - 页面置换:当物理内存不足时,Linux内核会使用页面置换算法将部分未使用的页面从物理内存中移出,以便为正在运行的进程腾出空间。 - 内存映射文件:Linux允许将磁盘上的文件映射到进程的虚拟地址空间中,这样就可以像访问内存样访问文件。 3. 文件系统 - 虚拟文件系统(Virtual File System, VFS):Linux内核中的抽象层,它允许系统支持多种文件系统格式,如ext4、FAT32等。 - I/O管理:内核必须管理所有的I/O操作,包括磁盘读写和网络通信等。 - 文件描述符:Linux内核使用文件描述符来标识打开的文件,每个进程都有个文件描述符表。 4. 网络协议栈 - TCP/IP协议栈:Linux内核支持多种网络协议,其中最常用的是TCP/IP协议栈。 - Socket:在Linux中,进程之间通信的主要方式是使用Socket。Socket是种抽象的概念,它代表了个网络连接。 5. 设备驱动程序 - 驱动程序开发:Linux内核的设备驱动程序通常是以模块的形式开发的,它们可以动态地加载和卸载。 - 设备文件:Linux内核将设备表示为文件,它们可以通过文件系统接口来访问。 以上是《Linux内核设计实现》的些重点内容和笔记,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值