orange's一个操作系统的实现的前五章文件组织整理

Orange's一个操作系统的实现的前五章文件组织整理

Tree:

|---Makefile
|
|---a.img (虚拟软盘)
|
|---bochsrc (bochs虚拟机配置)
|
|___boot
|      |----boot.asm  (编译为boot.bin文件后被BIOS加载到内存,然后在a.img中\
|      |              寻找loader.bin,并加载到内存和转交控制权)
|      |
|      |____include
|      |        |----fat12hdr.inc (FAT12文件有关内容,以及基于FAT12头的一些常量定义)
|      |        |----load.inc   (LOADER.BIN被加载的位置 KERNEL.BIN被加载的段地址和偏移\
|      |        |               页目录开始地址和页表开始地址)
|      |        +----pm.inc  (存储段描述符类型值说明  系统段描述符类型值说明\
|      |                  分页机制使用的常量说明 宏(描述符和门)
|      |   
|      +----loader.asm (加载内核(ELF文件)到内存,跳入保护模式(设置堆栈,打开分页机制),\
|                   向内核交出控制权)
|___include
|      |----const.h    (定义函数类型PUBLIC和PRIVATE,GDT和IDT中描述符的个数)
|      |----global.h  
|      |              |---- EXTERN  int        isp_pos;
|      |              |---- EXTERN  u8         gdt_ptr[6];   /* 0~15:Limit 16~47:Base */ 
|      |              |---- EXTERN  DESCRIPTOR gdt[GDT_SIZE];
|      |              |---- EXTERN  u8         idt_ptr[6];   /* 0~15:Limit 16~47:Base */
|      |             +---- EXTERN  GATE       idt[IDT_SIZE];
|      |
|      |----protect.h  (定义存储段描述符/系统段描述符DESCRIPTOR)
|      |----proto.h   
|      |           |---- PUBLIC void     disp_str(char * info);
|      |           |---- PUBLIC void     disp_color_str(char * info, int color);
|      |           |---- PUBLIC void     init_prot();
|      |           +----PUBLIC void     init_8259A();
|      |           
|      |----string.h  
|      +----type.h     (定义u8,u16,u32数据类型)
|  
|___kernel
|      |----global.c      包含头文件
|      |            |---- #include "const.h"
|      |            |---- #include "protect.h"
|      |            |---- #include "proto.h"
|      |            +---- #include "global.h"
|      |
|      |----i8259.c    设置8259A
|      |           |---- #include "type.h"
|      |           |---- #include "const.h"
|      |           |---- #include "protect.h"
|      |           |---- #include "proto.h"
|      |           |---- PUBLIC void init_8259A()
|      |           +---- PUBLIC void spurious_irq(int irq)
|      |
|      |----kernel.asm
|      |              +----实现中断和异常
|      |
|      |----protect.c   定义异常处理函数
|      |             |----#include "type.h"
|      |             |----#include "const.h"
|      |             |----#include "protect.h"
|      |             |----#include "global.h"
|      |             |----#include "proto.h"
|      |             |----PRIVATE void init_idt_desc(unsigned char vector, \
|      |             |    u8 desc_type,int_handler handler, unsigned char privilege)
|      |             +----中断处理函数
|      |            
|      +----start.c    初始化IDT
|                 |---- #include "type.h"
|                 |---- #include "const.h"
|                 |---- #include "protect.h"
|                 |---- #include "proto.h"
|                 |---- #include "string.h"
|                 |---- #include "global.h"
|                 +---- PUBLIC void cstart()
|
|  
|___lib
        |----klib.c      定义函数
        |          |---- PUBLIC char* itoa(char *str,int num)
        |          +---- PUBLIC void disp_int(int input)
        |
        |----kliba.asm      定义函数(要用关键字global把这些函数导出来)
        |             |---- void disp_str(char * info)
        |             |---- void disp_color_str(char*info,int color)
        |             |---- void out_byte(u16 port,u8 value)
        |             +---- u8 in_byte(u16 port)
        |
        +----string.asm      定义函数(要用关键字global把这些函数导出来)
                      +---- void* memcpy(void* es:p_dst, void* ds:p_src, int size)


 参考链接:http://thornbird-life.blogbus.com/logs/83508544.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
畅销书《自己动手写操作系统》第二版。   从只有二十行的引导扇区代码出发,一步一步地向读者呈现一个操作系统框架的完成过程。    翔实的文字,丰富的图表,清晰的代码,作者 于渊 畅销书《自己动手写操作系统》第二版。   从只有二十行的引导扇区代码出发,一步一步地向读者呈现一个操作系统框架的完成过程。     翔实的文字,丰富的图表,清晰的代码,作者亲自用LAATEX排版,内容与形式并重。   人性化的代码组织,帮读者关注每节重点,完备的行号标识,便于读者对照实际代码。   专属网站和邮件列表,方便读者交流。   立足实践层面,关注动于操作过程中的细节,一步一步熟读者完成自己的操作系统:最简单的Boot Sector-由Boot Sector和Loader加载的内核-实现一个和多个进程-多控制台-进程间通信-轻巧的FS-简单的MM-自己的C运行时库-运行自己的应用程序-在真机进行自己操作系统。 本资料共包含以下附件: Orange S:一个操作系统实现(PDF+光盘).part1.rar Orange S:一个操作系统实现(PDF+光盘).part2.rar Orange S:一个操作系统实现(PDF+光盘).part3.rar Orange S:一个操作系统实现(PDF+光盘).part4.rar 四卷下载完后一起解压,资源非本人制作,也是从网上找来,本着方便大家学习的原则分享。 文档很清晰,光盘内容完整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值