课本笔记

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所定。
时间: 2024-12-23 14:36:24

课本笔记的相关文章

概率图模型课本笔记(五)

2006年以前的一些经典的网络及之间的区别: 1.自编码器: 2.深度信念网络: 3.深层玻尔兹曼机器: 震惊!郭博昨天来广州竟然做了这种事!

概率图模型课本笔记(二)

无向图模型: We have now presented three sets of independence assertions associated with a network structure H. For general distributions, Ip(H) is strictly weaker than Il(H), which in turn is strictly weaker than I(H). However, all three definitions are e

2017-2018-1 20179202《Linux内核原理与分析》第八周作业

一 .可执行程序的装载 1. 预处理.编译.链接 gcc –e –o hello.cpp hello.c //预处理 gcc -x cpp-output -S -o hello.s hello.cpp //编译 gcc -x assembler -c hello.s -o hello.o-m32 //汇编 gcc -o hello hello.o //链接成可执行文件,使用共享库 用gcc -o hello.static hello.o -static静态编译出来的hello.static把C库

2017-2018-1 20179202《Linux内核原理与分析》第九周作业

进程的切换和系统的一般执行过程 1.知识总结 (1)进程调度的时机: 中断处理过程直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule(). 内核线程是一个特殊的进程,只有内核态没有用户态,可以直接调用schedule()进行进程切换,也可以在中断处理过程中进行调度(内核线程可以直接访问内核函数,所以不会发生系统调用).内核线程作为一类的特殊的进程可以主动调度,也可以被动调度. 用户态进程无法实现主动调度,仅能在中断处理过程中进行调度(schedul

《Linux课本》读书笔记 第十七章 模块

设备与模块: 设备类型:块设备(blkdev).字符设备(cdev).网络设备: 模块: 分析hello,world模块代码.Hello_init是模块的入口点,通过module_init()注册到系统中,在内核装载时被调用,是一个宏调用,唯一的参数是模块的初始化函数.模块初始化函数格式:int my_init(void);,可标记为static类型.初始化成功,返回值为0,不成功返回一个非零值.Init函数还会注册资源.初始化硬件.分配数据结构等. hello_exit()函数是模块的出口函数

《Linux内核》课本读书笔记 第三章

《Linux课本》读书笔记 第四章

20135302魏静静——课本第4章学习笔记

第4章   进程调度 调度:调度是一个平衡的过程.一方面,它要保证各个运行的进程能够最大限度的使用CP:另一方面,保证各个进程能公平的使用CPU. 调度功能:决定哪个进程运行以及进程运行多长时间. 调度实现原理:与进程的优先级有关 Linux上调度实现的方法:O(1)的调度算法 调度相关的系统调用 4.1多任务   多任务系统可以划分为两类:非抢占式多任务( cooperative multitasking )和抢占式多任务(preemptive multitasking).像所 有Unix 的

课本学习笔记5:第七章 20135115臧文君

第七章 链接 注:作者:臧文君,原创作品转载请注明出处. 一.概述 1.链接(linking):是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载或被拷贝到存储器并执行. 2.链接可以执行于编译时.加载时和运行时. 3.链接器(linker):分离编译. 链接通常是由链接器执行. 二.编译器驱动程序 1.大多数编译系统提供编译驱动程序(compiler driver),它代表用户在需要时调用语言预处理器.编译器.汇编器和链接器. 例:ASCII码源文件-->可执行目标文