计算机世界--操作系统
2016-09-06 00:59
218 查看
问题:
软件的运行环境指的是什么?
Windows的应用程序能够在Linux运行吗?
Java虚拟机是什么原理?
1.软件的运行环境指的是什么?
软件的运行环境是指在什么操作系统下运行、需要什么样的硬件配置等。
那么什么是操作系统呢?
在操作系统出来之前,一般的软件只是针对于某一台电脑而编写的,因为在别的电脑上可能不能运行。基于这些问题,此时,我们伟大的操作系统就出现了,微软出现 ms-dos 操作系统,最开始的这个系统相当于一个软件,相当于一个壳,我们只需要写符合这个壳的规则的软件,那么就能在每一台电脑里来运行这个程序,这个时候,伟大的操作系统就诞生了。它克服了电脑之间的差异,让我们能够更好地驾驭我们的软件,我们只需要关心和这个壳之间的通信,而不用关心与硬件先关的东西。
操作系统具有以下特点
它克服了硬件差异
提供了统一接口(标准化 统一的API)
伪装平台(比如Java,因为它有Java虚拟机)
BIOS及引导
BIOS存储在主板里面,主要进行硬件检测,以及对磁盘进行引导。为什么要进行引导呢?因为操作系统也是一个软件,它也是需要有人把它给运行起来才能工作,我们可以设置BIOS在哪个磁盘开始引导,那么它会在这个磁盘开始加载需要启动的操作系统,从而达到开机就运行我们的操作系统的目的。BIOS及指引导(开机时,会有硬件自检,还会对硬盘进行引导,从磁盘中加载需要启动的操作系统)
2.Windows的应用程序能够在Linux运行吗?答案是否定的,因为:
目前的操作系统:Windows、Linux、Mac
这三个操作系统实现的功能是一样的,但是它们又各自有各自的API,如果想让我们的代码在三种平台下运行,那么我们要进行三次编译。
3.Java虚拟机的原理是再次对不同的操作系统进行封装。
跨平台原理:
一种办法是,一次编写,处处编译,再运行(可以先获取操作系统信息,根据不同的操作系统来执行对应的代码)
另一种方法是,在三种操作系统的基础上,再加一层,把各个操作系统的API给封装起来,来达到一次编译,处处运行的目的,但是这样的跨平台是一种伪跨平台,并不是真正的跨平台。比如Java和c#。
相关文章推荐
- 计算机世界--磁盘
- TCP面向连接网络编程
- 每日一省之—使用线性探测法(仅利用数组作为底层数据结构)实现HashMap
- 《TCP/IP详解 卷1:协议》 读书笔记 第19章 TCP的交互数据流
- 计算机编码
- HTTP协议学习总结
- SICP Python 描述 3.3 递归数据结构
- JAVA并发数据结构
- 在全局检测移动网络的变化
- [译]用模版技术转换Web服务输出结果
- iOS 网络编程
- Http Request Headers 中的 User-Agent
- TCP、UDP和HTTP关系
- tcpdump 抓包
- Https协议详解
- 【OVS2.5.0源码分析】datapath之action分析(7)
- MatConvNet卷积神经网络(一)
- 专题总结:数据结构总结【转】
- server2008R2WSUS管理之自动审批
- server2008R2WSUS管理之 计算机管理