본문 바로가기
리눅스

Linux From Scratch

by 다움위키 2023. 12. 9.

Linux From Scratch(LFS)는 리눅스 설치의 유형이고 Gerard Beekmans에 의해 쓰인 책 이름으로, 2021년 5월 당시, 주로 Bruce Dubbs에 의해 유지 관리됩니다. 그 책은 독자들에게 소스에서 리눅스 시스템을 구축하는 방법에 대한 지침을 제공합니다. 그 책은 Linux From Scratch 사이트에서 무료로 사용할 수 있습니다.

Projects under LFS

Linux From Scratch는 그것의 모든 구성 요소를 수동으로 빌드함으로써 작동하는 리눅스 시스템을 설치하기 위한 한 가지 방법입니다. 이것은 당연히 미리 컴파일된 리눅스 배포판을 설치하는 것보다 더 긴 과정입니다. Linux From Scratch 사이트에 따르면, 이 방법의 장점은 간결하고, 유연하고 안전한 시스템과 리눅스-기반 운영 시스템의 내부 작동의 더 높은 이해도입니다.

LFS를 작고 집중되게 유지하기 위해, Beyond Linux From Scratch (BLFS)라는 책이 만들어졌으며, LFS에서 만든 기본 리눅스 시스템을 추가로 개발하는 방법에 대한 지침을 제공합니다. 그것은 X 윈도우 시스템, 데스크탑 환경 (KDE, GNOME, Xfce, LXDE), 생산성 소프트웨어, 웹 브라우저, 프로그래밍 언어와 도구, 멀티미디어 소프트웨어, 및 네트워크 관리시스템 관리 도구를 포함한 시스템에 대한 추가 사항을 소개하고 안내합니다. 출시 5.0부터, BLFS 책 버전은 LFS 책 버전과 일치합니다.

Cross Linux From Scratch (CLFS)라는 책은 리눅스를 실행할 수 있지만, 리눅스를 컴파일하는 데 필요한 자원이 부족한 헤드리스 또는 임베디드 시스템에 대해 컴파일을 포함하여 크로스 컴파일에 중점을 둡니다. CLFS는 광범위한 프로세서를 지원하고 크로스-빌드 툴체인, 다중-라이브러리 지원 (32와 64-비트 라이브러리 나란히), 및 Itanium, SPARC, MIPS, 및 Alpha와 같은 대체 명령어 집합 아키텍처와 같은 LFS 책에 포함되지 않은 고급 기술을 다룹니다.

BitBake와 같은 Linux from Scratch 프로젝트는 역시 Raspberry PiBeagleBone과 같은 ARM 임베디드 시스템에 대해 크로스-컴파일 리눅스를 지원합니다.

Hardened Linux From Scratch (HLFS)라는 책은 강화된 커널 패치, 필수 접근 제어 정책, 스택-스매싱 보호, 및 주소 공간 레이아웃 무작위화와 같은 보안 향상에 중점을 둡니다. HLFS는 보안 중심 운영 시스템을 만드는 주요 목적 외에도, 보안 교육 도구가 되는 두 번째 목표를 가지고 있었습니다. 그것은 2011년 이후로 업데이트되지 않았습니다.

Automated Linux From Scratch (ALFS)는 LFS 시스템의 생성 과정을 자동화하도록 설계된 프로젝트입니다. 그것은 LFS와 BLFS 책을 여러 번 읽었고 관련된 작업량을 줄이고자 하는 사용자를 대상으로 합니다. 두 번째 목표는 LFS와 BLFS 책의 XML 소스에서 지침을 직접 추출하고 실행함으로써 LFS와 BLFS 책의 테스트 역할을 하는 것입니다.

Requirements and procedure

깨끗한 파티션과 컴파일러와 일부 필수 소프트웨어 라이브러리를 갖는 작동하는 리눅스 시스템이 LFS를 구축하기 위해 요구됩니다. 기존 리눅스 시스템에서 설치하는 대신, 라이브 CD를 LFS 시스템을 구축하기 위해 사용할 수도 있습니다.

그 프로젝트는 이전에 Linux From Scratch Live CD를 유지 관리했습니다. LFS Live CD에는 모든 소스 패키지 (Live CD의 전체 버전에만 있음), LFS 책, 자동화된 빌드 도구, 및 작업할 Xfce GUI 환경 (최소 Live CD 버전 제외)을 포함하고 있습니다. 공식 LFS Live CD는 더 이상 유지 관리되지 않고, LFS 버전 7 이상을 구축하기 위해 사용될 수 없습니다. 어쨌든, LFS 7.x에 대해 각각 32-비트 또는 64-비트 커널과 사용자 공간을 구축하기 위해 사용될 수 있는 두 가지 비공식 빌드가 있습니다.

먼저, GCC, glibc, binutils, 및 기타 필요한 유틸리티와 같이 LFS를 컴파일하기 위해 사용되는 도구로 구성된 도구 모음이 컴파일되어야 합니다. 그런-다음, 루트 디렉토리가, (chroot를 사용하여), 도구 모음의 파티션을 최종 시스템 구축을 시작하기 위해 변경되어야 합니다. 컴파일할 첫 번째 패키지 중 하나는 glibc입니다; 그 후에 도구 모음의 링커는 새로 빌드된 glibc에 대해 링크되도록 조정되어, 완성된 시스템을 구성할 다른 모든 패키지도 이에 대해 링크될 수 있도록 해야 합니다. chroot 단계 동안, bash의 해싱 기능이 꺼지고 임시 도구 모음의 bin 디렉토리가 PATH의 끝으로 이동합니다. 이렇게 하면 새로 컴파일된 프로그램이 PATH에서 처음으로 표시되고 새로운 시스템은 자체 새 구성 요소를 기반으로 구축됩니다.

List of packages in LFS

 

이것이 CLFS 버전 1.1.0에 포함된 패키지의 목록입니다. 달리 명시되지 않는 한, 이 목록은 모든 지원되는 아키텍처에 적용될 수 있습니다.


Standard build unit

"표준 빌드 단위" ("SBU")는 시스템의 초기 부트스트래핑 동안 사용되는 용어이고, 주어진 컴퓨터 위에 LFS에서 첫 번째 패키지를 빌드하기 위해 요구된 시간의 총양을 나타냅니다. LFS 시스템을 구축하는 데 오랜 시간이 걸리고, 소스 타르볼을 미리 구축하는 데 시간이 얼마나 걸릴지 알고 싶어 하는 많은 사용자의 바람에 의해 생성되었습니다.

Linux From Scratch 버전 10.1부터, 사용자에 의해 빌드된 첫 번째 패키지는 GNU binutils입니다. 그것을 빌드할 때, 사용자는 쉘 구성을 사용하여 빌드 프로세스를 측정하고 그 시간을 시스템의 "표준 빌드 단위"로 더빙하는 것이 좋습니다. 한번 이 숫자가 알려지면, 이후 패키지를 빌드하는 데 필요한 예상 시간이 알려진 SBU를 기준으로 표시됩니다.

GNU C 라이브러리 (등급 4.2 SBU)와 GNU Compiler Collection (등급 11 SBU)을 포함하여 컴파일 중에 빌드된 여러 패키지는 binutils보다 빌드하는 데 훨씬 오래 걸립니다. 그 단위는 근사치로 해석되어야 합니다; 다양한 요소가 패키지를 빌드하는 데 필요한 실제 시간에 영향을 줍니다.

Reception

LWN.net는 2004에 LFS를 검토했습니다:

Linux From Scratch는 훌륭한 프로젝트입니다. 그것은 모든 리눅스 교육 과정에 대해 필수 읽기 자료가 되어야 하고, 모든 각 리눅스 애호가가 적어도 한 번은 완료해야 하는 것입니다. 이것은 역시 또 다른 흥미로운 부과 효과를 일으킬 것입니다; 배포판의 메일링 리스트와 포럼에 불만을 빨리 표현하는 경향이 있는 사람들은 아마도 개발자를 훨씬 더 존경하게 될 것입니다. 기성품 배포판을 설치하는 것은 간단한 작업입니다. 안정적, 안전하고 신뢰할 수 있는 운영 시스템과 수천 개의 응용 프로그램을 포함하는 4개의 CD 모음을 구축하는 것이 가장 확실한 것은 아닙니다.

Tux Machines는 2005년에 Linux From Scratch 6.1에 대한 검토를 작성했습니다:

이제 BLFS로 이동합니다. 불행하게도, Beyond Linux From Scratch는 항상 책 뒤에 있는 것 같습니다. 나에게 그것은 창 관리자에 로그인할 수 있을 때까지 실제 설치가 아닙니다.

Tux Machines에는 역시 검토의 두 번째 및 세 번째 부분이 있습니다.

External links