首页 > 编程语言 >程序的运行环境

程序的运行环境

时间:2024-02-20 23:34:37浏览次数:28  
标签:操作系统 Windows 程序 环境 硬件 源代码 CPU 运行

     运行环境等于操作系统加硬件,也就是说操作系统和硬件决定了程序的运行环境。同一类型的硬件可以选择安装多种操作系统。若从程序的运行环境这一角度来考量硬件时,CPU的种类是特别重要的参数,由此我们可以知道CPU的种类有很多且只能解释其自身固有的机器语言,而且CPU负责解析并运行从源代码编译来的本地代码。那么什么是源代码什么?又是本地代码呢?源代码就是在任何环境下都能显示和编辑都能显示和编辑的文本文件,本地代码就是通过对源代码进行编译得到的代码也是机器语言的程序。像Windows的应用软件包CD-ROM中收录的就是本地代码。我们知道计算机的硬件,包括CPU用于存储程序指令和数据的内存,以及通过I/O连接的键盘、显示器、硬盘、打印机等外围设备,但计算机是如何控制这些外围设备的呢?这和计算机的机型有着很大的关系。在刚开始用的是Windows的前身是MS-DOS应用,但应该运用功能尚不完全且要提高程序的运行速度,因此之后Windows操作系统的问世克服了这些硬件构成的差异,下图是MS-DOS应用与Windows应用如何完成对硬件的控制的过程图:

有图我们就可以知道MS- DOS应用大多都是不经过操作系统,而直接控制硬件Windows应用则是基本上都有Windows来完成对硬件的控制的。但由于市面上的Windows应用软件都是用特定的CPU的本地代码来完成的,因此即便是Windows无法吸收CPU类型的差异。

    前文我们已知CPU的类型不同所对应的机器语言也不同,同样的道理,操作系统的类型不同应用程序向操作系统传递指令的途径也不同,也就是API不同。

    对于CPU类型的不同而导致同样的本地代码无法重复利用,我们可以利用FreeBSD系统中的Ports机制结合当前运行的硬件环境来编译应用的源代码,进而得到本地代码系统。而且若目标应用的源代码,Ports在硬件上就会自动使用FTP连接到相关站点来下载代码如图所示:

因此,可以说Ports能够克服包含CPU在内的所有硬件差异的系统。

       我们也可以利用虚拟机软件来运行,其他操作系统的应用,例如Macintosh的Virtual PC for MAC虽然运行速度有点慢,但确实能正常运行。除此之外,我们还可以利用Java虚拟机提供运行环境,这种方法不依赖于特定硬件及操作系统,但加Java虚拟机提供的环境编译后生成的并不是特定cpu使用的本地代码,而是名为字节代码的程序。因此Java虚拟机也会出现无法进行完整互换的问题以及,以及我们使用只适用于某些特定硬件的功能时就会出现在其他Java虚拟机上无法运行或者功能使用受限等情况,还有就是运行速度的问题。

      补充:BIOS存储在ROM中是预先内置在计算机主机内部的程序,他除了键盘磁盘显卡,等基本控制程序外,还有启动"引导程序"的功能。引导程序是存储在启动驱动器起始区域的小程序,其功能是把在硬盘等记录的OS加载到内存中运行。

标签:操作系统,Windows,程序,环境,硬件,源代码,CPU,运行
From: https://www.cnblogs.com/G-y-l-123/p/18024273

相关文章

  • 《程序是怎样跑起来的》第六章读后感
    我深入阅读了《程序是怎样跑起来的》的第六章。这一章节为我揭示了程序运行过程中的重要环节和原理,让我对计算机程序的执行有了更深刻的理解。首先,本章强调了程序与数据结构的紧密联系。一个好的数据结构可以大大提高程序的运行效率,而一个糟糕的数据结构则可能导致程序运行缓慢甚......
  • 对于可执行文件的产生和运行过程的认知(《程序时怎样跑起来的》第8章)
    在阅读《程序时怎样跑起来的》第八章后,我认识到了源文件变为可执行文件的过程,包括必备的因素和运行的条件。源文件指的是程序员利用高级语言写的代码文件,而在第七章中提到,CPU能识别的是本地代码也叫机器语言,而源文件到本地代码的过程就叫做“编译”,通常利用对应语言的编译器进行编......
  • 《程序是怎样跑起来的》第四章读后感
    《程序是怎样跑起来的》第四章的内容主要讲的是熟悉使用有棱有角的内存。读了第四章内容,我学到了内存的物理机制是什么,内存的逻辑模型,数组等知识。内存实际上是一种名为内存IC的电子元件。虽然内存IC包括DRAM、SRAM、ROM”等多种形式,但从外部来看,其基本机制都是一样的。内存IC中......
  • 《程序是怎样跑起来的》第七章:程序在何种环境中运行
    这一章深入浅出地解析了操作系统、硬件、编译器等重要元素,以及它们如何协同工作以支持程序的运行。在程序运行的大环境中,操作系统无疑扮演着关键的角色。它不仅管理着硬件资源,如CPU、内存和存储,还负责提供一种机制使得多个程序能够安全、有效地共享这些资源。通过操作系统,程序可以......
  • 《程序是怎样跑起来的》第八章:从源文件到可执行文件
    在这一章中,作者详细地解释了如何将源代码转化为可执行文件,这个看似简单的讨程实际上包含了多个复杂的步骤。源代码,作为程序的起点,虽然已经包含了实现特定功能的代码,但它本身并不能直接运行。为了让它能在计算机上运行,需要经过一系列的编译和链接过程。这包括词法分析、语法分析、......
  • 程序是怎样跑起来的第八章读后感
    在阅读第八章后,我对程序的内存管理有了更深入的理解。这一章详细介绍了内存的分配和释放机制,以及如何避免内存泄漏和内存溢出等问题。我认识到了内存管理对于程序的重要性。不合理的内存使用可能导致程序性能下降、崩溃甚至出现安全漏洞。通过学习本章内容,我了解到了不同的内存分......
  • 读程序是怎样跑起来的第八章有感
    《程序是怎样跑起来的》第八章通过深入浅出的方式,解答了我对于现代编程语言特性的困惑。作者详细解释了现代编程语言背后的工作原理,以及为什么这些特性如此重要。我对第八章中关于“动态类型语言与静态类型语言”的论述印象深刻。我之前一直觉得这两者间的区别只是形式上的,但作者......
  • 【C++】判断回文字符串。回文指的是顺读和逆读都一样的字符串。例如,“tot”和“otto”
    //判断字符串是否是回文字符串(考虑大小写,空格和标点符号)boolpalindrome1(string&str){stringret;for(auto&c:str){if(isalpha(c)){if(isupper(c)){ret.push_back(tolower(c));}else{ret.push_back(c);}......
  • 《程序是怎样跑起来的》第八章的读后感
    又到了读书分享的时候,本篇分享《程序是怎样跑起来的》第八章的读后感,从源文件到可执行文件。Windows中的EXE文件的程序内容使用的就是本地代码。能够把C语言等高级编程语言编写的源代码转换成本地代码的程序称为编译器,将C语言编写的源代码换成本地代码的编译器称为C编译器。把多......
  • 《程序是怎样跑起来的》第九章
    心得:了解了操作系统和应用以及Windows知识点:1、操作系统监控程序的主要功能是程序的加载和运行,监控程序也可以说是操作系统的原型。操作系统也称为基础软件,操作系统是计算机运行时不可或缺的控制程序,以及在控制程序下运转的为其他软件运行提供操作环境的软件的统称。操作系统本......