man uname
-m, --machine print the machine hardware name
-i, --hardware-platform print the hardware platform or "unknown"
여기서 하드웨어 플랫폼은 정확히 무엇을 의미하나요? "머신 하드웨어 이름"과 어떻게 다른가요? SE에서 관련 질문을 찾았지만 허용되는 답변에는 모순이 있는 것 같습니다. 이 용어에 대한 정확한 정보는 어디서 찾을 수 있나요?
답변1
POSIXuname
정의되었지만 출력 -m
은 에서 반환된 시스템 이름입니다 -i
.-m
uname(2)
시스템 호출, machine
항목 중utsname
구조. 가능한 값은 구현에 따라 다릅니다. Linux 시스템에서는 커널 아키텍처( x86_64
, i686
...) 및프로세스 성격에 따라 수정 가능.
사용되는 다양한 컴퓨터 이름에 대해 알아보려면 다음을 확인하세요.config.guess
: 각 값 세트의 첫 번째 요소는 시스템 이름이며, macppc
, alpha
, Alpha
, 21064
... 이 표시됩니다.
그누 coreutils
'uname
-i
하드웨어 플랫폼 이름을 확인할 수 있는 경우 이를 출력하도록 정의됩니다 . 이것이 무엇을 의미하는지 이해하려면 다음을 살펴봐야 합니다.소스 코드. 시스템이 uname
지지대 위에 구축된 경우 sysinfo(SI_PLATFORM, ...)
(autoconf
매크로POSIX라고 주장하지만 확인할 수 없음) 거기에 반환된 하드웨어 플랫폼을 사용합니다. 예를 들어, 이는 SunOS 및 Solaris에서는 작동하지만 Linux에서는 작동하지 않습니다. sysinfo
사용할 수 없는 경우 sys/sysctl.h
포함 및 확인되며 HW_MODEL
둘 다 정의된 경우 HW_MACHINE_ARCH
지정된 모델이 사용됩니다. sysctl()
이는 일부 BSD 유형 플랫폼에서 작동합니다.
요약하자면, 두 값 모두 구현에 따라 다르므로 실제 의미를 부여하기는 어렵습니다.
답변2
추가 정보 info uname
:
`-i'
`--hardware-platform'
Print the hardware platform name (sometimes called the hardware
implementation). Print `unknown' if the kernel does not make this
information easily available, as is the case with Linux kernels.
`-m'
`--machine'
Print the machine hardware name (sometimes called the hardware
class or hardware type).
기본적으로 클래스 유형 - 서로 다른 하드웨어 구현(-i)을 가질 수 있지만 동일한 하드웨어 클래스(-m)에 있을 수 있습니다.
예를 들어, 동일한 하드웨어 클래스에서 공유하는 커널 모듈과 특정 하드웨어 구현에 특정한 모듈을 구별하는 데 사용됩니다.