Linux基礎之核心及程序
阿新 • • 發佈:2018-12-30
1、 列舉常見的核心引數以及引數的意義
檢視物理CPU個數 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 檢視每個物理CPU中core的個數(即核數) cat /proc/cpuinfo| grep "cpu cores"| uniq 檢視邏輯CPU的個數 cat /proc/cpuinfo| grep "processor"| wc -l 檢視系統版本 ~]# cat /etc/redhat-release 檢視核心版本 ~]# uname –r 檢視所有資訊 ~]# uname –a 檢視IP ~]# /sbin/ifconfig eth0 | grep 'inet addr' 檢視DNS ~]# cat /etc/resolv.conf
2、 如何通過/proc檢視top中展示的程序狀態
pid/stat包含了程序所有CPU活躍的資訊,該檔案中的所有值都是從系統啟動開始累計到當前時刻。 /proc/1 # cat stat 1 (linuxrc) S 0 0 0 0 -1 8388864 50 633 20 4 2 357 72 342 16 0 1 0 22 2252800 70 4294967295 32768 1879936 3199270704 3199269552 1113432 0 0 0 674311 3221479524 0 0 0 0 0 0 每個引數意思為: 引數 解釋 pid=1 程序(包括輕量級程序,即執行緒)號 comm= linuxrc 應用程式或命令的名字 task_state=S 任務的狀態,R:runnign, S:sleeping (TASK_INTERRUPTIBLE), D:disk sleep (TASK_UNINTERRUPTIBLE), T: stopped, T:tracing stop,Z:zombie, X:dead ppid=0 父程序ID pgid=0 執行緒組號 sid=0 c該任務所在的會話組ID tty_nr=0(pts/3) 該任務的tty終端的裝置號,INT(0/256)=主裝置號,(0-主裝置號)=次裝置號 tty_pgrp=-1 終端的程序組號,當前執行在該任務所在終端的前臺任務(包括shell 應用程式)的PID。 task->flags=8388864程序標誌位,檢視該任務的特性 min_flt=50該任務不需要從硬碟拷資料而發生的缺頁(次缺頁)的次數 cmin_flt=633 累計的該任務的所有的waited-for程序曾經發生的次缺頁的次數目 maj_flt=20該任務需要從硬碟拷資料而發生的缺頁(主缺頁)的次數 cmaj_flt=4 累計的該任務的所有的waited-for程序曾經發生的主缺頁的次數目 utime=2 該任務在使用者態執行的時間,單位為jiffies stime=357 該任務在核心態執行的時間,單位為jiffies cutime=72 累計的該任務的所有的waited-for程序曾經在使用者態執行的時間,單位為jiffies cstime=342 累計的該任務的所有的waited-for程序曾經在核心態執行的時間,單位為jiffies priority=16 任務的動態優先順序 nice=0 任務的靜態優先順序 num_threads=1 該任務所在的執行緒組裡執行緒的個數 it_real_value=0 由於計時間隔導致的下一個 SIGALRM 傳送程序的時延,以 jiffy 為單位. start_time=22 該任務啟動的時間,單位為jiffies vsize=2252800(bytes) 該任務的虛擬地址空間大小 rss=70(page) 該任務當前駐留實體地址空間的大小 Number of pages the process has in real memory,minu 3 for administrative purpose. 這些頁可能用於程式碼,資料和棧。 rlim=4294967295=0xFFFFFFFF(bytes) 該任務能駐留實體地址空間的最大值 start_code=32768=0x8000 該任務在虛擬地址空間的程式碼段的起始地址(由聯結器決定) end_code=1879936該任務在虛擬地址空間的程式碼段的結束地址 start_stack=3199270704=0Xbeb0ff30該任務在虛擬地址空間的棧的開始地址 kstkesp=3199269552 sp(32 位堆疊指標) 的當前值, 與在程序的核心堆疊頁得到的一致. kstkeip=1113432 =0X10FD58 指向將要執行的指令的指標, PC(32 位指令指標)的當前值. pendingsig=0 待處理訊號的點陣圖,記錄傳送給程序的普通訊號 block_sig=0 阻塞訊號的點陣圖 sigign=0 忽略的訊號的點陣圖 sigcatch=674311被俘獲的訊號的點陣圖 wchan=3221479524 如果該程序是睡眠狀態,該值給出排程的呼叫點 nswap=0 被swapped的頁數 cnswap=0 所有子程序被swapped的頁數的和 exit_signal=0 該程序結束時,向父程序所傳送的訊號 task_cpu(task)=0 執行在哪個CPU上 task_rt_priority=0 實時程序的相對優先級別 task_policy=0 程序的排程策略,0=非實時程序,1=FIFO實時程序;2=RR實時程序
3、分別用while、for迴圈檢測10.0.0.1/24網段存活的IP地址
#!/bin/bash for ip in seq 1 255 do { ping -c 1 10.0.0.$ip > /dev/null 2>&1 if [ $? -eq 0 ]; then echo 10.0.0.$ip UP else echo 10.0.0.$ip DOWN fi }& done ----------------------------- #!/bin/bash for ip in seq 1 255 do { ping -c 1 10.0.0.$ip > /dev/null 2>&1 if [ $? -eq 0 ]; then echo 10.0.0.$ip UP else echo 10.0.0.$ip DOWN fi }& done declare -i ip=1 while [ $ip -le 255 ]; do ping -c 1 10.0.0.$ip > /dev/null 2>&1 if [ $? -eq 0 ]; then echo 10.0.0.$ip UP else echo 10.0.0.$ip DOWN fi let ip++ done
4、 說明initrd的作用
initrd 是一個 ram disk 的 image. 一般是壓縮過的.它存在的主要目的是在核心啟動時載入它,安裝其中的驅動.
總的來說分這幾步
a.核心啟動時載入 initrd img, mount 為 /
b.依 /linuxrc 的指令執行, 一般有掃描系統硬體,從 當前檔案系統中找到驅動安裝之.
c.掛載系統中真正的 /