标签:
一、 带着问题来学习
- 软件的运行环境指的是什么?
- windows的应用程序能够在Linux上面运行吗?
- Java虚拟机是什么原理
二 、伟大的操作系统
1 克服硬件差异
在操作系统出来之前,每一台电脑都是各自为政的,它的指令都是不一样的,在很久之前,很多厂商都做自己的电脑,里面的指令和别家的不一样的,程序员会很头疼,因为指令不同。程序员写的程序只能在一种机型甚至一台电脑上运行。
ms-dos出来了,它完成 了一件事情:它相当于一个壳,壳子里面是各种电脑,我们的软件,可以直接在这个壳子里面运行,克服了硬件差异,让我们能更好的驾驭软件。
慢慢的PC出来,电脑普及……
2 提供统一接口
操作系统提供了一种标准化的东西,提供了统一接口。提供很多的API,拿着这些API,我们就能很好的来和硬件进行交互,来实现我们软件的功能。操作系统让我们再也不用考虑:这世上有哪些显卡,它们又是如何工作的,这些帮我们屏蔽好了。我们只需要简单的调用一个API,就能实现需要的功能。所以:很多商业软件,规定了运行环境,1要求操作系统 2 要求硬件,需要多快的CPU,多大的内存等,磁盘空间,显卡等
3 伪跨平台
操作系统有哪些: 1 windows 2 Linux 3 Mac 三者之间不共通,各家制定的API不同
native code 原生代码 本地代码 如何让源代码不变, 一次编写 处处编译 ,在3家操作系统都能运行呢?
这是件简单的事情:
如果我想:在win平台编译出linux上的本地源码呢?也是可以的
就是编程的技法可以解决这件事:交叉编译
什么是交叉编译?其实指的是,我在win编译出和合linux的程序。
还有没有别的跨平台的方法呢?有:伪跨平台
我们的操作系统,就是在各种各样的硬件上面加壳,那现在有三种操作系统,那我们是不是可以在做3个,在这3个一系列的硬件上,加上壳
同样我们也对外提供一些统一的API,这样我们就能做到,一次编译,处处执行了。
在所有操作系统上,再加上一层壳,统一API 就能实现,如 java C# 就能实现
Java,C#它们就是这么做的,它们在所有平台上面,都会有一个对应的软件
java 对应 java ,C# 对应 . net 第一个平台都有一个版本,用来运行java或者C#里面做的些东西。它来负责运行。它就相当于在操作系统上又加了层壳。
这种就称为:伪跨平台,其实没有真的起到跨平台的作用,还是要在每个平台上装个软件。只是说这个软件不是要你书写了,java帮我们写了。
4 BIOS及引导
1 检测 2 磁盘引导
为什么需要引导呢?我们的操作系统它其实也是一个软件,一款软件,没有一个人来双击它,没有人来运行它,它是运行不了的。那么就需要一个人来引导它。那么bios里面就能设置操作系统的引导。
lesson005 操作系统
标签:
原文地址:http://www.cnblogs.com/bing-z/p/5828173.html