转自知乎:韩朴宇

explorer.exe

是Windows95到Windows Me,Windows NT4到Windows10的默认shell(代替了Windows3.2的程序管理器),同时也是默认的文件管理器(代替了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/<User>/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

在桌面上,macOS的菜单栏显示finder的菜单

3个app

使用的模拟器:
windows2/3 The Original IBM PC in a Web Browser
Windows95 win95
Windows Chicago的更多信息
The Collection Book
Windows 95 - BetaWiki