s390x 아키텍처 개발
엔디언
IBM Z의 Linux는 s390x 아키텍처에서 실행됩니다. x86과는 달리 s390x 아키텍처는 빅엔디언입니다. 많은 오픈 소스 프로젝트는 리틀엔디언 시스템에 대해서만 테스트하므로, 엔디언 관련 버그가 숨어 있을 수 있습니다. 예를 들어 Protocol Buffers의 Ruby 구현에서는 소수의 빅엔디언 버그를 수정했습니다.
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은 Protocol Buffers와 같은 Google 프로젝트에서 필요합니다. 소스에서 컴파일할 때 이러한 치명적인 컴파일러 경고를 만날 수 있습니다. 또한, 이러한 경고를 비활성화하는 해결책이 있습니다. 더불어 IBM은 다음 지침을 게시했습니다.
Omnibus 빌드 이미지
s390x용 Omnibus GitLab을 빌드하려면 이 Dockerfile 템플릿을 사용할 수 있습니다. 다음을 사용하여 Dockerfile을 생성합니다:
./docker/scripts/generate-dockerfile docker/Dockerfile_debian_10_s390x.erb