s390x 아키텍처 개발

엔디안

IBM Z에서의 Linux는 s390x 아키텍처에서 실행됩니다. x86와 달리, s390x 아키텍처는 빅 엔디안입니다. 많은 오픈 소스 프로젝트가 리틀 엔디안 시스템에 대해서만 테스트를 수행하므로, 엔디안 관련 버그가 잠복해 있을 수 있습니다. 예를 들어, 프로토콜 버퍼의 루비 구현에서는 몇 가지 빅 엔디안 버그를 수정했습니다.

VM 프로비저닝

s390x를 개발하는 방법은 여러 가지가 있습니다. 다음을 사용할 수 있습니다:

  • LinuxONE 가상 서버.
  • s390x를 에뮬레이트하는 QEMU.

    Docker를 사용하여 에뮬레이트된 s390x 가상 머신을 실행하려면 다음 명령어를 사용하세요:

    docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
    docker run --rm -it s390x/ubuntu bash
    

QEMU 가상 머신은 일반적으로 LinuxONE 머신보다 느리다는 점에 유의하세요.

Bazel

Bazel은 프로토콜 버퍼와 같은 여러 Google 프로젝트에 필요합니다. 소스에서 컴파일할 때, 치명적인 컴파일러 경고에 직면할 수 있습니다. 이러한 경고를 비활성화하는 우회 방법이 있습니다. 또한 IBM은 이러한 지침을 게시했습니다.

Omnibus 빌드 이미지

s390x 용 Omnibus GitLab을 빌드하려면 이 Dockerfile 템플릿을 사용할 수 있습니다. 다음과 같이 Dockerfile을 생성하세요:

./docker/scripts/generate-dockerfile docker/Dockerfile_debian_10_s390x.erb