C语言编译问题

Gs_Yu 2014-11-15 10:40:41
Windows操作系统下,一个简单的C源代码经过编译后生成可执行文件,这个可执行文件是运行在操作系统上的,要调用操作系统提供的接口函数。

我的问题:
拿操作系统来说,无论windows系统还是linux,都是由C语言、汇编或者C++编写的(这里先不管具体用什么语言编写的),这些操作系统源代码经过编译后就是操作系统文件。
1.那么这些经过编译的操作系统文件里面都是机器码,是cpu指令集吗?
2.和之前在操作系统环境下编译生成的可执行文件不同是因为编译器的原因吗?

希望有大侠指点一下,非常感谢
...全文
99 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
二进制脑袋 2014-11-16
  • 打赏
  • 举报
回复
第一种可执行文件我们一般叫应用程序,第二个你说的操作系统自身的文件一般叫内核映像(Image)。两个文件中真正的执行部分内容——机器码集合,都是由同一个CPU指令集的指令构成的(不考虑交叉编译情形)。两者之间的不同: 1、但正如你自己提到的,应用程序要调用操作系统接口函数,意味着:应用程序依赖内核映像,内核映像是为应用程序服务的,虽然应用程序需要的一些服务并不一定非要转入到内核来完成。 2、在Windows上,内核映像(一般是ntoskrnl.exe)和应用程序在格式上都遵循PE标准,只是真正执行的机器码集合不一样。
Gs_Yu 2014-11-16
  • 打赏
  • 举报
回复
引用 1 楼 binaryhead 的回复:
[quote=引用 楼主 gscaiyucheng 的回复:] Windows操作系统下,一个简单的C源代码经过编译后生成可执行文件,这个可执行文件是运行在操作系统上的,要调用操作系统提供的接口函数。 我的问题: 拿操作系统来说,无论windows系统还是linux,都是由C语言、汇编或者C++编写的(这里先不管具体用什么语言编写的),这些操作系统源代码经过编译后就是操作系统文件。 1.那么这些经过编译的操作系统文件里面都是机器码,是cpu指令集吗? 2.和之前在操作系统环境下编译生成的可执行文件不同是因为编译器的原因吗? 希望有大侠指点一下,非常感谢
我来试图回答高手们不太愿意回答的问题。 1、这些经过编译的操作系统文件里面实际可执行部分内容的确是机器码,但文件还包含其它辅助内容。是CPU指令构成的集合,但不能说是CPU指令集,一般CPU指令集是指CPU所有支持指令的集合。打个比方,汉字集指所有汉字的集合,一个操作系统文件中的机器码的集合对应为一本实际由汉字构成的书。 2、不太明白你第二个问题的意思,倒是有一个相关的问题,我已经在我的博文中做了回答,可参考:http://blog.csdn.net/binaryhead/article/details/41083927[/quote] 第二个问题的意思是: 现在有两种编译后的文件 第一种是在windows操作系统中经过编译的c源代码像.exe文件,也就是可执行文件,它的运行要调用操作系统接口函数 第二种就是用C语言、汇编等编写的操作系统自身,它们也要经过编译 那么这两个编译后的文件有什么不同吗?
二进制脑袋 2014-11-15
  • 打赏
  • 举报
回复
引用 楼主 gscaiyucheng 的回复:
Windows操作系统下,一个简单的C源代码经过编译后生成可执行文件,这个可执行文件是运行在操作系统上的,要调用操作系统提供的接口函数。 我的问题: 拿操作系统来说,无论windows系统还是linux,都是由C语言、汇编或者C++编写的(这里先不管具体用什么语言编写的),这些操作系统源代码经过编译后就是操作系统文件。 1.那么这些经过编译的操作系统文件里面都是机器码,是cpu指令集吗? 2.和之前在操作系统环境下编译生成的可执行文件不同是因为编译器的原因吗? 希望有大侠指点一下,非常感谢
我来试图回答高手们不太愿意回答的问题。 1、这些经过编译的操作系统文件里面实际可执行部分内容的确是机器码,但文件还包含其它辅助内容。是CPU指令构成的集合,但不能说是CPU指令集,一般CPU指令集是指CPU所有支持指令的集合。打个比方,汉字集指所有汉字的集合,一个操作系统文件中的机器码的集合对应为一本实际由汉字构成的书。 2、不太明白你第二个问题的意思,倒是有一个相关的问题,我已经在我的博文中做了回答,可参考:http://blog.csdn.net/binaryhead/article/details/41083927

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧