Saya mencoba menjalankan beberapa percobaan dengan Linux dan mencari distribusi terkecil berdasarkan ukuran instalasi. (RAM, CPU tidak terlalu penting)
size
small-distribution
Qohelet
sumber
sumber
Jawaban:
Pembaruan: ttylinux saat ini tidak dirawat! Jika Anda masih tertarik mulai dari sini atau di sini .
Tergantung pada platform Anda, ttylinux mungkin cocok untuk Anda:
Dimulai pada tahun 2001 dan rilis terbaru adalah dari 2015-03-05 sehingga masih dipertahankan.
sumber
Distro kecil yang muncul di pikiran adalah "Damn Small Linux", dengan ukuran 50 MB ( tautan , wiki )
Tetapi juga ada distro yang lebih kecil lagi "Tiny Core Linux" yaitu sekitar 15 MB ( tautan , wiki )
sumber
OpenWrt juga salah satu yang terkecil.
sumber
Buildroot
Jika Anda ingin melalui proses kompilasi dan mengurangi fitur, Anda bisa mencoba buildroot . Saya membuat instalasi Linux yang sangat mendasar (pada dasarnya hanya kernel, utilitas Busybox minimal dan satu aplikasi tambahan) yang sesuai dengan image ISO 6MB.
Kuncinya di sini adalah untuk mengurangi konfigurasi kernel dan Busybox ("make linux-nconfig" dan "make busybox-menuconfig") ke minimum yang Anda butuhkan, dan kemudian untuk mengaktifkan kompresi XZ pada ramdisk kernel awal. Mengurangi semua yang saya tidak perlu memungkinkan saya untuk mengurangi keseluruhan gambar ISO menjadi sekitar 9MB, dan setelah mengaktifkan kompresi XZ lebih jauh hingga 6MB.
Untuk kernel, saya hanya memeriksa setiap opsi di menu konfigurasi dan menonaktifkannya kecuali saya secara khusus membutuhkannya. Anda dapat menonaktifkan semua driver jaringan yang tidak memiliki adaptor jaringan yang sesuai, menonaktifkan perangkat keras lain yang kurang umum yang tidak Anda duga menggunakan (kartu seri multi-port, joystick, perangkat multi-fungsi ...) dan sebagainya di. Anda juga dapat meninggalkan banyak subsistem pada implementasi dasar alih-alih yang lebih canggih (mis., Kondisi idle CPU ACPI dasar daripada status idle Intel / AMD CPU), yang dapat berarti bahwa Anda akan menukar efisiensi daya dan dukungan perangkat keras penuh untuk ukuran kernel. Anda juga dapat menonaktifkan seluruh subsistem seperti dukungan hibernasi / tidur dan sistem suara jika Anda tidak perlu menggunakannya.
Anda bisa menghemat banyak ruang dengan melakukan itu. Sebagai contoh, modul dukungan KVM (virtualisasi) dan btrfs (yang saya putuskan untuk diletakkan di luar kernel sebagai modul yang dapat dimuat jika saya membutuhkannya di masa mendatang) membutuhkan 1,1 MB sendiri. Dengan menghapus file-file modul Anda bisa turun hingga sekitar 4,9MB. Bisa jadi mereka mengambil lebih sedikit ruang yang terintegrasi ke dalam biner kernel, tetapi kemudian saya telah melihat bahwa modul lain yang lebih kecil berukuran 20-100 kilobyte, sehingga jarak tempuh Anda mungkin bervariasi.
Busybox
Busybox adalah biner tunggal yang berperilaku seperti binari yang berbeda tergantung pada bagaimana ia dipanggil dari baris perintah, yang memungkinkan Anda menghemat ruang. Ini termasuk dalam Buildroot secara default. Itu bisa berperilaku seperti ls, df, dd, cat, nc, bash dan banyak lainnya. Ini terlihat seperti pengganti yang baik untuk hampir seluruh * nix userland, kecuali jika Anda memerlukan beberapa ekstensi utilitas khusus yang hanya dapat Anda temukan di versi yang lebih lengkap / tradisional (misalnya GNU, BSD) dari utilitas ini. Busybox mirip dengan kernel dalam hal menonaktifkan fitur - menonaktifkan semuanya kecuali untuk binari (applet AKA) yang Anda butuhkan, dan ukurannya akan berkurang. Biner Busybox yang dikompilasi secara dinamis membutuhkan 512 kilobyte di Buildroot dan sekitar 2.1MB di Ubuntu 14.10. Versi Ubuntu yang lebih besar mendukung lebih banyak daripada versi Buildroot saya, dan itu '
Metode ekstrem untuk mengurangi ukuran sistem
Anda dapat mencoba beberapa hal di bawah ini untuk mengurangi ukuran lebih jauh, tetapi membuat cadangan direktori kerja sesering mungkin Anda mematahkan instalasi Buildroot yang sedang Anda kerjakan dan mungkin harus membangun kembali beberapa binari.
Kompres semua executable (termasuk kernel) dengan kompresor UPX. Karena UPX dirancang khusus untuk melakukan kompresi yang dapat dieksekusi, ini membuat executable yang dihasilkan jauh lebih kecil. Tapi tolong pastikan bahwa Anda menguji semua yang dapat dieksekusi setelah itu dan itu berfungsi dengan benar.
Gunakan libc yang berbeda. Saya menggunakan uClibc, tetapi saya mendengar bahwa musl dan dietlib jauh lebih kecil dan menghasilkan executable yang lebih kecil. Saya punya beberapa masalah build dengan musl kali ini, tetapi mungkin akan bekerja lebih baik.
Ganti beberapa atau semua utilitas userland dengan asmutils . Utilitas ini mengimplementasikan beberapa utilitas * nix umum dalam Assembly murni (daripada bahasa C atau lainnya), yang secara teoritis memungkinkan kode yang jauh lebih ringkas. Beberapa di antaranya bekerja dengan baik, tetapi beberapa hanya dapat digunakan dengan cara yang sangat mendasar (misalnya "mount" hanya mengambil parameter dalam urutan tertentu dan tidak ada opsi pemasangan FS-spesifik yang diterapkan). Di sisi lain, mereka sangat kecil (sebagian besar kurang dari 1KB dikompilasi, yang kecil sekitar 139 byte atau lebih). Anda dapat memilih yang mana yang ingin Anda gunakan, sehingga Anda dapat menggunakan penggantian ini hanya untuk perintah yang ingin Anda hemat dan tetap menggunakan versi yang lebih kaya fitur sebagai applet Busybox.
sumber
Tomsrtbt adalah beberapa megabita; itu pas di floppy.
sumber