运行环境

凭啥Java的运行环境称虚拟机,Python的只能称解释器

不问归期 提交于 2019-12-06 17:59:33
看到Stackoverflow上有个问题在讨论Java和Python的对比,其中就有人问答为啥Java的运行环境被称之为JVM,而Python的只能叫做Interpreter。 这个问题估计想过的人不多,先找维基百科看一下虚拟机的定义。 虚拟机的定义有2个,一种是类似Vmware的系统虚拟机,另一种是虚拟机称之为程序虚拟机,诸如JVM,CLR就是最常见到的虚拟机。 程序虚拟机也称作托管运行时环境,运行这个虚拟机时,就好比普通的OS中的一个进程。当这个进程启动时,虚拟机启动,当进程销毁时,虚拟机销毁。使用虚拟机的目的就是提供一个和平台无关的编程环境。 JVM中的执行引擎只能处理编译后的Java字节码,字节码处理引擎其实包含一个字节码解释器和一个JIT编译器(和.net的CLR中JIT差别很大),解释器逐条的执行字节码指令,速度稍慢。JIT编译器则会将热点代码编译缓存起来,因此执行速度加快。 解释器的概念比较简单,它可以将代码翻译,并运行,不需要经过编译,JVM中的解释器正式这样的,JVM中解释的就是字节码。解释器运行程序的方法有3种: 直接运行高级编程语言(如Shell内置的解释器) 转换高级编程语言码到一些有效率的字节码(Bytecode),并运行这些字节码 以解释器包含的编译器对高级语言编译,并指示处理器运行编译后的程序(例如:JIT) 其中Python的解释器就是属于第二种

安全防护:你是否正在追逐一个不可能实现的目标?

不羁的心 提交于 2019-12-03 08:45:55
100% 安全的运行环境是你的奋斗目标吗?呃...那么你有可能正在追逐一个不可能实现的目标! 在如今的数字化商业世界,每一次技术的革新,都将带来安全状态的不断变化,也就是说,你的运行环境安全指数是在不断变化的。所以,在无法确保系统绝对安全的状况下,你还可以做些什么呢? 聪明的做法不应把全部的精力集中放在反击入侵者和安全事故中,而是思考使用高效的工具来处理、评估和减少风险。 正如 Gartner 在 2014 年发布的报告中预测 ,「安全意识应用设计、动态及静态应用安全测试和运行时应用自我保护等」,在当今充满安全威胁的数字化世界里都是不可或缺的。 这些工具会带来应用内置安全程序的新模式。安全防护边界和防火墙已经无法满足需求,每一个应用程序都需要自我意识和自我保护功能。让我们逐一进行分析一下! 安全意识应用程序 我们生活在一个令人兴奋、充满创新的时代。 X Applications 的崛起意味着全世界的天才可以在家试验应用程序,进行程序开发,这为创造与发展的史册增添了一个不断发展的活跃实例。 可问题在于,这些应用程序不一定总是尽可能安全的。这就需要,使用一些简单的修改和插件的帮助。 例如, 美国国家安全局 在提及群众外包的 Linux 创新应用时说道,「绝大多数」X Applications 往往是「未经修改、传统和不在意安全的」,即便是具备安全意识的 X Servers 都有其局限性