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


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


目录
相关文章
|
25天前
|
Java 开发者
Java多线程教程:使用ReentrantLock实现高级锁功能
【4月更文挑战第6天】`ReentrantLock`是Java并发编程中一个强大的同步工具,比`synchronized`提供更丰富功能。它支持可响应性、可中断性、公平性选择及条件变量。通过示例展示了创建、公平性设置、可中断锁定、尝试锁定及条件变量的使用。`ReentrantLock`使线程同步更灵活,适用于高性能应用,但使用需谨慎,理解其原理并恰当使用。
|
2月前
|
运维 监控 JavaScript
JAVA村卫生室、诊所云HIS系统源码 支持医保功能
运维运营分系统 1、系统运维:环境管理、应用管理、菜单管理、接口管理、任务管理、配置管理 2、综合监管:统计监管的医疗机构的综合信息,包括医疗业务量、人员配备量、支付分类占比等。 3、系统运营:机构管理、药品目录管理、用户管理、角色管理、字典管理、模板管理、消息管理、运营配置、售后服务、外部系统。
31 0
|
2月前
|
数据安全/隐私保护 虚拟化 Windows
如何在 VM 虚拟机中安装 Windows Server 2012 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 Windows Server 2012 操作系统保姆级教程(附链接)
|
2月前
|
数据安全/隐私保护 虚拟化 Windows
如何在 VM 虚拟机中安装 Windows 7 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 Windows 7 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 Windows 7 操作系统保姆级教程(附链接)
|
2月前
|
数据安全/隐私保护 虚拟化 Windows
如何在 VM 虚拟机中安装 Windows XP 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 Windows XP 操作系统保姆级教程(附链接)
|
2天前
|
分布式计算 DataWorks 监控
DataWorks操作报错合集之DataWorks在调用java sdk的createFile功能时报错com.aliyuncs.exceptions.ClientException: 1201111000 如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
9 1
|
6天前
|
缓存 Java 测试技术
Java多线程实战-实现多线程文件下载,支持断点续传、日志记录等功能
Java多线程实战-实现多线程文件下载,支持断点续传、日志记录等功能
|
6天前
|
Java API
java流式实现chatGPT会话功能
java流式实现chatGPT会话功能
8 1
|
7天前
|
设计模式 JavaScript Java
[设计模式Java实现附plantuml源码~结构型] 扩展系统功能——装饰模式
[设计模式Java实现附plantuml源码~结构型] 扩展系统功能——装饰模式
|
23天前
|
安全 Java API
深入了解java.util.Date类:历史、功能和使用注意事项
本文详细介绍了Java中的`java.util.Date`类,包括其历史、基本功能和使用时的注意事项。`Date`类最初用于简单表示日期和时间,但随着发展暴露出了不可变性、线程安全性和时区处理等问题。文章展示了如何创建和操作日期,以及如何使用`SimpleDateFormat`进行日期格式化和解析。虽然Java 8引入了更好的`java.time`包,但理解`Date`类仍然很重要,特别是处理旧代码或兼容性问题时。注意`Date`类的废弃方法、非线程安全性质以及月份从0开始等细节。
21 1