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 代 ...
随机推荐
- rabbitmq 用户管理
rabbitmqctl add_user root cor2016 rabbitmqctl set_user_tags root administrator http://host:15672/#/u ...
- Put queue for MemoryTransaction of capacity 10000 full, consider committing more frequently, increasing capacity or increasing thread count flume capacity 时间数
package com.test; import org.apache.http.*;import org.apache.http.entity.ContentType;import org.apac ...
- CentOS安装python-2.7+安装pip-10.0.0
注:以下所有操作均在CentOS 6.8 x86_64位系统下完成. 首先查看当前系统预装的python版本: # whereis python python2: /usr/bin/python2 / ...
- 虚拟网卡 TUN/TAP 驱动程序设计原理
简介 虚拟网卡Tun/tap驱动是一个开源项目,支持很多的类UNIX平台,OpenVPN和Vtun都是基于它实现隧道包封装.本文将介绍tun/tap驱动的使用并分析虚拟网卡tun/tap驱动程序在li ...
- 3.2 - FTP文件上传下载
题目:开发一个支持多用户同时在线的FTP程序要求:1.用户加密认证2.允许同时多用户登录3.每个用户有自己的家目录,且只能访问自己的家目录4.对用户进行磁盘配额,每个用户的可用空间不同5.允许用户在f ...
- node.js + mongodb 做项目的详解(二)
这次内容是结合bootstrap把登陆注册做好,还有就是express的中间件等问题. 看这篇博客之前建议先看我上篇写的那篇博客http://www.cnblogs.com/hubwiz/p/4118 ...
- MapReduce自定义InputFormat和OutputFormat
一.自定义InputFormat 需求:将多个小文件合并为SequenceFile(存储了多个小文件) 存储格式:文件路径+文件的内容 c:/a.txt I love Beijing c:/b.txt ...
- Buns---cf 106C(多重背包)
题目链接:http://codeforces.com/problemset/problem/106/C 题意:有n克面粉,m种馅料,然后每种馅料有ai克,bi克馅料和ci克面粉做的面包可以买di元,也 ...
- lua相关库安装常见问题
一.先安装lua brew install lua 我本机的安装路径为:/usr/local/Cellar/lua/5.3.4_2 二.安装luarocks 下载luarocks的安装包: http: ...
- Installshield 宏定义控制版本
定义宏 在Build =>Setting => 以空格为准定义宏 使用宏 在方法里 #if 宏名称 代码 #else 代码 #endif