下载中心
深入Linux内核架构与底层原理 (刘京洋)pdf
1星 发布者: 抛砖引玉

2023-07-24 | 1积分 | 230.96MB |  30 次下载

下载 收藏 评论

文档简介
标签: linux

linux

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

内容简介

本书主要描述Linux系统的总体框架和设计思想,包含很多可以直接操作的实例。编写本书的目的是希望读者对Linux系统背后的逻辑有一个全面的了解。本书对比较核心且常用的技术点有更加深入的解释,对实际使用Linux系统工作大有裨益,同时,选择重点的方向进行源码级深度分析,包含大量的案例,而且增加了与Wi……

推荐序一

Linux操作系统在超级计算机、互联网服务、桌面系统、移动和嵌入式设备等领域使用广泛,相关的从业人员和兴趣爱好者一直对Linux的理论和实践有较大需求。本人作为互联网领域的从业人员,非常荣幸可以提前阅读书中的内容。本书内容从内核层面出发,结合作者多年的实践,对各个子系统的设计、实现和演化进行梳理。我……

推荐序二

在当今移动互联网和人工智能技术快速发展的时代,无论是服务器端程序还是智能终端(手机、手表、电视)程序,Linux操作系统都是主流的操作系统,应用非常广泛。基于Linux内核衍生的发行版众多,包括OpenSuse、RedHat、CentOS、Ubuntu、Android等,在如此广泛的应用下,熟悉和理……

前言

本书第1版在上市后,收到很多读者反馈的宝贵意见。本书第2版在第1版的基础上进行了大范围的修订和完善,特别感谢在这个过程中林奕、姚奕涛的勘误帮助。 本书第2版加入了Linux与其他操作系统的对比分析,因为不同的操作系统有着不同点和相同点,通过对比分析可以让读者更容易系统理解设计,甚至产生新的设计。 学……

第1章 操作系统总览

1.1 操作系统简介 操作系统的发展经历了一个百花齐放的过程,现在只剩下少数的几个占据绝对市场统治地位的系统。随着我国经济的发展,国内计算机领域对于操作系统技术的需求越来越旺盛。未来,无论操作系统的市场如何变化,其底层所依赖的内核的核心算法原理都不会有太大的变化。各操作系统在调度、内存管理和中断处理……

第2章 系统结构

2.1 Linux内核整体结构 在Linux内核的结构中使用了很多“约定俗成”的约定,这些约定大部分被C语言开发者所熟知,并被广泛应用到日常使用C语言的开发中。 Linux内核在层次定义中一般使用面向对象的结构体抽象方式,这种方式首先定义一个结构体(包含各种函数指针并且管理其列表),下层通过生成这样……

第3章 锁与系统调用

在Linux内核的内部,当需要进行资源互斥访问的时候,在大部分情况下都需要加锁,以保证对目标资源没有并发的操作。但是,现代SMP(Symmetrical Multi-Processing,对称多处理)非常常见,尤其是在服务器上,并发操作已然成为制约整个系统性能的最主要原因。Linux内核内部的锁技术……

第4章 信号、中断与系统调用

4.1 信号 4.1.1 Linux信号处理机制的设计 1. 信号的设计思想 信号是一个轻量级的进程间通信机制,其特殊点在于,其他的进程间通信机制都要创造通信数据通道,而信号本身就是由内核创建的进程间的API通道。 使用API通道的一个最大的优势是,参与通信的各个部分都不需要自己设计通信所需要的数据……

第5章 Linux系统的启动与进程

5.1 Linux启动过程的组件 5.1.1 启动过程相关组件 Linux的启动过程有很多的组件参与,首先从BIOS开始,然后从磁盘上的分区找到Bootloader,接着找到内核二进制,再使用initrd文件系统初始化早期内核,最后启动systemd等启动管理程序。下面简单介绍一下所涉及的组件。 1……

第6章 调度

6.1 任务调度 6.1.1 调度优先级 在任务调度层面,内核必须要满足来自用户的几个诉求:多任务、任务优先级、可抢占、处理器亲和性,其中用户对处理器亲和性的需求并不是很强烈。 现代操作系统都不得不面对的问题是SMP(Symmetrical Multi-Processing,对称多处理),而SMP的……

第7章 内存管理

7.1 地址空间 7.1.1 64位Linux地址空间 Intel在实现64位的CPU时,在64位的地址寻址空间下只使用了48位有效寻址位数,这48位的有效寻址位置是低48位。但是即使只使用48位的寻址位数,在内存中的地址也是以64位存储的。 若低48位的最高位是0,则代表用户空间地址,最高位是1,……

第8章 存储

8.1 VFS 8.1.1 文件句柄与文件描述符表 用户空间的进程通过open系统调用打开一个文件之后,内核返回的就是一个整数的文件句柄,后续的例如read调用等都使用文件句柄作为输入来索引对应的文件。文件句柄的概念在现代的操作系统中基本都是类似的设计,在Windows系统下叫作Handle(句柄)……

第9章 套接字(socket)

9.1 socket概览 skbuff可以跟踪数据包的整个生命周期,sock则跟踪一个socket的整个生命周期。socket是内核中的一个资源实体,利用这个实体可以访问网络。也就是说,网络协议栈对外呈现的并不是一个面向过程的函数调用,在概念上是一个由类生成的一个个socket对象,通过这一个个so……

第10章 网络

10.1 网络架构 Linux网络部分有非常多的内容,充分体现了其兼容并包的特点。这里给出Linux网络功能的清单式概览:802.1d以太网桥、802.1Q/802.1ad VLAN支持、IP负载压缩、ANSI/IEEE 802.2 LLC type 2支持、MPLS支持、DANH(Doubly a……

第11章 设备管理

11.1 设备模型 11.1.1 sys文件系统 在大部分情况下,所有的设备都是挂载在总线上的,总线也是挂载在上级总线上的,因此整个CPU硬件体系是一个树形的结构,这个树形的结构在Linux下就被抽象为一个设备模型。 从CPU的视角出发,有一部分控制器是直接集成在CPU封装内部的,这部分控制器并不属……

第12章 二进制

12.1 二进制原理 12.1.1 编译、链接与执行 源代码形成二进制的过程并没有标准,但二进制本身有格式标准,且非常灵活、可扩充。Android的NDK在编译ELF二进制的时候得到的二进制格式与发行版的不一样,虽然都是ELF格式,但是段的定义不同。整体的编译原则是编译器与加载器要用同一套工具。 例……

评论
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

推荐帖子
精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 带有短路保护系统的5V直流稳压电源电路图

  • 如何构建一个触摸传感器电路

  • 如何调制IC555振荡器

  • 基于ICL296的大电流开关稳压器电源电路

×