这是来自Wiki。可执行文件是机器代码 - 用于硬件吗?
“在计算中,可执行文件,使计算机‘根据编码的指令以执行所指示的任务,’(机器代码??)
”现代操作系统保留对计算机的资源控制,要求单独的程序使系统调用访问特权资源。由于每个操作系统系列都具有自己的系统调用体系结构,因此可执行文件通常与特定的操作系统绑定在一起。“
这是我的观点 可执行文件不能是机器代码,因为它们需要访问硬件服务(系统调用)因此,可执行文件还不是“机器代码”...也许它就像代码的一部分是实际的机器代码,有些部分只是为了调用嵌入在操作系统中的机器代码?一些机器代码的垃圾 - 和一些代码调用操作系统
Damon's编辑回答: 最后,OS是一组机器码,基本上OS会做复制粘贴用户的机器代码(由C编译器创建)的作业,然后如果该指令是系统调用,则转移到OS内存区域进行处理。现在问题是C中生成的机器码可以完成这部分?就像要求将控制权转移给操作系统等一样 - 我认为它的系统调用的抽象性更高,但却隐藏起来 - 它是如何工作的。
我感觉它与鸡蛋问题类似,C创建操作系统和C使用操作系统无法找到过程的确切过程。 任何人都可以为我打破难题吗?
有一件事不排除其他。可执行文件是(除非它们是在虚拟机中运行的某种形式的字节码)机器代码。但是,有不同类型的指令,其中一些在某些特权级别上不可用。这就是操作系统进入的地方,它是以最高特权级别运行的“机器代码”,作为“重要”部分和任务的仲裁者,例如决定谁获得CPU时间以及什么值进入某个硬件寄存器。 – Damon 2011-04-08 17:02:27
@Damon:做出答案。 – 2011-04-08 18:11:51
http://en.wikipedia.org/wiki/System_call是任何想要进一步学习Damon所说的话题的人的好资源。 – Nishant 2011-04-08 21:01:28