【历史上的今天】3 月 20 日:cURL 二十五周年;Docker 发布;思科收购 Linksys

news2024/9/25 19:34:53

整理 | 王启隆

透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。

今天是 2023 年 3 月 20 日,在 1999 年的今天,人类首次成功乘热气球环球飞行。在 24 年的今天,瑞士人皮尔卡、英国人琼斯经过近 20 天的飞行,终于完成了首次乘热气球环球飞行的壮举,总计飞行 42810 公里。热气球利用了加热的空气或某些气体,比如氢气或氦气的密度低于气球外的空气密度,以产生浮力飞行。回顾科技历史上的 3 月 20 日,这一天还发生过哪些关键事件呢?

1998 年 3 月 20 日:curl 4.0 发布

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 的个人博客

2003 年 3 月 20 日:思科收购 Linksys

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 月:周以真提出计算思维

2006 年 3 月,计算机科学家、卡内基梅隆大学教授周以真(Jeannette Wing)在计算机领域权威期刊《ACM 通讯》上发表了一篇名为“Computational Thinking”的文章,详细阐述了计算思维。简单说来,计算思维是运用计算机科学的基础概念与思维进行问题求解、系统设计及人类行为理解等一系列活动的一种普适思维方法与技能。1993 年,周以真曾与图灵奖得主芭芭拉·利斯科夫合作,提出了著名的 Liskov 替换原则。

计算思维应该跟阅读、写作和算术一样,组成一个人的基本分析能力。像计算机科学家一样思考,不仅仅是指能够使用计算机编程,它需要多层次的抽象思维。

——周以真

在这里插入图片描述

图源:维基百科

周以真于 1979 年获得麻省理工学院(MIT)的电子工程和计算机科学学士和硕士学位,1983 年获得 MIT 计算机科学的博士学位。她的主要研究领域是形式方法、可信计算、分布式系统、编程语言等。2004 至 2007 年,她曾担任卡内基梅隆大学计算机学院院长;2013 年 1 月加入微软研究院,担任微软全球资深副总裁,负责微软研究院全球各核心研究机构及微软研究院学术合作部的工作。

跟阅读、写作和算术一样,计算思维是一种解决问题的方法;其标志就是采用编程或是软件工程的思想解决日常遇到的问题,将一个体量巨大的问题看成一个项目通过抽象细化成各个子项目,采用递归一类的编程思想进行解决。周以真认为,计算思维包括了涵盖计算机科学之广度的一系列思维活动,并从计算机科学、科学计算、计算科学、可计算原理等因素分析对计算思维形成方面的影响。

周以真曾为计算思维举了一个简单易懂的例子:如果你要做一顿饭,既要煮饭又要炒青菜炒肉,但又不能做好菜了但饭还没煮熟,要怎么做?这三项任务都需要花费资源和时间。在做饭这件事上,你就相当于一个操作系统。我们在计算机科学中所学习的,正是如何调配有限的资源,完成所有任务。周以真认为,计算思维不局限于计算机科学家身上,我们每一个人都能拥有计算思维。

如今,许多人将计算机科学等同于计算机编程,有些家长为他们主修计算机科学的孩子看到的只是一个狭窄的就业范围,许多人认为计算机科学的基础研究已经完成,剩下的只是工程问题。当我们行动起来去改变这一领域的社会形象时,计算思维就是一个引导着计算机教育家、研究者和实践者的宏大愿景。

——周以真

资料来源:维基百科

2013 年 3 月 20 日:Docker 发布

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 万次,内含挖矿软件。

以史为镜,可以知兴替。计算机科学发展至今,有许多至关重要的事件、人物。在《新程序员:我们的技术时代,我们的程序人生》中,来自四十余位技术人跨越半个世纪,用代码敲出一个个真实的程序人生故事!

扫描或点击《新程序员:我们的技术时代,我们的程序人生》订阅!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/439264.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaWeb—HTTP协议

目录 1.HTTP协议 1.1 HTTP-概述 1.1.1 介绍 2.1.2 特点 1.2 HTTP-请求协议 HTTP-请求数据格式 GET请求和POST请求的区别: 1.3 HTTP-响应协议 1.3.1 格式介绍 1.3.2 响应状态码 常见响应状态码 1.4 HTTP-协议解析 1.HTTP协议 1.1 HTTP-概述 1.1.1 介绍 HTT…

ModuleNotFoundError: No module named ‘cuda‘、‘tensorrt‘

1、 ModuleNotFoundError: No module named ‘cuda’ python -m pip install --upgrade pip pip install cuda-python2、 ModuleNotFoundError: No module named ‘tensorrt’ 2.1 依赖库 先安装两个TensorRT的依赖库 python -m pip install --upgrade pip pip install nvi…

openstack compute schedulers

https://docs.openstack.org/nova/latest/admin/scheduling.html 在默认的配置中,调度器将考虑如下的几个方面: 请求的是Availability Zonenova-compute服务在目标节点上是启用的满足实例类型的extra specs(ComputeCapabilityesFilter&#…

Spring Boot Web

一. 概述 下面我们将进入 SpringBoot 基础阶段的学习。 在没有正式的学习 SpringBoot 之前,我们要先来了解下什么是 Spring 。 我们可以打开 Spring 的官网 ( https://spring.io ) ,去看一下 Spring 的简介: Spring makes Java simple 。…

UUID无处不在,你就是唯一(2023.4.16)

六种语言生成UUID 2023.4.16 引言1、UUID简介2、UUID格式和编码3、UUID各历史版本4、UUID代码具体调用实现4.1 C# 生成UUID4.2 Java 生成UUID4.3 Python 生成UUID4.4 C 生成UUID4.5 C 生成UUID4.6 JavaScript 生成UUID(较为实用)4.6.1 控制台运行&#x…

测绘与设计之间的鸿沟:坐标系,教你如何将CAD与测绘数据准确叠加

一、背景 2008年,我国推出了2000国家大地坐标系(以下简称国家2000坐标系),截至2022年,国家2000坐标系在自然资源领域已经取得了较高的普及率,但在工程建设领域的普及率依旧比较低,很多工程项目…

23种设计模式(9)——适配器模式

目录 一、基本介绍 二、demo 2.1、类适配器模式 类适配器模式注意事项和细节 2.2、对象适配器模式 对象适配器模式注意事项和细节 2.3、接口适配器模式 接口适配器模式介绍 三、适配器模式在框架中的应用 3.1在 SpringMVC 框架应用 3.2、spring AOP中的适配器模式 一、…

如何制作实时库存报表

草料二维码暂不支持自动计算功能,无法看到实时的库存数量。但可以使用外部数据分析工具,如百度Sugar,连接草料二维码官方数据库,即可自由实现各类计算,包括实时库存。 一、案例效果 输入物料名称,即可快速…

oracle学习之rownum和rowid

rownum先百度一波https://www.cnblogs.com/xfeiyun/p/16355165.html rownum是oracle特有的一个关键字。 对于基表,在insert记录时,oracle就按照insert的顺序,将rownum分配给每一行记录,因此在select一个基表的时候,r…

Java基础(八)异常处理

1. 异常概述 1.1 什么是生活的异常 男主角小明每天开车上班,正常车程1小时。但是,不出意外的话,可能会出现意外。 出现意外,即为异常情况。我们会做相应的处理。如果不处理,到不了公司。处理完了,就可以…

Ubuntu下打开QtCreator,环境变量(PATH、LD_LIBRARY_PATH等)与预期不一致的问题

现象展示 在Ubuntu中,安装好Qt之后,可以在系统桌面的左下角找到启动图标 但是,这种方式启动的QtCreator所读取到的环境变量和我们从命令行读取到的不一致: 可以看到,明显少了这个:/opt/ros/humble/bin 因…

Docker实战笔记3-仓库

转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/130260521 本文出自【赵彦军的博客】 文章目录 官方仓库 Docker Hub注册登录查看镜像搜索镜像推送镜像自动构建 网易镜像 官方仓库 Docker Hub https://hub.docker.com/ 目前 Docker 官方维护了…

C++入门之auto关键字内联函数

文章目录 前言一、auto关键字1.auto简介2.auto的使用细则(1)auto与指针和引用结合起来使用(2)在同一行定义多个变量(3)auto不能推导的场景 3.基于范围的for循环(C11)(1)遍历&#xf…

聚观早报|五一首日高铁跨省游热度暴涨;大语言模型规模接近极限

今日要闻:马斯克已创立新人工智能公司X.AI;五一假期首日高铁跨省游热度暴涨;大语言模型规模已接近极限;贾跃亭发文谈FF首台量产车下线;斑马智行与智己汽车进一步合作 马斯克已创立新人工智能公司X.AI 据外媒报道&…

Node 07-nvm

nvm 介绍 nvm 全称 Node Version Manager 顾名思义它是用来管理 node 版本的工具,方便切换不同版本的Node.js 使用 nvm 的使用非常的简单,跟 npm 的使用方法类似 下载安装 首先先下载 nvm,下载地址 https://github.com/coreybutler/nvm-…

【Python中线程和进程详解】

一.区别 几乎所有的操作系统都支持同时运行多个任务,每个任务通常是一个程序,每一个运行中的程序就是一个进程,即进程是应用程序的执行实例。现代的操作系统几乎都支持多进程并发执行。 注意,并发和并行是两个概念,并…

好家伙,9:00面试,9:06就出来了,问的实在是太...

从外包出来,没想到死在另一家厂子 自从加入这家公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到2月一纸通知,所有人不许加班,薪资直降30%,顿时有吃不起饭的赶脚。 好在有个兄弟内推我去…

会声会影老牌视频剪辑软件2023新版本升级

会声会影2023(VideoStudio)是一款功能强大的专业视频制作软件的视频编辑软件及视频剪辑软件,可以剪辑&合并视频、制作视频、屏幕录制、光盘制作、视频后期编辑、添加特效、字幕和配音等操作,任何人都能快速上手,以它的界面美观&#xff0…

#关于webpack版本号的问题#

场景:在使用npm install 安装package.json里面的依赖的,打包,运行的使用,有时候会失败。 原因 :由于webpack webpack-cli版本不同导致的 这个时候需要解决webpack webpack-cli的安装,切换等操作 例如使用…

python+vue 智慧校园校医室问诊系统

本网站所实现的是一个智慧校园校医室问诊系统,该系统严格按照需求分析制作相关模块,并利用所学知识尽力完成,但是本人由于学识浅薄,无法真正做到让该程序可以投入市场使用,仅仅简单实现部分功能,希望日后还…