설치 규모별로 가장 작은 Linux 배포판은 무엇입니까? [닫은]

Linux로 실험을하고 설치 크기별로 가장 작은 배포판을 찾으려고합니다. (RAM, CPU는 실제로 중요하지 않습니다)



답변

업데이트 : 현재 ttylinux는 유지 관리되지 않습니다! 여전히 관심이 있으시면 여기 또는 여기에서 시작 하십시오 .

플랫폼에 따라 ttylinux는 아마도 당신을위한 것입니다 :

이 가장 작은 ttylinux 시스템은 8MB 파일 시스템을 가지고 있으며 RAM이 28MB 인 i486 컴퓨터에서 실행되지만 완전한 명령 행 환경을 제공하며 인터넷 액세스가 가능합니다.

2001 년에 시작하여 최신 릴리스는 2015-03-05 부터 유지되므로 계속 유지됩니다.


답변

떠오르는 작은 배포판은 크기가 50MB 인 “Damn Small Linux”입니다 ( link , wiki )

그러나 더 작은 배포판 “Tiny Core Linux”도 약 15MB입니다 ( link , wiki )


답변

OpenWrt 는 또한 가장 작은 것 중 하나입니다.


답변

빌드 루트

컴파일 프로세스를 진행하고 기능을 줄이려면 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 는 몇 메가 바이트입니다. 플로피에 맞습니다.