在 Linux系統裡面,「分區」,被稱作「掛載點」,簡單明了的說,「掛載點」意思就是:把一部分硬碟容量,「分」成一個文件夾的形式,用來干什麼事情。這個文件夾的名字,就叫做:「掛載點」。所以,和Windows有著本質上的超級大的區別,你在任何linux發行版系統裡面,絕對不會看到C盤,D盤,E 盤這樣的,能看到的,只有「文件夾」形式存在的「掛載點」。
在Linux 系統裡面,有一些已經定義好,用來干一些事情的掛載點,常見的「掛載點」有:
/bin 該目錄中存放Linux的常用命令。
/boot 該目錄默認下存放的是Linux的啟動文件和內核。
/cdrom 該目錄在剛安裝系統時是空的,可以將光碟機文件系統掛在這個目錄下。
/dev 該目錄包含了Linux系統中使用的所有外部設備,它實際上是訪問這些外部設備的埠,可以訪問這些外部設備,與訪問一個文件或一個目錄沒有區別。例如在系統中鍵入「cd /dev/cdrom」,就可以看到光碟機中的文件;鍵入「cd /dev/mouse」即可看滑鼠的相關文件。
/etc 該目錄存放系統管理時要用到的各種配置文件和子目錄,例如網路配置文件、文件系統、X系統配置文件、設備配置信息、設置用戶信息等。
/home 如果建立一個名為「xx」的用戶,那麼在/home目錄下就有一個對應的「/home/xx」路徑,用來存放該
用戶的主目錄。
/lib 該目錄用來存放系統動態鏈接共享庫,幾乎所有的應用程序都會用到該目錄下的共享庫。
/lost+found 該目錄在大多數情況下都是空的。但當突然停電、或者非正常關機後,有些文件就臨時存放在這里。
/media:提供掛載(mounting)和自動掛載設備的標准位置,如遠程文件系統和可移動介質(目錄名為cdrecorder、floppy等)。
/mnt 臨時將別的文件系統掛在該目錄下。
/opt 第三方軟體在安裝時默認會找這個目錄,所以你沒有安裝此類軟體時它是空的,但如果你一旦把它刪除了,以後在安裝此類軟體時就有可能碰到麻煩。
/proc 可以在該目錄下獲取系統信息,這些信息是在內存中由系統自己產生的,該目錄的內容不在硬碟上而在內存里。
/root 如果你是以超級用戶的身份登錄的,這個就是超級用戶的主目錄。
/sbin 該目錄用來存放系統管理員使用的管理程序。初始化的內存檔。在linux內核啟動前,boot loader會將存儲介質(一般是硬碟)中的
/sys:一個類似與/proc的文件系統,在Linux2.6內核中最新出現的,包含的文件用於獲得硬體狀態並反映內核看到的系統設備樹。它使用了/proc中的很多幫助。
/tmp 用來存放不同程序執行時產生的臨時文件,該目錄會被系統自動清理干凈。
/usr 用戶的應用程序和文件幾乎都存放在該目錄下。
/var 該目錄存放那些經常被修改的文件,包括各種日誌、數據文件。
/initrd 它的英文含義是boot loader initialized RAM disk,就是由boot loader,文件載入到內存,內核啟動時會在訪問真正的根文件系統前先訪問該內存中的initrd文件系統。
2. Linux內核初始化 sp設置
Linux內核初始化sp設置方法是sp只要指向遠大於512偏移處都可以。linux在初始的時候會調用fork系統調用來創建第一個進程,他被仿芹羨成為零號進程,創建後會一直存在並且零號進程是所有進程的父進程。
Linux內核初始化的設置方法
首先看任首行務的結構體,前面是進程備拍的狀態時間片,優先順序信號打開文件等等,重要的是最後TSS結構體,TSS段存放的是進程的一些寄存器的狀態標識,當CPU運行某個進程時,需要將這個進程的TSS段放入CPU中。
TSS實際就是CPU在運行時產生的一些結果會放到這些寄存器中,當再次調用這個進程時再把TSS段放進CPU中,需要將linux的信息從硬碟中移到內存里,之後進行內存向量等的初始化,在內核初始化的過程中,會手動創建0號進程。
3. Linux系統初始化設備的過程主要有哪些
1.自檢:依賴於CPU,ROM中的程序
.載入BIOS,Boot Sequence確定啟動順序
3.MBR:
硬碟0磁軌0扇區的MBR文件,共512位元組
446:BootLoader
64:分區表,每16位元組一個分區
2:5A(一個特殊標記)
4.kernel文件vmlinuz+initrd:只能放在基本磁碟分區,BootLoader會把vmlinuz當做根來使用,即/vmlinuz
將vmlinuz載入到內存中使用。vmlinuz分為兩段,前半部分未壓縮段,是為了解壓第二段。
至此BootLoader任務完成,退場。
操作系統安裝時會執行一個命令,安裝程序完成後自動運行腳本,收集操作系統運行需要的腳本,將所需要的模塊打包成initrd,幫助內核完成初始化
initrd: ram disk,內核將之作為根來使用,將硬碟模擬成磁碟
5.initrd將所需文件復制到/下,內核完成初始化後進行根切換
6.啟動/sbin/init,由內核空間進入用戶空間
/lib/moles
/sbin/init:
/etc/inittab
id:3:initdefault:
/etc/rc.d/rc.sysinit腳本
4. 嵌入式Linux系統的如何進行初始化
LINUX系統的初始化可以分為兩部分:內核部分和init程序部分。內核主要完成系統的硬專件檢測和初始化屬,init程序則主要完成系統的各項配置。
主要流程是:CPU自身初始化-->載入BIOS-->BIOS載入內核引導程序(也就是ubuntu我們常說的GRUB)-->內核引導程序載入內核映像(這里的內核代碼是壓縮過的)-->內核映像獲得CPU控制權並開始工作-->內核映像自己解壓縮,開始運行init/main.c中的start_kernel()函數,這時候內核就啟動了,系統初始化,系統的父進程init進程執行起來了,這時候整個系統初始化完畢,接下來只是調用一些UI界面的進程執行。
這是我的一點淺陋簡介,希望對你有所幫助,謝謝!
5. linux文件系統怎樣初始化步驟
System V init啟動過程
概括地講,Linux/Unix系統一般有兩種不同的初始化啟動方式.
1) BSD system init
2) System V init
大多數發行套件的Linux使用了與System V init相仿的init也就是Sys V init,它比傳統的BSD system init更容易且更加靈活。
System V init的主要思想是定義了不同的"運行級別(runlevel)"。通過配置文件/etc/inittab定義了系統引導時的運行級別, 進入或者切換到一個運行級別時做什麼。每個運行級別對應於一個子目錄/etc/rc.d/rcX.d。
每個rcX.d目錄中都是一些以S或K開頭的文件鏈接。這些鏈接指向的腳本都 可以接收start和stop參數,S開頭的鏈接會傳入start參數,一般是開啟一項服務,K會傳入stop參數,一般是停止某服務。
以下是一個大致的System V init過程:
(1)init 過程執行的第一個腳本是 /etc/rc.d/rc.sysinit,它主要做在各個運行級別中進行初始化工作,包括: 啟動交換分區;檢查磁碟;設置主機名;檢查並掛載文件系統;載入並初始化硬體模塊.
(2)執行預設的運行級別模式。 這一步的內容主要在/etc/inittab中體現, inittab文件會告訴init進程要進入什麼運行級別,以及在哪裡可以找到該運行級別的配置文件.
(3)執行/etc/rc.d/rc.local腳本文件。 這也是init過程中執行的最後一個腳本文件,所以用戶可以在這個文件中添加一些需要在登錄之前執行的命令.
(4)執行/bin/login程序
注意:
System V init只是一種模式,每個系統初始化都有差異,但大體上不會相差太多。如busybox執行的第一個啟動腳本就是/etc/init.d/rcS,而且不可以改變,與上面講的不同。
LFS文件系統初始化示例
inittab文件
由下內容可以看出,最先執行的是/etc/rc.d/init.d/rc文件,給這個文件傳入的參數是一個數字,rc會由傳入的數字合成rcX.d目錄的路徑,然後執行其中的所有腳本鏈接。當然這只是一部分功能。
# Begin /etc/inittab
id:3:initdefault:
<em><strong>si::sysinit:/etc/rc.d/init.d/rc sysinit</strong></em> #可以設定初始化腳本
l0:0:wait:/etc/rc.d/init.d/rc 0
l1:S1:wait:/etc/rc.d/init.d/rc 1
l2:2:wait:/etc/rc.d/init.d/rc 2
...
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
su:S016:once:/sbin/sulogin
1:2345:respawn:/sbin/agetty tty1 9600
2:2345:respawn:/sbin/agetty tty2 9600
...
# End /etc/inittab
etc目錄結構
只是一部分,有刪減。
.
├── fstab
├── <em>inittab</em>
├── inputrc
├── profile
├── rc.d
│ ├── init.d
│ │ ├── checkfs
│ │ ├── cleanfs
...
│ │ ├── moles
│ │ ├── mountfs
│ │ ├── mountkernfs
│ │ ├── network
│ │ ├── rc #when boot, run.
│ │ ├── reboot
...
│ ├── rc0.d
│ │ ├── K80network -> ../init.d/network
│ │ ├── K90sysklogd -> ../init.d/sysklogd
│ │ ├── S60sendsignals -> ../init.d/sendsignals
│ │ ├── S70mountfs -> ../init.d/mountfs
│ │ ├── S80swap -> ../init.d/swap
│ │ ├── S90localnet -> ../init.d/localnet
│ │ └── S99halt -> ../init.d/halt
│ ├── rc1.d
│ │ ├── K80network -> ../init.d/network
│ │ └── K90sysklogd -> ../init.d/sysklogd
│ ├── rc2.d
│ │ ├── K80network -> ../init.d/network
│ │ └── K90sysklogd -> ../init.d/sysklogd
│ ├── rc3.d
│ │ ├── S10sysklogd -> ../init.d/sysklogd
│ │ └── S20network -> ../init.d/network
│ ├── rc4.d
│ │ ├── S10sysklogd -> ../init.d/sysklogd
│ │ └── S20network -> ../init.d/network
│ ├── rc5.d
│ │ ├── S10sysklogd -> ../init.d/sysklogd
│ │ └── S20network -> ../init.d/network
│ ├── rc6.d
│ │ ├── K80network -> ../init.d/network
│ │ ├── K90sysklogd -> ../init.d/sysklogd
│ │ ├── S60sendsignals -> ../init.d/sendsignals
│ │ ├── S70mountfs -> ../init.d/mountfs
│ │ ├── S80swap -> ../init.d/swap
│ │ ├── S90localnet -> ../init.d/localnet
│ │ └── S99reboot -> ../init.d/reboot
│ └── rcsysinit.d
│ ├── S00mountkernfs -> ../init.d/mountkernfs
│ ├── S02consolelog -> ../init.d/consolelog
│ ├── S05moles -> ../init.d/moles
...
├── udev
│ ├── rules.d
│ │ └── 55-lfs.rules
│ └── udev.conf
└── vimrc
network腳本
#!/bin/sh
. /etc/sysconfig/rc
. ${rc_functions}
. /etc/sysconfig/network
case "${1}" in
start)
# Start all network interfaces
for file in ${network_devices}/ifconfig.*
do
interface=${file##*/ifconfig.}
# skip if $file is * (because nothing was found)
if [ "${interface}" = "*" ]
then
continue
fi
IN_BOOT=1 ${network_devices}/ifup ${interface}
done
;;
stop)
# Reverse list
FILES=""
for file in ${network_devices}/ifconfig.*
do
FILES="${file} ${FILES}"
done
# Stop all network interfaces
for file in ${FILES}
do
interface=${file##*/ifconfig.}
# skip if $file is * (because nothing was found)
if [ "${interface}" = "*" ]
then
continue
fi
IN_BOOT=1 ${network_devices}/ifdown ${interface}
done
;;
restart)
${0} stop
sleep 1
${0} start
;;
*)
echo "Usage: ${0} {start|stop|restart}"
exit 1
;;
esac
# End /etc/rc.d/init.d/network
6. linux系統中 初始化的全局變數和未初始化過的全局變數保存在哪
一個由C/C++編譯的程序佔用的內存分為以下幾個部分
1、棧區(stack)— 由編譯器自動回分配釋放 ,存放函答數的參數值,局部變數的值等。其
操作方式類似於數據結構中的棧。
2、堆區(heap) — 一般由程序員分配釋放, 若程序員不釋放,程序結束時可能由OS回
收 。注意它與數據結構中的堆是兩回事,分配方式倒是類似於鏈表,呵呵。
3、全局區(靜態區)(static)—,全局變數和靜態變數的存儲是放在一塊的,初始化的
全局變數和靜態變數在一塊區域, 未初始化的全局變數和未初始化的靜態變數在相鄰的另
一塊區域。 - 程序結束後由系統釋放。
4、文字常量區 —常量字元串就是放在這里的。 程序結束後由系統釋放
5、程序代碼區—存放函數體的二進制代碼。
7. linux 這是系統初始化文件的shell腳本,大家幫我看看怎麼讀這段描述啊
去看下linux的啟動過程詳解
8. 例舉Linux系統初始化過程中最主要的4個環境文件,並說明哪些是系統的環境文件,哪些是用戶的環境文件
etc/profile: 為系統的每個用戶設置環境變數,當用戶第一次登陸,該文件被執行,並從/etc/profile.d目錄中的配置文專件中搜集屬shell設置
/etc/bashrc: 為每個運行bash shell的用戶執行此文件
~/.bash_profile: 每個用戶都可以使用該文件導入專用於自己的使用信息,該文件只執行一次
~/bashrc: 包含專屬於你的bash信息,當登錄時以及打開新的shell時,該文件被讀取。
9. 如何在Linux上重建初始化內存檔鏡像文件
在CentOS 5.X / RHEL 5.X中,可以用mkinitrd命令來創建初始化內存檔文件,舉例如下:
# mkinitrd -f -v /boot/initrd-$(uname -r).img $(uname -r)
如果你想要給特定的內核版本創建初始化內存檔,你就用所需的內核名替換掉 『uname -r』 。
在CentOS 6.X / RHEL 6.X中,則用dracut命令來創建初始化內存檔文件,舉例如下:
# dracut -f
以上命令能給當前的系統版本創建初始化內存檔,給特定的內核版本重建初始化內存檔文件則使用以下命令:
# dracut -f initramfs-2.x.xx-xx.el6.x86_64.img 2.x.xx-xx.el6.x86_64
還有不會的請參考《linux就該這么學》,針對各種linux疑難雜症,幫助linux學習者。
10. linux inl文件怎麼使用
.ini 文件是Initialization File的縮寫,即初始化文件,是windows的系統配置文件所採用的存儲格式專,統管windows的各項配置,一般用戶屬就用windows提供的各項圖形化管理界面就可實現相同的配置了。但在某些情況,還是要直接編輯ini才方便,一般只有很熟悉windows才能去直接編輯。開始時用於WIN3X下面,WIN95用注冊表代替,以及後面的內容表示一個節,相當於注冊表中的鍵。
文件擴展名
配置文件.ini
請注意:所討論的是項目中的配置文件,它是整個項目共用的。所以它要有一個項目使用的文件名,其後綴是.ini。例如:埠配置.ini
格式
INI文件由節、鍵、值組成。
節
[section]
參數(鍵=值)
name=value