Linux读书笔记1/2章
linux的内核设计:
第一章
1.1Linux历史:
历经时间的考验,今天Unix已经发展成一个支持抢占式多任务、多线程、虚拟内存、换页、动态链接、TCP/Ip网络的现代化操作系统。
1.2追寻Linux的足迹:
Linux是类Unix系统,但不是Unix系统;
Linux是个非商业化的产品;
Linux系统的基础是:内核、C库、工具集和系统的基本工具;
1.3操作系统和内核:
上下文代表着内核的活动范围。
1.4Linux内核与传统的Unix内核比较:
操作系统内核可以分为:单内核和双内核;
不能忽视Unix的API;
Linux支持加载动态模块;
Linux支持对称多处理(SMP)机制;
Linux可以抢占;
Linux对线程实现更有意思;
Linux体现了自由这个词的精髓;
1.5Linux内核版本:
稳定和出于开发中的;
1.6Linux开发者社区:
成为社区中的一员:
1.7小结:
去书中寻找快乐吧!
第二章:
从内核出发
2.1获取内核源码:
登陆Linux内核官网:HTTP:// kernel.org.
2.1.1使用Git:
一个副本:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
下载代码,新的分支:
git pull
2.1.2安装内核源代码:
如果压缩是bzip2:
tar xvjf linux-x.y.z.tar.bz2
如果是GNU的zip:
tar xvzf linux-x.y.z.tar.gz
注意:/usr/src/linux应该原封不动
2.1.3使用补丁:
patch -p1 < ../patch-x.y.z
2.2内核源码树:


2.3编译内核
2.3.1内核配置:
字符界面工具:
make config
图形界面工具:
make menuconfig
基于gtk的图形工具:
make defconfig
验证更新配置:
make oldconfig
最后:
make
2.3.2减少编译的垃圾信息:
重定向:
make > .. /detritus
无返回值的黑洞:
make > /dev/null
2.3.3衍生多个编译作业:
多作业编译内核:
make jn
2.3.4安装新内核:
make modules_install
2.4内核开发的特点:
1.内核开发时既不能访问C库也不能访问标准的C头文件
2.内核编程时必须使用GNU C
3.内核编程时缺乏像用户空间那样的内存保护机制
4.内核编程时难以执行浮点运算
5.内核给每个进程只有一个很小的定长堆栈
6.由于内核支持异步中断、抢占和SMP,必须时刻注意同步和并发
7.要考虑可移植性的重要性
2.5小结:
内核有独一无二的气质,只有通过实际的理解和阅读才能理解内核。
Linux读书笔记1/2章的更多相关文章
- # linux读书笔记(3章)
linux读书笔记(3章) 标签(空格分隔): 20135328陈都 第三章 进程管理 3.1 进程 进程就是处于执行期的程序(目标码存放在某种存储介质上).但进程并不仅仅局限于一段可执行程序代码( ...
- linux读书笔记(5章)
linux读书笔记(5章) 标签(空格分隔): 20135328陈都 第五章 系统调用 5.1 与内核通信 系统调用 让应用程序受限的访问硬件设备 提供创建新进程并与已有进程通信的机制 提供申请操作系 ...
- linux读书笔记第三章
第3章 进程管理20 3.1 进程20 进程就是处于执行期的程序(目标码存放在某种存储介质上),但进程并不仅仅局限于一段可执行程序代码.通常进程还要包含其他资源,像打开的文件,挂起的信号,内核内部数据 ...
- Linux读书笔记第五章
主要内容: 什么是系统调用 Linux上的系统调用实现原理 一个简单的系统调用的实现 1. 什么是系统调用 简单来说,系统调用就是用户程序和硬件设备之间的桥梁. 用户程序在需要的时候,通过系统调用来使 ...
- 《Linux内核设计与实现》第八周读书笔记——第四章 进程调度
<Linux内核设计与实现>第八周读书笔记——第四章 进程调度 第4章 进程调度35 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配 ...
- 《Linux内核设计与分析》第六周读书笔记——第三章
<Linux内核设计与实现>第六周读书笔记——第三章 20135301张忻估算学习时间:共2.5小时读书:2.0代码:0作业:0博客:0.5实际学习时间:共3.0小时读书:2.0代码:0作 ...
- 《Linux内核设计与实现》 第八周读书笔记 第四章 进程调度
20135307 张嘉琪 第八周读书笔记 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.只有 ...
- 《Linux内核分析》读书笔记(四章)
<Linux内核分析>读书笔记(四章) 标签(空格分隔): 20135328陈都 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行 ...
- 《LINUX内核设计与实现》第三周读书笔记——第一二章
<Linux内核设计与实现>读书笔记--第一二章 20135301张忻 估算学习时间:共2小时 读书:1.5 代码:0 作业:0 博客:0.5 实际学习时间:共2.5小时 读书:2.0 代 ...
随机推荐
- netty接收大文件的方法
参考:http://blog.csdn.net/linuu/article/details/51371595 https://www.jianshu.com/p/a0a51fd79f62 netty默 ...
- IDEA整合日志框架Log4j2+Slf4j详细配置过程
日志框架这么多,他们之间到底是什么关系呢?笼统的讲就是slf4j是一系列的日志接口,而log4j2.logback是具体实现了接口功能的日志框架.现在的主流日志接口都使用slf4j,而日志的实现就见仁 ...
- Java基础之Calendar类、JNDI之XML
一.Calendar类 从JDK1.1版本开始,在处理日期和时间时,系统推荐使用Calendar类进行实现.在设计上,Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要 ...
- Python使用函数实现把字符串转换成整数
需求:假设Python没有提供内置函数int如果使用函数方式实现把一串字符串转换成整数例如把字符串‘12345‘转换成整数12345 思路 1,字符串也是序列可以使用map函数处理分割成一个列表 2, ...
- Python全栈day10(Pycharm的安装和使用)
Python开发IDE 一,下载Pycharm专业版 二,安装Pycharm 三,新建项目 四,设置字体大小
- 移动端click时间、touch事件、tap事件
一.click 和 tap 比较 两者都会在点击时触发,但是在手机WEB端,click会有 200~300 ms,所以请用tap代替click作为点击事件. singleTap和doubleTap 分 ...
- 出现unmapped spring configuration files found
intell idea启动出现unmapped spring configuration files found提示. 把spring里面的内容都打勾.
- Intellij idea中maven加载jar包很慢的解决方案.
默认加载的都是国外的源,我们可以配置国内的源. 右键项目-->maven-->Open ''setting.xml'' 复制下面的代码进去.保存. 我这里使用的版本是 ideaIU-14. ...
- Fang Fang---hud5455(字符串处理)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5455 就是求字符串中含有几个f[i], 输出最小的: 例如fff应该是2,有f[0]和f[1]组成的; ...
- 调试maven源代码
下载源代码,导入idea 运行MavenCli ,设置vm参数 -Dclassworlds.conf=/Users/fsq/Downloads/apache-maven-3.6.2.0/bin/m2. ...