《Linux内核设计与实现》读书笔记 1&2
第一章 Linux内核简介
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内核开发的特点
与应用程序开发的不同:
- 既不能访问C库也不能访问标准的C头文件库
- 必须使用GUN C
- 缺乏像用户空间那样的内存保护机制
- 难以执行浮点运算
- 给每个进程只有一个很小的定长堆栈
- 由于内核支持异步中断、抢占和SMP,因此必须时刻注意同步和并发
- 要考虑可移植性
《Linux内核设计与实现》读书笔记 1&2的更多相关文章
- 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内核设计与实现读书笔记(8)-内核同步方法【转】
转自:http://blog.chinaunix.net/uid-10469829-id-2953001.html 1.原子操作可以保证指令以原子的方式执行——执行过程不被打断.内核提供了两组原子操作 ...
- Linux内核设计与实现——读书笔记2:进程管理
1.进程: (1)处于执行期的程序,但不止是代码,还包括各种程序运行时所需的资源,实际上进程是正在执行的 程序的实时结果. (2)程序的本身并不是进程,进程是处于执行期的程序及其相关资源的总称. (3 ...
- Linux内核设计与实现——读书笔记1:内核简介
内核:有的时候被称管理者或者操作系统核心,通常内核负责响应中断的中断服务程序, 负责管理多个进程从而分享处理器时间的调度程序,负责管理进程地址空间德内存管理程序 和网络,进程间通信等系统服务程序共同组 ...
- 初探内核之《Linux内核设计与实现》笔记上
内核简介 本篇简单介绍内核相关的基本概念. 主要内容: 单内核和微内核 内核版本号 1. 单内核和微内核 原理 优势 劣势 单内核 整个内核都在一个大内核地址空间上运行. 1. 简单.2. 高效 ...
- Linux内核架构与底层--读书笔记
linux中管道符"|"的作用 命令格式:命令A|命令B,即命令1的正确输出作为命令B的操作对象(下图应用别人的图片) 1. 例如: ps aux | grep "tes ...
- Linux内核设计第十七章笔记
第十七章 设备与模块 关于设备驱动和设备管理,四种内核成分 设备类型:在所有unix系统中为了统一普通设备的操作所采用的分类 模块:Linux内核中用于按需加载和卸载目标代码的机制 内核对象:内核数据 ...
- Linux内核分析 一二章读书笔记
第一章 Linux内核简介 1.Unix (1)Unix系统很简洁 (2)在Unix中,所以东西都被当作文件对待,通过一套相同的系统调用接口来进行:open(),read(),write(),lsee ...
- 《Linux内核设计与实现》笔记-1-linux内核简单介绍
一.Linux内核相对于传统的UNIX内核的比較: (1):Linux支持动态内核模块. 虽然Linux内核也是总体式结构,但是同意在须要的时候动态哦卸除(rmmod xxx)和载入内核模块(insm ...
随机推荐
- Hive-1.2.1_03_DDL操作
Hive官方文档:Home-UserDocumentation Hive DDL官方文档:LanguageManual DDL 参考文章:Hive 用户指南 注意:各个语句的版本时间,有的是在 hiv ...
- 【HTTP缓存】浏览器缓存理论知识
时间:2016-12-12 17:51:30 作者: zhongxia 零.前言 这里主要写的是理论,具体实践的比较少,后期写一个实践教程,内容基本都是从参考文章里面抄过来的[看完文章,顺便写做下笔记 ...
- Java中BufferedReader到底是一个什么类?
1.java.io.BufferedReader 和 java.io.BufferedWriter 类各拥有8192字符的缓冲区.当BufferedReader在读取文本文件时,会先尽量从文件中读入字 ...
- 解决input框黄色背景问题(转)
input:-webkit-autofill { box-shadow: 0 0 0px 1000px white inset !important;} <form action="l ...
- easyui的datebox控件如何只要年月不要日谢谢知道的说一下
例子2015-01 格式easyui-datebox 加上 data-options="formatter:myformatter,parser:myparser"function ...
- vue项目的架构设计完善详解
vue项目构建vuex+mock层 vue项目添加jsBridge(与原生交互的) vue项目添加代码格式化
- GUI_键盘事件
import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.TextField ...
- DataStream_操作基本类型数据的流对象
import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileInputStream; imp ...
- 移动端 Retina屏border实现0.5px
首先来看一下造成Retina边框变粗的原因 其实这个原因很简单,因为css中的1px并不等于移动设备的1px,这些由于不同的手机有不同的像素密度.在window对象中有一个devicePixelRat ...
- laravel 使用构造器进行增删改查
使用原生语句进行增删改查 //$list = DB::select('select * from wt_category where id = :id', ['id' => 34]); //$i ...