Birçok insanın merak ettiği gibi, Linux/Unix işletim sistemi nasıl açılıyor' Bir uygulamayı boot sürecinde çalışacak şekilde nasıl ayarlayabilirim ki bilgisayar her açıldığında onu elle açmak zorunda kalmayayım' Bunu yapmak için birinin bir şey eklemek istediği temel ortam prosedürünü anlaması gerekir.
Tipik bir Linux sisteminde, ben Debian'ı tercih ederim, bootloader kerneli işaret eder ve o da sonrasında /etc altında inittab diye bilinen bir dosyayı çalıştırır. Bootloader ve kernel arasındaki etkileşim başka bir makale konusu olacak kadar karmaşıktır.
1. /etc/inittab, /etc klasörü altında belli bir klasörü çağırmak için belli yönergeler içeren bir dosyadır. Şuna benzer bir Shell script dosyasıdır: # /etc/inittab: init(8) configuration. # $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $ # The default runlevel. id:2:initdefault: # Boot-time system configuration/initialization script. # This is run first except when booting in emergency (-b) mode. si::sysinit:/etc/init.d/rcS
2. sitem daha sonra /etc/init.d/rcS shell scriptini çağırır. Script daha sonra /etc/rcS.d/ klasörü altında başka bir scripti çağırır.bir uygulama sisteme eklendiği zaman bunun başlaması ya /etc/rcS.d/ ya da /etc/rc2.d/ klasörü altında saklanır. Bu script kümesi ilk olarak çalıştırılır ve sisteme bağlıdır, asla kurcalanmaması gerekir. Bu script grubu her işlemi ortaya çıkardıktan sonra /etc/init.d/rcS scripti /etc/rc2.d/ altındaki bütün dosyaları çağırır. /etc/rc2.d/ klasörü genellikle uygulama yazılımlarını içerir ve sistem tarafından özellikle ihtiyaç duyulan yazılımlar burada olmaz. Bu klasörde bulunan her dosyanın bir S (başlangıcı simgeler) ve numarası vardır. Mesela: S43portmap. 43, işlemin 43. sırada başlayacağını belirtmez, bunun yerine hangi işlemin başlatıldığını belirten bir sayıdır. Böylece bir şeyin S43portmap'ten önce veya sonra başlamasını istiyorsanız, ondan önce olması için s40, sonra olması içinde s50 koymanız gerekir.
3. Eğer kendi uygulamanızın çalıştırılmasını istiyorsanız, /etc/rc2.d/ klasörü altına ekleyin. /etc/rc2.d/ birçok Linux sisteminde varsayılan çalıştırma seviyesidir.
4. Eğer /etc/rc2.d/ klasörüne bakacak olursanız her dosyanın /etc/init.d/ klasörüne sembolik linkle bağlı olduğunu görebilirsiniz. Ve eğer düşünürseniz bu aslında derli toplu bir iştir, çünkü bu scriptlerden birini başka bir zaman çalıştırmak için farklı bir numaraya sahip başka bir sembolik link oluşturmanız yeterlidir. Bu aynı zamanda kullanıcıya boot sürecini istediği gibi değiştirebilme esnekliğini de verir.
Tipik bir Linux sisteminde, ben Debian'ı tercih ederim, bootloader kerneli işaret eder ve o da sonrasında /etc altında inittab diye bilinen bir dosyayı çalıştırır. Bootloader ve kernel arasındaki etkileşim başka bir makale konusu olacak kadar karmaşıktır.
1. /etc/inittab, /etc klasörü altında belli bir klasörü çağırmak için belli yönergeler içeren bir dosyadır. Şuna benzer bir Shell script dosyasıdır: # /etc/inittab: init(8) configuration. # $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $ # The default runlevel. id:2:initdefault: # Boot-time system configuration/initialization script. # This is run first except when booting in emergency (-b) mode. si::sysinit:/etc/init.d/rcS
2. sitem daha sonra /etc/init.d/rcS shell scriptini çağırır. Script daha sonra /etc/rcS.d/ klasörü altında başka bir scripti çağırır.bir uygulama sisteme eklendiği zaman bunun başlaması ya /etc/rcS.d/ ya da /etc/rc2.d/ klasörü altında saklanır. Bu script kümesi ilk olarak çalıştırılır ve sisteme bağlıdır, asla kurcalanmaması gerekir. Bu script grubu her işlemi ortaya çıkardıktan sonra /etc/init.d/rcS scripti /etc/rc2.d/ altındaki bütün dosyaları çağırır. /etc/rc2.d/ klasörü genellikle uygulama yazılımlarını içerir ve sistem tarafından özellikle ihtiyaç duyulan yazılımlar burada olmaz. Bu klasörde bulunan her dosyanın bir S (başlangıcı simgeler) ve numarası vardır. Mesela: S43portmap. 43, işlemin 43. sırada başlayacağını belirtmez, bunun yerine hangi işlemin başlatıldığını belirten bir sayıdır. Böylece bir şeyin S43portmap'ten önce veya sonra başlamasını istiyorsanız, ondan önce olması için s40, sonra olması içinde s50 koymanız gerekir.
3. Eğer kendi uygulamanızın çalıştırılmasını istiyorsanız, /etc/rc2.d/ klasörü altına ekleyin. /etc/rc2.d/ birçok Linux sisteminde varsayılan çalıştırma seviyesidir.
4. Eğer /etc/rc2.d/ klasörüne bakacak olursanız her dosyanın /etc/init.d/ klasörüne sembolik linkle bağlı olduğunu görebilirsiniz. Ve eğer düşünürseniz bu aslında derli toplu bir iştir, çünkü bu scriptlerden birini başka bir zaman çalıştırmak için farklı bir numaraya sahip başka bir sembolik link oluşturmanız yeterlidir. Bu aynı zamanda kullanıcıya boot sürecini istediği gibi değiştirebilme esnekliğini de verir.
Yorumlar
Yorum Gönder