美文网首页
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概述

    几年前,当我还是个纯粹的码农,那个时候的想法还很纯粹---弄一个自己的操作系统出来。额。。但是几个月以后,...

  • 概述

    Web 基础 HTTP(HyperText Transfer Protocol,超文本传输协议)。 WWW(Wor...

  • 概述

    计算机网络由若干结点和链路组成。网络间可以通过路由器互连起来,构成的网络称为互连网(internet)。inter...

  • 概述

    资源 主页:http://opencv.org文档:http://docs.opencv.org/master/问...

  • 概述

    1、分类 创建型:Singleton,Builder,Prototype,Abstract Factory,Fac...

  • 概述

    2018年7月26日,是我开始记录我和我男朋友的爱情故事的第一天,也是我和他在一起的第99天。 其实我们刚在一...

  • 概述

    电路交换、分组交换 电路交换由于电话通信系统,分组交换用于网络数据传输。 电路交换两个用户独占一条物理链路;分组交...

  • 概述

    课程大纲: 1、图像的基本构成2、像素读写3、图像像素值统计信息4、像素值数学运算5、图像RGB彩色空间6、色彩空...

  • 概述

    作者认为这套需求过程可以适用于多种软件开发的情况。这套需求过程虽然不是唯一的解决方案,但学习这个过程可以获得很多帮...

  • 概述

    1、计算机网络向用户提供的最重要的功能有两个连通性和共享。2、网络由若干结点和连接这些结点的链路组成。结点可以是计...

网友评论

      本文标题:TCOS概述

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