程序的运行和操作系统的关系

程序(本地代码)的运行环境是由操作系统和硬件来决定的

​ 应用程序向操作系统传递指令的途径称为API。Windows及Unix系列操作系统的API,提供了任何应用程序可以利用的函数组合。

因为不同操作系统的API是有差异的,因此将同样的应用程序一直到其他操作系统时,就必须要重写应用中利用到的API部分。

​ 像键盘输入等同外围设备进行输入输出操作的功能,都是通过API提供的。

​ UNIX系列操作系统 FreeBSD,存在一种名为Ports的机制。该机制能过结合当前运行的硬件环境俩编译应用的源代码,进而得到可以运行的本地代码系统

操作系统和应用的关系

操作系统的原型是 仅具有加载和运行程序功能的监控程序,后来渐渐的追加了一些功能到监控程序中,如基本的输入输出程序的功能。

初期的操作系统=监控程序+基本的输入输出程序

因此可以说操作系统是多个程序的集合体。

操作体统可分为:控制程序(硬件控制、程序运行控制),编程语言处理器(汇编、编译、解析)和实用程序(文本编辑器、调试工具、dump程序)

应用的可执行文件指的是,计算机的CPU可以直接解释并运行的本地代码

应用并不是直接控制硬件,而是通过操作系统间接控制硬件。类似C语言中的time()printf()这些函数的运行结果,都不是面向硬件而是面向操作系统的。操作系统接收到应用发出的指令后,首先会对该指令进行解释,然后会对时钟IC和显示器的I/O进行控制。

操作系统的硬件控制功能,通常是通过一些小的函数集合体的形式来提供的。这些函数及调用的函数的行为统称为系统调用

不同操作系统,在编写c源码时,能同样使用printf函数的原因在于,编译时将其转换成相应操作系统的系统调用(也可能是多个系统调用的组合)。就是说,用高级编程语言编写的应用在编译后,就转换成了利用系统调用的本地代码。

参考书籍《程序是怎样跑起来的》

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值