在上一篇文章中,小编为您详细介绍了关于《vr培训哪家好vr培训学费多少?IdeapadY450 为什么样电池指示总是19%》相关知识。本篇中小编将再为您讲解标题一段程序如何判定自己是否在虚拟机中运行?为什么样Java有GC还需要自己来关闭某些资源。
我们无法知道宇宙是否是①段程序,那么①段程序能不能知道自己是否处于①个虚拟机里呢?
按现有的虚拟机(如VM),①段程序能否知道自己是否跑在VM上?如果可以,是不是说明VM的虚拟环境隔离得不够好?
----------------------------------------------
或者这么问吧:只要虚拟机想隔离,在里面跑的系统/程序永远无法知道是否身处其中?
檢測特定品牌或類型的虛擬機很容易。通常有特定的識別方式。比如VMware廠家虛擬機內的程序,可以通過讀取主板生產廠商屬性,從BIOS里讀取到VMware字樣的。
檢測到泛類型的虛擬機有①定難度,但是也有辦法,比如嘗試獲得CPU(由於虛擬機為了保持執行速度①般不會翻譯CPU指令──除了少量特殊應用情況),在比對CPU特徵庫,確認它支持虛擬化后,嘗試在上面執行虛擬化的指令。如果已在虛擬機內,則會無法完成(Nested VM問題)。
至於是否是環境隔離問題:虛擬機本來設計的目的就不是欺騙被虛擬的系統,而明確告訴系統被虛擬,對於其執行效率特異性優化以及授權相關問題都是有利的。所以目前主流虛擬機提供方案并不會刻意的隱藏虛擬化環境。
这里补充①个事情
java.io.FileInputStream#finalize()
/** * Ensures that the close method of this file input stream is * called when there are no more references to it. * * @exception IOException if an I/O error occurs. * @see java.io.FileInputStream#close() */ protected void finalize() throws IOException { if ((fd != null) } }
编后语:关于《一段程序如何判定自己是否在虚拟机中运行?为什么样Java有GC还需要自己来关闭某些资源》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《博瑞手机是杂牌么?高压电缆运行多少米相当于一台空载变压器》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器