提供相同运行环境的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修复以及运营维护都变得更加简单和方便


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


目录
相关文章
|
3月前
|
机器学习/深度学习 Dart 前端开发
移动应用与系统:构建现代数字生态的基石在当今这个高度数字化的社会中,移动应用与操作系统已成为我们日常生活不可或缺的一部分。它们不仅改变了我们的沟通方式,还重塑了我们的工作、学习和娱乐模式。本文将深入探讨移动应用开发的基础、移动操作系统的功能以及这两者如何共同塑造了我们的数字世界。
随着智能手机和平板电脑的普及,移动应用与系统的重要性日益凸显。它们不仅为用户提供了便捷的服务和丰富的功能,还为开发者提供了广阔的创新平台。本文将介绍移动应用开发的基本概念、技术栈以及最佳实践,并探讨主流移动操作系统的特点和发展趋势。通过分析移动应用与系统的相互作用,我们可以更好地理解它们在现代社会中的重要地位。
|
2月前
|
安全 Android开发 iOS开发
Android vs iOS:探索移动操作系统的设计与功能差异###
【10月更文挑战第20天】 本文深入分析了Android和iOS两个主流移动操作系统在设计哲学、用户体验、技术架构等方面的显著差异。通过对比,揭示了这两种系统各自的独特优势与局限性,并探讨了它们如何塑造了我们的数字生活方式。无论你是开发者还是普通用户,理解这些差异都有助于更好地选择和使用你的移动设备。 ###
52 3
|
3月前
|
移动开发 Android开发 数据安全/隐私保护
移动应用与系统的技术演进:从开发到操作系统的全景解析随着智能手机和平板电脑的普及,移动应用(App)已成为人们日常生活中不可或缺的一部分。无论是社交、娱乐、购物还是办公,移动应用都扮演着重要的角色。而支撑这些应用运行的,正是功能强大且复杂的移动操作系统。本文将深入探讨移动应用的开发过程及其背后的操作系统机制,揭示这一领域的技术演进。
本文旨在提供关于移动应用与系统技术的全面概述,涵盖移动应用的开发生命周期、主要移动操作系统的特点以及它们之间的竞争关系。我们将探讨如何高效地开发移动应用,并分析iOS和Android两大主流操作系统的技术优势与局限。同时,本文还将讨论跨平台解决方案的兴起及其对移动开发领域的影响。通过这篇技术性文章,读者将获得对移动应用开发及操作系统深层理解的钥匙。
|
2月前
|
缓存 算法 安全
探索操作系统的心脏:内核功能与性能优化####
在数字化时代,操作系统作为计算机系统的灵魂,其性能和稳定性直接影响用户体验。本文深入剖析了操作系统的核心——内核,探讨了其在资源管理、安全性和效率方面的关键作用,并提出了针对性能优化的策略,旨在为开发者和用户提供更高效、更安全的操作体验。 ####
|
4月前
|
编解码 Linux 虚拟化
超详细VMware虚拟机安装Win10操作系统过程图解
这篇文章提供了一个详细的VMware虚拟机安装Windows 10操作系统的图解教程,包括了从创建虚拟机到安装操作系统的全过程,以及安装后的一些基本设置,如屏幕分辨率调整等。作者还提到了后续会分享关于磁盘分区的创建过程。
超详细VMware虚拟机安装Win10操作系统过程图解
|
4月前
|
搜索推荐 Java 程序员
在Java编程的旅程中,条件语句是每位开发者不可或缺的伙伴,它如同导航系统,引导着程序根据不同的情况做出响应。
在Java编程中,条件语句是引导程序根据不同情境作出响应的核心工具。本文通过四个案例深入浅出地介绍了如何巧妙运用if-else与switch语句。从基础的用户登录验证到利用switch处理枚举类型,再到条件语句的嵌套与组合,最后探讨了代码的优化与重构。每个案例都旨在帮助开发者提升编码效率与代码质量,无论是初学者还是资深程序员,都能从中获得灵感,让自己的Java代码更加优雅和专业。
28 1
|
4月前
|
存储 算法 前端开发
JVM架构与主要组件:了解Java程序的运行环境
JVM的架构设计非常精妙,它确保了Java程序的跨平台性和高效执行。通过了解JVM的各个组件,我们可以更好地理解Java程序的运行机制,这对于编写高效且稳定的Java应用程序至关重要。
54 3
|
5月前
|
运维 开发者 人工智能
OS Copilot 产品体验评测与功能反馈
**OS Copilot体验摘要:** - 开发者反馈,用于代码生成,评分为8/10,易上手,文档清晰。 - 愿意推荐并参与开源开发,特别是大模型训练。 - 亮点功能:辅助编程,快速响应,但知识问答需改进。 - 希望增加功能:代码检查,更多操作系统支持,自动错误分析。
OS Copilot 产品体验评测与功能反馈
|
4月前
|
Kubernetes Cloud Native 开发者
探索云原生技术:Kubernetes入门与实践探索Windows操作系统的隐藏功能
【8月更文挑战第31天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性、效率和可靠性的关键。本文将带你了解云原生的核心组件之一——Kubernetes(K8s),通过浅显易懂的语言和实际代码示例,引导你步入这一强大工具的世界。无论你是初学者还是有经验的开发者,本篇都将为你打开一扇通向高效资源管理与自动化部署的大门。