GNU를 컴파일하고 부팅하는 것이 가능합니까?

GNU를 컴파일하고 부팅하는 것이 가능합니까?

Guix의 새 버전이 얼마 전에 출시되었습니다. 내 생각에는 glibc, gcc, guix를 HURD와 Mach로 부팅할 수 있다면 Linux가 아닌 GNU 시스템도 가질 수 있을 것입니다. 하지만 bash, emacs, binutils, coreutils 및 init system과 같은 일부 소프트웨어도 필요합니다. Linux에 의존하는 시스템 호출이 있습니까? LFS처럼 할 수 있나요?

답변1

몇 년 전 저는 처음부터 GNU/Hurd 기반 배포판을 만들었습니다. 아직도 구글에서 검색하시면 찾으실 수 있습니다비 GNU/허드.

모든 공식 GNU 소프트웨어(당신이 언급한 패키지 포함)는 Hurd를 지원해야 하며, 대부분의 패키지는 실제로 지원합니다. 그러나 Hurd는 Linux의 드롭인 대체품이 아니므로 실제로 모든 패키지를 크로스 컴파일해야 하거나 다른 아키텍처용 소프트웨어를 구축하는 방법과 마찬가지로 기본 GNU/Hurd 시스템에서 컴파일해야 합니다( 즉, x86에서 arm 소프트웨어 구축).

즉, 다음 단계를 따르는 것이 좋습니다.

  • Debian GNU/Hurd를 어딘가에 설치하고(가상 머신이 그럴 것입니다) 익숙해지세요.

  • 해당 시스템에 Guix를 빌드하고 실제로 패키지를 빌드하고 설치할 수 있는지 확인하십시오(일부 변경이 필요할 수 있음).

  • 생성 및 관리가 가능하도록 Guix를 수정하세요.아흐

  • 이 단계에서는 원하는 곳 어디에서나 완전한 Hurd 기반 GNU 시스템을 부팅할 준비가 되어 있어야 합니다. 그런 다음 GRUB를 올바르게 구성하기만 하면 됩니다.

즐거운 해킹되세요!

답변2

[업데이트] 저는 최근 Fosdem에서 Guix를 Hurd로 포팅하는 것에 대해 강연했습니다. 여기에서 보실 수 있습니다.guix_to_hurd_fosdem_16

저는 Guix Hurd 포트에서 작업하는 사람입니다. Guix를 Hurd와 함께 실제로 사용하려면 먼저 GNU/Hurd 시스템을 지원하도록 Guix 부팅 프로세스를 수정해야 합니다. 이는 Guix가 glibc, Gnumach 및 Hurd의 허드 버전을 크로스 빌드할 수 있어야 함을 의미합니다.
이 섹션을 완료한 후에는 새 glibc를 사용하여 부팅 도구 체인을 빌드하고 부팅 바이너리를 생성해야 합니다. 이 시점에서 새로 빌드된 바이너리를 GNU/Hurd 시스템에 복사하고 해당 시스템에서 Guix를 빌드하는 데 사용해야 합니다.

Guix 부팅 프로세스

관련 정보