Bits
(位), Bytes
(字節), 晶體管
, 邏輯門
, 操做系統
, 虛擬現實
, 機器人
程序員
經過一層層的抽象,來作出複雜操做。算法
最底層的1
和0
, 到邏輯門
, CPU
, 操做系統
, 互聯網
。編程
目的:
瞭解計算機在你的人生,以及社會中扮演什麼角色。
計算機是人類發展史上最偉大的發明,是怎麼開始的; 它對將來還會有更大印象。函數
Babbage
工做室外面的街頭音樂家很吵,很影響他幹活。Babbage
於1871年去世,當時分析機還沒完成。Carrie Anne
是追星族!Lovelace
寫的分析機筆記是第一個算法。Ada Lovelace
是第一位計算機程序員。Charles
"計算機之父"Babbage
設計了第一個可編程計算機。工具
Tommy Flowers
和他的團隊在11個月內作出"巨像1號"。
"巨像"計算機是第一個可編程電子數碼計算機,建造出來是爲了破解德國"洛倫茨"加密機。
圖靈的Bomba
是電子機械密碼破解機,但不算第一臺計算機。學習
樹莓派是便宜的單板計算機,旨在推動計算機基礎學習。Arduions
用於快速製做嵌入式設備原型。
2016年7月, 7-11用Flitey
無人機進行了美國第一次合法的無人機送貨。ui
提到的設備:算盤 -> 步進計算器 -> 差分機 -> 分析機 -> 打孔卡片製表機加密
Computer
從指代職業變成指代機器。Charles Babbage(計算機之父)說:「隨着知識的增加和新工具的誕生,人工勞力會愈來愈少」spa
打孔片製表機
計算機的價值:
能夠提高勞動力以及數據密集型任務,來提高利潤。操作系統
知足會計,保險評估和庫存管理等行業,Hollerith成立了製表機器公司,在1924年與其餘機械製造商合併,成爲了「國際商業機器公司」(簡稱IBM)
提到的設備:繼電器 -> 真空管 -> 晶體管
一戰,二戰(運輸能力),登錄其它星球計劃,產生的複雜度的增高致使數據量暴增,須要更多自動化,更強的計算能力。 櫃子大小的計算機變成房間大小。(缺點:維護費用高,並且容易出錯)
Mark1號
Bug
一詞來源:
1947年9月,哈佛Mark 2號的操做員從故障的繼電器中,拔出一隻死蟲。Grace Hopper曾說:「從那時起,每當電腦出現了問題,咱們就說它出了bug(蟲子)」
繼電器
+1
)。缺點:速度慢,齒輪磨損,難以維護。
真空管
在1904年,英國物理學家「約翰 安布羅斯 弗萊明」開發了一種新的電子組件,叫「熱電子管」。把二個電極裝在一個氣密的玻璃燈泡裏,這是世界上第一個真空管。
需求是:一個能開關電流的東西。而二極管只能作到開。
在不久以後的1906年,美國「李 德福雷斯特」,在「弗萊明」設計的兩個電極之間,加入了第三個「控制」電極。
缺點:它們很脆弱,會燒壞。
意義:從機電轉向電子
第一次大規模使用真空管的計算機是「巨人1號」,由工程師Tommy Flowers設計, 完工與1943年12月。「巨人1號」在英國的「布萊切利園」,用於破解通訊。「巨人1號」有1600個真空管,總共造了10臺巨人計算機,來幫助破解密碼。 「巨人1號」被認爲是第一個可編程的電子計算機。
編程方法是:把幾百根電線插入插板(相似老電話交換機),雖然「可編程」,但仍是要配置它。
ENIAC
:
電子數值積分計算機「ENIAC」,幾年後在1946年,在「賓夕法尼亞大學」完成建造。這是世上第一個真正的通用,可編程,電子計算機。
爲了下降成本和大小,同時提升可靠性和速度,須要一種新的電子開關。
晶體管
1947年,貝爾實驗室科學家發明了晶體管,一個全新的計算機時代誕生。
晶體管的物理學至關複雜,涉及到量子力學。
晶體管圖片:
現在,計算機裏的晶體管小於50納米,而一張紙的厚度大概是10萬納米,晶體管不只小,還超級快,每秒能夠切換上百次,而且能工做十幾年。
開始抽象,不用管底層細節,把精力用來構建更復雜的系統。
二進制
計算機最先是機電設備,通常用十進制計數。好比:用齒輪數來表明十進制,再到晶體管計算機。
只用開/關兩種狀態也能夠表明信息,叫作二進制。
爲何使用二進制:
true
和false
,兩個值就夠了。電路閉合,電流流過,表明"真"。二進制也能夠寫成1和0,而不是true
和false
,只是不一樣的表達方式。布爾,他有興趣用數學式子,擴展亞里士多德基於哲學的邏輯方法,布爾用 邏輯方程 系統而正式的證實真理(truth
)。在「常規」代數裏,變量的值是數字,能夠進行加法或乘法之類的操做,但在布爾代數中,變量的值是true
和false
能進行邏輯操做。
布爾代數中有三個基本操做:NOT
,AND
和OR
布爾邏輯
NOT:NOT
操做把布爾值反轉,把true
進行NOT
就會變成false
,反之亦然。
晶體管能夠很容易實現NOT
操做,晶體管只是電控制的開關。
有3根線:2根電極和1根控制線。
控制線通電時,電流就能夠從一個電極流到另外一個電極。
1根控制線做爲INPUT
, 2根電極做爲OUTPUT
能夠把控制線,看成輸入(INPUT
),底部的電極,看成輸出(OUTPUT
)。因此1個晶體管,有一個輸入和一個輸出。
若是打開輸入(INPUT ON
)輸出也會打開(OUTPUT ON
)由於電流能夠流過。
若是關閉輸入(INPUT OFF
)輸出也會關閉(OUTPUT OFF
)由於電流沒法經過。
改形成NOT GATE
:
與其把下面那根線看成輸出,能夠把輸出放到上面。
若是打開輸入,電流能夠流過而後「接地」;輸出就沒有電流,因此輸出是OFF
。用水來舉例,就像家裏的水都從一個大管子留走了,打開淋浴頭一點水也沒有。因此是輸入是on
,輸出是off
。
若是當輸入是off
,電流無法接地,就流過了輸出, 因此輸入是off
,輸出是on
。
之因此叫作門
,是由於它能控制電流的路徑。
NOT GATE
畫法:
三角形前面加一個圓點
AND:
AND
操做有2個輸入,1個輸出。
若是2個輸入都是true
,輸出纔是true
爲了實現AND GATE
,須要2個晶體管連在一塊兒。這樣有2個輸入和1個輸出。
若是隻打開A,不打開B,電流沒法流到OUTPUT
,因此輸出是false
。
若是隻打開B,不打開A,也同樣,電流沒法流到OUTPUT
。
只有A和B都打開了,OUTPUT
纔有電流。
AND GATE
畫法:
用D表示
OR:
只要2個輸入裏,其中1個是true
,輸出就是true
。
只有2個輸入都是false
,OR
的結果纔是false
。
實現OR GATE
除了晶體管還要額外的線。不是串聯起來,而是並聯。
而後左邊這條線有電流輸入,用「小拱門」表明2條線沒有鏈接在一塊兒,只是跨過而已。
若是A和B都是off
,電流沒法流過,因此輸出是off
。
若是打開A,電流能夠流過,輸出是on
;若是隻打開B也同樣。
若是A,B都on
,結果是on
。
A和B都是off
的狀況:
只打開A或者,只打開B的狀況:
OR GATE
畫法:
用太空船表示
XOR異或
XOR
就像普通的OR
,但有一個區別:
若是2個輸入都是true
,XOR
輸出false
。
想要XOR
輸出true
,一個輸出必須是true
,另一個必須是false
。
用晶體管實現XOR
門:
使用OR GATE
, AND GATE
, NOT GATE
3種門來作XOR
。
OR
門,由於OR
和XOR
的邏輯表很像。true
時,OR
的輸出和想要的XOR
輸出不同,須要的是false
,因此要加多個門。AND
門,輸入是true
和false
,輸出會是true
,也不是所須要的,但若是在AND
的輸出加個NOT
就能夠把true
翻轉成false
了。AND
門,而後AND
門的2個輸入分別來自NOT
和最原始OR
,AND
會收到false
和true
,由於AND
須要兩個輸入都爲true
,都結果纔是true
因此輸出是false
。
XOR
畫法:
一個OR
門 + 一個笑臉