先有雞還是先有蛋?先有作業系統,還是先有彙編器?(對計算機本質的探討)
//當年學微機原理,追著老師問這個問題,老師很耐心,但是回答的也是很含糊,今天看到這個解釋,感覺挺有意思。
這個是以前給別人的回帖,感覺對初學者應該還有點幫助吧,於是就無恥的再貼出來了,大家包涵。
內容開始:
“這個問題很好,說明摟主是個尋根究底的人,任何求知慾強的人都會通過探索層層深入,最後到最根本的問題。最痛恨一知半解的人亂回答別人的問題,或者找風馬牛不相及的答案糊弄人!這樣的人就別搞技術了,去搞政治更合適!
你的困惑感應該和蛋雞問題類似,到底是先有作業系統還是先有彙編器?其實只要對計算機史瞭解的話就不會迷惑了。原始的電子計算機是沒有作業系統也沒有彙編器的,那時程式設計是靠寫一條條機器指令(就是高低電位組成的訊號)進行的,沒多久,出現了組合語言,就是用符號來表示原本的指令由程式設計師寫出這些符號指令,再由其他人對錶翻譯成真正的機器指令。這就是所謂的手工彙編。後來出現了用程式來代替人的查表,就是現在的機器彙編,從此現在意義上的組合語言誕生。
執行彙編程式並不一定要作業系統,只要把程式載入到記憶體,然後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年中國“偶像經濟”元年已經成行業的新共識,被推向了前所未有的熱度。來自中泰