"단지 /dev, /etc 및 Linux 커널을 추가한다"는 것은 무엇을 의미합니까 - BusyBox

"단지 /dev, /etc 및 Linux 커널을 추가한다"는 것은 무엇을 의미합니까 - BusyBox

내가 읽은 문서바쁜 상자목적은 작은 파일 크기를 활용하여 부팅 가능한 CD를 만드는 것입니다.

문서에는 다음과 같은 내용이 나와 있습니다.

To create a working system, just add /dev, /etc, and a Linux kernel.

나는 Ubuntu 및 CentOS와 같은 일부 Linux 배포판을 사용했으며 cmd를 실행할 때 fdisk 일반적으로 /dev로 시작하는 추가 장치 목록을 반환하고 ls/etc에서 실행할 때 일부 파일을 표시합니다.

부팅하기 전에 BusyBox에 /dev 및 /etc를 어떻게/무엇을 추가해야 하는지 혼란스럽습니다... 런타임 환경에 추가될 것이라고 생각했습니다.

이런 방식으로 이야기할 때 /dev 및 /etc가 다른 관점에서 인식됩니까? 아니면 기본 메커니즘을 많이 이해하지 못한 채 사전 구축된 배포판을 사용할 때 잘못된 관점을 만드는 것입니까?

답변1

문서에서 말하려는 요점은 이것이 상당히 완전한 사용자 공간이지만 (임베디드 장치용 펌웨어를 출시하려는 사람으로서) 여전히 수행해야 할 역할이 있다는 것입니다.

Busybox는 실행될 환경에 대해 몇 가지 가정을 하며 해당 설명은 여기에 문서화되어 있습니다.

  1. 어떤 방식으로든 초기 시작 프로세스를 처리하게 됩니다. 여기에는 부트로더를 커널로 전달하는 것이 포함됩니다. 커널은 하드웨어에 적합해야 하며 일반적으로 충분히 "소리"가 나야 합니다.
  2. Busybox 자체로는 추가 작업 없이 사용 가능한 장치를 실행하기에 충분하지 않습니다. 단순히 비지박스를 컴파일하여 파일 시스템에 덤프하고 추가 작업 없이 커널이 부팅되자마자 제어권을 넘겨줄 수는 없습니다.어딘가에첫 번째. 파일 시스템에 /dev가 존재하고 장치 inode가 하드웨어와 일치하도록 채워졌는지 확인해야 합니다. 이를 수행하는 정확한 메커니즘은 커널 버전과 대상으로 하는 하드웨어/플랫폼에 따라 다르며 Linux 커널 버전이 발전하면서 많이 변경되었으며 이를 수행하는 방법은 여러 가지가 있습니다.
  3. 마지막으로, busybox에서 제공하는 많은 부품(및 다른 곳에서 구해야 하는 부품)에는 일종의 구성이 필요합니다. 이를 관리하는 방법은 귀하에게 달려 있지만 요점은 busybox에서 실행하는 많은 명령이 /etc에서 구성 파일을 읽으며 이러한 구성 파일을 채우고 유지 관리하는 메커니즘을 제공하지 않는 경우 이러한 명령은 작동하지 않습니다.

아마도 임베디드 장치에는 squashfs와 같은 것을 사용하는 하나의 파일 시스템만 있을 것이며 그 안의 모든 것은 읽기 전용일 것입니다. 그러나 요점은 제어권을 넘겨줄 때 이미지/설치 프로그램이 이를 올바른 위치에 배치하기 위해 모든 작업을 수행해야 한다는 것입니다.

관련 정보