商业 v. s. 自由 ——W*ndows v. s. 现代UNIX

OSDU(Open Subsurface Data Universe,开放地下数据空间 / 开源地下数据生态系统) OSDU是由油气行业与云厂商共建的开源、云原生数据平台规范,旨在解决勘探开发领域数据孤岛、格式不统一、应用绑定等问题。其核心是“数据与应用解耦”,通过统一元数据模型、API及权限体系,实现跨云、跨项目的数据互通。平台支持地震、井筒、储层等专业数据管理,配套OpenVDS、ETP等标准,适配PB级体数据,支撑AI训练与数字孪生。虽为参考实现,非即用系统,但已成国际油气数字化底座趋势,国内三桶油正推进试点与国产化适配。 阅读详情

导读

“天下没有免费的午餐。”

这句话只说对了一半。对于软件业,或者更准确一点,自由软件业,这并不一直是对的。

商业软件公司正在控制着我们——普通计算机用户甚至专业的程序员——的大脑,在我们的潜意识里面,似乎只有大公司的东西才质量好。下面是几个场景:

  • 我倾向通过收费的网课、系列视频或者文章来学习技术,而不是阅读软件自带的免费文档或者是免费外语甚至中文标准,因为前者更容易。
  • 免费的东西都是劣质的。只有收费的东西才可以保证质量高。
  • 不会有人将优质资源公开免费,除非他们有着特殊目的。
  • 大公司的软件比一群只因为兴趣爱好的人写的软件更稳定、更值得信赖。

绝大多数普通用户都会认为这几条全都是正确的,甚至一些有着几年经验的高级程序员也是。他们宁愿买JetB****家的IDE来开发,而不是使用轻量级的、免费的vim、nano。后者毫无疑问是大多数UNIX程序员的必备。

这一切的一切,都是因为某些公司……

一、邪教组织

百度百科这样定义邪教:

邪教大多是以传播宗教教义、拯救人类为幌子,散布谣言,且通常有一个自称开悟的具有超自然力量的教主,以秘密结社的组织形式控制群众,一般以不择手段地敛取钱财为主要目的.。

没问题,老比难道在大多数普通人的眼里就是“超自然”的吗?反正我印象中,媒体“少年黑客”基本上就是一个衣衫整齐、后面挂着老比美照的小孩,后面是中文或者英文版的scratch。

实际上,我就是个少年黑客,现在初一,但是当然我用UNIX 😃

再看最后一句,不择手段地索取钱财,真的像极了某些公司。想一下你在W*ndows上进行开发的历史,没人相信你一分钱也没有出。那个愚蠢的Vis*al St*dio不就是整天嚷嚷着要给你“更好的服务”吗?

然而对此,人们完全是心甘情愿,尽管我没见过被邪教洗脑的分子,但我想他们估计也差不多:花了一大堆钱,等头目被抓了之后,还是不相信这是邪教。

当然,软件是值得付钱的,连自由软件领袖理查德都没有否认这一点。但是,你真的确定那个糟糕的、动不动就“该应用程序无响应”的东西值得这么多钱吗?我反正觉得不是。

W*ndows还有一个十分神奇的地方。你肯定写过hello, world程序。这样看,它好像是支持POSIX的,毕竟设计NT系统的时候这不就是其中一个目标吗?(当然有的人会跟我说那应该是ISO C)

实际上呢,好像它只支持了占比很少的几个系统调用,剩下的几乎都是标准库函数(strlen那样的),就连基本的POSIX风格的open都没有……老比是怎么好意思把这样糟糕的系统卖到半万钱的,咱也不知道,毕竟他也不能算是个严谨程序员,而是个商人,写的第一个程序以来就开始想dollar的事了。

再看看自由软件世界怎么样?由于我没用过BSD,所以不好说传统UNIX是什么样子的。就拿现代的GNU/Linux,他支持全套的POSIX(streams除外),性能测试也不错(当然,裸机W*ndows也不错。注意裸机),更令人骄傲的是优秀的进程创建以及文件系统。写N*FS的那个程序员,大概是从*BM的数据库计划挖过来的,搞得倒是十分的“优雅”。

我知道有些人又要说啥了:W*ndows的安全认证等级(A1那样的玩意儿)比你们高!

这里安全认证单单是指对文件的访问权限的丰富,W*ndows能设置XXX没法访问之类的

这是无法避免的了,传统UNIX的设计就从来没想过这一点,用户被抽象成了同组、拥有者以及其他(当然,root总是有权限)。但就我个人的观点来说,这就足够了,毕竟我没见过有多少W*ndows用户会创建两个用户。

再来看看软件。

二、哲学 (当然不是

W*ndows家族的软件挺多,包括I*这样的令人头疼的浏览器、各种没人碰过的游戏以及一大堆更没人碰过的附件。这些是随着系统一块安装上去的,想卸载必须手动。还有类似P*wer P***t这样的有用的高级软件,单个软件就包含了数不尽的功能,并且十分的贵。

了解UNIX的同学大概已经知道我会说什么了。没错,我要说的就是不同系统下的设计哲学。

这更是一个差距,UNIX下面的每一个软件都平均不足10 MB,有着自己独特的分工。wc就是统计文本文件的、cat就是显示文件内容的(就是这么简单)、grep就是在文件里头查找的,类似这样的软件数不胜数。利用UNIX的设计哲学之一——管道就可以很方便的统计一个文件中含Linux这个词的行数(bash不算很精通,见谅)

$ grep "Linux" foo | wc -l 

而在那个操作系统呢?你应该需要用记事本先打开那个文件,复制到另一个.doc文档里头,然后再找一找’查找’键,然后按一下。或许你还需要划到最底下看一看有多少行……

那来个更难一点的呢,看一看当前目录下所有后缀名为.txt的文件里头有多少行包含Linux?

对UNIX来说小菜一碟(弱弱问一句,grep有查看统计行数的功能吗)

$ find ./ -name "*.txt" | xargs grep "Linux" | wc -l 

在另一个伟大的系统上呢?

我想不需要多举例,大家就能看出来这两个系统谁设计的更好了。

还是会有人说,那个系统本来就是给程序员用的,那个系统本来就是给普通用户用的。的确,那为什么你这个程序员还在用W*呢?

三、“真幼稚”

在一个复古的群聊中。有这样一个大佬。引用我对他的评价:

此人身长约七尺,自以为风度翩翩,以“京中美男子”自称。自以为其为尔等师,以“全栈大佬”自称,实则不知汇编、不知C为何物者也。
常曰:“仅学可令吾发家之事”,因不学C。遇人问事,常为省流量,仅回“…”二字,包含深意。
吾不与其为友,另有故:其人曰:“C为垃圾”,吾对曰:“尔乃垃圾中上等者也”,因把吾踢出群聊,回看,其信息早已撤回。

他还有一个口头禅,“真幼稚”。如同高雅的文言文里写的一样,他只是为了发家才学编程。所以对于开源、自由之类的……你可以想象到他的反应。

开源幼稚吗?

我想不是的。

理查德在演讲中说了的那样。

软件好像是菜谱。最开始,你从朋友家里拿到了一份,回到家你就开始琢磨了:是放点糖还是放点辣椒呢?都可以。愿意研究的人,可以将菜变得更好吃,更符合一部分人的口味,然后传给别人。所有人都能吃上美味的饭菜。

商业软件做了什么?

软件还是菜谱。一个大厨对你说:“菜谱保密”,你就只能吃他给你做的菜。饭店的饭好吃,没错。但是几天前的315曝光的是什么?没人知道菜里头还有什么,味精鸡精算好的,头发丝也凑合。如果你想要把菜谱给别人,他们就把你扔到监狱里把你叫做贼。这是现实。

更过分的呢?

大厨把菜谱给你了,里面还塞着一个闹钟。你能照着菜谱做30遍,满了限额之后,他们就要求你付钱。不付?那菜谱就会自动销毁。

软件是值得付钱的,我再三强调,一个优秀好用的软件是值得我们高兴地为他付钱的,甚至更优秀的软件会让我们为他捐款。然而,我从没见过有值得五千块钱的软件,没有理由为一个设计落后的微内核,整个系统靠着速度毫秒级的IPC来工作的系统付上这么多钱。如果说UNIX值得5000,我觉得无可厚非,因为UNIX是这个星球上设计最好的系统。

“最好的系统”不是乱说的。拿UNIX其中一个影响力最大的实现——Linux来比较,就比较日常用户的体验。启动最慢、内存最大的firefox也只需要几秒钟时间,按一下鼠标就可以。对于W*ndows,还需要我说吗?

四、这到底是系统的原因吗

前面的所有内容都在说UNIX和W*ndows。抛开金钱,这两个都可以算得上星球上优秀的操作系统。而W*ndows的裸机性能测试也十分不错。这是我必须承认的客观事实。这一章,我们要讨论的是,到底是什么使得W*ndows系统在日常生活中如此的慢。

设计

首先我要说的就是设计。

W*ndows的微内核设计我们无法反驳,那是十分优雅的。然而,它却好像并没有为内核减轻多少开销,毫秒级的IPC到处都是。它的内核太小了,就连系统调用都放在了动态库里,导致正常应用的启动要进行多次重链接。

它的窗口框架也不尽人意。回调一直是POSIX所极力避免的东西,标准中几乎没有关于回调的内容,而是异步、poll、select这样更符合人类逻辑的东西。

而它呢,窗口框架的所有消息(就是那个Msg)都靠回调来处理,正这样导致了响应速度的不尽人意。一个小小的窗口点击、移动都成为了事件。

转过来看UNIX,与它的窗口框架类似的是signal。传统信号通过signal()设置而现代的则通过sigaction(),无论接口怎么不一样,都有着“默认操作”,即SIG_DFL。所以如果让我给W*ndows提一个修改意见,我首先会说:“请加一个RegisterMsgs调用,为每一个msg都提供一个handler,并支持设置默认以及忽略操作吧!”

自作聪明的用户

你可以看到一系列’XXX 安全管家’的应用程序。在XP时代,这是必不可少的。然而,现在都……2202年了,还是有数不胜数的自作聪明的用户(甚至程序员)安装他们。我曾经在我的W*ndows 8.1以及 W*ndows 10上重装系统并且不安装任何电脑管家,结果性能提升了至少两倍。

当然,我没有说管家没有用。实际上他们是非常有用的,·无数的安全人员编写了他们,但是现代内核不再需要如此严格的保护了,所以说到底,这还是早期W*ndows太差劲的原因。

然而XXX安全极速浏览器的性质就截然不同了,从来没有人需要过这种应用,而实际上它们就是个套壳。编写这种应用的人和诈骗、邪教完全一样,将他们闭源并且加上几个ad,就变成了自己的国产浏览器。

五、自封后路

综上所述,W*ndows就是被各种daemon以及糟糕的后台程序搅黄了,而它们总是喜欢位于后台的原因,根本上就是商业原因——看看你右下角那一个个小图标,它们应该比桌面上显眼吧。

也就是说,商业的W*ndows自己告别了原来属于自己的——无穷尽的自由软件开发人员。

深入解析poi-tl自定义表格渲染插件中的多级子循环实现 本文深入解析了poi-tl自定义表格渲染插件中的多级子循环实现,详细介绍了其在处理复杂业务数据时的核心价值、实现原理及实战技巧。通过多级子循环机制,开发者可以高效地将层级数据结构渲染到Word表格中,显著提升代码简洁性和维护效率。文章还分享了性能优化和异常处理经验,帮助开发者更好地应用该插件。 阅读详情

相关推荐

求无向图中所有的环 C++ python

求无向图中所有的环

random_repick的专栏 1151

几款超好看的英文字体

对于笔者来说,有一款看着顺心的英文字体肯定是一件很重要的事情。今天这篇文章笔者就来推荐几款笔者很喜欢的英文字体(完全免费)。并且这些字体都可以在https://pengruiyang-c...

UTF80的博客 1万+

向量数据库安全实战:从Embedding反推到检索越权的全链路防护

随着RAG应用在企业中的普及,向量数据库已成为知识库系统的核心组件。但许多团队对向量数据的安全认知仍停留在传统数据库的账号密码、网络隔离和磁盘加密上。事实上,向量化并非加密,而是一种有损压缩的语义映射,向量本身可以被反推模型还原出原文关键信息,形成高保真的语义泄露通道。同时,相似度检索的模糊匹配特性打破了传统行列权限模型,使得越权检索和成员推断攻击成为新的安全威胁。理解这些原理,有助于企业在数据采集、向量化、索引构建、检索查询等环节构建分层防护体系,包括脱敏、扰动、过滤下推、网关控制等手段。本文从基础概念出

weixin_29323551的博客 259

搞一个最简单的“病毒”

其实很多人都想当一名黑客,只是自己不会编程而且觉得当黑客很难。今天这篇文章就可以做一个简单的“病毒”。看一下效果:[上传视频失败!错误码0x7c00103d20]怎么样,还是可以的吧…...

UTF80的博客 3101

vivado 编译ADI AD9361 TCL脚本生成hdl工程

(4)输入"source ../../scripts/adi_make.tcl"命令(仅双引号内部命令,不包含双引号),个人理解:该命令用来加载当前所需要编译工程所需要各功能模块的信息,因为每个工程需要不同的功能模块,比如有的需要gpio模块,有的不需要gpio模块,这些模块上前面路径的library也同样以TCL脚本形式存在,当有需要时才进行编译,怎么知道当前工程需要什么模块呢就是通过"source ../../scripts/adi_make.tcl"(仅双引号内部命令,不包含双引号)命令实现。

weixin_40586423的博客 807

STM32F407用FSMC+DMA驱动LVGL,3.5寸屏流畅度翻倍实战(附CubeMX配置避坑)

本文详细介绍了如何在STM32F407上通过FSMC+DMA驱动LVGL,显著提升3.5寸屏的显示流畅度。从FSMC与DMA的配置原理到LVGL驱动层适配,提供了完整的优化方案和实测数据,帮助开发者解决界面卡顿问题,实现流畅度翻倍的效果。

weixin_30872499的博客 559

什么是哥德巴赫猜想

或许有人听说过哥德巴赫猜想就是1+1?完全错误!那么到底什么是哥德巴赫猜想呢?要说到哥德巴赫猜想,必须要说到两个人。第一个就当然是哥德巴赫,第二个是大名鼎鼎的数学家欧拉。有一天,哥德巴...

UTF80的博客 2995

ConvLSTM时空预测实战代码详解

ConvLSTM代码复现

JaysonWong的博客 1万+

文本编辑器,选什么好

想要编程,必须要有一个顺手的文本编辑器。这篇文章列出了作者用过的一些文本编辑器,由时间排序。第一名:记事本这个是笔者用过的第一个文本编辑器,缺点很多,优点倒是“很多”。例如:简单(简陋)...

UTF80的博客 2661

【GNSS测试技术(一)】GNSS基础原理介绍

GNSS(全球卫星导航系统)是一种基于卫星信号的定位技术,通过使用分布在地球轨道上的卫星,为用户提供全球范围内的定位、导航和授时服务。

新猿异码的博客 5752

基于知识图谱的时空事件关联推理能力培养

随着信息技术的飞速发展,大量的时空事件数据被产生和收集,如交通流量数据、气象观测数据、社交媒体上的地理定位信息等。这些数据蕴含着丰富的知识和规律,但要从中提取有价值的信息并非易事。基于知识图谱的时空事件关联推理旨在通过构建知识图谱,将时空事件数据进行整合和关联,从而实现对事件之间潜在关系的挖掘和推理。本文的目的是系统地介绍基于知识图谱的时空事件关联推理能力的培养方法,包括核心概念、算法原理、数学模型、实际应用等方面。

操作系统内核探秘的博客 750

你家的网络真的不好吗

在你使用浏览器访问网页很慢的时候,你很可能认为这是由于你的网络不好。其实不一定,你家的网络可能很好。我们来看一看几种常见的原因。正在等待服务器的响应……这种原因是因为对方服务器离你很远或...

UTF80的博客 2538

6.4 实战项目:基于Agent内核构建Code Review智能体

本文介绍了一个基于Agent内核构建的智能Code Review系统实战项目。系统采用多Agent协作架构,包含代码质量分析、安全漏洞识别、性能优化建议等核心功能模块。文章详细展示了系统架构设计,采用协调器Agent管理多个专业Agent协同工作,并提供了基础Agent框架和协调器Agent的TypeScript实现代码。项目结合了AI Agent核心原理和多Agent协作机制,实现了自动化的代码审查流程,能够生成详细的审查报告,帮助开发者提升代码质量和安全性。

yonggeit的博客 3109

如何用Python计算数字的阶乘

计算阶乘实在是令人烦恼的事情。今天我们就用Python制作一个专门计算数字阶乘的文件吧。 def factorial(n) 我们首先定义了一个名为factorial的函数。在函数中,我们利用一个for循环获取所有小于number的数字,然后将答案(answer)乘number,最终返回答案(answer)。经过测试,代码可以正常运行。如下: 但这样还不怎么够。如果有用户恶意输入字符串,程序就会报...

UTF80的博客 2240

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

什么是编码

上一篇文章《HTML基本标签》提到了UTF-8。今天我们来了解一下UTF-8。UTF-8其实是一种解码方式。它用于中文以及其它一些世界上常用的语言。解码方式是什么?要知道,计算机是根本...

UTF80的博客 1914

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

虚拟机中Operating System not found怎么办

在运行虚拟机时,可能会出现Operating System not found的错误。这种情况大多是你没有选择正确的ISO文件或者这个文件已经损坏。 解决方案:重新下载一个或使用虚拟机自带的镜像就可以解决了。 ...

UTF80的博客 1583

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

在你的Windows系统上运行Linux系统

在操作系统领域,Windows无疑是最常用的。这种操作系统可以说是很好看。但是,由于维护Windows的人比较少,时不时还是会崩那么一下。操作系统领域也不是只有Windows这一个,还有...

UTF80的博客 1375

如何不下载软件来制作自己的网站

注意:本文使用Windows操作系统。如果你计算机的操作系统不是Windows,这篇文章对于你来说没有丝毫意义。我们前几天介绍了如何建立一个自己的网站,虽然也有用,但是下载了许多软件。...

UTF80的博客 1044

如何用Python解决阶乘问题

计算阶乘实在是令人烦恼的事情。今天我们就用Python制作一个专门计算数字阶乘的文件吧。我们首先定义了一个名为factorial的函数。在函数中,我们利用一个for循环获取所有小于num...

UTF80的博客 749

什么是栈

栈说白了就是内存中的一块地址,是用来存储类似于变量,函数之类的程序需要它,但放到内存地址中太不容易找的东西。你明白了吗?阅读 10万+...

UTF80的博客 679

Huffman赫夫曼编码的工作原理

谈到压缩这玩意儿,大家可能会想到忘记压缩密码将巨大文档变成一个神秘的小文件,而且你还通过这个小文件来恢复这个巨大文档。但是,大家一定都想过,为什么压缩能这么神奇呢? 首先抛开那些什么二叉树,二分查找的。假如让人帮忙复述这一段话: 中华人民共和国于公元2008年在北京举办了奥林匹克运动会。 他可能会说成: 中国2008年在北京举办了奥运会。 一下子短了将近一半!这是怎么回事儿啊? 我们都知道,中国就是指中华人民共和国,奥运会就是指奥林匹克运动会。...

UTF80的博客 674

几行代码能干出什么事

印象中,能干很多事的代码肯定是很长很长的。其实不然。几行代码也可以干出很棒的事呢。先看看一行代码。Python >>> print("Hello Worl...

UTF80的博客 664

从慢订阅者到发布者:LiteBus 如何用 Unix Socket 背压保护可靠 Topic

LiteBus 通过 Unix Socket 与 epoll 非阻塞模型实现可靠 Topic 的背压机制:当订阅者处理慢时,Broker 暂停读取发布者数据,压力向上游传播,避免消息丢失或内存溢出。其 RELIABLE 策略不丢帧、不截断已发送数据,但仅保证运行中不静默丢弃,不承诺崩溃恢复或持久化。适用于关键事件等不可丢失场景,而高频数据推荐使用 BEST_EFFORT 或 LATEST。背压本质是用延迟换可靠性,设计需权衡业务需求与性能代价。

qq_39612333的博客 220

百度开源文心5.5 Flash Base:280B MoE 只激活 14B,4 步部署 + 3 个坑,微调还是等指令版

百度开源文心 5.5 Flash 基座权重:280B MoE 每 token 激活 14B,1M 上下文,同尺寸开源 Base 30 项基准多数领先。4 步部署(vLLM/SGLang completions 链路)+ 3 个高频坑 + 动手前 6 点核对清单,并给出微调 Base 还是等指令版的判断线。

weixin_50937681的博客 259

开源密码管理与双因素认证工具离线镜像合集

本集合汇总等开源密码管理与双因素认证相关离线包。侧重密码箱与 2FA,与「安全审计/渗透扫描」合集错开。

229

GitHub 开源趋势日报 | 2026-11-08

每日精选 GitHub Trending 热门项目,聚焦 AI 与大模型、Agent 智能体领域,带你用一篇文章看懂开源风向。

weixin_45631123的博客 283
上一篇: RISC-V 架构指令集手册 第一册 无特权指令集 中文翻译
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值