Linux基礎以內核及進程

一、 列舉常見的內核參數以及參數的意義linux

查看物理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

二、 如何經過/proc查看top中展現的進程狀態shell

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實時進程

三、分別用while、for循環檢測http://www.javashuo.com/tag/10.0.0.1/24網段存活的IP地址bash

#!/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

四、 說明initrd的做用app

initrd 是一個 ram disk 的 image. 通常是壓縮過的.它存在的主要目的是在內核啓動時加載它,安裝其中的驅動.
總的來講分這幾步
a.內核啓動時加載 initrd img, mount 爲 / 
b.依 /linuxrc 的指令執行, 通常有掃描系統硬件,從 當前文件系統中找到驅動安裝之.
c.掛載系統中真正的 /ide

相關文章
相關標籤/搜索