跨平台理解
转自:https://zhuanlan.zhihu.com/p/49639722,https://www.zhihu.com/question/40527999
1.介绍
跨平台是指跨不同的操作系统(有不同的系统调用),有不同的cpu指令集。应用程序的执行本质是cpu指令的执行,而cpu指令分为特权指令和非特权指令。(特权指令可以理解为系统调用吗?)
一种语言要想跨平台,首先要在多个平台都有编译器或解释器,但是不同平台的编译器对某些相同的源代码会转化成不同的cpu指令。
2.跨平台语言
Java的跨平台是“一次编译,到处运行”。Java在编译的时候没有编译成指定CPU类型的汇编代码,也没有和具体操作系统的系统调用相关联,所以编译出来的结果是和CPU,操作系统都不相关的。
C编译出来后,就是指定CPU类型的汇编代码,编译过程中肯定也要和具体操作系统的系统库相关连,所以做不到Java那种跨平台。