Explorer. exe 是什麼?為什麼從 Windows 95 開始到現在的 Windows 10,「文件資源管理器」窗口開啟過多就會崩潰並重啟桌面?它與開始菜單、任務欄、桌面等有什麼關聯?


explorer.exe是Windows95到Windows Me,Windows NT4到Windows10的默認shell(代替了Windows3.2的程序管理器),同時也是默認的文件管理器(代替了https://github.com/Microsoft/winfile)。

explorer負責了任務欄,開始菜單,桌面的顯示,同時也是文件管理器,功能複雜,實現起來更加複雜(尤其是Windows10,包含了很多UWP組件,穩定性差)。explorer提供了介面可以被第三方DLL注入,因此更會降低穩定性,一旦explorer主進程崩潰,桌面和任務欄就會消失(一般會自動重啟)也因為explorer提供了用戶打開其他程序的主要方式(開始菜單/固定到任務欄/桌面),Windows10的任務管理器定位到explorer.exe時結束進程會變成重啟進程。

shell是操作系統提供給用戶的交互程序,分為圖形shell和命令行shell兩種。shell直譯就是殼,即內核外層的東西。

https://zh.wikipedia.org/wiki/Shell

常見的命令行shell有 Windows的cmd.exe,powershell,Unix下的Bash,Zsh,Fish。Windows Server,Windows PE默認使用cmd作為shell,開機後只有一個命令行的窗口。命令行shell沒有多任務能力,一次只能顯示一個文本程序,現在很少有人只使用命令行操作計算機。

桌面系統的圖形shell則比較複雜,可以分為多個組件:桌面,任務欄/dock,開始菜單/Launcher,通知區域等

桌面經常由文件管理器負責,例如Windows的explorer,macOS的finder,通常顯示/Users/&/Desktop下的文件,這些圖標的操作方式一般和文件管理器內部沒有差別。

Windows的任務欄由explorer負責,而macOS的dock程序塢是獨立的程序/System/Library/CoreServices/Dock.app

Windows的開始菜單在Windows7及之前是explorer的一部分。Windows8中「開始」改成了類似移動端的開始屏幕,Windows10改成了獨立的UWP,但是和explorer仍有密切的關係,比如開始菜單卡死了可以重啟explorer解決。macOS的Luncher啟動臺是獨立的程序/Applications/Launchpad.app

Windows的通知區域是任務欄的一部分,而macOS則是獨立在頂欄的右半部分。

Explorer包含了很多的功能,而且可以通過各種手段插入插件,因此穩定性不如macOS這種分離式設計。當然,我仍然覺得Windows的多任務管理比macOS直觀。

移動操作系統的用戶界面相比更加簡化,只有啟動器/主屏幕/開始屏幕(上香)和多任務界面。

下面是歷史內容

觀察早期的Windows可以看到explorer是怎麼成為shell的

Windows 2的畫圖,後面的窗口是shell「MS-DOS可執行程序」,具有文件管理功能,啟動程序需要雙擊exe,左下角的是最小化的「寫字板」

「程序管理器」是Windows3.x,WindowsNT3.x的shell,左下方的圖標是最小化的文件管理器,相比於Windows2,程序管理器具有快捷方式的功能,把安裝好的程序放到了程序組中,而不必找到exe文件雙擊執行

Windows3的「文件管理器」,和「程序管理器」不是一個程序

Windows95,左上角是點擊「我的電腦」打開的資源管理器,右面的是開始菜單裏的Windows exploring,下面的是Windows3時代的文件管理器(winfile,現已開源)

Windows95雖然是16/32位混合系統,但是開始菜單/任務欄/桌面/資源管理器4功能於一體的explorer一直延續到Windows10.

Explorer.exe早在Windows 95(Chicago)開發早期就引入了

Windows Chicago 4.0.58s,此時explorer叫cabinet,開始按鈕有3個,任務欄沒有完工,時間1993-08-09

右上角的關閉按鈕是後來加入的,早期Windows程序使用雙擊左上角的-退出

關於

Windows Chicago 4.00.81基本完工,時間1994-01-19

這是ReactOS的explorer的源代碼,和Windows Server2003很接近

reactos/reactos?

github.com

在桌面上,macOS的菜單欄顯示finder的菜單

3個app

使用的模擬器:windows2/3 The Original IBM PC in a Web Browser

Windows95 win95

Windows Chicago的更多信息

The Collection Book?

www.thecollectionbook.info

Windows 95 - BetaWiki?

betawiki.net圖標

說出來你可能不信,其實windows根本沒有桌面。桌面其實是資源管理器的一部分,任務欄開始菜單也是資源管理器的一部分。 所以資源管理器出BUG崩了,桌面任務欄一起崩,就是這樣。


explorer管理了 Windows的任務欄,資源管理器,文件窗口,並且大部分桌面程序都是explorer的子進程

所以在發生文件窗口『卡死』時強行結束該窗口,會導致任務欄和所有窗口界面消失,桌面只剩壁紙。

一般情況下explorer會自動重啟,如果沒有,可以考慮crtl+alt+del喚出運行任務管理器,運行cmd,再輸入explorer.exe手動啟動。

順便提一下,在做dll注入或者hook時,為了保證重啟目標程序也能保持hook,直接注入hook explorer的CreateProcess,可以保證每一個新起的進程馬上被hook,因為explorer是一切gui的父進程。


你手動打開的應用以外,直接能看見的東西大部分都是它負責

包括但不限於

登錄界面,桌面,任務欄,控制面板,回收站,開始菜單,win+R的運行,安全選項界面,右下角的網路面板,操作中心和日期,並且它還佔據了許多重要快捷鍵。

explorer其實就是系統自帶的圖形界面版內核與用戶交互軟體,正常Windows上一切的應用都需要通過explorer直接或者間接打開,比如桌面上點擊打開應用(exe),文件資源管理器打開應用,ctrl+alt+del運行任務管理器,任務管理器打開應用,win+r打開應用,開始菜單打開應用,Windows徽標右鍵powershell打開應用。

Windows RE裏explorer被替換成了cmd.exe,cmd.exe也可以打開應用,這2個組件其實功能都是一樣的「人機交互」。

2月12日修正:登錄界面和安全選項界面是winlogin.exe


Explorer.exe最早在Windows 95就出現了。

Windows Explorer,資源管理器。


explorer的前身是program manager,所以首要任務是為系統提供一個圖形化訪問界面。從95開始,這個界面包含了桌面,開始菜單,任務欄這些是很好理解的。但由於桌面被設計成文件夾綁定的形式,所以微軟等於實現了整個文件管理器組件。現在最新的win10好像據說桌面已經和資源管理器分離了


以前電腦內存不夠 想玩遊戲就進入任務管理器關掉explorer進程


看了幾個回答,其實真沒那麼複雜,很好解釋:

Explorer.exe 是用戶與電腦裏文件系統、文件互動的軟體,類似 Mac OS 裏的 Finder,DOS 時代的 http://command.com,各種UNIX liker 下的各種 Shell。


所見即所得的用戶人機交互應用程序基礎建立在shell32之上又緊密相連____________________________多說一句

9102年了,竟然還有人在用老掉牙的explore這種落後的低效率不穩定的純gui界面

powershell不好用嗎?又不是不能看網頁上IM聽音樂看新聞。。。。

為啥要叫explorer呢?我猜估計是為了證明ie是和系統緊密結合的。


推薦閱讀:
相關文章