1. 程式人生 > >先有雞還是先有蛋?先有作業系統,還是先有彙編器?(對計算機本質的探討)

先有雞還是先有蛋?先有作業系統,還是先有彙編器?(對計算機本質的探討)

//當年學微機原理,追著老師問這個問題,老師很耐心,但是回答的也是很含糊,今天看到這個解釋,感覺挺有意思。

這個是以前給別人的回帖,感覺對初學者應該還有點幫助吧,於是就無恥的再貼出來了,大家包涵。

內容開始:

    “這個問題很好,說明摟主是個尋根究底的人,任何求知慾強的人都會通過探索層層深入,最後到最根本的問題。最痛恨一知半解的人亂回答別人的問題,或者找風馬牛不相及的答案糊弄人!這樣的人就別搞技術了,去搞政治更合適!

你的困惑感應該和蛋雞問題類似,到底是先有作業系統還是先有彙編器?其實只要對計算機史瞭解的話就不會迷惑了。原始的電子計算機是沒有作業系統也沒有彙編器的,那時程式設計是靠寫一條條機器指令(就是高低電位組成的訊號)進行的,沒多久,出現了組合語言,就是用符號來表示原本的指令由程式設計師寫出這些符號指令,再由其他人對錶翻譯成真正的機器指令。這就是所謂的手工彙編。後來出現了用程式來代替人的查表,就是現在的機器彙編,從此現在意義上的組合語言誕生。

    執行彙編程式並不一定要作業系統,只要把程式載入到記憶體,然後cpu逐條執行就可以了,而作業系統也未必非要組合語言來寫,也可以用機器指令寫的。也就是說他們在邏輯上並非一定的因果關係。所以歷史上也沒有明確的先後關係,是同時交錯進行的。那時沒有作業系統的概念,只是一個個工具程式而已。

    你的困惑還在於最初程式是如何輸入進計算機的,現在要把一個程式載入到記憶體,需要藉助別的程式,那這個“別的程式”又是怎麼到記憶體裡的呢?還是蛋雞問題。其實,最早把程式加入計算機裡的方法是搬開關,一位一個開關來代表高低電位。後來打卡片(和紙帶),再用轉換器讀入。再後來出現了磁介質,儲存和載入靠程式對磁介質讀寫來完成,這就不需要藉助體力和外部裝置了,儲存和載入都在計算機內部完成。那麼這個“最初的載入程式”當然不是靠程式載入的,是靠人力載入的(可以搬開關,也可以打孔。)

    再後來呢,由於輸入彙編指令太累,所以有人就開發了一中程式,叫“自動程式設計器”,就是輸入一條高階指令,由那個程式解釋成多條機器指令,這就是後來的高階語言。

    ps:其實計算機的本質就是一條條電訊號(機器指令)來推動執行的,和一臺內部有很多齒輪的精密大鐘沒什麼兩樣,都是機器!什麼作業系統啦,什麼程式啦,都是我們抽象後給他們起的名字,他們本質還是一個個機器指令,注意,我很反對某些人說機器指令就是1、0數字組成的,這很不確切容易使人誤解(可能他自己就誤解了),應該說是由高低電位組成的,只不過我們把高電位看作1,低電位看作0。我還很鄙視某些缺乏探索精神的所謂的“技術人員”,在他們看來好像在鍵盤上按一個鍵,然後顯示器上顯示出字元,這麼一個簡單的過程是理所應當的,不值得探索,殊不知就是這個簡單的過程也是很多很多內部指令的結果,這些都不思考更不要指望他們去思考“最初的作業系統”類的問題了。一句話,沒有探索的慾望和好奇心,就不要搞研究!”

結束!

相關推薦

還是作業系統還是彙編計算機本質探討

//當年學微機原理,追著老師問這個問題,老師很耐心,但是回答的也是很含糊,今天看到這個解釋,感覺挺有意思。 這個是以前給別人的回帖,感覺對初學者應該還有點幫助吧,於是就無恥的再貼出來了,大家包涵。 內容開始:     “這個問題很好,說明摟主是個尋根究底的人,任何求知慾強的

SQL Server 2017 正式發布:同時支持 Windows 和 Linux現在看下來當年那德拉的“雲優先移動優先”是遠見的而且是一系列的措施和產品相配合的只是需要一點時間而已。真是佩服!!

suse 中新 新的 ada 開發 tap 安全性 adding 互連 微軟在去年 3 月首次對外宣布了 Linux 版的 SQL Server,並於今年 7 月發布了首個公開 RC 版。前幾日在美國奧蘭多召開的微軟 Ignite 2017 大會上,微軟宣布 SQL Ser

Java 寫n個人圍成一圈順序排號從第一個人開始報數從1~3報數 凡報到3的人退出圈子問最後留下的人原來排在第幾號。

package tests; import java.util.ArrayList; import java.util.List; import java.util.Scanner; /** * 題目描述, *Java 寫有n個人圍成一圈,順序排號,從第一個人開始報數(從1~3報數), *凡報到3的

【Python能幹嘛】爬取微信好友頭像完成馬賽克拼圖千圖成像

馬賽克拼圖 何謂馬賽克拼圖(千圖成像),簡單來說就是將若干小圖片平湊成為一張大圖,如下圖路飛一樣,如果放大看你會發現裡面都是一些海賊王裡面的圖片。 Our Tragets 爬取所有微信好友的頭像

SmartCode.ETL 這不是還是的問題!

繼國慶節 SmartCode 正式版(SmartCode.Generator)釋出之後,SmartCode 迎來了新的能力 SmartCode.ETL ! SmartCode 正式版從開始釋出就從未說過自己僅僅是個程式碼生成器,這點上從我第一次宣佈SmartCode正式開源的文章就可以說明:

FF陷\"\"困局 賈200萬元FF91量…

“90後”女大學生放棄北大保送復旦!她到底有多厲害?  東北網12月6日訊(記者 姜姍姍) 在東北農業大學有這樣一個自強不息的女大學生,她放棄北大直博被保送到復旦大學藥學院。她本科期間獲得國家獎學金、國家勵志獎學金、新東方自強獎學金、第一屆全國大學生生命聯賽國家二等獎……被評為黑龍江省“三好學生”。她就是生命

用 C# 編寫 C# 編譯器還是

前段時間翻譯了一篇文章 微軟是如何重寫 C# 編譯器並使它開源的,文章講了微軟用 C# 重寫 C# 編譯器的坎坷路,引發了一些童鞋的思考:用 C# 編寫 C# 編譯器(Roslyn),那麼 C# 編譯器本身是由誰來編譯的?C# 語言編寫了 C# 編譯器,而 C# 語言又是由 C# 編譯器編譯的,這不就是先

【設計模式】描述還是

這裡有點疑問,書上說的是蛋繼承雞。從功能上說可能雞繼承蛋更合適,雞比蛋多了好多功能。另外這裡還缺Cock#include <iostream> using namespace std; enum TYPE

用C#寫C#編譯器還是

前段時間翻譯的一篇文章 微軟是如何重寫C#編譯器並使它開源的,文章講了微軟用C#重寫C#編譯器的坎坷路,引發了一些童鞋的思考:用C#編寫C#編譯器(Roslyn),那麼C#編譯器本身是由誰來編譯的?C#語言編寫了C#編譯器,而C#語言又是由C#編譯器編譯的,這不就是先有雞還是

六. 還是?--SLAM

在機器人發展早期,人們已經開始研究移動機器人的定位問題。按正常思維來說,機器人想要知道自己位置,或者從A點走到B點,需要先有一張地圖,然後用演算法在地圖上先規劃出路線,然後機器人再沿著規劃出來的路線走。但問題來了,對於一個新環境,機器人就需要先構建一個地圖,但構建地圖的過程中

還是終結論

大約在2-3億年前,地球上還沒有人類,但已經有生物開始在地球上存在了,最早存在地球上的生物是海洋生物,那時地球上可能還沒有動物.就在那個時期地球上大面積的火山噴發,大量的火山岩漿流入大海,經過長時間的流入,在這個火山附近的海水產生了化學反應,在這樣的火山高頻繁發生時期大約又過了上幾千萬年時間,這時海里出現了各

還是?相互引用的奇遇!

"世界上到底是先有雞後有蛋,還是先有蛋後有雞?"這是一個古老的哲學命題。 幾千年來,許多哲人都曾試圖解答這個問題,然而又都找不出令人信服的論據,所以直至今天,這個問題仍然沒有定論。 --在程式設計的世界裡,也是有著這麼一個傳說:兩個類相互引用,那到底是先引用哪個類呢? 剛

還是雞蛋

我認為是先有雞。你肯定會說那這雞是哪來的?我不會說是雞蛋。說了就成了先有雞蛋了,而你又問這雞蛋是哪來的,這樣就無始無終了。 我不說是雞蛋,那我怎麼回答?回答了,那就是我的理由了。且看: 很久很久以前,那時候沒有雞,也沒有雞蛋。但有雞的祖先,但它不叫雞,我們假設叫它雞祖吧。雞祖

巨坑:瀏覽器在短時間內對於同一個請求的處理等待上一個請求完成後再處理下一個請求導致在測試異步時誤導代碼問題。

例子 red count 時間 ble http tab 問題 結束 例子:   tornado後端異步處理(模擬異步處理20秒)      瀏覽器請求接口:http://192.168.1.98:1104/test         然後又打開一個table,請求同一個接口

引發RES狀態的原因面經沒見考但是我覺得還是挺重要的整理在這裡以後需要就來看一眼

  情況一:服務沒開啟成功 比如說伺服器要開啟80埠,由於某種原因,我們並沒有開啟這個服務。應用程式預設尋找80埠,但是找不到對應的服務,此時底層會給服務傳送一個RST   情況二:請求超時(程式bug引起) 請求超時時。當連線的處理時間超過了設定

當發現你的OpenStack虛擬機器網路問題不妨試一下這16個步驟

1. Security Group全部開啟,這是最基本的,但是很多人容易忘記 其實遇到過無數這種場景了,Debug了半天網路問題,各種手段都用上了,最後發現安全組竟然沒有開啟。   2. 通過介面檢視虛擬機器的log,也可以在compute節點上檢視console.log檔案,看看裡面是否有DHCP

QT in VS 多語言實現中英文切換每個步驟都截圖只有UTF8才能讓Qt語言家正確讀取。qApp->removeTranslator然後installTranslator每個類都要寫上槽函數RetranslateUI

har hang 刷新 編碼方式 enum utf 工具 orm 中英文切換 最近項目需要軟件具有中英文雙語切換功能,而QT又自帶此功能,現將實現方式記錄下來。 說到中英文切換,少不了要了解QT的內部編碼方式。在此就不詳述QT編碼方式了,具體可參考 徹底弄懂Qt的編碼。只需

Windows 觸控式螢幕的 LBUTTONDOWN不單獨響應必須MOUSEMOVE訊息才會LBUTTONDOWN

自己的程式是一個影象處理軟體,裡面要實現影象的拖動功能,程式在滑鼠操作的情況下,完全正常。當滑鼠點選在一張圖片上,然後移動,則選中的影象會跟隨滑鼠移動。但是用手指在觸控式螢幕上操作的時候,圖片無法移動。仔細觀察現象後,發現是因為手指單擊這訊息沒有響應,所以後續移動操作自然無

切勿臨渴再掘井需未雨綢繆

2018年11月6日下午,資訊工程系以《切勿臨渴再掘井,還需未雨先綢繆》為主題,舉行了2019年全國職業技能大賽和藍橋杯大賽動員大會,本次動員會資訊工程系計算機應用專業、移動互聯專業特色班和普通班一共200多名學生參加,主要目的號召同學們踴躍報名參加2019年全國職業技能大賽和“藍橋杯”軟體專業人才

《偶像練習生》、《創造101》現象級的爆發能在中國出現嗎?【文末】...

【資料猿導讀】2018年中國“偶像經濟”元年已經成行業的新共識,被推向了前所未有的熱度。來自中泰