运行在硬件之上的第一个程序是汇编程序吗 操作系统运行于汇编程序之上?我知道我错了 。。可是为什么?

每本书都是说的操作系统,(菜鸟迷惑~~望指点~~勿喷)但是操作系统是个程序吧(可以将操作系统看作一个很大的程序吧)既然是程序,那就是一条条代码累积起来的(可能是C语句,但... 每本书都是说的操作系统,(菜鸟迷惑~~望指点~~勿喷)
但是操作系统是个程序吧(可以将操作系统看作一个很大的程序吧)
既然是程序,那就是一条条代码累积起来的(可能是C语句,但我看了一下是少不了汇编的,纯C写不了操作系统的吧?)
既然是一条条的指令(高级语句或汇编指令),但是都不能被机器直接执行
(机器只能执行机器指令,其实将机器指令分解成微指令,在讲微指令分解为微命令,然后一个时钟脉冲——一组相容的微指令执行【耗费时间一个CPU周期】)
问题来了:“谁”将操作系统的语句转变为“机器指令”啊?
谢谢各位知友指点迷津。。。菜鸟感激不尽!我没财富了不好意思啊
展开
 我来答
oxBamBooxo
2012-12-02 · 超过14用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:30.4万
展开全部
我的理解,在开机到运行程序的过程中:
开机按钮按下>电源接通>BIOS芯片通电>启动BIOS自检程序>检测完毕从磁盘0磁道读取数据
此时操作系统所需服务被加载到内存中,根据操作系统不同,加载的服务不同
GNU/linux系统为linux内核,MAC OS 为混合内核,Windows为微内核
操作系统提供硬件驱动服务,文件管理服务,交互界面服务等等
操作系统与硬件的交互通过机器语言,一般是PC,则采用8086指令集与CPU传输数据
指令集是二进制代码,故机器能够识别,CPU在一个周期内只能识别固定字长的指令
程序的执行可以最终是靠的指令的执行,而将源程序转化为二进制代码的就是编译器
编译器根据指令集的规定,将程序汇编为机器语言
操作系统的关键部分就是可执行文件,开机时加载进内存,被CPU直接执行(也许)
追问
嗯 比如用C语言编写好了一个操作系统,首先第一步是将操作系统变为可执行程序,即:
将原来的高级语言变为——机器指令(二进制形式)。
——那么,这个工作一定需要借助另一台机器上的编译器,是这样吗?
追答
对了,去了解了下,可执行文件不是仅仅依靠指令来执行,还要用到系统的函数,内存的分配
这些是要靠操作系统来分配的,所以不同系统的可执行文件是不能互用的,因为系统的结构不同
所以比如:
#include
int main()
{
printf("helloworld!");
}
在wnidows下和linux下编译出的可执行文件调用的函数库是不同的
系统的运行是建立在指令系统之上的
宗杰
2012-12-02 · TA获得超过1469个赞
知道小有建树答主
回答量:848
采纳率:0%
帮助的人:423万
展开全部
程序--高级语言--汇编语言--二进制机器码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
保险经纪人王宏
2012-12-02 · TA获得超过256个赞
知道答主
回答量:191
采纳率:0%
帮助的人:75.5万
展开全部
对于来说,都是二进制的代码!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Jyson
2012-12-02 · TA获得超过866个赞
知道小有建树答主
回答量:373
采纳率:85%
帮助的人:102万
展开全部
比尔盖茨
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式