一、linux内核简介

1.1unix的历史

  1、unix强大的根本原因:1.unix很简洁,仅仅提供几百个系统调用并且有一个非常明确的设计目的;2.在unix中,所有的东西都被当作文件对待;3.unix的内核和相关的系统工具软件是用C语言编写而成,在各种硬件体系架构面前都具备令人惊异的移植力;4.unix的进程创建非常迅速,并且有一个非常独特的fork()系统调用。

  2、unix已经发展成一个支持抢占式多任务、多线程、虚拟内存、换页、动态链接和TCP/IP网络的现代化操作系统。

1.2linux简介

  1、linux内核也是自由(公开)软件

1.3操作系统和内核简介

  1、内核被称作是管理者或者是操作系统核心,它一般处于系统态,拥有受保护的内存空间和访问硬件设施的所有权限。这种系统态和被保护起来的内存空间,统称为内核空间。

  2、在系统中运行的应用程序通过系统调用来和内核通信:

    运行于用户空间,执行用户进程

    运行于内核空间,处于进程上下文,代表某个特定的进程执行

    运行于内核空间,处于中断上下文,与任何进程无关,处理某个特定的中断

1.4linux内核和传统unix内核的比较

  1、linux支持动态加载内核模块

  2、linux支持对称多处理的(SMP)机制

  3、linux内核可以抢占

  4、linux不区分线程和其他一般进程,所以进程都一样

1.5linux内核版本

二、从内核出发

2.1获取内核源码

  1、使用git

    git是分布式的的系统

  2、安装内核源代码

    内核压缩以GUN zip(gzip)和bzip2两种形式发布

  3、使用补丁

2.2内核源码树

  1、arch:特定体系结构的源码

     kernel:像调度程序这样的核心子系统

    lib:通用内核函数

2.3编译内核

  1、配置内核

    配置选项也可以是字符串或整数

    $ make config

    $ make menuconfig

$ make gconfig

  2、减少编译的垃圾信息

    $ make >  /detritus

    $ make >  /dev/null

  3、衍生多个编译作业

  4、安装新内核

    % make modules_install

2.4内核开发的特点

1、不能访问C库也不能访问标准的C头文件

  内核不能链接使用标准C函数库;

  基本的头文件位于内核源代码树顶级目录下的include目录中;

  体系结构相关的头文件位于内核源代码树的arch/<architecture>/include/asm目录中;

  内核提供的printk()函数几乎与printf()函数相同,唯一区别在于,printk()允许你通过指定一个标志来设置优先级。sysslogd会根据这个优先级标志来决定在什么地方显示这条系统消息;

2、内核编程时候必须使用GUN C

  1.内联函数:定义一个内联函数时候,需要使用static作为关键字,并且用inline限定它

  2.内嵌汇编:通常使用asm()指令嵌入汇编代码

  3.分支声明

3、内核编程时缺乏像用户空间那样的内存保护机制

  内核中内存都不分页

4、内核编程难以执行浮点运算

5、内核给每个进程只有一个很小的定长堆栈

  32位 8KB

6、内核支持异步中断、抢占和SMP,因此必须时刻注意同步和并发

7、可移植性很重要

读书笔记(chapter1-2)的更多相关文章

  1. 《深入PHP与jQuery开发》读书笔记——Chapter1

    由于去实习过后,发现真正的后台也要懂前端啊,感觉javascript不懂,但是之前用过jQuery感觉不错,很方便,省去了一些内部函数的实现. 看了这一本<深入PHP与jQuery开发>, ...

  2. 读书笔记-Coding faster(英文版)

    读书笔记-Coding faster(英文版) Getting More Productive with Microsoft visual Studio Author: Zain Naboulsi S ...

  3. 读书笔记-实用单元测试(英文版) Pragmatic Unit Testing in C# with NUnit

    读书笔记-实用单元测试(英文版) Pragmatic Unit Testing in C# with NUnit Author: Andrew Hunt ,David Thomas with Matt ...

  4. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  5. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  6. 《C#本质论》读书笔记(18)多线程处理

    .NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...

  7. C#温故知新:《C#图解教程》读书笔记系列

    一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...

  8. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  9. Web高级征程:《大型网站技术架构》读书笔记系列

    一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...

  10. LOMA280保险原理读书笔记

    LOMA是国际金融保险管理学院(Life Office Management Association)的英文简称.国际金融保险管理学院是一个保险和金融服务机构的国际组织,它的创建目的是为了促进信息交流 ...

随机推荐

  1. JFreeChart绘制XY折线图(工具类设计)

    准备用Java写通信的仿真平台作为毕业设计,相比matlab绘图,Java绘图需要自己去写很多工具类,博主在这采用了JFreeChart的开源解决方案,摸索着自己写了一个XY折线图工具类,话不多说贴源 ...

  2. BZOJ 1208 宠物收养所 set+二分

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1208 题目大意: 最近,阿Q开了一间宠物收养所.收养所提供两种服务:收养被主人遗弃的宠 ...

  3. 敲代码非常难之logstash之file input插件实现分析

    版权声明:本文为横云断岭原创文章,未经博主同意不得转载.微信公众号:横云断岭的专栏 https://blog.csdn.net/hengyunabc/article/details/25665877 ...

  4. 添加外键式异常 1215-cannot add foreign key constranint

    添加外键时报错,原因是添加外键的表的字段的字段类型不一致 比如我的第一张表id是int类型,添加约束的dep_id是bigint类型,所以报错,只要把两张表添加约束的字段类型改成统一的即可 本人大学生 ...

  5. WorldWind源码剖析系列:下载队列类DownloadQueue

    下载队列类DownloadQueue代表具有优先级的下载队列,该类的存储下载请求的数组链表专门按一定的优先级来存储下载请求的.该类的类图如下. 下载队列类DownloadQueue各个字段的含义说明如 ...

  6. OpenCV——模板匹配

    minMaxLoc函数: void minMaxLoc( const Mat& src, double* minVal, double* maxVal=0, Point* minLoc=0, ...

  7. input 内容改变的触发事件

    1. onchange onchange 事件会在域的内容改变时触发.支持的标签<input type="text">, <textarea>, <s ...

  8. (二)基于阿里云的MQTT远程控制(购买阿里云,在云端安装MQTT,测试MQTT远程通信)

    QQ名称为Friday~的网友把他自己买MQTT的过程截图发给了我,今天就说一下如何购买阿里云,安装MQTT可以参考 http://www.cnblogs.com/yangfengwu/p/77646 ...

  9. TTL,COMS,USB,232,422,485电平之详细介绍及使用

    如有错误敬请指导! 今天来详细介绍一下TTL,COMS,USB,232,422,485电平,以及之间的转换问题. 有些地方的引脚图可能不是规范的,具体引脚以自己的模块资料为主,这篇文章着重介绍使用.. ...

  10. 运放参数的详细解释和分析-part3,输入失调电压Vos及温漂

    运放参数的详细解释和分析-part3,输入失调电压Vos及温漂 在运放的应用中,不可避免的会碰到运放的输入失调电压Vos问题,尤其对直流信号进行放大时,由于输入失调电压Vos的存在,放大电路的输出端总 ...