1. 程式人生 > >深入淺出:linux的啟動流程刨析(二)

深入淺出:linux的啟動流程刨析(二)

2. 關於etc/rc.d/rc.sysyinit 和 /etc/rc.d/rc.Nd

在inittab檔案中,我們瞭解到rc.sysinit是系統執行的第一個指令碼,那麼它的作用都有哪些呢?如果有shell指令碼基礎的話可以用vim開啟這個檔案來看看,它有900多行...是linux裡最牛的指令碼,總結下它的作用,有如下幾點:(一定要牢記,必要時我們要重寫它!

1. 啟用udev和selinux

2. 通過讀取/etc/sysct1.conf來設定核心引數

3. 設定系統時鐘

4. 設定鍵盤對映

5. 啟動交換分割槽。

6. 設定主機名

7. 檢查跟檔案系統,並且如果沒有錯誤,以讀寫的方式來重新掛載檔案系統 (重要)

8. 啟用raid和lvm裝置

9. 啟動磁碟限額

10 掛載其他/etc/fstab裡定義的尚未被掛載的裝置

11. 清理過時的檔案鎖和PID檔案

12. 啟動服務/etc/rc.d/rcN.d

/etc/rc.d/rcN.d 是一個存放了系統啟動是載入的服務的資料夾,通過inittab,我們知道了,它的編號對應相應的啟動執行級別。

需要說明的是,它裡面的檔案,以我的為例 以K開頭的代表stop,以S開頭的代表啟動start,數字越小,有限級別越高

[[email protected] rc.d]# cd rc3.d
[[email protected] rc3.d]# ls
K01dnsmasq         K74nscd             S08ip6tables    S25bluetooth   S85gpm
K02avahi-dnsconfd  K85mdmpd            S08iptables     S25netfs       S90crond
K02NetworkManager  K87multipathd       S08mcstrans     S25pcscd       S90xfs
K05conman          K88wpa_supplicant   S10network      S26acpid       S95anacron
K05saslauthd       K89dund             S11auditd       S26apmd        S95atd
K10psacct          K89netplugd         S12restorecond  S26haldaemon   S97rhnsd
K20nfs             K89pand             S12syslog       S26hidd        S97yum-updatesd
K24irda            K89rdisc            S13irqbalance   S28autofs      S98avahi-daemon
K35vncserver       K99readahead_later  S13portmap      S50hplip       S99firstboot
K35winbind         S00microcode_ctl    S14nfslock      S55sshd        S99local
K50ibmasm          S02lvm2-monitor     S15mdmonitor    S56cups        S99smartd
K50netconsole      S04readahead_early  S18rpcidmapd    S56rawdevices
K69rpcsvcgssd      S05kudzu            S19rpcgssd      S58ntpd
K73ypbind          S06cpuspeed         S22messagebus   S80sendmail

3./etc/fstab檔案

它定義了系統初始化掛載的裝置,對系統的啟動至關重要,rc.sysinit通過讀取它來實現系統分割槽的掛載

它的內容如何呢?我們一起來看下

要掛載的裝置 掛載點 檔案系統型別 掛載選項 轉儲頻率 檔案自檢次序

/dev/sda2               /                       ext3    defaults        0 0
/dev/sda1               /boot                   ext3    defaults        0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

我截取了4個系統啟動時必須掛載的裝置

/ 根檔案目錄,由它你才可以進入linux的世界,它在/dev/sda2裡

/boot 啟動目錄,在/下,裡面有grub,initrd和系統核心,它在/dev/sda1

sysfs 一個虛擬的檔案系統,產生包含所有硬體層次檢視,和/proc類似

proc 這是一個虛擬的目錄,它對映記憶體裡的資訊對應程序資訊,也就是說它對應的是記憶體而不是硬碟

相關推薦

深入淺出linux啟動流程

2. 關於etc/rc.d/rc.sysyinit 和 /etc/rc.d/rc.Nd 在inittab檔案中,我們瞭解到rc.sysinit是系統執行的第一個指令碼,那麼它的作用都有哪些呢?如果有shell指令碼基礎的話可以用vim開啟這個檔案來看看,它有900多行.

SpringBoot啟動流程

我們在上一節中說了SpringBoot的應用上下文的物件是AnnotationConfigEmbeddedWebApplicationContext,通過名字直譯就是註解配置的可嵌入的web應用上下文。我們對它先不做過多的介紹,在不遠的文章中我們就會對它進行一下

Linux VFS機制簡

Linux VFS機制簡析(二) 接上一篇Linux VFS機制簡析(一),本篇繼續介紹有關Address space和address operations、file和file operations、dentry和dentry operations和dentry cache API。 Address Sp

SpringBoot啟動流程原理解析

>在上一章我們分析了SpingBoot啟動流程中例項化SpingApplication的過程。 `return new SpringApplication(primarySources).run(args);` 這篇文章咱麼說下`run()`方法開始之後都做了那些事情。 繼續往下跟著原始碼進入到`run()

LINUX啟動流程(以Debian為例)

半年前,我寫了《計算機是如何啟動的?》,探討BIOS和主引導記錄的作用。 那篇文章不涉及作業系統,只與主機板的板載程式有關。今天,我想接著往下寫,探討作業系統接管硬體以後發生的事情,也就是作業系統的啟動流程。 這個部分比較有意思。因為在BIOS階段,計算機的行為基本上被寫死了,程式

ARM linux kernel啟動流程 head.S

1. kernel執行的史前時期和記憶體佈局 在arm平臺下,zImage.bin壓縮映象是由bootloader載入到實體記憶體,然後跳到zImage.bin裡一段程式,它專門於將被壓縮的kernel解壓縮到KERNEL_RAM_PADDR開始的一段記憶體中,接著跳進真

Linux小小白入門教程Linux系統安裝

學些Linux最好的方式就是實際操作一番。所以安裝Linux是必然,否則永遠學不會。考慮到學習的方便性,我們將會使用虛擬機器來安裝Linux作業系統。 下載CentOS7系統映象 為了降低大家學習成本,建議大家安裝的Linux版本統一為Centos 7 。下載地址自

Linux從入門到適應更換清華源

1 進入到/etc/apt資料夾當中,找到sources.list,將其備份。命令:cp -p sources.list sources.list.old 2 採用管理員方式開啟sources.list: sudo vim sources.list 3 在清華源網站上https://mirror.tuna

linux啟動初始化步驟----電源管理相關函式

參考http://www.wowotech.net/sort/linux_kenrel博文的內容 Linux電源管理是一個比較龐大的子系統,涉及到供電(power supply)、充電(Charger)、時鐘(Clock)、頻率(Frequency)、電壓(Voltage)、睡眠/喚醒(Su

一、S5PV210的啟動流程詳解

210整個啟動流程可以大致分為三個階段,分別為:      1.執行IROM中的程式碼       2.執行UBOOT的BL1       3.執行UBOOT的BL2,最後啟動核心 IROM是2

Spring Boot啟動流程詳解

轉載:http://www.cnblogs.com/xinzhao/p/5551828.html 環境 本文基於Spring Boot版本1.3.3, 使用了spring-boot-starter-web。 配置完成後,編寫了程式碼如下: @

linux提權輔助工具linux-exploit-suggester

來自:https://github.com/jondonas/linux-exploit-suggester-2/blob/master/linux-exploit-suggester-2.pl #!/usr/bin/perl use strict; use warnings; use Getopt:

中文分詞工具探Jieba

【開源中文分詞工具探析】系列: 1. 前言 Jieba是由fxsjy大神開源的一款中文分詞工具,一款屬於工業界的分詞工具——模型易用簡單、程式碼清晰可讀,推薦有志學習NLP或Python的讀一下原始碼。與採用分詞模型Bigram + HMM 的ICTCLAS 相類似,Jieba採用的是Unigram +

V4L2視訊採集與H.264編碼原始碼大放送Linux視訊採集與編碼

這幾天的努力也算沒有白費,現在我將貢獻出我的成果,當然程式碼很大一部分都不是我寫的。 V4L2視訊採集我參考了V4L2官方原始碼,H.264編碼我使用了開源編碼庫x264,並參考了網上的一些例子。 但

linux平臺學x86彙編處理器指令碼及IA-32平臺瞭解

本部落格專注於原創(或翻譯), 轉載本部落格文章請保留文章宣告,文章僅供學習與參考,未經允許情況下嚴禁用於商業用途!! 本部落格地址: blog.csdn.net/shallnet 或 blog.csdn.net/gentleliu email : liuy0711

Linux vm執行引數之OOM相關的引數

一、前言 本文是描述Linux virtual memory執行引數的第二篇,主要是講OOM相關的引數的。為了理解OOM引數,第二章簡單的描述什麼是OOM。如果這個名詞對你毫無壓力,你可以直接進入第三章,這一章是描述具體的引數的,除了描述具體的引數,我們引用了一些具體的

Linux與VxWorks主要區別執行模式

Linux與VxWorks的主要區別 2、執行模式     Linux           VxWorks    保護模式         真實模式 VxWorks上應用程式執行在“真實模式”下,無使用者模式和核心模式之分; Linux則是採用“保護模式”,

linux系統程式設計之程序程序生命週期與PCB程序控制塊

本節目標: 程序狀態變遷程序控制塊程序建立程序撤消終止程序的五種方法 一,程序狀態變遷 程序的三種基本狀態 就緒(Ready)狀態 當程序已分配到除CPU以外的所有必要的資源,只要獲得處理機便可立即執行,這時的程序狀態稱為就緒狀態。 執行(Running)狀態 當程序已獲得

linux服務安裝與配置安裝xinetd服務

本部落格專注於原創(或翻譯), 轉載本部落格文章請保留文章宣告,文章僅供學習與參考,未經允許情況下嚴禁用於商業用途!! 本部落格地址: blog.csdn.net/shallnet 或 blog.csdn.net/gentleliu email : liuy0711

SpringBoot啟動流程分析原理

>我們都知道`SpringBoot`自問世以來,一直有一個響亮的口號"約定優於配置",其實一種按約定程式設計的軟體設計正規化,目的在於減少軟體開發人員在工作中的各種繁瑣的配置,我們都知道傳統的SSM框架的組合,會伴隨著大量的繁瑣的配置;稍有不慎,就可能各種bug,被人發現還以為我們技術很菜。而`SpringB