리눅스`uname -m`은 어떻게 정보를 얻습니까?


15

리눅스 uname -m는 어디 에서 정보를 얻습니까?

나는 확실히 64 비트 기계를 가지고 있기 때문에 요구하고 있어요 uname -auname -r확인,하지만 uname -m인쇄 i686. 어디에서 가져 옵니까?

답변:


23

uname소프트웨어 및 하드웨어의 정보 를 인쇄 하는 것을 고려해야합니다 . 64 비트 시스템에서 32 비트 Linux 분배를 실행 중일 수 있습니다.

uname -a커널 이름, 노드 이름, 커널 릴리스, 커널 버전, 기계, 프로세서, 하드웨어 플랫폼, 운영 체제와 같은 정보를 순서대로 인쇄합니다. 64 비트 하드웨어 및 i686 커널이 표시되면 32 비트 Linux 커널을 설치 한 것입니다.

전체 질문에 대답하기 위해 : uname은 시스템 호출이며이 명령 줄 도구는이를 사용합니다. 쉽게 달릴 수 있음을 확인할 수 있습니다strace uname -a

$ strace uname -a
execve("/bin/uname", ["uname", "-a"], [/* 23 vars */]) = 0
brk(0)                                  = 0x9fa6000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b4abb365000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b4abb366000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
...
...
...
uname({sys="Linux", node="my_pc", ...}) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b4abe953000
uname({sys="Linux", node="my_pc", ...}) = 0
uname({sys="Linux", node="my_pc", ...}) = 0
write(1, "Linux my_pc 2.6.18-371.8.1.el5 "..., 99Linux my_pc 2.6.18-371.8.1.el5 #1 SMP Thu Apr 24 18:19:36 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
) = 99
close(1)                                = 0
munmap(0x2b4abe953000, 4096)            = 0
exit_group(0)                           = ?

2
strace -v전체 uname 리턴 값을 보는 데 사용 하십시오.
user1686 2016 년

지난 4 년 동안 Linux와 UNIX를 사용해 왔으며 strace에 대해 전혀 몰랐습니다. 후드 아래에서 ptrace를 사용하는지 궁금합니다 ... 쉽게 확인할 수있는 프로그램 만 있다면! ;)
Parthian Shot

2
@ParthianShot ptrace를 사용하고 있습니다. 확인하려면을 사용하십시오 strace strace uname -a. 편안하게 읽을 수 있도록 출력을 파일로 보내십시오.
tbodt

@ParthianShot 그리고 그들은 ltrace아직 언급 하지 않았습니다. :)
oakad 2018 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.