首页 > 编程语言 >第七章 程序是在何种环境下运行的

第七章 程序是在何种环境下运行的

时间:2023-02-22 19:23:13浏览次数:33  
标签:硬件 Java 操作系统 Windows 程序 何种 API 第七章

       程序中包含着很多内容:运行环境=操作系统+硬件,应用的运行环境通常是用类似于Windows(OS)和AT兼容机(硬件)这样的OS和硬件的种类来表示的。

       同一类型的硬件可以选择安装多种操作系统。例如,同样的AT兼容机中,既可以安装Windows,也可以安装Linux等操作系统。不过,Windows及Linux操作系统也存在多种版本。根据应用的具体情况,有时只有在特定版本的操作系统上才能运行。CPU只能解释其自身固有的机器语言。不同的CPU能解释的机器语言的种类也是不同的。例如,CPU有x86、MIPS、SPARC、PowerPC”等几种类型,它们各自的机器语言是完全不同的。机器语言的程序称为本地代码(native code)。程序员用C语言等编写的程序,在编写阶段仅仅是文本文件。文本文件(排除文字编码的问题)在任何环境下都能显示和编辑。我们称之为源代码。通过对源代码进行编译,就可以得到本地代码。

       计算机的硬件并不仅仅是由CPU构成的,还包括用于存储程序指令和数据的内存,以及通过I/O连接的键盘、显示器、硬盘、打印机等外围设备。

        应用软件则必须根据不同的操作系统类型来专门开发。CPU的类型不同,所对应的机器语言也不同,同样的道理,操作系统的类型不同,应用程序向操作系统传递指令的途径也是不同的。应用程序向操作系统传递指令的途径称为API(ApplicationProgramming Interface)“。Windows及Unix系列操作系统的API,提供了任何应用程序都可以利用的函数组合。因为不同操作系统的API是有差异的,因此,将同样的应用程序移植到其他操作系统时,就必须要重写应用中利用到API的部分。像键盘输入、鼠标输入、显示器输出、文件输入输出等同外围设备进行输入输出操作的功能,都是通过API提供的。在同类型操作系统下,不管硬件如何,API基本上没有差别。因而,针对某特定操作系统的API所编写的程序,在任何硬件上都可以运行。

       利用虚拟机获得其他OS环境:Virtual PC for MAC可以使Macintosh 这一硬件变得同AT兼容机一样,从而能在该硬件上安装Windows。这样一来,Windows 下的所有应用就都可以正常运行了。Windows应用利用的是Windows操作系统的API。虽然表面上是Windows将硬件处理为了AT兼容机,但由于Virtual PC for MAC的作用,实际上运行的是Macintosh这一硬件。

       Java 也是将Java语法记述的源代码编译后运行。不过,编译后生成的并不是特定CPU使用的本地代码,而是名为字节代码的程序。字节代码的运行环境就称为Java虚拟机(JavaVM,Java Virtual Machine)。Java虚拟机是一边把Java字节代码逐一转换成本地代码一边运行的。

       BIOS(Basic Input/Output System)的系统。BIOS存储在ROM中,是预先内置在计算机主机内部的程序。BIOS除了键盘、磁盘、显卡等基本控制程序外,还有启动“引导程序”的功能。引导程序是存储在启动驱动器起始区域的小程序。操作系统的启动驱动器一般是硬盘,不过有时也可以是CD-ROM或软盘。

标签:硬件,Java,操作系统,Windows,程序,何种,API,第七章
From: https://www.cnblogs.com/locojo/p/17145533.html

相关文章

  • 2月21日python程序设计
    Python变量1.不需要事先声明变量名及其类型,直接赋值即可。2.强类型编程语言,根据赋值或运算来推断变量类型。3.动态类型语言,变量的类型也是可以随时变化的。>>> x='He......
  • 一文理解JVM的程序计数器(PC)
    目录1功能演示2跳转、循环等执行的执行原理3关于PC的面试题JVM中的程序计数寄存器(ProgramCounterRegister)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的......
  • C++黑马程序员——P124-126. 赋值 关系运算符重载;函数调用运算符重载
    P124.类和对象——C++运算符重载——赋值运算符重载P125.类和对象——C++运算符重载——关系运算符重载P126.类和对象——C++运算符重载——函数调用运算符重载P124......
  • 每个程序员都应该知道的 8 大算法
     来源:https://python.plainenglish.io/top-8-algorithms-every-programmer-should-know-93c826267938在编程开发中,算法是用于解决特定问题或完成特定任务的一组指令或......
  • (数据库系统概论|王珊)第七章数据库设计-第一节:数据库设计概述
    pdf下载:密码7281专栏目录首页:【专栏必读】(考研复试)数据库系统概论第五版(王珊)专栏学习笔记目录导航及课后习题答案详解注意:此部分内容和软件工程的知识点重合较多,更......
  • uni-app:运行到微信小程序模拟器(hbuilderx 3.6.18)
    一,运行运行->运行到小程序模拟器->微信开发者工具出现报错:15:41:27.814[微信小程序开发者工具][error]IDEserviceportdisabled.TouseCLICall,pleaseenter......
  • 微信小程序-自定义对话框
    <modaltitle="蓝牙扫描中...."hidden="{{deviceDialogHidden}}"bindconfirm="confirmClick"confirm-text="关闭"no-cancel="true"><scroll-viewclass="device-lis......
  • 程序员必备的代码审查(Code Review)清单
    代码审查清单常规项代码能够工作么?它有没有实现预期的功能,逻辑是否正确等。所有的代码是否简单易懂?代码符合你所遵循的编程规范么?这通常包括大括号的位置,变量名和函数名......
  • FANUC机床数据采集程序预估计划
    写一下准备怎么写这程序,要完成,或注意些什么,先胡乱写个大概方向(记得一个名言,已经在我身上多次验证:当你遇到困难,你把它写出来,这个困难就已经解决80%了)大概是这个意思,真的有......
  • uni 微信小程序、QQ小程序base64转换图片
    base64Save(base64File){constfsm=uni.getFileSystemManager();//获取全局文件管理器 letextName=base64File.match(/data\:\S+\/(\S......