自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

50年前的程序員女神,用代碼把人類(lèi)送上月球

開(kāi)發(fā) 前端
飛行控制軟件不負(fù)眾望,它忽略了那些低優(yōu)先級(jí)的情況,專(zhuān)注于最高優(yōu)先級(jí)的任務(wù),引導(dǎo)著阿姆斯特朗和奧爾德林穿過(guò)坑坑洼洼的月球表面,成功著陸。

?1969年7月20日,經(jīng)過(guò)4天飛行的阿波羅11號(hào)終于來(lái)到了最關(guān)鍵的時(shí)刻:降落到月球表面。

就在這個(gè)時(shí)候,飛船計(jì)算機(jī)突然開(kāi)始閃爍報(bào)警。

全球6億人在觀看電視直播,NASA飛行控制中心的氣氛讓人窒息。

人類(lèi)的首次登月計(jì)劃面臨著艱難的抉擇:降落還是放棄。

幸運(yùn)的是,控制中心的人對(duì)飛行控制軟件有著高度的信心,指示阿波羅11號(hào)繼續(xù)降落。

圖片

飛行控制軟件不負(fù)眾望,它忽略了那些低優(yōu)先級(jí)的情況,專(zhuān)注于最高優(yōu)先級(jí)的任務(wù),引導(dǎo)著阿姆斯特朗和奧爾德林穿過(guò)坑坑洼洼的月球表面,成功著陸。

事后分析發(fā)現(xiàn),是因?yàn)橐粋€(gè)開(kāi)關(guān)被放置到了錯(cuò)誤的位置,導(dǎo)致計(jì)算機(jī)進(jìn)入了過(guò)載的狀態(tài)。 

那個(gè)只有2K內(nèi)存的計(jì)算機(jī)既得執(zhí)行降落所需的計(jì)算,又得處理開(kāi)關(guān)錯(cuò)誤引起的額外數(shù)據(jù)。

但是這個(gè)程序居然實(shí)現(xiàn)了搶占式任務(wù):用高優(yōu)先級(jí)的著陸任務(wù)打斷了低優(yōu)先級(jí)的,實(shí)在太厲害了。

這個(gè)飛行控制軟件是瑪格麗特·漢密爾頓和她的團(tuán)隊(duì)編寫(xiě)的。

圖片

(代碼等身)

這無(wú)疑是瑪格麗特人生的最高光時(shí)刻。

后來(lái)樂(lè)高公司根據(jù)那張著名的照片開(kāi)發(fā)了樂(lè)高玩具套裝:NASA中的女性,瑪格麗特成為其中的一員。

1、2K內(nèi)存的計(jì)算機(jī)

瑪格麗特1936年出生于美國(guó)印第安納州,后來(lái)全家搬到了密歇根,1958年她獲得了密歇根大學(xué)的數(shù)學(xué)學(xué)士學(xué)位,隨后她在MIT找了一份工作,成為了一名程序員,開(kāi)發(fā)氣象預(yù)測(cè)軟件。

這是軟件開(kāi)發(fā)的蠻荒歲月,計(jì)算機(jī)科學(xué)和軟件工程還沒(méi)有建立,一切全靠程序員在工作的實(shí)踐中學(xué)習(xí)。

1961年,瑪格麗特開(kāi)始參與國(guó)防項(xiàng)目SAGE,協(xié)助開(kāi)發(fā)了美國(guó)第一個(gè)空中防御系統(tǒng),通過(guò)雷達(dá)來(lái)搜索飛機(jī)。

瑪格麗特在這個(gè)項(xiàng)目上展示自己的天賦:“當(dāng)一個(gè)新人進(jìn)入項(xiàng)目時(shí),總是會(huì)被分配一些沒(méi)有人能搞清楚的程序,我也被分了一個(gè)非常怪異的程序,最早寫(xiě)程序的人甚至用希臘語(yǔ)和拉丁語(yǔ)來(lái)寫(xiě)注釋?zhuān)〔贿^(guò)我還是成為了第一個(gè)讓這個(gè)程序跑起來(lái)的人!”

正是在SAGE項(xiàng)目上的成就讓瑪格麗特的人生發(fā)生了轉(zhuǎn)折。

1965年,她的丈夫在當(dāng)?shù)貓?bào)紙上看到了一則消息:NASA正在尋找程序員,開(kāi)發(fā)程序,把人類(lèi)送上月球。 

圖片

瑪格麗特非常興奮:“哇,那我一定得去!”。 

這一年瑪格麗特28歲,加入了阿波羅項(xiàng)目,成為了項(xiàng)目的第一個(gè)程序員。

阿波羅項(xiàng)目需要開(kāi)發(fā)一個(gè)精簡(jiǎn)的計(jì)算機(jī)AGC(Appollo Guidance Computer),用來(lái)控制登月飛船。

這是一件艱難的任務(wù),因?yàn)楫?dāng)時(shí)的計(jì)算機(jī)通常要占據(jù)一間屋子,但是AGC被限制到只有一立方英尺那么大。

圖片

項(xiàng)目組被分為兩撥人,一撥設(shè)計(jì)硬件,另外一撥開(kāi)發(fā)軟件。 

瑪格麗特自然成為了軟件組的負(fù)責(zé)人。

AGC只有可憐巴巴的2K內(nèi)存,36K的ROM,更匪夷所思的是那個(gè)ROM是Core rope memory(芯繩存儲(chǔ)器?),也就是說(shuō),0和1是通過(guò)電線和微小的環(huán)形磁芯表示。

電線穿過(guò)磁芯表示1,沒(méi)有穿過(guò)表示0。

我們現(xiàn)在想把程序存盤(pán),只需要按一個(gè)Ctrl + S就可以,但是想把阿波羅飛行軟件存盤(pán),只有一種辦法:像紡織工那樣細(xì)心地把電線和磁芯給編織起來(lái)。

這個(gè)工作不能出一點(diǎn)兒差錯(cuò),要不然,無(wú)論代碼寫(xiě)得多么正確,最終都會(huì)功虧一簣。

事實(shí)上,這個(gè)工作的確是由新英格蘭紡織廠的女工們完成的,繩索存儲(chǔ)器被一些程序員戲稱(chēng)為L(zhǎng)ittle Old Lady memory。

2、軟件工程

在NASA工作的大多數(shù)軟件工程師都是男性,有人在家里照顧孩子,但是瑪格麗特沒(méi)有辦法,在周末和晚上她會(huì)帶女兒勞拉來(lái)到辦公室。

勞拉經(jīng)常看到她的媽媽在飛船中扮演宇航員來(lái)測(cè)試軟件,好奇心大起,也想試一試,結(jié)果突然間整個(gè)系統(tǒng)崩潰了,原來(lái)勞拉在飛船“飛行”期間,選擇了一個(gè)叫做P01的功能。

圖片

瑪格麗特意識(shí)宇航員也有可能犯類(lèi)似錯(cuò)誤,希望修改軟件防止它。 

但是NASA的人說(shuō),宇航員都是訓(xùn)練過(guò)的,絕對(duì)不會(huì)犯類(lèi)似錯(cuò)誤。當(dāng)然,修改軟件也非常難,想想芯繩存儲(chǔ)器!

但是,在阿波羅8號(hào)繞月飛行的時(shí)候,宇航員恰恰犯了和她女兒一樣同樣的錯(cuò)誤,飛船在太空“迷路”,無(wú)法將宇航員送回地球。得知消息的瑪格麗特帶領(lǐng)團(tuán)隊(duì),突擊9個(gè)小時(shí),終于讓阿波羅8號(hào)回到正常軌道。

圖片

(支援阿波羅8號(hào))

此后,軟件都內(nèi)置了保護(hù)功能,防止類(lèi)似事件的發(fā)生。 

瑪格麗特開(kāi)始將整個(gè)阿波羅任務(wù)視為一個(gè)系統(tǒng),這個(gè)系統(tǒng)由3部分組成:軟件,硬件,人。

在開(kāi)發(fā)飛行控制軟件的過(guò)程中,瑪格麗特創(chuàng)造了“軟件工程”這一術(shù)語(yǔ),她要賦予“軟件”的合法性,就像硬件以及其他類(lèi)型的工程一樣,構(gòu)建軟件的人也應(yīng)該得到應(yīng)用的尊重。

在剛開(kāi)始的時(shí)候,大家認(rèn)為這是一個(gè)笑話:軟件開(kāi)發(fā)是工程嗎? 

隨著時(shí)間的推移,NASA逐漸意識(shí)到,軟件工程會(huì)成為它們的重要工具,能夠搶先蘇聯(lián)一步完成登月。

圖片

3、除了成為先行者別無(wú)選擇

“回想起來(lái),我們是世界上最幸運(yùn)的人,除了成為先行者別無(wú)選擇” ---瑪格麗特·漢密爾頓

瑪格麗特就是軟件工程領(lǐng)域的先行者,開(kāi)發(fā)阿波羅飛行軟件這種對(duì)正確性、可靠性要求極高的軟件,沒(méi)人任何經(jīng)驗(yàn)可以遵循,沒(méi)有任何學(xué)??梢詫W(xué)習(xí),軟件不僅要工作,而且必須第一次就正確工作。軟件不僅要可靠,而且必須能進(jìn)行實(shí)時(shí)的錯(cuò)誤檢測(cè)和恢復(fù)。

瑪格麗特帶領(lǐng)團(tuán)隊(duì)出色地完成了這個(gè)軟件,在關(guān)鍵時(shí)刻把人類(lèi)送上了月球。

2016年11月22日,瑪格麗特獲得了奧巴馬總統(tǒng)頒發(fā)的總統(tǒng)自由勛章,以表彰她在阿波羅登月任務(wù)開(kāi)發(fā)機(jī)載飛行軟件所做的工作,以及對(duì)軟件工程的基礎(chǔ)性貢獻(xiàn)。

圖片

瑪格麗特說(shuō):當(dāng)我想了解新事物或者做新東西的時(shí)候,一定不要讓恐懼成為障礙。

一個(gè)人不應(yīng)該害怕說(shuō)“我不知道”,“我不理解”,或者問(wèn)“愚蠢的問(wèn)題”。

即使事情看起來(lái)不可能,即使所謂專(zhuān)家說(shuō)這不可能,也要繼續(xù)下去。

不要害怕犯錯(cuò),只有敢于失敗的人才能取得更大的成就。?

責(zé)任編輯:武曉燕 來(lái)源: 碼農(nóng)翻身
相關(guān)推薦

2015-10-23 10:53:39

代碼航天程序員

2019-07-11 08:53:11

代碼開(kāi)發(fā)程序員

2021-05-14 09:10:20

腦機(jī)接口機(jī)器人工智能

2021-04-20 12:26:35

SpaceX月球

2020-05-25 14:58:36

程序員自動(dòng)化編碼

2020-01-13 10:23:08

程序員技能開(kāi)發(fā)者

2019-12-24 09:25:09

程序員技能開(kāi)發(fā)者

2015-06-19 15:21:59

程序員

2023-11-06 07:19:11

程序員GitHub社交媒體

2020-10-16 19:07:33

Windows 10微軟回應(yīng)

2022-08-01 09:43:19

程序員Googlefacebook

2014-07-14 10:26:02

JQueryJQuery插件

2013-05-31 09:05:47

2019-04-16 15:00:13

前端程序員薪資

2009-07-08 09:08:37

2017-03-13 09:07:05

測(cè)定代碼基因

2016-04-20 10:41:08

VR虛擬現(xiàn)實(shí)

2020-08-13 13:45:08

程序員技能開(kāi)發(fā)者

2018-07-04 13:00:58

雷軍代碼程序員

2011-03-07 15:38:33

3月編程語(yǔ)言排行榜
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)