uname - به‌دست آوردن اطلاعات سیستم

دستور uname برای به‌دست آوردن اطلاعاتی در مورد سیستم، شامل: ورژن کرنل، نوع ۳۲بیتی یا ۶۴بیتی بودن کرنل و ... مورد استفاده قرار می‌گیرد که البته در خیلی از اوقات در خروجی مقدار Unknown مشاهده میشه. از این دستور بیشتر برای تشخیص  ۳۲ یا ۶۴ بیت بودن کرنل  استفاده می‌شود. توجه داشته باشین که این دستور فقط اطلاعات کرنل رو نشون میده و در مورد سخت افزار چیزی نشون نمیده.

n-: اسم سیستم رو میگه که در واقع هاست نیم شبکه‌مون برای سیستم مورد نظر  است (network nodename)

aliabry@lp:~$ uname -n
lp

s-: اسم کرنل رو میگه که در یک سیستم لینوکسی اسمش Linux هست.

aliabry@lp:~$ uname -s
Linux

v-: ورژن کرنل رو نشون میده که معمولا زمان و تاریخ ساخت کرنل (build) رو نشون میده نه ورژن واقعی کرنل. برای دیدن ورژن واقعی کرنل از آپشن r-استفاده کنین.

aliabry@lp:~$ uname -v
#86-Ubuntu SMP Wed Oct 23 09:20:45 UTC 2013

r-: ورژن اصلی کرنل رو نشون میده.

aliabry@lp:~$ uname -r
3.2.0-56-generic

m-: اسم سخت افزار سیستم رو نشون میده که به نظر میاد یک کد cpu باشه. من جایی به درستی پیدا نتونستم بکنم که دقیق گفته باشه چی هستش.

aliabry@lp:~$ uname -m
x86_64

p-: اطلاعاتی در مورد cpu نشون میده.

aliabry@lp:~$ uname -p
x86_64

i-: پلتفرم سخت افزار رو نشون میده.

aliabry@lp:~$ uname -i
x86_64

o-: اسم سیستم عامل رو نشون می‌دهد که معمولا مقدار GNU/linux در جواب برگردانده می‌شود.

aliabry@lp:~$ uname -o
GNU/Linux

a-: این آپشن تمام اطلاعات بالا رو به یک‌باره نشون میده.

aliabry@lp:~$ uname -a
Linux lp 3.2.0-56-generic #86-Ubuntu SMP Wed Oct 23 09:20:45 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

تشخیص ۳۲ یا ۶۴ بیتی بودن کرنل سیستم و CPU

اگر در خروجی دستور uname -aمقدار i386/i486/i586/i686 وجود داشت کرنل سیستم ۳۲بیتی هست واگر مقدار x86_64 وجود داشت کرنل سیستم ۶۴بیتی هست.

توجه داشته باشین که دستور uname فقط اطلاعات کرنل رو نشون میده و به شما نشون نمی‌ده که آیا CPU استفاده شده در سیستم از نوع ۳۲بیت یا ۶۴بیت است برای به‌دست آوردن مقدار بیت CPU از دستور lscpu استفاده کنین یا خروجی فایل زیر رو چک کنین:

$ cat /proc/cpuinfo

در خروجی فایل بالا دنبال مقادیر lm ،tm ،rm بگردین که معنی هرکدام در جلوش نوشته شده:

 lm : flag means Long mode cpu - 64 bit CPU
 tm : flag means Protected mode - 32-bit CPU
 rm : flag means Real Mode - 16 bit CPU

خروجی زیر برای یک پردازنده ۶۴بیتی هست:

aliali@lp:~$ cat /proc/cpuinfo
processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 30
model name    : Intel(R) Core(TM) i7 CPU       Q 740  @ 1.73GHz
stepping    : 5
microcode    : 0x4
cpu MHz        : 1734.000
cache size    : 6144 KB
physical id    : 0
siblings    : 8
core id        : 0
cpu cores    : 4
apicid        : 0
initial apicid    : 0
fpu        : yes
fpu_exception    : yes
cpuid level    : 11
wp        : yes
flags        : fpu vme de pse tsc msr pae lm mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ida dtherm tpr_shadow vnmi flexpriority ept vpid