fae
將porting
好的linux
提供,幾乎都在寫應用**,空閒時間整理一下
b1202
系統啟動的過程 通過
/boot/vm
進行啟動
vmlinuz
init
程序會讀取
/etc/inittab
,/etc/inittab
先/etc/rc.d/rc.sysinit
,再/etc/rc.d/rc3.d/
等等啟動
login
登入介面
login
在使用者登入的時候執行
sh指令碼的順序:每次登入的時候都會完全執行的
/etc/profile.d/file
/etc/profile
/root/.bashrc
/root/.profile 1.
init
讀核心**
init/main.c
-->kernel_init
if (!ramdisk_execute_command)
ramdisk_execute_command = "/init"; 在
b1202中
init -> bin/busybox
init
只是乙個
busybox
的快捷方式,
busybox
程式中調
/etc/inittab
指令碼,
如果沒有
busybox
就按照inittab
走,有busybox
就先執行
busybox
,最後會調
/etc/inittab 2.
/etc/inittab
內容/etc/inittab
會呼叫/etc/rc.d/rcs
,/bin/login 等
# see busybox-1.00rc2/examples/inittab for more examples
::sysinit:/etc/rc.d/rcs
#::respawn:-/bin/sh
::respawn:/bin/login
::ctrlaltdel:/sbin/reboot
::shutdown:/etc/rc.d/rcs stop
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a
::restart:/sbin/init
/etc/rc.d/rc.conf
/etc/rc.d/rcs
根據/etc/rc.d/rc.conf
的配置
/etc/rc.d/init.d/$i
這行的意思就是逐個載入這些指令碼的
可以看到
syslog
這個指令碼,就是列印除錯用的,由
busybox
的提供的
這個指令碼是載入驅動,應用,防火牆,
fe基本配置等等
#!/bin/sh
. /etc/rc.d/rc.conf
mode=$
if [ $mode = "start" ]
then
services=$cfg_services
else
services=$cfg_services_r fi
cfg_services=$
# run the configured sequence
for i in $cfg_services do
if [ -x /etc/rc.d/init.d/$i ]
then
/etc/rc.d/init.d/$i $mode fi
done
if [ $# -ge 2 ]
then
exit 0 fi
if [ -x /etc/rc.d/rc.local ]
then
/etc/rc.d/rc.local fi
/bin/login
就是登陸程式 3.
程序執行緒
用程序還是執行緒,這個個人覺得按功能來分
m個程序,關係緊密的
n個模組起
n個執行緒放乙個程序中,
m個程序之間最好通訊單一,
b1202
就是這樣來實現的 4.
分塊詳解
Linux啟動過程
1 開啟 pc電源 pc加電後,乙個特殊的硬體電路會觸發 cpu 的 reset 腳的邏輯值,然後一些 cpu 暫存器,如 cs eip 等被給定乙個值,接著 cpu 跳轉到乙個固定位址開始執行 bios 2 bios 自檢,按設定的裝置啟動 bios 對硬體進行一系列徹底的檢查,如 cpu 型別 ...
Linux啟動過程
1.加電時由硬體將bios載入到記憶體末尾.這時是實模式,定址空間為1m.2.由硬體將cs段暫存器強制設定為0xffff,ip指令暫存器設定為0x0000.這樣cs ip指向了oxffff0的位址位置.這個位置就是bios程式的入口位址.3.執行bios程式.在記憶體起始位址0x00000設定1k大...
Linux啟動過程
linux啟動過程 前言 linux是一種自由和開放源 的類unix作業系統。該作業系統的核心由林納斯 托瓦茲在1991年10月5日首次發布。在加上使用者空間的應用程式之後,成為linux作業系統。linux是自由軟體和開放源 軟體發展中最著名的例子。接觸linux的時間也不算短了,一直都是直接使用...