모든 Linux 배포판에는 어떤 소프트웨어가 공통적으로 있습니까?

모든 Linux 배포판에는 어떤 소프트웨어가 공통적으로 있습니까?

일부 배경:

최근에 설치 스크립트를 사용하여 Ubuntu를 설치한 다음 Ubuntu rootfs를 Arch rootfs로 덮어쓰는 이상한 방법을 통해 Chromebook에 Arch Linux를 설치했습니다. 이 메커니즘이 무엇인지 잘 모르겠습니다(아래 그림 참조).https://wiki.archlinux.org/index.php/Acer_C7_Chromebook).

모든 Linux 배포판에 공통된 rootfs로 루트를 지정하기 전에 실행되는 Linux의 일부입니까(이것이 초기 부팅이 Arch와 Ubuntu 모두에서 작동하는 이유입니다)? 아니면 더 일반적으로 모든 Linux 배포판에 공통적으로 사용되는 소프트웨어, 즉 Linux 배포판을 정의하는 소프트웨어는 무엇입니까?

답변1

질문#1: 또는 보다 일반적으로 모든 Linux 배포판에서 공통적으로 사용되는 소프트웨어, 즉 Linux 배포판을 정의하는 소프트웨어는 무엇입니까?

GNU/Linux 배포판에 관해 이야기한다면 배포판 전체에서 사용자 영역이 거의 동일하다고 추측할 수 있습니다.

GNU Coreutils, GNU Binutils, GNU Bash, GNU Compiler Collection 등을 사용하지 않고 실행되는 것은 생각할 수 없습니다.

이제 여러분이 원하는 것이 Linux 배포판을 구성하는 요소에 대한 정의라면 다음과 같은 한 문장으로 표현해 보세요.이것이 Linux 커널이고 사용자 공간이 있습니다. 이 커널은 사용자에게 유용하도록 커널 위에서 실행되는 소프트웨어 세트입니다..

대부분의 Linux 배포판또한 일종의 소프트웨어 관리 시스템을 사용하십시오.예를 들어 소프트웨어 설치 및 구성을 단순화하기 위해(Debian과 같은 바이너리 패키지 관리 또는 Gentoo와 같은 소스 패키지 관리를 통해) 때로는일부 배포판 전용 소프트웨어debconf, 관리 도구( Debian이나 OpenSuse 등을 생각할 수 있음 yast)와 같은 것입니다.좀 더 확실한 답변을 원하시면 꼭 살펴보세요.처음부터 리눅스

Q#2: rootfs로 chroot하기 전에 실행되는 Linux의 일부는 모든 Linux 배포판에 공통적으로 적용됩니까(이것이 초기 부팅이 Arch와 Ubuntu 모두에서 작동하는 이유입니다)?

예, 아니오. 대부분의 배포판에서는 다음 단계를 약간 수정한 버전을 사용하지만 기술 선택은 부분마다 다를 수 있습니다. 예를 들어 다양한 부트로더(GRUB, Lilo 등)가 있습니다.

Wikipedia 기사 제목에서 발췌:리눅스 부팅 과정

  1. BIOS는 하드웨어 플랫폼별 부팅 작업을 수행합니다.
  2. 하드웨어가 올바르게 인식되고 부팅되면 BIOS는 지정된 부팅 장치에서 Linux 부트 로더의 1단계를 포함하는 파티션 부팅 코드를 로드하고 실행합니다. 1단계에서는 2단계(대부분의 부트로더 코드)를 로드합니다. 일부 로더는 이를 달성하기 위해 중간 단계(1.5단계라고 함)를 사용할 수 있습니다. 최신 대형 디스크는 추가 코드 없이는 완전히 읽을 수 없기 때문입니다.
  3. 부트 로더는 일반적으로 사용자에게 가능한 부팅 옵션 메뉴를 제공합니다. 그런 다음 운영 체제를 로드하고 메모리에 압축을 푼 다음 start_kernel()을 호출하기 전에 기본 하드웨어 및 메모리 페이징과 같은 시스템 기능을 설정합니다.
  4. 그런 다음 start_kernel()은 유휴 프로세스와 스케줄러 및 Init 프로세스(사용자 공간에서 실행됨)를 각각 생성하기 전에 대부분의 시스템 설정(인터럽트, 남은 메모리 관리, 장치 초기화, 드라이버 등)을 수행합니다.
  5. Init 프로세스는 필요에 따라 스크립트를 실행하고 운영 체제가 아닌 모든 서비스와 구조를 설정하여 사용자 환경을 만든 다음 사용자에게 로그인 화면을 표시합니다.

자세한 내용은

명백한 복잡성(첫 번째 단계 부트 로더를 두 번째 단계라고 함)은 PC의 역사와 관련이 있습니다. PC의 역사는 IBM과 다른 회사가 다양한 하위 시스템의 설계와 함께 작동하는 방식을 표준화함에 따라 모든 것이 확고히 자리 잡았습니다.

또 다른 복잡성은 다양한 구성 요소가 모듈식이고 상호 교환이 가능한 Linux의 특성에서 비롯됩니다. 이 모듈식 설계에는 비용이 들며 여기에서 아키텍처의 과도한 엔지니어링을 볼 수 있습니다. Linux는 다양한 하드웨어 플랫폼에서 부팅할 수 있고 다양한 파일 시스템을 지원할 수 있으므로 이는 부분적으로 이러한 모든 선택의 결과입니다.

관련 정보