• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學習啦 > 學習電腦 > 操作系統 > Linux教程 >

    Linux啟動過程是怎樣的詳細介紹

    時間: 加城1195 分享

      Linux繼承了Unix以網絡為核心的設計思想,是一個性能穩定的多用戶網絡操作系統。對于Linux啟動過程,時間不長,但是具體原理還是挺復雜的,這篇文章主要介紹了Linux啟動過程詳細介紹的相關資料,需要的朋友可以參考下

      Linux啟動過程詳細介紹

      啟動第一步--加載BIOS

      當你打開計算機電源,計算機會首先加載BIOS信息,BIOS信息是如此的重要,以至于計算機必須在最開始就找到它。這是因為BIOS中包含了CPU的相關信息、設備啟動順序信息、硬盤信息、內存信息、時鐘信息、PnP特性等等。在此之后,計算機心里就有譜了,知道應該去讀取哪個硬件設備了。

      啟動第二步--讀取MBR

      眾所周知,硬盤上第0磁道第一個扇區被稱為MBR,也就是Master Boot Record,即主引導記錄,它的大小是512字節,別看地方不大,可里面卻存放了預啟動信息、分區表信息。

      系統找到BIOS所指定的硬盤的MBR后,就會將其復制到0×7c00地址所在的物理內存中。其實被復制到物理內存的內容就是Boot Loader,而具體到你的電腦,那就是lilo或者grub了。

      啟動第三步--Boot Loader

      Boot Loader 就是在操作系統內核運行之前運行的一段小程序。通過這段小程序,我們可以初始化硬件設備、建立內存空間的映射圖,從而將系統的軟硬件環境帶到一個合適的狀態,以便為最終調用操作系統內核做好一切準備。

      Boot Loader有若干種,其中Grub、Lilo和spfdisk是常見的Loader。

      我們以Grub為例來講解吧,畢竟用lilo和spfdisk的人并不多。

      系統讀取內存中的grub配置信息(一般為menu.lst或grub.lst),并依照此配置信息來啟動不同的操作系統。

      啟動第四步--加載內核

      根據grub設定的內核映像所在路徑,系統讀取內存映像,并進行解壓縮操作。此時,屏幕一般會輸出“Uncompressing Linux”的提示。當解壓縮內核完成后,屏幕輸出“OK, booting the kernel”。

      系統將解壓后的內核放置在內存之中,并調用start_kernel()函數來啟動一系列的初始化函數并初始化各種設備,完成Linux核心環境的建立。至此,Linux內核已經建立起來了,基于Linux的程序應該可以正常運行了。

      啟動第五步--用戶層init依據inittab文件來設定運行等級

      內核被加載后,第一個運行的程序便是/sbin/init,該文件會讀取/etc/inittab文件,并依據此文件來進行初始化工作。

      其實/etc/inittab文件最主要的作用就是設定Linux的運行等級,其設定形式是“:id:5:initdefault:”,這就表明Linux需要運行在等級5上。Linux的運行等級設定如下:

      0:關機

      1:單用戶模式

      2:無網絡支持的多用戶模式

      3:有網絡支持的多用戶模式

      4:保留,未使用

      5:有網絡支持有X-Window支持的多用戶模式

      6:重新引導系統,即重啟

      關于/etc/inittab文件的學問,其實還有很多

      啟動第六步--init進程執行rc.sysinit

      在設定了運行等級后,Linux系統執行的第一個用戶層文件就是/etc/rc.d/rc.sysinit腳本程序,它做的工作非常多,包括設定PATH、設定網絡配置(/etc/sysconfig/network)、啟動swap分區、設定/proc等等。如果你有興趣,可以到/etc/rc.d中查看一下rc.sysinit文件,里面的腳本夠你看幾天的

      啟動第七步--啟動內核模塊

      具體是依據/etc/modules.conf文件或/etc/modules.d目錄下的文件來裝載內核模塊。

      啟動第八步--執行不同運行級別的腳本程序

      根據運行級別的不同,系統會運行rc0.d到rc6.d中的相應的腳本程序,來完成相應的初始化工作和啟動相應的服務。

      啟動第九步--執行/etc/rc.d/rc.local

      你如果打開了此文件,里面有一句話,讀過之后,你就會對此命令的作用一目了然:

      # This script will be executed *after* all the other init scripts.

      # You can put your own initialization stuff in here if you don't

      # want to do the full Sys V style init stuff.

      rc.local就是在一切初始化工作后,Linux留給用戶進行個性化的地方。你可以把你想設置和啟動的東西放到這里。

      啟動第十步--執行/bin/login程序,進入登錄狀態

      此時,系統已經進入到了等待用戶輸入username和password的時候了,你已經可以用自己的帳號登入系統了。:)

      ===

      漫長的啟動過程結束了,一切都清靜了…

      補充:Linux基本命令

      ①ls 意為list 列出當前文件夾中的文件

      -l 顯示文件的屬性 可用ll來表示

      ②alias 別名 看看是否有別名的文件

      ③cd dir 跳躍目錄 -P選項 將路徑中的鏈接文件替換成鏈接指向的文件路徑

      ④pwd 查看當前工作的文件夾名 使用-P的選項,會直接進入到其中,相當于cd

      相關閱讀:Linuxshell腳本不執行問題實例分析

      shell腳本不執行問題:某天研發某同事找我說幫他看看他寫的shell腳本,死活不執行,報錯。我看了下,腳本很簡單,也沒有常規性的錯誤,報“:badinterpreter:Nosuchfileordirectory”錯。看這錯,我就問他是不是在windows下編寫的腳本,然后在上傳到linux服務器的……果然。原因:在DOS/windows里,文本文件的換行符為rn,而在*nix系統里則為n,所以DOS/Windows里編輯過的文本文件到了*nix里,每一行都多了個^M。解決:

      1)重新在linux下編寫腳本;

      2)vi:%s/r//g:%s/^M//g(^M輸入用Ctrl+v,Ctrl+m)附:sh-x腳本文件名,可以單步執行并回顯結果,有助于排查復雜腳本問題。


    Linux啟動過程詳細介紹相關文章:

    1.Linux操作系統CentOS的詳細介紹

    2.操作系統的安裝與啟動基本原理

    3.linux后臺啟動命令nohup

    4.維護linux路由表的方法步驟詳解

    5.xshell操作linux系統的常用命令

    4016900 主站蜘蛛池模板: 亚洲sss视频| 成人免费看吃奶视频网站| 在线免费看黄网站| 人人玩人人添人人| 亚洲AV无码一区二区一二区| 4444在线网站| 精品福利一区二区三区免费视频| 欧美日韩在线视频| 国产美女在线精品观看| 亚洲精品nv久久久久久久久久| g0g0人体全免费高清大胆视频| 男生与女生差差| 天堂在线免费观看mv| 亚洲综合色成在线播放| 99re免费视频| 精品国偷自产在线视频99| 最近2019中文字幕大全第二页 | 国产猛男猛女超爽免费视频 | 久99频这里只精品23热视频| 99爱免费观看视频在线| 老司机免费在线| 欧洲精品99毛片免费高清观看| 国产精成人品日日拍夜夜免费| 亚洲国产中文在线视频| 中文字幕一区二区三区日韩精品 | t66y最新地址一地址二地址三| 男人插女人app| 国内精品videofree720| 四虎成年永久免费网站| 么公的好大好硬好深好爽视频想要| 欧美jizz18性欧美年轻| 欧美日韩国产一区二区| 国产真实乱xxxav| 亚洲另类无码专区丝袜| 97国产在线视频| 狂野欧美性猛xxxx乱大交| 国产黄大片在线观| 亚洲人成电影在线观看青青| 韩国理论片久久电影网| 最近中文字幕在线mv视频7| 国产亚洲综合成人91精品|