9. FreeBSD Çekirdeğini Yapılandırma

3.00 yıldız(lar) 1 Değerlendirme Değerlendirenler

unicorn34

Level 5
Katılım
23 Kas 2022
Konular
106
Mesajlar
801
Online süresi
26g 47711s
Reaksiyon Skoru
260
Altın Konu
0
Başarım Puanı
121
Yaş
46
TM Yaşı
3 Yıl 4 Ay 29 Gün
MmoLira
4,158
DevLira
33

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!

Bölüm 9. FreeBSD Çekirdeğini Yapılandırma​


9.1. özet​

Çekirdek, FreeBSD işletim sisteminin çekirdeğidir. Belleği yönetmek, güvenlik kontrollerini uygulamak, ağ iletişimi, disk erişimi ve çok daha fazlasından sorumludur. FreeBSD'nin çoğu dinamik olarak yapılandırılabilir olsa da, özel bir çekirdeğin yapılandırılması ve derlenmesi hâlâ zaman zaman gereklidir.
Bu bölümü okuduktan sonra şunları bileceksiniz:
  • Özel bir çekirdek ne zaman oluşturulur?
  • Donanım envanteri nasıl alınır?
  • Bir çekirdek yapılandırma dosyası nasıl özelleştirilir.
  • Yeni bir çekirdek oluşturmak ve oluşturmak için çekirdek yapılandırma dosyası nasıl kullanılır?
  • Yeni çekirdek nasıl kurulur?
  • İşler ters giderse nasıl sorun giderilir.
Bu bölümdeki örneklerde listelenen tüm komutlar şu şekilde yürütülmelidir root.

9.2. Neden Özel Bir Çekirdek Oluşturmalısınız?​

Geleneksel olarak FreeBSD yekpare bir çekirdek kullanıyordu. Çekirdek büyük bir programdı, sabit bir aygıt listesini destekliyordu ve çekirdeğin davranışını değiştirmek için kişinin derlemesi ve ardından yeni bir çekirdeğe yeniden başlatılması gerekiyordu.
Bugün, FreeBSD çekirdeğindeki işlevlerin çoğu, gerektiğinde çekirdeğe dinamik olarak yüklenebilen ve kaldırılabilen modüllerde yer almaktadır. Bu, çalışan çekirdeğin hemen yeni donanıma uyum sağlamasına ve yeni işlevlerin çekirdeğe getirilmesine olanak tanır. Bu, modüler çekirdek olarak bilinir.
Bazen, hala statik çekirdek yapılandırması yapmak gerekir. Bazen ihtiyaç duyulan işlevsellik çekirdeğe o kadar bağlıdır ki, dinamik olarak yüklenemez. Bazı güvenlik ortamları, çekirdek modüllerinin yüklenmesini ve kaldırılmasını engeller ve yalnızca gerekli işlevlerin çekirdeğe statik olarak derlenmesini gerektirir.
Özel bir çekirdek oluşturmak, genellikle ileri düzey BSD kullanıcıları için bir geçit törenidir. Bu süreç zaman alıcı olmakla birlikte FreeBSD sistemine faydalar sağlayabilir. Geniş bir donanım yelpazesini desteklemesi gereken GENERIC çekirdeğin aksine , özel bir çekirdek yalnızca o bilgisayarın donanımını desteklemek için ayrılabilir. Bunun aşağıdakiler gibi bir dizi faydası vardır:
  • Daha hızlı önyükleme süresi. Çekirdek yalnızca sistemdeki donanımı inceleyeceğinden, sistemin önyükleme süresi kısalabilir.
  • Daha düşük bellek kullanımı. Özel bir çekirdek, kullanılmayan özellikleri ve aygıt sürücülerini çıkararak genellikle GENERIC çekirdeğinden daha az bellek kullanır. Bu önemlidir, çünkü çekirdek kodu her zaman fiziksel bellekte yerleşik olarak kalır ve bu belleğin uygulamalar tarafından kullanılmasını engeller. Bu nedenle, az miktarda RAM'e sahip bir sistemde özel bir çekirdek kullanışlıdır.
  • Ek donanım desteği. Özel bir çekirdek, GENERIC çekirdeğinde bulunmayan aygıtlar için destek ekleyebilir .
Özel bir çekirdek oluşturmadan önce, bunun nedenini düşünün. Belirli bir donanım desteğine ihtiyaç varsa, zaten bir modül olarak mevcut olabilir.
Çekirdek modülleri /boot/kernel içinde bulunur ve çalışan çekirdeğe kullanılarak dinamik olarak yüklenebilir . Çoğu çekirdek sürücüsünün yüklenebilir bir modülü ve kılavuz sayfası vardır. Örneğin, kablosuz ağ sürücüsünün kılavuz sayfasında aşağıdaki bilgiler bulunur:
Alternatively, to load the driver as a module at boot time, place the
following line in :

if_ath_load="YES"

if_ath_load="YES"/boot/loader.conf'a eklemek, bu modülü önyükleme sırasında dinamik olarak yükleyecektir.
Bazı durumlarda, /boot/kernel içinde ilişkili bir modül yoktur . Bu çoğunlukla belirli alt sistemler için geçerlidir.

9.3. Sistem Donanımını Bulma​

Çekirdek yapılandırma dosyasını düzenlemeden önce, makinenin donanımının bir envanterinin çıkarılması önerilir. Çift önyüklemeli bir sistemde envanter diğer işletim sisteminden oluşturulabilir. Örneğin, Microsoft®'un Aygıt Yöneticisi kurulu aygıtlarla ilgili bilgiler içerir.
Microsoft® Windows®'un bazı sürümlerinde, Aygıt Yöneticisi'ne erişmek için kullanılabilecek bir Sistem simgesi bulunur.
Yüklü tek işletim sistemi FreeBSD ise, önyükleme incelemesi sırasında bulunan ve listelenen donanımı belirlemek için FreeBSD'deki çoğu aygıt sürücüsünün, o sürücü tarafından desteklenen donanımı listeleyen bir kılavuz sayfası vardır. Örneğin, aşağıdaki satırlar sürücüsünün bir fare bulduğunu gösterir:
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: [ITHREAD]
psm0: model Generic PS/2 mouse, device ID 0

Bu donanım mevcut olduğundan, bu sürücü özel bir çekirdek yapılandırma dosyasından kaldırılmamalıdır.
Çıktısı, önyükleme araştırması çıktısının sonuçlarını göstermiyorsa, bunun yerine /var/run/dmesg.bootdmesg içeriğini okuyun .
Donanım bulmak için başka bir araç , daha ayrıntılı çıktı sağlayan aracıdır . Örneğin:
% pciconf -lv
ath0@pci0:3:0:0: class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00
vendor = 'Atheros Communications Inc.'
device = 'AR5212 Atheros AR5212 802.11abg wireless'
class = network
subclass = ethernet

Bu çıktı, a sürücüsünün bir kablosuz Ethernet aygıtı bulduğunu gösterir .
-kYararlı bilgiler sağlamak için man bayrağı kullanılabilir. Örneğin, belirli bir cihaz markasını veya adını içeren kılavuz sayfalarının bir listesini görüntülemek için kullanılabilir:
# man -k Atheros
ath(4) - Atheros IEEE 802.11 wireless network driver
ath_hal(4) - Atheros Hardware Access Layer (HAL)

Donanım envanteri listesi oluşturulduktan sonra, özel çekirdek yapılandırması düzenlenirken kurulu donanıma ait sürücülerin kaldırılmadığından emin olmak için bu listeye bakın.

 
Son düzenleme:

En Çok Reaksiyon Alan Mesajlar

9.4. Yapılandırma Dosyası​

Özel bir çekirdek yapılandırma dosyası oluşturmak ve özel bir çekirdek oluşturmak için, önce tam FreeBSD kaynak ağacı kurulmalıdır.
/usr/src/ yoksa veya boşsa, kaynak kurulmamıştır. bölümündeki talimatlar kullanılarak Git ile yüklenebilir .
Kaynak yüklendikten sonra, /usr/src/sys içeriğini gözden geçirin . Bu dizin, aşağıdaki desteklenen mimarileri temsil edenler de dahil olmak üzere bir dizi alt dizin içerir: amd64 , i386 , powerpc ve sparc64 . Belirli bir mimarinin dizinindeki her şey, yalnızca o mimariyle ilgilidir ve kodun geri kalanı, tüm platformlarda ortak olan makineden bağımsız koddur. Desteklenen her mimarinin, o mimari için GENERIC çekirdek yapılandırma dosyasını içeren bir conf alt dizini vardır .
GENERIC üzerinde düzenleme yapmayın . Bunun yerine, dosyayı farklı bir ada kopyalayın ve kopyada düzenlemeler yapın. Sözleşme, tümü büyük harflerle bir ad kullanmaktır. Farklı donanımlara sahip birden fazla FreeBSD makinesini korurken, makinenin ana bilgisayar adından sonra adlandırmak iyi bir fikirdir. Bu örnek, mimari için GENERIC yapılandırma dosyasının MYKERNEL adlı bir kopyasını oluşturur :amd64
# cd /usr/src/sys/amd64/conf
# cp GENERIC MYKERNEL

MYKERNELASCII artık herhangi bir metin düzenleyiciyle özelleştirilebilir . Varsayılan düzenleyici vi'dir, ancak yeni başlayanlar için daha kolay bir düzenleyici olan ee de FreeBSD ile yüklenir.
Çekirdek yapılandırma dosyasının biçimi basittir. Her satır, bir cihazı veya alt sistemi temsil eden bir anahtar sözcük, bir bağımsız değişken ve kısa bir açıklama içerir. a'dan sonraki herhangi bir metin #yorum olarak kabul edilir ve dikkate alınmaz. Bir aygıt veya alt sistem için çekirdek desteğini kaldırmak içi#yorumaygıtı veya alt sistemi temsil eden satırın başına bir koyun. #Anlamadığınız herhangi bir satıra ekleme veya çıkar#o yapmayınız .
Bir cihaz veya seçenek için#Anlamadığınız ve bozuk bir çekirdekle sonuçlanmak kolaydır. Örneğin, çekirdek yapılandırma dosyasından ATA sürücüsü kaldırılırsa, disk sürücülerini kullanan bir sistem önyükleme yapamayabilir. Şüpheye düştüğünüzde, desteği çekirdekte bırakın.
Bu dosyada sağlanan kısa açıklamalara ek olarak, o mimari için GENERIC ile aynı dizinde bulunabilen NOTES içinde ek açıklamalar yer alır. Mimariden bağımsız seçenekler için /usr/src/sys/conf/NOTES'a bakın .
Çekirdek yapılandırma dosyasını özelleştirmeyi bitirdiğinizde, bir yedek kopyayı /usr/src dışındaki bir konuma kaydedin .
Alternatif olarak, çekirdek yapılandırma dosyasını başka bir yerde tutun ve dosyaya sembolik bir bağlantı oluşturun:
# cd /usr/src/sys/amd64/conf
# mkdir /root/kernels
# cp GENERIC /root/kernels/MYKERNEL
# ln -s /root/kernels/MYKERNEL
Yapılandırma dosyalarında kullanım için bir includeyönerge mevcuttur. Bu, mevcut bir dosyaya göre küçük değişiklikleri korumayı kolaylaştırarak, geçerli olana başka bir yapılandırma dosyasının dahil edilmesini sağlar. Yalnızca az sayıda ek seçenek veya sürücü gerekiyorsa, bu , bu örnekte görüldüğü gibi, GENERIC'e göre bir deltanın korunmasına izin verir :
GENEL dahil
kimlik MYKERNEL

seçenekler IPGÜVENLİK DUVARI
seçenekler DUMMYNET
seçenekler IPFIREWALL_DEFAULT_TO_ACCEPT
seçenekler
Bu yöntemi kullanarak, yerel yapılandırma dosyası bir GENERIC çekirdeğinden yerel farklılıkları ifade eder . Yükseltmeler yapıldıkça, GENERIC'e eklenen yeni özellikler, veyanooptions kullanılması özellikle engellenmedikçe yerel çekirdeğe de eklenecektir nodevice. içinde bulunabilir .
Mevcut tüm seçenekleri içeren bir dosya oluşturmak için aşağıdaki komutu şu şekilde çalıştırın root:
# cd /usr/src/sys/arch/conf && make LINT

9.5. Özel Çekirdek Oluşturma ve Kurma​

Özel yapılandırma dosyasındaki düzenlemeler kaydedildikten sonra, çekirdeğin kaynak kodu aşağıdaki adımlar kullanılarak derlenebilir:
Prosedür: Çekirdek Oluşturma
  1. Bu dizine değiştir:
    # cd /usr/src

  2. Özel çekirdek yapılandırma dosyasının adını belirterek yeni çekirdeği derleyin:
    # make buildkernel KERNCONF=MYKERNEL

  3. Belirtilen çekirdek yapılandırma dosyasıyla ilişkili yeni çekirdeği kurun. Bu komut, yeni çekirdeği /boot/kernel/kernel dizinine kopyalayacak ve eski çekirdeği /boot/kernel.old/kernel konumuna kaydedecektir :
    # make installkernel KERNCONF=MYKERNEL

  4. Sistemi kapatın ve yeni çekirdeğe yeniden başlatın. Bir şeyler ters giderse, bölümüne bakın .
Varsayılan olarak, özel bir çekirdek derlendiğinde, tüm çekirdek modülleri yeniden oluşturulur. Bir çekirdeği daha hızlı güncellemek veya yalnızca özel modüller oluşturmak için, çekirdeği oluşturmaya başlamadan önce /etc/make.conf dosyasını düzenleyin.
Örneğin, bu değişken tüm modülleri oluşturma varsayılanını kullanmak yerine oluşturulacak modüllerin listesini belirtir:
MODULES_OVERRIDE = Linux acpi'si
Alternatif olarak, bu değişken derleme sürecinden hangi modüllerin hariç tutulacağını listeler:
WITHOUT_MODULES = linux acpi sesi
Ek değişkenler mevcuttur. e bakın .

 
Reactions: Wcn

9.6. Bir şey ters giderse​

Özel bir çekirdek oluştururken meydana gelebilecek dört sorun kategorisi vardır:
configbaşarısız
Başarısız olursa config, yanlış olan satır numarasını yazdırır. Örnek olarak, aşağıdaki mesaj için, 17. satırın GENERIC veya NOTES ile karşılaştırarak doğru yazıldığından emin olun :
config: line 17: syntax error

makebaşarısız
Başarısız olursa , bunun nedeni genellikle çekirdek yapılandırma dosyasındaki yakalanacak makekadar şiddetli olmayan bir hatadır . configYapılandırmayı gözden geçirin ve sorun belirgin değilse, çekirdek yapılandırma dosyasını içeren
 
Reactions: Wcn
 
Reactions: Wcn
Paylaşım için teşekkürler.
 

Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)