整理 | 王启隆
透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。
今天是 2023 年 3 月 20 日,在 1999 年的今天,人类首次成功乘热气球环球飞行。在 24 年的今天,瑞士人皮尔卡、英国人琼斯经过近 20 天的飞行,终于完成了首次乘热气球环球飞行的壮举,总计飞行 42810 公里。热气球利用了加热的空气或某些气体,比如氢气或氦气的密度低于气球外的空气密度,以产生浮力飞行。回顾科技历史上的 3 月 20 日,这一天还发生过哪些关键事件呢?
cURL(发音类似“curl”)是一个知名的计算机软件项目,它提供一个库(libcurl)和命令行工具(curl),用于使用各种网络协议传输数据。该名称代表“URL 客户端”。
cURL 的前身 httpget 于 1996 年底发布,瑞典开发人员 Daniel Stenberg 在当时想寻找一个自动记录和下载货币汇率的工具来为他的 IRC 机器人工作。Daniel Stenberg 接手了 httpget 项目,将它改名为 urlget,添加了对 GOPHER 的支持,更改了项目名称,添加了 FTP 支持……
最终在 1998 年 3 月 20 日,urlget 再次改名为 cURL,并发布了 4.0 版本。此时的 cURL 已经有 2200 行代码,它支持三种协议:HTTP、GOPHER 和 FTP,并具有 24 个出色的命令行选项。
cURL 发布之后,Daniel Stenberg 和他的团队又在 1998 年为 cURL 添加了 HTTPS 和 TELNET 支持,并引入第一个 cURL 手册。cURL 开始获得 GPL 许可,并在同一年切换到了 MPL。这一年,他们倾尽全力在 cURL 身上,总共发布了 200 个版本。最终在 1998 年 8 月,Daniel Stenberg 在开源目录站点 freshmeat.net 上添加了 cURL。
cURL 在开源社区一直活跃了 25 年,如今的 cURL 拥有 155100 行代码、486 页说明、1560 个测试用例、2771 位贡献者、1105 位提交作者、29733 次提交、48580 美元的 Bug 提交赏金、249 个命令行选项、28 项协议……你平时使用 cURL 吗?你认为它在未来仍然有意义吗?欢迎在评论区分享你的真知灼见。
资料来源:维基百科、Daniel 的个人博客
Linksys 是一个美国网络设备品牌,现时由鸿海旗下的贝尔金(Belkin)拥有。Linksys 最初于 1988 年创立,2003 年 3 月 20 日被思科(Cisco)收购。尽管 Linksys 公司最知名的是其宽带调制解调器,无线接入点与无线路由器,但亦有生产网络交换机与 VoIP 设备以及多种其他产品。在 2013 年,思科把 Linksys 卖给贝尔金,并于同年完成并购。
Linksys 公司所生产的最著名的产品为 WRT54G,当时为了降低成本,Linksys 决定使用基于 Linux 操作系统的固件。通常来说,消费级的路由器包含一个中央处理单元与操作系统,而多数功能透过软件编码来实行,以将实体硬件保持到最低数来节省生产成本;但消费级路由器已知会因依赖软件来提供功能而不可靠,基于软件的路由器未配备快速处理器可能会在指向网络流量时缓慢。所以,WRT54G 因拥有快速的处理器而知名,但其固件并不完整,且缺乏高端功能。
2002 年,哥伦比亚大学法学院教授 Eben Moglen 指出,由于其固件本质上是基于 Linux,思科在法律上有责任以 GPL 条款发布路由器的源代码。经过一段时间后,思科承认其责任,并发布编码及透露了软件编码与硬件沟通方式的秘密。随后,网络上迅速形成了一个专门修改 Linksys 路由器固件的开放源代码社区,业余程序设计员们很快地学习到如何将价值 600 美元的功能加入价值 60 美元的路由器中。这起事件彻底改变了路由器市场,同时加强了部分消费级产品的稳定性与功能。
Linksys 与其他销售商当时不得不做出反应,最终迫于压力开源了 WRT54G 的 Firmware,不久之后,Sveasoft 公司开发了 Alchemy。此时,Linksys 仍有生产基于 Linux 的路由器版本,名为 WRT54GL,但未作为其中一款旗舰产品进行推广。到了后期,Linksys 发售了 WRT54GL 路由器,与原版 WRT54G 相似均是基于 Linux,因而可轻易地更新第三方固件;尽管 Linksys 仍未直接支持这种做法,但爱好者仍有兴趣修改与客制化他们自己的路由器。从此,无线路由器进入了可以刷机的时代。
资料来源:维基百科
2006 年 3 月,计算机科学家、卡内基梅隆大学教授周以真(Jeannette Wing)在计算机领域权威期刊《ACM 通讯》上发表了一篇名为“Computational Thinking”的文章,详细阐述了计算思维。简单说来,计算思维是运用计算机科学的基础概念与思维进行问题求解、系统设计及人类行为理解等一系列活动的一种普适思维方法与技能。1993 年,周以真曾与图灵奖得主芭芭拉·利斯科夫合作,提出了著名的 Liskov 替换原则。
计算思维应该跟阅读、写作和算术一样,组成一个人的基本分析能力。像计算机科学家一样思考,不仅仅是指能够使用计算机编程,它需要多层次的抽象思维。
——周以真
周以真于 1979 年获得麻省理工学院(MIT)的电子工程和计算机科学学士和硕士学位,1983 年获得 MIT 计算机科学的博士学位。她的主要研究领域是形式方法、可信计算、分布式系统、编程语言等。2004 至 2007 年,她曾担任卡内基梅隆大学计算机学院院长;2013 年 1 月加入微软研究院,担任微软全球资深副总裁,负责微软研究院全球各核心研究机构及微软研究院学术合作部的工作。
跟阅读、写作和算术一样,计算思维是一种解决问题的方法;其标志就是采用编程或是软件工程的思想解决日常遇到的问题,将一个体量巨大的问题看成一个项目通过抽象细化成各个子项目,采用递归一类的编程思想进行解决。周以真认为,计算思维包括了涵盖计算机科学之广度的一系列思维活动,并从计算机科学、科学计算、计算科学、可计算原理等因素分析对计算思维形成方面的影响。
周以真曾为计算思维举了一个简单易懂的例子:如果你要做一顿饭,既要煮饭又要炒青菜炒肉,但又不能做好菜了但饭还没煮熟,要怎么做?这三项任务都需要花费资源和时间。在做饭这件事上,你就相当于一个操作系统。我们在计算机科学中所学习的,正是如何调配有限的资源,完成所有任务。周以真认为,计算思维不局限于计算机科学家身上,我们每一个人都能拥有计算思维。
如今,许多人将计算机科学等同于计算机编程,有些家长为他们主修计算机科学的孩子看到的只是一个狭窄的就业范围,许多人认为计算机科学的基础研究已经完成,剩下的只是工程问题。当我们行动起来去改变这一领域的社会形象时,计算思维就是一个引导着计算机教育家、研究者和实践者的宏大愿景。
——周以真
资料来源:维基百科
Docker 是一套平台即服务(PaaS)产品,使用操作系统级的虚拟化技术,以称为“容器”的包来交付软件,而容器之间相互隔离,可大大提高软件交付速度。Docker 轻量和可移植的特性尤其适用于动态和分布式环境,它的兴起为软件开发带来了一场革命。Docker 公司创始人兼 CTO 所罗门·海克斯(Solomon Hykes)也是计算机容器概念的提出者,他于 2013 年的今天以开源方式发布了 Docker,对计算机行业产生了极大影响。
Docker 利用 Linux 核心中的资源分离机制,例如 cgroups,以及 Linux 核心名字空间(namespaces),来创建独立的容器(containers)。这可以在单一 Linux 实体下运作,避免启动一个虚拟机造成的额外负担。Docker 与虚拟机类似,但二者在原理上不同。Docker 是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此 Docker 更具有便携性,能高效地利用服务器。Docker 更多地用于表示软件的一个标准化单元,因此它可以无视基础设施(Infrastructure)的差异,部署到任何一个地方。
2021 年 8 月,适用于 Windows 和 MacOS 的 Docker Desktop 不再对企业用户免费。Docker 终止了对大型企业客户的免费 Docker Desktop 使用,并将其免费计划替换为个人计划。Linux 发行版上的 Docker 不受影响。同年,安全公司 Palo Alto Networks 研究人员 Aviv Sasson 在 Docker Hub 上发现了恶意容器映像档,这些映像档分别来自 10 个不同账号,总下载次数超过 2000 万次,内含挖矿软件。
以史为镜,可以知兴替。计算机科学发展至今,有许多至关重要的事件、人物。在《新程序员:我们的技术时代,我们的程序人生》中,来自四十余位技术人跨越半个世纪,用代码敲出一个个真实的程序人生故事!
扫描或点击《新程序员:我们的技术时代,我们的程序人生》订阅!