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是和系统紧密结合的。


推荐阅读:
相关文章