提供相同运行环境的Java虚拟机、BIOS和引导及操作系统功能的历史

简介: 提供相同运行环境的Java虚拟机、BIOS和引导及操作系统功能的历史

     即使不通过应用程序的移植,在同一操作系统上仍然可以使用其他的操作系统,那就是使用虚拟机软件。虚拟机(Virtual Machine)指通过软件的具有完整硬件系统功能的、运行在同一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现


一、提供相同运行环境的Java虚拟机


       除了虚拟机的方法之外,还有一种方法能够提供不依赖于特定硬件和操作系统的程序运行环境,那就是Java


       Java其实是有两层意思,一种是作为编程语言的Java;一种是作为程序运行环境的Java。Java和其他语言相同,都是通过源代码编译后运行的。不过,编译后生成的不是特定CPU使用的本地代码,而时名为 字节代码 的程序。直接代码的运行环境就称为 Java虚拟机(Java Virtual Machine)。Java虚拟机是一边把Java字节代码逐一转换为本地代码一边在运行着


       程序运行时,将编译后的字节码代码转换为本地代码,这样的操作看上去有些迂回,但由此可以实现相同的字节码可以在不同的操作系统环境下运行


Java应用在虚拟机上运行:



  Windows有专门的Windows虚拟机,Macintosh有Macintosh专门的虚拟机。从操作系统来看,Java虚拟机就是一个应用,从运行环境上来看,Java虚拟机就是运行环境


二、BIOS和引导


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


       电脑开机后,BIOS会确认硬件是否正常运行,没有异常的话会直接启动引导程序。引导程序的功能是把在硬盘等记录的OS加载到内存中运行。虽然启动应用是OS的功能,但OS不能启动自己,是通过引导程序来启动的。


        利用计算机运行程序大部分都是为了提高处理效率。例如,Microsoft Word 这样的文字处理软件,是用来提高文本文件处理效率的程序,Microsoft Excel 等表格计算软件,是用来提高账本处理效率的程序。这种为了提高特定处理效率的程序统称为 应用


       程序员的工作就是编写各种各样的应用来提高工作效率,程序员一般不编写操作系统,但是程序员编写的应用离不开操作系统


三、操作系统功能的历史


       操作系统其实也是一种软件,任何新事物的出现肯定有着它的历史背景,操作系统也有属于它的历史背景


       在计算机尚不存在操作系统的年代,完全没有任何程序,人们通过各种按钮来控制计算机,这一过程非常麻烦。于是没有人开发出了具有加载和运行功能的监控程序,这就是操作系统的原型。通过事先启动监控程序,程序员可以根据需要将各种程序加载到内存中运行。虽然仍然比较麻烦,但比起没有任何程序的状态进行开发,工作量得到了很大的缓解


监控系统可以说是操作系统的原型:



   随着时代的发展,人们在利用监控程序编写程序的过程中发现很多程序都有公共的部分。例如,通过键盘进行文字输入,显示器进行数据展示,如果每编写一个新的应用程序都需要相同的处理的话,那就很浪费时间。因此,基本的输入输出部分的程序就被追加到了监控程序中。初期的操作系统就这样诞生了


初期操作系统 = 监控程序 + 基本的输入输出程序:



   类似的想法可以共用,人们又发现有更多的应用程序可以追加到监控程序中,比如 硬件控制系统,编程语言处理器(汇编、编译、解析)以及各种应用程序等,结果就形成了和现在差异不大的操作系统,也就是说,其实操作系统是多个程序的集合体


操作系统多个程序的集合体:



汇编语言时一种低级语言,也被称为 符号语言。汇编语言是第二代计算机语言,在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。用一些容易理解和记忆的字母,单词来代替一个特定的指令,比如:用 ADD 代表数字逻辑上的加减 ,MOV代表数据传递等等,通过这种方法,人们很容易去阅读已经完成的程序或者理解程序正在执行的功能,对现有的程序的bug修复以及运营维护都变得更加简单和方便


可以说共同思想是人类前进的一大步,对于解放生产力而言非常重要


目录
相关文章
|
13天前
|
存储 弹性计算 NoSQL
os-copilot安装与多项功能测评
本文介绍了os-copilot的安装及多项功能测评。首先,通过xShell连接服务器并使用`rpm -q os-copilot`检查是否已安装,若未安装则用`yum install`命令安装。接着,配置ACCESS_KEY信息以连接阿里云服务。深入测试部分展示了-t参数用于环境健康检查、-f参数处理复杂任务、|参数解释代码等功能,还演示了编写shell脚本创建和启动Redis的便捷性。这些功能对基础运维和开发人员有较大帮助。
98 12
|
4月前
|
机器学习/深度学习 Dart 前端开发
移动应用与系统:构建现代数字生态的基石在当今这个高度数字化的社会中,移动应用与操作系统已成为我们日常生活不可或缺的一部分。它们不仅改变了我们的沟通方式,还重塑了我们的工作、学习和娱乐模式。本文将深入探讨移动应用开发的基础、移动操作系统的功能以及这两者如何共同塑造了我们的数字世界。
随着智能手机和平板电脑的普及,移动应用与系统的重要性日益凸显。它们不仅为用户提供了便捷的服务和丰富的功能,还为开发者提供了广阔的创新平台。本文将介绍移动应用开发的基本概念、技术栈以及最佳实践,并探讨主流移动操作系统的特点和发展趋势。通过分析移动应用与系统的相互作用,我们可以更好地理解它们在现代社会中的重要地位。
|
5天前
|
Java
CentOS7.8配置Adoptium-Java17运行环境
本指南介绍如何设置清华镜像源并安装 Temurin-17-JRE 运行环境。首先,编辑 `/etc/yum.repos.d/adoptium.repo` 文件,配置清华镜像源。接着,使用 `yum install -y temurin-17-jre` 命令安装 Temurin-17-JRE,并通过 `java --version` 验证安装成功。相关配置和操作界面截图附后。
22 8
|
10天前
|
弹性计算 运维 数据可视化
OS Copilot安装与多项功能测评报告
OS Copilot安装与多项功能测评报告
71 15
|
11天前
|
弹性计算 自然语言处理 Linux
Os Copilot功能测评
作为一名开发工程师,我在工作中偶尔涉及云资源的运维和管理。本文记录了我使用OS Copilot的-t/-f/管道功能的体验及遇到的问题。通过阿里云ECS下单、密钥配置、镜像选择等步骤成功登录服务器后,根据文档安装OS Copilot并测试其功能。-t参数可快速获取系统健康度结论;-f参数支持自然语言处理文件需求;管道功能帮助理解配置文件内容。这些功能极大提升了工作效率,但仍存在上下文记忆不足的问题。
|
1月前
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
103 34
|
2月前
|
安全 Java 测试技术
🎉Java零基础:全面解析枚举的强大功能
【10月更文挑战第19天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
131 60
|
2月前
|
Java
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式。本文介绍了 Streams 的基本概念和使用方法,包括创建 Streams、中间操作和终端操作,并通过多个案例详细解析了过滤、映射、归并、排序、分组和并行处理等操作,帮助读者更好地理解和掌握这一重要特性。
46 2
|
3月前
|
安全 Android开发 iOS开发
Android vs iOS:探索移动操作系统的设计与功能差异###
【10月更文挑战第20天】 本文深入分析了Android和iOS两个主流移动操作系统在设计哲学、用户体验、技术架构等方面的显著差异。通过对比,揭示了这两种系统各自的独特优势与局限性,并探讨了它们如何塑造了我们的数字生活方式。无论你是开发者还是普通用户,理解这些差异都有助于更好地选择和使用你的移动设备。 ###
73 3
|
3月前
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
78 2
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下