내 상황은 다음과 같습니다. 새로 컴파일된 커널, 새 플랫폼용으로 컴파일된 모든 애플리케이션 및 라이브러리가 있고, 선택한 부트로더로 부팅하는 방법을 알고 있지만 루트 파일 시스템이 없습니다.
특정 Linux 커널에 대한 새 루트 파일 시스템을 채우는 방법, Linux 커널에 실제로 필요한 라이브러리, 그리고 최소한의 Linux로 Linux 커널을 실행하는 데 필요한 모든 기능에 대한 공식 또는 잘 테스트된 가이드가 있는지 궁금합니다. 상자 .
가장 확실한 것은 C 라이브러리라고 생각합니다. 어쨌든 ac 라이브러리가 필요하지만 C 라이브러리와 내가 좋아하는 모든 추가 프로그램 및 라이브러리를 사용할 수 있는지, 아니면 커널에 다른 것이 필요한지 잘 모르겠습니다. , 심지어 구성 파일 측면에서도 Linux 커널이 루트 파일 시스템에서 어떤 파일을 찾을 것으로 예상하는지에 대한 명확한 정보를 찾지 못했습니다.
/lib
내가 찾은 것은 Linux 호환 파일 시스템에 대해 원하는 디렉토리 구조에 관한 것입니다. 기본적으로 , /usr
, 및 더 많은 디렉토리가 있어야 /bin
하지만 새 파일 시스템을 만드는 데 실질적인 내용은 없습니다.
폴리스티렌
질문은 ~이야아니요파일 시스템을 생성하는 방법, 부팅하는 방법 또는 기타 사항에 관해서는 새 Linux 상자를 부팅할 수 있도록 이 커널 + 파일 시스템 쌍을 완료하는 데 필요한 파일이 무엇인지 알고 싶습니다.
답변1
리눅스 커널은 별로 신경쓰지 않습니다. 부트로더는 루트 파일 시스템(보통 초기 램디스크 이미지(initrd))을 마운트할 위치를 커널에 알려주지만, 실제 루트 파일 시스템일 수도 있습니다. 그렇지 않은 경우 커널은 init 프로세스 /sbin/init
( initramfs에서)를 시작합니다./init
/proc
커널 파일 시스템( , /sys
, /dev
udev 등) 의 위치도 기본적으로 사용자 공간에 따라 결정됩니다.
이것리눅스 표준 라이브러리이 프로젝트는 다양한 Linux 배포판에서 이를 표준화합니다. (글쎄요. 장치 이름 지정 등에는 여전히 약간의 차이가 있으며 /usr/bin
에서 병합하는 /bin
것에 대한 /usr/lib
논의가 있습니다 /lib
.) 그 버전은 ISO 표준 ISO/IEC 23360으로 승인되었습니다. 2016년 10월 현재 LSB의 최신 버전은 다음과 같습니다.최하위 비트 5.
Linux 커널 개발자는 사용자 공간 인터페이스의 항목을 이전 버전과 호환되도록 유지하기 위해 매우 열심히 노력합니다. 이것이 버전 2.6의 정보가 4.4에 매우 적용 가능한 이유입니다. 거의 새로운 기능과 인터페이스가 도입된 경우에만 새 버전이 이전 버전과 달라지며 이에 대한 문서를 찾아야 합니다.
일부 라이브러리와 애플리케이션을 컴파일했다고 언급하셨습니다. 그렇다면 사용하는 컴파일 시간 설정( configure
설정 확인 --prefix
등)과 이러한 라이브러리 및 응용 프로그램이 구성 파일(C 라이브러리의 시간대 파일, 국제화 등 포함)을 찾는 디렉터리에 따라 디렉토리 구조. 반드시 필요합니다.
리눅스는 처음부터 시작됩니다!완전한 기능을 갖춘 Linux 배포판을 처음부터 컴파일하고 구축하는 방법에 대한 책을 쓰는 커뮤니티입니다. 아주 작은 것은 아닙니다. 경우에 따라 특정 패키지를 생략하거나 다른 패키지를 제거할 수도 있습니다. 하지만 모든 것이 고려됩니다.
롭 랜드리Linux 커널 콘텐츠를 문서화한 것으로 알려져 있습니다. 그의initramfs 소개,initramfs를 사용하는 방법, 그리고initramfs 프로그래밍많은 임베디드 장치처럼 initramfs에서 직접 실행되는 최소 시스템을 생성하려는 경우 이는 매우 흥미롭습니다.
일반적으로 systemd 에 관해서 systemctl
는 알려 드리겠습니다.홈페이지,행운을 빌어요. 나 자신도 이를 방지하고 여전히 인식할 수 있는 보다 강력한 초기화 시스템을 사용하는 방법을 찾고 있습니다.유닉스 철학변덕스럽게 얽힌 엉망진창으로 모이는 대신. (내 경험에 따르면 전자는 장기적으로 기능적이고 유지 관리가 가능한 반면, 후자는 새로운 기능과 외부 개선의 통합으로 인해 최종 사용자가 선호하는 경우가 많지만 장기적으로 시스템과 시스템 관리자를 취약하고 취약하게 만듭니다. . 깨졌습니다. 귀하의 경험과 의견은 다를 수 있습니다.)
Linux 클러스터 노드를 평가하기 위해 간단한 벤치마크 USB 스틱을 개발할 때 OP가 요청한 세부 정보를 찾기 위해 설치할 수 있는 최소한의 Debian 및 CentOS 시스템을 확인했습니다. 소규모 경량 시스템) 최종 클러스터 자체와 동일한 바이너리를 실행할 수 있는 시스템, 즉 기본 서비스 및 라이브러리를 포함합니다. 오늘은 꼭 보시길 추천드려요데반, 여러 초기화 시스템을 지원하기 때문입니다. 가상 머신에서 이러한 실험을 수행하는 것은 매우 유익할 것입니다.
이론이나 표준을 넘어서 연습하세요. 강제된 표준은 없으며 실제로는 어떠한 표준도 없습니다. 심지어 LSB와 ISO/IEC 23360도 성공적인 상호 운용성을 위한 지침에 가깝습니다. 이것리눅스 커널 문서Linux 커널 소스 코드에서 추출한 내용은 커널 기대치를 설명하지만 앞서 언급한 것처럼 파일 시스템 트리에 영향을 미치는 기대치는 거의 없습니다. 심지어 부팅 시 또는 컴파일 시 구성이 가능한 경향이 있습니다.