zoukankan      html  css  js  c++  java
  • 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小结:
    内核有独一无二的气质,只有通过实际的理解和阅读才能理解内核。

  • 相关阅读:
    提前期分类
    物料属性,MRP/MPS属性
    ASP.NET刷新页面的一些方法
    Nothing 和 Is
    三层架构与MVC
    ADO.NET
    软件工程之数据流程图(DFD Data Flow Diagram)
    VB.NET小结
    推荐开发人员看的具有影响力的书籍
    C++考试
  • 原文地址:https://www.cnblogs.com/20135314ZHU/p/5284870.html
Copyright © 2011-2022 走看看