[發明專利]用于到本原客戶端的二進制翻譯的方法、系統和介質有效
| 申請號: | 201580078466.6 | 申請日: | 2015-04-10 |
| 公開(公告)號: | CN107408053B | 公開(公告)日: | 2021-04-16 |
| 發明(設計)人: | 葉夫根尼·艾爾欽;尼古拉·伊戈蒂;安德烈·哈爾佳溫;德米特里·波盧欣 | 申請(專利權)人: | 谷歌有限責任公司 |
| 主分類號: | G06F8/52 | 分類號: | G06F8/52;G06F9/455 |
| 代理公司: | 中原信達知識產權代理有限責任公司 11219 | 代理人: | 李寶泉;周亞榮 |
| 地址: | 美國加利*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 本原 客戶端 二進制 翻譯 方法 系統 介質 | ||
1.一種用于二進制翻譯的方法,包括:
提供用于在主機硬件架構中運行本原客戶端軟件的本原客戶端環境,其中在所述主機硬件架構上運行的主機軟件對所述本原客戶端軟件不可訪問;
接收要在本原客戶端環境中運行的客戶機軟件,其中所述客戶機軟件被配置為執行在指定客戶機硬件架構處而不是執行在所述主機硬件架構處或所述本原客戶端環境內,以及其中所述指定客戶機硬件架構不同于所述主機硬件架構和所述本原客戶端環境;
在所述本原客戶端環境內與所述本原客戶端環境被配置為在其上運行的所述主機硬件架構隔離地生成在所述主機硬件架構中使用的硬件的第一組軟件表示和在所述客戶機硬件架構中使用的硬件的第二組軟件表示;以及
使用模擬軟件提供所述客戶機軟件到用于與所述本原客戶端軟件一起在所述本原客戶端環境內執行并且不能訪問在所述主機硬件架構上運行的所述主機軟件的本原客戶端兼容機器代碼的二進制翻譯,包括在所述本原客戶端環境內與所述本原客戶端環境被配置為在其上運行的所述主機硬件架構隔離地創建一組虛擬寄存器,所述一組虛擬寄存器表示由所述客戶機軟件在所述指定客戶機硬件架構處執行時使用的寄存器,每個虛擬寄存器對于所述客戶機軟件的二進制翻譯能夠經由單個指令從所述本原客戶端環境內訪問,其中所述本原客戶端環境被配置為在提供所述客戶機軟件到本原客戶端機器代碼的二進制翻譯時執行所述本原客戶端兼容機器代碼,并且其中在不需要移植或者重新編譯所述本原客戶端兼容機器代碼的情況下提供所述客戶機軟件到本原客戶端機器代碼的二進制翻譯。
2.根據權利要求1所述的方法,其中所述本原客戶端環境訪問在存儲器中存儲或者在主機處可用的寄存器中存儲的一組模擬的客戶機寄存器,其中與所述本原客戶端兼容機器代碼相關聯的數據被存儲在所述本原客戶端環境內,以及其中所述模擬的客戶機寄存器與所述指定客戶機硬件架構的寄存器相對應。
3.根據權利要求1所述的方法,其中所述虛擬寄存器的相應地址通過基址指針(RBP)加上預定偏移來引用。
4.根據權利要求1所述的方法,其中,提供所述客戶機軟件到所述本原客戶端兼容機器代碼的二進制翻譯包括:
在所述本原客戶端環境內與所述本原客戶端環境被配置為在其上運行的所述主機硬件架構隔離地模擬所述指定客戶機硬件架構的特征和所述本原客戶端環境內的所述客戶機軟件的應用編程接口(API)調用。
5.根據權利要求1所述的方法,其中,提供所述客戶機軟件到所述本原客戶端兼容機器代碼的二進制翻譯包括:
利用與所述本原客戶端環境兼容的代碼來替代所述客戶機軟件中的代碼。
6.根據權利要求1所述的方法,其中,所述客戶機軟件包括ARM軟件或者x86軟件。
7.根據權利要求1所述的方法,其中,所述本原客戶端兼容機器代碼是安全的并且是可移植的,以及其中,所述客戶機軟件是不安全的或者不可移植的。
8.根據權利要求1所述的方法,其中,所述客戶機軟件被配置為僅在特定客戶機操作系統內執行,以及其中,所述本原客戶端環境被配置為執行在多個不同操作系統中的任何一個操作系統內。
9.根據權利要求1所述的方法,其中,所述本原客戶端兼容機器代碼能夠在應用內執行,并且其中所述應用是瀏覽器。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于谷歌有限責任公司,未經谷歌有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201580078466.6/1.html,轉載請聲明來源鉆瓜專利網。





