Nasıl?

Kendi dağıtımınızı oluşturmak: Bölüm 1

Image
Paylaş

Bu yazıda linux dağıtımlarının nasıl çalıştığını anlamak amacıyla kendi basit minimal linux dağıtımımızı oluşturacağız.

Gerekli paketlerin kurulması

Öncelikle derleme işlemine başlamadan önce derleme araçlarına ve test için qemuya ihtiyacımız bulunmaktadır. Bunun için aşağıdaki paketleri kurmalıyız.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
apt install build-essential bison flex libc6-dev bc qemu-kvm
apt install build-essential bison flex libc6-dev bc qemu-kvm
apt install build-essential bison flex libc6-dev bc qemu-kvm

Kaynak kodların edinilmesi

Linux çekirdeğinin kaynak kodunu https://kernel.org üzerinden indirin.

Busybox kaynak kodunu https://busybox.net üzerinden indirin.

Daha sonra indirdiğimiz arşivleri açalım. Son durumda aşağıdaki gibi olmalıdır.

Kaynak kodlar ve açılmış halleri

Derleme aşaması

Derleme işlemleri ile oluşturacağımız minimal dağıtımın parçalarını elde edeceğiz. Bunun için önce busybox sonra linux çekirdeğini derlememiz gerekmektedir. Derleme işlemi kaynak kodun bulunduğu dizinde gerçekleştirilir. Derlemeler bilgisayarınızın hızına bağlı olarak biraz uzun sürebilir ve fazla enerji harcamasına sebep olabilir.

Öncelikle busybox kaynak kodunu derleyelim. Henüz libc ile ilgili olan kısımı anlatmadığım için static olarak derlememiz gerekmektedir (Bununla ilgili detaylı bilgi 2. kısımda anlatılacaktır). Bunun için öncelikle

make defconfig
make defconfig komutunu kullanalım. Daha sonra da .config dosyasını açıp aşağıdaki gibi düzenleyelim.

CONFIG_STATIC=y olarak değiştirdik

Daha sonra

make
make komutunu kullanarak derleme işlemini yapalım.

Derleme tamamlandıktan sonra busybox dosyamız oluşmuş olmalıdır. Static olup olmadığını anlamak için ldd komutu ile kontrol edebiliriz.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ ldd busybox
not a dynamic executable
$ ldd busybox not a dynamic executable
$ ldd busybox
	not a dynamic executable

Şimdi sıra linux çekirdeğinin derlenmesinde. Bunun için önce

make defconfig
make defconfig komutunu kullanıp daha sonra da
make bzImage
make bzImage
komutu ile çekirdek imajımızı oluşturalım.

Derleme tamamlandığında Kernel: arch/x86/boot/bzImage is ready (#1) şeklinde bir satır yazmalıdır. Kernelimizin düzgün derlenip derlenmediğini anlamak için aşağıdaki komutu kullanabilirsiniz.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ file arch/x86/boot/bzImage
arch/x86/boot/bzImage: Linux kernel x86 boot executable bzImage, version 6.2.7 (a@localhost.localdomain) #1 SMP PREEMPT_DYNAMIC Tue Mar 21 08:18:58 -00 2023, RO-rootFS, swap_dev 0XB, Normal VGA
$ file arch/x86/boot/bzImage arch/x86/boot/bzImage: Linux kernel x86 boot executable bzImage, version 6.2.7 (a@localhost.localdomain) #1 SMP PREEMPT_DYNAMIC Tue Mar 21 08:18:58 -00 2023, RO-rootFS, swap_dev 0XB, Normal VGA
$ file arch/x86/boot/bzImage 
arch/x86/boot/bzImage: Linux kernel x86 boot executable bzImage, version 6.2.7 (a@localhost.localdomain) #1 SMP PREEMPT_DYNAMIC Tue Mar 21 08:18:58 -00 2023, RO-rootFS, swap_dev 0XB, Normal VGA

Bir sonraki bölümde derlemiş olduğumuz çekirdeği ve busybox dosyasını kullanarak initramfs oluşturma ve test etme anlatılacaktır.

Series NavigationKendi dağıtımınızı oluşturmak: Bölüm 3 >>
  • Ali Rıza Keskin

    Gentoo kullancısı - Özgür yazılım sevdalısı - Pardus gönüllüsü

Etiketler:
[wpdiscuz_comments]