文章分类 -  【012】操作系统编写

参考书籍,视频做
摘要:1、main.c :10:2 warning: no newline at the end of filezz:http://zhthaitao64.blog.163.com/blog/static/138443827201013101533309/main.c :10:2 warning: no newline at the end of file修复这个警告,在文件结尾回车一下就行了。可以很少会有人去仔细探究,为什么gcc会给出这么一个警告?原因其实也很简单,因为标准规定如此。C99第5.1.1.2节这样写道:Each instance of a backslash character ( 阅读全文
posted @ 2013-03-18 10:59 xiaolongxia 阅读(160) 评论(0) 推荐(0)
摘要:原文:http://www.osdever.net/bkerndev/Docs/pit.htmThe PIT: A System ClockThe Programmable Interval Timer (PIT, model 8253 or 8254), also called the System Clock, is a very useful chip for accurately generating interrupts at regular time intervals. The chip itself has 3 channels: Channel 0 is tied to is 阅读全文
posted @ 2013-03-15 10:02 xiaolongxia 阅读(438) 评论(0) 推荐(0)
摘要:“中断控制器”也是CPU众多外设中的一个,不同的是,它一方面接收其它外设中断引脚的输入,另一方面,它会发出中断信号给CPU。下图是一张中断控制器外设的框图,s3c2410的框图。为了把中断控制器、CPU、外设联系起来,绘图了下图:由图可知,中断控制器、CPU、外设都由绿色的大框给框起来了。中断处理流程,包括:初始化中断、处理中断、处理完毕恢复中断。下面依次描叙:一、中断处理之前的初始化的部份是红色框,分为: 1、外设引脚功能的配置及中断触发方式,图中所示是:GPFCON、EXTINT0 2、中断mask码、优先级、模式的设定,包括子级掩码、主级掩码,图中所示是:EINTMASK、MASK、MO 阅读全文
posted @ 2013-03-14 15:24 xiaolongxia 阅读(535) 评论(0) 推荐(0)
摘要:原文:http://blog.csdn.net/pxz_002/article/details/7325887 进行进程切换就是从正在运行的进程中收回处理器,然后再使待运行进程来占用处理器。 这里所说的从某个进程收回处理器,实质上就是把进程存放在处理器的寄存器中的中间数据找个地方存起来,从而把处理器的寄存器腾出来让其他进程使用。那么被中止运行进程的中问数据存在何处好呢?当然这个地方应该是进程的私有堆栈。 让进程来占用处理器,实质上是把某个进程存放在私有堆栈中寄存器的数据(前一次本进程被中止时的中间数据)再恢复到处理器的寄存器中去,并把待运行进程的断点送入处理器的程序指针PC,于是待运... 阅读全文
posted @ 2013-03-14 15:16 xiaolongxia 阅读(463) 评论(0) 推荐(0)
摘要:原文:http://blog.csdn.net/pxz_002/article/details/7327668一、什么是中断? 在计算机科学中,中断是指由于接收到外围硬件(相对于CPU与内存而言)的异步信号或者来自软件的同步信号而进行相应的硬件/软件处理。二、什么是硬中断? 显然,外围硬件发给CPU或者内存的异步信号就是硬中断信号。简言之:外设对CPU的中断三、什么是软中断? 由软件本身发给操作系统内核的中断信号,称之为软中断。通常是由硬中断处理程序或进程调度程序对操作系统内核的中断,也就是我们常说的系统调用(System Call)了。四、硬中断与软中断之区别与联系 1. 硬中断是有外设硬件 阅读全文
posted @ 2013-03-14 15:13 xiaolongxia 阅读(358) 评论(0) 推荐(0)
摘要:准备花一天时间,把寒假看的东西,梳理下! 阅读全文
posted @ 2013-02-26 21:20 xiaolongxia 阅读(63) 评论(0) 推荐(0)
摘要:原文:http://www.cnblogs.com/wangshuo/archive/2011/11/09/2242479.html1、按下开机键,连接开机键的一个导线就会输送一个信号给主板,请求开机。2、主板接收到这个信号,把信号转发给电源,要求电源开始供电,此时电源开始工作。3、电源给主板的各部分提供稳定的电压之后,发送“power_good”信号给BIOS。4、BIOS接受到信号之后,开始启动POST(Power On Self Test),检测电源供电是否稳定,检测硬件设备(比如内存)是否已经连接。5、POST检测完毕之后,会把BIOS程序加载到内存中的尾部地址(比如0xfffff0, 阅读全文
posted @ 2013-01-21 00:16 xiaolongxia 阅读(138) 评论(0) 推荐(0)
摘要:; boot.asm org 07c00h jmp SHOWSTRDATA: db "Hello World" SHOWSTR: mov ax,cs mov es,ax mov bp,DATA mov cx,12 mov bx,000ch mov dh,0 mov al,1 mov ah,13h int 10hAGAIN: jmp AGAIN times 510-($-$$) db 0 dw 0xAA55引导程序一般位于磁盘的第一个扇区,只有512字节,在BI... 阅读全文
posted @ 2013-01-20 00:08 xiaolongxia 阅读(162) 评论(0) 推荐(0)
摘要:原文:http://www.prajnagarden.com/?p=248 云计算用一个朋友的话来说:”做云计算最苦逼的就是得时时刻刻为一些可能一辈子都碰不到的事做好准备。更苦逼的就是刚以为一个问题不会遇到,立刻就发生了。。。“。这个还真的没有办法,谁让哥我是搞云计算的呢,简单一个虚拟化就搞的你蛋疼,你还能想其它的吗?一直纠结在做虚拟化使用什么镜像格式,刚刚开始用了raw的file,后来发现LVM的很多特性对于虚拟化还是有比较理想的能力,而且性能也很不错就用了LVM。后来被VMware骗了跑去搞Esxi接触了VMDK,最近研究openstack发现了qcow2格式,貌似现在很流行呀。也说不上. 阅读全文
posted @ 2013-01-19 18:52 xiaolongxia 阅读(141) 评论(0) 推荐(0)
摘要:一、dos命令下安装inf格式文件Rundll32 setupapi,InstallHinfSection DefaultInstall 132 C:\windows\inf\ie.inf 阅读全文
posted @ 2013-01-19 16:30 xiaolongxia 阅读(92) 评论(0) 推荐(0)
摘要:一、安装winxp运行基本介绍常用命令: -localetime,QEMU 默认使用的是UTC 时区-enable-audio,由于sb16 的虚拟声卡驱动在Windows 下使用有些问题,默认QEMU 是关闭这个选项。-localetime,QEMU 默认使用的是UTC 时区-user-net,使用User Mode 网络设备来建立网络连接,这是默认的虚拟网络模式,相当于VMware 的NAT。首先需要创建虚拟机文件qemu-imgcreate-fqcowfilename.img4Gps: 单位要大写G;每个参数之间有一个空格,多了也出问题这是最简单的qemu-img的使用方式create. 阅读全文
posted @ 2013-01-18 16:38 xiaolongxia 阅读(566) 评论(0) 推荐(0)
摘要:CPURESET -> BIOSPOST(BIOS调用中断程序去加载对应的扇区)-> 加载操作系统(先加载MBR) -> 加载操作系统内核具体的过程是:BIOS将磁盘的第一扇区(磁盘最开始的512字节)载入内存,放在0X0000:0X7C00处,然后检查这个扇区的最后两个字节是不是“55AA”,如果是则认为这是一个有效的启动扇区,如果不是就会尝试下一个启动介质,如果找到可以启动的程序就会从这一介质启动,如果所有的启动介质都判断过后仍然没有找到可启动的程序那么BIOS会给出错误提示。 阅读全文
posted @ 2013-01-17 23:26 xiaolongxia 阅读(93) 评论(0) 推荐(0)
摘要:一、BIOS中断简介BIOS中断有256个,分别为0~~255,存放地址为0 到 255*4h(组成“中断向量表”),每个地址内存放4个字节(中断处理程序的入口地址):高地址存放段地址,低地址存放偏移地址。中断过程:中断信息中获取中断类型码 ---> 压入标致寄存器的值 ---> cs 内容入栈 ---> ip 内容入栈ps:编写的中断处理程序,一定要在结尾使用 iret,iret 过程:出栈赋给ip ---> 出栈赋给cs ---> 出栈赋给flag寄存器参考书籍:王爽《汇编语言》第12章 阅读全文
posted @ 2013-01-17 16:31 xiaolongxia 阅读(97) 评论(0) 推荐(0)
摘要:一、16位内存分配图|B8000-BFFFFh|彩色字符模式视频缓冲区每个字符在视频缓冲区中占用两个字节{ASCII值,颜色值}彩色显示卡,一共有16KB的字符缓冲区,字符模式下:25行,每行80个字25*80*2=4000B在视频缓冲区中将没个4096b(4k)称为一个“页”,通常情况下显示第0页的内容在屏幕显示字符的原理:RGB(RED,GREEN,BLUE)三原色,任意组合就可以产生所以颜色组合颜色前景(4bit)+背景(4bit)彩色文本属性字节位76543210属性前景闪烁BL(Blink)背景R背景G背景B前景亮度(高亮)背景G背景R背景B二、pc启动过程CPU加电初始化。多处理器 阅读全文
posted @ 2013-01-17 09:35 xiaolongxia 阅读(192) 评论(0) 推荐(0)
摘要:/* Hello.c *//**************************************** 向视频缓冲区显示字符 ****************************************/#define VIDEO_BUF_ADDR 0xB8000000#define RED_COLOR 4void ShowString(char *pstr,int color){ /*视频缓冲区首地址B800:0000 =>0B8000h 20位地址*/ char far *pVideoBuf = VIDEO_BUF_ADD... 阅读全文
posted @ 2013-01-16 16:05 xiaolongxia 阅读(186) 评论(0) 推荐(0)