伟大的操作系统
操作系统
1. 克服硬件的差异让我们能更好的驾驭我们的软件,
我们只需要关注与操作系统的通讯和关系,
而不用再分别对不同硬件进行处理.
2. 提供统一的应用程序接口提供了一套标准化的东西, 也就是
API.软件最终是通过操作硬件来达到功能的.
通过操作系统提供的接口, 我们不在需要了解各种硬件参数和品牌,
方便, 快捷.
软件的运行环境指的是什么?
包括软件环境和硬件环境.
软件环境: 我们的操作系统
硬件环境: CPU/内存...等硬件的支持和各种硬件参数等.
本地编译
Source Code --
编译--> Native Code我们写出的源代码, 也就是有特定语法的文本文件.
经过
编译器的编译操作, 编译成我们系统相应的本地代码.
这种在当前目标平台下,编译出来的程序,只能放到当前平台下,才可以运行.
交叉编译
交叉编译是一个和本地编译相对应的概念。
交叉编译, 就是:
在一种平台上编译, 编译出来的程序, 可以放到别的平台上运行
编译的环境, 和运行的环境, 不一样.
Windows的应用程序能不能在Linux下运行?
能? 不能?
这真是一个问题.
我个人的看法, 如何理解"应用程序" 和 "运行"这个词的意思.
第一.
在Linux上装一个Wine, 可以运行Windows的EXE文件.
但是这就能够说是能运行吗?
说不能, 因为它依赖了Wine, 不是原生支持.
说能, Wine就相当于操作系统的一个角色, 操作系统本身就是一个大的软件.
第二.
Windows上写的C代码编译出来一个EXE,
在Linux上同样的代码编译出来一个Linux的可执行程序,
这样"一次编写, 处处编译"的方式,
算不算Windows的应用程序在Linux下运行?
第三.
交叉编译出来的程序如何来进行定义呢?
比如Windows上编译出了Linux平台的程序, 那这个程序属于Windows应用程序吗?以上基本上属于我自己的执念, 到目前为止是想不明白了....
理论上来说, windows的程序是
不能运行到linux上的因为两个操作系统的API并不一样.
当然, 利用
宏来判断操作系统这种编程技巧来实现的一次编码,处处编译放到这里,就有转牛角尖/吵架的嫌疑了, 目前这个问题不在深究, 我没有答案.....
Java虚拟机的原理
Java虚拟机的原理就是在操作系统之上, 又加了一层.
说白了就相当于一个专门为Java语言运行的小操作系统.
号称跨平台, 其实是伪跨平台.BIOS
作用:
1. 启动计算机后进行硬件检测.
2. 引导硬盘上的操作系统.如有错误,请提出指正!谢谢.
本文由 花心胡萝卜 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: 2016-10-06 at 03:01 pm
博客还行 啊
基本上你纠结的是,题意不明确的问题,并非技术本质上的问题。