Saya hanya ingin tahu apakah mungkin untuk menginstal kernel Linux saja, atau jika Anda perlu menggunakan salah satu dari rasa. Jika memungkinkan, bagaimana Anda melakukannya? Saya tidak membutuhkan tutorial terperinci. Saya hanya ingin tahu bagaimana itu akan dilakukan secara konseptual. Saya tidak pandai dengan hal-hal tingkat rendah, dan ingin tahu bagaimana Anda mendapatkan OS ke dalam komputer. Saya membayangkan itu ada hubungannya dengan MBR.
Oh dan saya perhatikan bahwa banyak jawaban menyarankan distribusi tertentu dari beberapa Linux minimal. Saya seharusnya mungkin menyatakan bahwa saya tidak ingin menginstal Linux yang minimal atau telanjang. Pertanyaan ini murni teoretis. Tetap saja, saya sangat menghargai semua jawaban, dan akan merujuknya segera, jika saya ingin menginstal Linux yang benar-benar pribadi.
sumber
kernel
juga tidak memilikibash
kemampuan dasar . Antarmuka pengguna standar disediakan oleh program shellCOMMAND.COM
. Yang paling dekat dengan kernel telanjang adalah melakukan apa saja yang berguna adalah mem-boot menggunakan parameter kernelinit=/bin/bash
(dengan asumsi Linux minimal ada di disk). Sebagai jawaban, jika Anda hanya memiliki bootloader dan kernel, itu akan berhenti sangat cepat ketika tidak ditemukaninit
.Jawaban:
Anda secara teknis dapat menginstal hanya bootloader dan kernel saja, tetapi segera setelah kernel boot, ia akan mengeluh tentang tidak dapat memulai "init", maka ia hanya akan duduk di sana dan Anda tidak dapat melakukan apa-apa dengan itu.
BTW, ini adalah bagian dari bootloader yang ada di MBR. Kernel berada di suatu tempat di area reguler disk. Bootloader dikonfigurasi untuk mengetahui di mana itu, sehingga dapat memuat kernel dan menjalankannya.
sumber
Saya tidak berpikir Anda mengerti persis apa yang Anda tanyakan, tetapi Anda mungkin ingin melihat proyek Linux From Scratch .
sumber
aptitude search '?essential'
) di Debian atau Ubuntu dan pahami apa yang masing-masing kerjakan (ada sedikit lebih banyak daripada minimum).Jika Anda bertanya apakah Anda hanya dapat menginstal atau memutakhirkan kernel "over" sistem yang ada tanpa menginstal banyak program lain?
Kernel Linux adalah file biner yang biasanya dinamai
vmlinuz-x.x.x-x-name
dalamboot
direktori (yang biasanya merupakan partisi kecil terpisah di awal hard drive) di mana x adalah nomor versi. "name" hanyalah nama yang dipilih untuk kernel yang dapat diatur pada waktu kompilasi, Anda dapat menggunakannya untuk mengidentifikasi jenis mesin atau arsitektur kernel untuk alasan apa pun.Itu dimuat pada boottime oleh bootloader, biasanya
GRUB
yang dipanggil oleh kode boot di MBR yang dipanggil oleh ROM BIOS. Setelah dimuat, itu tidak "terbuka" atau dilindungi secara khusus. Jadi Anda dapat mengganti file itu dengan kernel lain yang berfungsi. Tetapi,GRUB
memiliki fitur keren yang memungkinkan Anda memilih beberapa kernel untuk boot. Jadi cukup cerdas untuk menambahkan kernel tambahan Anda ke daftar itu, tetapi tetap menggunakan kernel yang dikenal asli kalau-kalau ada yang salah.Hampir semua distribusi yang saya percaya membuat kernel "modular" di mana driver perangkat berada di file terpisah. Jadi sebagian besar kernel memerlukan sistem file yang berisi driver yang tersedia untuknya saat boot dan itulah gunanya "initrd" (disk RAM awal) atau "initramfs".
GRUB
akan memuat kernel di lokasi dalam memori, dan initrd di lokasi yang berbeda, dan melompat ke kernel yang memberitahukan di mana initrd berada, memulai Linux.Driver juga dapat "dibangun ke dalam" kernel dan karena itu secara otomatis dimuat dan tersedia ketika bootloader memuat
vmlinuz
gambar. Kernel yang dimaksudkan untuk bekerja pada sistem yang beragam (seperti kebanyakan distribusi) biasanya meminimalkan apa yang dibangun ke dalam kernel karena perangkat keras yang tersedia akan dipindai kemudian dalam proses boot dan hanya modul yang mewakili perangkat keras saat ini yang akan dimuat.Ada alat untuk memodifikasi dan membuat initrds. Debian memiliki alat yang bagus dan saya membayangkan distribusi lain juga melakukannya.
Jadi, jika Anda mengunduh kernel yang lebih baru dari kernel.org dan mengkompilasinya untuk membuat citra biner kernel baru, Anda perlu membuat atau memperbarui initrd dengan driver yang berfungsi dengan kernel itu. Initrd yang lama tidak akan berfungsi karena driver harus cocok dengan versi kernel yang sedang berjalan.
File initrd dinamai
initrd.img-x.x.x.x-name
mirip dengan kernel, dan dapat diganti setelah boot seperti kernel, dan praktik terbaik akan menunjukkan Anda tidak menghapus initrd yang berfungsi sampai Anda tahu Anda bisa boot ke kernel + initrd baru Anda dengan sukses.Saya harap itu memberikan beberapa konteks.
Jika Anda mencari instalasi "barebones" Linux yang memiliki sedikit atau tidak ada program tambahan yang diinstal dengannya, pilihan favorit saya selalu menginstal
netinst
gambar Debian . Cukup banyak Anda hanya memiliki alat paling dasar yang diperlukan untuk menjalankan konsol teks baris perintah dannano
sebagai editor teks.sumber
Rootfs tunggal yang dapat dieksekusi
Sistem minimum absolut menjalankan satu
/init
program seperti yang saya jelaskan di Single Application Linux | Pengguna SuperMinimal Linux Live
https://github.com/ivandavidov/minimal
Untuk sistem interaktif yang lebih menarik, ini adalah skrip kecil (kebanyakan pendidikan) yang:
ISO kemudian membuat Anda dalam shell minimal dengan busybox.
Dengan QEMU Anda dapat dengan mudah mem-boot ke sistem.
Saya telah memodifikasinya untuk memungkinkan menjalankannya dari direktori source kernel: https://github.com/cirosantilli/runlinux
Pemakaian:
dan Anda akan ditinggalkan di dalam Window QEMU dengan Anda sistem minimal baru. Luar biasa.
Karena kecil, ini merupakan opsi yang baik untuk membaca sumbernya dan memahami apa yang sedang terjadi.
Diuji pada Ubuntu 16.04.
Buildroot
https://buildroot.org/
Kumpulan skrip Makefile besar yang mengelola:
Contoh minimal:
Bahkan memiliki resep untuk membangun X11 dari awal: Bagaimana cara menginstal X11 pada sistem Linux Buildroot saya sendiri?
Barang profesional.
Alpine Linux
https://github.com/gliderlabs/docker-alpine
Distribusi tertanam dengan manajer paket yang menawarkan binari yang dikompilasi dari sebuah situs web.
Lihat juga
sumber
Saya ingin saran kedua Shadur Anda harus membuat tangan Anda kotor dengan cara Linux Dari Awal.
Juga, sesuatu yang serupa, coba Pocket Linux .
sumber
Dimungkinkan untuk menginstal kernel Linux tanpa alat ruang pengguna biasa. Ini biasanya dilakukan dalam sistem embedded seperti router. Biasanya, kernel dimuat dari ROM atau memori Flash, dan telah disesuaikan untuk perangkat yang bersangkutan (biasanya dengan driver yang diperlukan dikompilasi ke dalam kernel daripada dimuat sebagai modul).
Setidaknya satu program ruang pengguna perlu ada, untuk menjadi proses 'init' (tidak harus dipanggil
init
, tetapi dimulai oleh kernel sebagai proses 1, dan induk otomatis dari setiap proses yatim) - kecuali jika kernel telah dimodifikasi (bukan daripada hanya disesuaikan) untuk tidak memerlukan ini.Tentunya tidak perlu memiliki shell yang tersedia untuk memiliki perangkat berbasis Linux yang berfungsi, meskipun itu dapat membuat pengembangan lebih mudah!
sumber
Banyak distro menyediakan instalasi "inti". Ini yang kamu inginkan. Lihat ubuntu-minimal, debian net-install, archlinux (standarnya adalah inti).
Jawaban lain berguna jika Anda ingin belajar, tetapi itu mungkin bukan case = p
sumber