《Linux内核设计与实现》读书笔记 第一、二章
第一章 Linux内核简介
1.1Unix历史
Unix特点:1、很简洁
2、所有东西都被当成文件对待
3、Unix内核和相关的系统工具软件都是用C语言编写而成
4、进程创建非常迅速
所以Unix很强大。
1.2追寻Linus足迹:linux简介
Linus开发。Linux是类Unix系统。Linux内核也是自由软件。
1.3操作系统和内核简介
操作系统:在整个系统中负责完成最基本功能和系统管理的那些部分。包括内核、设备驱动程序、启动引导程序、命令行shell或者其他种类的用户界面、基本的文件管理工具和系统工具。
内核:内核才是操作系统的核心。由负责响应中断和中断服务程序、负责管理多个进程从而分享处理器时间的调度程序,负责管理进程地址空间的内存管理程序和网络、进程间通信等系统服务程序共同组成。独立于普通应用程序,一般处于系统态。
系统中运行应用程序通过系统调用与内核通信。内核还要负责管理系统的硬件设备。
1.4Linux内核和传统内核的比较
单内核
从整体是作为一个单独的大过程实现。大家都身处同一地址空间,内核之间的通信是微不足道的。单模块具有简单和性能高的特点。
微内核
微内核功能被划分为多个独立的过程。通过消息传递处理微内核通信,采用进程间通信(IPC)机制
实际应用的基于微内核的系统都让大部分或全部服务器位于内核。
Linux内核
支持动态加载内核模块;支持对称多处理机制;内核可以抢占;对内核来说所有进程都一样;提供北邮设备类的面向对象的设备模型;
1.5Linux内核版本
稳定的和处于开发中的。
命名机制:用”.“分隔的数字。第一个数字是主版本号,第二个数字是从版本号,第三个数字是修订版本号,第四个可选的数字为稳定版本号。
1.6Linux内核开发者社区
Linux内核邮件列表很有用。
第二章 从内核出发
2.1获取内核源码
Linux内核官方网站http://www.kernel.org
使用GIt获取最新提交到Linux版本树的一个副本:git clone git://git.kernel.org/pub/scm/linux/kernel/gie/Torvalds/linux-2.6.git
使用增量补丁想当于更新版本:patch –pl<../patch-x.y.z
2.3编译内核
编译内核之前需要进行配置。配置为二选一(yes or no)或三选一(yes or no or module)
配置工具:make config 遍历所有配置项,耗时长
Make menuconfig 基于ncurse库编制的图形界面工具
Make gconfig 基于gtk+的图形工具
Make defconfig 缺省配置
配置完成需要make就可以编译
2.4内核开发的特点
与应用程序开发的不同:
l 既不能访问C库也不能访问标准的C头文件库
l 必须使用GUN C
l 缺乏像用户空间那样的内存保护机制
l 难以执行浮点运算
l 给每个进程只有一个很小的定长堆栈
l 由于内核支持异步中断、抢占和SMP,因此必须时刻注意同步和并发
l 要考虑可移植性
《Linux内核设计与实现》读书笔记 第一、二章的更多相关文章
- Linux内核设计与实现 读书笔记 转
Linux内核设计与实现 读书笔记: http://www.cnblogs.com/wang_yb/tag/linux-kernel/ <深入理解LINUX内存管理> http://bl ...
- Linux内核设计与实现 读书笔记
第三章 进程管理 1. fork系统调用从内核返回两次: 一次返回到子进程,一次返回到父进程 2. task_struct结构是用slab分配器分配的,2.6以前的是放在内核栈的栈底的:所有进程的ta ...
- linux 第三周读书笔记-----第一二章 20135334赵阳林
第一章 Linux内核简介 1.1 Unix的历史 由于Unix系统设计简洁并且在发布时提供源代码,所以许多其他组织和团体都对它进了进一步的开发. Unⅸ虽然已经使用了40年,但计算机科学家仍然认为它 ...
- Linux内核设计与实现 总结笔记(第二章)
一.Linux内核中的一些基本概念 内核空间:内核可独立于普通应用程序,它一般处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限.这种系统态和被保护起来的内存空间,称为内核空间. 进程上下文:当 ...
- Linux内核设计与实现读书笔记(8)-内核同步方法【转】
转自:http://blog.chinaunix.net/uid-10469829-id-2953001.html 1.原子操作可以保证指令以原子的方式执行——执行过程不被打断.内核提供了两组原子操作 ...
- Linux内核设计与实现——读书笔记2:进程管理
1.进程: (1)处于执行期的程序,但不止是代码,还包括各种程序运行时所需的资源,实际上进程是正在执行的 程序的实时结果. (2)程序的本身并不是进程,进程是处于执行期的程序及其相关资源的总称. (3 ...
- Linux内核设计与实现——读书笔记1:内核简介
内核:有的时候被称管理者或者操作系统核心,通常内核负责响应中断的中断服务程序, 负责管理多个进程从而分享处理器时间的调度程序,负责管理进程地址空间德内存管理程序 和网络,进程间通信等系统服务程序共同组 ...
- Linux内核设计与实现 总结笔记(第九章)内核同步介绍
在使用共享内存的应用程序中,程序员必须特别留意保护共享资源,防止共享资源并发访问. 一.临界区和竞争条件 1.1 临界区和竞争条件 所谓临界区就是访问和操作共享数据代码段.多个执行线程并发访问同一个资 ...
- 《Linux内核设计与实现》课本第五章学习笔记——20135203齐岳
<Linux内核设计与实现>课本第五章学习笔记 By20135203齐岳 与内核通信 用户空间进程和硬件设备之间通过系统调用来交互,其主要作用有三个. 为用户空间提供了硬件的抽象接口. 保 ...
- 《Linux内核设计与实现》课本第四章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第四章自学笔记 进程调度 By20135203齐岳 4.1 多任务 多任务操作系统就是能同时并发的交互执行多个进程的操作系统.多任务操作系统使多个进程处于堵 ...
随机推荐
- c#微信开发 转
using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System. ...
- SQLServer 事务隔离级别与锁的申请和释放
脏读:当一个事务开始更新数据,但是这个事务并没有完全提交,这个时候第二个事务开始读取数据,把第一个事务所更改的数据读了出来, 第二个事务读取的数据时临时的,因为有可能第一个事务最终有可能做回滚操作 不 ...
- mui问题
2016.7.27 1.当你的html不在文件夹的时候 引路径就不要加../ 2.当用svn提交代码的时候要先右键项目->版本管理->与资源库同步,查看你的修改的地方和原来部署上去的文 ...
- CodeViz代码可视化
安装可以参见,http://blogimg.chinaunix.net/blog/upfile2/091119203927.pdf 结合pdf教程,这里说下注意事项: 1 ) 必须先安装GRAPHVI ...
- 设置windows开机自启某个软件
位置:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 把要启动的软件,放在这个 ...
- mysql时间段内查询
今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...
- Web负载均衡的几种实现方式
Web负载均衡的几种实现方式摘要:负载均衡(Load Balance)是集群技术(Cluster)的一种应用.负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力.目前最常见的负载均衡应用是 ...
- Handlebars块级Helpers
1.Handlebars简单介绍: Handlebars是JavaScript一个语义模板库,通过对view和data的分离来快速构建Web模板.它采用"Logic-less templat ...
- 开发Visual Studio 插件
新建项目,在其他项目类型中找到扩展性,然后新建Visual Studio外接程序,VS中没有这个要安装SDK,http://yunpan.cn/cd27eNczKREwd (提取码:ab29)去下载 ...
- 【Java EE 学习 23】【log4j的使用】【ant的使用】【内省】
一.ant下载地址:http://ant.apache.org/bindownload.cgi 二.log4j下载地址:http://logging.apache.org/log4j/2.x/dow ...