《linux内核的设计和实现》学习日记1-2简介
来源:互联网 发布:nginx 日志格式 编辑:程序博客网 时间:2024/04/28 02:11
1. Unix历史: 1
2. Linux历史: 1
3. 内核组成: 1
4. 处理器在任何时间点上的活动范围: 1
5. 获取内核: 1
6. 使用补丁: 2
7. 内核源码树 2
8. 编译内核: 2
9. 衍生多个编译作业 2
10. 内核安装 2
11. 内核开发的特点 2
1. Unix历史:
1969年贝尔实验室设计了一个文件系统原型,最终演化成了unix。
1973年unix被c语言重写。
具有影响力的unix进一步开发组织:加州大学伯克利分校BSD。发展到了今天的Darwin,Droaonfly BSD,FreeBSD,NetBSD和OpenBSD。
2. Linux历史:
1991芬兰大学生linus自己编写一个不成熟但五脏俱全的unix,它克隆了unix,但不是unix,它没有直接应用unix的源代码。
3. 内核组成:
3.1 中断服务程序
响应中断
3.2 进程调度程序
管理多个进程分享处理机
3.3 内存管理
管理进程地址空间
3.4 网络和进程间通信等系统服务
4. 处理器在任何时间点上的活动范围:
运行于内核空间:处于进程上下文,代表某个特定进程的执行。
运行于用户空间:处于中断上下文,与任何进程无关,代表处理特定的中断。
运行于用户空间:执行用户进程。
5. 获取内核:
www.kernel.com
解压:tar xvjf linux-x.y.z.tar.bz2
或者tar xvzf linux-x.y.z.tar.gz
内核一般都在/usr/src/linux下,但是注意不能以root身份对其进行修改,即使在安装新内核时,/usr/src/linux目录下都应该原封不动。
6. 使用补丁:
Patch -pl < ../patch-x.y.z
7. 内核源码树
8. 编译内核:
Make config
遍历所有配置项,要求用户选择。时间很长。
Make menuconfig
利用基于ncurse的图形界面工具
Make xconfig
基于X11的图形工具
Make gconfig
基于gtk+图形界面
Make defconfig
根据自己的体系结构创建默认的配置,生成在config文件中,而且你可以直接更改它。
Make才是真正执行编译的命令。
9. 衍生多个编译作业
Make -jn
衍生n个作业。改善内核编译时间。
10. 内核安装
Make modules_install
11. 内核开发的特点
没有c库
只能用GUN C
没有内存保护机制
浮点数很难使用
注重可移植性
只有一个很小的定长堆栈
支持异步终端,抢占和SMP,注意同步和并发
11.1 没有libc库
像没有外部库一样,内核代码中没有外部头文件。所以类似printf()函数都不能用。但是有printk()函数可以用,并且他可以通过一个标志设置优先级,来决定在什么地方显示。如:
Printk(KERN_ERR,”this is an error./n”);
11.2 GUN C
允许有内联函数:static inline void play(int ball);
允许内联汇编
存在分支申明:在大多数分支结果都可以确定的时候,可以用如likely()和unlikely()对判断条件进行申明。这样的话可以大大提高性能。
如if(likely(foo))
{}
或者
If(unlikely(foo))
{}
11.3 没有内存保护机制
如果是用户程序进行了非法的内存访问,内核会发送SIGSEGV,并结束进程。但是内核自己出现了,就没有办法了。
11.4 小容量的内核栈
通常x86,32位机栈大小是8K,64位机是16K,而且固定不变。
- 《linux内核的设计和实现》学习日记1-2简介
- Linux内核设计与实现读书笔记(1)-Linux内核简介
- 《Linux内核设计与实现》笔记-1-linux内核简介
- Linux内核设计与实现 读书笔记(1)内核简介
- 《Linux内核设计与实现》——第1、2章(内核简介)
- 《linux内核的设计和实现》笔记
- LINUX内核中链表的设计和实现
- 《Linux内核设计与实现》学习笔记之“Linux内核简介”
- 驱动学习日记1--linux内核模块的简单笔记
- Linux内核设计与实现 之一 Linux内核简介
- [Linux内核设计与实现]Linux内核简介
- linux内核设计与实现(第一章)----linux内核简介
- 《Linux内核设计与实现》——Linux内核简介
- 【Linux内核设计与实现】Linux内核简介
- [笔记]《Linux内核设计与实现》第一章Linux内核简介
- 【Linux内核设计与实现】Linux内核简介
- 《Linux内核的设计与实现》读书笔记(一)---Linux内核简介
- 《linux内核设计与实现》Chapter1内核简介(笔记)
- Android用户界面——通用布局对象
- 洗衣自动通知系统
- VS08SP1中CMFCPropertyGridCtrl的基本用法
- 《linux内核设计与实现》学习笔记3进程管理
- Zen Cart模板目录结构
- 《linux内核的设计和实现》学习日记1-2简介
- 升级到Fedora 13
- 想学点知识
- ASP.NET配置文件Web.config 详细解释
- Fedora13下编译libfetion的问题和解决办法
- Java常见的面试题
- 设置thunderbird回复邮件在上方的方法
- cookie相关属性
- 笑话一则