Linux 커널을 별도로 설치할 수 있나요?

Linux 커널을 별도로 설치할 수 있나요?

Linux 커널을 별도로 설치하는 것이 가능한지, 아니면 두 버전 중 하나를 사용해야 하는지 궁금합니다. 할 수 있다면 어떻게 하시겠습니까? 자세한 튜토리얼은 필요하지 않습니다. 개념적으로는 어떻게 되어있는지 궁금합니다. 나는 낮은 수준의 작업을 잘 하지 못하며 컴퓨터에 운영 체제를 설치하는 방법을 알고 싶습니다. MBR과 관련이 있는 것 같습니다.

아, 많은 답변이 최소 Linux의 특정 배포판을 암시한다는 것을 알았습니다. 최소한의 Linux나 단순한 Linux를 설치하려는 것이 아니라는 점을 말씀드리고 싶습니다. 이 질문은 순전히 이론적입니다. 그럼에도 불구하고 모든 답변에 진심으로 감사드리며 진정으로 개인화된 Linux를 설치하고 싶다면 즉시 참고하겠습니다.

답변1

기술적으로는 부트로더와 커널을 별도로 설치할 수 있지만 일단 커널이 부팅되면 "init"을 시작할 수 없다는 메시지가 표시되고 그 자리에 그대로 남아 있어 아무 것도 할 수 없습니다.

그건 그렇고, MBR의 부트 로더의 일부입니다. 커널은 디스크의 일반 영역 어딘가에 위치합니다. 부트로더는 커널을 로드하고 실행할 수 있도록 자신의 위치를 ​​알도록 구성됩니다.

답변2

질문하신 내용을 완전히 이해하지 못하신 것 같지만 한 번 살펴보시는 것이 좋을 것 같습니다.처음부터 리눅스프로젝트.

답변3

다른 프로그램을 설치하지 않고 기존 시스템에 커널을 "설치 또는 업그레이드"하는 것이 가능합니까?

Linux 커널은 일반적으로 디렉토리(보통 하드 드라이브 시작 부분에 있는 별도의 작은 파티션) vmlinuz-x.x.x-x-name에 이름이 지정된 바이너리 파일입니다 boot. 여기서 x는 버전 번호입니다. "이름"은 단순히 커널에 대해 선택된 이름으로, 컴파일 타임에 설정할 수 있으며 이를 사용하여 커널이 의도한 시스템이나 아키텍처 유형을 식별하거나 다른 이유로 사용할 수 있습니다.

이는 부팅 시 부트 로더에 의해 로드되며 일반적으로 GRUBMBR의 부팅 코드에 의해 호출되며, 이는 차례로 BIOS ROM에 의해 호출됩니다. 일단 로드되면 "열린 상태로 유지"되거나 특별히 보호되지 않습니다. 따라서 파일을 작동 중인 다른 코어로 교체할 수 있습니다. 그러나 GRUB부팅할 코어를 여러 개 선택할 수 있는 멋진 기능이 있습니다. 따라서 이 목록에 추가 코어를 추가하는 것이 매우 현명하지만 문제가 발생할 경우를 대비해 원래 알려진 작동 코어를 유지하십시오.

나는 거의 모든 배포판이 장치 드라이버가 별도의 파일에 있는 "모듈형" 커널을 만든다고 생각합니다. 따라서 대부분의 커널에는 부팅 시 사용 가능한 드라이버가 포함된 파일 시스템이 필요하며, 이는 "initrd"(초기 RAM 디스크) 또는 "initramfs"에 사용됩니다. GRUB커널은 메모리 어딘가에 로드되고 initrd는 다른 위치에 로드됩니다. 그런 다음 Linux는 커널로 점프하고 initrd가 어디에 있는지 알려줌으로써 부팅됩니다.

드라이버는 커널에 "내장"되어 부트로더가 이미지를 로드할 때 자동으로 로드되어 사용할 수 있습니다 vmlinuz. 다양한 시스템(예: 대부분의 배포판)용 커널은 일반적으로 커널에 내장된 내용을 최소화합니다. 사용 가능한 하드웨어는 나중에 부팅 프로세스 중에 검색되고 현재 하드웨어를 나타내는 모듈만 로드되기 때문입니다.

initrd를 수정하고 생성하는 도구가 있습니다. 데비안에는 훌륭한 도구가 있고 다른 배포판도 그럴 것이라고 생각합니다.

따라서 kernel.org에서 업데이트된 커널을 다운로드하고 이를 컴파일하여 새 커널 바이너리 이미지를 생성하는 경우 해당 커널과 작동하는 드라이버로 initrd를 만들거나 업데이트해야 합니다. 드라이버가 실행 중인 커널 버전과 일치해야 하므로 이전 initrd는 작동하지 않습니다.

initrd 파일은 initrd.img-x.x.x.x-name커널과 같은 이름이 지정되고 부팅 후 커널과 같이 교체될 수 있습니다. 가장 좋은 방법은 새 커널+initrd로 성공적으로 부팅할 수 있다는 것을 확인할 때까지 알려진 작동 initrd를 삭제하지 않는 것입니다.

이것이 약간의 맥락을 제공하기를 바랍니다.

추가 프로그램이 거의 설치되지 않은 "기본" Linux 설치를 찾고 있다면 제가 가장 좋아하는 옵션은 항상 Debian netinst이미지를 설치하는 것이었습니다. 명령줄 텍스트 콘솔을 실행하고 nano텍스트 편집기 역할을 하는 데 필요한 가장 기본적인 도구만 있으면 됩니다 .

답변4

Linux 커널은 일반적인 사용자 공간 도구 없이 설치할 수 있습니다. 이는 일반적으로 라우터와 같은 임베디드 시스템에서 수행됩니다. 일반적으로 커널은 ROM 또는 플래시 메모리에서 로드되며 문제의 장치에 맞게 사용자 정의됩니다(필요한 드라이버는 일반적으로 모듈로 로드되지 않고 커널에 컴파일됩니다).

"init" 프로세스가 되려면 최소한 하나의 사용자 공간 프로그램이 존재해야 합니다(반드시 호출할 필요는 없지만 init커널에 의해 프로세스 1로 시작되고 모든 고아 프로세스의 자동 부모). - 커널이 수정되지 않은 경우(반드시 단순할 필요는 없음) 사용자 정의) 이것이 필요하지 않습니다.

물론 Linux 기반 장치를 작동시키기 위해 셸을 사용할 필요는 없지만 개발이 훨씬 쉬워질 수는 있습니다!

관련 정보