모든 Linux/Unix 시스템에 아치가 존재합니까?

모든 Linux/Unix 시스템에 아치가 존재합니까?

32비트 x86, 64비트 또는 다른 것(예: ARM)인지 여부에 관계없이 시스템의 CPU 아키텍처를 결정하는 가장 이식 가능한 방법을 찾으려고 합니다. 이 명령이 arch모든 시스템에 존재합니까? 그렇지 않으면 쉘에서 어떻게 테스트할 수 있습니까?

답변1

archGNU 명령입니다. 의 동의어일 뿐입니다 uname -m. uname -m그 존재는 다음에 의해 제공되기 때문에 이식 가능합니다.POSIX이는 초기 시스템을 제외하고 역사상 모든 Unix 시스템에 존재했습니다.

이식성이 낮다는 것은 출력의 의미입니다. 이는 Unix 변형마다 다릅니다.

출력에서는 시스템이 32비트인지 64비트인지 알려주지 않습니다. 시스템이 32비트인지 64비트인지 알 수 있는 명령은 없습니다. 이는 잘 정의된 옵션이 아니기 때문입니다. 바라보다Linux 명령이 자릿수(32 또는 64)를 반환합니까?시스템 비트를 보고하는 몇 가지 방법을 알아보고 32/64비트의 몇 가지 개념을 이해하세요.

답변2

FreeBSD 10.3에는 이 명령이 없습니다 arch.

어쩌면 uname -m그게 더 적절하지 않을까요? 그럼에도 불구하고 FreeBSD는 amd64OS X El Capitan이 출력하는 동안 출력하므로 x86_64이를 고려해야 합니다. 이것을 테스트할 Linux 호스트가 없습니다...

답변3

내 64비트 OSX에서엘 캐피탄시스템, arch인쇄 i386. 아마도 그 결과를 맹목적으로 신뢰해서는 안 될 것입니다.

재미있게,

$ file /usr/bin/arch
arch: Mach-O universal binary with 2 architectures
arch (for architecture i386):   Mach-O executable i386
arch (for architecture x86_64): Mach-O 64-bit executable x86_64

Linux의 경우 이전 시스템에는 GNU coreutils가 현재 제공하는 버전이 없었습니다(및 일부 시스템가지다프로그램이나 스크립트 가 없습니다 arch). 2007년에 추가되었으며,에서 인용NEWS:

* Noteworthy changes in release 6.9.90 (2007-12-01) [beta]

** New programs

  arch: equivalent to uname -m, not installed by default
  But don't install this program on Solaris systems.

Solaris에 설치하지 말라는 의견이 있는 이유는 Sun이 1980년대 SunOS부터 이 유틸리티를 제공했기 때문입니다. 이전 매뉴얼 페이지는 SunOS 4.1.3 날짜를 찾기가 어렵습니다.이것은 1992년이다. AIX 및 HPUX용 프로그램은 없으며 archLinux에 복제된 다른 SunOS 기능과 마찬가지로 이 기능은 POSIX에서 사용할 수 없습니다.

보다 안정적인 것이 필요한 경우 config.guess출력은 대부분의 사람들에게 적합합니다.

# You can get the latest version of this script from:                           
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess 

스크립트를 읽으면 일부 (오래된) 컴퓨터가 uname -m예상대로 작동하지 않는다는 것을 알 수 있습니다. 하지만 먼저 제목에 있는 라이센스를 읽고 그것이 귀하에게 어떻게 적용되는지 확인하십시오.

관련 정보