美文网首页
05_操作系统(计算机科学)

05_操作系统(计算机科学)

作者: yishurensheng | 来源:发表于2017-11-25 10:33 被阅读0次

带着问题学习(操作系统)

  • 软件的运行环境指的什么?
  • Windows的应用程序能够在Linux下运行吗?
  • Java虚拟机是什么原理?

伟大的操作系统

        在X86电脑出现之前,不同类型的电脑中的CPU指令是不同的,所以当时写的应用程序只能在一种类型甚至一台电脑上运行。

  • 克服硬件差异性:微软设计了叫做MS-DOS的操作系统(最开始的MS-DOS也可以认为是一个软件,它相当于一个壳),我们只需要编写符合MS-DOS规则的程序,就能够在所有安装了MS-DOS电脑上运行我们编写的程序,达到了克服硬件之间的差异性的目的,能够更好的驾驭我们的程序。
  • 提供统一接口:操作系统为我们提供了标准的API,拿着这些API接口,
  • 伪跨平台:目前主要的操作系统有WindowsLinux以及Mac,而这三种操作系统之间是有很大差别的,最主要是体现在API函数接口的不同。这些API的不同,就会导致应用程序在编写起来变得比较麻烦,所以,如果想让我们的应用程序能够在上面三个操作系统上运行,就需要进行三次编译,每一次都会产生一个native code(本地代码)机器码。
    我们在编写源代码的时候,需要对操作系统进行判断,然后写出相对应的API,那么编译器在编译的时候,就会根据不同的草错系统编译出相应的native code机器码。所以我们写的源代码达到了一次编写,处处编译,处处运行的目的。这只是一个简单的编程技法,并没有什么难度。
    交叉编译,顾名思义,我们可以在一个平台下面编译出其它平台下面可以运行的程序,这需要用到交叉编译器,其实对于编程人员来说更是没有什么技术含量。
    我们知道操作系统下面的硬件是各种各样的,然后将各种各样的硬件统一成一个标准的接口,达到了一次编写程序,各个硬件上运行的目的。那么我们可以想象得出,是否有一个标准的软件或什么,将Windows、Linux以及mac这三种平台再封装一下,达到一次编写程序、一次编译、处处运行的目的呢?当然有,那就是著名的Java虚拟机和dot net框架,这样的跨平台是一个伪跨平台,因为还是需要在操作系统上安装Java虚拟机或者dot net 框架的软件。
  • BIOS及引导:BIOS存储在计算机主板中,它主要的一个作用是对计算机硬件的检测(比如键盘、内存、硬盘等),另一个主要功能是对操作系统进行引导,能够让操作系统运行起来。

相关文章

  • 05_操作系统(计算机科学)

    带着问题学习(操作系统) 软件的运行环境指的什么? Windows的应用程序能够在Linux下运行吗? Java虚...

  • 实验一

    西 安 邮 电 大学 (计算机学院) 操作系统课内实验报告 实验名称:熟悉Linux操作系统 专业名称:计算机科学...

  • 计算机基础科学知识

    计算机基础科学知识 对于像数据结构、算法、计算机网络、操作系统、计算机组成原理这些计算机科学基础知识,不管是后端还...

  • 操作系统架构原理-资源管理技术与进程的抽象设计

    热爱计算机科学和互联网技术,掌握扎实的计算机基础知识,深入理解数据结构、算法和操作系统知识。 操作系统定义 定义:...

  • 目录

    计算机科学与技术 汇编语言 汇编语言 C C Primer Plus 数据结构 计算机组成原理 操作系统 计算机网...

  • 实验二

    西 安 邮 电 大学 (计算机学院) 操作系统课内实验报告 实验名称:进程 专业名称:计算机科学与技术 班 级:计...

  • 实验四

    西 安 邮 电 大 学 (计算机学院) 操作系统课内实验报告 实验名称:互斥 专业名称:计算机科学与技术 班 级:...

  • 实验三

    西 安 邮 电 大 学 (计算机学院) 操作系统课内实验报告 实验名称:线程实验 专业名称:计算机科学与技术 班 ...

  • SAP ABAP守护进程(ABAP Daemon)的实现方式

    Jerry本科学习《计算机操作系统》这门专业课时,了解到了守护进程的理念,当时我们是从Linux操作系统里的守护进...

  • Spark学习笔记-1.故事要从那三篇论文说起

    这年头谁没个故事呢!Spark 也有! 起源 计算机科学大致分为4个领域: 人工智能 编程语言 操作系统 计算机理...

网友评论

      本文标题:05_操作系统(计算机科学)

      本文链接:https://www.haomeiwen.com/subject/icoqbxtx.html