Mümkün olan en küçük Linux uygulaması nedir? [kapalı]


21

Bir Linux işletim sisteminin işlevsel olması için asgari bileşenler nelerdir ve Linux'u öğrendikçe ve anlayış ve ihtiyaçlarım arttıkça genişlemek ve geliştirmek için bir üs olarak kullanabiliyorum?

Yanıtlar:



9

Eğer öğrenmek istiyorsanız, Gentoo'nun iyi bir seçenek - en az Gentoo kurulumu bir kök kabuk ve bir paket yöneticisidir ve sisteminizin geri kalanını oradan oluşturursunuz. Gentoo aynı zamanda paketlerin başında oldukça durgun kalıyor, bu yüzden bazı paketleri kendiniz indirmek ve oluşturmak istiyorsanız çok fazla sorun yaşamazsınız (ve aslında /etc/portage/package.provided dosyasına ekleyebilirsiniz. yüklendikten sonra bağımlılıkları kullanın!)

Mümkün olan en küçük Linux sistemini arıyorsanız, kendi çekirdeğinizi oluşturarak, kullanmayı planladığınız tüm sürücüleri ve özellikleri çıkararak, benzer şekilde minimize edilmiş bir Busybox derlemesi içeren bir initramfs ekleyin. Sonuç, tek bir çalıştırılabilir dosyada (önyükleyicinizi yönlendirebileceğiniz) ve denemeden bile 10 MB'ın altına sığabilen tamamen önyüklenebilir bir Linux sistemidir.


Son paragrafınız - bunun başlamak için iyi bir yer olacağını düşünüyorum. O zaman orada ne olduğunu ve neden orada olduğunu, onu büyümek için bir üs olarak kullanarak bileceğim.
slashmais

10MB? Muhtemelen 1MB altında yapabilirsin
Falmarri

8

Archlinux, çok düşük bir kurulum için temel bir dosya grubu kullanır .

Temel bir devel grubu ile birlikte, herhangi bir sistem geliştirme yapacaksanız.


3
Doğru yönde, yine de çok sayıda paket var;
slashmais,

Arch kurulumu 2010'dan çok daha modüler hale geldi - bellekten konuşarak / yeni bir kurulum başlatmadan, 'pacstrap' yardımcı programı size sadece 'temel' dahil olmak üzere hangi grupların kullanılacağı (veya hatta hiç olmadığı kadar) seçeneği sunuyor. Bence temel sistem içeriklerini içeriyor). Bir adım daha derine inmek, ancak yine de en azından belirsizce kullanılan bir dağıtıma sahip olmak istiyorsanız, Slackware muhtemelen.
djvs

Arch kurulumu, sadece resmen am64 arch'ı, init için sadece systemd'i vb. Desteklediklerinden öncekinden çok daha az modülerdir. Ancak, ben de Slackware'i tavsiye ederim.
Lucas Ramage

8

Bir Linux sistemi olanın gerçekten minimumunu istiyorsanız, yönlendiriciler gibi gömülü sistemler için dağıtımları deneyebilirsiniz. Normalde yalnızca mutlak minimum yazılımı taşırlar ve grafiksel bir kullanıcı arabiriminin ortak eksikliği sizi komut satırına aşina olmaya zorlarlar. Bir dezavantajı, genellikle bu sistemlerin normal Linux dağıtımlarının sözleşmelerini bozmasıdır, örneğin yaygın olmayan yerlere yazılım yüklerler veya basitleştirilmiş init sistemleri kullanırlar.

Bir çekim yapmak istiyorsanız, sanal bir makinede örneğin openwrt'i deneyebilirsiniz .


Başvuru için OpenWrt kullanabilirim; Bu tür diğer siteleri işaret edebilirseniz sevinirim. Zaten VirtualBox kullanıyor ve içinde OpenWrt'i yüklemek için bir noddy-kılavuzu var.
slashmais,

Belki Debian gömülü: emdebian.org
fschmitt


8

Tek çalıştırılabilir rootfs

Mutlak minimum sistem Single Application Linux'ta/init açıkladığım gibi tek bir program çalıştırıyor | Süper kullanıcı

Minimal Linux Live

https://github.com/ivandavidov/minimal

Daha ilginç bir etkileşimli sistem için, bu (çoğunlukla eğitici) küçük bir senaryodur:

  • çekirdek ve meşgul kutusu kaynağını indirir
  • onları derler
  • önyüklenebilir bir 8Mb ISO üretiyor

Daha sonra ISO sizi meşgul kutusuyla minimal bir kabukta bırakır.

QEMU ile kolayca sisteme önyükleme yapabilirsiniz.

Çekirdek kaynak dizininden çalıştırmaya izin verecek şekilde değiştirdim: https://github.com/cirosantilli/runlinux

Kullanımı:

git clone https://github.com/ivandavidov/minimal
cd minimal/src
./build_minimal_linux_live.sh
# Wait.
# Install QEMU.
# minimal_linux_live.iso was generated
./qemu64.sh

ve yeni minimal sistemde bir QEMU Penceresinde kalacaksınız. Muhteşem.

Küçük olduğu için bu, kaynağı okumak ve neler olduğunu anlamak için iyi bir seçenektir.

Ubuntu 16.04'te test edilmiştir.

Buildroot

https://buildroot.org/

Yöneten geniş Makefile betikleri kümesi:

  • GCC çapraz derleme alet zinciri
  • çekirdek derleme
  • bootloader derlemesi
  • rootfs üretimi
  • GTK gibi karmaşık şeyler de dahil olmak üzere kaynak ağacında tonlarca paket indirme / derleme tarifleri vardır. Bir bağımlılık sistemi var.

Minimal örnek:

git clone git://git.buildroot.net/buildroot
cd buildroot
git checkout 2016.05
make qemu_x86_defconfig
# Can't use -jN, use `BR2_JLEVEL=2` instead.
BR2_JLEVEL=2 make
# Wait.
# cat board/qemu/x86_64/readme.txt
qemu-system-x86_64 -M pc -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw -append root=/dev/vda -net nic,model=virtio -net user
# You are now in a shell with BusyBox utilities.

Sıfırdan X11'i oluşturmak için tarifleri bile var: X11'i kendi Linux Buildroot sistemime nasıl kurarım?

Profesyonel savaş bazı büyük şirketler tarafından kullanılan şeyleri test etti.

Alp Linux

https://github.com/gliderlabs/docker-alpine

Bir web sitesinden önceden derlenmiş ikili dosyalar sunan bir paket yöneticisine katıştırılmış dağıtım.

Ayrıca bakınız


1
Sonunda LFS yoluna gittim. Bunu not
aldım

6

Kimsenin tomsrtbt'den bahsetmediği nasıldı ? (Linux, tek bir 1,44 "diskette)


sağ - bağlantılar hakkında sesler?
slashmais,

Endişelenme - buldum
slashmais 6:10

4
Bugünlerde kim hala bir disket kullanıyor? ;)
p-statik

1
Şu an birine bakıyorum. Ancak, PC’ye sahip olduğum yıllarda sadece bir kez kullandım.
lamcro

3
@ p-static: Eski bir kutuyu baskı sunucusu olarak kullanıyorum - hala 8 1/4 inçlik bir disket sürücü var ve 20 yaşındaki disketlerle test ettim - şaşırtıcı bir şekilde disketler hala iyi durumda! onlar üzerinde de bozulmamış veriler var (öğrenci günlerinden turbo pascal v3 kodu)
slashmais

4

Slackware linux'u deneyebilirsiniz. Menüyle çalışan kurulum, minimum sistem kurmanıza izin verecektir. Man sayfalarını, X11, Tcl, Emacs'ı kolayca kaldırabilirsiniz ve bu sadece en üst seviye kurulumdan gelir. Yüklemeye dalabilir ve yalnızca minimum miktarda paket yükleyebilirsiniz.

Bundan sonra, özellikle kurduğunuz makine için çekirdeği yeniden derlerdim.

Slackware, varsayılan olarak Lilo önyükleme yöneticisine varsayılan olarak geliyor; bu nedenle, önyükleme sektörleri hakkında bilmek istediğinizden biraz daha fazla şey biliyorsunuzdur, hangi bölüm önyüklenebilir olarak işaretlenmiştir, initrd'nizin Grub vb.


3

Bana göre, Damn Small Linux "mümkün olan en küçük Linux dağıtımı" ismini aldı! Ancak bunun bir tür durmadığını duydum. Ayrıca bu wiki sayfasında benzer dağılımların bir listesini ("Mini Linux" olarak adlandırılır) görebilirsiniz .

Alan sizin amacınız değilse Gentoo veya Arch Linux'u önereceğim , ikisi de temel bir sistem kuracak. Gereksinimleriniz arttıkça paketleri ne kullanacağınızı ve yükleyeceğinizi seçersiniz.


Yer değil - Linux öğrenmek. Bunların çoğuna ve LFS'ye baktım, ancak LFS sizi bir şeyler ekliyor / ekliyor, hissettiriyor, yeterli açıklama yok.
slashmais,

3
Öğrenmek istiyorsan, Archlinux gerçekten çok iyi. Arch Wiki vardır ALOT berrak, yararlı bilginin.
Stefan


2

Yapmanız gereken şey kernel.org'dan en son çekirdeği indirmek, make menuconfigsadece seçenekleri gözden geçirmek ve araştırma ve araştırma için başlangıç ​​noktası olarak kullanmak. Çok şey öğreneceksin.


"Zaman benim düşmanımdır." - pek değil, ama kesinlikle önerinize bakacağım.
slashmais,

0

Puppy Linux'a bakabilirsiniz . En küçük olmayabilir, fakat küçük olma ününe sahiptir.

Bununla birlikte, küçük olması gereken Linux dağıtımları genellikle küçük kalma eğilimindedir. Linux öğrenmek için bir yerlerde canlı debian olurdum. . Debian çekirdek kaynaklarını, bash kaynaklarını ve grub kaynaklarını çapraz derleme ve yerleştirme işleminden geçiririm. Sonra çapraz derleme apt ve gcc adlı bir editör kurar. Ardından debian live paketlerinden bir liste hazırlayın. Her paket için kaynağı kurun, derleyin ve kurun. Sonra X'i, sonra istediğin kadarını ekle, sonra yapmak istediğin şeyin temeli var.

Not: apt-get source, debian paketinin kaynağını alır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.