• linux0.11文件目录结构


    1.boot目录:主要功能是计算机上电后,引导内核启动,将代码加载到内存中,并做一些进入32位保护运行方式前的系统初始化工作。

      1.1.bootsect.s:程序是磁盘引导块程序。编译后会驻留在磁盘的第一个扇区中,PC上电ROM BIOS自检后,将被BIOS加载到内存0x7C00处进行执行。

      1.2.setup.s:程序主要用于读取机器的硬件配置参数,并把内核模块system移动到适当内存位置处。

      1.3.head.s:程序会被编译连接在system模块的最前面,主要进行硬件设备的探测设置和内存管理页面的初始设置工作。

    2.fs:linux的文件系统

      2.1.bitmap.c:包含处理inode和磁盘块位图的代码

        1.free_block():释放设备dev 上数据区中的逻辑块block。

        2.new_block():向设备dev 申请一个逻辑块(盘块,区块)。

      2.2.block_dev.c:块设备的读写方法

        1.block_write():向指定设备从给定偏移处写入指定长度字节数据。

        2.block_read():从指定设备和位置读入指定字节数的数据到高速缓冲中。

      2.3.buffer.c:用于实现缓冲区高速缓存功能。

      2.4.char_dev.c:字符设备的读写方法

      2.5.exec.c:装载程序

      2.6.fcntl.c:提供文件描述符的操作

      2.7.file_dev.c:文件的读写方法

      2.8.file_table.c:定义文件表数组(64 项)

      2.9.inode.c:管理文件系统中inode节点结构

      2.10.ioctl.c:用于设备输入输出操作

      2.11.namei.c:(对i节点的操作)

      2.12.open.c:文件属性的操作

      2.13.pipe.c:管道读写操作的实现

      2.14.read_write.c:文件读写的系统调用

      2.15.stat.c:文件状态

      2.16.super.c:超级块的资源控制,以及文件系统的操作

      2.17.truncate.c:对inode的操作,主要是释放文件设备空间

      2.18.Makefile:编译该路径下的的c文件为.o链接文件

    3.include:主要存放头文件

      3.1.asm:与CPU体系结构相关的部分头文件

        3.1.1.io.h

        3.1.2.memory.h

        3.1.3.segment.h

        3.1.4.system.h

      3.2.linux:linux内核专用部分头文件

        3.2.1.config.h

        3.2.2.fs.h

        3.2.3.hdreg.h

        3.2.4.head.h

        3.2.5.kernel.h

        3.2.6.mm.h

        3.2.7.sched.h

        3.2.8.sys.h

        3.2.9.tty.h

      3.3.sys:系统数据结构部分

        3.3.1.stat.h

        3.3.2.times.h

        3.3.3.types.h

        3.3.4.utsname.h

        3.3.5.wait.h

      3.4.a.out.h

      3.5.const.h

      3.6.ctype.h

      3.7.errno.h

      3.8.fcntl.h

      3.9.signal.h

      3.10.stdarg.h

      3.11.stddef.h

      3.12.string.h

      3.13.termios.h

      3.14.time.h

      3.15.unistd.h

      3.16.utime.h

    4.init:内核初始化程序

      4.1.main.c

    5.kernel:内核进程调度,信号处理,系统调用等程序

      5.1.blk_drv:块设备驱动程序

        5.1.1.blk.h

        5.1.2.floppy.c

        5.1.3.hd.c

        5.1.4.ll_rw_blk.c

        5.1.5.ramdisk.c

        5.1.6.Makefile

      5.2.chr_drv:字符设备驱动程序

        5.2.1.console.c

        5.2.2.serial.c

        5.2.3.tty_io.c

        5.2.4.tty_ioctl.c

        5.2.5.keyboard.S

        5.2.6.rs_io.s

        5.2.7.Makefile

      5.3.math:数学协处理器仿真处理程序

        5.3.1.math_emulate.c

        5.3.2.Makefile

      5.4.asm.s

      5.5.exit.c

      5.6.fork.c

      5.7.mktime.c

      5.8.panic.c

      5.9.printk.c

      5.10.sched.c

      5.11.signal.c

      5.12.sys.c

      5.13.system_call.s

      5.14.vsprintf.c

    6.lib:内核库函数

      6.1._exit.c

      6.2.close.c

      6.3.ctype.c

      6.4.dup.c

      6.5.errno.c

      6.6.execve.c

      6.7.malloc.c

      6.8.open.c

      6.9.setsid.c

      6.10.string.c

      6.11.wait.c

      6.12.write.c

      6.13.Makefile

    7.mm:内存管理程序

      7.1.memory.c

      7.2.page.s

      7.3.Makefile

    8.tools:生成内核Image文件的工具程序

      8.1.build.c

    9.Makefile:编译辅助工具软件make的参数配置文件,linux目录下的这个Makefile还嵌套地调用了所有子目录中包含的Makefile文件

     

  • 相关阅读:
    [Unity3D]调用Android接口
    android studio build.gradle中 project.ANDROID_BUILD_SDK_VERSION
    java中static{}语句块详解
    [Android][Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法
    c++中 extern
    android studio一直卡在Gradle:Executing tasks
    Android Studio导入第三方类库的方法
    Android按返回键退出程序但不销毁,程序后台运行,同QQ退出处理方式
    Ubuntu64位下使用eclipse闪退的解决
    Android4.1中BinderService的作用
  • 原文地址:https://www.cnblogs.com/still-smile/p/13286244.html
Copyright © 2020-2023  润新知