저는 매우 오래된 컴퓨터인 16MB RAM을 갖춘 Pentium MMX에서 소프트웨어를 업그레이드하려고 합니다. 현재 2.4.37.11 커널을 실행 중입니다.
2.4 커널이 수행하는 모든 작업을 수행하는 최소한의 비모듈식 4.14 커널을 구성하고 이 커널에서 부팅을 시도했습니다. LILO로 부팅하면 다음과 같은 출력이 생성됩니다.
boot: gentoo-4.14.3
Loading gentoo-4.14.3.................................
BIOS data check successful
이 시점에서 화면이 잠깐 깜박인 후 시스템이 정지됩니다.
다른 시스템에서 32MB RAM을 추가하면 4.14 커널이 제대로 부팅되고 free
4MB보다 약간 많은 RAM을 사용하는 커널이 표시됩니다. 부팅하는 동안 커널에 특정 최소 RAM 용량이 필요합니까?
답변1
최신 커널에는 최소 메모리 제한이 없습니다.필요하다(또는 있는 경우 16MB 미만입니다.) 그들이 가진 건 최소한의 기억뿐이다주소.
커널의 초기 역사 대부분에서 x86 커널은 기본적으로 특별히 처리된 첫 번째 RAM 메가바이트 바로 위의 물리적 메모리 주소 0x100000에 로드되었습니다. 2.6 시리즈부터 구성 기호를 통해 다양한 로드 주소를 설정하는 기능이 추가되었으며 CONFIG_PHYSICAL_START
, 2.6.31에서는 다양한 하드웨어 문제를 해결하기 위해 기본값이 16MB 표시로 변경되었습니다.
따라서 충돌은 시스템이 메모리 상단을 바로 지나는 물리적 주소 0x1000000에서 커널을 로드하려고 시도하기 때문에 발생합니다. 상상할 수 있듯이 이것은 잘 풀리지 않았습니다. 커널 버전에 따라 수정 사항은 변경 CONFIG_PHYSICAL_START
(구성 메뉴에서 "커널을 로드해야 하는 물리적 주소"라고 함)하거나 관련 CONFIG_PHYSICAL_ALIGN
("커널을 정렬해야 하는 정렬 값"이라고 함)하는 것입니다.