Linux에서 64비트로의 전환을 처리하는 방법

Linux에서 64비트로의 전환을 처리하는 방법

Linux/Unix에서 64비트로 전환하는 방법은 무엇입니까? Windows 세계에서는 여전히 문제가 있는 것 같은데, *nix 세계에서는 어떻게 처리되는지 궁금합니다.

답변1

커널을 64비트로 만들기 위한 작업이 완료되었습니다.우우얼마 전까지만 해도 저는 DEC Alpha 시스템을 사용하고 있었습니다. 그러나 절차는 또 다른 이야기입니다.

지금까지 내가 본 일반적인 합의는 다음과 같습니다.

  • 혼합 바이너리가 있는 시스템을 위한 별도의 /lib디렉터리/lib64
  • 64비트로 컴파일하세요. 컴파일이 실패하면 소스 코드를 64비트로 지울 수 있을 때까지 32비트로 다시 컴파일하세요.

그 외에는 32/64비트 혼합 빌드에서 "슬픔"을 많이 볼 수 없습니다.

답변2

Windows와 *ix는 변환을 위해 서로 다른 데이터 모델을 사용합니다. 이 UNIX.org페이지약간 오래되었지만 여전히 장단점에 대한 좋은 개요를 제공합니다( long long나중에 C99에 추가되었으며 최소 64비트가 필요함). 당신은 또한 볼 수 있습니다위키피디아 기사같은 주제에. UNIX.org 기사 끝 부분에서 주장한 대로 대부분의 UNIX 계열 시스템은 LP64를 사용합니다. 즉 long, , long long및 포인터는 모두 64비트입니다.

Windows는 소위 LLP64 데이터 모델을 사용합니다. 이는 long long포인터와 포인터만 64비트임을 의미합니다. long아직 32비트입니다. 그 이유 중 하나는 단순히 long적합하다고 생각되는 것을 다시 확인하고 수정하고 싶지 않기 때문입니다 int.

답변3

Linux 배포판은 대부분 오픈 소스이기 때문에 큰 변화가 이루어졌습니다. Skype와 같은 독점 소프트웨어를 사용하지 않는 한, 아무런 단점 없이 순수한 64비트 시스템을 실행할 수 있습니다.

그러나 IMHO의 실제 차이점은 일반적으로 먼저 포팅되는 오픈 소스 소프트웨어이기 때문에 독점 대 개방형, 유닉스 대 Windows에 더 가깝습니다. (일부 지원자는 무언가를 다시 컴파일해야 할 수도 있습니다. 일부 컴파일 문제를 해결할 수도 있습니다.) 또는 대부분의 경우 모든 것을 포팅하지 않는 것은 단지 다시 컴파일하는 것입니다. ;) - 그리고 마지막으로 속성을 이식했습니다.

또한 Linux에는 리포지토리가 있을 수 있으므로 설치가 자동으로 처리됩니다. 64비트 또는 32비트 버전을 선택할 필요가 없습니다(시스템이 자동으로 버전을 선택합니다). Windows에서 프로그램을 다운로드하면 별도의 64비트 버전과 32비트 버전이 있습니다.

  • 서버의 파일 크기 두 배
  • 사용자가 자신의 버전을 알아야 합니다. 아니면 어떤 면에서는 서로 다르지만

이것이 바로 Windows 바이너리가 일반적으로 32비트인 이유인 것 같습니다. 이는 모든 경우에 적용되며 모든 사람이 64비트 버전을 사용하는 것은 아닙니다.

답변4

실제로 ACM 대기열에서 "64비트를 향한 긴 여정"을 시도해 보세요. http://queue.acm.org/detail.cfm?id=1165766 이 소식은 나중에 ACM 커뮤니케이션 부서에 의해 발견되었습니다. 최초의 64비트 마이크로프로세서는 MIPS R4000으로 1992년 1분기에 SGI Crimson에 출시되었으며, 그해 말에는 Dec Alphas에 출시되었습니다.

R4000은 처음에는 32비트 모드에서 실행되었고 나중에는 64/32 모드, 즉 64비트 운영 체제, 64 또는 32비트 사용자 코드에서 실행되었습니다. Alphas는 항상 64비트에서만 UNIX를 실행합니다. (32비트 응용 프로그램의 설치된 기반이 없기 때문에 합리적인 선택입니다.)

SGI는 1990년대 후반에 64비트 Linux(Itanium에서 실행)에 기여했습니다. 그 무렵 XFS가 Linux로 포팅되었습니다(실제로 64비트가 필요함).

관련 정보