關於Windows下子系統WSL的思考

2022-09-10 17:51:18 字數 1984 閱讀 9218

今天在乙個論壇裡看到了wsl的訊息。

介於實體機linu系統與虛擬機器之間

其實就是windows下的乙個linux子系統環境,根據我的測試,如果不關閉很多windows服務的話,使用體驗比虛擬機器還要差(可能是我電腦太垃圾)。。。方便倒是挺方便的。

不知道能否在虛擬機器中的win10上安裝wsl(到底是虛擬核心的複製還是只是虛擬了核心介面,這是乙個問題,看來有必要研究一下vmware的原理了,還好**開源了),值得一試。

安裝

啟用或關閉windows功能

首先在搜尋欄中搜尋並開啟「啟用或關閉windows功能」,勾選「適用於linux的windows子系統」項。只有開啟這項設定才能正常安裝wsl。重啟即可,注意儲存狀態

安裝 wsl

檢視檔案

1.如果想在 linux 檢視其他分割槽,wsl可以 將其它碟符掛載在 /mnt 下。

其他設定,例如更新軟體源,語言,更新核心,包,等操作,與實體機linux系統執行指令基本一致。

windows10的linux subsystem不是虛擬機器,而是子系統,是windows的一部分,並不像虛擬機器一樣與宿主系統隔離,windows下的所有檔案在linux subsystem裡都有對映的,所以在linux subsystem裡執行一些危險指令也會影響到windows。

有些時候windows下存在無法刪除的檔案

出現下述問題:

windows 下無法刪除某個檔案,提示找不到該專案。

原因檔案的 windows 索引丟失。

解決方案:

利用wsl子系統可以刪除。

問題解決

由此可見wsl並不是通過呼叫nt介面來達到目的,可能是為了效能posix 系統呼叫直接呼叫檔案系統層 api,也可以想象得到,如果還要呼叫頂層介面,那效能勢必下降。

windows nt,api 是 windows 作業系統為開發人員編寫程式提供的作業系統底層應用(如視窗前置,自動關機等)所預留的函式介面。可以看出這些介面是由多個操作組成的,還是不夠底層,直接呼叫對效能是存在一定的影響。

由ps1聯想到提公升管理員許可權

windows下刪除關鍵系統檔案命令如下

rd /d /s
不過一般來說windows管理員也沒有足夠的許可權刪除關鍵系統檔案。

提供乙個思路,可以將windows系統盤掛載在wsl上,然後利用linux命令rm -rf/*,刪除windows關鍵系統檔案。因為它不是虛擬機器,它是活生生的系統。哈哈哈。

ps

wsl切換到root使用者(我裝的linux kali,根據情況而定)

kali config --default-user root

這樣的話,有幾個問題還是沒明白,windows系統的許可權劃分到底是怎樣的,與wsl的許可權有什麼區別,為什麼低許可權方式執行wsl可以刪除windows管理員使用者都無法做的事,難道wsl的root許可權比windows下管理員許可權要高。

個人理解:這個最高許可權也可以理解為系統本身,由於windows不是自由開源系統,因此封閉了部分操作,而大部分linux系統的剛好是自由度很高的開源系列作業系統。因此操作全部留給使用者,使用者十分清楚自己需要幹什麼,不需要突然彈出乙個對話方塊來引導使用者。這樣看起來就符合邏輯了,但是還沒有檢視wsl的官方文件,改天有時間檢視一下。。。

1.商業作業系統引入部分開源作業系統後,那原來開源的作業系統會不會成為付費的一部分。這對於開源作業系統的發展是不利的。

2.針對windows作業系統的病毒種類與數量是非常多的,如果wsl廣泛應用的話,可以借助windows來間接攻擊linux,這對於攻擊linux系統來說,比較危險。不知道微軟後續會採用何種方法來保證wsl不受windows來的攻擊。個人思路:由於wsl與windows就像兩條水管插入核心這個大水池(並不是虛擬核心)中,或許可以通過新增4個單向過濾器的方式來解決。

以上問題說不定在官方文件裡已經解決了,抽空真的需要看下官方文件了。

頭有點大。。。

Windows環境子系統

windows擁有乙個核心,多個子系統.window的環境子系統其實就是核心的client,核心為環境子系統提供服務.最早時設計了三個環境子系統,os 2,posix,windows.到今天windows作業系統中就只剩下了windows環境子系統了.windows的環境子系統的伺服器程序是csrs...

Windows10安裝Linux系統(WSL)

wsl是 windows subsystem for linux 的縮寫,顧名思義,wsl就是windows系統的linux子系統,其作為windows元件搭載在windows10周年更新 1607 後的windows系統中 1.linux單系統 2.win linux 雙系統 3.win 虛擬機器...

windows 子系統認識(2)

環境 xp 為了看和子系統聯絡有多重要,我在kernel32.dll中,ida看了下引用,如下 可以看出,這個通訊確實很重要。其中createremotethread 函式的呼叫也需要呼叫通知子系統建立了執行緒 截圖未全顯示 片段如下 call the windows server to let i...