Linux로 실험을하고 설치 크기별로 가장 작은 배포판을 찾으려고합니다. (RAM, CPU는 실제로 중요하지 않습니다)
Linux로 실험을하고 설치 크기별로 가장 작은 배포판을 찾으려고합니다. (RAM, CPU는 실제로 중요하지 않습니다)
답변:
업데이트 : 현재 ttylinux는 유지 관리되지 않습니다! 여전히 관심이 있으시면 여기 또는 여기에서 시작 하십시오 .
플랫폼에 따라 ttylinux는 아마도 당신을위한 것입니다 :
이 가장 작은 ttylinux 시스템은 8MB 파일 시스템을 가지고 있으며 RAM이 28MB 인 i486 컴퓨터에서 실행되지만 완전한 명령 행 환경을 제공하며 인터넷 액세스가 가능합니다.
2001 년에 시작하여 최신 릴리스는 2015-03-05 부터 유지되므로 계속 유지됩니다.
컴파일 프로세스를 진행하고 기능을 줄이려면 buildroot을 사용해보십시오 . 6MB ISO 이미지에 맞는 매우 기본적인 Linux 설치 (본질적으로 커널, 최소한의 Busybox 유틸리티 및 하나의 추가 응용 프로그램)를 만들었습니다.
여기서 핵심은 커널 및 Busybox 구성 ( "make linux-nconfig"및 "make busybox-menuconfig")을 최소한으로 줄인 다음 초기 커널 램 디스크에서 XZ 압축을 활성화하는 것입니다. 내가 필요로하지 않는 모든 것을 줄이면 전체 ISO 이미지를 약 9MB로 줄이고 XZ 압축을 6MB로 더 낮게 줄일 수있었습니다.
커널의 경우 구성 메뉴에서 각 옵션을 확인하고 특별히 필요하지 않으면 비활성화했습니다. 해당 네트워크 어댑터가없는 모든 네트워크 드라이버를 비활성화하고, 예측하지 않는 덜 일반적인 하드웨어 (다중 포트 직렬 카드, 조이스틱, 다기능 장치 등)를 비활성화 할 수 있습니다. 의 위에. 또한보다 정교한 시스템 (예 : Intel / AMD CPU 유휴 상태가 아닌 기본 ACPI CPU 유휴 상태)이 아닌 기본 구현에 많은 서브 시스템을 남겨 둘 수 있습니다. 이는 커널 크기에 대한 전력 효율성과 완전한 하드웨어 지원을 절충 할 수 있음을 의미 할 수 있습니다. 최대 절전 모드 / 수면 지원 및 사운드 시스템과 같은 전체 하위 시스템을 사용하지 않아도 비활성화 할 수도 있습니다.
그렇게하면 많은 공간을 절약 할 수 있습니다. 예를 들어 KVM (가상화) 및 btrfs 지원 모듈 (나중에 필요할 경우 커널 외부에서로드 가능한 모듈로 설정하기로 결정)은 자체적으로 1.1MB를 차지합니다. 해당 모듈 파일을 삭제하면 약 4.9MB까지 줄어 듭니다. 커널 바이너리에 통합 된 공간을 덜 차지할 수도 있지만 다른 작은 모듈의 크기는 20-100 킬로바이트이므로 마일리지가 다를 수 있습니다.
Busybox는 명령 줄에서 호출되는 방식에 따라 다른 바이너리처럼 동작하는 단일 바이너리이므로 공간을 절약 할 수 있습니다. 기본적으로 Buildroot에 포함되어 있습니다. ls, df, dd, cat, nc, bash 및 기타 여러 가지로 작동 할 수 있습니다. 이 유틸리티의보다 완전한 기능을 갖춘 / 전통적인 (예 : GNU, BSD) 버전에서만 찾을 수있는 특정 유틸리티 확장이 필요한 경우가 아니면 거의 모든 * nix 사용자 영역을 대체하는 것으로 보입니다. Busybox는 기능 비활성화 측면에서 커널과 유사합니다. 필요한 바이너리 (AKA 애플릿)를 제외한 모든 것을 비활성화하면 크기가 줄어 듭니다. 동적으로 컴파일 된 Busybox 바이너리는 Buildroot에서 512 킬로바이트, Ubuntu 14.10에서 약 2.1MB를 차지합니다. 더 큰 우분투 버전은 내 Buildroot 버전보다 훨씬 많은 것을 지원합니다.
아래 사항 중 일부를 시도하여 크기를 더 줄일 수 있지만 작업중인 Buildroot 설치를 중단하고 일부 바이너리를 다시 빌드해야 할 때 작업 디렉토리를 자주 백업하십시오.
UPX 압축기로 모든 실행 파일 (커널 포함)을 압축하십시오. UPX는 실행 파일 압축을 수행하도록 특별히 설계되었으므로 실행 파일의 크기가 훨씬 작아집니다. 그러나 모든 실행 파일을 나중에 테스트하고 올바르게 작동하는지 확인하십시오.
다른 libc를 사용하십시오. 나는 uClibc를 사용하고 있지만 musl과 dietlib가 훨씬 작고 더 작은 실행 파일을 생성한다고 들었습니다. 이번에는 musl에 빌드 문제가 있었지만 더 잘 작동 할 수 있습니다.
일부 또는 모든 userland 유틸리티를 asmutils 로 바꾸십시오 . 이러한 유틸리티는 C 또는 다른 언어가 아닌 순수 어셈블리에서 일반적인 * nix 유틸리티 중 일부를 구현하므로 이론적으로 훨씬 더 작은 코드를 사용할 수 있습니다. 이들 중 일부는 잘 작동하지만 일부는 매우 기본적인 방식으로 만 사용할 수 있습니다 (예 : "mount"는 특정 순서로 매개 변수 만 취하며 FS 특정 마운트 옵션은 구현되지 않음). 반면에, 그것들은 매우 작습니다 (대부분 컴파일 된 1KB 미만, 약 139 바이트 정도 작음). 사용할 항목을 선택할 수 있으므로 공간을 절약하고 더 풍부한 기능을 갖춘 버전을 Busybox 애플릿으로 유지하려는 명령에 대해서만 이러한 대체를 사용할 수 있습니다.
Tomsrtbt 는 몇 메가 바이트입니다. 플로피에 맞습니다.