[發明專利]在Linux內核中實現仿Windows系統調用機制的方法無效
| 申請號: | 201010622299.6 | 申請日: | 2010-12-29 |
| 公開(公告)號: | CN102073532A | 公開(公告)日: | 2011-05-25 |
| 發明(設計)人: | 周立煒;費海林;毛德操 | 申請(專利權)人: | 浙大網新科技股份有限公司 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45 |
| 代理公司: | 杭州九洲專利事務所有限公司 33101 | 代理人: | 陳繼亮 |
| 地址: | 310007 浙江*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | linux 內核 實現 windows 系統 調用 機制 方法 | ||
技術領域
本發明涉及計算機操作系統領域,尤其是一種在Linux內核中實現仿Windows系統調用機制的方法。
背景技術
操作系統相當于計算機的靈魂,任何計算機都離不開操作系統,同時也都受操作系統的限制,所有的應用軟件都是基于某種特定操作系統的,都只能在這種特定的操作系統上運行,搬到別的操作系統上就不能運行。操作系統的核心稱為“內核”,內核為應用軟件提供特定的運行環境、并提供基本的操作能力,應用軟件對這些基本操作能力的調用稱為“系統調用”。盡管不同操作系統所提供的基本操作能力在總體上頗為相似,但每個操作系統內核所提供的系統調用及其集合卻又都是獨特的,不能混用。所以,凡是應用軟件都是基于特定操作系統內核的,或者說都是與特定操作系統內核綁定的,Windows應用只能在Windows內核上運行,而Linux應用也只能在Linux內核上運行。
如果能讓Windows應用軟件直接在Linux操作系統即Linux內核上運行,那么用戶就有可能擺脫對Windows操作系統的依賴、而改用Linux操作系統,這顯然是很有意義的。然而要實現這個目標就必須解決讓Linux內核支持Windows系統調用的問題。
解決這個問題的總的思路是:首先在Linux內核中實現Windows系統調用的機制;然后逐個將Windows的系統調用嫁接到與之對應的Linux系統調用上,再加以必要的修改,如果沒有對應的Linux系統調用就在Linux內核中加以實現。所謂“系統調用的機制”,是指:
●應用軟件在用戶態怎樣發起系統調用;
●程序流程怎樣進入內核、即進入系統態;
●內核中與具體系統調用無關、為所有系統調用所共有的操作和活動;
●程序流程怎樣進入具體的系統調用、即內核中用來實現具體系統調用的功能的函數;
●怎樣返回到用戶態。
可見,在Linux內核中實現Windows系統調用的機制,是要實現上述目標的第一個必要條件。而本發明所述的方法,其目的就在于解決系統調用機制的問題。
而本發明的內容和特點就是:提供一種在Linux內核中實現Windows系統調用機制的方法,使得讓Linux內核支持Windows系統調用成為可能。
發明內容
在Linux中,系統調用是通過一條int指令啟動的,這是一條“軟件中斷”指令,這是對中斷機制的一種模擬,CPU執行這條指令時就好像發生了一次中斷一樣。為此,在int指令中必須帶上一個“中斷向量”、或者說“中斷號”,在Linux中這個中斷向量是0x80。在Windows中也是一樣,但中斷向量是0x2e。每當CPU執行int指令時,其運行狀態就從“用戶態”跳轉到“系統態”,這就是所謂進入了內核。進入內核之后,CPU從用戶態堆棧中讀取“系統調用號”及有關參數,系統調用號用來表明具體的系統調用。但是,同樣的系統調用號在不同操作系統中的意義是不同的,不能混淆。
要在Linux內核中增加一種系統調用機制,方法是很多的。例如,可以在Linux的中斷機制中增添一種系統調用,比方說“windows_call”,再在那里展開成系統調用機制。又例如,在/proc下面可以增添一個特殊的文件系統節點“windows_call”,再在其驅動程序中展開成系統調用機制機制。當然,這樣一來啟動系統調用的方式就與Windows中不同了,但是按理說這樣問題也不大,只是效率略為降低了一點,因為應用程序按理說都不會直接啟動系統調用,而是按Windows?API的規定轉輾調用動態連接庫Ntdll.dll,在這個DLL內部才發起系統調用。但是,有可能違反這個規定的恰恰是微軟自己。據網上的討論,微軟有可能隱藏著幾個系統調用不向第三方開放,而自己的某些應用軟件卻可以不經過Ntdll.dll,在應用軟件的代碼中直接通過“int?0x2e”指令加以調用。由于微軟的軟件都是不開源的“黑盒子”,此說既無法證實也無法否定。所以,為最大程度地維持兼容性,最好還是像Windows一樣,實現基于“int?0x2e”指令的Windows系統調用機制。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浙大網新科技股份有限公司,未經浙大網新科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010622299.6/2.html,轉載請聲明來源鉆瓜專利網。





