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

  • 相关阅读:
    JS数组(JSON)整合篇-方法整理
    C#匿名对象(转JSON)互转、动态添加属性
    js操作ListBox列表(select)内移动
    w5cValidator【AngularJS】 2.0 版本发布
    {{angular.js 使用技巧}}
    {{angular.js 使用技巧}}
    关于cocoapods添加静态库的奇葩配置
    寻觅[Getting Answers]
    前端和后端开发的异同
    micro-service构建平台
  • 原文地址:https://www.cnblogs.com/20135314ZHU/p/5284870.html
Copyright © 2020-2023  润新知