1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210 |
- #LyX 1.4.1 created this file. For more info see http://www.lyx.org/
- \lyxformat 245
- \begin_document
- \begin_header
- \textclass article
- \language turkish
- \inputencoding auto
- \fontscheme default
- \graphics default
- \paperfontsize default
- \spacing single
- \papersize default
- \use_geometry false
- \use_amsmath 1
- \cite_engine basic
- \use_bibtopic false
- \paperorientation portrait
- \secnumdepth 3
- \tocdepth 3
- \paragraph_separation skip
- \defskip medskip
- \quotes_language english
- \papercolumns 1
- \papersides 1
- \paperpagestyle default
- \tracking_changes false
- \output_changes false
- \end_header
- \begin_body
- \begin_layout Title
- Pardus Açılış Sistemi
- \end_layout
- \begin_layout Standard
- \begin_inset LatexCommand \tableofcontents{}
- \end_inset
- \newpage
- \end_layout
- \begin_layout Section
- Giriş
- \end_layout
- \begin_layout Standard
- İşletim sistemi çekirdeğinin çalışmaya başladığı andan, kullanıcının giriş
- yapabileceği ana kadar yapılan işlemler, açılış (init) sürecidir.
- Dosya sistemlerinin bağlanması, donanım sürücülerinin yüklenmesi, sistem
- servislerinin başlatılması ve grafik arabiriminin çalıştırılıp, giriş ekranının
- gösterilmesi bu sürecin kapsamındadır.
- \end_layout
- \begin_layout Standard
- Bilgisayar kapatılacağı zaman, servislerin durdurulması, bağlanmış dosya
- sistemlerinin ayrılması da aynı sistem tarafından yürütülür.
- \end_layout
- \begin_layout Standard
- Pardus 1.1 sürümü ile birlikte kabuk tabanlı klasik açılış sistemini terkedip,
- Müdür adıyla geliştirdiğimiz yeni bir sisteme geçtik.
- Bu belge, daha hızlı açılış sağlayan, Python diliyle yazıldığı için geliştirmes
- i ve bakımı daha kolay olan bu yeni sistemin kullanımını anlatmaktadır.
- \end_layout
- \begin_layout Standard
- Açılış süreci, temel kullanım ve ayarlar bölümleri kullanıcılara yönelik
- olup, temel kavramları ve özel durumlarda gerekebilecek bilgileri anlatmaktadır.
- \end_layout
- \begin_layout Standard
- Paketleme bilgileri ve servis betikleri bölümleri, sistem yöneticilerine
- ve entegratörlere yönelik olup, pisi paketi yaparken, yada üçüncü parti
- bir programa pardus desteği verirken gerekli olan bilgileri vermektedir.
- \end_layout
- \begin_layout Standard
- Teknik yapı bölümü, programcılara yönelik olup, incelemek ve geliştirmek
- isteyenlere müdürün bileşenlerini ve teknik ayrıntılarını anlatmaktadır.
- \end_layout
- \begin_layout Section
- Açılış Süreci
- \end_layout
- \begin_layout Standard
- Bilgisayar açılınca, anakart üzerindeki BIOS (Basic Input/Output System,
- Temel Giriş/Çıkış Sistemi) adı verilen yazılım çalışmaya başlar.
- Kendi iç denetleme ve donanım hazırlama sürecini tamamladıktan sonra, öntanımlı
- açılış aygıtından (bu bağlı bir harddisk, CD okuyucu, ya da USB disk olabilir),
- MBR (Master Boot Record, Ana Önyükleme Kaydı) adı verilen ve söz konusu
- kayıt ortamının en başında bulunan ufak önyükleyici yazılımı yükler ve
- çalıştırır.
- \end_layout
- \begin_layout Subsection*
- Önyükleyici
- \end_layout
- \begin_layout Standard
- Pardusun kurulumu sırasında, öntanımlı önyükleyici yazılımı Grub, kurulum
- yaptığınız diskin başına yerleştirilecek, ve diskte başka işletim sistemleri
- varsa, bunlar da Grub ayar dosyasına yazılacaktır.
- Böylece bilgisayarı açınca karşısınıza çıkacak Grub menüsünden hangi işletim
- sistemini açmak istediğinizi seçebilirsiniz.
- \end_layout
- \begin_layout Standard
- Önyükleyici, BIOS yordamlarını kullanarak seçtiğiniz işletim sistemi çekirdeğini
- belleğe yükletir ve çalışmayı çekirdeğe devreder.
- \end_layout
- \begin_layout Standard
- Linux çekirdeği, içereceği donanım sürücüleri seçilerek özelleştirilmiş
- biçimlerde derlenebilmektedir.
- Bu sürücüler çekirdeğin içine dahil edilebildiği gibi, gerektiği anda yüklenece
- k modüller olarak da sistemde bulunabilirler.
- Kullanılmayan sürücüler çekirdeğin boyutunu ve bellek kullanımını arttırdıkları
- için, Pardusta donanım sürücülerini olabildiğince ayrı modüller halinde
- dağıtıyoruz.
- Bu şekilde, çalışan bir sistemde bir modülü çıkartıp, yeni sürümünü yükleyerek
- kolayca güncellemek de mümkün olmaktadır.
- \end_layout
- \begin_layout Standard
- Önyükleyiciden çekirdeğe geçiş sırasında, depolama aygıtının sürücüsünü
- içermeyen bir çekirdek, önyükleyici, aygıtı BIOS aracılığıyla kullandığı
- için kolayca yüklenebilir, ama yönetimi BIOS'tan alınca bu aygıta erişemeyeceği
- için açılış sürecine devam edemez.
- Çok sayıda depolama aygıtının sürücülerini çekirdek içine koymak pratik
- olmadığı için, bu soruna çare olarak initrd (init ram disk, açılış bellek
- diski) denilen ikinci bir dosya, önyükleyici tarafından çekirdekle birlikte
- belleğe yüklenir.
- Bu dosya içinde, ufak bir dosya sistemi şeklinde, daha az yaygın olan depolama
- aygıtı sürücüleri bulunmaktadır.
- Çekirdek buradan gerekli sürücü varsa yükledikten sonra, bu dosyayı bellekten
- atar.
- \end_layout
- \begin_layout Subsection*
- Çekirdek
- \end_layout
- \begin_layout Standard
- Çekirdek donanım yönetimini ele alıp, hazırlıklarını tamamladıktan sonra,
- kök (root) dizin olarak belirtilen yerdeki dosya sistemini açarak, burada
- /sbin/init programını çalıştırır.
- Bu program temel süreç olarak, diğer süreçleri yönetir.
- Belli olaylar (açılış, kapatma komutu, güç yönetimi, vs) olduğunda ayar
- dosyasında belirtilen komutları çalıştırır.
- \end_layout
- \begin_layout Subsection*
- Müdür
- \end_layout
- \begin_layout Standard
- Müdürün ana kısmı olan /sbin/mudur.py komutu, açılış sırasında init tarafından
- çağrıldığında, aygıt yönetimi ve otomatik donanım tanıma (hotplug) için
- kullanılan udev servisini başlatır.
- Bu servis bilgisayara USB disk yada CD gibi bir şey taktığınızda, bu olayla
- ilgilenen programların otomatik çalıştırılması, takılan aygıta erişim için
- gereken /dev dizini altındaki dosyaların oluşturulması gibi işleri yapar.
- Müdür daha sonra depolama aygıtlarındaki dosya sistemlerini kontrol eder
- ve bağlar.
- Müdürün diğer bir parçası olan /sbin/muavin.py aracılığıyla, bilgisayarda
- hazır bulunan (coldplug) ve sürücüsü initrd içinde olmayan donanımların
- sürücülerini yükletir.
- Muavin yeni bir donanım takıldığında da udev tarafından çağrılmakta ve
- sürücü yükleme işini yapmaktadır.
- Müdür, sistem saatini donanım saatiyle senkronize ettikten ve temel ağ
- ayarlarını da yaptıktan sonra, Pardus'un sistem yapılandırma aracı olan
- Çomar'ı başlatır.
- En son olarak Çomar'a servisleri çalıştırması komutunu verir.
- \end_layout
- \begin_layout Standard
- Kapanış sırasında çağrıldığında ise, önce Çomar'a servisleri durdurması
- komutunu verir.
- Sonra sistem saatini tekrar donanım saati ile senkronize eder.
- En son olarak bağlı dosya sistemlerini düzgün bir şekilde ayırarak, veri
- kaybı olmadan kapanmalarını sağlar.
- Müdür işini bitirdikten sonra init komutu bilgisayarı kapatması yada yeniden
- başlatması için gerekli komutu çekirdeğe verir.
- \end_layout
- \begin_layout Subsection*
- Servisler
- \end_layout
- \begin_layout Standard
- Arkaplanda çalışarak kullanıcıya yada diğer programlara bir takım hizmetler
- sunan yazılımlardır.
- Örneğin zemberek uygulamalara Türkçe yazım denetimi desteği sağlarken,
- DBus masaüstü uygulamalarının iletişimini, cups ise yazıcı desteğini sağlar.
- Uzaktan erişim sağlayan SSH gibi sunucu yazılımları da birer servis olarak
- çalışmakta ve yönetilebilmektedir.
- \end_layout
- \begin_layout Standard
- Servisler başlatıldığında, KDM (KDE Desktop Manager, KDE Masaüstü Yöneticisi)
- servisi, görüntüye kullanıcı giriş ekranını getirir.
- Buradan kullanıcı ve parolası ile giriş yapıldığında da o kullanıcının
- masaüstü yüklenir ve çalışmaya başlar.
- \end_layout
- \begin_layout Section
- Temel Kullanım
- \end_layout
- \begin_layout Standard
- Açılış ve donanım tanıma sistemi büyük ölçüde otomatik çalışmaktadır.
- \end_layout
- \begin_layout Standard
- Bilgisayarınızda hangi servislerin kurulu olduğunu görmek, bunların açılışta
- başlayıp başlamayacağını ayarlamak, servislerin çalışma durumunu denetlemek,
- gerektiğinde yeniden başlatmak gibi işler için, Pardus Yapılandırma Merkezi
- içinde Sistem Seçeneklerinde bulunan Servis Yöneticisi yazılımını kullanabilirs
- iniz.
- \end_layout
- \begin_layout Standard
- Komut satırından ve betiklerden servisleri yönetebilmek için /bin/service
- komutu da bulunmaktadır.
- \end_layout
- \begin_layout Standard
- Kurulu servisleri ve durumlarını görmek için:
- \end_layout
- \begin_layout LyX-Code
- service
- \end_layout
- \begin_layout Standard
- komutunu parametresiz olarak veya list parametresi ile verebilirsiniz.
- \end_layout
- \begin_layout LyX-Code
- service openssh start
- \end_layout
- \begin_layout LyX-Code
- service openssh stop
- \end_layout
- \begin_layout LyX-Code
- service openssh restart
- \end_layout
- \begin_layout Standard
- komutları ilk parametre olarak verilen servisi başlatacak, durduracak, ve
- durdurup tekrar başlatacaktır.
- \end_layout
- \begin_layout LyX-Code
- service openssh reload
- \end_layout
- \begin_layout Standard
- komutu bazı servislerde, sunucunun durdurulmadan, ayar dosyalarını yükleyip
- kendisine çeki düzen vermesini sağlar.
- Her servis için geçerli değildir.
- \end_layout
- \begin_layout LyX-Code
- service openssh on
- \end_layout
- \begin_layout LyX-Code
- service openssh off
- \end_layout
- \begin_layout Standard
- komutları ile aynı şekilde servisleri açıp kapayabilirsiniz.
- Bu şekilde açıp kapattığınız servisler start ve stop'tan farklı olarak,
- bir dahaki açılışta aynı durumda başlayacaklardır.
- \end_layout
- \begin_layout Subsection*
- Çalışma Seviyeleri
- \end_layout
- \begin_layout Standard
- Temel süreç görevini yürüten init komutu bir çalışma seviyesi (runlevel)
- kavramına sahiptir.
- Tarihsel olarak 0 ile 6 arasındaki bu çalışma seviyesi sistemi çeşitli
- durumlara getirmek için kullanılır.
- Bu seviyeler,
- \end_layout
- \begin_layout Description
- 0 Sistemi kapat
- \end_layout
- \begin_layout Description
- 1 Sistemi tek kullanıcılı moda geçir
- \end_layout
- \begin_layout Description
- 2-5 Kullanıcı tanımlı
- \end_layout
- \begin_layout Description
- 6 Sistemi yeniden başlat
- \end_layout
- \begin_layout Standard
- Çalışma seviyesini değiştirmek için /sbin/telinit komutu kullanılabilir.
- Hangi seviyede ne yapılacağı /etc/inittab dosyasında belirlenir.
- Pardus'ta bu seviyeler kendilerine karşılık gelen parametre ile müdürü
- çağırmakta ve kullanıcı tanımlı seviyelerden yalnız bir tanesi normal çalışma
- seviyesi olarak kullanılmaktadır.
- Bu müdür parametreleri,
- \end_layout
- \begin_layout Description
- sysinit Temel açılış işlemlerini yap
- \end_layout
- \begin_layout Description
- boot Geri kalan açılış işlemlerini yap
- \end_layout
- \begin_layout Description
- shutdown Kapanış işlemlerini yap (seviye 0)
- \end_layout
- \begin_layout Description
- single Tek kullanıcılı moda geç (seviye 1)
- \end_layout
- \begin_layout Description
- default Servisleri çalıştır (seviye 3)
- \end_layout
- \begin_layout Description
- reboot Kapanış işlemlerini yap (seviye 6)
- \end_layout
- \begin_layout Standard
- Burada ihtiyaç duyabileceğiniz bir seviye, telinit S yada telinit 1 komutuyla
- geçebileceğiniz tek kullanıcılı seviyedir.
- Bu seviyede müdür servisleri kapatır, ve yetkili (root) kullanıcı olarak
- giriş yaparak sistemi onarma gibi işleri yapabilirsiniz.
- Normal çalışmaya dönmek için telinit 3 komutunu verebilirsiniz.
- \end_layout
- \begin_layout Standard
- Kapanış için basitçe reboot veya halt komutlarını kullanabilirsiniz, daha
- esnek kapanış işlemleri için shutdown komutuna bakın.
- \end_layout
- \begin_layout Subsection*
- Kayıtlar
- \end_layout
- \begin_layout Standard
- Sistem dili, klavye haritası ve yereli müdürde öntanımlı değerlere sahiptir,
- /etc/conf.d/mudur dosyasından ayarlanabilmektedir, ve mudur çekirdek parametresi
- ile de değiştirilebilmektedir.
- Müdür bu değerleri belirledikten sonra, kdm gibi programların aynı yerleri
- dolaşmadan kolayca alabilmesi için, /etc/mudur/ dizini içindeki keymap,
- language ve locale adlı dosyalara yazar.
- \end_layout
- \begin_layout Standard
- Müdür, /var/log/mudur.log dosyasına karşılaştığı olayları kaydetmektedir.
- Örnek bir dosyadan bir kesit:
- \end_layout
- \begin_layout LyX-Code
- Aug 26 13:55:08 (up 7.65) /sbin/mudur.py sysinit
- \end_layout
- \begin_layout LyX-Code
- Aug 26 10:55:15 (up 14.44) /sbin/mudur.py boot
- \end_layout
- \begin_layout LyX-Code
- Aug 26 10:55:16 (up 15.84) /sbin/mudur.py default
- \end_layout
- \begin_layout LyX-Code
- Aug 26 15:58:42 (up 18221.40) /sbin/mudur.py shutdown
- \end_layout
- \begin_layout Standard
- Satırlar, tarih (çalışma süresi) bilgi biçimindedir.
- Çalışma süresi çekirdek çalışmaya başladığı andan itibaren geçen saniye
- olarak hesaplanmaktadır.
- Açılış sırasında sistem saati donanım saati ile senkronize edilirken tarih
- kısmında saatte bir düzeltme olduğu için olayın zamanını daha doğru göstermek
- için konmuştur.
- \end_layout
- \begin_layout Standard
- Örnekte, sekizinci saniyeye doğru müdür, temel açılış işlemleri için init
- tarafından çağrılmakta, onbeşinci saniyeye doğru geri kalan açılış işlemleri
- için çağrılmakta, ve onaltıncı saniyeye doğru ise servisleri çalıştırması
- için çağrılmaktadır.
- Yaklaşık beş saatlik bir çalışmanın sonunda ise kapanış işlemleri için
- devreye girmiştir.
- \end_layout
- \begin_layout Standard
- Normal çalışmada yalnızca uyarı ve hata mesajları ile çağrılma durumları
- bu dosyaya yazılmaktadır.
- Eğer müdürün tüm çıktısının kaydedilmesini isterseniz, /etc/conf.d/mudur
- içinde bir debug=1 satırıyla, ya da önyükleyiciden vereceğiniz bir mudur=debug
- çekirdek parametresiyle bunu açabilirsiniz.
- \end_layout
- \begin_layout Subsection*
- Diğer Komutlar
- \end_layout
- \begin_layout Subsubsection*
- /sbin/muavin.py
- \end_layout
- \begin_layout Standard
- Aygıt sürücülerini yükleyen muavin, --debug parametresiyle çağrıldığında
- bulduğu aygıtlar için hangi sürücüleri yükleyeceğini listeler.
- Donanım tanıma ile ilgili bir aksilik olduğunda, bilgi verici olabilir.
- Bu sürücüleri yüklemesini istiyorsanız ise --coldplug parametresini kullanabili
- rsiniz.
- \end_layout
- \begin_layout Subsubsection*
- /sbin/update-environment
- \end_layout
- \begin_layout Standard
- Normal bir çalışmada ihtiyacınız olmayacak bu komutu, eğer elle bir program
- derlemişseniz kullanmanız gerekebilir.
- \end_layout
- \begin_layout Standard
- Bazı programlar, sistemde ve kullanıcı oturumlarında ayarlanması gereken
- çevre değişkenlerine ihtiyaç duyarlar.
- Örneğin Java, JAVA_HOME adlı bir değişkende sistemdeki Java işleticisinin
- bulunduğu dizinin adının bulunmasını ister.
- QT gibi, kitaplıklarını /usr/lib gibi standart konumların dışında /usr/qt/3/lib
- gibi dizinlere koyan uygulamalar ise, yüklenecek kitaplıkların bulunabileceği
- yerleri gösteren LDPATH gibi çevre değişkenlerine kendi dizinlerini eklemek
- isterler.
- \end_layout
- \begin_layout Standard
- Program paketlerinin kolayca bu değişkenlere değer atayabilmesi için, /etc/env.d
- dizini kullanılmaktadır.
- Bir pisi paketi buraya bir dosya koyduğunda, Çomar aracılığıyla çalıştırılan
- update-environment komutu, bu dosyaları okuyup sistem kabuğu için bir profil
- dosyası oluşturmakta, eğer kitaplık yolları değişmişse, /etc/ld.so.conf dosyasını
- yeni yolları içerecek şekilde değiştirmekte, ve /sbin/ldconfig komutunu
- çağırarak bu yeni dizinlerdeki kitaplıkların taranarak dinamik kitaplık
- yükleyicinin /etc/ld.so.cache dosyasında indekslenmesini sağlamaktadır.
- \end_layout
- \begin_layout Subsubsection*
- /sbin/update-modules
- \end_layout
- \begin_layout Standard
- Normal bir çalışmada ihtiyacınız olmayacak bu komutu, eğer elle bir çekirdek
- modülü derlemişseniz kullanmanız gerekebilir.
- \end_layout
- \begin_layout Standard
- Çekirdek modülleri içeren pisi paketleri kurulduktan sonra, Çomar aracılığıyla
- çağrılan bu komut, /sbin/depmod komutunu çalıştırarak, çalışmakta olan
- çekirdek için, bu modüllerin hangi aygıtları desteklediklerini ve birbirlerine
- olan bağımlılıklarını gösteren modules.*map, modules.dep, modules.alias dosyaların
- ı oluşturmaktadır.
- Her bir çekirdek için /lib/modules/2.6.16.24-49/ gibi dizinlerde bulunan bu
- dosyalar, muavin ve modprobe komutu tarafından kullanılmaktadır.
- \end_layout
- \begin_layout Standard
- Ayrıca eğer paket /etc/modules.d/ dizini altına bir dosya yerleştirmişse,
- bu dosyalar taranarak, modüller için yükleme şekil ve parametrelerini gösteren
- /etc/modprobe.conf dosyası güncellenmektedir.
- \end_layout
- \begin_layout Section
- Ayarlar
- \end_layout
- \begin_layout Subsection*
- Önyükleyici Ayarları
- \end_layout
- \begin_layout Standard
- Önyükleyicinin menüsündeki işletim sistemleri, ve çekirdeğin hangi seçeneklerle
- çalıştırılacağı, /boot/grub/grub.conf dosyasından ayarlanmaktadır.
- Grub programının belgelerinde bu ayarlarla ilgili detaylı bilgi alabilirsiniz.
- Bilgisayar açılırken, Grub menüsü çıktığında, açacağınız sistemin üzerindeyken
- e tuşuna basarak da, bu ayarları o açılışa mahsus olarak değiştirebilirsiniz.
- \end_layout
- \begin_layout Standard
- İşletim sistemi girdilerindeki kernel satırları, yüklenecek Linux çekirdeğini
- ve parametrelerini belirtmektedir.
- Söz dizimi
- \end_layout
- \begin_layout LyX-Code
- kernel (aygıt)/dosya prm1=değer prm2=değer1,değer2 prm3 ...
- \end_layout
- \begin_layout Standard
- biçimindedir.
- İlk bilgi yüklenecek çekirdeğin bulunduğu depolama aygıtı ve çekirdeğin
- dosya adıdır.
- Daha sonra bu çekirdeğe verilen parametreler gelmektedir.
- Parametreler tek başına, bir değere sahip, yada birden fazla değerli olabilir.
- \end_layout
- \begin_layout Standard
- Gerekebilecek bazı çekirdek parametreleri:
- \end_layout
- \begin_layout Description
- quiet Öntanımlı gelen bu seçenek çekirdeğin donanımları tararken bulduğu
- teknik bilgileri ekrana basmasını önler, müdür çalışmadan önce oluşan bir
- donanım sorunu varsa, bu seçeneği kaldırarak daha fazla bilgi alabilirsiniz.
- \end_layout
- \begin_layout Description
- splash Açılışta grafik logo gösterilmesini sağlar, metin ekranda açılış
- için, bu seçeneği ve console seçeceğini kaldırın.
- \end_layout
- \begin_layout Description
- noacpi Standartlara uygun olmayan bazı BIOS'larda bu seçenekle çekirdeği
- çalıştırmak mümkün olmaktadır.
- \end_layout
- \begin_layout Description
- mudur Bu seçenekle müdürün bazı ayarlarını değiştirebilirsiniz.
- Müdür ayarları bölümünde daha ayrıntılı anlatılmıştır.
- \end_layout
- \begin_layout Standard
- Tüm çekirdek parametrelerini ve açıklamalarını, kernel-source paketini kurduktan
- sonra /usr/src/linux/Documentation/kernel-parameters.txt dosyası içinde
- bulabilirsiniz.
- \end_layout
- \begin_layout Subsection*
- Müdür Ayarları
- \end_layout
- \begin_layout Standard
- Müdür init tarafından çalıştırılmaktadır, genellikle değiştirmenize gerek
- olmayan init ayarları /etc/inittab dosyasında bulunmaktadır.
- \end_layout
- \begin_layout Standard
- Müdürün kendi ayarları ise /etc/conf.d/mudur dosyasından ve önyükleyiciyle
- çekirdeğe verilen mudur parametresinden yapılabilmektedir.
- Çekirdekten verilen ayarlar dosyada yazanların yerine kullanılır.
- \end_layout
- \begin_layout Description
- safe Bu seçenek verilirse, sorun yaratabilecek bazı donanım işlemleri yapılmayac
- ak, servislerden ise yalnızca giriş ekranını çıkartan kdm ve bağlı olduğu
- servisler çalıştırılacaktır.
- \end_layout
- \begin_layout Description
- language Açılışta ve giriş ekranında kullanılacak olan sistem dilini belirler.
- Öntanımlı değeri Türkçe'dir.
- Kurulum başka bir dilde yapılmışsa, ayar dosyasında bu dil seçilidir.
- \end_layout
- \begin_layout Description
- keymap Eğer sistem dilinin öntanımlı klavye haritasını kullanmak istemiyorsanız,
- bu seçenekle başka bir harita belirleyebilirsiniz.
- \end_layout
- \begin_layout Description
- clock Donanım saatiniz Greenwich Merkezi Zamanına (GMT) göre ayarlıysa bu
- değeri UTC yapın, eğer donanım saatiniz yerel zamana göre ayarlıysa da
- local yapın.
- Öntanımlı değeri yerele ayarlı saattir.
- Bu seçeneği yalnızca ayar dosyasından verebilirsiniz.
- \end_layout
- \begin_layout Description
- tty_number Kullanmak istediğiniz metin ekran konsol sayısı öntanımlı altı
- değerinden farklıysa bu seçenekten belirtebilirsiniz.
- Bu seçeneği yalnızca ayar dosyasından verebilirsiniz.
- \end_layout
- \begin_layout Description
- debug Bu seçenek verilirse müdür tüm çıktılarını /var/log/mudur.log dosyasına
- yazacak, hata düzeltme bilgileri sağlayacaktır.
- \end_layout
- \begin_layout Standard
- Bazı örnekler:
- \end_layout
- \begin_layout LyX-Code
- mudur=safe,debug
- \end_layout
- \begin_layout LyX-Code
- mudur=language:tr,keymap:trf
- \end_layout
- \begin_layout Subsection*
- Donanım Ayarları
- \end_layout
- \begin_layout Standard
- Açılışta otomatik olarak yüklenemeyen, ya da ne olursa olsun yüklenmesini
- istediğiniz çekirdek modüllerini /etc/modules.autoload.d dizini içindeki
- kernel-x.y.z biçimindeki dosyalara her satıra bir modül ismi biçiminde yazabilirs
- iniz.
- Bu dosyalara bakılırken, mesela 2.6.16.24 çekirdeği çalışıyorsa sırasıyla
- varsa kernel-2.6.16 ve kernel-2.6 dosyalarına bakılacaktır.
- \end_layout
- \begin_layout Standard
- Aynı şekilde, eğer otomatik yüklenmesi sorunlara yol açan modüller varsa,
- /etc/hotplug/blacklist dosyasına, ya da /etc/hotplug/blacklist.d/ dizini
- içindeki herhangi bir dosyaya, gene bir satıra bir modül ismi gelecek şekilde
- yazabilirsiniz.
- \end_layout
- \begin_layout Standard
- Modüllere özel parametreler vermek için /etc/modules.d içinde bir dosya oluşturup
- , modprobe.conf belgesinde anlatılan söz dizimi ile alias, install, options
- gibi komutları verebilirsiniz.
- Müdürün bir parçası olan update-modules komutu bu dosyaları dolaşıp bir
- /etc/modprobe.conf dosyası oluşturmaktadır.
- Komutlarınızı bu dosyaya direk yazmayın, yeni bir modül paketi yada çekirdek
- kurulduğunda otomatik olarak üstüne yazılacaktır.
- \end_layout
- \begin_layout Standard
- Bir donanım takıldığında, bununla ilgili bir ayar yapmak, isim vermek, özel
- bir program çalıştırmak gibi şeyler yapmak için, /etc/udev/rules.d/ dizinine
- bir kural dosyası koymanız yeterlidir.
- Buraya ismi .rules sonekiyle biten yeni bir dosya konduğunda otomatik olarak
- devreye girmektedir.
- Kural dosyasının söz dizimi için udev belgelerine bakın.
- \end_layout
- \begin_layout Standard
- Müdür açılış sırasında bazı harddisk parametrelerini ayarlayabilmektedir.
- Bu tür bir ihtiyacınız varsa /etc/conf.d/hdparm dosyasında istediğiniz disklere
- istediğiniz parametreleri verebilirsiniz.
- Parametrelerin neler olduğunu öğrenmek için hdparm komutunun belgesine
- bakın.
- Bazı parametreler sorunlara yol açabileceğinden dikkatli olmanız tavsiye
- edilir.
- Dosyanın söz dizimi, aygıt adı =
- \begin_inset Quotes eld
- \end_inset
- parametreler
- \begin_inset Quotes erd
- \end_inset
- biçiminde satırlardan oluşmaktadır.
- Aygıt adı /dev/ dizini altındaki herhangi bir harddisk aygıtı yada bağlı
- bulunan tüm diskler için all olabilir.
- \end_layout
- \begin_layout Subsection*
- Diğer Ayarlar
- \end_layout
- \begin_layout Standard
- Çekirdeğin kapatılınca kaybolan ve /proc/sys dosya sistemi aracılığıyla
- yapılan ayarları için, /etc/sysctl.conf dosyasını kullanabilirsiniz.
- Örneğin ağ ayarlarından tüm makinelere gönderilen pinglere cevap vermeyi
- kapatmak için:
- \end_layout
- \begin_layout LyX-Code
- net.ipv4.icmp_echo_ignore_broadcasts = 1
- \end_layout
- \begin_layout Standard
- gibi bir satır ekleyebilirsiniz.
- Açılışta bu dosya okunurken, /proc/sys/net/ipv4/ dizinindeki icmp_echo_ignore_b
- roadcasts dosyasına 1 değeri yazılarak çekirdeğin bu özelliği çalıştırılacaktır.
- Daha fazla bilgi için sysctl komutuna ve çekirdek belgelerine bakabilirsiniz.
- \end_layout
- \begin_layout Standard
- Servislerin ayar dosyaları da genellikle /etc/conf.d/ dizini içinde durmaktadır.
- \end_layout
- \begin_layout Standard
- Bunlardan önemli bir tanesi local.start ve local.stop dosyalarıdır.
- İlki açılışta, ikincisi ise kapanışta çalıştırılan birer kabuk betiğidir.
- Pardus tarafından kullanılmayan ve tamamen kullanıcılara ait olan bu dosyaların
- içine, İhtiyaç halinde kendi özel komutlarınızı koyabilirsiniz.
- \end_layout
- \begin_layout Section
- Paketleme Bilgileri
- \end_layout
- \begin_layout Standard
- Pisi paketi yaparken, paketlediğiniz programı açılış sistemine entegre etmenizi
- gerektiren çeşitli durumlarla karşılaşabilirsiniz.
- \end_layout
- \begin_layout Subsection*
- Çekirdek Modülü Paketleri
- \end_layout
- \begin_layout Standard
- Çekirdek modülleri içeren bir paket yaparken, paketinize /lib/modules/2.6.xx.xx/
- dizininin hemen altındaki modules.* dosyalarını almamalısınız.
- Aksi takdirde dosya çakışmaları ortaya çıkabilir.
- Modül paketleri kurulurken bu dosyalar sistemdeki modüller taranarak update-mod
- ules komutu tarafından düzgün bir şekilde oluşturulacaktır.
- \end_layout
- \begin_layout Standard
- Eğer modülün inşası sırasında bu dosyalar paket kurulum dizinde oluşuyorsa,
- actions.py içinde basitçe
- \end_layout
- \begin_layout LyX-Code
- pisitools.remove("/lib/modules/*/modules.*")
- \end_layout
- \begin_layout Standard
- ile silebilirsiniz.
- \end_layout
- \begin_layout Standard
- Eğer bir modülün her açılışta mutlaka yüklenmesini istiyorsanız, Çomar System.Pac
- kage betiğinizde, ihtiyacınıza göre /etc/modules.autoload.d/ dizini içinde
- kernel-2.x yada kernel-2.x.y dosyasının sonuna bir satır olarak ekletebilirsiniz.
- Dosyada daha önce zaten böyle bir satır olup olmadığını da kontrol edin!
- \end_layout
- \begin_layout Standard
- Bir modülün donanım varsa bile otomatik yüklenmesinin önüne geçmek gerekiyorsa
- ise, /etc/hotplug/blacklist.d/ dizini içine kendi paket adınızda bir dosyaya
- modül adlarını satır satır yazıp koymalısınız.
- \end_layout
- \begin_layout Standard
- Modüllerinizin parametreleri, gene paket adınızı taşıyan bir dosyada, /etc/modul
- es.d/ dizinine koymalısınız.
- Kurulumda update-modules, gene otomatik olarak /etc/modprobe.conf dosyasını
- güncelleyecektir.
- \end_layout
- \begin_layout Subsection*
- Donanımla İlgili Paketler
- \end_layout
- \begin_layout Standard
- Donanım takılma olaylarını yakalamak ve bunun üzerine bir şeyler yapmak
- için udev sistemini kullanın.
- Hazırlayacağınız kural dosyasını /etc/udev/rules.d/ dizinine koymanız yeterli
- olacaktır.
- \end_layout
- \begin_layout Subsection*
- Servis Paketleri
- \end_layout
- \begin_layout Standard
- Eğer arkaplanda çalışıp hizmet verecek bir program paketliyorsanız, ya da
- açılış sırasında çalıştırmanız gereken komutlar varsa, bir Çomar System.Service
- betiği yazıp paketinize eklemeniz gerekmektedir.
- Bu betikle ilgili bilgiler bir sonraki bölümde anlatılmıştır.
- \end_layout
- \begin_layout Subsection*
- Çevre Değişkenleri
- \end_layout
- \begin_layout Standard
- Çevre değişkenlerinizi kabuğa vermek ve kitaplık, komut gibi yollara eklemeler
- yapmak istiyorsanız, /etc/env.d/ dizinine,
- \end_layout
- \begin_layout LyX-Code
- LALA=
- \begin_inset Quotes erd
- \end_inset
- deneme
- \begin_inset Quotes erd
- \end_inset
- \end_layout
- \begin_layout LyX-Code
- LDPATH=
- \begin_inset Quotes erd
- \end_inset
- /usr/lala/lib
- \begin_inset Quotes erd
- \end_inset
- \end_layout
- \begin_layout Standard
- biçiminde satırlardan oluşan bir dosya koymanız yeterlidir.
- Değişkenlerinizin önceliğini belirlemek için dosya adını XX, 00 ile 99
- arasında bir sayı olacak şekilde XXpaketadı biçiminde verin.
- Bu dosyalar işlenirken küçük sayıdan büyüğe gidilmekte, ve sonra gelen
- değer öncekinin üstüne yazılmaktadır.
- Fakat yol belirten PATH, LDPATH, MANPATH, vb değişkenlerde farklı bir mantık
- izlenmekte, bu değişkenler birbirlerine : işareti ile eklenmektedir.
- \end_layout
- \begin_layout Section
- Servis Betikleri
- \end_layout
- \begin_layout Subsection*
- Çomar System.Service Sınıfı
- \end_layout
- \begin_layout Standard
- Müdür için yazılmış servis betikleri Çomar'da bu sınıfa kayıt olurlar ve
- aşağıdaki metotları sağlarlar:
- \end_layout
- \begin_layout Subsubsection*
- System.Service.info
- \end_layout
- \begin_layout Standard
- Servis hakkında bilgi döndürür.
- İlk satır servisin tipi, ikinci satır durumu, son satır da yerelleştirilmiş
- olarak servisin adını verir.
- \end_layout
- \begin_layout Standard
- Üç tip servis vardır:
- \end_layout
- \begin_layout Description
- server Apache, OpenSSH, Postfix gibi dış bilgisayarlara hizmet veren web,
- kabuk, eposta sunucu gibi servislerin başlatma betikleri.
- \end_layout
- \begin_layout Description
- local Pardus masaüstünün çalışabilmesi için yerel programlara hizmet veren
- DBus, HAL, Zemberek gibi servislerin başlatma betikleri.
- \end_layout
- \begin_layout Description
- script Bir servis başlatmayan, yalnızca açılışta belli işlemleri yerine
- getiren betikler.
- \end_layout
- \begin_layout Standard
- Bir servis dört durumda olabilir:
- \end_layout
- \begin_layout Description
- on Servis sürekli olarak açıktır ve şu anda çalışmaktadır.
- \end_layout
- \begin_layout Description
- started Servis kapalıdır ama kullanıcı tarafından çalıştırılmıştır.
- \end_layout
- \begin_layout Description
- stopped Servis açıktır ama bir sebepten dolayı durdurulmuş yada çalışamamıştır.
- \end_layout
- \begin_layout Description
- off Servis kapalıdır.
- \end_layout
- \begin_layout Standard
- Servis tipi ve adı, kullanıcı arayüzlerinde göstermek için tasarlanmıştır.
- \end_layout
- \begin_layout Subsubsection*
- System.Service.start
- \end_layout
- \begin_layout Standard
- Servisi başlatır.
- \end_layout
- \begin_layout Subsubsection*
- System.Service.stop
- \end_layout
- \begin_layout Standard
- Servisi durdurur.
- \end_layout
- \begin_layout Subsubsection*
- System.Service.reload
- \end_layout
- \begin_layout Standard
- Eğer servis destekliyorsa durdurmadan ayarlarını tekrar yükleyip güncellemesini
- sağlar.
- \end_layout
- \begin_layout Subsubsection*
- System.Service.setState (state)
- \end_layout
- \begin_layout Standard
- Servisin durumunu değiştirir.
- Eğer state parametresi "on" verilirse, servis çalıştırılır ve sürekli olarak
- açık konuma getirilir.
- Böylece bilgisayarı yeniden başlattığınızda servis otomatik olarak açılacaktır.
- State "off" verilerek servis kapatılıp çalışmayacak şekilde ayarlanır.
- \end_layout
- \begin_layout Subsubsection*
- System.Service.ready
- \end_layout
- \begin_layout Standard
- Servis eğer "on" olarak ayarlanmışsa, start metodunu çağırarak başlatır.
- Müdür açılış sırasında tüm servislere bu çağrıyı yaparak servisleri başlatmakta
- dır.
- \end_layout
- \begin_layout Subsubsection*
- System.Service.changed
- \end_layout
- \begin_layout Standard
- Bu uyarı bir servisin durumu değiştiğinde gönderilir.
- Parametre olarak "started" ve "stopped" değerlerini verir.
- \end_layout
- \begin_layout Subsection*
- Çomar comar.service Modülü
- \end_layout
- \begin_layout Standard
- Servis betiklerinde sık kullanılan fonksiyonlar comar-api paketi ile gelen
- bu Python modülünde sağlanmıştır.
- \end_layout
- \begin_layout Standard
- Betiklerde:
- \end_layout
- \begin_layout LyX-Code
- from comar.service import *
- \end_layout
- \begin_layout Standard
- şeklinde kullandığınızda info, setState, ready metotları sizin için tanımlanmış
- olacaktır.
- Böylece yalnızca start ve stop metotları ile bir servis betiği yazabilirsiniz.
- Bu hazır fonksiyonlar, betik tipi ve adı bilgisini betiğinizin içinde tanımlaya
- cağınız serviceType ve serviceDesc değişkenlerinden alacaktır.
- \end_layout
- \begin_layout Standard
- Eğer servisinizin çalışıp çalışmadığına göre True/False döndüren bir status
- fonksiyonu yazarsanız, bu da servisinizin durumunu info çağrısında raporlarken
- kullanılacaktır.
- \end_layout
- \begin_layout Standard
- Bu modülü import ettiğiniz halde, bu fonksiyonları kendiniz de tanımlayabilirsin
- iz, bu durumda betiğiniz içindekiler çalışacaktır.
- \end_layout
- \begin_layout Standard
- Modülde ayrıca şu yardımcı fonksiyonlar bulunmaktadır:
- \end_layout
- \begin_layout Subsubsection*
- run()
- \end_layout
- \begin_layout Standard
- Parametre olarak verilen komutu yeni bir kabuk açmadan çalıştırır.
- Komutun dönüş değerini döndürür.
- \end_layout
- \begin_layout Standard
- Örnek:
- \end_layout
- \begin_layout LyX-Code
- run("/sbin/start-stop-daemon --start --quiet --exec /usr/sbin/cpufreqd")
- \end_layout
- \begin_layout Subsubsection*
- checkDaemon()
- \end_layout
- \begin_layout Standard
- Verilen pid dosyasının gösterdiği servisin çalışıp çalışmadığına bakar.
- \end_layout
- \begin_layout Standard
- Örnek:
- \end_layout
- \begin_layout LyX-Code
- def status():
- \end_layout
- \begin_layout LyX-Code
- return checkDaemon("/var/run/kdm.pid")
- \end_layout
- \begin_layout Subsubsection*
- waitBus()
- \end_layout
- \begin_layout Standard
- Dosya adı verilen unix sokete bağlanılabiliyorsa True aksi halde False değerini
- döndürür.
- Bir servisin başlatılması ile istemcileri dinlemeye başlaması arasında
- bir süre geçiyorsa bu komutla bekleyebilirsiniz.
- \end_layout
- \begin_layout Standard
- Opsiyonel timeout parametresi ile maksimum bekleme süresini (öntanımlı 5
- saniye), yine opsiyonel wait parametresi ile de deneme aralıklarını (öntanımlı
- 0.1 saniye) ayarlayabilirsiniz.
- Eğer stream değil de datagram tipinde bir sokete bağlanmanız gerekiyorsa
- False değerli bir stream parametresi vermelisiniz.
- \end_layout
- \begin_layout Standard
- Örnek (kütük servisi hazır mı?):
- \end_layout
- \begin_layout LyX-Code
- waitBus("/dev/log", stream=False)
- \end_layout
- \begin_layout Standard
- Örnek (dbus servisi hazır mı?):
- \end_layout
- \begin_layout LyX-Code
- waitBus("/var/lib/dbus/system_bus_socket")
- \end_layout
- \begin_layout Subsubsection*
- loadEnvironment()
- \end_layout
- \begin_layout Standard
- Çevre değişkenlerini /etc/profile.env dosyasından okuyup çalışan süreç için
- geçerli kılar.
- Böylece buradaki değişkenleri kullanan servisleri, ayrı bir kabuk başlatmadan
- çalıştırabilirsiniz.
- \end_layout
- \begin_layout Subsubsection*
- config
- \end_layout
- \begin_layout Standard
- Bu bir Python sözlük değişkeni olup, /etc/conf.d/betikpaketadı dosyasındaki
- isim=değer biçimindeki ayarları içerir.
- Eğer kullandığınız ayar dosyası adı betiğinizin paket adından farklıysa
- serviceConf değişkenine dosya adını verebilirsiniz (gene /etc/conf.d/ içinde
- bir dosya olmak üzere).
- \end_layout
- \begin_layout Section
- Teknik Yapı
- \end_layout
- \begin_layout Standard
- Pardus açılış sisteminde, olabildiğince modern bir yapı kullanıyoruz.
- Aygıt dosyası oluşturma, donanım tanıma programlarını tetikleme işleri
- tamamen udev tarafından yapılmakta, çekirdek ile udev arasında eski hotplug
- sistemi yerine netlink soket bağlantısı kullanılmakta, donanıma ait modülün
- bulunması sysfs dosya sisteminden gelen üretici/ürün gibi bilgilerle, kurulu
- olan modüllerin desteklediklerinin listesi karşılaştırılarak dinamik olarak
- yapılmakta, açılış sistemi ve servis betikleri yüksek seviyeli Python diliyle
- yazılmakta.
- \end_layout
- \begin_layout Subsection*
- Temel yaklaşımımız
- \end_layout
- \begin_layout Itemize
- Donanım tanıma dinamik olmalı, kurulu sistem donanımda değişiklikler olduğunda,
- yeniden elle ayar istemeden, çalışmaya devam edebilmelidir,
- \end_layout
- \begin_layout Itemize
- Programların sistemle entegrasyonu kolay ve problemsiz olmalıdır,
- \end_layout
- \begin_layout Itemize
- Açılıştaki erken bir sorun sistemi kurtarmayı çok zorlaştırmakta olduğu
- için, temel işlemler çok sağlam olmalı, bir hata çıktığında bunu düzeltmek
- için çaba göstermeli, daha güvenli açılış seçenekleri sağlamalıdır,
- \end_layout
- \begin_layout Itemize
- Sistem esnek olmakla birlikte, yeterli performansı da sağlamalıdır.
- \end_layout
- \begin_layout Subsection*
- Tasarım Kararları
- \end_layout
- \begin_layout Description
- Python Nedeni çok açık.
- Kabuk, awk, perl, sed betiklerinden oluşan çorba yerine, bakımı ve okuması
- kolay, ihtiyacımız olan karakter dizisi (string) ve liste, sözlük gibi
- veritiplerini çok güçlü bir şekilde destekleyen, fonksiyonel ve nesne tabanlı,
- hızlı ve temiz program geliştirilebilen bir dil seçtik.
- Kod büyüklüğü büyük ölçüde kısalırken, özelliklerimiz ve hızımız arttı.
- \end_layout
- \begin_layout Description
- Disk\InsetSpace ~
- hızı Harddisklerin oldukça yüksek olan okuma hızı, harddiskin okuyucu
- kafasının gereksiz dolaşımıyla büyük ölçüde düşüyor.
- Bu aşırı dolaşımın sebepleri arasında dosya sisteminin fragmentasyonu,
- çok sayıda dosyaya erişim, okuma/yazma işlemlerinin farklı dosyalar üzerinde
- içiçe yapılmaları, okuma işleminin tek seferde değil, ara ara parçalar
- halinde yapılması var.
- Bunu önlemek için, müdürün ana kısmını tek bir dosya (mudur.py) olarak tuttuk,
- dışardan çağırdığımız programları tam yolları ile (/sbin/mount şeklinde)
- çağırdık, Python yorumlayıcısının bir defada yüklenince birçok modülü (os,
- sys, string, time, glob, vb) sağlıyor olmasının avantajını kullandık, kabuğun
- zayıflığı nedeniyle çok kullanılmak zorunda kalınmış geçici dosyalardan
- kaçındık.
- \end_layout
- \begin_layout Description
- Çomar Klasik /etc/init.d/ altındaki kabuk betikleri yerine Python ile yazılmış
- Çomar betikleri kullanmayı seçtik.
- Dezavantajı servis betiklerinin yeniden yazılmasının gerekmesi.
- Dağıtımda servis betiği gerektiren uygulama sayısının %5 altında olması
- ve bu betikleri yazmanın, Python gibi kolay bir dille birer start ve stop
- metodu yazmaktan ibaret olması, ve Pisi paketçilerinin zaten Python ile
- çalışıyor olması, bu dezavantajı önemsiz kılıyor.
- Hazır Çomar yapısını kullanmak, servisleri yöneten araçlar yapmayı, ve
- servis yönetimi yetkilerini kullanıcılara dağıtabilmeyi çok kolaylaştırmakta.
- \end_layout
- \begin_layout Description
- init Başka açılış sistemi denemelerinin (initng, depinit, vs) tersine, temel
- süreci değiştirmekten kaçındık.
- Bu süreç kendi işini çok iyi yapıyor ve yılların sağlamlığına sahip.
- Paralelliği temel açılış bitmeden zaten başlatamıyoruz, şu anda Çomar ile
- servisleri paralel çalıştırıyoruz, müdür de init tarafından çalıştırılıyor.
- \end_layout
- \begin_layout Description
- sleep En çok kaçındığımız komut.
- Kafadan bir süre uyuyup, beklediğimiz olayın tamamlandığını varsaymak yerine,
- o olayın gerçekten olup olmadığını kontrol ediyoruz.
- Mesela syslogd başlattıktan sonra, işlemlere devam etmeden bir saniye beklemek
- yerine, /dev/log soketinin açılmasını bekliyoruz, böylece süreçlerimiz
- hem daha sağlam, hem de daha hızlı oluyor.
- \end_layout
- \begin_layout Description
- udev Hemen hemen tüm dağıtımlar tarafından kullanılıyor.
- Klasik diskte tutulan sabit /dev dizinine ve bir süre çekirdeğe dahil olup
- sonra atılan devfs sistemine göre, çok temiz ve esnek.
- \end_layout
- \begin_layout Description
- muavin Donanım tanıma sırasında udev ile modprobe arasında bizim muavin
- programımız bulunuyor.
- Çekirdekten gelen MODALIAS değerini direk modprobe etmemekteki amacımız,
- araya daha esnek bir kontrol sokabilmek.
- MODALIAS, özellikle ISAPNP gibi veri yollarında henüz başarılı değil.
- Muavin ayrıca, CPU frekans modülleri gibi, daha sezgisel metotlarla bulunan
- modüllerle de ilgileniyor.
- \end_layout
- \begin_layout Section
- Belge Geçmişi
- \end_layout
- \begin_layout Itemize
- İlk sürüm (2006-08-25), Gürer Özen
- \end_layout
- \end_body
- \end_document
|