記住一點:在計算機裡,負責執行二進位制機器碼的是CPU,CPU是一個硬體。作業系統是一個軟體,它也是需要被搞成二進位制機器碼被CPU執行的。這就引出了一個問題:執行機器碼程式是否必須要有作業系統才行?答案是否定的,沒有作業系統的計算機照樣可以執行。你看早期的電子管計算機,那時候的程式都是女程式設計師們(沒錯,那個年代很多程式設計師就是女性)用打孔機把機器碼打成紙帶,然後直接錄入到機器硬體裡執行的,簡單粗暴,根本不需要作業系統。那麼,既然機器碼沒有必要透過作業系統來執行,為什麼現在的計算機一定要搞個作業系統呢?主要目的就是為了:方便。首先作業系統這個東西主要是面向使用者的,即便是有專業背景的科研人員/工程人員,讓他們直接操作計算機裸機,也是學習代價很高很勞心費力的,有個作業系統,能提供一個命令環境或者介面讓他們操作,這個會大大提高電腦的使用效率;其次,從程式設計的角度來說,作業系統提供了一系列基礎的系統API,供程式設計師使用,比如讀磁碟,寫磁碟,響應滑鼠中斷什麼的,這就讓系統程式設計師寫程式的時候不用啥都從零做起,而是有很多現成的工具可用,總的來說還是為了提高效率。如果沒有作業系統,用機器碼直接硬寫所有程式,這在理論上是可以做到的,但是情況就會變成這樣,你明明只是要做一個加法程式,但是必須要從機器的bootloader開始做起,處理各種中斷,記憶體,顯示,I/O,全部搞妥了才能做一個加法顯示在螢幕上。這樣累不累
記住一點:在計算機裡,負責執行二進位制機器碼的是CPU,CPU是一個硬體。作業系統是一個軟體,它也是需要被搞成二進位制機器碼被CPU執行的。這就引出了一個問題:執行機器碼程式是否必須要有作業系統才行?答案是否定的,沒有作業系統的計算機照樣可以執行。你看早期的電子管計算機,那時候的程式都是女程式設計師們(沒錯,那個年代很多程式設計師就是女性)用打孔機把機器碼打成紙帶,然後直接錄入到機器硬體裡執行的,簡單粗暴,根本不需要作業系統。那麼,既然機器碼沒有必要透過作業系統來執行,為什麼現在的計算機一定要搞個作業系統呢?主要目的就是為了:方便。首先作業系統這個東西主要是面向使用者的,即便是有專業背景的科研人員/工程人員,讓他們直接操作計算機裸機,也是學習代價很高很勞心費力的,有個作業系統,能提供一個命令環境或者介面讓他們操作,這個會大大提高電腦的使用效率;其次,從程式設計的角度來說,作業系統提供了一系列基礎的系統API,供程式設計師使用,比如讀磁碟,寫磁碟,響應滑鼠中斷什麼的,這就讓系統程式設計師寫程式的時候不用啥都從零做起,而是有很多現成的工具可用,總的來說還是為了提高效率。如果沒有作業系統,用機器碼直接硬寫所有程式,這在理論上是可以做到的,但是情況就會變成這樣,你明明只是要做一個加法程式,但是必須要從機器的bootloader開始做起,處理各種中斷,記憶體,顯示,I/O,全部搞妥了才能做一個加法顯示在螢幕上。這樣累不累