微软的问题不在于不让你换Shell,很显然有些同学完全搞错了。
换个Shell这种操作,Windows一直以来都是支持的。稍微有点儿安全模式经验的都知道,有种只有命令行的安全模式,explorer进程都没有,这个时候Shell就是那个命令行窗口了。
更别说大量安装在各种嵌入式设备和工控设备中的Windows哪来的Shell(例如麦当劳的菜单和点餐系统,ATM机的操作系统)。
就算这些你都没见过或者不知道,你至少也应该去过网吧吧,网吧的魔改系统不就是把Shell给覆盖了?
微软的问题在于,它什么都不做,但可以让你的Shell在Windows上毫无市场。
这才是根本问题,但是这个问题是无解的。
你当然可以把Windows更换成你自己的Shell,这很容易,但问题是,你压根儿没有办法去推广你的Shell。而制作一个Shell需要花费海量的精力和时间,当你做完了这一切结果会发现事实上你的Shell别说给你带来收入了,就连推广出去都几乎没有任何办法。
更何况,如果你的Shell吊打Windows本身的Shell,在兼容性上,你还必须时刻紧跟着Windows升级的步伐,Windows会不定期的给任务栏增加一些新的功能。如果你不跟进,你的Shell就会失去竞争力,而如果你选择跟进,则微软随时可以让你跟进不了,例如不给你实现细节,或者其他什么手段,这会让你陷入绝望。事实上微软压根儿不需要这么做,它只需要保留这么做的能力就足以吓阻大部分打算给Windows重新写一个Shell的人和组织……
所以Windows的原罪不在于他不让你改Shell,而是在于它打包了整个用户体验,这个体验虽然你可能觉得很垃圾,但是如果你想要创造一个在各方面都超越这个体验的增强包,你需要付出很多,且很可能没什么回报……
微软捆绑浏览器弄死网景为什么会引起业界震动的原因也在于此,浏览器的本质就是构建在操作系统上的另一个用户体验。当你做得比微软好的时候,微软可以通过抄袭和免费轻松的弄死你……
只要存在这个可能性,那么就会吓阻大部分打算做这件事情的人……
当年对微软的反垄断方案也是要求拆分成一个做操作系统和一个做应用软件的公司,也是基于这一考虑,限定软件公司的边界才能促进软件行业的繁荣发展。虽然最后不了了之了,但是微软的问题一直没有解决,它插手的边界到底在哪里?如果你打算做一个Shell,他和你竞争的话,你有胜算吗?
而事实上我悲观地认为,这其实是一个无解的问题。即便是开源社区或者开源文化也无法阻止,世界总归是属于资本的。不信你自己去鼓捣个浏览器内核来玩玩,看看能不能取代Chromium?看看你怎么说服别人用你的玩具而不是Chromium?
这次事件,让我重新看到了GNU/Linux这种类UNIX系统的价值。
我实在想不明白,究竟是什么样的设计,会使得授时服务能影响任务栏和文件管理器。Windows惯于把各种软件搞得足够复杂而庞大,使其仿佛一个无从窥探的黑箱,这就是代价。
同时,由于只存在一种选择。文件管理器坏了,任务栏坏了,换个软件顶上的可能性为零 如果是Linux,文件管理器thunar坏了我可以换pcmanfm,任务栏xfce4-panel坏了我可以换i3panel,甚至窗口管理器xfwm4坏了可以换i3wm,显示管理器lightdm坏了我可以命令行直接启动wm。GNU/Linux等类UNIX系统,有一种Windows不具备的灵活性,它的各个组件都足够简单并尽力做到职责单一,使其除非与硬件交互的驱动和掌管数据的文件系统出现问题,其他都有办法找到一个不那么满意的替代方案(内核甚至都可以各版本共存,x)。
综上,Windows组件自成一体还功能强大,但牵一发而动全身;类UNIX组件功能简陋且互有摩擦,但高度模块化灵活可变。根据应用场景和个人习惯,选择适合的系统,才是真正的好方案啊。
看来我还是孤陋寡闻了。
评论区留言有不少实用的方案和有趣的技巧,我都给置顶了,需要的朋友可以看看。