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章的更多相关文章

  1. # linux读书笔记(3章)

    linux读书笔记(3章) 标签(空格分隔): 20135328陈都 第三章 进程管理 3.1 进程 进程就是处于执行期的程序(目标码存放在某种存储介质上).但进程并不仅仅局限于一段可执行程序代码( ...

  2. linux读书笔记(5章)

    linux读书笔记(5章) 标签(空格分隔): 20135328陈都 第五章 系统调用 5.1 与内核通信 系统调用 让应用程序受限的访问硬件设备 提供创建新进程并与已有进程通信的机制 提供申请操作系 ...

  3. linux读书笔记第三章

    第3章 进程管理20 3.1 进程20 进程就是处于执行期的程序(目标码存放在某种存储介质上),但进程并不仅仅局限于一段可执行程序代码.通常进程还要包含其他资源,像打开的文件,挂起的信号,内核内部数据 ...

  4. Linux读书笔记第五章

    主要内容: 什么是系统调用 Linux上的系统调用实现原理 一个简单的系统调用的实现 1. 什么是系统调用 简单来说,系统调用就是用户程序和硬件设备之间的桥梁. 用户程序在需要的时候,通过系统调用来使 ...

  5. 《Linux内核设计与实现》第八周读书笔记——第四章 进程调度

    <Linux内核设计与实现>第八周读书笔记——第四章 进程调度 第4章 进程调度35 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配 ...

  6. 《Linux内核设计与分析》第六周读书笔记——第三章

    <Linux内核设计与实现>第六周读书笔记——第三章 20135301张忻估算学习时间:共2.5小时读书:2.0代码:0作业:0博客:0.5实际学习时间:共3.0小时读书:2.0代码:0作 ...

  7. 《Linux内核设计与实现》 第八周读书笔记 第四章 进程调度

    20135307 张嘉琪 第八周读书笔记 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.只有 ...

  8. 《Linux内核分析》读书笔记(四章)

    <Linux内核分析>读书笔记(四章) 标签(空格分隔): 20135328陈都 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行 ...

  9. 《LINUX内核设计与实现》第三周读书笔记——第一二章

    <Linux内核设计与实现>读书笔记--第一二章 20135301张忻 估算学习时间:共2小时 读书:1.5 代码:0 作业:0 博客:0.5 实际学习时间:共2.5小时 读书:2.0 代 ...

随机推荐

  1. Chrome浏览器断点调试无效的问题

    问题是这样的,在使用chrome浏览器调试JavaScript的时候,突然设置的断点失效了,怎么弄都没有效果. 折腾了半天,尝试了各种方法就是没有用. 解决:重启一下chrome浏览器就好了,这似乎是 ...

  2. window.location下的属性说明

    属性 说明 window.location.href 完整的url window.location.protocol 协议 window.location.hostname 主机名 window.lo ...

  3. Top 10 Algorithms of 20th and 21st Century

    Top 10 Algorithms of 20th and 21st Century MATH 595 (Section TTA) Fall 2014 TR 2:00 pm - 3:20 pm, Ro ...

  4. Python代码样例列表

    扫描左上角二维码,关注公众账号 数字货币量化投资,回复“1279”,获取以下600个Python经典例子源码 ├─algorithm│       Python用户推荐系统曼哈顿算法实现.py│    ...

  5. MapReduce分布式编程框架

    一.MapReduce分布式编程框架及yarn集群搭建 1.大数据解决的问题? 海量数据的存储:hadoop->分布式文件系统HDFS 海量数据的计算:hadoop->分布式计算框架Map ...

  6. 策略(strategy)模式

    Head First一书中对于策略(strategy)模式的正式定义是:策略模式定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户. 为了介绍这个算法,书中讲了 ...

  7. 最长回文---hdu3068 (回文串 manacher 算法模板)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3068 题意很清楚:就是求一个串s的子串中最长回文串的长度:这类题用到了manacher算法 #incl ...

  8. 【JVM】程序调优

    现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 .... ...

  9. mdf, ldf文件导入到sql server 2005的方法

    mdf, ldf文件导入到sql server 2005的方法 在实际的工作中, 有很多涉及到数据库资料的备份,转移, 恢复等方面的工作, 但是并不是所有的资料都是以.bak格式存在的, 比如说, 你 ...

  10. mongoDb,下载及启动

     mongoDb下载 https://www.mongodb.com/download-center 可视化工具Robomongo下载 https://robomongo.org/download m ...