当前位置: 代码迷 >> 汇编语言 >> 原始的操作系统是怎样开发出来的?解决方法
  详细解决方案

原始的操作系统是怎样开发出来的?解决方法

热度:8824   发布时间:2013-02-26 00:00:00.0
原始的操作系统是怎样开发出来的?
那个... 
问个问题...这个问题我一直就没想通过... 
就是... 


操作系统到底是怎样写出来的啊?或者说最原始的操作系统是怎样开发出来的? (限80X86体系)
现在我们有高级语言工具(比如VC++,Delphi,VB等),我们可以用它们开发出基于某个操作系统的应用程序,甚至是操作系统,
而在没有这些工具的时候操作系统又是用什么东西怎样开发出来的呢?

如果说是用汇编,好吧,用汇编,但那还是得有编译器吧?
而裸机,没有操作系统怎么运行编译器呢?

  


到底是怎样个过程啊? 
我已经绕昏了... 
拜托各位高人给点指引,我想不通心头很不爽啊... 
有满意答复再加100分寥表谢意!!! 


------解决方案--------------------------------------------------------
没人来,再顶一下。
------解决方案--------------------------------------------------------
呵呵,操作系统是01写出来的,
这是个复杂的课题,等高手来解答.
------解决方案--------------------------------------------------------
最早的操作系统和编译器,他们都不是用代码制造的,而是设计精巧的光电门和机械部件。
  早期的计算机程序是用卡片和纸带记录的,当时的计算机设备非常昂贵,很多人共同使用一台机器。大家把自己的程序卡片放到输入系统上,计算机依次运行他们,这就是最简单的“先到先处理”策略。
  后来大家发现一些人编写的程序太长了,要计算很久,其他人就必须等待,于是就制定了更加合理的排序规则:一个卡片执行一段时间之后,不管他是不是执行完了,都要把这个任务挂起来,记录下当时卡片执行的位置和寄存器中的数据,把这些数据转移继电器中,再去处理别的卡片。这就是“时间片”的概念。
  

------解决方案--------------------------------------------------------
最早应该是手工编译的吧:
比如先在纸上写出下面的代码:
NOP
MOV AL,2
INT 10H
JMP 1000:0100
然后根据机器指令助记符对应的机器码,手工转换成机器指令就是: 90 B0 02 CD 10 EA 00 01 00 10 
这个时候的机器指令助记符大概还不能称之为汇编,第一个真正意义上的汇编编译器大概是通过将大量的助记符写成的程序段用手工方法转换成机器码,然后才是通过这个程序去自动编译由助记符写成的代码程序,这样才有了一个汇编的雏形吧,个人理解,并不保证正确性^_^
------解决方案--------------------------------------------------------
自己先在纸上写汇编代码,然后手工汇编生成机器码,再制作到ROM里面,把ROM与处理器接在电路板上测试。
原始的操作系统很小,只需要支持输入二进制数和几个简单的控制键,用若干指示灯显示输出。我上学的时候玩的单板机用的差不多就是这样的操作系统。
------解决方案--------------------------------------------------------

学习
------解决方案--------------------------------------------------------
学习
------解决方案--------------------------------------------------------
裸机的话,可以用磁盘扇区引导,也可以通过操作系统的完善来实现,具体的就不多说了,网上有原理,那本书上也有介绍
------解决方案--------------------------------------------------------
7楼果然是高人啊,开始时间确实够早的啊。
我比较倾向于7楼的说法,最早的机器执行指令时都是是打卡式的,现在纸上通过打孔的方式实现指令码,然后通过机器都卡的方式执行。
我想比较接近操作系统的应该是,使用机器码直接编译一个for循环,不停的执行,应该算是比较早的操作系统了。操作系统最初的概念就是分配CPU资源用的。我的理解
------解决方案--------------------------------------------------------
学习了
------解决方案--------------------------------------------------------
学习,呵呵
------解决方案--------------------------------------------------------
先写一个系统,可以用汇编,在设法把代码转化为机器码。
机器码加载到机器的存储器中,并让他们执行。
然后再"生蛋",用蛋来"养鸡",鸡再生蛋,不断进化。

  相关解决方案