Linux内核简介

  • Unix从一个失败的多用户操作系统Multics中衍生来的。

  • Unix强大的原因:

    • 简洁
    • 几乎所有的东西都被当做文件来对待,可以通过相同的系统调用接口来进行调用。
    • 因为它是由c语言编写,所以具有强大的移植能力
    • 进程创建迅速,且拥有独特的fork()系统调用
    • 具备清晰的层次化
  • Unix操作系统多样的功能:

    • 抢占式多任务
    • 多线程
    • 虚拟内存
    • 换页
    • 动态链接
    • TCP/IP网络
  • Linux是类Unix系统,但它不是Unix。

  • Linux内核是自由软件。

操作系统和内核简介

  • 内核是操作系统的内在核心,有时候其被称为管理者或者是操作系统核心。
  • 应用程序通过系统调用与内核通信。
  • 内核可以通过中断号查找相应的中断服务程序,并调用这个程序响应和处理中断。
  • 每个处理器在任何指定时间点上的活动必然概括为下列三者之一:
    • 运行于用户空间,执行用户进程
    • 运行于内核空间,处于进程上下文,代表某个特定的进程执行。
    • 运行于内核空间,处于中断上下文,与任何进程无关,处理某个特定的中断。

Linux内核和传统Unix内核的比较

  • Unix内核通常需要硬件系统提供页机制(MMU)以管理内存。

  • 操作系统内核的两大阵营:单内核和微内核

    • 单内核:内核从整体上作为一个单独的大过程来实现,同时也运行在一个单独的地址空间上运行。内核可以直接调用函数。大多数的Unix系统设计为单模块。

      • 简单
      • 性能高
    • 微内核:其的功能被划分为多个独立的过程,每个过程叫做一个服务器。所有的服务器都保持独立并运行在各自的地址空间上,通过消息传递处理内核通信——IPC机制(进程间通信机制),消息传递需要一定的周期。

  • Linux是一个单内核,即Linx内核运行在单独的内核地址空间上。

  • Linux内核与传统的Unix系统之间存在一些显著的差异:

    • Linux支持动态加载内核模块
    • Linux支持对称多处理机制(SMP机制)
    • Linux内核可以抢占
    • Linux对线程支持的实现比较有意思
    • Linux提供具有设备类的面向对象的设备模型、热插拔时间,以及用户控件的设备文件系统
    • Linux忽略了一些拙劣的Unix特性
    • Linux体现了自由。

Linux内核版本

  • 主版本号.从版本号.修订版本号.稳定版本号

从内核出发

  • 使用Git获取Linux版本中的一种版本

      git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
  • 更新版本

      git pull
  • 安装内核源代码

    • 若为bzip2的压缩形式:tar xvjf linux-x.y.z.tar.bz2
    • GNU的zip:tar xvzf linux-x..y.z.tar.gz
  • 使用补丁:patch -pl< ../patch-x.y.z

  • 内核的配置与安装通过Makefile与config所定。

我有话说:

如果让我一下子去学习内核里面的一堆代码内容,我只能呵呵呵呵呵,好在现在的我有时间,慢慢看吧,毕竟很多事情都可以一件一件一件一件一件一件地完成。

Linux内核设计与实现(chapter1/2)的更多相关文章

  1. 《Linux内核设计与实现》CHAPTER1,2阅读梳理

    <Linux内核设计与实现>CHAPTER1,2阅读梳理 [学习时间:2.5hours] [学习内容:Linux内核简介——历史与现今版本:Linux内核源代码以及编译] CHAPTER1 ...

  2. 《Linux内核设计与实现》学习记录一

    chapter1 Linux内核简介 前言:Unix是一个具有相似应用程序编程接口(API)并且基于相似设计理念的操作系统家族. 1.1 Unix的历史 1.Unix演化版实现了任务管理.换页机制.T ...

  3. 《linux内核设计与实现》实践之模块及深入

     <linux内核设计与实现>实践之模块及深入 写在前面的话. 基础模块部分我已经做完了,设计到的知识点无非就是,编写模块代码,编写Makefile文件,加载模块和卸载模块部分.由于大家都 ...

  4. 《Linux内核设计与实现》CHAPTER13阅读梳理

    <Linux内核设计与实现>第13章阅读总结 [edited by 5216lwr] 一.虚拟文件系统概述 1.虚拟文件系统 (也称作虚拟文件交换或VF)作为内核子系统,为用户空间程序提供 ...

  5. 《Linux内核设计与实现》CHAPTER17阅读梳理

    <Linux内核设计与实现>CHAPTER17阅读梳理 [学习时间:3.5hours] [学习内容:设备类型,模块,内核对象,sysfs] 个人思考部分见[]标出的部分 一.课堂讲解整理& ...

  6. 《Linux内核设计与实现》课本第四章自学笔记——20135203齐岳

    <Linux内核设计与实现>课本第四章自学笔记 进程调度 By20135203齐岳 4.1 多任务 多任务操作系统就是能同时并发的交互执行多个进程的操作系统.多任务操作系统使多个进程处于堵 ...

  7. 《Linux内核设计与实现》课本第三章自学笔记——20135203齐岳

    <Linux内核设计与实现>课本第三章自学笔记 进程管理 By20135203齐岳 进程 进程:处于执行期的程序.包括代码段和打开的文件.挂起的信号.内核内部数据.处理器状态一个或多个具有 ...

  8. 《Linux内核设计与实现》课本第十八章自学笔记——20135203齐岳

    <Linux内核设计与实现>课本第十八章自学笔记 By20135203齐岳 通过打印来调试 printk()是内核提供的格式化打印函数,除了和C库提供的printf()函数功能相同外还有一 ...

  9. 《Linux内核设计与实现》课本第五章学习笔记——20135203齐岳

    <Linux内核设计与实现>课本第五章学习笔记 By20135203齐岳 与内核通信 用户空间进程和硬件设备之间通过系统调用来交互,其主要作用有三个. 为用户空间提供了硬件的抽象接口. 保 ...

  10. 《Linux内核设计与实现》读书笔记 - 目录 (完结)

    读完这本书回过头才发现, 第一篇笔记居然是 2012年8月发的, 将近一年半的时间才看完这本书(汗!!!). 为了方便以后查看, 做个<Linux内核设计与实现>读书笔记 的目录: < ...

随机推荐

  1. RxJS--Subject

    Subject是Observable(可观察对象)的子类,subject是多播的,允许将值多播给多个observer(观察者),普通observable是单播. 每一个Subject都是一个Obser ...

  2. php api接口安全设计 sign理论

    一. url请求的参数包括:timestamp,token, username,sign 1. timestamp: 时间戮 2. token: 登陆验证时,验证成功后,生成唯一的token(可以为u ...

  3. WorldWind源码剖析系列:四叉树瓦片集合类QuadTileSet

    四叉树瓦片集合类QuadTileSet是影像瓦片渲染的主要类.使用地形管理器来为3D地形渲染查询高程值.依赖于用来刷新基于经度.纬度.视角范围瓦片的更新线程.该类继承自可渲染对象类Renderable ...

  4. spring amqp初步了解

    Rabbitmq简介 生产者会把消息发送给RabbitMQ的交换中心(Exchange),Exchange的一侧是生产者,另一侧则是一个或多个队列,由Exchange决定一条消息的生命周期--发送给某 ...

  5. jmeter.bat配置(主要关于OOM)

    jmeter.bat是jmeter在windows系统下的启动文件.在使用jmeter压测,线程数设置过多时可能会报内存溢出(Out Of Memory Error),这时候可以去尝试调整一下jmet ...

  6. 六,ESP8266 TCP Client(基于Lua脚本语言)

    今天不知道是不是让我姐挺失望.......很多时候都不知道自己努力的方向对不对,,以后能不能带给家人最美好的期盼...... Init.lua 没啥改变,,就改了一下加载Client.lua gpio ...

  7. Swift图书展示项目笔记

    1.Swift语言特点 Extensions(扩展):就是向一个已有的类.结构体.枚举类型或者协议类型添加新功能.这包括在没有权限获取原始源代码的情况下扩展类型的能力(即逆向建模) map: 得到一个 ...

  8. canvas绘画基础(一):认识canvas画布

    html5提供了一个<canvas>标签,结合javascript的canvas api接口可以用来绘制图形和动画.最近工作中涉及到画图的任务,下面来了解一下canvas的基础:canva ...

  9. 20155331 《网络对抗》 Exp6 信息搜集与漏洞扫描

    20155331 <网络对抗> Exp6 信息搜集与漏洞扫描 实验问题回答 哪些组织负责DNS,IP的管理 答:美国政府授权ICANN统一管理全球根服务器,负责全球的域名根服务器.DNS和 ...

  10. WPF编程,自定义鼠标形状的一种方法。

    原文:WPF编程,自定义鼠标形状的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/details/8727 ...