s390x 아키텍처 개발
엔디안
IBM Z에서의 Linux는 s390x 아키텍처에서 실행됩니다. x86와 달리, s390x 아키텍처는 빅 엔디안입니다. 많은 오픈 소스 프로젝트가 리틀 엔디안 시스템에 대해서만 테스트를 수행하므로, 엔디안 관련 버그가 잠복해 있을 수 있습니다. 예를 들어, 프로토콜 버퍼의 루비 구현에서는 몇 가지 빅 엔디안 버그를 수정했습니다.
VM 프로비저닝
s390x를 개발하는 방법은 여러 가지가 있습니다. 다음을 사용할 수 있습니다:
- LinuxONE 가상 서버.
-
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