深入淺出: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