s390x 아키텍처를 위한 개발

엔디안

Linux on IBM Z은 s390x 아키텍처에서 실행됩니다. x86과는 달리 s390x 아키텍처는 빅 엔디안입니다. 많은 오픈 소스 프로젝트는 리틀 엔디안 시스템에서만 테스트하므로 엔디안 관련 버그가 숨어 있을 수 있습니다. 예를 들어 Protocol Buffers의 Ruby 구현에서는 몇 가지 빅 엔디안 버그를 수정했습니다.

가상 머신 프로비저닝

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은 Protocol Buffers와 같은 Google 프로젝트에 필요합니다. 소스에서 컴파일할 때 이러한 치명적인 컴파일러 경고가 발생할 수 있습니다. 이러한 경고를 비활성화하는 해결책이 있습니다. 또한 IBM은 이러한 지침을 게시했습니다.

Omnibus 빌드 이미지

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

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