關機和開機的時候計算機都具體在幹什麼,為什麼需要一段時間而不是瞬間開關機?
以普通windows為例。
開機:bios程序,boot loader,模式切換進入windows kernel,載入kernel的基本模塊,載入註冊表,載入各種驅動程序,偵測硬體設備,初始化驅動,運行session manager,啟動各種service,啟動logon程序,登錄界面。
關機:給桌面窗口發送關機消息,開始關閉各個桌面窗口,logoff當前用戶,卸註冊表,停service,回寫file system cache,給驅動程序發電源狀態改變,最後發電源指令關機。
想起了以前DOS,當時關機步驟是:回到dos提示符,按電源按鈕關機。很暴力。http://www.ruanyifeng.com/blog/2013/02/booting.html
這篇文章講的比較詳細…linux的好說~可以一行一看代碼了
早上鬧鐘響了,你不馬上起來,你在幹嘛?晚上躺在床上,不睡覺,你在幹嘛?哼!╭(╯^╰)╮敢說我們雞算雞!
提主去讀讀計算機導論吧
以純軟體的角度來說,關閉這個軟體時系統發送關閉指令(有普通優先順序的有強制性的)普通的話軟體按照自己流程走,會把軟體設置什麼保存了內存釋放了,強制就強制了,沒有以上操作,像蘋果系統關機會記住之前所有開啟程序,下次啟動時再打開(Linux也有類似記住會話的功能),這裡系統關機速度與軟體關閉速度關係較大,Linux關機速度我感覺最快(桌面發行版,1是進程可能不是很多,2是他正常軟體退出速度就是快。。不寫代碼不學系統不知道為什麼),mac和windows就略慢了,有時候windows還會提示有軟體怎麼怎麼問是不是強制退出。
之後系統應該也是一樣的道理吧。Linux有個開機載入的配置文件,也有一個關機載入的配置文件,我猜測其他系統也是有,具體什麼內容我也忘了
還看到你說開機,開機幹了什麼網上一大堆,我不一定說的全,大致就是加電,BIOS自檢硬體,從啟動盤的MBR(UEFI的是什麼不清楚)載入一小段代碼,找到bootloader位置(linux就是grub的安裝位置,windows就是ntldr),然後再他們的指導下找到系統內核之類的,啟動內核,載入配置文件,啟動系統進程,啟動其他應用進程。。這些定址,載入(載入到內存)過程都是耗時間的,所以不能實現瞬間開,除非你就沒關機,,macbook默認就是蓋上蓋子待機,內存繼續供電,所有你當前操作的東西都會在那掛著,打開蓋子立馬就能繼續用。windows的睡眠也是同樣,只不過windows沒那麼給力的硬體,需要手動(可以自動)觸發睡眠,但是一般都需要手動(按鍵盤或滑鼠)來解除睡眠。推薦閱讀:
※我開了一個專欄
※中美兩位 AI 大師的「巔峰對話」:為何 NLP 領域難以出現「獨角獸」? | 獨家
※浙江大學-數據結構-應用實例:最大子列和問題-1.3
※CS224N Lecture3 筆記
※2017工作小感
TAG:MicrosoftWindows | Linux | 計算機 | 計算機科學 | 操作系統內核 |