
操作系统
文章平均质量分 71
zhi_jian
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
操作系统实现---boot启动并读软盘
参照《linux完全剖析》一文中的程序自己写了如下两个简单的程序:boot.sorg 07c00hjmp startmsg:db "Now,begin to load kernel....",0ahmsgLen equ $-msgstart:mov ax,csmov ds,axmov es,axmov ax,msgmov bp原创 2013-12-05 11:02:51 · 1041 阅读 · 0 评论 -
module开发工程目录
1、目录组织结果原创 2014-08-07 20:17:21 · 1242 阅读 · 0 评论 -
linux modules hello world!
1、在[随意目录]创建hello.c原创 2014-08-07 17:17:53 · 891 阅读 · 0 评论 -
grub启动镜像制作
1、创建一个100M的镜像文件dd if=/dev/zero of=disk.img bs=1M count=1002、对img分区fdisk disk.img输入n,新建分区 输入p,主分区 输入1,分区号 输入2048,起始扇区 直接enter原创 2014-07-25 11:52:06 · 2750 阅读 · 0 评论 -
grub2 引导自制kernel
引言:在前几篇文章中,制作完成了grub引导原创 2014-07-25 17:13:05 · 2701 阅读 · 1 评论 -
grub 启动盘制作
一、grub U盘启动盘制作 1、原创 2014-07-25 11:48:42 · 1222 阅读 · 0 评论 -
操作系统实现----多进程(无特权级转移)
在上一篇的基础之上,写一个多进程程序:程序切换原理:在定时中断的时候将当前进程的现场保存在当前进程的堆栈中(中断时并自动压入eflag,cs,eip,因为没有特权级的转变,所以也没有堆栈的切换),然后将栈设为目标进程的堆栈,并弹出该进程现场,中断最后的iret指令会将程序接着目标进程的eip运行。kernel.s因为将所有的段偏移设为0,所以编程时地址的处理非常容易。%define STA原创 2013-12-18 19:47:11 · 858 阅读 · 0 评论 -
操作系统实现---多进程(有特权级转移)
上一篇的博文中,多进程全部是以特权级0运行,一个最大的特征就是没有堆栈的切换;原以为无特权级的多进程实现了之后,有特权级转移的实现就非常容易了,可我竟在这里卡了足足一周的时间。 参考于《一个操作系统的实现》于渊著。 上文中的每一个进程只使用到了一个堆栈进程在执行:|--------| |##code##||-------原创 2014-01-05 20:53:06 · 1014 阅读 · 0 评论 -
操作系统实现--保护模式小试
在上一篇的基础之上,尝试进入保护模式编程boot.s用来加载kernel%define LOAD_KERNEL_TO 0x1000 ;加载到0x1000:0000处执行%define KERNEL_LEN 20;内核占据多少个扇区 20*512org 0x7c00mov ax,csmov ds,axmov es,ax;di原创 2013-12-06 13:09:38 · 826 阅读 · 0 评论 -
操作系统实现----中断调用
在上一篇的基础之上,实现加载中断idt,并调用中断:boot.s用来加载kernel原创 2013-12-10 00:05:03 · 840 阅读 · 0 评论 -
bochs 编译
1、download bochs src from :http://bochs.sourceforge.net/2、.con原创 2014-07-25 13:19:54 · 6906 阅读 · 0 评论