首页 > 代码库 > lesson005 操作系统

lesson005 操作系统

一、  带着问题来学习 
  • 软件的运行环境指的是什么?
  • 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 操作系统