美文网首页
TCOS概述

TCOS概述

作者: 禽兽家族 | 来源:发表于2016-10-25 10:35 被阅读0次

            几年前,当我还是个纯粹的码农,那个时候的想法还很纯粹---弄一个自己的操作系统出来。额。。但是几个月以后,因为其他的事情,哎。不得不放弃TC操作系统。那个时候最后达到的效果,也就只是将CPU从保护模式切换到实模式,并且能够在屏幕上显示类似黑客帝国一样一个简单动画。以后有机会我还是想把我的TC操作系统完成,至少能够达到内存地址的映射管理和任务的调度切换。

    1.准备知识:

            汇编:汇编是必须的,特别是再前期启动时候,我当时做的时候,尝试过绕考汇编,后来发现。。呵呵。我这里使用的汇编是AT&T格式的。包括内嵌汇编。

            X86的系统构架:x86系统的系统的基本硬件体系构架也是必须要掌握的。否则完全就不能做,这里我推荐看下intel的官方手册。能够让你全面了解,x86的所有寄存器作用,实模式和保护模式的切换,其硬件上的内存地址映射过程和原理,任务的切换和中断实现。

            bochsrc: bochsrc是一个虚拟机,它的优势在于,可以单步调试并且小巧精干,我个人是比较喜欢用的,特别是它的单步调试,前期帮了我很大的忙。

            编译:编译和连接基本都是用的GCC和Makefile完成。

    好嘛,不P话了。。上图上真相。

    图1 TCOS效果图1 图2 TCOS效果图2

    简单流程:

    1.MBR启动调用int 0x02号中断,将后面的程序读取到内存0x0000:0x9000处,然后通过jump跳转到0x0000:0x9000。这个是在bootsec.asm中

    2.这个步骤比较关键,很多细节需要了解X86体系才能更好的理解,说起来比较简单,设置GDT表,设置IDT表,并且将CPU从保护模式切换到实模式。最后跳转到设置好的GDT。实际上,这里要讲的话,很多,后面有专门的专题说明。这个实现是在head.asm

    3.设置相应的寄存器,call main,注意,这个已经都到了实模式和,所以寻址方式和以前的保护模式完全不一样了哦。。

    4.后面的流程就是大家熟悉的C语言搞的了。。需要说明的是。有些部分是用的内嵌汇编实现了。

    具体的实现细节再后面详细说明。本来想法所有的工程文件上传上来的。结果没有发现有地方上传,就贴两个相对独立的文件嘛:

    1.bochsrc的配置。

    ###############################################################

    # bochsrc.bxrc file for Tinix.

    ###############################################################

    # how much memory the emulated machine will have

    megs: 32

    # filename of ROM images

    romimage: file=$BXSHARE/BIOS-bochs-latest

    #vgaromimage: $BXSHARE/VGABIOS-elpin-2.40

    vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest

    # what disk images will be used

    #floppya: 1_44=floppy.img, status=inserted

    # choose the boot disk.

    boot: disk

    # where do we send log messages?

    log: bochsout.txt

    # disable the mouse, since Tinix is text only

    mouse: enabled=0

    # enable key mapping, using US layout as default.

    # keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-us.map

    ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14

    ata0-master: type=disk, mode=flat, path=TerryCheng.img

    相关文章

      网友评论

          本文标题:TCOS概述

          本文链接:https://www.haomeiwen.com/subject/osrruttx.html