zoukankan      html  css  js  c++  java
  • linux kernel reading

    在上linux实践课,被若干大牛之强大狠狠的震撼了一把,决定有空就看看kernel的一些用到的东西
    还有一本参考书《莱昂氏UNIX源代码分析》,完全没想到某个昆仑山妖精洞的大牛对这本书竟然如此推崇,唉,俺竟然守这这宝贝而不知利用,惭愧的屁股都红了

    kernel位于/usr/src/kernels/xxxxx/xxxxx
    mm : menory manager
    drivers : 设备驱动
    ipc :kernel 的进程通信
    fs: file system 文件系统
    lib : kernel 的库代码
    kernel : 主要的东西

    读到东西(先写一些,以后想起来,读过了再加):

    arch arch 子目录包括所有和体系结构相关的核心代码。它还有更深的子目录,每一个代表一种支持的体系结构,例如 i386 和 alpha 。
    (注:本来没想到要读这个文件夹里的东西,可万万出乎我意料的是 init 0x80的实现竟然是在这里头,一个名叫entry.s的文件)

    SYSTEM STARTUP & INITIALIZATION

    在一个 Intel 系统上,当 loadlin.exe 或 LILO 把核心加载到内存并把控制权交给它的时候,核心开始启动。这一部分看 arch/i386/kernel/head.S 。 head.S 执行一些和体系结构相关的设置工作并跳到 init/main.c 中的 main() 例程。
    也就是 汇编的 head.s

    Memory Management (内存管理)

    代码大多在 mm 但是和体系结构相关的代码在 arch/*/mm 。

    1。Page fault 处理代码在 mm/memory.c 中

    2。内存映射和页缓存代码在 mm/filemap.c 中。

    3。Buffer cache 在 mm/buffer.c 中实现

    4。交换缓存在 mm/swap_state.c 和 mm/swapfile.c 中。

    Kernel

    大部分相对通用的代码在 kernel ,和体系结构相关的代码在 arch/*/kernel 。

    1。调度程序在 kernel/sched.c ,

    2。fork 代码在 kernel/fork.c 。

    3。bottom half 处理代码在 include/linux/interrupt.h 。

    4。task_struct 数据结构可以在 include/linux/sched.h 中找到

    PCI

    1。 伪驱动程序在 drivers/pci/pci.c ,

    2。系统范围的定义在 include/linux/pci.h 。

    3。每一种体系结构都有一些特殊的 PCI BIOS 代码, Alpha AXP 的位于 arch/alpha/kernel/bios32.c

    Interprocess Communication

    全部在 ipc 目录。

    1。所有系统 V IPC 对象都包括 ipc_perm 数据结构,可以在 include/linux/ipc.h 中找到。

    2。系统 V 消息在 ipc/msg.c 中实现,

    3。共享内存在 ipc/shm.c 中,

    4。信号灯在 ipc/sem.c 。

    5。管道在 ipc/pipe.c 中实现。

    Interrupt Handling

    核心的中断处理代码几乎都是和微处理器(通常也和平台)相关。

    1。Intel 中断处理代码在 arch/i386/kernel/irq.c 它的定义在 incude/asm-i386/irq.h 。

  • 相关阅读:
    【转】浏览器兼容性问题汇总
    【转】sql server数据库操作大全——常用语句/技巧集锦/经典语句
    如何在数据库中导入excel文件内的数据
    【总算解决了】A network-related or instance-specific error occurred while establishing a connection to SQL Server
    【转】JS容器拖拽效果,并通过cookie保存拖拽各容器的所在位置
    【转】SQL多条件模糊查询解决方案-存储过程
    ASP搜索查询
    解决SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问
    简单鼠标跟随代码
    【JS】jquery通知插件toastr
  • 原文地址:https://www.cnblogs.com/Comet/p/1167834.html
Copyright © 2011-2022 走看看