Linux内核设计与实现读书笔记(1)
来源:互联网 发布:遗传算法实现排课系统 编辑:程序博客网 时间:2024/05/17 07:07
我现在要做的科研项目涉及到内核编程的知识,所以在学校的图书馆借了一本《Linux内核设计与实现》(英文名:linux kernel development),打算通过这本书来了解一下linux内核各部分的原理。我选择这本书的原因很简单-薄。全书只有二百多页,但内容还是很全面的。翻译质量还可以,译者还在文中加了自己的解释。看译者序中说这本书适合内核初学者,看过后对内核各个核心子系统有个整体把握。这很好,符合我的要求,《Understand Linux Kernel》实在太厚了,太细了,有时间再看吧。
今天读了第一章 - linux内核简介。收获如下:
1、处理器在任何指定时间点上的活动范围可以概括为下列三者之一:
• 运行于内核空间,处于进程上下文,代表某个特定的进程执行。
• 运行于内核空间,处于中断上下文,与任何进程无关,处理某个特定的中断。
• 运行于用户空间,执行用户进程。
2、Linux内核和传统UNIX内核特点的比较
• Linux支持动态加载内核模块。
• Linux支持对称多处理(SMP)机制
• Linux内核可以抢占。
• Linux内核并不区分线程和其他的一般进程。
3、Linux内核编程与用户空间内应用程序开发的差异
• Linux内核编程时不能访问C库。
• Linux内核编程时必须使用GNU C。
• Linux内核编程时缺乏像用户空间那样的内存保护机制。
• Linux内核编程时浮点数很难使用。
• 内核只有一个很小的定长堆栈。
• 由于内核支持异步中断、抢占式和SMP,因此必须时刻注意同步和并发。
• 要考虑可移植性的重要性。
4、likely()和unlikely()
对于条件选择语句,gcc内建了一条指令用于优化,在一个条件经常出现(likely()),或者该条件很少出现时(unlikely()),编译器可以根据这条指令对条件分支选择进行优化。内核将该指令封装成了宏。
在你想要对某个条件选择语句进行优化之前,一定要搞清楚其中是不是存在这么一个条件,在绝大多数情况下都会成立。如果你的判断正确,确实是这个条件占压倒性的地位,那么性能会得到提升,如果你搞错了,性能反而会下降。
- Linux内核设计与实现读书笔记(1)
- Linux内核设计与实现读书笔记(1)-Linux内核简介
- Linux内核设计与实现 读书笔记(1)内核简介
- Linux内核设计与实现读书笔记(2)
- 读书笔记--《LINUX内核设计与实现》
- 读书笔记--《LINUX内核设计与实现》(二)
- 读书笔记之《Linux内核设计与实现》
- 读书笔记之《Linux内核设计与实现》
- Linux内核设计与实现 读书笔记
- 《Linux内核设计与实现》读书笔记
- linux内核设计与实现的读书笔记
- 《linux内核设计与实现》读书笔记(未完成)
- Linux内核设计与实现读书笔记
- 读书笔记-《Linux内核设计与实现》(1~5章)
- Linux内核设计与实现读书笔记(7)-内核同步介绍
- Linux内核设计与实现读书笔记(8)-内核同步方法
- 《linux内核设计与实现》 - 读书笔记:内核同步介绍
- 《Linux内核设计与实现》读书笔记(六)- 内核数据结构
- 附件里面的记事本没了
- 新技术
- 淡的意味——《读者》文摘
- 个人收藏的编程下载资源全部公布
- 一个程序员的成长的六个阶段
- Linux内核设计与实现读书笔记(1)
- 我在安装MSDE过程系统提示“指定的实例名称无效”。
- 光标闪烁太快!
- 结束
- 应届毕业生少走弯路的十条忠告
- 初日
- 通讯协议的选择,TCP or UDP
- 动态sql语句基本语法
- Opengl学习笔记(一)