写点什么

微软前员工透露细节:我写了任务管理器

2020 年 6 月 02 日

微软前员工透露细节:我写了任务管理器

导读:5 月 26 日,有一位微软前员工突然在 Reddit 发帖,声称他“要在忘记之前把这一切都写下来。”他曾编写过 Windows 任务管理器(Task Manager)以及其他使用程序和游戏。Windows 任务管理器提供了有关计算机性能的信息,并显示了计算机上所运行的程序和进程的详细信息;在不能使用鼠标的情况下,可以在选中具体的应用,按下 delete 按钮,即可强制关闭指定应用。总之,这个工具是 Windows 非常有用也非常强大的工具。它最初出现在 1996 年发布的 Windows NT 4.0,至今 24 年过去了,在最新版的 Windows 10 中仍然有它的身影。


Reddit 论坛上有一篇帖子《我写了任务管理器,然后就想起了……》(I wrote Task Manager and I just remembered something…),详细介绍了每个 Windows 专家都很熟悉的工具,如果幸运的话,你可以用它来终止出错的应用程序或进程,并提供一些关于你电脑运行情况的简便统计信息。


Dave Plummer 告诉里贾纳大学(University of Regina):“我在 1993 年从 MS-DOS 开始,在微软工作了十几年,在 Windows Server 2003 之后离开微软的。”在谈及“为十亿台机器编程”的挑战,他称:“这感觉就像你在建造一头牛,然后把它放到无数的瓷器店里。”


Plummer 曾开发过 DoubleSpace(译注:后更名为 DriveSpace,是从 MS-DOS 6.0 开始提供的磁盘压缩实用工具),这款工具可以增加 MS-DOS 的可用磁盘空间。在业余时间还开发了一款名为 VisualZIP 的工具,它可以让你像查看文件夹一样来查看压缩的 ZIP 文件。VisualZIP 曾作为共享软件出售,之后被微软收购并整合到 Windows 中。


这听起来像是一种轻松的安排,而 Windows 任务管理器也有类似的起源故事。


Plummer 说:“Windows 任务管理器这款应用程序是我在书房里编写的共享软件,我本打算将其出售作为兼职收入,但当 Dave Cutler(时任 Windows NT 架构师)看到这款软件时,他同意让我把它整合到产品中去,所以我就把这款软件捐给微软了。”


这款实用工具首次出现在 1996 年发布的 Windows NT 4.0 中。


Plummer 回忆道:“任务管理器是我最引以为豪的应用程序之一,因为它可能是第一个,或至少在视觉上最复杂的应用,在所有方向上都可以完全调整大小而不会出现任何闪烁……它的可执行文件大小还不到 100K,而且从来没有出现过闪退或崩溃的现象,这可是我开发的哦!有懂 GDI32 和 User32 的人肯定有帮助。”


他还提供了一些小窍门。“如果任务管理器已经挂起或崩溃,你可以同时按下 Ctrl+Shift+Esc 来启动另一个任务管理器,”他称,“这就要求从现有实例中请求一个‘秘密代码’,如果没有收到的话,就启动另一个实例;即使 Shell/Explorer 已经死掉,也可以这样启动任务管理器。”


根据 Plummer 的说法,许多用户并不是很欣赏他这个实用程序的全部功能,该实用程序可以在不使用 Shell(在某些情况下是“救命稻草”)。从文件(File)→ 运行(Run)来运行新任务就是其中的一个选项。另一个鲜为人知的特性是显示附加列的能力,让你能够深入研究不同类型的工作集来了解内存使用情况,并查看 I/O 读写等详细信息。


Plummer 说,“任务管理器应该没有什么进程不能杀死的;它甚至还会升级权限,并且(如果你有权限的话)启用调试权限,以便在需要时以这种方式附加并杀死应用程序。如果任务管理器不能杀死它,那你这个 Windows 的内核应该有问题了。”不过这一说法很快就遭到了 Reddit 用户的质疑。


在 2003 年 Windows Vista 发布之前,Plummer 就离开了微软,虽然任务管理在 Windows 10 中依然存在,但它已经发生了巨大的变化,也得到了极大的扩展。他说:“我记得记者们为了炮制新闻,比如说,用任务管理器杀死 root winlogon 会画进程,故意让机器出现蓝屏错误。”他们可能开始通过不允许杀死 win32k.sys 和其他必要组件,以保护 Windows 系统不受到破坏。


现在的任务管理器是以近乎无用的极简模式打开的,但这并不是 Plummer 的错,直到你点击左下角的“详细信息”(More details)就会明白我所言非虚。



Windows 10 中的任务管理器看起来有些许不同,但具有许多相同的核心功能。


Plummer 还编写了其他重要的实用程序,包括 Windows XP 的一项功能:Space Cadet Pinball(《三维弹球:太空军校生》),不过他说:“Maxis 做的是非常原始的东西(M.Ridgeway),而我只不过是用了他们的技术在 32 位可移植的 C 语言重写了版本。这样,它就可以在 PowerPC、Alpha 和 MIPS 上运行了。”


一位怀旧的评论者写道:“直到现在,每当我重新安装 Windows 10 时,我仍然会把 Space Cadet Pinball 安装到我的系统上。”



Windows XP 中的三维弹球


今天,虽然 Windows 任务管理器有所阉割,但它仍然很有用。它甚至可以运行在几乎没有图形用户界面的 Windows 版本上,比如 Server Core,尽管它可能与更强大的命令行工具的趋势格格不入。Tasklist 和 Taskkill 也很好用,当然,前提是你可以进入命令(或终端)提示符。


作者介绍:


Tim Anderson,现居英国,负责 The Register 网站的软件开发、开源软件、云平台等领域。


原文链接:


https://www.theregister.co.uk/2020/05/26/task_manager_confession


2020 年 6 月 02 日 17:001464

评论

发布
暂无评论
发现更多内容

别困惑,不是你的错!90%的开发者把Clubhouse看成了Clickhouse

京东科技开发者

Clickhouse 社交 clubhouse

2021年人工智能数据采集标注行业四大趋势预测;清华提出深度对齐聚类用于新意图发现

京东科技开发者

人工智能 数字货币

话题讨论 | 你选择去一线城市还是老家的省会城市?

石云升

话题讨论 职业发展 2月春节不断更

京东科技集团21篇论文高票入选国际顶会AAAI 2021

京东科技开发者

机器学习 AI

我的2020年学习总结

兆熊

学习 总结

WEEK4作业

Geek_6a8931

一个只会写Bug的Coder年终总结

z小赵

程序员 互联网 职场成长

Vue开发中可以使用的ES6新特征

devpoint

Vue ES6

LeetCode题解:153. 寻找旋转排序数组中的最小值,二分查找,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

惊呆,一条sql竟然让oracle奔溃了

程序员jinjunzhu

oracle mybatis 批量操作

第四次作业

Geek_79e938

《零基础看得懂的Python入门教程 》——(四)了解魔法百宝箱列表、字典及基本数据类型

1_bit

Python

4. 列表一学完,Python 会一半,滚雪球学 Python

橡皮擦

python 爬虫 Python Monad 2月春节不断更

说说Golang goroutine并发那些事儿

华为云开发者社区

golang 线程 进程 并发 goroutines

互联网医疗场景用户及场景(一)

卢嘉敏

需求 医疗 用户

2021金三银四必问储备知识:Java线程池详解

Java王路飞

Java 程序员 面试 多线程 线程池

Elasticsearch Mapping

escray

elastic 日更挑战 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

【新春特辑】发压岁钱、看贺岁片、AI写春联……华为云社区给大家拜年了

华为云开发者社区

华为云

极客时间APP购买课程模块用例文档

夏天的风

用例图

产品0期 - 第四周作业 - 附件1

曾烧麦

产品训练营

Web页面制作基础

魔王哪吒

学习 程序员 面试 前端 二月春节不断更

自动驾驶“绝地求生”结束了,但深兰的造车故事才刚刚开始

脑极体

医疗场景用户需要什么

卢嘉敏

需求 医疗 用户

架构的变迁,从分层架构先聊起

华为云开发者社区

架构 软件 分层架构 架构师 系统

JVM调优艺术:JVM内存管理机制深度剖析

程序员小毕

Java 程序员 面试 性能优化 JVM

【STM32】GPIO输入—按键检测

AXYZdong

硬件 stm32 2月春节不断更

每周总结(2月1日-2月7日)

Nydia

有了这个算法,图像上文字擦除再也用不上PS了

华为云开发者社区

深度学习 算法 GAN 文字擦除 图像

当自动驾驶遇到5G,会擦出怎样的火花?这篇文章说明白了

华为云开发者社区

人工智能 自动驾驶 5G 通用AI

红信圈系统开发,红信圈APP开发

luluhulian

交易所搭建

v16629866266

交易所开发

微服务架构下如何保证事务的一致性

微服务架构下如何保证事务的一致性

微软前员工透露细节:我写了任务管理器-InfoQ