Linux 系統的啟動順序

  • 第一步:加載BIOS
  1. 當你打開ia計算機的電源,計算機會首先加載計算機主板的BIOS信息,因為它包含了CPU的相關信息,設備啟動順序[安裝系統的U盤啟動順序],內存信息,時鐘信息,PnP特性等等, 以后計算機會按照順序讀取硬件設備了。
  • 第二步:讀取MBR
  1. 眾所周知,硬盤上第0磁道第一個扇區被稱為MBR,也就是Master Boot Record,即主引導記錄,它的大小是512字節,別看地方不大,可里面卻存放了預啟動信息、分區表信息。
    系統找到BIOS所指定的硬盤的MBR后,就會將其復制到0×7c00地址所在的物理內存中。其實被復制到物理內存的內容就是Boot Loader,而具體到你的電腦,那就是lilo或者grub了。
  • 第三步:Boot Loader
  1. Boot Loader 就是在操作系統內核運行之前運行的一段小程序。通過這段小程序,我們可以初始化硬件設備、建立內存空間的映射圖,從而將系統的軟硬件環境帶到一個合適的狀態,以便為最終調用操作系統內核做好一切準備
    Boot Loader有若干種,其中Grub、Lilo和spfdisk是常見的Loader。
    我們以Grub為例來講解吧,畢竟用lilo和spfdisk的人并不多。
    系統讀取內存中的grub配置信息(一般為menu.lst或grub.lst),并依照此配置信息來啟動不同的操作系統。
  • 第四步:加載內核
  1. 根據grub 設定的內核映像所在路徑,系統讀取內存影像,并進行解壓縮操作,此時,屏幕一般會輸出 “Uncompressing Linux " 的提示,當解壓縮內核完成后,屏幕輸出”ok , botting the kernel " ,也就是內核加載完畢的意思,系統將解壓好的內核放置到內存之中,并調用start_kernel()函數 來啟動一系列的初始化函數并初始化各種設備,完成Linux核心環境的建立,至此,Linux內核已經初始化完畢了,基于Linux 的程序 應該可以正常運行了。
  • 第五步:用戶層init依據inittab文件來設定運行等級
  1. 內核被加載后,第一個運行的程序是/sbin/init ,該文件會讀取/etc/inittab 文件,并根據次文件進行初始化的工作。/etc/inittab文件就死設定linux的運行等級,其設定形式如下:
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
#

  0 :關機

? ? ? ?1 :單用戶

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

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

? ? ? 4? :保留,暫未使用

? ? ? 等等

? ? 不同的linux 發行版本,對于啟動的控制不一樣

  • 第六步 :
  1. ? ? ? ?設定了運行等級之后,Linux執行的地一個用戶層文件就是 /etc/rc.d/rc.sysinit腳本程序,里面會進行設定 PATH,設定網絡配置[/etc/sysconfig/network],啟動swap分區,設定/proc等等
  • 第七步:啟動內核模塊
  1. 具體是根據/etc/modules.conf文件或者/etc/modules.d目錄下的文件來裝載內核模塊。
  • 第八步:執行不同的運行級別的腳本程序
  1. 根據運行級別的不同,系統會運行rc0.d到rc6.d中的相應的腳本程序,來完成相應的初始化工作和啟動相應的服務。
  • 第九步: 執行/etc/rc.d/rc.local
  1. 你如果打開了此文件,里面有一句話,讀過之后,你就會對此命令的作用一目了然:
    # 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程序,進入登錄狀態
  1. 就是linux的登錄界面,等待用戶輸入用戶名和密碼了。
  • 備注:以上可以參照centos7以上的版本,相關的文件都比較容易查看的。
  • 文章參考地址:http://m.blog.chinaunix.net/uid-26495963-id-3066282.html?winzoom=1.375

轉載于:https://www.cnblogs.com/bing-yu12/p/7619869.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/251762.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/251762.shtml
英文地址,請注明出處:http://en.pswp.cn/news/251762.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Oracle數據庫 查看表是否是 索引組織表的方法

1. 最近在工作過程中發現 一個表插入很慢 以為是索引組織表, 所以一直有點糾結 但是發現 產品里面是沒有IOT的 于是找了下公司的OCP 問了下 如何查看 就是 user_tables 視圖里面的一個字段. 見圖: 轉載于:https://www.cnblogs.com/jinanxiaolaohu/p/9018037.html

Windows server 2016 搭建RDS服務

計算機的更新換代太快,新購置的計算機沒幾年便覺得運行速度越來越慢,尤其是在運行一些比較大的應用程序是,用戶總是抱怨運行速度太慢或者總是死機等問題。如果要更換新的計算機,又得不到領導的批準,因此對于企業來說&a…

π 的定義(極限)

圓周率,周長(2πr)與直徑(2r)的比值。在名稱上,是通過計算命名的。 1. 劉徽割圓與圓周率 π 通過圓內接正多邊形的周長來計算圓周長,是三世紀中期我國魏晉時代的數學家劉徽的光輝思想。 對于圓內…

前端開發瀏覽器兼容問題

csshack 1234567我很少使用hacker的,可能是個人習慣吧,我不喜歡寫的代碼IE不兼容,然后用hack來解決。不過hacker還是非常好用的。使用hacker我可以把瀏覽器分為3類:IE6 ;IE7和遨游;其他(IE8 chr…

springboot2.0 多數據源整合問題 At least one JPA metamodel must be present! ??at

2019獨角獸企業重金招聘Python工程師標準>>> 數據源代碼: 第一個讀取配置文件代碼: package com.datasource;import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.sp…

好書推薦

阿爾花剌子模:代數學. 喬治波利亞:怎樣解題:數學思維的新方法. Anany Levitin:算法設計與分析基礎.轉載于:https://www.cnblogs.com/mtl6906/p/7625290.html

docker實戰系列之搭建rabbitmq

1.搜索鏡像【注:因為我這里采用的是阿里云鏡像加速器,所以我直接在阿里云中搜索相關鏡像路徑】,點擊"詳情"查看公網拉取路徑 2.拉取鏡像 docker pull registry.cn-hangzhou.aliyuncs.com/jc/rabbitmq-3 3.查看拉取的鏡像 docker images 4.創建并運行容器【…

【hdu 6038】Function

【Link】:http://codeforces.com/contest/834/problem/C 【Description】 給你兩個排列a和b; a排列的長度為n,b排列的長度為m; a∈[0..n-1],b∈[0..m-1]; 然后讓你求一個函數f[i]; f[i]的定義域為0..n-1,值域為0..m-1 同時使得對于任意f[i],i∈[0..n-1]; f(i)bf(a[i])成…

樹中點對距離(點分治)

題目 給出一棵帶邊權的樹&#xff0c;問有多少對點的距離<Len 分析 這是一道點分治的經典題目&#xff0c;可以給點分治的初學者練手。 點分治&#xff0c;顧名思義就是把每個點分開了處理答案。 假設&#xff0c;目前做到了以x為根的子樹。 先求出子樹中每個點到根的距離\(…

【a702】貸款利率

Time Limit: 10 second Memory Limit: 2 MB 問題描述 當一個人從銀行貸款后&#xff0c;在一段時間內他將不得不每月嘗還固定的分期付款。這個問題要求計算機出貸款者向銀行支付的利率。假設利率按月累計。 Input 輸入文件 僅一行包含三個用空格隔開的正整數。 第一個整數表示…

移動端適配--meta標簽玩的是什么

基本一直都在做移動端的開發&#xff0c;rem布局也寫了很久&#xff0c;不過對于實現的原理有些模棱兩可的盲點&#xff0c;自己總結一下留著以后回顧。 本文分以下幾個層面&#xff0c;主打用最最通俗的語言來闡述。 布局小例子viewport作用viewport和移動端適配的關系flexibl…

python-json

demjson.encode(self, obj, nest_level0) &#xff1a;用于將 Python 對象編碼成 JSON 字符串。 #!/usr/bin/python import demjsondata [ { a : 1, b : 2, c : 3, d : 4, e : 5 } ]json demjson.encode(data) print json demjson.decode(self, txt) &#xff1a;解碼 JSON 數…

計算機基礎知識--編碼知識

編碼回顧 編碼轉換 Python的bytes類型 編碼回顧 在備編碼相關的課件時&#xff0c;在知乎上看到一段關于Python編碼的回答 這哥們的這段話說的太對了&#xff0c;搞Python不把編碼徹底搞明白&#xff0c;總有一天它會猝不及防坑你一把。 不過感覺這哥們的答案并沒把編碼問題寫明…

Linux——安裝FTP服務器

1、檢查安裝vsftpd軟件 使用如下命令#rpm -qa |grep vsftpd可以檢測出是否安裝了vsftpd軟件&#xff0c; 如果沒有安裝&#xff0c;使用YUM命令進行安裝。 2、啟動服務 使用vsftpd軟件&#xff0c;主要包括如下幾個命令&#xff1a; 啟動ftp命令#service vsftpd start 停止ftp…

測試開發面試準備之Selenium 工作原理

Selenium 經歷了兩個版本&#xff0c;Selenium 1.0 和 Selenium 2.0&#xff0c;本文僅介紹Selenium2的原理&#xff0c;在Selenium 2.0 主推的是WebDriver,Selenium2又名Selenium Webdriver。 Selenium2簡介 Selenium是一個用于Web應用程序測試的工具&#xff0c;支持多平臺、…

CodeForces 11D(狀壓DP 求圖中環的個數)

Given a simple graph, output the number of simple cycles in it. A simple cycle is a cycle with no repeated vertices or edges. Input The first line of input contains two integers n and m (1?≤?n?≤?19, 0?≤?m) – respectively the number of vertices an…

vue插槽的使用(slot)

插槽 該頁面假設你已經閱讀過了組件基礎。如果你還對組件不太了解&#xff0c;推薦你先閱讀它。 插槽內容 Vue 實現了一套內容分發的 API&#xff0c;這套 API 基于當前的 Web Components 規范草案&#xff0c;將 <slot> 元素作為承載分發內容的出口。 它允許你像這樣合成…

圖片與二進制流轉換

#region//圖片轉換為二進制流 public void PictureToBinaryStream() { //獲取當前程序運行路徑 string path Application.StartupPath; //拼接成測試圖片路徑 string fullPath path "\\images\\test.png"; //初始化類 Bitmap bmp…

仿MIUI彈性列表

前言 最近去小米之家體驗了下小米9&#xff0c;發現MIUI有一個挺特別的列表動畫效果&#xff0c;在系統上的各種應用上都能見到它的身影。 網上查了下&#xff0c;小米早在幾個系統版本前就有這個&#xff0c;網上也有了實現這個效果的控件庫。實現方法大同小異&#xff0c;大多…

10、angular的全部api

1、lowercase var app angular.module(myApp, []);app.controller(myCtrl, function($scope) { console.log(angular.lowercase(AbCdEf))}); 2、uppercase var app angular.module(myApp, []);app.controller(myCtrl, function($scope) { console.log(angular.uppercas…