自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (7)
  • 收藏
  • 关注

原创 大家好, 有人还记得我吗?

很久没有更新了, 大家是不是认为我已经放弃了呢! 呵呵因为我在研究编译器, TinyCC, 不知道有没有用. 我把它改编为支持中文标识符的C语言编译器了, 哈哈, 想以后用在我的系统中, 它有一个最大的优点就是可以直接运行源代码的功能, 是不是很牛啊!我的网站关闭了, 555....不过这个是开的, 嘻嘻 http://code.google.com/p/xl-os/包括我上面说的

2011-12-26 09:07:28 418

原创 我的操作系统论坛!

我的操作系统论坛!今后在这里进行开发上传及通告!http://x12143.t34.s3s5.cn/yxbbs/Default.Asp

2010-08-04 12:21:00 608

原创 关于互斥的问题

<br />在写关于鼠标的驱动时就遇到互斥的问题,几个进程同时对鼠标进行隐藏和显示操作时,就会产生明明隐藏了却又显示出来,造成了图像的错误,后来增加了判断的代码,但都不太满意,虽然看了一些资料,但都是一些理论上的东西,实际的流程、代码实现很少,自己也画一个关于解决互斥的流程,应该是有用点,希望有高人指点一下。<br /> <br />

2010-07-08 13:53:00 399

原创 发现软盘驱动有问题!

<br />最近这两天才发现软盘的驱动有问题,以前只测试了目录的读取,虽然显示出目录数据,现在调试检查的结果是软盘读取居然是失败的,这当时居然没有测试返回值。<br />偷懒了!代价就是找了几天,并且不知道如何修改。又发现一个问题,读取软盘数据时用的是内核的内存,如何是几个进程同时申请软盘操作,就会发生数据混乱。所以只能是以消息的方式来响应!<br />代码又要修改。看来这次又要将代码进行全面整理了!<br />包括子程序的格式,整体的构架都要调整!还是要以消息响应为主,不能直接调用服务程序。以防止进程间的

2010-06-12 17:13:00 464

原创 消息处理初步完成!

映像文件下载: http://sea68.com/x12143/目前状态:自动寻找并判断是否模式所需要的图形模式:1024 * 768 24位自动判断是否是3键带滚轮鼠标,(bochs下要在配置文件中更改一下鼠标的配置)全中文内核,进程调试:目前只是简单的顺序执行。消息处理:仅开始编写,目前开发中。现有简单内核消息处理。图形处理:目前仅支持 1024*768 24位模式,相对比较完善,用户调用函数不断增加中。支持中英文混合输出。窗口处理:建设中...内存管理:分页、分段。每个进程都有独立的页表,进程崩溃不影

2010-06-09 14:55:00 466

原创 在实模式下取物理内存数!

用BIOS中断 int 15h输入:eax 0000e820hebx 放置"后续值", 第一次调用时必须为0ecx 返回数据填充长度,单位字节. 无论ES:DI指向何处,BIOS最多将会填充ECX个字节.不过,通常情况下无论ECX为何值,BIOS只填充20个字节,有些BIOS忽略ECX的值,总是填充20个字节.edx 0534d4510h ('SMAP')标志值,固定ES:DI 为返回数据保存地点输出:CF=0 为无错误,否则存在错误eax 0534d4150h ('SMAP')ebx 为后续值,如果为0则

2010-06-06 18:28:00 455

原创 关于后续...

Boot.bin引导扇区代码生成后,应该就是加载模式的代码了,加载模块主要功能是加载一些必要的数据,如:中英文字体字库、内核代码等等,到底是在保护模式下进行加载还是在加载后再进入保护模式,应该讲都是可以的,如果之前加载数据可以用bios中断来实现,如果进入保护模式后再加载,那么要完善保护模式下的时钟中断与软盘中断、软盘驱动后才能实现,这样的话,加载代码与内核代码就重复了,或者是被分割。进入保护

2010-05-28 17:27:00 407 1

原创 关于利用任务状态段TSS进行进程切换的一点说明

关于利用任务状态段TSS进行进程切换的一点说明:由于在时钟中断里进行任务切换,也就是用JMP指令跳转到新的任务中去,这时的时钟中断是屏蔽的,但任务切换是直接进入新任务,没有将时钟中断屏蔽打开,所以造成了任务无法切换的情况,所以在对时钟中断任务切换编程时,不能简单的跳到新任务中去,要将中断屏蔽打开后再跳入新任务,而当任务再次切换回来时,会继续上次中断时的地方继续执行,而此时的时钟中断屏蔽已经打开

2010-05-04 15:55:00 2386 4

原创 内存管理随想

内存管理分为两个层面,一个是内核级的,一个是用户级的。内核级的内存管理主要响应进程的内存申请与扩展、注销。每个进程应当准备满足4G的空间要求,当然不可能一开始就安排4G的,那应该准备多少呢?1、代码。当准备加载一个进程前,需要知道该进程代码长度,这个代码长度包括已定义的数据,未定义的数据暂时不安排内存。2、堆栈。堆栈是一个可扩展的内存段,所以安排内存时要注意以后的扩展问题。堆栈是向前扩

2010-04-20 12:23:00 440

原创 关于描述符

保护模式的基础就是段描述符,分为全局描述符、局部描述符。在16位实模式下,寻址方式为:段*16+偏移,而在32位保护模式下,段寄存器仍然是16位,但它是一个指向值,指向一个8字节的描述符,在描述符中确定了所要寻址的开始地址,以及这段内存的长度、权限、属性等。 全局描述符在使用时没有什么明显的区别,只不过全局描述符表一般只有一个,(嗯~!也许能定义多个,然后重新加载,在多个全局描述符集之

2010-04-14 22:05:00 632

原创 进程的思考

操作系统的一个核心功能就是进程的调度,进程是什么呢?很多书上已经给出了标准的解释,我自己理解的是一个特定环境下的函数,进程可以是用户的任务,也可以是系统的某个服务程序。进程的环境主要有:通用寄存器、控制寄存器、一块私有的内存与代码、对应的GDT、LDT、TR、TSS、中断环境、内存页表。GDT:(全局描述符)空描述符 ;必须的。代码描述符;前8M数据描述符;4G堆栈描述符;

2010-04-13 10:49:00 529

原创 关于函数的默认格式

函数名:push   ebpmov    ebp, espsub    esp, xx...leaveret 第一,前3句虽然可以用enter x,0来替代,但enter指令的开销比较大,没有这几个指令的效率高,而且enter指令中的嵌套我们是用不到的。第二,leave指令就是 mov  esp,ebp ; pop ebp 这个条指令,这个指令一条就有两

2010-04-12 20:00:00 338

原创 第四天 找到加载文件,引导成功

第一章   引导程序第四天   找到加载文件,引导成功今天再讲一个子程序,这个程序的功能为:给定一个簇号,查找在FAT区该簇号对应的值,即下一簇号。在我们读取文件数据时要经常用到,所以把它做为一个子程序。这个子程序的流程如下:1、 准备一块内存,用于临时存放读取FAT区的数据,不小于1024 byte;2、 计算簇号对应FAT区开始处的总偏移量,同时保存簇号奇偶标志,以备后面取

2010-04-12 13:42:00 1006 3

原创 第三天 能读取软盘了!

第三天 能读取软盘了!先介绍一个BOIS磁盘服务中断:INT 13H。因为我们只需要读软盘数据,所以只重点介绍2号读扇区子功能。参数:AH 功能号=02HAL 需要读取的扇区数CH 起始磁道数CL 起始扇区数DH 盘面号DL 驱动器号ES:BX 目标地址,读取出数据保存到内存的地址。返回值:当CF=0时,操作成功。AH=0,AL为已读取的扇区数。操作失败时A

2010-04-08 17:21:00 994

原创 第二天 开始执行我们的程序

第二天 开始执行我们的程序 我们先看一段代码。 ; 文件名:boot_A.asm ;########################################################################## org 07c00h ; Boot 状态, Bios 将把 Boot Sector 加载到 0:7C00 处并开始执行 [bits 16] ; 定义以下代码

2010-04-08 08:34:00 766

原创 第一章 引导程序 第一天 耐心的准备

第一章 引导程序我们马上进入正题!开机!启动!等等,我们的操作系统是怎么开始运行的呢?这个问题一定是你马上就想知道的吧!第一天 耐心的准备所有计算机开机后,即打开电源,首先是BIOS的自检等等,确保每个必要的部件都能正常工作,这个过程我就不再详述了,反正与我们的工作没多大关系。BIOS在找到你的计算机可以进行启动的管道时,就将控制权转移。例如:我们现在大多数电脑都有这几种常

2010-04-08 08:25:00 827

转载 ld参数解释

本文档介绍GNU连接器ld的2.14版本.本文档在GNU自由文档许可证下发行.在"GNU自由文档许可证"一章中有关于本许可证的一份拷贝. 概述********ld把一定量的目标文件跟档案文件连接起来,并重定位它们的数据,连接符号引用.一般,在编译一个程序 时,最后一步就是运行ld.ld能接受连接命令语言文件,这是一种用AT&T的连接编辑命令语言的超集写成的文件,

2010-04-03 08:59:00 3295

转载 GCC参数解释

gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as] 4.连接目标代码,生成可执行程序[链接器ld] [参数详解] -x language filename 设定文件

2010-04-03 00:43:00 541

原创 系统引导代码

;##########################################################################; 这是一段引导程序,本程序是将加载程序加载至 9000:0100 处,; 并将控制权转移到加载程序。; 本代码使用 NASM 进行编译。;###############################################

2010-03-23 14:00:00 2066 2

托盘程序实现

编写Windows窗口程序最小化到托盘的技术细节, 以及相关的结构与消息等.

2018-03-26

C语言分析器

这是一个C语言源代码分析器, 将源代码中的各种标识符分析出来, 实现快速查看, 以便更有效的对C源代码进行分析与阅读!

2014-07-28

IA-32架构软件开发人员手册_卷3:系统编程指南

IA-32架构软件开发人员手册_卷3:系统编程指南

2010-04-13

机器指令反汇编表(中文)

机器代码与汇编助记符及其参数的快速查找表

2009-02-01

汇编代码转换(易语言源码)

将二进制数据转换为汇编代码的易语言源程序代码。

2009-02-01

PS2接口技术参考(中文版)

关于PS2接口技术参考,而且是中文版的,对于学习PS2接口编辑很有帮助.一般用于键盘和鼠标.

2009-01-07

FAT32格式文档(中文)

对于FAT32格式的技术详细文档(中文).

2008-12-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除