uname 명령 출력에서 ​​하드웨어 플랫폼의 의미

uname 명령 출력에서 ​​하드웨어 플랫폼의 의미
 man uname
    -m, --machine             print the machine hardware name
    -i, --hardware-platform   print the hardware platform or "unknown"

여기서 하드웨어 플랫폼은 정확히 무엇을 의미하나요? "머신 하드웨어 이름"과 어떻게 다른가요? SE에서 관련 질문을 찾았지만 허용되는 답변에는 모순이 있는 것 같습니다. 이 용어에 대한 정확한 정보는 어디서 찾을 수 있나요?

답변1

POSIXuname정의되었지만 출력 -m은 에서 반환된 시스템 이름입니다 -i.-muname(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)에 있을 수 있습니다.

예를 들어, 동일한 하드웨어 클래스에서 공유하는 커널 모듈과 특정 하드웨어 구현에 특정한 모듈을 구별하는 데 사용됩니다.

관련 정보