精华内容
下载资源
问答
  • 2020-12-23 11:07:42

    产品特色

    编辑推荐 适读人群 :希望深入理解linux底层原理的中高级运维人员和嵌入式开发人员。

    解释透彻:深入浅出地将Linux内核架构与底层原理和盘托出。

    实践性强:对Linux内核形成了深刻、独到的理解。

    指路明灯:将Linux内核架构与底层原理的精髓娓娓道来。

    与时俱进:在很多方面覆盖了Linux较新的功能,对从业者有较大帮助。

    内容简介

    本书主要描述Linux系统的总体框架和设计思想,包含很多可以直接操作的实例,目的是希望读者对Linux系统背后的逻辑有一个全面的了解。本书力求贴近实际的工作使用,在比较核心且常用的技术点有更加深入的解释,对实际使用Linux系统工作大有裨益。本书共13章,其中第1~3章是总览,第4~13章是分领域阐述。第1~3章总体介绍Linux的基本知识;第4章以Linux系统的启动开始深入叙述;第5章是Linux系统运行中使用者*常接触到的进程概念,重点介绍进程的原理;第6章是Linux内核的内存管理方法与用户端使用内存的底层方法,即重点介绍glibc底层到内核之间的内存管理过程;第7~13章分别是关于安全机制、网络、总线与设备变动、二进制、存储、虚拟化与云、硬件专用子系统的内容。这些子系统都是Linux系统运行中非常重要的领域,是深入理解Linux系统原理不可或缺的知识补充。

    作者简介

    刘京洋,中山大学双学士、硕士,创建中山大学嵌入式组,在嵌入式实验室工作6年。工作早期担任创业公司总经理,投资公司总裁助理,后来专心技术,先后就职于TP-LINK、YY直播和网易游戏,从事内核和网络安全研发,对Linux系统底层有深入的理解。很高兴与大家沟通探讨相关学术问题。

    韩方,武汉大学研究生毕业,先后就职于华为和YY直播,具有多年安全领域的攻防对抗、安全体系建设和开发经验,精通Linux内核开发和应用开发,申请过多项发明专利,多次参加国内外技术峰会并进行分享。

    目录

    第一章 linux总览

    1. 简介

    2. Linux学习曲线和职业曲线

    3. 如何形成一个内核

    第二章 Linux内核架构

    1. 常见架构范式与核心系统

    2. 基础功能元素

    3. 特殊硬件框架

    4. 特殊软件机制

    5. 系统调用

    第三章 内核数据结构

    1. 链表与哈希表

    2. LRU

    3. 树

    4. 其他常见数据结构

    第四章 Linux系统的启动

    1. 启动的硬件支持

    2. Bootloader和内核二进制

    3. 启动原理

    第五章 进程(重点)

    1. 进程原理

    2. 进程调度

    3. 资源锁

    4. 多进程与进程通信

    5. 进程对资源的使用

    第六章 内存管理(重点)

    1. 内存的组织方式

    2. 内核内存的申请和释放

    3. 内核页面回收算法(PFRA)

    4. 内核内存压缩技术

    5. 其他内核内存基础服务

    6. 用户端对内核内存管理系统的调整

    7. 用户端进程的内存管理

    8. 相关系统调用和API

    第七章 安全

    1. Linux安全体系概览

    2. 安全的核心:加密与机制

    3. Linux用户和权限系统

    4. 分布于其他功能模块的安全机制

    第八章 网络(重点)

    1. Linux内核支持的网络特性概览

    2. Linux网络架构与socket模型

    3. IP实现架构

    4. IP路由系统

    5. TCP子系统

    6. Filter子系统

    7. 网络服务质量

    第九章 总线

    1. PCI

    2. USB

    3. Platform

    第十章 二进制(重点)

    1. 函数调用

    2. 二进制的兼容性

    3. ELF文件的执行原理

    4. ELF安全性

    第十一章 存储(重点)

    1. 磁盘管理

    2. 存储协议:linux下SCSI子系统架构

    3. 通用块抽象层

    4. 缓存层

    5. 文件系统层

    6. 分布式存储

    7. 常用存储管理高级命令

    第十二章 虚拟化与云

    1. 常见虚拟化方案

    2. 分布式文件系统

    3. 虚拟化专用文件系统

    4. Docker

    第十三章 其他重要模块与高级管理工具

    1. 内核到用户空间设备管理

    2. 内核调试

    3. 专用子系统

    精彩书摘   《深入Linux内核架构与底层原理》:

    (2)RTT

    判断网络是否拥塞,不但可以通过窗口检测拥塞,还可以通过往返时间直接测量。窗口检测是观察,往返时间属于测量。最早的拥塞控制算法Vegas就是根据RTT来监测和控制的。但是RTT不是根据实际的丢包率来计算的,而是根据往返时间计算。而互联网,尤其是无线网,RTT变大并不意味着不可达或者拥塞,这时使用Vegas算法的就开始主动降低自己的速度了(因为它判断网络拥塞了),而其他的基于丢包率的算法则并不减小窗口。导致Vegas把可用带宽让给了别人。这种损己利他的做法和Nagle一样,是注定要消亡的。

    但是RTT仍然对拥塞控制有至关重要的作用(除了后来的完全不依赖RTT的cubic算法),大部分算法都是在收到ACK回复的时候才将窗口增加一个MSS。这就是慢启动的部分(但是增长速度相当快)的原理。

    ……

    前言/序言

    要想深入研究并使用Linux内核,首先要知道Linux内核提供了什么,又能做到什么。很多初学者一进入公司就开始使用Linux内核开发内核模块,无论是使用通信方式、内存接口还是设备接口,都是早已被淘汰的内容。因为他们通常直接在网络上搜索一些很早之前发布的内容来指导自己如何完成开发工作,但他们手中却是最先进的内核代码。还有很多直接编写内核模块的人在嵌入式公司使用老版本的内核进行工作,虽然他们可能对内核之后的发展一无所知,但是他们能够一下子抓住主干,主干永远是在老版本的内核中就存在的东西。

    很多刚入行的程序员认为自己能够征服一切,稍微在网上检索一下Linux的内容,就可以上手使用了。虽然写出可以用的程序不需要太多的知识积累,但是这么做相当于在信息不充分的情况下做决策。虽然一切操作系统理论的学习都不如实际去编写几行代码,但是理论又是十分重要的,因为它能够让经验升华成积累。

    本书解释了Linux内核提供了什么,以及Linux系统底层是如何使用内核的。如果你对本书某一部分感兴趣,那么在深入阅读该部分的代码之前应先对该内容进行系统的学习,当你对内核系统有一个整体的把握时,方可挥洒自如。

    本书的读者对象是有一定Linux基础的程序员,或者是有一定经验的嵌入式开发人员和运维人员,阅读本书像喝水一样,可轻松获得知识内容。若阅读本书遇到相对冷门的技术细节时,有兴趣的读者可以自行查阅其他相关资料。例如当列举文件系统的种类时提到exofs,书中不会过多解释这个名词,因为大部分用户只关注它是文件系统的一种。

    在学习Linux内核,阅读相关图书时候限定版本是不必要的,因为即使版本变化,原理仍旧可用。本书也会注明某个技术点之前是什么样的,现在是什么样的,未来可能是什么样的。人们更希望了解整个内核框架的内容,以及一些重要细节的深层原理。本书就将重点放在这两方面内容上,而并不局限于内核的版本,尽可能以最终被选择的解决方案作为实验重点。也就是说,本书所涉及的内核版本都比较新,但是也会观察从老版本到新版本过渡时内核在功能上的变化,比如ip rule命令在新版本中去掉了reject等action。但是老版本的设计对于整体理解架构很有帮助,我们的根本目的是用实现抽象出概念,本书讲解的所有案例几乎都使用了占据较大市场份额的Ubuntu。

    感谢韩方,他对本书的出版起到了提纲挈领的作用,若没有他的帮助,我一定会被淹没在一堆技术细节中而不知道如何选择。他编写并且修改了部分章节,概览性质的图书最需要高屋建瓴的能力和丰富的经验,韩方在这方面非常强。

    由于时间仓促,加之水平有限,书中的缺点和不足之处在所难免,敬请读者批评指正。

    刘京详

    2017年10月

    深入Linux内核架构与底层原理 下载 mobi epub pdf txt 格式

    更多相关内容
  • 深入Linux 内核架构

    2019-04-01 21:46:28
    作者:Wolfgang Mauerer 翻译:郭旭 高清电子扫面版,可以pdf文字搜索,方便查询所需要的信息。 本人又使用了Adobe Acrobat 优化了网页浏览速度 欢迎大家下载,祝大家学习愉快,开卷有益
  • 深入Linux内核架构

    千次阅读 2022-01-23 21:22:32
    深入linux内核架构学习

    1. 简介与概述

    1.1 内核的任务

    内核是硬件与软件之间的一个中间层, 其作用是将应用程序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址

    • 从应用程序的视角看,内核可以被认作是一台增强的计算机。
    • 内核也可以是一个资源管理程序,负责将可用的共享资源(CPU时间, 磁盘空间, 网络连接等)分配到系统的各个进程。
    • 库也可以被视作一个, 提供了一组用于面向系统的命令。

    1.2 实现策略

    1. 微内核 只用最基本的功能由中央内核(微内核)实现。其他的功能都委托给其他的进程,这些进程通过明确定义的通信接口与中心内核通信。好处:动态扩展性,在运行时切换重要的组件。 但是在各个组件之间支持复杂通信需要额外的通信时间。
    2. 宏内核 内核中的每个函数都可以访问内核中的其他所有部分。

    1.3 内核的组成部分

    linux 内核的高层次概述
    在这里插入图片描述

    1.3.1 进程、进程切换、调度
    1. 进程切换
    2. 调度 内核必须确认如何在现存的进程上共享cpu时间
    1.3.2 UNIX进程

    LINUX 对进程采用了一种层次系统, 每一个进程都会依赖于一个父进程。 内核启动init程序作为第一个进程,该进程负责进一步的系统初始化工作。

    1. fork 可以创建当前进程的一个副本,父子进程只有pid不同。Linux 使用写时复制使fork的操作更加的高效。主要原理: 将内存复制的操作延迟到父进程或者子进程向某个页面写入数据前,在只读访问的情况下,父子进程将共用同一个内存页。
    2. exec 将一个新程序加载到当前的进程的内存中执行,旧程序的内存也将被刷出。
    3. 线程,也被称为轻量级进程
    4. 命名空间
    1.3.3 地址空间和特权级别

    CPU的字长决定了所能管理的地址空间的最大长度;地址空间的最大长度与实际可用的物理内存数量无关,因此被称为虚拟地址空间,从系统的每个进程来看,地址空间中只有自身一个进程,而无法感知到其他的进程存在。
    linux 将虚拟地址空间分为:内核空间 (高位TASK_SIZE~ 232)和用户空间(低位)
    在这里插入图片描述

    这种划分与实际可用的物理内存数量无关,每个用户进程都认为自身有3GiB(32位)的空间可用。,对于64位计算机,由于虚拟地址空间巨大,一般倾向于使用小于64的位数。

    1. 特权级别
      现代的CPU都提供了几种特权级别,进程可以驻留在某一个特权级别,每个特权级别都有各种限制,IA-32体系结构使用4种特权级别构成的系统
      在这里插入图片描述

    虽然intel的cpu区分四种特权级别,但是linux只使用两种不同的状态 : 核心态用户态,这两种状态的关键差别是对高于TSAK_SIZE的内存空间的访问。在用户状态禁止访问内核空间, 用户进程不能操作和读取内核空间中的数据,也无法执行内核空间中的代码
    从用户状态切换到核心态是通过系统调用的特定转换手段完成的,如果普通进程想要执行影响整个系统的操作,1. 只能借用系统调用向内核发出请求。内核首先检查进程是否允许执行想要的操作,然后代表进程执行所需的操作,接下来返回到用户状态。2. 内核还可以由异步硬件中断激活,然后在中断上下文中运行,在中断上下文中运行不能访问虚拟地址空间中的用户空间部分。
    系统中还有内核线程在运行,内核线程不与任何特定的用户空间进程相关联,因此也无权处理用户空间

    1. 虚拟和物理地址空间
      使用页表 来为物理地址分配虚拟地址、
      虚拟地址都被内核划分位许多等长的部分,称为,物理地址也被划分为相同大小的页
      在这里插入图片描述

    进程A的虚拟内存页1映射到了物理页4,而进程B的虚拟内存页映射到了物理内存页5.

    物理内存中的内存页称为页帧

    两个虚拟地址空间的页可以映射到同一个物理内存页,并非虚拟地址空间的所有页都映射到某一个页帧,

    1.3.4 页表

    用来将虚拟地址空间映射到物理地址空间的数据结构称为页表,由于地址虚拟地址空间中大部分区域都没有使用,可以使用多级分页 来减少页表的内存占用。
    在这里插入图片描述

    1. 虚拟地址的第一个部分称为全局页目录(PGD), 用于索引进程中的一个数组(每个进程中有且仅用一个),给数组是全局页目录或PGD ,PGD的数组项指向另一些数组的起始地址,这些数组称为中间页目录(PMD)
    2. 在PGD中找到对应的PMD后,则使用PMD来所用PMD,PMD数组项也是指针,指向下一级数组,称为页表和页目录
    3. 虚拟地址的第三部分是PTE(页表数组),用作页表的所用,虚拟内存页和页帧的映射就此完成,,页表的数组项指向页帧
    4. 虚拟地址的最后一部分称为偏移量,它制定了页内部的一个字节位置。

    缺点: 每次访问内存的时候,必须逐级访问多个数组才能将虚拟地址转化位物理地址
    加速:

    1. cpu中有个部分称为MMU(内存管理单元),可优化内存访问操作。
    2. 地址转化中出现最频繁的那些地址,都保存到称为地址转换后备缓冲器(TLB)的cpu高速缓存中
    1.3.5 物理内存的分配

    内核可以只分配完整的页帧,将内存划分为更小部分的工作委托给用户空间的标准库。

    1. 伙伴系统
    2. slab缓存
    3. 页面交换与页面回收
      页面交换通过利用磁盘空间来作用扩展内存。 如果再需要当问相关的数据,内核会将相应的页切换回内存,通过缺页异常机制,这种切换操作对于应用程序来说是透明的
      页面回收用于将内存映射被修改的内容与底层的块设备同步,也成为数据回写
    1.3.6 计时

    jiffies jiffies_64 的全局变量

    1.3.7 系统调用

    系统调用是用户进程与内核交互的经典方法

    • 进程管理 创建新进程、查询信息、调试
    • 信号 发送信号,定时器以及相关处理机制
    • 文件
    • 目录和文件系统
    • 保护机制:读取和变更UID/GID,命名空间的处理
    • 定时器函数
    1.3.8 设备驱动程序、块设备、字符设备
    1. 字符设备: 通过连续的数据流,应用程序可以顺序读取,通常不支持随机读取
    2. 块设备:应用程序可以随机访问设备数据
    1.3.8 网络

    Linux 使用源于BSD的套接字抽象,套接字可以看作是应用程序、文件接口、内核的网络实现之间的代理

    1.3.9 文件系统

    内核必须提供一个额外的软件层,将各种底层文件系统的具体特性与应用层(和内核自身)隔离开来。该软件层称为VFS,虚拟文件系统或虚拟文件系统交换器)。VFS既是向下的接口(所有文件系统都必须实现该接口),同时也是向上的接口(用户进程通过系统调用最终能够访问文件系统功能)。

    在这里插入图片描述

    展开全文
  • 设计开发 深入Linux 内核架构 完整版 设计开发 深入Linux 内核架构 完整版
  • 理解Linux内核最好预备的知识点:懂C语言懂一点操作系统的知识熟悉少量相关算法懂计算机体系结构Linux内核的特点:结合了unix操作系统的一些基础概念Linux内核的任务:1.从技术层面讲,内核是硬件与软
  • 深入Linux内核.pdf

    2021-09-07 01:00:33
    深入Linux内核.pdf
  • 深入linux内核架构 高清 带书签 深入linux内核架构 高清 带书签
  • 深入linux内核架构 Linux内核架构分析解读.docx
  • 深入linux内核架构

    2018-08-20 16:54:43
    linux 2.6 操作系统,深入linux内核,讲解的详细。
  • 纯技术层面上,内核是硬件与软件的之间的一个中间层。作用是将应用程序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。从应用程序视角上看,内核可以被认为是一台增强的计算机,将计算机...
  • 内核和处理器建立了这种多任务的错觉(也就是可以并行操作) 但是,这也引入了若干问题 多任务引入的问题 独立:除非明确要求,进程之间不能互相干扰 共享:公平地共享CPU,但是其中一些程序可能更重要 由此,...

    0. 前言

    多任务的现代操作系统

    • 所有的现代操作系统都能够同时运行若干个进程
    • 内核和处理器建立了这种多任务的错觉(也就是可以并行操作)

    但是,这也引入了若干问题

    多任务引入的问题

    1. 独立:除非明确要求,进程之间不能互相干扰
    2. 共享:公平地共享CPU,但是其中一些程序可能更重要

    由此,在内核中,需要完成以下的两个任务。

    内核需要解决的任务

    1. 调度策略:分配多少时间?什么时候切换进程?切换到哪一个进程?
    2. 任务切换机制:切换之后,如何保证与上一次的上下文一致?

    1. 进程优先级——长幼尊卑

    在所有进程中,重要性并不是都是一致的。这就比消防员中,“救火”的任务远远高于“开锁”的任务。必需得优先执行高优先级的任务。

    1.1 进程的分类

    Linux内核调度器的发展历史

    关于如何去调度进程,内核开发者之间有着热烈的讨论。其中的难点在于不同的工作有不同的需求,很难有一个统一的定量标准。

    2. 进程生命周期——众生百态

    进程因为资源等待等原因,并不总是可以运行的。而调度器在调度的时候必须知道系统的中每个进程状态

    2.1 进程可能的状态

    状态**说明 **
    运行此刻正在执行
    等待万事俱备只欠东风,能够运行但是没有得到许可
    睡眠进程等待一个外部事件
    终止进程退出

    2.2 孤儿进程和僵尸进程

    • 孤儿进程:父进程先于子进程结束
    • 僵尸进程:子进程结束之后,父进程中没有调用wait系统调用

    巨人肩膀

    O(n)、O(1)和CFS调度器 (wowotech.net)

    展开全文
  • 深入Linux内核架构笔记(缺页异常)

    千次阅读 2022-01-28 10:36:11
    如果进程访问 的虚拟地址空间部分尚未与页帧关联,处理器自动地引发一个缺页异常,内核必须处理此异常。这是 内存管理中最重要、最复杂的方面之一,因为必须考虑到无数的细节。例如,内核必须确定以下情况。  ...

    在实际需要某个虚拟内存区域的数据之前,虚拟和物理内存之间的关联不会建立。如果进程访问 的虚拟地址空间部分尚未与页帧关联,处理器自动地引发一个缺页异常,内核必须处理此异常。这是 内存管理中最重要、最复杂的方面之一,因为必须考虑到无数的细节。例如,内核必须确定以下情况。

     缺页异常是由于访问用户地址空间中的有效地址而引起,还是应用程序试图访问内核的受保 护区域?

     目标地址对应于某个现存的映射吗?

     获取该区域的数据,需要使用何种机制?

    缺页处理的实现因处理器的不同而有所不同。由于CPU采用了不同的内存管理概念,生成缺页异 常的细节也不太相同。因此,缺页异常的处理例程在内核代码中位于特定于体系结构的部分。

     arch/x86/kernel/entry_32.S中的一个汇编例程用作缺页异常的入口,但其立即调用了 arch/x86/mm/fault_32.c中的C例程do_page_fault。(大多数CPU对应的特定于体系结构的源代 码中,都包含一个同名例程)

     该例程需要传递两个参数:发生异常时使用中的寄存器集合提供异常原因信息的错误代码(long error_code)。目前error_code只使用了前5个比特位(0、1、2、3、4)

     

     如果地址超出用户地址空间的范围,则表明是vmalloc异常。因此该进程的页表必须与内核的主 页表中的信息同步。实际上,只有访问发生在核心态,而且该异常不是由保护错误触发时,才能允许 这样做。换句话说,错误代码的比特位2、3、0都不能设置。 内核使用辅助函数vmalloc_fault同步页表

    在结束对缺页异常的特定于体系结构的分析之后,确认异常是在允许的地址触发,内核必须确定 将所需数据读取到物理内存的适当方法。该任务委托给handle_mm_fault,它不依赖于底层体系结构, 而是在内存管理的框架下、独立于系统而实现。该函数确认在各级页目录中,通向对应于异常地址的 页表项的各个页目录项都存在。handle_pte_fault函数分析缺页异常的原因。

    如果页不在物理内存中,即!pte_present(entry),则必须区分下面3种情况。

    (1) 如果没有对应的页表项(page_none),则内核必须从头开始加载该页,对匿名映射称之为按 需分配(demand allocation),对基于文件的映射,则称之为按需调页(demand paging)。如果vm_ops 中没有注册vm_operations_struct,则不适用上述做法。在这种情况下,内核必须使用do_ anonymous_page返回一个匿名页。

    (2) 如果该页标记为不存在,而页表中保存了相关的信息,则意味着该页已经换出,因而必须从 系统的某个交换区换入(换入或按需调页)。

    (3) 非线性映射已经换出的部分不能像普通页那样换入,因为必须正确地恢复非线性关联。 pte_file函数可以检查页表项是否属于非线性映射,do_nonlinear_fault在这种情况下可用于处理 异常

     按需分配、调页

    按需分配页的工作委托给do_linear_fault,该函数定义在mm/memory.c中。在转换一些参数之 后,其余的工作委托给__do_fault

    大多数文件都使用filemap_fault读入所需数据。该函数不仅读入所需数据,还实现了预读功能, 即提前读入在未来很可能需要的页。完成该任务所需的机制会在第16章介绍,到时会更详细地讨论该 函数。目前我们只需知道,内核使用address_space对象中的信息,从后备存储器将数据读取到物理内存页 

    (1) 使用vm_area_struct->vm_file找到映射的file对象。

    (2) 在file->f_mapping中找到指向映射自身的指针。

    (3) 每个地址空间都有特定的地址空间操作,从中选择readpage方法。使用mapping->a_ops-> readpage(file, page)从文件中将数据传输到物理内存。

    如果需要写访问,内核必须区分共享和私有映射。对私有映射,必须准备页的一份副本。 

     对于没有关联到文件作为后备存储器的页,需要调用do_anonymous_page进行映射。除了无需向 页读入数据之外,该过程几乎与映射基于文件的数据没什么不同。在highmem内存域建立一个新页, 并清空其内容。接下来将页加入到进程的页表,并更新高速缓存或者MMU

    在内核和用户空间之间复制数据 

    内核经常需要从用户空间向内核空间复制数据。例如,在系统调用中通过指针间接地传递冗长的数据结构时。反过来,也有从内核空间向用户空间写数据的需求。 有两个原因,使得不能只是传递并反引用指针。

    首先,用户空间程序不能访问内核地址;

    其次, 无法保证用户空间中指针指向的虚拟内存页确实与物理内存页关联。

    因此内核需要提供几个标准函 数,以处理内核空间和用户空间之间的数据交换,并考虑到这些特殊情况 

     

     

    展开全文
  • Linux是什么? 它和Windows XP、Windows 2003、2008什么的一样就是一个操作系统而已! Linux能干什么? 它能当服务器,服务器上安装着各种企业应用、服务。 比如:Web服务(apache,就是能架设网站的)、数据库...
  • 摘要适读人群 :希望深入理解linux底层原理的中高级运维人员和嵌入式开发人员。解释透彻:深入浅出地将Linux内核架构与底层原理...深入Linux内核架构与底层原理 作者:刘京洋,韩方深入Linux内核架构与底层原理 ...
  • 如果系统只有一个处理器,那么给定时刻只有一个程序可以运行。...本文主要涉及内核共享CPU时间的方法以及如何在进程之间切换(内核为各进程分配时间,保证切换之后从上次撤销其资源时执行环境完全相同)。 一、进程优先
  • 深入linux内核架构,格式为7z压缩文件,一共108M,分两部分,这是第二部分,两部分全部下载后才可解压成功。
  • 本书讨论了Linux内核的概念、结构和实现。主要内容包括多任务、调度和进程管理,物理内存的管理以及内核与相关硬件的交互,用户空间的进程如何访问虚拟内存,如何编写设备驱动程序,模块机制以及虚拟文件系统,Ext...
  • 进程在Linux中被组织为父子关系,子进程退出时,父进程需要调用wait或waitpid函数等待回收子进程的资源,否则子进程就一直以“僵尸”状态存在。1、ptrace系统调用ptrace系统调用,可以强制让一个进程成为...
  • 深入Linux内核架构——简介和概述

    千次阅读 2021-12-02 20:51:06
    1.1 内核的任务 应用程序的视角:增强的计算机【内核抽象了与硬件的细节】 若干程序的视角:资源管理程序 【分配共享资源(CPU时间,磁盘空间,网络链接】 其它视角:库 系统调用向计算机发送请求 1.2 实现策略 微...
  • 深入Linux内核架构笔记(同步)

    千次阅读 2022-01-28 11:31:51
    内核可以不受限制地访问整个地址空间。在多处理器系统上(或类似地,在启用了内核抢占的单 处理器系统上,可参见第2章),这会引起一些问题。如果几个处理器同时处于核心态,则理论上它们可以同时访问同一个数据结构...
  • 深入linux内核架构 英文版 带完整标签 方便中英文对照 与ULK齐名的内核类书籍
  • 本书很多观点分新颖,言简意赅,《深入理解Linux内核》名声不错,但过于教科书化,而且只讲数据结构不讲算法,不太直观。《Linux内核设计与实现》讲的过于笼统,内容组织也不合理。 强烈推荐此书。 本书缺点: (1) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,306
精华内容 14,522
关键字:

深入linux内核架构