⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 体系结构.txt

📁 从网上下载的一个自己编写的简单的操作系统源代码,对底层了解很有好处的
💻 TXT
字号:


 /*
  *  文档记录了对于理解系统最重要的线索.
  *
  */
  5.boot 目录
    fsector.s 软驱启动记录,自举到0x90000
    setup.s   由fsector.s 加载到 0x10000,长2048 字节, 其后是以head.s 开始的内核.
    kernel/head.s  内核被setup.s 装载到 0x100000 (1M).

    boot/setup 目录是 setup.s 需要的各个文件,如内存探测等.


    /////////////////////////////////////////////////////////////////////////
    //
    //  下面这些文件基本上是进一步工作的基础. 没有更基础的了
    //
               include/
                   ctype.h       isdigital 等支持字符解析的宏
                   linkage.h     asmlinkage, extern "C" 的封装
                   stdarg.h      多参数函数支持
                   stddef.h      NULL offsetof
                   limits.h      空文件

                   ///////////
                   posix_types.h 空文件, 包含stddef.h 和 i386目录下同名文件
                   string.h      空文件, 包含i386 目录下同名文件
                   types.h       各种数据类型的别名
                   
           include/i386
                        div64.h        64bit 除法运算 , vsprintf 有直接使用
                        ////////////
                        posix_types.h  __kernel_xxxx_t 定义, 间接包含
                        string.h       string 库, 间接使用
                        types.h        类型定义, 间接使用

           kernel/ 
                  ctype.c     对应于ctype.h 的数组
                  kprintf.c   kprintf  实现
                  vsprintf.c  vsprintf 实现
    //
    //
    ////////////////////////////////////////////////////////////////////////
    
  4.     移植的kbdriver.c  kbd.h 构成键盘驱动.
       自己的 kbd.c  是比此驱动更低级的支持.
  3. 下列文件构成一个轻量级的printf 风格的支持

     doprintf.c      _printf.h 
     stdarg.h  string.h   _null.h  _size_t.h  _va_list.h 

   
  2. 下划线
           如果一个函数以下划线开始, 则函数应该是一下情况之一:
           a)  该函数是一个硬件特性的第一级封装, 如
                          _gate_fill                       
           b) 该函数是本模块提供给其他模块的接口如
                       _fill_int_gate  _irq_reg  _enirq_8259  _init_8259
  1. 中断处理
      a)  arch.h  arch.s  archlib.c 构成cpu 的抽象层.
      b)  流程:
           int 产生--> 中断门gate(0x20--0x2f) ---> arch.s 预设的处理函数 --> 
           调用用户中断处理函数irq_table-->irq handler
   0. kernel.h 是内核最基本的头文件, 现阶段包含所有模块的接口声明.
  


                                           

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -