Linux内核源代码分析-目录

第一部分 Linux 内核源代码
arch/i386/kernel/entry.S 2
arch/i386/kernel/init_task.c 8
arch/i386/kernel/irq.c 8
arch/i386/kernel/irq.h 19
arch/i386/kernel/process.c 22
arch/i386/kernel/signal.c 30
arch/i386/kernel/smp.c 38
arch/i386/kernel/time.c 58
arch/i386/kernel/traps.c 65
arch/i386/lib/delay.c 73
arch/i386/mm/fault.c 74
arch/i386/mm/init.c 76
fs/binfmt-elf.c 82
fs/binfmt_java.c 96
fs/exec.c 98
include/asm-generic/smplock.h 107
include/asm-i386/atomic.h 108
include/asm-i386/current.h 109
include/asm-i386/dma.h 109
include/asm-i386/elf.h 113
include/asm-i386/hardirq.h 114
include/asm-i386/page.h 114
include/asm-i386/pgtable.h 115
include/asm-i386/ptrace.h 122
include/asm-i386/semaphore.h 123
include/asm-i386/shmparam.h 124
include/asm-i386/sigcontext.h 125
include/asm-i386/siginfo.h 125
include/asm-i386/signal.h 127
include/asm-i386/smp.h 130
include/asm-i386/softirq.h 132
include/asm-i386/spinlock.h 133
include/asm-i386/system.h 137
include/asm-i386/uaccess.h 139
include/linux/binfmts.h 146
include/linux/capability.h 147
include/linux/elf.h 150
include/linux/elfcore.h 156
include/linux/interrupt.h 157
include/linux/kernel.h 158
include/linux/kernel_stat.h 159
include/linux/limits.h 160
include/linux/mm.h 160
include/linux/module.h 164
include/linux/msg.h 168
include/linux/personality.h 169
include/linux/reboot.h 169
include/linux/resource.h 170
include/linux/sched.h 171
include/linux/sem.h 179
include/linux/shm.h 180
include/linux/signal.h 181
include/linux/slab.h 184
include/linux/smp.h 184
include/linux/smp_lock.h 185
include/linux/swap.h 185
include/linux/swapctl.h 187
include/linux/sysctl.h 188
include/linux/tasks.h 194
include/linux/time.h 194
include/linux/timer.h 195
include/linux/times.h 196
include/linux/tqueue.h 196
include/linux/wait.h 198
init/main.c 198
init/version.c 212
ipc/msg.c 213
ipc/sem.c 218
ipc/shm.c 227
ipc/util.c 236
kernel/capability.c 237
kernel/dma.c 240
kernel/exec_domain.c 241
kernel/exit.c 242
kernel/fork.c 248
kernel/info.c 255
kernel/itimer.c 255
kernel/kmod.c 257
kernel/module.c 259
kernel/panic.c 270
kernel/printk.c 271
kernel/sched.c 275
kernel/signal.c 295
kernel/softirq.c 307
kernel/sys.c 307
kernel/sysctl.c 318
kernel/time.c 330
mm/memory.c 335
mm/mlock.c 345
mm/mmap.c 348
mm/mprotect.c 358
mm/mremap.c 361
mm/page_alloc.c 363
mm/page_io.c 368
mm/slab.c 372
mm/swap.c 394
mm/swap_state.c 395
mm/swapfile.c 398
mm/vmalloc.c 406
mm/vmscan.c 409
第二部分 Linux 内核源代码分析
第1章 Linux简介 416
1.1 Linux和Unix的简明历史 416
1.2 GNU通用公共许可证 418
1.3 Linux开发过程 419
第2章 代码初识 421
2.1 Linux内核源程序的部分特点 421
2.1.1 gcc特性的使用 421
2.1.2 内核代码习惯用语 422
2.1.3 减少#if和#ifdef的使用 423
2.2 代码样例 424
2.2.1 printk 424
2.2.2 等待队列 429
2.2.3 内核模块 432
2.3 配置与编译内核 434
2.3.1 配置内核 434
2.3.2 构建内核 436
2.3.3 备份的重要性 436
2.3.4 发布你的改进 437
第3章 内核体系结构概述 439
3.1 内核设计目标 439
3.1.1 清晰性 439
3.1.2 兼容性 439
3.1.3 可移植性 440
3.1.4 健壮性和安全性 440
3.1.5 速度 441
3.2 内核体系结构初识 441
3.3 内核体系结构的深入了解 442
3.4 Linux 内核的类型 444
3.5 设计和实现的关系 446
3.5.1 内核源程序目录结构 446
3.5.2 体系结构相关和体系结构无关的
代码 450
第4章 系统初始化 451
4.1 引导PC机 451
4.2 初始化Linux内核 452
4.2.1 BogoMIPS 455
4.2.2 分析内核选项 456
4.3 init 459
第5章 系统调用 462
5.1 什么是系统调用 462
5.2 如何激活系统调用 463
5.2.1 system_call 464
5.2.2 lcall7 468
5.3 系统调用样例 469
第6章 信号、中断和时间 474
6.1 锁的概述 474
6.2 信号 474
6.2.1 数据结构 475
6.2.2 应用函数 476
6.2.3 传送信号 480
6.2.4 其他有关信号的函数 489
6.2.5 内核如何区分实时信号和非
实时信号 491
6.3 中断 492
6.3.1 中断请求:IRQ 492
6.3.2 下半部分 493
6.3.3 数据结构 493
6.3.4 操作和IRQ 496
6.3.5 硬件中断处理程序和下半部分 499
6.4 时间 502
第7章 进程和线程 505
7.1 调度和时间片 505
7.2 实时进程 506
7.3 优先级 506
7.4 进程ID:PID 506
7.5 引用计数 506
7.6 权能 507
7.7 进程在内核中是如何表示的 508
7.8 进程来源:fork和_ _clone 511
7.9 运行新程序 514
7.10 可执行格式 517
7.11 调度及它们是如何运行的 519
7.11.1 调度函数和调度策略 519
7.11.2 计算goodness值 522
7.11.3 非实时优先级 523
7.11.4 实时优先级 525
7.12 遵守限制 526
7.12.1 权能 526
7.12.2 用户ID和组ID 529
7.12.3 资源限制 530
7.13 进程的结束 530
7.13.1 exit 530
7.13.2 wait 532
第8章 内存 535
8.1 虚拟内存 535
8.1.1 交换和分页 536
8.1.2 地址空间 537
8.1.3 内存管理单元 537
8.1.4 页目录和页表 538
8.1.5 转换后备缓存 540
8.1.6 段 540
8.2 进程的内存组织 541
8.2.1 struct vm_area_struct 541
8.2.2 struct vm_operations_struct 542
8.2.3 struct mm_struct 542
8.2.4 VMA的操作 542
8.3 分页 544
8.3.1 页面保护详述 544
8.3.2 写拷贝 545
8.3.3 页面错误 546
8.3.4 页面调出 551
8.4 交换设备 552
8.5 内存映射mmap 556
8.6 用户空间和内核空间的动态内存 560
8.6.1 brk 561
8.6.2 vmalloc和vfree 562
8.7 主存储器信息转储 565
第9章 System V IPC 568
9.1 消息队列 568
9.2 信号量 581
9.3 共享内存 590
第10章 对称多处理 596
10.1 并行程序设计概念及其原语 597
10.1.1 原子操作 597
10.1.2 test-and-set 599
10.1.3 信号量 600
10.1.4 自旋锁 604
10.2 APIC和CPU-To-CPU通信 607
10.3 SMP支持如何影响内核 607
10.3.1 对调度的影响 607
10.3.2 smp_local_timer_interrupt 610
10.3.3 lock_kernel和unlock_kernel 611
10.3.4 softirq_trylock 612
10.3.5 cli和sti 612
10.3.6 irq_enter和irq_exit 613
第11章 可调内核参数 614
11.1 /proc/sys 支持 616
11.2 sysctl系统调用 621 

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

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

相关文章

[转贴]怎样规划你毕业以后的人生

我自己呢,先是在国营的研究所混了4年,后来到一家公司干了6年,2002年出来自己做公司,现在也就是混了一个温饱吧,算是有房有车,有点积蓄,但是不多,还有一个可爱的女儿。回首这10来年&a…

几种常用加密算法比较

由于计算机软件的非法复制,通信的泄密、数据安全受到威胁,解密及盗版问题日益严重,甚至引发国际争端,所以在信息安全技术中,加密技术占有不可替代的位置,因此对信息加密技术和加密手段的研究与开发&#xf…

python BeautifulSoup 爬虫运行出现 exited with code -1073741571

首先,exited with code -1073741571意思是栈溢出。具体可以看https://blog.csdn.net/vblittleboy/article/details/6613815 它的前一个错误是程序递归深度过深。 但我没有在函数里用递归? python认为你进入一个函数就进入更深一层的递归。 import sys#出…

ORACLE HANDBOOK系列之十一:分区(Partition)

Partitioning enables you to decompose very large tables and indexes into smaller and more manageable pieces called partitions. Each partition is an independent object with its own name and optionally its own storage characteristics. Oracle允许用户将大表以及…

不要错过路边的的风景

人生就像一次旅行。人们总是忙于奔赴目的地,却往往忽略了路边的风景。 随着年龄的增长,人们越来越没有时间去寻求生命中的惊奇和美丽了,他们只在乎地位,财富和权力。大多数人为了不落人后,已经花去了自己大部分时间和精…

复制表、复制表结构、复制数据

完全复制表(含表结构表数据) create table 新表名 as select * from 需要复制的表名; 复制表部分字段和数据 CREATE TABLE 新表名(列1,列2) AS SELECT 列1,列2 FROM OLD_TABLE;复制表结构不…

劝你不要转行

在知乎收到一个咨询,问题如下您好,想向您请教一些问题。想转行做嵌入式工程师个人基本信息29岁,电子与通信工程专业硕士,毕业后就职于某车企,主要从事类似项目管理一职。去年考入某事业单位,业余时间相对较…

STL中的map集合扩展字段比较方便

扩展字段map<string, string>真是个好东西&#xff0c; 在定各种协议时很常用&#xff0c;便于扩展 #include <iostream> #include <map> #include <string> using namespace std; void fun(const map<string, string> &mp) { } …

linux下DHCP的安装配置

今天在整理以前的资料的时候&#xff0c;看到了这篇过去积攒的资料&#xff0c;过程详细所以拿来给大家一块分享&#xff0c;同时我也在做&#xff0c;提高一下熟练度。 【实验名称】Linux下DHCP服务的配置与安装【实验拓扑】【实验目标】了解DHCP服务的工作原理&#xff0c;掌…

在GZIDG弄服务器的这一整夜,快乐

公母服务器: 去到IDG那里,2 台Dell ,一台五舟服务器: 初步给的网站架构,一台Dell服务器作为Web服务器,4cpu,4G内存,相信目前的架构能够满足初期的需要 整个架构做web服务器接公网,五舟服务器也接公网作为文件服务器,数据库做为内网与web服务器接一个端口 一个接…

175. Combine Two Tables

select FirstName, LastName,City, State from Personleft join Address on Person.PersonId Address.PersonId; 转载于:https://www.cnblogs.com/yuesi/p/10134925.html

STL中map的使用要点

我们都知道&#xff0c; 当map不存在某key时&#xff0c; 如果用下标操作&#xff0c; 便会产生新key。 因此&#xff0c; 要特别注意 #include <iostream> #include <map> #include <string> using namespace std; int main() { map<string, s…

浅谈一下嵌入式中的强符号和弱符号

__attribute__ 是一个编译器指令&#xff0c;其实是 GNU C 的一种机制&#xff0c;本质是一个编译器的指令&#xff0c;在声明的时候可以提供一些属性&#xff0c;在编译阶段起作用&#xff0c;来做多样化的错误检查和高级优化。用于在 C、C、Objective-C 中修饰变量、函数、参…

web前端开发之div+css教程精华收集二

11个让你代码整洁的原则http://www.xinran001.com/bbs/thread-73231-1-1.html HTML 实体字符http://www.xinran001.com/bbs/thread-256-1-1.html你真的了解HTML吗http://www.xinran001.com/bbs/thread-7258-1-1.html当inline-block和text-indent遇到IE6,IE7http://www.xinran00…

POJ_1862 Stripies 【贪心】

一、题面 POJ1862 二、分析 反省一下&#xff0c;自己英语水平着实不行&#xff0c;该题其实就是问若给出若干个这种生物&#xff0c;根据这种体重变换方式&#xff0c;最终合并成一个后&#xff0c;体重最少是多少。根据公式 $m 2\sqrt{m_{1}m_{2}}$ 我们可以发现&#xff0c…

C++ string assign()赋值常用方法

C string assign()赋值常用方法 函数assign()常用在给string类变量赋值. 常用方法有: 1,直接用另一个字符串赋值. 如str2.assign(str1);即用str1给str2赋值. 2,用另一个字符串的一个子串赋值 如str3.assign(str1, 2, 3); 3,用一个字符串的前一段子串赋值; 如str4.assign("…

SEO技巧:好的域名是网站成功的开始

很多人都知道做网站可以赚钱&#xff0c;所以很多懂一些网络技术的就开始制作自己的站点了。制作网站的开端&#xff0c;如果不是为了自己的兴趣&#xff0c;而是纯粹为了赚钱&#xff0c;那么如何把握和选择网站内容的主体和方向&#xff0c;往往就会成为令人头疼的一件事情。…

想成为硬件工程师,难不?

有很多朋友经常会问&#xff0c;成为高级嵌入式系统硬件工程师&#xff0c;需要做到哪些呢?那么&#xff0c;我们就先从嵌入式硬件工程师是个什么概念入手。一、如何理解“嵌入式”的概念呢?1、从硬件上&#xff0c;将基于CPU的处围器件&#xff0c;整合到CPU芯片内部&#x…

.Net/C#中Cache的用法

Cache 即高速缓存&#xff0c;使用合理可以提高网站访问速度&#xff0c;减少服务器压力 什么是缓存&#xff1f;Web 应用程序通常都是被多个用户访问。一个Web站点可能存在一个“重量级”的加载&#xff0c;它能够使得站点在访问的时候&#xff0c;拖慢整个服务器。当站点被大…

Maven继承

继承为了消除重复&#xff0c;可以把pom 中很多相同的配置提取出来&#xff1b;如&#xff1a;grouptId&#xff0c; version 等。 在使用的时候子工程直接继承父工程的依赖版本号&#xff0c;子工程中不再需要指定具体版本号&#xff0c;方便统一管控项目的依赖版本问题。 创建…