程序员必备的技能-深入理解 Linux 内核拆解

news2024/11/15 17:54:39

841 页的《深入理解 Linux内核》堪称经典,时隔多年打开,泛黄的纸张上面仍然跳跃出一个个让人心潮澎湃的知识点,突然让我想起一位微信朋友的昵称:知识的舔狗!

拆,开始~

前言


第一章 绪论


Linux与其他类Unix内核的比较

硬件的依赖性

Linux版本

操作系统基本概念

Unix文件系统概述

Unix内核概述

第二章 内存寻址


内存地址

硬件中的分段

Linux中的分段

硬件中的分页

Linux中的分页

第三章 进程


进程、轻量级进程和线程

进程描述符

进程切换

创建进程

撤消进程

第四章 中断和异常


中断信号的作用

中断和异常

中断和异常处理程序的嵌套执行

初始化中断描述符表

异常处理

中断处理

软中断及tasklet

工作队列

从中断和异常返回

第五章 内核同步

内核如何为不同的请求提供服务

同步原语

对内核数据结构的同步访问

避免竞争条件的实例

第六章 定时测量

时钟和定时器电路

Linux计时体系结构

更新时间和日期

更新系统统计数

软定时器和延迟函数

与定时测量相关的系统调用

第七章 进程调度

调度策略

调度算法

调度程序所使用的数据结构

调度程序所使用的函数

多处理器系统中运行队列的平衡

与调度相关的系统调用

第八章 内存管理

页框管理

内存区管理

非连续内存区管理

第九章 进程地址空间

进程的地址空间

内存描述符

线性区

缺页异常处理程序

创建和删除进程的地址空间

堆的管理

第十章 系统调用

POSIX API和系统调用

系统调用处理程序及服务例程

进入和退出系统调用

参数传递

内核封装例程

第十一章 信号

信号的作用

产生信号

传递信号

与信号处理相关的系统调用

第十二章 虚拟文件系统

虚拟文件系统(VFS)的作用

VFS的数据结构

文件系统类型

文件系统处理

路径名查找

VFS系统调用的实现

文件加锁

第十三章 I/O体系结构和设备驱动程序

I/O体系结构

设备驱动程序模型

设备文件

设备驱动程序

字符设备驱动程序

第十四章 块设备驱动程序

块设备的处理

通用块层

I/O调度程序

块设备驱动程序

打开块设备文件

第十五章 页高速缓存

页高速缓存

把块存放在页高速缓存中

把脏页写入磁盘

sync()、fsync()和fdatasync()系统调用

第十六章 访问文件

读写文件

内存映射

直接I/O传送

异步I/O

第十七章 回收页框

页框回收算法

反向映射

PFRA实现

交换

第十八章 Ext2和Ext3文件系统

Ext2的一般特征

Ext2磁盘数据结构

Ext2的内存数据结构

创建Ext2文件系统

Ext2的方法

管理Ext2磁盘空间

Ext3文件系统

第十九章 进程通信

管道

FIFO

System V IPC

POSIX消息队列

第二十章 程序的执行

可执行文件

可执行格式

执行域

exec函数

附录一 系统启动

附录二 模块

附录

《深入理解Linux内核》第三版是2007年中国电力出版社出版的图书。将引领你畅游内核中用到的最主要数据结构、算法和编程技巧。如果你的确想了解计算机内部的实现机理,那么作者透过现象探寻本质,提供了颇有价值的深入分析。本书针对具体的Intel平台,讨论了其重要特征,逐行剖析了相关的代码片段。但是,本书涵盖的内容不仅仅局限于代码的机理,还解释了Linux运作方式的理论支撑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/356401.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springmvc汽车企业公司网站的系统设计 java ssm

红旗汽车走进社区,走进生活,成为当今生活中不可缺少的一部分。随着汽车行业的发展,加强管理和规范管理司促进红旗汽车网站健康发展的重要推动力。在我国迎来良好的发展机遇,但同时也确实有许多问题的需要研究和探讨。系统主要完成…

pvs中pv显示[unknown]解决方法、正确剔除一个vg流程方法【不影响vg已有的lv数据】、vgs容量和硬盘容量显示不一致解决方法

文章目录pvs中pv显示[unknown]解决方法报错产生情况报错说明解决方法解决方法【无法修复情况,重要!!!】解决方法【正常情况下】正常的剔除一个vg流程【不影响vg已有lv】环境准备强制剔除正常剔除vgs容量和硬盘容量显示不一致解决方…

Mr. Cappuccino的第42杯咖啡——Kubernetes之Pod控制器(一)

Kubernetes之Pod控制器Pod控制器介绍ReplicaSet弹性扩容弹性缩容使用scale命令进行扩容或者缩容更新镜像删除ReplicaSetDeployment弹性扩容与缩容删除Deployment更新镜像重建更新滚动更新版本回退Pod控制器介绍 Pod是Kubernetes集群中能够被创建和管理的最小部署单元。所以需要…

Beats:使用 fingerprint 来连接 Beats/Logstash 和 Elasticsearch

针对带有 HTTPS 访问的 Elasticsearch 集群来说,在我之前的很多文章,我都习惯于使用集群的证书来访问 Elasticsearch。你可以参考我之前的文章 “Elastic Stack 8.0 安装 - 保护你的 Elastic Stack 现在比以往任何时候都简单”。这是一种非常简便的方法。…

一文搞懂 DevOps

前言 DevOps作为一个热门的概念,近年来频频出现在各大技术社区和媒体的文章中,备受行业大咖的追捧,也吸引了很多吃瓜群众的围观。 那么,DevOps是什么呢? 有人说它是一种方法,也有人说它是一种工具&#…

github上传本地文件详细过程

repository 也就是俗称的仓库 声明:后续操作基于win10系统 前提:有一个github账号、电脑安装了git(官方安装地址) 目的: 把图中pdf文件上传到github上的个人仓库中 效果: 温馨提示: git中复制: ctrl insert&#xf…

【JavaWeb】一文学会JPA

✅✅作者主页:🔗孙不坚1208的博客 🔥🔥精选专栏:🔗JavaWeb从入门到精通(持续更新中) 📋📋 本文摘要:本篇文章主要介绍JPA的概念、注解实现ORM规范…

微信小程序学习第11天——Vant Weapp组件库、API Promise化、全局数据共享Mobx、分包

目录一、小程序对npm 的限制二、使用Vant Weapp组件库1、安装组件2、使用组件3、定制全局样式三、API Promise化1、下载miniprogram-api-promise2、引入3、使用四、全局数据共享五、分包1、分包概念2、使用分包3、独立分包4、分包预下载一、小程序对npm 的限制 在小程序中使用…

数值方法笔记2:解决非线性方程

1. 不动点定理及其条件验证2. 收敛阶、收敛检测与收敛加速2.1 如何估计不动点迭代的收敛阶xk1g(xk){x}_{{k}1}{g}\left({x}_{{k}}\right)xk1​g(xk​)2.2 给定精度的情况下,如何预测不动点迭代需要迭代的次数2.3 如何加快收敛的速度2.4 停止不定点迭代的条件2.5 不动…

基于Transformer的NLP处理管线

HuggingFace transformers 是一个整合了跨语言、视觉、音频和多模式模态与最先进的预训练模型并且提供用户友好的 API 的AI开发库。 它由 170 多个预训练模型组成,支持 PyTorch、TensorFlow 和 JAX 等框架,能够在代码之间进行互操作。 这个库还易于部署&…

【Leedcode】数据结构中链表必备的面试题(第一期)

链表必备的面试题 (附图解和源码)(第一期) 文章目录链表必备的面试题 (附图解和源码)(第一期)一、第一题1.题目2.思路图解(1)pos是首链表(2&#…

基于SpringBoot+Vue的鲜花商场管理系统

【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、…

【Vue3源码】第三章 readonly详解 从零实现Vue3 readonly API

【Vue3源码】第三章 readonly详解 从零实现Vue3 readonly API 前言 上一章节我们实现了effect函数的stop和onstop功能,至此effect函数源码的编写就暂时告一段落了,这一章我们继续解读Vue3源码,开始实现Vue3 Reactivity :core 中…

Java基础361问14问——为什么非静态内部类会默认持有外部类的引用?

在内存泄露问题排查中最常遇到就是 【非静态内部类默认持有外部类的引用】 文章目录1 字节码分析javac Activity.javajavap -c Activity.class2 静态内部类会持有外部类引用吗?参考文档// 简化处理相关代码 public class Activity {private Handler inner new Handler();priv…

C++面向对象(中)

文章目录前言1.类的6个默认成员函数介绍2.构造函数3.析构函数1.概念2.析构函数特征4.拷贝构造1.概念2.拷贝构造函数特征3.注意事项5.赋值运算符重载1.概念6.补充知识const成员函数7.取地址运算符和const取地址运算符重载8.总结前言 本文主要介绍C中的六个天选之子,…

MicroBlaze系列教程(6):AXI_IIC的使用

文章目录 @[toc]AXI_IIC简介MicroBlaze硬件配置常用函数使用示例波形实测参考资料工程下载本文是Xilinx MicroBlaze系列教程的第6篇文章。 AXI_IIC简介 一般情况下,使用FPGA实现I2C协议主要有两种方式:一种是基于Verilog实现起始位、停止位、ACK产生和判断、数据的发送和接收…

程终止、进程睡眠、进程对信号处理过程中等的方法

上一章学习了调度的方式,分为主调度器和周期性调度器,明白了进程切换分为自愿(voluntary)和强制(involuntary)两种。 自愿切换: 是指任务由于等待某种资源,将state改为非running状态后,主动调用schedule让出CPU 任务…

html中元素居中的五种方法

在网页开发中,经常会有嵌套元素中将子元素居中的要求。下边将五种常用的居中方法进行总结。 1:原始图(父子元素无border,无padding): 2:实现居中效果: 一:使用margin…

一篇文章带你学会Anisble中的如何处理失败任务

目录 一、循环 1、简单循环 2、循环散列或字典列表 3、练习 二、条件 三、触发器 四、处理失败任务 1、ignore_errors 2、force_handlers 3、changed_when 4、failed_when 5、block 练习 一、循环 作用:循环迭代任务 1、简单循环 loop: ##赋值列表 -…

[软件工程导论(第六版)]第4章 形式化说明技术(复习笔记)

文章目录4.1 概述4.2 有穷状态机4.3 Petri网4.4 Z语言按照形式化程度,可以把软件工程使用的方法划分成非形式化、半形式化、形式化三类非形式化方法:使用自然语言描述需求规格说明半形式化方法:使用数据流图或实体-联系图建立模型形式化方法&…