ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1일차: 밑바닥부터 시작하는 리눅스 서문과 소개
    밑바닥부터 시작하는 리눅스(Linux From Scratch) 2024. 12. 7. 19:47

    밑바닥부터 시작하는 리눅스

    서문

    1998년에 처음 리눅스 배포판을 설치한 이후, 리눅스의 개념과 철학에 깊은 흥미를 느끼게 되었습니다. 하나의 작업을 수행하는 방법에는 항상 여러 가지 방법이 존재하며, 이는 리눅스 배포판에서도 마찬가지입니다. 많은 배포판이 등장했고, 일부는 아직도 존재하며, 일부는 변형되거나 더 이상 사용되지 않습니다. 각각의 배포판은 사용자 그룹의 필요를 충족시키기 위해 서로 다른 방식으로 설계되었습니다.

    리눅스를 사용하면서 운영 체제에서 선택의 자유를 가질 수 있다는 점이 매우 매력적이었습니다. 기존에는 선택의 여지가 없는 운영 체제를 받아들여야 했습니다. 그러나 리눅스를 통해, 마음에 들지 않는 부분을 바꾸는 것이 가능하다는 사실을 깨닫게 되었습니다.

    여러 배포판을 사용해 보았지만, 저에게 완벽한 시스템을 찾기 어려웠습니다. 각 배포판은 나름의 장점을 가지고 있었지만, 제가 원하는 모든 것을 충족시키지는 못했습니다. 그래서 개인의 요구를 완전히 충족할 수 있는 나만의 리눅스 시스템을 만들기로 결심했습니다.

    나만의 시스템을 만들기 위해 모든 것을 소스 코드에서부터 컴파일하기로 했습니다. 이 과정은 매우 도전적이었지만, 순환적 종속성과 컴파일 오류를 해결하며 마침내 완전히 작동하는 시스템을 구축하게 되었습니다. 이 시스템은 다른 리눅스 배포판처럼 완벽히 동작했지만, 저만의 창작물이라는 점에서 큰 만족감을 주었습니다.

    이 경험을 공유하면서 리눅스 커뮤니티에서도 이러한 아이디어에 지속적인 관심을 갖는 사람들이 있다는 것을 알게 되었습니다. 이 프로젝트는 단순히 사용자 특정 요구를 충족하는 것뿐만 아니라 프로그래머와 시스템 관리자가 리눅스를 더 깊이 이해할 수 있는 학습 기회를 제공했습니다. 이렇게 해서 Linux From Scratch 프로젝트가 탄생하게 되었습니다.

    이 책은 여러분이 자신만의 리눅스 시스템을 설계하고 구축하는 데 필요한 배경지식과 지침을 제공합니다. 여러분은 이 책을 템플릿으로 사용해 작동하는 시스템을 만들 수 있으며, 필요한 경우 자신만의 방식으로 변경할 수 있습니다.

    여러분이 Linux From Scratch 시스템을 구축하면서 즐거움을 느끼고, 진정 자신만의 시스템을 갖게 되기를 바랍니다.

    – Gerard Beekmans


    독자 대상

    이 책을 읽는 이유는 여러 가지가 있을 수 있습니다. 많은 사람들이 “왜 기존의 배포판을 다운로드해서 설치하는 대신, 이렇게 복잡한 과정을 거쳐 리눅스를 수동으로 빌드해야 하는가?”라는 질문을 던집니다.

    이 프로젝트가 존재하는 주요 이유 중 하나는 리눅스 시스템이 내부적으로 어떻게 작동하는지 배우는 데 있습니다. LFS 시스템을 빌드하면서 리눅스의 동작 원리와 구성 요소 간의 상호 의존성을 직접적으로 경험할 수 있습니다. 이러한 학습 경험은 맞춤형 리눅스 시스템을 구성할 수 있는 능력을 제공합니다.

    또한, LFS는 시스템을 완벽히 제어할 수 있는 기회를 제공합니다. 여러분은 다른 배포판 제작자의 결정에 의존하지 않고 시스템의 모든 측면을 직접 결정할 수 있습니다.

    LFS를 사용하면 매우 간결한 리눅스 시스템을 만들 수 있습니다. 기존 배포판에서는 사용하지 않는 많은 프로그램이 함께 설치되는 경우가 많아 자원이 낭비됩니다. 오늘날의 하드웨어 성능을 고려하면 자원 낭비는 큰 문제가 아닐 수도 있지만, 부팅 가능한 CD, USB 스틱, 임베디드 시스템처럼 크기가 제한되는 경우에는 여전히 중요한 요소가 됩니다.

    맞춤형 시스템의 또 다른 장점은 보안입니다. 전체 시스템을 소스 코드에서부터 컴파일하면, 모든 보안 패치를 직접 검토하고 적용할 수 있습니다. 다른 사람이 제공한 바이너리 패키지에 의존할 필요가 없으며, 패치가 제대로 적용되었는지 확인할 수 있습니다.

    LFS의 목표는 완전하고 사용할 수 있는 기본 수준의 시스템을 구축하는 것입니다. 만약 자신만의 리눅스 시스템을 만들고 싶지 않더라도, 이 책에서 제공하는 정보는 여전히 유용할 것입니다.

    교육은 LFS를 구축하는 가장 중요한 이유입니다. LFS 경험을 통해 정보를 직접 다루는 힘과 지식을 얻을 수 있을 것입니다.


    LFS 시스템 빌드 개요

    LFS 시스템은 이미 설치된 리눅스 배포판(예: Debian, Fedora, openSUSE)을 사용하여 빌드됩니다. 이 기존 리눅스 시스템(호스트)은 새로운 시스템을 빌드하는 데 필요한 컴파일러, 링커, 셸 등 주요 도구를 제공합니다.

    프로세스 요약:

    1. 준비 작업: 새로운 파티션을 만들고, 파일 시스템을 준비합니다.
    2. 필요 패키지 다운로드: LFS 시스템을 구성하는 데 필요한 패키지와 패치를 준비합니다.
    3. 초기 도구 체인 구축: Binutils, GCC, Glibc 등의 도구 체인을 설정합니다.
    4. 기본 시스템 소프트웨어 설치: 전체 시스템을 구성하는 소프트웨어를 빌드하고 설치합니다.
    5. 시스템 설정: 부팅 스크립트, 네트워크 설정 등을 구성합니다.
    6. 부트로더 및 커널 설치: GRUB과 커널을 설정하고 새로운 시스템을 부팅합니다.

    각 장에서 이 프로세스를 자세히 다루며, 하나씩 차근차근 완성해 나갑니다.


    1.2 새로운 내용 및 변경 사항

    이 책은 이전 버전에서 몇 가지 주요 변경 사항을 포함합니다.

    • 업그레이드된 패키지: GCC, Glibc, Bash 등 주요 패키지가 업데이트되었습니다.
    • 추가된 패키지: 새로운 유틸리티 및 보안 패치 적용.
Designed by Tistory.