Ada - the first programmer
Two hundred years ago today (the original English text was published on December 10, with translation annotation) was the birthday of Ada Lovelace . Some consider her a hero in the history of computing; others believe she is just an over-hyped minor figure. On the occasion of the bicentenary of her birth, I decided to solve this "mystery of Ada" that has puzzled me for a long time.
The job was far more difficult than I thought. The characters in the story are elusive, the technology involved is complex and difficult to understand, and the story's setting is a combination of nineteenth-century upper-class customs, not to mention the fact that the material contains a lot of misinformation and incorrect annotations.
But after doing a lot of research—including reading many original documents—I feel like I finally understand Ada Lovelace and understand her story. This story is at once noble and inspiring, yet tragic and despairing.
To understand this story, we need to involve a vast array of facts and clues.
Ada's early life
Let's start from the beginning. Ada Byron (Ada Byron, her name before marriage) was born on December 10, 1815, in a high-society newlywed family in London. Her father, Lord Byron (George Gordon Byron, 6th Baron Byron, January 22, 1788 – April 19, 1824) was 27 years old and at the peak of his poetic powers. period. Her mother, Annabella Milbanke, inherited the title Baroness Wentworth and was dedicated to progressive causes. Her father said he was named "Ada" because it was short, old and ended with a vowel.
Ada's parents were diametrically opposed to each other. Byron lived a bohemian life - almost the epitome of a bad boy in the nineteenth century - with a tragic childhood and an unrestrained life. In addition to writing poetry and blatantly flouting social norms, Byron also often did things that were idiosyncratic: he kept a bear at university, kept five peacocks on the stairs when he lived with other poets in Italy, and wrote a novel American English grammar book, and also participated in the Greek War of Independence (this war also caused his untimely death, for which Greece has a statue commemorating him). He had never received any military training before the war.
Anne Milbank was an educated, religious, well-behaved woman interested in reform and good works. Byron called her the "Princess of the Parallelogram." Her parents separated when Ada was five weeks old. From then on, Ada never saw Byron again. However, Byron always kept a photo of her on the table, and the shadow of Ada appeared many times in his poems. Byron was only 36 years old when he died, and Ada was only eight years old. There were enough scandals to fill hundreds of books about Byron, and after Byron's death the quarrel between his wife's supporters and those of Byron lasted for more than a hundred years.
Ada's childhood was almost isolated from the outside world. She lived with her governess and her cat, Miss Puff, in the manor inherited from her mother. Her mother forced her to spend a lot of time studying and exercising. Ada studied history, literature, languages, geography, music, mathematics (partly taught by empirical methods), chemistry, sewing, shorthand, and simple geometric algebra. When Ada was 11 years old, she went on a year-long trip to Europe with her mother and an entourage. After she came back, she was full of enthusiasm for "flyology" (here it is "flyology", a word coined by Ada, and she also wrote a guidebook of the same name to record her discoveries, translator's annotation), and she fantasized about flying through Steam engines fly like birds.
But then Ada contracted measles (or possibly encephalitis) and was bedridden for three years. Fortunately, the girl recovered in time during her prime years. At the age of 17, she began to go to London to socialize. On June 5, 1833, 26 days after her attendance at court (that is, an audience with the king), Ada attended a party at the home of Charles Babbage, who was 41 years old and whose eldest son happened to be with Ada. reaching the same age. Ada captivated everyone at the party, and Charles once again invited her and her mother to see his latest creation, the Difference Engine: a two-foot-tall hand-cranked device composed of 2,000 copper tubes. Now on display at the Science Museum in London (the picture below shows the original author of this article, Stephen, annotation):
Ada's mother called her a "thinking machine" that could "calculate the roots of a quadratic equation." This changed the course of Ada's subsequent life.
Charles Babbage himself
So who is Charles? His father was an entrepreneur, goldsmith, and banker. After studying at various schools and teachers, Charles eventually went to Cambridge to study mathematics, but soon switched to studying parts of modern mathematics on his own. He and his old friends John Herschel (son of the discoverer of Uranus) and George Peacock (a pioneer in abstract algebra) founded the Analytical Society (later became the Philosophical Society of Cambridge University), promoting the likes of Leibniz (mainly in continental Europe) based on The arithmetic of functions replaced Newton's (mainly in England) point-based reform with such reforms.
Babbage graduated from Cambridge in 1814 (a year before Ada was born), and then went to live in London with his new wife, where he began to become famous in the London academic community. He has no formal job, and his income mainly relies on giving public lectures on astronomy and writing various mathematical papers (function equations, integrals, number theory, etc.). Sometimes I also rely on my father and wife for financial support.
In 1819 , Babbage visited France and learned about a large government project underway at the time - the production of tables of logarithms and trigonometric functions. Mathematical tables were very important at that time. They were basically military and commercial symbols and were also used in navigation, science, engineering, and finance. It is often heard that an error in the table caused the ship to run aground or collide.
After returning to England, Babbage and Herschel began making tables for their astronomical society. Making and checking required a lot of work. Babbage complained: "God, if only steam could be used to make tables!" - - From then on he devoted his life to mechanical watchmaking.
technology at that time
Before Babbage, someone had already made such a calculating machine. Blaise Pascal did one in 1642, and it was even done in ancient times that I know of. But in the era before Babbage, such machines were built out of curiosity and were not reliable enough for daily calculations. At that time, tables were mainly calculated manually, with teams working in groups and doing underlying calculations based on polynomial valuations (a series of extended calculations were also used), and the methods involved were relatively complex.
Babbage's idea was to create a machine - a Difference Engine - that could calculate polynomials in different ways and automatically print out the results based on the input (the output at that time was a real printer) , translation annotation). In this way, productivity can be liberated and mistakes that humans are prone to make can be avoided.
In early 1822 , the 30-year-old Babbage was busy studying various machines and designing sketches and prototypes for the Difference Engine. The astronomical society he co-founded awarded him a medal for this great idea, and in 1832 the government funded his development of such a machine.
In 1824 , Babbage completed a table on human lifespan. He saw a business opportunity in it to found a life insurance company. There was some distraction during the period, but then he gave up the idea and set aside a workshop (actually his garage) to concentrate on the difference engine.
In 1872 , Babbage completed his hand-calculated table of logarithms, and his version was printed for the next hundred years. Babbage recommended printing it on yellow paper, saying this would minimize human error (when I was in grade school, the fastest way to calculate multiplication was still the logarithm table).
In the same year, Babbage's father died, leaving him 100,000 pounds, which is equivalent to about 14 million US dollars in today's money, enough for the rest of Babbage's life. Also in this year, Babbage's wife died. The couple had eight children, but only three survived to adulthood.
妻子死后,巴贝奇到欧洲大陆旅游了一番,并为科学所带来的美好深深感动,还写了一本书,叫做《关于英国科学衰落的思考》(Reflections on the Decline of Science in England, 在线图书馆下载 ),此书最后主要抨击王室(曾经他也是其中一员)。
虽然经常分心,但是巴贝奇在差分机方面的工作从未停止,笔记和设计稿就有几千张。对于个人工作,例如设计、车间实验他很在行;但是在管理方面就不敢恭维了,他雇的工程师管理不佳,花费没有控制。不过1832年,巴贝奇还是成功地完成了一个小型的差分机原型(没有打印设备)。也就是艾达在1933年看到的那个。
回到艾达
艾达和差分机的这次巧遇可能是点燃她数学兴趣的星星之火。她也因此结识了玛丽·萨默维尔( Mary Somerville ),拉普拉斯的译者和著名的科学评论家,在玛丽对她的鼓励下,艾达开始充满热情地学习欧几里得几何学。在1834年她的母亲做的慈善之旅中,艾达深深地被见到的高科技设备震惊了。
回来的路上,艾达给妈妈朋友的女儿教数学。之后她们通过邮件来继续教学。笔记中艾达称“两位女士之间感性的数学信件可能是人类史,或者女性史上的典范”,对于复杂的数学,艾达总是讲述的很清楚,并给予富有经验的建议,比如“如果有 直接 的证明方法,就 不要拐弯抹角 。”(此处斜体部分,在艾达的手写笔记中为下划线。)
巴贝奇可能是第一个和艾达产生共鸣的,在聚会上他试图用自己的金属机器来引起她的兴趣。后来艾达继续和巴贝奇、萨默维尔女士交流,巴贝奇和她讨论的话题也越来越深入,有时候也会讲自己在差分机的经费方面遇到的麻烦。
1835 年春天,艾达19岁的时候,遇见了30岁的威廉·金( William King )。他是玛丽·萨默维尔朋友的儿子,曾在伊顿公学(一百五十年之后,这里也成了我读书的地方)和剑桥就读,后来去英国在希腊的一个机构当公务员。威廉姆是一个仔细、勤劳、举止得体的男人,甚至有些呆板。但是艾达和他一拍即合,两人在1835年七月结婚。为了躲避狗仔队的报道,直到最后一刻才放出他们结婚的消息。
接下来的几年,艾达虽然也有时间骑马、学竖琴和数学(包括球面三角学的课题),但是生活还是几乎被管理家庭和她的三个孩子主宰了。1837年,维多利亚女王即位,作为上流社会的一员,艾达拜见了女王。1838年,威廉姆因为政府所做的工作晋封为罗浮莱斯爵士,艾达也成为了罗浮莱斯爵士夫人。
1839 年,艾达第三个孩子出生几个月之后,她决定重新认真研究数学。她告诉巴贝奇想要在伦敦找一个老师,但是要求他不要透漏出自己的姓名,可能是想避免流言蜚语吧。
后来,她拜奥古斯都·德·摩根( Augustus de Morgan )为师。此人是伦敦大学学院第一位数学教授,逻辑学家,多本教科书作者,不仅是巴贝奇的朋友,也是艾达的妈妈的启蒙老师的女儿的丈夫。(世界真小,此人也是乔治·布尔——发明布尔代数的人,这里有 csdn 之前的介绍 。——的朋友。)
在艾达和巴贝奇的信件中,她表现出对离散数学的强烈兴趣。比如,她在信中讨论:“是否可以用数学方法计算出单人跳棋的最佳解决办法。”作为传统教育的一部分(即使在今天也还是),德·摩根也教她微积分。
她和德·摩根就微积分的通信和今天的学生大有不同——即使和维多利亚时代英国的学生也不同,虽然困惑差不多,但是艾达对于微积分让人误解的符号更加理解(例如,为什么不能和dx相乘等等)。艾达是一位固执的学生,在数学方面下的功夫很多。对在数学世界自己的探索和德·摩根的积极反馈感到快乐。同时,她和巴贝奇也保持着通信,有一次去她的庄园时(1841年一月,艾达25岁),她用迷人的句子告诉49岁的巴贝奇“如果想要溜冰,就来奥卡姆吧;在这个漂亮的地方,我有数不清的美好回忆。”(此处原文是:If you are a Skater , pray bring Skates to Ockham; that being the fashionable occupation here now, & one I have much taken to.)
艾达和母亲的关系有些复杂。表面上,她对母亲很尊敬,但其实受不了母亲对自己的管制。艾达的母亲多次声称自己将死于疾病(事实上,她活到了64岁)。而且她还经常批评艾达的相夫教子之道和处事方式。1841年2月6日的时候,艾达再也无法忍受了,于是开诚布公地给母亲写了一封信,表达自己的志向和想法。
她写到:“我相信自己的才华足以探索自然界未解之谜。”她谈了自己的雄心。她说,接触了数学之后,自己的无处释放的能量终于得到满足。她说,25年了,自己不再对母亲感到敬畏,无需再遮遮掩掩。
但是三个周之后,艾达母亲丢出了重磅炸弹,称艾达出生前,拜伦和同父异母的姐姐有个私生子。虽然当时的英国,这种乱伦不是违法的,但却伤风败俗。艾达难以接受,无心再研究数学。
艾达有间歇性发作的疾病,但是1841年突然加重了,她开始定期服用麻醉类药物(鸦片)。她非常渴望能在某一方面做出非凡的成就,开始觉得自己可能对数学没什么天赋,想着是不是往文学或者音乐方面发展。艾达的丈夫威廉姆安慰了她,1842年末艾达重新回到数学的道路上。
再谈巴贝奇
发生这些事的时候,巴贝奇在忙于各种事物,并且小有成就。
经过几番尝试之后,巴贝奇终于被授予卢斯卡数学教授职位——虽然他从不去剑桥。他还写了一本相当有影响力的书——《机械制造和生产中的经济学》(On the Economy of Machinery and Manufactures),解决工厂如何划分任务的问题(事实上, 在计算数学表的时候,因为任务分配的问题就发生过严重错误)。
1873 年,他接触了自然神学(不久之后,这门学科火了起来),写了一本名为《论第九座水桥》(Ninth Bridgewater Treatise)的书。核心问题是:自然界有没有明显的迹象表明我们的世界是由一位神设计的。此书非常难懂,比如开头就是“我们希望发现这些设计的痕迹的想法,来源于对对一些事物的观察和我们对自己任务意图的比较。”
和一百五十年之后我的工作有些类似,他谈论了机器处理,自然法则和自由意志之间的关系。他说:“计算的复杂性可以通过机器来降低。”但是随后又声称(例子有些站不住脚)差分机可以神奇地产生含有不可预测的改变的数列。
巴贝奇还试图插手政治,曾经两次参加制造业方面的议会选举,但是都最终落选了。部分原因是差分机项目方面滥用政府资金。
巴贝奇从未放弃在他那日益杂乱的大房子里举办上流社会的聚会,参加的有 Charles Dickens, Charles Darwin, Florence Nightingale, Michael Faraday,Wellington公爵(经常带他的老母亲一起出席)。即使他的职称和头衔排到了六行,还是感觉自己不被承认,非常愤慨。
回到差分机的问题上来。研究的过程中,巴贝奇雇了一名杰出的工程师。但是十年的工作进展工作很少——只是完成了一些精密的机床——真正的差分机仍然没有完成。1833年和艾达短暂的见面之后,巴贝奇想要控制项目预算,但是工程师不干了,还坚持要尝试所有的草图,包括那些巴贝奇自己画的。
但就在这段时间,巴贝奇决定要做更厉害的事。不再仅仅局限于计算差的机器,他想做一种“分析机”,能分析出所有操作可能的结果,通过固定的程序实现。一开始,他只想机器能完成复杂的公式计算,但是研究了其他用途之后,他决定再填些功能,例如条件选择——通过用巧妙的办法机械化实现。此间重要的进步是,他发现可以采用类似织布机穿孔卡片选择图案的方法(1801年,由 Jacquard 发明,运用打孔卡上的坑洞来代表缝纫织布机的手臂动作,以便自动化产生装饰的图案)来控制计算步骤。
( 图片来自 Museum of the History of Science )
巴贝奇做了极其复杂的设计,今天看来,这些设计能够工作实在不可思议。1826年巴贝奇设计了一套他叫做“机械谱”的东西——用来在机器上表示数学符号。
但是这项发明并没有获得人们的认可,巴贝奇很受打击。很明显,人们看不懂,即使现在也没几个人明白具体的工作原理。但这应该是巴贝奇最了不起的发明了——因为给了巴贝奇所有复杂设计以灵感。
巴贝奇原来的差分机项目花费了不列颠政府17500英镑,在今天折合2百万美元。虽然和政府其他项目的花费相比并不多,但由于项目的特殊性,在当时引起了广泛讨论。巴贝奇经常强调——和其他同时代的人不同——他没有公报私囊(翻新防火车间的费用不算)。他还说,自己为这个项目还掏了两万多英镑——或者说是他的大部分财产,因为我不知道这个数字是怎么得到的。巴贝奇希望继续得到政府的资金支持,提出了差分机二号的计划,只需要8000个零件,而不是差分机一号的25000件。
1842 年,政府换届,巴贝奇坚持要见新总理罗伯特·皮( Robert Peel ),最后以斥责不了了之。最终,议会有人提出机器投入使用的话只能用来做计算,这个项目被终结了。
艾达的论文
这个项目在英国没有得到支持,却受到了别的地方的欢迎。1840年,巴贝奇受邀到都灵做讲座,被意大利政府授予荣誉。
关于差分机,巴贝奇没有发表过任何严肃的成果,分析机方面也没有。但是在都灵,他谈了分析机,由费德里科·路易吉( Luigi Menabrea ,梅纳布雷亚伯爵)做了记录。费德里科是一个30岁的陆军工程师,27年后,担任意大利总理,在数学的结构分析方面也颇有成就。
1842 年,费德里科用法语发表了笔记。艾达看见之后,决定将其翻译成英文在英国发表。多年之后,巴贝奇称,他鼓励艾达自己写一些有关分析机方面的报告,但艾达说自己没什么想法。1843年2月,艾达终于下决心翻译,并加上很多自己的笔记。
接下来的几个月艾达非常努力——几乎每天都在和巴贝奇通信(有时候也不得不面对无法避免的社交)。虽然在那个年代通信主要靠邮寄(当时一天的信件是现在的六倍)或用人(艾达住在伦敦的时候,离巴贝奇只有一英里),他们的通信就像是维多利亚英国时代的“项目邮件”。艾达问巴贝奇问题;巴贝奇回复;艾达解决问题;巴贝奇评估。显然,艾达站在负责地位,但是感觉自己是第一个解释巴贝奇工作的人,所以有些东西想要和他确认——虽然有时候也会生巴贝奇的气,比如有时巴贝奇想要强行对她的手稿做纠正。
读艾达信中演算伯努利数的部分很美妙:“我亲爱的巴贝奇,我对付不了这些诡异、奇怪的数字了,可能今天玩不成了……我想我最好出去骑会儿马。Tant mieux(法语,意思是“那就好了”,译注)。”不就她又告诉巴贝奇:“我又工作了一整天,很成功!你会感叹我的成果的!这些图表都计算的非常认真,丝毫不差!”然后她签上威廉姆(有时用“Lord L”),“此刻墨水已经用完了,我只好用铅笔署名……”
威廉姆同时提议,让艾达在翻译和笔记上署名。她在给巴贝奇的信中这样写到:“我不想直接署名是谁写的,我想用点个性的东西来识别,比如A.A.L.”(“Ada Augusta Lovelace”,爱达·奥古斯塔·勒芙蕾丝)
1843 年7月底,艾达差不多完成了笔记。她感到非常自豪,巴贝奇也给予了高度赞扬。但是巴贝奇想要在加一点:他想要写一个匿名序言,揭发不列颠政府如何使这个项目失败的。艾达不让,巴贝奇坚持,甚至威胁如果不让他写他就不让发表,后来艾达生气了,巴贝奇终于妥协。最后,翻译问世,署名“AAL”,没有序言,翻译后有她的笔记,标题是“译者笔记”。
艾达对此非常激动,她寄给母亲一份复印本,并说到“修改印刷的数学公式的难度和工作量简直是无法想象的,这项工作对未来是一个好兆头,我相信在将来,数以千百计的公式将诞生于我的笔下。”她说她的丈夫威廉姆也乐意给他的朋友寄一些副本,“威廉姆特别指出,这将提高我在这个领域的地位,也使得他本人更加被认可。”
几天之后,人们开始议论艾达的作品。他对母亲说“威廉姆和我无意匿名,但是也不想夸大,被过誉。”她认为自己是巴贝奇的工作做了出色的解释,希望能建立一个大体的概念框架。
关于艾达笔记内容有很多要说的,但是之前,让我先完成艾达的故事。
巴贝奇提议写序言是个糟糕的主意,但是好处是,艾达在1843年8月14日给巴贝奇写了一封坦白、真挚的16页长信(不像平时写信用的褶皱的纸,这次用的是工整的大白纸)。信中,她解释道,他说的话太绝对,而她却像一个含有“绝对的x”的变量的函数。她说“你的行为在某种意义上也代表了我和我丈夫……我现在有个提议……”然后她问:“如果我在一年或两年之后,在这方面的成就领先与你……可不可以让我自己来为你经营事物……你专心负责研究……”
说白了,她想做CEO的角色,而让巴贝奇来做CTO。让巴贝奇接受并不简单,更不用说他那性格了。但是艾达提的很有技巧,她解释其中的动机不同“我角色的原则是,热爱真理和上帝,要优先于名利和荣誉……但是你可以在爱真理和上帝的同时,也爱名利、荣誉等等。”她解释到:“对于我来说,远不能拜托名利的影响,没有人比我更爱名利、荣誉了。但是我不会欺骗自己和别人,假装这不是一个我的动力。”
信的最后她写道:“我想知道,今后你愿不愿意继续接受花仙子的服务。”
第二天中午她又写给巴贝奇,问他愿不愿意协助自己做“最后的修改”。然后她提到:“今天早上你将会收到我的长信。希望你会做理智的决定。祝好……”
( 图片来自 New York Public Library )
这天下午五点,艾达来到伦敦,给她的妈妈写道“我到现在都不确定,巴贝奇的项目会如何结束……我给他写信了……非常坦白;说明了我现在的情况……他一直都拿我当他的用人,从中受益;我已经做出了很多让步。如果他真的接受我的提议,那么我觉得应该把他踢出项目,自己来完成差分机,(因为以我这三个月来对他的观察,觉得这个项目这样下去永远也完不成,除非有人能刺激他一下)。他一直都很懒散,我愿意做他的对手,希望在接下来的三年内能看到成功。”
巴贝奇在收到的信上潦草地写到,“今早AAL的信收到,拒绝所有条件。”
8 月18日,巴贝奇信中告诉艾达,下次来见她的时候会带上草图和论文。一周之后,艾达在回信中说:“很高兴你花时间来探望!”在艾达给她母亲的信中她说到:“巴贝奇和我的友情现在比以往任何时候都好,我从未见他如此友善,理智,精神这么好!”
( 图片来自 New York Public Library )
九月,巴贝奇写信给艾达,表达自己的爱慕。他将她形容为“数字女巫(Enchantress of Number)”和“我最亲爱的解释者”。(这里,他写的就是Number而不是Numbers。)
第二天,艾达回信,“你是一个慷慨的人,能给仙女无私的指导。”巴贝奇下一封信,署名是“你忠诚的仆人。”艾达在给她母亲的信中,形容自己是“巴贝奇差分机的高级女祭司”。
发布之后的影响
后来的发展并不顺利。有那么一段时间,艾达专注于笔记的时候,疏于管理家庭。之后更糟糕的是,她的健康也更差了,不得不奔波于各种医生之间,尝试各种疗法(她母亲建议她尝试一下梅兹梅尔氏催眠术)。对于这些糟糕的影响,艾达称“这些笔记从某种意义上使全世界都在消耗AAL的身体。”
尽管这样,她依然痴迷于科学。她还和迈克尔·法拉第( Michael Faraday )通信,法拉第称她为“一颗冉冉升起的新星”。艾达将自己出版的第一版比作自己的孩子,“多种多样的、潜在的(不是暗示,而是明确地说了出来)、大型、总体、抽象的观点,”她说,“他(指自己的出版)会带来一大家子的兄弟姐妹。”
她的笔记发布之后,巴贝奇劝她再发布一份论文。但是1844年10月的时候, David Brewster (万花筒的发明者)写了有关分析机的东西。艾达问他,有没有其他课题的建议,“我觉得生理学方面的课题也比较适合我。”她说。
的确,在一年之后,她写给朋友(也是她的律师,玛丽·萨默维尔的儿子)的信中说道:“对数学家来说,涉及的领域广泛并不是什么坏事,事物之间都是相互关联的,我希望能给后代留下一些神经网络微积分方面成果。”让人敬畏的是,十年之前,乔治·布尔也有类似的观点。
巴贝奇和艾达都开始做起翻译,艾达下一步想修改Whewell和Ohm的工作,甚至可能会成为“科学的预言家”。
当然,这其中也有阻碍。比如,作为一个女人,她不能去伦敦的皇家学会图书馆,即使他的丈夫成为其中的一员多亏了她的努力,也不行。但最严重的问题,还是艾达的健康问题。她的身体有很多疾病,但是她乐观地说:“只要耐心的治疗一两年就好了。”
他们的资金也成了问题。巴贝奇的制造计划无休无止,经常有一些新的创意。于是他们不得不求助于她的母亲,这个经常帮倒忙的人。艾达的孩子也长大了,接下来的事情给了她很多锻炼。
艾达和巴贝奇的关系一直不错,他们通信很频繁,虽然谈论更多的是他们的狗和宠物鹦鹉,而不是差分机。1848年,巴贝奇轻率地计划构建一个玩井字游戏的机器,想要为这个项目在全国巡回众筹。艾达劝他放弃。这个主意是和 Albert 王子 讨论他的差分机时想到的,但是从来没有实现。
威廉姆这时正涉足出版方面。他写过例如 《如何将大豆和卷心菜种在同一片地里》 、 《甜菜文化》 这样的报告。1848年,发表了意义较大的文章——比较法国和英国的农业效率。他列举了一系列数据,来说明法国人比英国人差劲的多。
1850 年对艾达来说是重要的一年。她和威廉姆搬到了伦敦另一处居住,为了更好地融入伦敦的科研环境。艾达还去参观了父亲生前在英格兰北部的庄园,感触颇深,为此还和她母亲吵了一架。艾达对赛马赌博更加着迷了,在上面输了很多钱(按照巴贝奇和艾达的性格,建立一个数学模型来赌博不是没有可能,但是没有证据证明他们这么做了。)
1851 年五月,万国工业博览会在伦敦的水晶宫举行。(艾达一月份造访这个地方的时候,巴贝奇还建议道:带上棉袜,软木鞋等等任何可以保暖的东西。)博览会是有关高新科技的,鉴于艾达和巴贝奇都是在这个学术圈的,他们都被邀请了(尽管巴贝奇的地位比他想的低)。会上巴贝奇分发了很多机械谱的副本,最后获了一项奖。
但是一年之内,艾达的健康急转直下。她的医生甚至安慰她,多花点时间去海边吧。最后,她检查出癌症(现在普遍认为,是宫颈癌)。鸦片再也不能给艾达止痛了,她开始尝试大麻。1852年,她写道“我开始认识死亡,他来的那么轻,每时每刻都在靠近,而不是某个是个突然来临。”8月19日,她让巴贝奇的朋友 Charles Dickens 来让看往她,让他读他写的一本关于死亡的书。
她的母亲搬到她家里,给她一个清净的环境。9月1日,艾达做了忏悔,这使巴贝奇非常沮丧。她看起来随时可能会被死神带走,但是她还在坚持,带着巨大的痛苦。三个月之后,最终死于1852年11月27日,享年36岁。护理事业先驱、艾达的朋友南丁格尔( Florence Nightingale ) 写道:“他们说艾达不可能活这么久,如果不是大脑中强劲的生命力,她坚持不了。”
艾达让巴贝奇做她的遗嘱执行人,要求将自己埋在拜伦家族的坟墓——非常让她母亲失望——紧依着自己的父亲(拜伦同样享年36岁,艾达的生命多254天)长眠。艾达的母亲做了一块墓碑,刻有艾达作的一首十四行诗,题为“彩虹”(The Rainbow)。
艾达死后
艾达的葬礼很小,她的丈夫和母亲都没有参加。但是讣告写的很真挚。
威廉姆41年后去世,期间再婚过。她们的大儿子——艾达生前很是头疼——在艾达死前几年加入军队,后来被抛弃了。艾达想他可能是去美国了(因为他1851年在旧金山露面过),但事实上,他26岁在英格兰的造船厂因工作去世。艾达的女儿嫁给了一个狂野的诗人,生活在中东很多年,成为了世界上重要的阿拉伯马饲养员。艾达最年轻的儿子继承了家族头衔,大部分时间都花在家族庄园上。
艾达的母亲死于1860年,即便是死后,她与拜伦的流言蜚语也没有停止,各种文章和书乐此不疲的出版。 Harriet Beecher Stowe 1870 年出版了一本《拜伦夫人无罪》。1950年,艾达的小儿子——基本上是由艾达的母亲抚养长大——出版了一本写了整个故事的书,提到“拜伦勋爵的生活尽是难以启齿之事。”
艾达死后,也有一些关于她本人的流言。有人说她有外遇,有人说她拿重金豪赌。这些都是无中生有之事,可能是因为人们“有其父必有其子”的观念吧。但是不久之后,有人生成她两次挪用家族的珠宝,用在赛马上,价值约为今天的4万英镑。
这件事上艾达的母亲和小儿子反对她并没有什么大碍。1852年9月1日——就是艾达和威廉姆坦白的这天——艾达写到,“作为一个垂死之人,我有一个请求,在我死后,朋友们能不能把手中我寄给你们的信件寄给我的母亲。”巴贝奇拒绝,但是其他人同意了。她的儿子收到信件之后,整理了一下,一并烧毁。
但是还是有数千张关于艾达的文件散落在世界各处。这些通信多像是流水账、约见面、谈论天气或者病情之类的。其中,有巴贝奇抱怨邮政服务;有她在希腊的三个姐妹向她要钱,因为他们死去的弟弟有债务;有Charles Dickens谈论甘菊茶;有和艾达在帕丁顿车站认识的一个人的寒暄。其他文件还有家庭账单,就分析机和其他话题的讨论等等。
巴贝奇后来怎样?
艾达去世18年后,巴贝奇死于1871年。1856年他试过重新研究分析机,但是没有重大进展。发表过一些论文,题目是“灯塔的数据统计”,“人类艺术遗迹和灭绝动物的遗骨”。
1864 ,他出版了自己的自传,《一个哲学家的生命历程》(Passages from the Life of a Philosopher)——一本奇怪又愤世嫉俗的书。有关分析机的章节,由拜伦的一句诗开篇——“人们犯下的错,必将遭到报复(Man wrongs, and Time avenges)”——然后由此展开。其中,还有“戏剧经验”,“旅行技巧”(包括如何在欧洲搞到一辆房车)的章节,最奇葩的是,“街头琐事”章节。巴贝奇称那些街头音乐家在早上六点吵醒了他,耽误了他宝贵的睡眠时间,于是发起了一场运动,反对这些人。有人奇怪为什么他不把精力放在隔音上。这个事件引人关注,又很奇怪,甚至在他死后的讣告上也被提起。
巴贝奇的妻子死后,没有再婚。他最后的时光非常孤独,有一个八卦专栏是这么写的:
他曾经说过,如果能在500年之后生活三天,那么让他立刻死去也没有遗憾了。他死后,大脑被保留了下来,现在仍在展示……
虽然巴贝奇一生都没有完成差分机,但是瑞典一家公司做出来了,甚至在万国工业博览会的时候展示了。巴贝奇死后,很多文件和差分机项目的零件交由他的儿子亨利·巴贝奇少将(Major-General Henry Babbage)。亨利发布了一部分,私自组装了一些。现在,巴贝奇做的差分机在伦敦科学博物馆展览。
重新被发现
巴贝奇死后,有关差分机的工作被遗忘了(1911年 不列颠百科全书 提到过)。机械计算机虽然也有进步,但是逐渐被电动的计算机和电子计算机取代。1940年,当人们真正理解编程的时候,巴贝奇的工作和艾达的笔记才重新被重视起来。
人们才知道“AAL”正是艾达·奥古斯特·洛夫莱斯,是拜伦的女儿。阿兰图灵读过她的笔记,在1950年发布的 图灵测试论文 中称之为“罗浮莱斯夫人异议(Lady Lovelace’s Objection,AI不能做出真正的思考)”。那时关于艾达也只是一大块脚注的内容。
真正发现艾达的价值的人Bertram Bowden,以为英国的核物理雪茄,后来进入计算机工业中,最后成为了科教部部长。在他1953年出版的 《比思考更快》 (是有关计算方面的)一书中,他遇到了艾达的外孙女,得知了艾达的家庭史,有一些是准确的,也有些是不真实的。她推荐他去读一下艾达的论文。Bowden惊喜地发现在艾达外孙女的书《纯种赛马和它的祖先》(Thoroughbred Racing Stock and its Ancestry)中,计算族谱的时候,用到了二进制。艾达在分析机方面没有明显的二进制,用的是十进制。
但是直到1960年,巴贝奇和艾达的知名度并不高。巴贝奇的差分机原型被伦敦科学博物馆保存。但是鉴于我小时候经常去科学博物馆,可以肯定的说,1980年之前,我从来没在那儿见过。1980年,美国国防部将一门命途多舛的编程语言命名为ADA,巴贝奇和艾达的故事才被世人知晓。各种传记也不断出现,而且存在很多错误。最搞笑的是,一些书中提到,巴贝奇用“the problem of three bodies”来暗示巴贝奇、艾达、威廉姆之间浪漫的三角关系,而事实上,他们讨论的是天体学中的三体问题。
公众对于巴贝奇和艾达产生了好奇心,也想知道如果巴贝奇的差分机设计真正实现的话,是什么样子的。于是一个项目应运而生,1991年,经过勇敢的尝试,一个完整的差分机问世了(2000年,添加了打印机),其中,巴贝奇的设计仅仅只有一个错误。让人惊讶的是,这台及其可以正常工作。而且所花费的经费和当时巴贝奇向不列颠政府申请的(算上通胀)一样!
关于分析机,到目前为止,还没有实现,连仿制的也没有。
艾达的笔记
至此,艾达的故事就讲完了,下面我们来讲一下艾达笔记的内容。
开篇非常简明:“发明差分机最初的目的是计算数学表格……”她解释,差分机可以计算六次多项式。但是分析机不同,它要处理的是各种操作队列。她说,“分析机实现的是科学的计算,通过抽象的变量和特性的条件运算,而差分机实现的是一个特定的系列计算……”
作为数学软件工作者,这对我来说是一项鼓舞人心的成果,她接下来指出:“我们可以将其看作是机器分析的代表,通过机器提供的操作和数学符号,我们的工作和这个领域的理论可以更进一步。”
下面,她解释了如何使用打孔纸带来控制分析机。并作出了一句经典的评论,“织布机编织花纹和图案,分析机编织数字和符号。”
接着,艾达讲了操作队列如何在分析机中工作。“操作纸带”定义要进行的操作,“变量纸带”定义变量位置。艾达阐述了“循环”以及“循环的嵌套”(原文中,那时艾达讨论的是cycles和cycles of cycles,现在在计算机术语中叫做loops和nested loops,译注)。并给出了数学形式:
艾达的笔记中,有很多现代的概念。艾达提到“打孔纸带发明者Jacquard的肖像,可以用两万四千个纸带打出来。”然后她讨论了如何使用循环来节省纸带,以及优化计算的价值。最终证明,看似需要330个纸带完成的任务,其实可以用3个完成。
分析机还不能完成计算的时候,艾达就预言将来这台机器的功能不仅仅是计算。作为例子,她讨论了三体问题,但是在当时,得出的计算结果和很多别人的计算相悖。
接下来,是笔记中最精彩的部分。艾达之前就说:“无论如何编程,分析机都不能自己做出决策。它只能完成我们让它做的事情……它的证明只能协助我们证明我们已经懂得的东西。”
艾达的观点,和编程的传统观点不谋而合:工程师通过编程只能做我们已经知道如何去做的工作。但是艾达还指出:将数学公理和公式转化成分析机理解的形式,也会促进这个学科的发展。很多学科就是这样,随着研究的深入,会进入一个更高的境界,就像我经常说的,编程会让一个人对自己的领域了解的更多。
艾达说“将数学公理转化成一种新的形式来记录和使用,反过来也会使这门学科的理论更加完善。”也像我常说的那样,将数学公理转化成可计算的形式,可以帮助一个人对数学理解的更深。
艾达知道,这种机器实现的“科学计算”不会局限于基础数学。例如,她说,如果音高和旋律的科学可以抽象成操作(也就是现在说的程序),那么分析机可以使用这里理论创作出严谨、宏达的音乐。这在1843年,算是了不起的见解了。
伯努利数的计算
艾达的笔记中,最经典的部分就是对伯努利数的计算。此想法源于一封艾达写给巴贝奇的信,1843年七月,艾达在信中说:“我现在为你工作地很努力,简直就像现实的恶魔。”然后她想要一些参考,:我想在我的笔记中,用计算伯努利数来作为分析机工作的例子,请给我一些数据和公式。”
( 图片来自 British Library )
艾达选择用伯努利数来展示分析机是很有意思的一件事。17世纪的时候,人们花费大量的时间计算整数的乘方和——换句话说,根据m和n的不同,计算
的值。伯努利(Jakob Bernoulli)指出,和可以通过关于m的多项式得到,多项式的系数被命名为伯努利数。1713年,伯努利自豪地说,他可以在一刻钟内计算出前10个伯努利数——简化了前人的工作。
今天,用编程语言来实现,瞬间就可以得到结果。
那么艾达是怎么做的呢?首先,对伯努利数进行级数展开:
然后对这个式子整理,引入乘方x,得到关于伯努利数Bn的等式——解即为得到的表。
现在的问题是,如何用分析机来实现计算。首先,艾达用了第奇数个伯努利数都是0(B1除外)的特性,来计算Bn(现在我们叫做B2n)然后从B0开始,用Bn对后面的数进行计算,对得到的结果排序。用现代数学语言描述如下:
在分析机中,通过“操作纸带”定义操作的类型, 操作数由存储(相当于内存,原文是“Store”)给出,位置由“变量纸带”定义。存储中,数字由齿轮组给出,通过转动来代表不同的数字。艾达的计算方法需要两层嵌套循环,通过当时的分析机完成计算,艾达必须将两层循环展开。最后,她成功地计算出B8(她的叫法是B7):
这张执行结果表明,程序执行了25步(外加一个循环)。每一步都显示了是在哪一个纸带上进行的,结果放在了拿一个纸带上。由于缺少循环记号,艾达用一对大括号表示循环。
最后,计算结果在第35行:
通过打印结果来看,第四行存在错误,分子分母上下颠倒了。如果修正这一处错误,结果就和现在的结果一模一样:
下面是对接下来两个伯努利数的计算结果。艾达发现,再往后计算,不需要更多的存储空间(指定变量位置的纸带),只需要更多的操作。
1843 年设计的分析机,理论上可以存储1000个40位的数字,换句话说,可以计算到B50(=495057205241079648212477525/66)。速度也不慢,分析机一秒可以处理7次运算,也就是说,计算到B8需要5秒,计算B50需要1分钟。
一年前我们打破伯努利数世界记录(这个地方的我们指的是原文作者Wolfram,使用的编程语言是自己开发的Wolfram语言,译注)使用的还是艾达的算法。现在出现了利用中国剩余定理(the Chinese Remainder Theorem)的新算法,速度更快一些。
巴贝奇 vs 艾达?
分析机的建造基本上都是巴贝奇的工作,那么艾达做了什么呢?艾达是这个领域的先驱,巴贝奇向她说明了一些设计、例子,她将其进行总结,上升到“大的、广义的、抽象的概念”。
在幸存的巴贝奇的论文中(多年后在他律师的牛皮箱里被发现的),有很多不可思议的分析机方面的内容。从1830年之后,几十年间巴贝奇写了很多“分析机的……”、“数字机器的科学”之类的文章。为什么巴贝奇从来都不发表呢?这就不得而知了。其中,很多都是对分析机的完美的解释,虽然和艾达比起来讲的更枯燥一些。
巴贝奇死后,留下一篇“分析机的历史”,最后由他的儿子完成。其中,列举了“分析机的446种操作”,详细阐述了这些操作(例如除法)是如何在分析机中完成的。日期开始于1830年,19世纪80年代的记录较多,在1843年夏天基本上停止了。
在科学博物馆保存的论文中,有很多关于分析机高级计算的草图。例如,1873年的“等式的第一级化简”:
下面是一些简单的递推关系:
1838 年,两个多项式乘积的系数的计算:
但是,这些没有艾达的计算精确。从中可以看出,巴贝奇确实帮助了艾达,但是艾达是这部分工作的主要工作者。
那么巴贝奇是怎么评论她的呢?在他26年后的自传里,几乎对任何事都是持消极态度。但谈到艾达的笔记时,他说:“我们谈论了不少候选的例子,我只是提供参考,最终还是她自己做决定。为了尽可能多涉及代数的不同问题,我们选了伯努利数。一次艾达给我的修正中,指出了我一个严重的错误。”
当我第一次读到这里的时候,我在想,巴贝奇是不是暗示艾达的笔记都是自己代笔写的。但是再读几次,我觉得巴贝奇只是在谈那些并没有被艾达采用的建议。
巴贝奇的秘密武器
且不说巴贝奇的缺点,他毕竟还是设计出了差分机——就不提分析机了——这确实很了不起。那么他是怎么做到的呢?依我看来,最关键的就是他的机械谱。最初,他在1826年《通过符号表示机器的操作》中提出。总体思想是,将机器操作的细节抽象成符号,表示之间的关系。他给出的第一个例子,是一个水利设备:
接下来是一个时钟的例子,左边是计算时钟的状态改变的过程,右边是他们之间的关系:
通过这种方式,完美地展示了这个系统是如何运行的,和现代的计时示意图比较像,但又不完全一样。巴贝奇在分析机上花了很多年,他的笔记非常复杂,例如下面这种,现在已经不知道其含义了:
巴贝奇广泛地使用这种图表,但是却没有做有关这方面的解释。有关“机械谱”方面的资料就只有在1851年他为万国工业博览会准备的传单,目的是为了使机械组件草图的绘制标准化。
不知什么原因,巴贝奇有关机械符号和图表方面的资料非常少。可能是对1826年人们不支持他的愤恨,也有可能他将其视为秘密,不愿意公开。之后,系统工程师在这方面做了很多努力,可能也计算受到了巴贝奇的启发。
完整的故事
ok ,让我们来回顾一下艾达、巴贝奇和分析机的故事。
查尔斯·巴贝奇是一个有激情的人,有很多想法,其中不乏富有创意的。30岁的时候,产生了通过机器来制作数学表的想法,随后将自己的毕生精力致力于实现这个想法,为此发明了分析机。在工程细节方面很有天分,但是在控制项目方面非常糟糕。
艾达·洛夫莱斯是一位有天分的女子,巴贝奇的好朋友(没有任何证据表明,他们之间有暧昧关系)。也算是帮巴贝奇一个忙,艾达写了有关分析机的文章,并将其发展成更加抽象的概念,还领略到了通用计算的核心思想。
分析机和类似机器是一种具有特定用途的计算机,它的硬件就是为了特定的工作而设计的。有人可能认为,要做不同的工作,就需要各种各样的计算机。事实上这是错的。用通用计算机,通过编程来完成不同的工作,是完全可行的。通用计算的思想让“软件”成为可能,并在20世纪引发了计算机的革命。
Gottfried Leibniz 在17世纪就提出了类似通用计算的哲学观点,但是没有得到发展。巴贝奇的分析机是现在已知的可以进行通用计算的例子。
虽然最开始巴贝奇并没有想这么多,他只是想搞一台可以生成数学表的机器。付出这么多努力进行设计,最后他得到了一台可以通用的计算机。
当艾达开始写有关巴贝奇的机器的内容时,她只想用最通俗的方式对此做出解释,后来看到了更加抽象的东西,最后在通用计算方面做出了不可小觑的贡献。
艾达的工作有一段时间没有引起重视。但是随着数学逻辑的发展,1936年图灵又将通用计算的概念提了出来。20实际40年代电子计算机发明的时候,人们才重新认识到艾达的工作的价值。计算机的发展经历了不同的道路,80年代之前,通用计算的概念还没被广泛接受,最后被证明其不仅是可行的,而且非常实用。
现在已经证实:即使很底层的系统,用最简单的结构,也可以拥有通用计算的能力。虽然差分机没有做到,但是只要在往前走一点点,就可以进行通用计算。所以现在看来,分析机可以进行通用计算也不足为奇。
今天,我们生活在各种各样的软件和硬件中,通用计算的概念似乎是理所应当的:我们当然可以通过安装不同的软件来做不同的事情。但是抽象来说,不是那么回事。当之无愧地说,艾达·洛夫莱斯是提出通用计算概念的第一人,对我们的科技甚至文明的发展做出了巨大贡献。
如果历史可以假设
如果艾达战胜病魔,最后成功地完成分析机,会如何呢?
我坚信他们会成功地造出分析机,可能巴贝奇需要对他的设计做一下改动,但能正常工作不成问题。成品可能会有火车头那么大,大约需要五万个零件。计算精度可以达到30-50位,每4秒可以产生一个结果。
他们会想到用电子计算机来代替机械吗?我觉得很有可能。毕竟,他们都认识Charles Wheatstone——有线电报系统发明者。如果用电线来传输电子信号,而不是机械处理的话,机器的硬件就会简单很多,性能也会大幅提高。
现代计算机简化硬件的另一种重要方式是采用二进制。他们会想到吗?当时的莱布尼茨懂一些二进制,如果乔治·布尔在万国工业博览会遇见巴贝奇之后,能继续深入的话,说不定他们会向这方面发展。直到19世纪中期,为了解决一些问题才被引入。巴贝奇就遇到过用现在的语言可以轻松解决,但是在当时非常麻烦的问题(指的是巴贝奇在自传中提到的“字幕矩阵”(Square word)问题,在 这里 有具体的描述和Wolfram语言实现的版本,译注)。
巴贝奇对分析机的构想是自动生成人类可以使用的表,所以打印结果要么可以自动排班,要么就按格式打印,让人们可以直接使用。同时,他还提出,以机器可读的形式建立一个预处理好的库的想法,有点现代的编程观点。
今天,我们已经不再计算那种数学表了。当我们需要数据的时候,可以即时计算。但是在巴贝奇的年代——那个笨重的机器时代——这种做法是不可想象的。
最后,分析计算是成功的吗?我认为是的。如果艾达的生命可以和巴贝奇一样久,可能有机会参与Herman Hollerith为人口普查设计的基于纸带的电子计算机项目(IBM前身)。分析机也可以走的更远。
Maybe Ada could use the Analytical Engine to—as she imagined—generate music, solve the three-body problem, or even do simulations. If they understand binary, they might be able to simulate a cell generator.
Neither Babbage nor Ada sought commercial interests through these (even as Babbage said, the government only paid salaries to his engineers, but he did not). If the Analytical Engine develops well, will they use it commercially? What is certain is that the government will definitely buy a few units. Maybe there will be something like "cloud computing" to provide services for science, technology, finance, etc. in the Victorian era.
Sadly, none of this will happen. Ada died young and the Analytical Engine was never completed. It was not until the 20th century that machine computing was developed.
Comments on Ada and Babbage
What would it be like to meet Charles Babbage? I thought he would be a good conversationalist. His early life was very idealistic (he wanted to leave something of value to the world); later, he became like Dickens's cynical old man. He often held parties and became prosperous in the upper class society. But during the last days of his life, he spent most of his time in his own house, immersed in books, papers, and unfinished projects.
Babbage basically had nothing positive to say about others. Even at the age of 80, he still criticized things like a child. He also has difficulty concentrating and often has new ideas. The biggest exception is the 50-year effort to automate computing.
What about Ada? In my opinion, Ada is a woman with good eloquence and clear thinking. Although he was born in the upper class, he did not dress gorgeously and despised the old rules. As an adult, he is mentally mature - much more so than Babbage - and has a very thorough view of the world and people.
Like Babbage, she was not short of money and did not need to work for it. But she was ambitious and wanted to do something great. Putting aside the image of a Victorian aristocrat, I think she may have been a geek in life (the word used here is nerd, which can be understood as the image in "The Big Bang Theory", translator), making mathematical jokes , obsessed with science. Her concentration was evident in the months she spent writing her notes.
In terms of mathematics, she also learned a lot of cutting-edge things - probably at the same level as Babbage. However, we do not know the specific research she did, so we cannot make an evaluation. Babbage did some really good work in mathematics.
From her letters, I saw a sophisticated, intelligent, and logical person. There was often some Victorian banter in her words, but there was a profound truth behind them.
Ada also knows her family status. As "Byron's daughter", her ambition may also be related to her father's success, because she is willing to try new things. I couldn't help but connect the scene with her leading the engineers to his father leading the Greek war effort. His father's affairs also had some impact on her, and because of her mother, Ada had been prohibited from studying poetry. But she kept thinking, not just in mathematical areas, but in metaphysical areas .
Ada said her strength lies in her ability to combine metaphysics and science, which she calls "poetic science." This is very relevant to her work - abstracting Babbage's work and metaphysics to the concept of universal calculation.
write at the end
The story of Ada and Babbage has many interesting themes. This is a story of technology and "big picture" thinking. It is a story of friendship. It is also a story of confidence in innovation.
This is also a disaster. A disaster for Babbage, he lost his loved ones and his character made him lose friends and find it difficult to succeed. A disaster for Ada, who became obsessed with the things she loved to the detriment of her own health.
We will never know what kind of person Ada would become. Another Mary Somerville – the famous Victorian scientist? Another Jobs—on the crest of the Analytical Machine wave? Or another Alan Turing - understanding the true meaning of universal computing?
I love this story for a few special reasons. Like Babbage, I spent most of my life pursuing a goal—but unlike Babbage, I saw some results during my lifetime. I hope to learn something profound in this field like Ada did.
It is no small challenge to know everything about Ada, but now I at least know what kind of person Ada was 200 years ago: a person exploring the path of general computing and artificial intelligence.
Nice to meet you, Ada.
For more embedded dry goods, please pay attention to Second-hand Coders
Recommended reading
(Click on the title to jump to read)
Recommended in the past
The most complete information on I2C - (1) Bare metal operation
The most comprehensive I2C information - (2) Driver chapter - Linux-based mpu6050 driver
The most complete information on I2C - (3) Driver Chapter - Kernel Architecture Analysis
Step-by-step tutorial on Linux driver 1-Modular programming
Step-by-step tutorial on Linux driver 2-exporting module parameters and symbols
Step-by-step tutorial on Linux driver 3-character device
Step-by-step tutorial on Linux driver 4-automatically create device nodes
Step-by-step tutorial on Linux driver 5-character device interface ioctl
Teach Linux driver step by step 6-inode, file, file_operations relationship