We're sunsetting PodQuest on 2025-07-28. Thank you for your support!
Export Podcast Subscriptions
cover of episode Open Source Software

Open Source Software

2025/4/5
logo of podcast Everything Everywhere Daily

Everything Everywhere Daily

AI Deep Dive AI Chapters Transcript
People
主持人
专注于电动车和能源领域的播客主持人和内容创作者。
Topics
主持人:我将探讨开源软件的起源、发展以及它对当今互联网和科技产业的深远影响。从早期计算机编程的原始方式,到如今开源软件在服务器、操作系统和各种应用程序中的广泛应用,开源软件的演变历程展现了技术发展与合作共享理念的交织。早期,由于计算机硬件昂贵且软件规模小,软件通常在研究人员和开发者之间免费共享。学术界和研究机构的合作文化,以及像SHARE这样的用户组,进一步促进了软件的共享和合作。Unix系统的出现及其开放的授权方式,为开源软件的兴起奠定了基础。BSD系统的开发和发展,进一步推动了软件的开放和共享,培养了一代期望能够查看和修改源代码的程序员。然而,20世纪70年代末和80年代初,软件的商业化趋势导致软件共享文化开始衰退。为了应对这一变化,Richard Stallman启动了GNU项目,并成立了自由软件基金会,旨在推动自由软件运动的发展,并创建了GNU通用公共许可证(GPL),以确保软件对所有用户保持自由。Linux内核的出现填补了GNU操作系统的缺口,与GNU项目结合形成了完整的GNU/Linux操作系统。互联网的兴起极大地促进了代码共享和对自由软件的需求,许多重要的互联网软件组件都是在这个时期开发的。为了更有效地推广自由软件运动,尤其是在商业领域,'开源'一词应运而生,并催生了开源倡议。'自由软件'和'开源软件'的概念虽然存在细微差别,但两者并非完全对立。多种开源软件许可证的存在使得开源软件的使用和修改存在差异,开源软件项目也可能存在分支,导致项目发展方向出现差异。如今,开源软件在各个领域都非常流行,尤其是在服务器和移动操作系统领域。许多流行的网络浏览器、服务器和网站都依赖于开源软件,开源软件已经成为互联网运作的基石,它对当今世界的影响是不可估量的。

Deep Dive

Shownotes Transcript

计算机软件似乎无处不在。无论您使用什么类型的计算机或在哪里使用它,所有计算机都使用软件。这就是计算机的全部意义。然而,并非所有软件都是一样的。软件应用程序之间实际上存在着巨大的差异。不仅仅是它们的功能,还包括它们的编写方式、运行它们的商业模式、涵盖它们的法律许可证以及它们背后的理念。

在本期《无处不在的日常》节目中,我们将进一步了解免费和开源软件,了解它的定义和工作原理。

本期节目由Quince赞助。假期即将到来,您之前听我说过我最喜欢的毯子和毛巾是从Quince买的,但您知道他们也有很多很棒的旅行产品吗?例如,轻便的衬衫和短裤仅售30美元,适合各种场合的裤子以及舒适的休闲套装。他们还有优质的行李箱和耐用的旅行袋来装载所有物品。

最棒的是?所有Quince商品的价格都比同类品牌低50%到80%。通过直接与顶级工厂合作,Quince省去了中间商的成本,并将节省下来的费用回馈给我们。而且Quince只与使用安全、合乎道德和负责任的制造工艺以及优质面料和饰面的工厂合作。

在您的下一次旅行中,从Quince那里犒劳自己,享受您应得的奢华升级。访问quince.com/daily,享受365天退货,以及免费送货。网址是q-u-i-n-c-e.com/daily,即可获得免费送货和365天退货。quince.com/daily

本期节目由Mint Mobile赞助。您是说data还是data?好吧,我说data,而且很长一段时间以来,我一直认为每月支付巨额数据套餐费用是正常的。直到我发现了Mint Mobile及其每月仅需15美元的优质无线套餐。使用Mint Mobile,我使用的是与之前相同的网络、相同的基站、相同的手机和相同的电话号码。唯一不同的是月费。

所有套餐都包含高速数据(或高速数据,您可以选择),以及在全国最大的5G网络上提供的无限通话和短信。无论您怎么说,都不要为此支付过高的费用。在mintmobile.com/EED上选购数据套餐。网址是mintmobile.com/EED。

需要预付45美元购买三个月的5GB套餐,相当于每月15美元。仅限前三个月的新客户优惠,之后提供全价套餐选项。税费另计。详情请见Mint Mobile。软件在现代世界中无处不在。它不仅存在于我们的智能手机和台式电脑中,还存在于我们的电视、冰箱和洗衣机中。

有些人通过创建软件成为亿万富翁。在世界各地,可能有数十万,甚至数百万的人靠编写计算机软件为生。事实上,我相信你们中的一些听众现在正参与计算机软件的开发。尽管软件在今天非常重要,但它并不总是被认为如此重要。第一台可编程计算机被认为是ENAC(电子数值积分计算机),它建于1945年。

ENAC最初没有存储程序。您不像现代计算机那样将代码加载到内存中。编程是通过物理重新连接电缆、设置开关和配置插板来完成的。一个程序的物理设置可能需要几天或几周的时间。如果您想让计算机执行其他操作,那么您必须重新开始。因此,关于ENAC的软件只是一组关于设置哪些电缆和翻转哪些开关的指令。

当时,没有人甚至考虑过这可以被版权保护或拥有。它更像是一种烹饪食谱。在ENAC之后不久,计算机就能够将指令存储在内存中了。

本期节目不是关于编程语言的历史,因此,可以这么说,编译型编程语言是在20世纪50年代开发的。编译型编程语言是指在执行之前由编译器将源代码转换为机器代码的语言,允许程序直接在硬件上运行。机器代码是最低级的编程语言,它由计算机可以直接执行的1和0组成。

对于本期节目的目的而言,这些早期计算机有两个相关的属性。它们非常大和昂贵,而且功能并不强大,至少与后来出现的计算机相比是如此。这意味着从商业角度来看,销售的是什么以及每个人都关心的是硬件。为这些早期计算机编写的程序的大小相对较小。

例如,IBM在1953年销售的第一台商用计算机是IBM 650,它的程序大约有100到1000条指令。一条指令是10个十进制数字,大约是40位。因此,就您可以与现代计算机进行比较的大小而言,一个100条指令的程序大约是4000位或500字节。

一个1000条指令的程序将是5000字节或5千字节。因此,这些程序并不大。在计算的早期,软件通常在研究人员和开发人员之间自由共享。这是一个非常小的社区。由于计算机硬件是主要的商业产品,因此软件通常会连同源代码一起分发给购买计算机的任何人。

自由共享软件的概念始于学术和研究机构,在那里合作是常态。在麻省理工学院、伯克利和贝尔实验室等地方,程序员经常共享代码来解决问题并建立在彼此的工作之上。鉴于计算机软件对于那些不拥有非常昂贵的计算机(当时仅限于大型机构)的任何人来说都是完全无用的,因此没有人担心所有权或权利之类的问题。

SHARE用户组成立于1955年,是历史上最早的计算机用户组之一。它是由一群使用IBM 704科学计算系统的IBM大型机客户创建的。SHARE的名称不是首字母缩写,而是反映了其核心目标——在其成员之间共享信息、软件和资源。

在计算机极其昂贵且软件不被视为单独的商业产品的时候,SHARE为合作提供了一个正式的结构。顺便说一句,SHARE今天仍然作为一个用户组存在。这种共享软件的精神一直延续到20世纪60年代和70年代。1973年,随着Unix的发布,一个重要的发展发生了。

Unix是一个多用户、多任务操作系统,它于1969年在贝尔实验室开始开发,如果您还记得我上一期节目中提到的内容,它发明了一切。Unix被创建为当时复杂、资源密集型系统的更简单、更灵活的替代方案。它旨在具有可移植性、效率和模块化,并引入了分层文件系统、管道和基于shell的命令行界面等关键概念。

然而,由于整个电话垄断的问题,AT&T被1956年美国政府的一项同意令禁止进入计算机业务。这导致他们以最低的费用将Unix许可给大学,包括让他们查看源代码。学术机构,特别是加州大学伯克利分校,接收、研究和修改了代码。计算机科学专业的学生通过阅读实际的生产代码来学习编程。

这培养了一代期望能够查看和修改源代码的程序员,从而建立了一种重视开放和知识共享的文化。BSD(伯克利软件发行版)起源于20世纪70年代后期的加州大学伯克利分校,是一系列对AT&T原始Unix的增强。在Bill Joy等人的领导下,该项目最初是通过添加有用的工具和功能开始的,最终发展成为一个成熟的操作系统。

AT&T开始抱怨BSD侵犯了其权利,最终导致1992年的一场诉讼,伯克利在做出一些小的让步后赢得了诉讼。与AT&T的问题只是20世纪70年代末和80年代初软件世界发生的许多变化之一。随着计算机变得越来越普遍,软件也出现在越来越多的设备中,越来越多的公司开始将其软件专有化,而自由共享软件的文化开始衰退。

在软件文化发生这些变化之后,GNU项目于1983年9月由Richard Stallman(当时是麻省理工学院人工智能实验室的程序员)启动。项目名称是GNU's Not Unix的首字母缩写,这是一个幽默的承认,尽管GNU旨在与Unix兼容,但它不包含任何Unix代码。

1985年,Stallman成立了自由软件基金会,以支持和促进自由软件的开发,这种软件尊重用户使用、学习、修改和共享的自由。随着专有软件在20世纪80年代变得越来越普遍,自由软件基金会为自由软件运动提供了法律、哲学和组织上的支持,包括创建GNU通用公共许可证(GPL),这是一个确保软件对所有用户保持免费的许可证。

稍后我们将详细介绍自由软件。然而,GNU操作系统缺少一个主要组件,即内核。内核充当应用程序和物理机器之间的桥梁,确保程序在计算机硬件上高效且安全地运行。它处理内存管理、进程调度、设备控制和系统调用等基本任务。内核问题在1991年由一位名叫Linus Torvalds的芬兰计算机科学家解决了。

Torvalds在GPL下发布了Linux,允许任何人自由使用、修改和分发它。由于GNU项目已经开发了许多必要的系统实用程序,但缺少一个工作的内核,因此Linux很快成为形成一个完全功能的、免费的、类似Unix的操作系统(称为GNU Linux)的缺失部分。尽管今天许多人将其简称为Linux。

90年代见证了互联网的兴起,这极大地提高了人们共享代码的能力,同时也增加了对自由软件的需求。构成互联网主干的许多软件组件都是在这个时期开发的。Apache(世界上最流行的Web服务器)、PHP(一种非常流行的Web脚本语言)和MySQL(一种流行的免费数据库)都是在20世纪90年代开发的。

您可能已经注意到,到目前为止,在本期节目中,我还没有提到本期节目的标题中的短语“开源”。在20世纪90年代后期,术语“开源”被开发出来,作为一种以更务实、更商业友好的方式重新定义和重塑自由软件运动的方法。

虽然自由软件基金会强调软件自由是一个伦理和政治问题,但一些开发人员和倡导者认为,这种信息传递限制了自由软件的更广泛采用,尤其是在商业领域。

1998年,在Netscape发布其浏览器(成为Mozilla)的源代码之后,包括Eric S. Raymond、Bruce Perens和Christine Peterson在内的一群人创造了“开源”一词,以突出协作、透明开发的实际好处,例如更高的质量、更快的创新和更低的成本,而无需意识形态框架。

这导致了开源计划的创建,该计划通过更具包容性和商业吸引力的视角来定义和推广开源软件。这一运动迅速获得发展势头,吸引了大型公司,并重塑了整个软件行业。在这里,我应该解释一下免费软件和开源软件之间的区别,因为这可能会令人困惑,因为我们使用“免费”一词来指代两种不同的东西。

如果软件是免费的,就像您不必为此付费一样,这并不意味着它是开源的。有人可以创建一个程序并允许人们免费下载它,但仍然保留代码的全部权利。关于自由软件基金会的“免费”一词指的是自由,就像自由一样。然而,在这种意义下的自由软件也是免费的,就像您不必为此付费一样。

自由软件基金会提倡的自由软件也是所有开源软件。然而,并非所有开源软件都是免费的,就像自由一样。根据许可证的不同,可能会对代码施加一些限制。

有多种许可证可供发布开源软件。一些最流行的许可证包括前面提到的GPL、MIT许可证、Apache许可证2.0、BSD许可证、Mozilla公共许可证和Eclipse公共许可证。每个许可证都略有不同,并为软件用户提供不同的权利。它们几乎都有一个共同点,那就是允许用户自由使用软件以及查看和编辑源代码。

但是,它也要求对软件的任何更改都必须遵守相同的许可证,这意味着您不能采用开源软件然后将其作为专有软件出售。有时,开源软件项目的走向可能会有所不同,一个团队可能会采用代码并创建一个所谓的“分支”,这只是说他们将把项目带向不同的方向。那么,在一个拥有数十亿美元软件公司的世界里,开源软件有多流行呢?

答案是,非常流行。而且您可能每天都在不知不觉中使用它。让我们从GNU Linux操作系统开始。Linux从未真正成为桌面操作系统。今天,它在桌面操作系统市场的份额约为4%。然而,Linux是Web服务器的首选操作系统。因此,如果您访问某个网站,则很有可能它正在运行Linux。

在全球排名前500的超级计算机中,100%都运行Linux。Linux内核也是智能手机Android操作系统的核心,它在全球市场占有72%的份额。您的Web浏览器几乎肯定包含开源软件。Google Chrome浏览器基于开源Chromium项目。除了Chrome之外,Microsoft Edge浏览器、Opera和Brave也都使用Chromium。

Apple的Safari浏览器使用WebKit引擎,它是开源的,而整个Firefox浏览器是开源的。Apache Web服务器是开源的,它是互联网上最流行的Web服务器应用程序。互联网上40%的网页都托管在WordPress上,它是开源的。世界上最受欢迎的网站之一是维基百科,它是完全开源的。

几乎每种类型的专有程序都存在开源替代方案,包括文字处理器、照片编辑器和媒体播放器。因此,无论您是否意识到,开源软件对于互联网的运行绝对至关重要。将其移除,一切都会停止运行。而我们在线世界的这一支柱直接源于程序员早期相互共享工作的文化。

《无处不在的日常》的执行制片人是Charles Daniel。副制片人是Austin Okun和Cameron Kiefer。今天的评论来自美国Apple Podcasts上的听众Skunk1010。他们写道:“种类繁多。这个节目做得非常好,它将听众带入从科学和数学到历史和体育的广泛主题中。

Gary很好地使主题变得有趣且易于理解。他的旅行使他能够谈论远近的话题,包括我自己的后院——卡迪夫巨人。继续努力吧。”好吧,谢谢,Gunk。我很高兴您像我制作它们一样喜欢收听它们。请记住,如果您留下评论或向我发送boostagram,您也可以在节目中听到它。