1个C文件就写出Web服务器!这个60岁程序员大有来头

网络配置 徐 自远 643℃

1个C文件就写出Web服务器!这个60岁程序员大有来头



杨净 明敏 发自 凹非寺
量子位 报道 | 公众号 QbitAI

一个C文件,就写出一个Web服务器。

最近这个软件,在圈里很火。Hackernews上热度高达700+

有网友直接问:他GitHub账号是哪个?

但也有网友质疑说,这个源文件得有几万行代码吧。

No,No,No!

只有2592行,而且完全开源!于是就有旁友打算回去抄代码。

当然,到处还流淌着各种对大佬的仰慕,在这就不一一列举了。(手动狗头)

究竟是谁打造了这一“精品”,背后到底是何方神圣?

Richard Hipp,一个已经60岁的技术大牛。

你没有听过他的名字,但你当前使用的手机,一定有几十甚至上千个他开发的数据库——SQLite。比如,微信的聊天记录就存在那里面。

可以说,它是世界上装机最多的数据库,没有之一。

以至于最新的Web服务器一出,就有网友高呼:大神写个淘宝吧。

说到Richard Hipp,就不得不提他的成名作:SQLite。

SQLite是一款轻型的数据库,最初版本的大小只有900KB左右。

它最大的特点就是嵌入式,支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口。

所以,SQLite可以应用在非常多产品中,除了手机APP、电脑浏览器,甚至连电视机顶盒中也有它的身影。

并且,与同类数据库Mysql、PostgreSQL相比,它的运行速度也更快。

如此强大的数据库,Richard Hipp是怎么设计出来的呢?

这还要追溯到20多年前,他接下国防公司通用动力的一个项目说起。

当时,他要解决如何在导弹的小型计算机上安装数据库的问题。

美国海军所使用的Informix数据库体积太大、无法安装,而且它是一个单独运行的进程,即使想方设法安装成功,运行的效率也不高,甚至还要耗费大量人力来操控。

由此,Richard想:“为什么不能直接从磁盘上读取数据呢?”

这样既能提高运行效率,也能减小数据库大小。

于是,他用C语言写了一个小文件,它可以被嵌入到任何程序中,并且大小只有900KB左右!

所以,你就能Get为啥这个新服务器,只有一个C文件了吧。(一直都很Richard风格)

假设要启动导弹上一个GPS程序,这个文件只需在其内部创建一个小数据库,就能来管理相应的数据。

第一版SQLite就这样诞生了。

之后,Richard对SQLite进行过多次更新。

2001年刚发布第二版后不久,摩托罗拉就给他打来合作的电话,希望把SQLite应用在他们的手机上。

2005年,Richard直接开源了SQLite,并于同年获得Google O’Reilly 开源奖。

而他最新发布的网络服务器Althttpd,其实从2004年就开始运行SQLite官网了。

官网上介绍,Althttpd的处理能力还可以。

截至到2018年,Althttpd在SQLite官网每天处理约50万个HTTP请求(每秒5、6个),每天能够提供50GB的内容(约4.6兆比特/秒)。

他学习编程的缘起,还要从中学说起。

大概是在70年代左右,当时Richard在读9年级。一次偶然的经历,让他看到电传打字机,背后都连着一个大型计算机。

大概是这个样子。

他被震撼到了,于是下定决心说:必须要学会编程。

执行力超强的他,立马就去学校图书馆,将所有关于计算机的书都借出来。

实际上,只有三本。那天晚上,他就将三本书看完了,还开启了学习用BASIC编程的旅途。

随后不久,Apple II出来了。

不太富裕的他,只买了一个主板,然后自己搭建键盘、电源,并将它们全部焊接起来。

这当中还发生了一个小插曲。

第一个主板不能用,他就电话给苹果。联合创始人史蒂夫·沃兹尼亚克就给他寄了另一个主板。

组装成功之后,他就试图在4K的内存中编写程序,这里面还包括视频内存。

当时还因为没有显示器,他就调制射频,将它挂在电视机的天线上。

虽然分辨率感人,整个屏幕只有40个字符宽,24行高。

直到现在,他仍然表示:

It was the most amazing thing in the world.

这样的创造因子,是从他父亲那里继承而来。

Richard这样形容他的父亲:“他是那种最原始的制造者,比如内燃机什么的”。

而Richard则将同样的想法——从零开始创造事物,放在了抽象的东西上。

接触到计算机之后,Richard喜欢上了编程,原因很简单:不需要用任何具象的材料,就能构建一个完全不同的世界。

事实上,他也一直在付诸实践。

SQLite之后,他接着写了分布式版本控制系统Fossil、Bug追踪系统 CVSTrac,以及解析器生成器Lemon。

每次都是因为遇到了一个问题,然后就自己去编写。

因此就有网友戏称:真·轮子哥。

不过也有网友为他解释:自己写的工具确实更顺手。

不过,对于这位大佬来说,还有比编程更难的事情。

那就是让他的妻子Ginger Wyrick嫁给他。(手动狗头)

甚至在结婚之后,公司也改名了 ,Hipp, Wyrick & Company

并将所有股份转让给她。

Richard在接受采访时调侃,有时候一度不得不从她那购买一半的股票。

参考链接:
[1]https://sqlite.org/althttpd/doc/trunk/althttpd.md
[2]https://changelog.com/podcast/201
[3]https://hackernoon.com/the-story-of-dwayne-richard-hipp-and-the-development-of-sqlite-in-1999-yc4v356q

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态

1个C文件就写出Web服务器!这个60岁程序员大有来头https://m.toutiaocdn.com/i6972809313589379597/?app=news_article&timestamp=1623537267&use_new_style=1&req_id=20210613063427010135098086375E48B3&group_id=6972809313589379597&tt_from=android_share&utm_medium=toutiao_android&utm_campaign=client_share&share_token=3993bdbd-1893-4188-a453-2dd87b903b08

转载请注明:徐自远的乱七八糟小站 » 1个C文件就写出Web服务器!这个60岁程序员大有来头

喜欢 (2)

苏ICP备18041234号-1 bei_an 苏公网安备 32021402001397号