
操作系统开发专题
文章平均质量分 77
lovehappystudy
爱好:计算机程序设计
展开
-
Bran的内核开发指南(1)
导读: 内核开发是一项漫长的写代码和调试的工作。这似乎在开始会是很令人沮丧的。但你并不必需要大量的工具。本指南将使用GRUB来将你的内核载入内存。GRUB需要读入一个运行在保护模式下的二进制映像:这个映像就是我们马上就开始建立的内核。 在读这篇指南之前,你至少需要具备C语言的知识。我强烈建议你能掌握X86汇编的知识,因为这将对你在后来熟练地使用寄存器有很大帮助。你至少需要这些工具:一个可以转载 2007-11-03 22:25:00 · 722 阅读 · 0 评论 -
堆和栈的区别
堆和栈的区别 堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区转载 2007-11-08 21:07:00 · 613 阅读 · 0 评论 -
Bran的内核开发指南(5)
全局描述表(GDT) 386的各种保护措施的一个重要组成部分是 全局描述表(Global Descriptor Table),也就是 GDT。GDT为内存的特定部份定义基本访问权限。我们能使用GDT的一个入口来建立一种程序段异常处理机制:让内核能终止一个正在执行非法操作的程序。大部分 现代操作系统使用叫做“内存分页”的内存管理模式来实现这一点:这可以更灵活而且弹性更高。GDT同时还能定义内存转载 2007-11-08 07:21:00 · 705 阅读 · 0 评论 -
Bran的内核开发指南(4)
导读: 现在我们将试着在屏幕上显示点东西。为此,我们需要一种管理屏幕滚动的方法。同时,能在屏幕上显示不同的颜色也是一件美妙的事情。 幸运的是,VGA显卡使这很容易实现:为了在显示器上显示内容,显卡给定了一个内存块,我们只需向内存中写入字符和属性对。 VGA控制器会自动地把更新的内容画到屏幕上。滚动屏幕是由我们的内核软件来维护的。从技术上说,这是我们的第一个驱动程序,现在我们就开始编写。转载 2007-11-05 23:12:00 · 524 阅读 · 0 评论 -
Bran的内核开发指南(2)
导读: 在这部分,我们将涉及一点汇编的知识,学习创建使用最基本的连接脚本。最后,我们将学习如何使用批处理文件自动进行汇编、编译和连接这个最最基本的保护模式内核。请注意,我将假设你已经安装了NASM和DJGPP在你的操作系统上,并且你已经掌握了最基本的X86汇编语言知识。 内核入口 内核的入口就是当引导器加载内核时最先被执行的那段代码。这部分代码一般总是用汇编语言来写的。这是为 完成很多转载 2007-11-04 22:07:00 · 896 阅读 · 0 评论 -
Bran的内核开发指南(3)
导读: 在一般的C语言编程实例中,main()函数是程序的入口。为了保持你的编程习惯,让你熟悉内核开发,本指南将仍旧将main()函数作为程 序入口。正如上一章所提到的,我们尽力使汇编代码最少。但在后面的章节中,我们不得不回到汇编代码“start.asm”中去添加终端服务程序,以调用C 函数。 在这一章节中,我们将建立“main.c”和一个包含了公共函数原型的头文件——“system.h”转载 2007-11-04 22:16:00 · 791 阅读 · 0 评论 -
操作系统DIY手册
导读: 操作系统DIY手册 第一课:引导扇区 (Lesson 1: The Boot Record) 这一课主要介绍引导扇区(Boot Record),为我们手动打造引导程序(boot loader)作准备。 当计算机从软盘引导时,BIOS(Basic Input/Output System)将软盘的第一个扇区(sector)读入内存(从地址0000:7C00开始读入)。这第一转载 2007-11-04 14:51:00 · 1028 阅读 · 0 评论 -
从最底层实现汉字输出,一个中文启动界面的实现方法
导读: 从最底层实现汉字输出,一个中文启动界面的实现方法 呵呵,要再次感谢赵博的书给我的启发,现在想什么就可以自己去实践,这种感觉真好。这两天我实践了一个中文显示问题,终于成功,贴出来与大家共享。tkr7y 通过实践,大概了解图形模式下的工作方式,和汉字支持的基本实现方法。我的工作是让系统启动后在屏幕上显示“汉字操作系统”五个汉字dQ/Wf 说明:这里只介绍使用点阵字库。gX)znG转载 2007-11-04 14:40:00 · 1459 阅读 · 1 评论 -
开发自己的操作系统引导程序
导读: 开发自己的操作系统引导程序 当你打开计算机时发生了什么? 1.电源打开;2.BIOS开始执行;3.引导程序开始执行。 引导程序的规定:你要有一个普通的二进制文件(COM 格式);大小是512个字节;最后两个字节一定是0AA55h;它能被载入到内存地址0x7C00。 工具: NASM——是一个免费的汇编工具(有DOS/windows/Linux三种版本)转载 2007-11-04 14:21:00 · 827 阅读 · 0 评论 -
中断描述符表
中断描述符表中断描述符表(Interrupt Descriptor Table,IDT)是用来告诉处理器在遇到异常或 “INT”操作码(汇编中)时所应调用的中断服务例程( Interrupt Service Routine,ISR)。在一个设备完成请求并且需要获得服务时,中断请求也调用IDT入口。更多关于异常和ISR的详细内容在本指南的下一节里,点击这里查看。每转载 2008-01-07 12:05:00 · 2664 阅读 · 0 评论