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 代 ...
随机推荐
- layerui如何设置显示的位置?
转自:http://www.layui.com/doc/modules/layer.html#offset layer.open({ type: 1,//默认:0 (0表示信息框,1表示页面层,2表示 ...
- angular 2+ innerHTML属性中内联样式丢失
通过属性绑定的innerHTML,把字符串里面的html解析 解析是没问题的,但一些内联样式会丢失掉 为了不丢掉样式,需要自定义一个管道来解决这个问题 html.pipe.ts import {Pip ...
- h5+的Downloader下载网络图片缓存到本地的案例
之前展示图片都是通过<img src="网络图片地址"> , 每次都请求服务器, 加载比较慢;如何做到显示图片的时候先从本地获取,没有则联网下载,缓存到本地;下次直接从 ...
- shell (check return of each line)(PIPESTATUS[@])and sudoer
shell result from cmdline echo $? if 0 then success ;else failure (shell 执行每部返回值,rm -rf 错误,打包不能覆盖) 我 ...
- mysql创建索引时报错1170
MySQL只能将BLOB/TEXT类型字段设置索引为BLOB/TEXT数据的前N个字符. 索引指定下col2的长度就可以了 :alter table foo add index col_2 (col2 ...
- tomcat启动报错:注释指定的bean类.与现有的冲突.相同的名称和类
错误: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/business/config ...
- Yii框架2.0的Gii
Yii框架的Gii在我看来算是个快速创建器,当然对于学习来说意义不大,但对于已经懂得他的原理并用他开发的话,就是个快速开发的好工具. 他能快速的创建控制器,模块,crup,插件,Module. 打开g ...
- MapReduce辅助排序
需求:订单数据 求出每个订单中最贵的商品? 订单id正序,成交金额倒序. 结果文件三个,每个结果文件只要一条数据. 1.Mapper类 package com.css.order.mr; import ...
- Elven Postman---hdu5444(二叉树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5444 有一个序列,由这个序列可以画出一颗二叉树(每个节点的左边(W)都比它大,右边(E)都比它小), ...
- rabbitMQ 安装,集群搭建, 编码
RabbitMQ 一.背景 命令行工具: http://www.rabbitmq.com/man/rabbitmqctl.1.man.html 介绍入门文章: http://blog.csdn.net ...