为什么都是用c语言编写的两个系统,而一些应用软件只能在一种操作系统里运行呢?比如微软和苹果
发布网友
发布时间:2022-03-26 11:56
我来回答
共2个回答
热心网友
时间:2022-03-26 13:25
许多系统底层都是C语言,但实现起来是不一样的,而应用程序往往都是基于操作系统的实现来编写的。比如Unix下的系统调用,在Windows下就没有;同样,Windows下的API,在Unix下也同样行不通。
可是如果你只使用标准的c来编写程序,那么要在不同系统上运行也是挺容易的,但是这样无疑会有损程序功能和用户体验,因为你如果不和操作系统互通,那么编写出来的程序基本上是没有实际功用的。
当然,现在有许多进步,比如各种跨平台框架的出现,比如mono,它使得.NET程序能在Linux甚至Android环境上运行。这些框架并没有改变系统底层的实现,但是提供了一个独立于系统底层的运行环境,普通开发者可以根据框架来编写程序,而不再需要过多考虑框架如何与不同操作系统互动,因为这些是框架开发者的事了。
另外,你说的问题也可能包含硬件架构的问题,比如这类问题就出现在Mac还未采用Intel处理器的时代。就连现在,Windows的32位和64位版本下的程序在兼容性上也存在问题,这其中的原理也是相似的。
热心网友
时间:2022-03-26 14:43
不同的系统有着他不同的函数库,服务项,关键控件等等,还有就是不知道谁TM操蛋的最先使用的垃圾代码来保护系统。so某些软件只适合在特定了的系统里运行,不然的话,在某些情况下,原本相同的代码,有可能是两个系统里面不同的意思。