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 代 ...
随机推荐
- 基于ZooKeeper的服务注册中心
本文介绍基于ZooKeeper的Dubbo服务注册中心的原理. 1.ZooKeeper中的节点 ZooKeeper是一个树形结构的目录服务,支持变更推送,因此非常适合作为Dubbo服务的注册中心. 注 ...
- 查看执行计划plustrace:set autotrace trace exp stat(SP2-0618、SP2-0611)
执行计划是SQL获取和处理数据的途径和方法. 执行计划和性能 SQL -- 数据库性能的始作俑者 所有的数据库性能,几乎全部来自SQL. 优秀的SQL是数据库最大的福祉. 一条很烂的SQL,可以搞瘫一 ...
- 解决64位debian下无法安装ia32库的问题
原文地址:http://crunchbang.org/forums/viewtopic.php?pid=277918 因为64位debian源中并没有包括32位的软件包,所提安装ia32会提示依赖无法 ...
- VMwareWorkstation与Device/CredentialGuard不兼容
win10的虚拟与VMware Workstation的虚拟有冲突,需要关闭win10自带的虚拟Hyper-V功能. 1.Windows键 --- 设置 --- 搜索 “控制面板” --- 程序 - ...
- java获取时间段内的所有日期
public static void main(String[] args) { SimpleDateFormat dateFormat = new SimpleDateForm ...
- 前端开发 - jsBom
一.jsBom简介 jsBom = javascript browser object modelBOM指的是浏览器对象模型 Browser Object Model,它的核心就是浏览器. 二.Bom ...
- TestLink安装手册
环境准备 系统CentOS Linux release 7.3.1611 (Core) 搭建LAMP所需的集成包 xampp-linux-x64-7.2.0-0-installer.run 下载地址 ...
- 安装串口设备驱动时遇到 Windows 无法验证此设备所需的驱动程序的数字签名。最近的硬件或软件更改安装的文件可能未正确签名或已损坏,或者可能是来自未知来源的恶意软件. 问题该如何处理?
win7 系统直接在 cmd 命令行中输入以下语句,重启电脑后重新安装驱动即可. BCDEDIT -SET LOADOPTIONS DISABLE_INTEGRITY_CHECKS BCDEDIT - ...
- python中yield使用
16.yield使用 列表推导与生成器表达式 当我们创建了一个列表的时候,就创建了一个可以迭代的对象: >>> squares=[n*n for n in range(3)] ...
- Java-多线程基本
Java-多线程基本 一 相关的概念 进程:是一个正在执行中的程序 每个进程都有一个执行的顺序,该顺序是一个执行路径,或者叫一个控制单元 线程:就是进程中的一个独立的控制单元,线程在控制着进程的执行 ...