Sistem Yapılandırması:Kexec
Wiki.Pardus-Linux.Org sitesinden
Kexec
Orijinal sayfa: http://www.xmission.com/~ebiederm/files/kexec/README
kexec şuan ki çalışan linux çekirdeğinden farklı bir kernel yüklemenize izin veren bir takım sistem çağrısıdır. Şuan ki uygulanması sadece x86 larda test edilmiştir ama genel kod her türlü mimari ile çalışmalıdır.Bazı makinaların BIOSları yeniden başlatmak için çok yavaştır, veya güvenilir şekilde yeniden başlatma yapamayabilirsiniz. Zaman ve güvenilirlik söz konusu olduğunda tek alternatif kexecdir.
Yama şu adreste arşivlenmiştir:
http://www.xmission.com/~ebiederm/files/kexec/
Ve şuan ki parça halinde tutulmaktadır.
Saf sistem çağrısı.
http://www.xmission.com/~ebiederm/files/kexec/linux-2.5.48.x86kexec.diff
ve kexec'e yardımcı olacak donanım onarım takımı.
http://www.xmission.com/~ebiederm/files/kexec/linux-2.5.48.x86kexec-hwfixes.diff
Bir uyumlu kullanıcı alanı şurdadır:
http://www.xmission.com/~ebiederm/files/kexec/kexec-tools-1.8.tar.gz
Bu kod bir sabit ELF çalıştırılabilir veya bir bzImage açılışta başlatabilir.
Sürüm 1.6'da olduğu gibi /sbin/kexec daha çok şuna benzer çalışır /sbin/reboot. /sbin/reboot 'u yeniden başlatmak için çağırmadan önce /sbin/kexec -e 'yi /etc/init.d/reboot içine yerleştirmeniz tavsiye edilir. Eğer daha önceden /sbin/kexec çağırmadıysanız başarısız olacaktır, sonra /sbin/reboot 'u çağırabilirsiniz. Verilen benzerlik şimdi kexec'i /sbin/reboot içinde içinde birleştirme planlanmaktadır.
2.5.48'e geçerken bir hata onarıldı. Daha önce çekirdekte PAE ve PSE'yi temizlemekte başarısız olmuştum. CONFIG_HIGHMEM_64G etkin hale getirildiinde yeniden başlatmak başarısız olmasına neden oldu, aynı şekilde yeni çekirdek sayfalandırırken başarısız olacaktır, bu şekilde bitler ayarlı kalacaktır. %cr4 bütün 386+ intel işmlencilerinimi temsil etmektedir, yada ona ulaşmaya uygun halemi etirmeliyim?
Sürüm 1.6'da olduğu gibi /sbin/kexec ön tanımlı olarak bzImage ile temsil edildiğinde bütün BIOS çağrılarından kaçınır ve direkt çekirdek 32 bit giriş noktasına atlar. şuan ki çekirdek yerine bilgiyi BIOsdan alır. Kesin doğru olarak BIOS hazfıza haritasında şeyleri almak çözülmesi gereken sorundur, hala adreslendirilmesi gerekmektedir. çalışan çekirdekten bilgi alacak kadar iyi kodların olmadığı durumlarda kullanmak için ön tanımlı güvenli kodlar sağlanmıştır.
Hata raporlarında kexec_test seri konsol çıktısını eklemeyi unutmayın. kexec_test çekirdek yüklemek için (çoğunlukla BIOS çağrıları) çoğu ilginç kod yollarını test dener ve bir çok hata ayıklama yazıları ile, takılmaları belirler.
setup.S 'i atlayıp geçen bir çekirdek yeniden biçimlendiricisi daha az bios çağrıları kulanan sürümün lehinedir.(aratan güvenilirlik). şu adrestedir:
ftp://ftp.lnxi.com/pub/mkelfImage/mkelfImage-1.18.tar.gz
Ben bu tekniği son bir kaç yıldır kullanıyorum ve kenerlin ne yapması gerektiği iyi anlaşılmıştır ve görevi yerine getirilmiştir. Ayrıca görevi ağdan çekirdek yüklemek olan ve başlatan etherboot üzerinde çalışıyorum.
etherboot'dan Dos imajı yüklemek ve çalıştırmak mümkündür. kexec syscal ile firmware güvenliği seviyesine henüz ulaşamadım, ama eterboot bunun yapılabileceğini gösteriyor. birincil sistem başlatıcı olarak eterboot ile çalışırken nasıl kendi donanım sürücülerini kullanan ve güvenilir firmwareleri hala güvenilir çalışan teorik olarak nasıl kapatılacağı unuttuğum çözülmesi gerekn bir sorundur.
Benim beklentim donanım sürücüleri olmayan, Biosun altını üstüne getirmeyen çekirdeğe sahip olduğumda kullanıcı alanı tabanı ramdisk olan çekirdek derlediğimde tam BIOS işlevlerine sahip olacağım. Ve çekirdek sürücülerini kullanmak sadece aynı donanım ile kullanılan aygıt yazılımı sürücülerini bozacaktır.
Şimdiye kadar ki başarısızlıklar 3 farklı kategoriye ayrılmıştır. Bozuk çekirdekler hatta kexec ile olmayanlar bile. Açılışta setup.S çalıştırırken takılan çekirdekler. çekirdek sürücüsü doanımda kalan aynı sürücü nedeni ile tekrar başlatılamayan çekirdekler.
şimdiye kadarki setup.S çalışırken ki başarısızlıklar olarak 3 vaka görülmüştür. DOS çalıştırılmadan önce DOS olmadan bir işe yaramayan gerçek kip IDT yüklenmesi. yazılan aygıt tipi 0x13 ah=0x15 şeklinde kesinti. ve yeni EDD kodu. Bu başarısızlıklara beklenen durumlarda düşülür. Ama tamamiyle izini süremediğim yüklenme sorunu umutusuz hariç.
Gelecek planlarında bir kaç ama ç var. bir kexec sistem çağrısından sonra ne olursa olsun düzgün çalışan biosa sahip olmak.sys_kexec adlı çekirdeği sıfırlanmaktan kurtaracak donanım sürücüsü düzeltmeleri.
Önemli olan nokta bu gelecek projeleri şuan ki kexec sistem çağrını yeniden düzenlemeyi gerektiriyor. Kullanıcı alanında ve aygıt sürücüleri içinde çalışmalısınız.
Sözlük
- system call: sistem çağrısı, programın çalışmasını engelleyen ve kontrolün denetçiye geçiren bir talimattır.
Bu yazı Sistem Yapılandırması bölümünün bir parçasıdır.
