PardusAcilisSistemi.lyx 37 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210
  1. #LyX 1.4.1 created this file. For more info see http://www.lyx.org/
  2. \lyxformat 245
  3. \begin_document
  4. \begin_header
  5. \textclass article
  6. \language turkish
  7. \inputencoding auto
  8. \fontscheme default
  9. \graphics default
  10. \paperfontsize default
  11. \spacing single
  12. \papersize default
  13. \use_geometry false
  14. \use_amsmath 1
  15. \cite_engine basic
  16. \use_bibtopic false
  17. \paperorientation portrait
  18. \secnumdepth 3
  19. \tocdepth 3
  20. \paragraph_separation skip
  21. \defskip medskip
  22. \quotes_language english
  23. \papercolumns 1
  24. \papersides 1
  25. \paperpagestyle default
  26. \tracking_changes false
  27. \output_changes false
  28. \end_header
  29. \begin_body
  30. \begin_layout Title
  31. Pardus Açılış Sistemi
  32. \end_layout
  33. \begin_layout Standard
  34. \begin_inset LatexCommand \tableofcontents{}
  35. \end_inset
  36. \newpage
  37. \end_layout
  38. \begin_layout Section
  39. Giriş
  40. \end_layout
  41. \begin_layout Standard
  42. İşletim sistemi çekirdeğinin çalışmaya başladığı andan, kullanıcının giriş
  43. yapabileceği ana kadar yapılan işlemler, açılış (init) sürecidir.
  44. Dosya sistemlerinin bağlanması, donanım sürücülerinin yüklenmesi, sistem
  45. servislerinin başlatılması ve grafik arabiriminin çalıştırılıp, giriş ekranının
  46. gösterilmesi bu sürecin kapsamındadır.
  47. \end_layout
  48. \begin_layout Standard
  49. Bilgisayar kapatılacağı zaman, servislerin durdurulması, bağlanmış dosya
  50. sistemlerinin ayrılması da aynı sistem tarafından yürütülür.
  51. \end_layout
  52. \begin_layout Standard
  53. Pardus 1.1 sürümü ile birlikte kabuk tabanlı klasik açılış sistemini terkedip,
  54. Müdür adıyla geliştirdiğimiz yeni bir sisteme geçtik.
  55. Bu belge, daha hızlı açılış sağlayan, Python diliyle yazıldığı için geliştirmes
  56. i ve bakımı daha kolay olan bu yeni sistemin kullanımını anlatmaktadır.
  57. \end_layout
  58. \begin_layout Standard
  59. Açılış süreci, temel kullanım ve ayarlar bölümleri kullanıcılara yönelik
  60. olup, temel kavramları ve özel durumlarda gerekebilecek bilgileri anlatmaktadır.
  61. \end_layout
  62. \begin_layout Standard
  63. Paketleme bilgileri ve servis betikleri bölümleri, sistem yöneticilerine
  64. ve entegratörlere yönelik olup, pisi paketi yaparken, yada üçüncü parti
  65. bir programa pardus desteği verirken gerekli olan bilgileri vermektedir.
  66. \end_layout
  67. \begin_layout Standard
  68. Teknik yapı bölümü, programcılara yönelik olup, incelemek ve geliştirmek
  69. isteyenlere müdürün bileşenlerini ve teknik ayrıntılarını anlatmaktadır.
  70. \end_layout
  71. \begin_layout Section
  72. Açılış Süreci
  73. \end_layout
  74. \begin_layout Standard
  75. Bilgisayar açılınca, anakart üzerindeki BIOS (Basic Input/Output System,
  76. Temel Giriş/Çıkış Sistemi) adı verilen yazılım çalışmaya başlar.
  77. Kendi iç denetleme ve donanım hazırlama sürecini tamamladıktan sonra, öntanımlı
  78. açılış aygıtından (bu bağlı bir harddisk, CD okuyucu, ya da USB disk olabilir),
  79. MBR (Master Boot Record, Ana Önyükleme Kaydı) adı verilen ve söz konusu
  80. kayıt ortamının en başında bulunan ufak önyükleyici yazılımı yükler ve
  81. çalıştırır.
  82. \end_layout
  83. \begin_layout Subsection*
  84. Önyükleyici
  85. \end_layout
  86. \begin_layout Standard
  87. Pardusun kurulumu sırasında, öntanımlı önyükleyici yazılımı Grub, kurulum
  88. yaptığınız diskin başına yerleştirilecek, ve diskte başka işletim sistemleri
  89. varsa, bunlar da Grub ayar dosyasına yazılacaktır.
  90. Böylece bilgisayarı açınca karşısınıza çıkacak Grub menüsünden hangi işletim
  91. sistemini açmak istediğinizi seçebilirsiniz.
  92. \end_layout
  93. \begin_layout Standard
  94. Önyükleyici, BIOS yordamlarını kullanarak seçtiğiniz işletim sistemi çekirdeğini
  95. belleğe yükletir ve çalışmayı çekirdeğe devreder.
  96. \end_layout
  97. \begin_layout Standard
  98. Linux çekirdeği, içereceği donanım sürücüleri seçilerek özelleştirilmiş
  99. biçimlerde derlenebilmektedir.
  100. Bu sürücüler çekirdeğin içine dahil edilebildiği gibi, gerektiği anda yüklenece
  101. k modüller olarak da sistemde bulunabilirler.
  102. Kullanılmayan sürücüler çekirdeğin boyutunu ve bellek kullanımını arttırdıkları
  103. için, Pardusta donanım sürücülerini olabildiğince ayrı modüller halinde
  104. dağıtıyoruz.
  105. Bu şekilde, çalışan bir sistemde bir modülü çıkartıp, yeni sürümünü yükleyerek
  106. kolayca güncellemek de mümkün olmaktadır.
  107. \end_layout
  108. \begin_layout Standard
  109. Önyükleyiciden çekirdeğe geçiş sırasında, depolama aygıtının sürücüsünü
  110. içermeyen bir çekirdek, önyükleyici, aygıtı BIOS aracılığıyla kullandığı
  111. için kolayca yüklenebilir, ama yönetimi BIOS'tan alınca bu aygıta erişemeyeceği
  112. için açılış sürecine devam edemez.
  113. Çok sayıda depolama aygıtının sürücülerini çekirdek içine koymak pratik
  114. olmadığı için, bu soruna çare olarak initrd (init ram disk, açılış bellek
  115. diski) denilen ikinci bir dosya, önyükleyici tarafından çekirdekle birlikte
  116. belleğe yüklenir.
  117. Bu dosya içinde, ufak bir dosya sistemi şeklinde, daha az yaygın olan depolama
  118. aygıtı sürücüleri bulunmaktadır.
  119. Çekirdek buradan gerekli sürücü varsa yükledikten sonra, bu dosyayı bellekten
  120. atar.
  121. \end_layout
  122. \begin_layout Subsection*
  123. Çekirdek
  124. \end_layout
  125. \begin_layout Standard
  126. Çekirdek donanım yönetimini ele alıp, hazırlıklarını tamamladıktan sonra,
  127. kök (root) dizin olarak belirtilen yerdeki dosya sistemini açarak, burada
  128. /sbin/init programını çalıştırır.
  129. Bu program temel süreç olarak, diğer süreçleri yönetir.
  130. Belli olaylar (açılış, kapatma komutu, güç yönetimi, vs) olduğunda ayar
  131. dosyasında belirtilen komutları çalıştırır.
  132. \end_layout
  133. \begin_layout Subsection*
  134. Müdür
  135. \end_layout
  136. \begin_layout Standard
  137. Müdürün ana kısmı olan /sbin/mudur.py komutu, açılış sırasında init tarafından
  138. çağrıldığında, aygıt yönetimi ve otomatik donanım tanıma (hotplug) için
  139. kullanılan udev servisini başlatır.
  140. Bu servis bilgisayara USB disk yada CD gibi bir şey taktığınızda, bu olayla
  141. ilgilenen programların otomatik çalıştırılması, takılan aygıta erişim için
  142. gereken /dev dizini altındaki dosyaların oluşturulması gibi işleri yapar.
  143. Müdür daha sonra depolama aygıtlarındaki dosya sistemlerini kontrol eder
  144. ve bağlar.
  145. Müdürün diğer bir parçası olan /sbin/muavin.py aracılığıyla, bilgisayarda
  146. hazır bulunan (coldplug) ve sürücüsü initrd içinde olmayan donanımların
  147. sürücülerini yükletir.
  148. Muavin yeni bir donanım takıldığında da udev tarafından çağrılmakta ve
  149. sürücü yükleme işini yapmaktadır.
  150. Müdür, sistem saatini donanım saatiyle senkronize ettikten ve temel ağ
  151. ayarlarını da yaptıktan sonra, Pardus'un sistem yapılandırma aracı olan
  152. Çomar'ı başlatır.
  153. En son olarak Çomar'a servisleri çalıştırması komutunu verir.
  154. \end_layout
  155. \begin_layout Standard
  156. Kapanış sırasında çağrıldığında ise, önce Çomar'a servisleri durdurması
  157. komutunu verir.
  158. Sonra sistem saatini tekrar donanım saati ile senkronize eder.
  159. En son olarak bağlı dosya sistemlerini düzgün bir şekilde ayırarak, veri
  160. kaybı olmadan kapanmalarını sağlar.
  161. Müdür işini bitirdikten sonra init komutu bilgisayarı kapatması yada yeniden
  162. başlatması için gerekli komutu çekirdeğe verir.
  163. \end_layout
  164. \begin_layout Subsection*
  165. Servisler
  166. \end_layout
  167. \begin_layout Standard
  168. Arkaplanda çalışarak kullanıcıya yada diğer programlara bir takım hizmetler
  169. sunan yazılımlardır.
  170. Örneğin zemberek uygulamalara Türkçe yazım denetimi desteği sağlarken,
  171. DBus masaüstü uygulamalarının iletişimini, cups ise yazıcı desteğini sağlar.
  172. Uzaktan erişim sağlayan SSH gibi sunucu yazılımları da birer servis olarak
  173. çalışmakta ve yönetilebilmektedir.
  174. \end_layout
  175. \begin_layout Standard
  176. Servisler başlatıldığında, KDM (KDE Desktop Manager, KDE Masaüstü Yöneticisi)
  177. servisi, görüntüye kullanıcı giriş ekranını getirir.
  178. Buradan kullanıcı ve parolası ile giriş yapıldığında da o kullanıcının
  179. masaüstü yüklenir ve çalışmaya başlar.
  180. \end_layout
  181. \begin_layout Section
  182. Temel Kullanım
  183. \end_layout
  184. \begin_layout Standard
  185. Açılış ve donanım tanıma sistemi büyük ölçüde otomatik çalışmaktadır.
  186. \end_layout
  187. \begin_layout Standard
  188. Bilgisayarınızda hangi servislerin kurulu olduğunu görmek, bunların açılışta
  189. başlayıp başlamayacağını ayarlamak, servislerin çalışma durumunu denetlemek,
  190. gerektiğinde yeniden başlatmak gibi işler için, Pardus Yapılandırma Merkezi
  191. içinde Sistem Seçeneklerinde bulunan Servis Yöneticisi yazılımını kullanabilirs
  192. iniz.
  193. \end_layout
  194. \begin_layout Standard
  195. Komut satırından ve betiklerden servisleri yönetebilmek için /bin/service
  196. komutu da bulunmaktadır.
  197. \end_layout
  198. \begin_layout Standard
  199. Kurulu servisleri ve durumlarını görmek için:
  200. \end_layout
  201. \begin_layout LyX-Code
  202. service
  203. \end_layout
  204. \begin_layout Standard
  205. komutunu parametresiz olarak veya list parametresi ile verebilirsiniz.
  206. \end_layout
  207. \begin_layout LyX-Code
  208. service openssh start
  209. \end_layout
  210. \begin_layout LyX-Code
  211. service openssh stop
  212. \end_layout
  213. \begin_layout LyX-Code
  214. service openssh restart
  215. \end_layout
  216. \begin_layout Standard
  217. komutları ilk parametre olarak verilen servisi başlatacak, durduracak, ve
  218. durdurup tekrar başlatacaktır.
  219. \end_layout
  220. \begin_layout LyX-Code
  221. service openssh reload
  222. \end_layout
  223. \begin_layout Standard
  224. komutu bazı servislerde, sunucunun durdurulmadan, ayar dosyalarını yükleyip
  225. kendisine çeki düzen vermesini sağlar.
  226. Her servis için geçerli değildir.
  227. \end_layout
  228. \begin_layout LyX-Code
  229. service openssh on
  230. \end_layout
  231. \begin_layout LyX-Code
  232. service openssh off
  233. \end_layout
  234. \begin_layout Standard
  235. komutları ile aynı şekilde servisleri açıp kapayabilirsiniz.
  236. Bu şekilde açıp kapattığınız servisler start ve stop'tan farklı olarak,
  237. bir dahaki açılışta aynı durumda başlayacaklardır.
  238. \end_layout
  239. \begin_layout Subsection*
  240. Çalışma Seviyeleri
  241. \end_layout
  242. \begin_layout Standard
  243. Temel süreç görevini yürüten init komutu bir çalışma seviyesi (runlevel)
  244. kavramına sahiptir.
  245. Tarihsel olarak 0 ile 6 arasındaki bu çalışma seviyesi sistemi çeşitli
  246. durumlara getirmek için kullanılır.
  247. Bu seviyeler,
  248. \end_layout
  249. \begin_layout Description
  250. 0 Sistemi kapat
  251. \end_layout
  252. \begin_layout Description
  253. 1 Sistemi tek kullanıcılı moda geçir
  254. \end_layout
  255. \begin_layout Description
  256. 2-5 Kullanıcı tanımlı
  257. \end_layout
  258. \begin_layout Description
  259. 6 Sistemi yeniden başlat
  260. \end_layout
  261. \begin_layout Standard
  262. Çalışma seviyesini değiştirmek için /sbin/telinit komutu kullanılabilir.
  263. Hangi seviyede ne yapılacağı /etc/inittab dosyasında belirlenir.
  264. Pardus'ta bu seviyeler kendilerine karşılık gelen parametre ile müdürü
  265. çağırmakta ve kullanıcı tanımlı seviyelerden yalnız bir tanesi normal çalışma
  266. seviyesi olarak kullanılmaktadır.
  267. Bu müdür parametreleri,
  268. \end_layout
  269. \begin_layout Description
  270. sysinit Temel açılış işlemlerini yap
  271. \end_layout
  272. \begin_layout Description
  273. boot Geri kalan açılış işlemlerini yap
  274. \end_layout
  275. \begin_layout Description
  276. shutdown Kapanış işlemlerini yap (seviye 0)
  277. \end_layout
  278. \begin_layout Description
  279. single Tek kullanıcılı moda geç (seviye 1)
  280. \end_layout
  281. \begin_layout Description
  282. default Servisleri çalıştır (seviye 3)
  283. \end_layout
  284. \begin_layout Description
  285. reboot Kapanış işlemlerini yap (seviye 6)
  286. \end_layout
  287. \begin_layout Standard
  288. Burada ihtiyaç duyabileceğiniz bir seviye, telinit S yada telinit 1 komutuyla
  289. geçebileceğiniz tek kullanıcılı seviyedir.
  290. Bu seviyede müdür servisleri kapatır, ve yetkili (root) kullanıcı olarak
  291. giriş yaparak sistemi onarma gibi işleri yapabilirsiniz.
  292. Normal çalışmaya dönmek için telinit 3 komutunu verebilirsiniz.
  293. \end_layout
  294. \begin_layout Standard
  295. Kapanış için basitçe reboot veya halt komutlarını kullanabilirsiniz, daha
  296. esnek kapanış işlemleri için shutdown komutuna bakın.
  297. \end_layout
  298. \begin_layout Subsection*
  299. Kayıtlar
  300. \end_layout
  301. \begin_layout Standard
  302. Sistem dili, klavye haritası ve yereli müdürde öntanımlı değerlere sahiptir,
  303. /etc/conf.d/mudur dosyasından ayarlanabilmektedir, ve mudur çekirdek parametresi
  304. ile de değiştirilebilmektedir.
  305. Müdür bu değerleri belirledikten sonra, kdm gibi programların aynı yerleri
  306. dolaşmadan kolayca alabilmesi için, /etc/mudur/ dizini içindeki keymap,
  307. language ve locale adlı dosyalara yazar.
  308. \end_layout
  309. \begin_layout Standard
  310. Müdür, /var/log/mudur.log dosyasına karşılaştığı olayları kaydetmektedir.
  311. Örnek bir dosyadan bir kesit:
  312. \end_layout
  313. \begin_layout LyX-Code
  314. Aug 26 13:55:08 (up 7.65) /sbin/mudur.py sysinit
  315. \end_layout
  316. \begin_layout LyX-Code
  317. Aug 26 10:55:15 (up 14.44) /sbin/mudur.py boot
  318. \end_layout
  319. \begin_layout LyX-Code
  320. Aug 26 10:55:16 (up 15.84) /sbin/mudur.py default
  321. \end_layout
  322. \begin_layout LyX-Code
  323. Aug 26 15:58:42 (up 18221.40) /sbin/mudur.py shutdown
  324. \end_layout
  325. \begin_layout Standard
  326. Satırlar, tarih (çalışma süresi) bilgi biçimindedir.
  327. Çalışma süresi çekirdek çalışmaya başladığı andan itibaren geçen saniye
  328. olarak hesaplanmaktadır.
  329. Açılış sırasında sistem saati donanım saati ile senkronize edilirken tarih
  330. kısmında saatte bir düzeltme olduğu için olayın zamanını daha doğru göstermek
  331. için konmuştur.
  332. \end_layout
  333. \begin_layout Standard
  334. Örnekte, sekizinci saniyeye doğru müdür, temel açılış işlemleri için init
  335. tarafından çağrılmakta, onbeşinci saniyeye doğru geri kalan açılış işlemleri
  336. için çağrılmakta, ve onaltıncı saniyeye doğru ise servisleri çalıştırması
  337. için çağrılmaktadır.
  338. Yaklaşık beş saatlik bir çalışmanın sonunda ise kapanış işlemleri için
  339. devreye girmiştir.
  340. \end_layout
  341. \begin_layout Standard
  342. Normal çalışmada yalnızca uyarı ve hata mesajları ile çağrılma durumları
  343. bu dosyaya yazılmaktadır.
  344. Eğer müdürün tüm çıktısının kaydedilmesini isterseniz, /etc/conf.d/mudur
  345. içinde bir debug=1 satırıyla, ya da önyükleyiciden vereceğiniz bir mudur=debug
  346. çekirdek parametresiyle bunu açabilirsiniz.
  347. \end_layout
  348. \begin_layout Subsection*
  349. Diğer Komutlar
  350. \end_layout
  351. \begin_layout Subsubsection*
  352. /sbin/muavin.py
  353. \end_layout
  354. \begin_layout Standard
  355. Aygıt sürücülerini yükleyen muavin, --debug parametresiyle çağrıldığında
  356. bulduğu aygıtlar için hangi sürücüleri yükleyeceğini listeler.
  357. Donanım tanıma ile ilgili bir aksilik olduğunda, bilgi verici olabilir.
  358. Bu sürücüleri yüklemesini istiyorsanız ise --coldplug parametresini kullanabili
  359. rsiniz.
  360. \end_layout
  361. \begin_layout Subsubsection*
  362. /sbin/update-environment
  363. \end_layout
  364. \begin_layout Standard
  365. Normal bir çalışmada ihtiyacınız olmayacak bu komutu, eğer elle bir program
  366. derlemişseniz kullanmanız gerekebilir.
  367. \end_layout
  368. \begin_layout Standard
  369. Bazı programlar, sistemde ve kullanıcı oturumlarında ayarlanması gereken
  370. çevre değişkenlerine ihtiyaç duyarlar.
  371. Örneğin Java, JAVA_HOME adlı bir değişkende sistemdeki Java işleticisinin
  372. bulunduğu dizinin adının bulunmasını ister.
  373. QT gibi, kitaplıklarını /usr/lib gibi standart konumların dışında /usr/qt/3/lib
  374. gibi dizinlere koyan uygulamalar ise, yüklenecek kitaplıkların bulunabileceği
  375. yerleri gösteren LDPATH gibi çevre değişkenlerine kendi dizinlerini eklemek
  376. isterler.
  377. \end_layout
  378. \begin_layout Standard
  379. Program paketlerinin kolayca bu değişkenlere değer atayabilmesi için, /etc/env.d
  380. dizini kullanılmaktadır.
  381. Bir pisi paketi buraya bir dosya koyduğunda, Çomar aracılığıyla çalıştırılan
  382. update-environment komutu, bu dosyaları okuyup sistem kabuğu için bir profil
  383. dosyası oluşturmakta, eğer kitaplık yolları değişmişse, /etc/ld.so.conf dosyasını
  384. yeni yolları içerecek şekilde değiştirmekte, ve /sbin/ldconfig komutunu
  385. çağırarak bu yeni dizinlerdeki kitaplıkların taranarak dinamik kitaplık
  386. yükleyicinin /etc/ld.so.cache dosyasında indekslenmesini sağlamaktadır.
  387. \end_layout
  388. \begin_layout Subsubsection*
  389. /sbin/update-modules
  390. \end_layout
  391. \begin_layout Standard
  392. Normal bir çalışmada ihtiyacınız olmayacak bu komutu, eğer elle bir çekirdek
  393. modülü derlemişseniz kullanmanız gerekebilir.
  394. \end_layout
  395. \begin_layout Standard
  396. Çekirdek modülleri içeren pisi paketleri kurulduktan sonra, Çomar aracılığıyla
  397. çağrılan bu komut, /sbin/depmod komutunu çalıştırarak, çalışmakta olan
  398. çekirdek için, bu modüllerin hangi aygıtları desteklediklerini ve birbirlerine
  399. olan bağımlılıklarını gösteren modules.*map, modules.dep, modules.alias dosyaların
  400. ı oluşturmaktadır.
  401. Her bir çekirdek için /lib/modules/2.6.16.24-49/ gibi dizinlerde bulunan bu
  402. dosyalar, muavin ve modprobe komutu tarafından kullanılmaktadır.
  403. \end_layout
  404. \begin_layout Standard
  405. Ayrıca eğer paket /etc/modules.d/ dizini altına bir dosya yerleştirmişse,
  406. bu dosyalar taranarak, modüller için yükleme şekil ve parametrelerini gösteren
  407. /etc/modprobe.conf dosyası güncellenmektedir.
  408. \end_layout
  409. \begin_layout Section
  410. Ayarlar
  411. \end_layout
  412. \begin_layout Subsection*
  413. Önyükleyici Ayarları
  414. \end_layout
  415. \begin_layout Standard
  416. Önyükleyicinin menüsündeki işletim sistemleri, ve çekirdeğin hangi seçeneklerle
  417. çalıştırılacağı, /boot/grub/grub.conf dosyasından ayarlanmaktadır.
  418. Grub programının belgelerinde bu ayarlarla ilgili detaylı bilgi alabilirsiniz.
  419. Bilgisayar açılırken, Grub menüsü çıktığında, açacağınız sistemin üzerindeyken
  420. e tuşuna basarak da, bu ayarları o açılışa mahsus olarak değiştirebilirsiniz.
  421. \end_layout
  422. \begin_layout Standard
  423. İşletim sistemi girdilerindeki kernel satırları, yüklenecek Linux çekirdeğini
  424. ve parametrelerini belirtmektedir.
  425. Söz dizimi
  426. \end_layout
  427. \begin_layout LyX-Code
  428. kernel (aygıt)/dosya prm1=değer prm2=değer1,değer2 prm3 ...
  429. \end_layout
  430. \begin_layout Standard
  431. biçimindedir.
  432. İlk bilgi yüklenecek çekirdeğin bulunduğu depolama aygıtı ve çekirdeğin
  433. dosya adıdır.
  434. Daha sonra bu çekirdeğe verilen parametreler gelmektedir.
  435. Parametreler tek başına, bir değere sahip, yada birden fazla değerli olabilir.
  436. \end_layout
  437. \begin_layout Standard
  438. Gerekebilecek bazı çekirdek parametreleri:
  439. \end_layout
  440. \begin_layout Description
  441. quiet Öntanımlı gelen bu seçenek çekirdeğin donanımları tararken bulduğu
  442. teknik bilgileri ekrana basmasını önler, müdür çalışmadan önce oluşan bir
  443. donanım sorunu varsa, bu seçeneği kaldırarak daha fazla bilgi alabilirsiniz.
  444. \end_layout
  445. \begin_layout Description
  446. splash Açılışta grafik logo gösterilmesini sağlar, metin ekranda açılış
  447. için, bu seçeneği ve console seçeceğini kaldırın.
  448. \end_layout
  449. \begin_layout Description
  450. noacpi Standartlara uygun olmayan bazı BIOS'larda bu seçenekle çekirdeği
  451. çalıştırmak mümkün olmaktadır.
  452. \end_layout
  453. \begin_layout Description
  454. mudur Bu seçenekle müdürün bazı ayarlarını değiştirebilirsiniz.
  455. Müdür ayarları bölümünde daha ayrıntılı anlatılmıştır.
  456. \end_layout
  457. \begin_layout Standard
  458. Tüm çekirdek parametrelerini ve açıklamalarını, kernel-source paketini kurduktan
  459. sonra /usr/src/linux/Documentation/kernel-parameters.txt dosyası içinde
  460. bulabilirsiniz.
  461. \end_layout
  462. \begin_layout Subsection*
  463. Müdür Ayarları
  464. \end_layout
  465. \begin_layout Standard
  466. Müdür init tarafından çalıştırılmaktadır, genellikle değiştirmenize gerek
  467. olmayan init ayarları /etc/inittab dosyasında bulunmaktadır.
  468. \end_layout
  469. \begin_layout Standard
  470. Müdürün kendi ayarları ise /etc/conf.d/mudur dosyasından ve önyükleyiciyle
  471. çekirdeğe verilen mudur parametresinden yapılabilmektedir.
  472. Çekirdekten verilen ayarlar dosyada yazanların yerine kullanılır.
  473. \end_layout
  474. \begin_layout Description
  475. safe Bu seçenek verilirse, sorun yaratabilecek bazı donanım işlemleri yapılmayac
  476. ak, servislerden ise yalnızca giriş ekranını çıkartan kdm ve bağlı olduğu
  477. servisler çalıştırılacaktır.
  478. \end_layout
  479. \begin_layout Description
  480. language Açılışta ve giriş ekranında kullanılacak olan sistem dilini belirler.
  481. Öntanımlı değeri Türkçe'dir.
  482. Kurulum başka bir dilde yapılmışsa, ayar dosyasında bu dil seçilidir.
  483. \end_layout
  484. \begin_layout Description
  485. keymap Eğer sistem dilinin öntanımlı klavye haritasını kullanmak istemiyorsanız,
  486. bu seçenekle başka bir harita belirleyebilirsiniz.
  487. \end_layout
  488. \begin_layout Description
  489. clock Donanım saatiniz Greenwich Merkezi Zamanına (GMT) göre ayarlıysa bu
  490. değeri UTC yapın, eğer donanım saatiniz yerel zamana göre ayarlıysa da
  491. local yapın.
  492. Öntanımlı değeri yerele ayarlı saattir.
  493. Bu seçeneği yalnızca ayar dosyasından verebilirsiniz.
  494. \end_layout
  495. \begin_layout Description
  496. tty_number Kullanmak istediğiniz metin ekran konsol sayısı öntanımlı altı
  497. değerinden farklıysa bu seçenekten belirtebilirsiniz.
  498. Bu seçeneği yalnızca ayar dosyasından verebilirsiniz.
  499. \end_layout
  500. \begin_layout Description
  501. debug Bu seçenek verilirse müdür tüm çıktılarını /var/log/mudur.log dosyasına
  502. yazacak, hata düzeltme bilgileri sağlayacaktır.
  503. \end_layout
  504. \begin_layout Standard
  505. Bazı örnekler:
  506. \end_layout
  507. \begin_layout LyX-Code
  508. mudur=safe,debug
  509. \end_layout
  510. \begin_layout LyX-Code
  511. mudur=language:tr,keymap:trf
  512. \end_layout
  513. \begin_layout Subsection*
  514. Donanım Ayarları
  515. \end_layout
  516. \begin_layout Standard
  517. Açılışta otomatik olarak yüklenemeyen, ya da ne olursa olsun yüklenmesini
  518. istediğiniz çekirdek modüllerini /etc/modules.autoload.d dizini içindeki
  519. kernel-x.y.z biçimindeki dosyalara her satıra bir modül ismi biçiminde yazabilirs
  520. iniz.
  521. Bu dosyalara bakılırken, mesela 2.6.16.24 çekirdeği çalışıyorsa sırasıyla
  522. varsa kernel-2.6.16 ve kernel-2.6 dosyalarına bakılacaktır.
  523. \end_layout
  524. \begin_layout Standard
  525. Aynı şekilde, eğer otomatik yüklenmesi sorunlara yol açan modüller varsa,
  526. /etc/hotplug/blacklist dosyasına, ya da /etc/hotplug/blacklist.d/ dizini
  527. içindeki herhangi bir dosyaya, gene bir satıra bir modül ismi gelecek şekilde
  528. yazabilirsiniz.
  529. \end_layout
  530. \begin_layout Standard
  531. Modüllere özel parametreler vermek için /etc/modules.d içinde bir dosya oluşturup
  532. , modprobe.conf belgesinde anlatılan söz dizimi ile alias, install, options
  533. gibi komutları verebilirsiniz.
  534. Müdürün bir parçası olan update-modules komutu bu dosyaları dolaşıp bir
  535. /etc/modprobe.conf dosyası oluşturmaktadır.
  536. Komutlarınızı bu dosyaya direk yazmayın, yeni bir modül paketi yada çekirdek
  537. kurulduğunda otomatik olarak üstüne yazılacaktır.
  538. \end_layout
  539. \begin_layout Standard
  540. Bir donanım takıldığında, bununla ilgili bir ayar yapmak, isim vermek, özel
  541. bir program çalıştırmak gibi şeyler yapmak için, /etc/udev/rules.d/ dizinine
  542. bir kural dosyası koymanız yeterlidir.
  543. Buraya ismi .rules sonekiyle biten yeni bir dosya konduğunda otomatik olarak
  544. devreye girmektedir.
  545. Kural dosyasının söz dizimi için udev belgelerine bakın.
  546. \end_layout
  547. \begin_layout Standard
  548. Müdür açılış sırasında bazı harddisk parametrelerini ayarlayabilmektedir.
  549. Bu tür bir ihtiyacınız varsa /etc/conf.d/hdparm dosyasında istediğiniz disklere
  550. istediğiniz parametreleri verebilirsiniz.
  551. Parametrelerin neler olduğunu öğrenmek için hdparm komutunun belgesine
  552. bakın.
  553. Bazı parametreler sorunlara yol açabileceğinden dikkatli olmanız tavsiye
  554. edilir.
  555. Dosyanın söz dizimi, aygıt adı =
  556. \begin_inset Quotes eld
  557. \end_inset
  558. parametreler
  559. \begin_inset Quotes erd
  560. \end_inset
  561. biçiminde satırlardan oluşmaktadır.
  562. Aygıt adı /dev/ dizini altındaki herhangi bir harddisk aygıtı yada bağlı
  563. bulunan tüm diskler için all olabilir.
  564. \end_layout
  565. \begin_layout Subsection*
  566. Diğer Ayarlar
  567. \end_layout
  568. \begin_layout Standard
  569. Çekirdeğin kapatılınca kaybolan ve /proc/sys dosya sistemi aracılığıyla
  570. yapılan ayarları için, /etc/sysctl.conf dosyasını kullanabilirsiniz.
  571. Örneğin ağ ayarlarından tüm makinelere gönderilen pinglere cevap vermeyi
  572. kapatmak için:
  573. \end_layout
  574. \begin_layout LyX-Code
  575. net.ipv4.icmp_echo_ignore_broadcasts = 1
  576. \end_layout
  577. \begin_layout Standard
  578. gibi bir satır ekleyebilirsiniz.
  579. Açılışta bu dosya okunurken, /proc/sys/net/ipv4/ dizinindeki icmp_echo_ignore_b
  580. roadcasts dosyasına 1 değeri yazılarak çekirdeğin bu özelliği çalıştırılacaktır.
  581. Daha fazla bilgi için sysctl komutuna ve çekirdek belgelerine bakabilirsiniz.
  582. \end_layout
  583. \begin_layout Standard
  584. Servislerin ayar dosyaları da genellikle /etc/conf.d/ dizini içinde durmaktadır.
  585. \end_layout
  586. \begin_layout Standard
  587. Bunlardan önemli bir tanesi local.start ve local.stop dosyalarıdır.
  588. İlki açılışta, ikincisi ise kapanışta çalıştırılan birer kabuk betiğidir.
  589. Pardus tarafından kullanılmayan ve tamamen kullanıcılara ait olan bu dosyaların
  590. içine, İhtiyaç halinde kendi özel komutlarınızı koyabilirsiniz.
  591. \end_layout
  592. \begin_layout Section
  593. Paketleme Bilgileri
  594. \end_layout
  595. \begin_layout Standard
  596. Pisi paketi yaparken, paketlediğiniz programı açılış sistemine entegre etmenizi
  597. gerektiren çeşitli durumlarla karşılaşabilirsiniz.
  598. \end_layout
  599. \begin_layout Subsection*
  600. Çekirdek Modülü Paketleri
  601. \end_layout
  602. \begin_layout Standard
  603. Çekirdek modülleri içeren bir paket yaparken, paketinize /lib/modules/2.6.xx.xx/
  604. dizininin hemen altındaki modules.* dosyalarını almamalısınız.
  605. Aksi takdirde dosya çakışmaları ortaya çıkabilir.
  606. Modül paketleri kurulurken bu dosyalar sistemdeki modüller taranarak update-mod
  607. ules komutu tarafından düzgün bir şekilde oluşturulacaktır.
  608. \end_layout
  609. \begin_layout Standard
  610. Eğer modülün inşası sırasında bu dosyalar paket kurulum dizinde oluşuyorsa,
  611. actions.py içinde basitçe
  612. \end_layout
  613. \begin_layout LyX-Code
  614. pisitools.remove("/lib/modules/*/modules.*")
  615. \end_layout
  616. \begin_layout Standard
  617. ile silebilirsiniz.
  618. \end_layout
  619. \begin_layout Standard
  620. Eğer bir modülün her açılışta mutlaka yüklenmesini istiyorsanız, Çomar System.Pac
  621. kage betiğinizde, ihtiyacınıza göre /etc/modules.autoload.d/ dizini içinde
  622. kernel-2.x yada kernel-2.x.y dosyasının sonuna bir satır olarak ekletebilirsiniz.
  623. Dosyada daha önce zaten böyle bir satır olup olmadığını da kontrol edin!
  624. \end_layout
  625. \begin_layout Standard
  626. Bir modülün donanım varsa bile otomatik yüklenmesinin önüne geçmek gerekiyorsa
  627. ise, /etc/hotplug/blacklist.d/ dizini içine kendi paket adınızda bir dosyaya
  628. modül adlarını satır satır yazıp koymalısınız.
  629. \end_layout
  630. \begin_layout Standard
  631. Modüllerinizin parametreleri, gene paket adınızı taşıyan bir dosyada, /etc/modul
  632. es.d/ dizinine koymalısınız.
  633. Kurulumda update-modules, gene otomatik olarak /etc/modprobe.conf dosyasını
  634. güncelleyecektir.
  635. \end_layout
  636. \begin_layout Subsection*
  637. Donanımla İlgili Paketler
  638. \end_layout
  639. \begin_layout Standard
  640. Donanım takılma olaylarını yakalamak ve bunun üzerine bir şeyler yapmak
  641. için udev sistemini kullanın.
  642. Hazırlayacağınız kural dosyasını /etc/udev/rules.d/ dizinine koymanız yeterli
  643. olacaktır.
  644. \end_layout
  645. \begin_layout Subsection*
  646. Servis Paketleri
  647. \end_layout
  648. \begin_layout Standard
  649. Eğer arkaplanda çalışıp hizmet verecek bir program paketliyorsanız, ya da
  650. açılış sırasında çalıştırmanız gereken komutlar varsa, bir Çomar System.Service
  651. betiği yazıp paketinize eklemeniz gerekmektedir.
  652. Bu betikle ilgili bilgiler bir sonraki bölümde anlatılmıştır.
  653. \end_layout
  654. \begin_layout Subsection*
  655. Çevre Değişkenleri
  656. \end_layout
  657. \begin_layout Standard
  658. Çevre değişkenlerinizi kabuğa vermek ve kitaplık, komut gibi yollara eklemeler
  659. yapmak istiyorsanız, /etc/env.d/ dizinine,
  660. \end_layout
  661. \begin_layout LyX-Code
  662. LALA=
  663. \begin_inset Quotes erd
  664. \end_inset
  665. deneme
  666. \begin_inset Quotes erd
  667. \end_inset
  668. \end_layout
  669. \begin_layout LyX-Code
  670. LDPATH=
  671. \begin_inset Quotes erd
  672. \end_inset
  673. /usr/lala/lib
  674. \begin_inset Quotes erd
  675. \end_inset
  676. \end_layout
  677. \begin_layout Standard
  678. biçiminde satırlardan oluşan bir dosya koymanız yeterlidir.
  679. Değişkenlerinizin önceliğini belirlemek için dosya adını XX, 00 ile 99
  680. arasında bir sayı olacak şekilde XXpaketadı biçiminde verin.
  681. Bu dosyalar işlenirken küçük sayıdan büyüğe gidilmekte, ve sonra gelen
  682. değer öncekinin üstüne yazılmaktadır.
  683. Fakat yol belirten PATH, LDPATH, MANPATH, vb değişkenlerde farklı bir mantık
  684. izlenmekte, bu değişkenler birbirlerine : işareti ile eklenmektedir.
  685. \end_layout
  686. \begin_layout Section
  687. Servis Betikleri
  688. \end_layout
  689. \begin_layout Subsection*
  690. Çomar System.Service Sınıfı
  691. \end_layout
  692. \begin_layout Standard
  693. Müdür için yazılmış servis betikleri Çomar'da bu sınıfa kayıt olurlar ve
  694. aşağıdaki metotları sağlarlar:
  695. \end_layout
  696. \begin_layout Subsubsection*
  697. System.Service.info
  698. \end_layout
  699. \begin_layout Standard
  700. Servis hakkında bilgi döndürür.
  701. İlk satır servisin tipi, ikinci satır durumu, son satır da yerelleştirilmiş
  702. olarak servisin adını verir.
  703. \end_layout
  704. \begin_layout Standard
  705. Üç tip servis vardır:
  706. \end_layout
  707. \begin_layout Description
  708. server Apache, OpenSSH, Postfix gibi dış bilgisayarlara hizmet veren web,
  709. kabuk, eposta sunucu gibi servislerin başlatma betikleri.
  710. \end_layout
  711. \begin_layout Description
  712. local Pardus masaüstünün çalışabilmesi için yerel programlara hizmet veren
  713. DBus, HAL, Zemberek gibi servislerin başlatma betikleri.
  714. \end_layout
  715. \begin_layout Description
  716. script Bir servis başlatmayan, yalnızca açılışta belli işlemleri yerine
  717. getiren betikler.
  718. \end_layout
  719. \begin_layout Standard
  720. Bir servis dört durumda olabilir:
  721. \end_layout
  722. \begin_layout Description
  723. on Servis sürekli olarak açıktır ve şu anda çalışmaktadır.
  724. \end_layout
  725. \begin_layout Description
  726. started Servis kapalıdır ama kullanıcı tarafından çalıştırılmıştır.
  727. \end_layout
  728. \begin_layout Description
  729. stopped Servis açıktır ama bir sebepten dolayı durdurulmuş yada çalışamamıştır.
  730. \end_layout
  731. \begin_layout Description
  732. off Servis kapalıdır.
  733. \end_layout
  734. \begin_layout Standard
  735. Servis tipi ve adı, kullanıcı arayüzlerinde göstermek için tasarlanmıştır.
  736. \end_layout
  737. \begin_layout Subsubsection*
  738. System.Service.start
  739. \end_layout
  740. \begin_layout Standard
  741. Servisi başlatır.
  742. \end_layout
  743. \begin_layout Subsubsection*
  744. System.Service.stop
  745. \end_layout
  746. \begin_layout Standard
  747. Servisi durdurur.
  748. \end_layout
  749. \begin_layout Subsubsection*
  750. System.Service.reload
  751. \end_layout
  752. \begin_layout Standard
  753. Eğer servis destekliyorsa durdurmadan ayarlarını tekrar yükleyip güncellemesini
  754. sağlar.
  755. \end_layout
  756. \begin_layout Subsubsection*
  757. System.Service.setState (state)
  758. \end_layout
  759. \begin_layout Standard
  760. Servisin durumunu değiştirir.
  761. Eğer state parametresi "on" verilirse, servis çalıştırılır ve sürekli olarak
  762. açık konuma getirilir.
  763. Böylece bilgisayarı yeniden başlattığınızda servis otomatik olarak açılacaktır.
  764. State "off" verilerek servis kapatılıp çalışmayacak şekilde ayarlanır.
  765. \end_layout
  766. \begin_layout Subsubsection*
  767. System.Service.ready
  768. \end_layout
  769. \begin_layout Standard
  770. Servis eğer "on" olarak ayarlanmışsa, start metodunu çağırarak başlatır.
  771. Müdür açılış sırasında tüm servislere bu çağrıyı yaparak servisleri başlatmakta
  772. dır.
  773. \end_layout
  774. \begin_layout Subsubsection*
  775. System.Service.changed
  776. \end_layout
  777. \begin_layout Standard
  778. Bu uyarı bir servisin durumu değiştiğinde gönderilir.
  779. Parametre olarak "started" ve "stopped" değerlerini verir.
  780. \end_layout
  781. \begin_layout Subsection*
  782. Çomar comar.service Modülü
  783. \end_layout
  784. \begin_layout Standard
  785. Servis betiklerinde sık kullanılan fonksiyonlar comar-api paketi ile gelen
  786. bu Python modülünde sağlanmıştır.
  787. \end_layout
  788. \begin_layout Standard
  789. Betiklerde:
  790. \end_layout
  791. \begin_layout LyX-Code
  792. from comar.service import *
  793. \end_layout
  794. \begin_layout Standard
  795. şeklinde kullandığınızda info, setState, ready metotları sizin için tanımlanmış
  796. olacaktır.
  797. Böylece yalnızca start ve stop metotları ile bir servis betiği yazabilirsiniz.
  798. Bu hazır fonksiyonlar, betik tipi ve adı bilgisini betiğinizin içinde tanımlaya
  799. cağınız serviceType ve serviceDesc değişkenlerinden alacaktır.
  800. \end_layout
  801. \begin_layout Standard
  802. Eğer servisinizin çalışıp çalışmadığına göre True/False döndüren bir status
  803. fonksiyonu yazarsanız, bu da servisinizin durumunu info çağrısında raporlarken
  804. kullanılacaktır.
  805. \end_layout
  806. \begin_layout Standard
  807. Bu modülü import ettiğiniz halde, bu fonksiyonları kendiniz de tanımlayabilirsin
  808. iz, bu durumda betiğiniz içindekiler çalışacaktır.
  809. \end_layout
  810. \begin_layout Standard
  811. Modülde ayrıca şu yardımcı fonksiyonlar bulunmaktadır:
  812. \end_layout
  813. \begin_layout Subsubsection*
  814. run()
  815. \end_layout
  816. \begin_layout Standard
  817. Parametre olarak verilen komutu yeni bir kabuk açmadan çalıştırır.
  818. Komutun dönüş değerini döndürür.
  819. \end_layout
  820. \begin_layout Standard
  821. Örnek:
  822. \end_layout
  823. \begin_layout LyX-Code
  824. run("/sbin/start-stop-daemon --start --quiet --exec /usr/sbin/cpufreqd")
  825. \end_layout
  826. \begin_layout Subsubsection*
  827. checkDaemon()
  828. \end_layout
  829. \begin_layout Standard
  830. Verilen pid dosyasının gösterdiği servisin çalışıp çalışmadığına bakar.
  831. \end_layout
  832. \begin_layout Standard
  833. Örnek:
  834. \end_layout
  835. \begin_layout LyX-Code
  836. def status():
  837. \end_layout
  838. \begin_layout LyX-Code
  839. return checkDaemon("/var/run/kdm.pid")
  840. \end_layout
  841. \begin_layout Subsubsection*
  842. waitBus()
  843. \end_layout
  844. \begin_layout Standard
  845. Dosya adı verilen unix sokete bağlanılabiliyorsa True aksi halde False değerini
  846. döndürür.
  847. Bir servisin başlatılması ile istemcileri dinlemeye başlaması arasında
  848. bir süre geçiyorsa bu komutla bekleyebilirsiniz.
  849. \end_layout
  850. \begin_layout Standard
  851. Opsiyonel timeout parametresi ile maksimum bekleme süresini (öntanımlı 5
  852. saniye), yine opsiyonel wait parametresi ile de deneme aralıklarını (öntanımlı
  853. 0.1 saniye) ayarlayabilirsiniz.
  854. Eğer stream değil de datagram tipinde bir sokete bağlanmanız gerekiyorsa
  855. False değerli bir stream parametresi vermelisiniz.
  856. \end_layout
  857. \begin_layout Standard
  858. Örnek (kütük servisi hazır mı?):
  859. \end_layout
  860. \begin_layout LyX-Code
  861. waitBus("/dev/log", stream=False)
  862. \end_layout
  863. \begin_layout Standard
  864. Örnek (dbus servisi hazır mı?):
  865. \end_layout
  866. \begin_layout LyX-Code
  867. waitBus("/var/lib/dbus/system_bus_socket")
  868. \end_layout
  869. \begin_layout Subsubsection*
  870. loadEnvironment()
  871. \end_layout
  872. \begin_layout Standard
  873. Çevre değişkenlerini /etc/profile.env dosyasından okuyup çalışan süreç için
  874. geçerli kılar.
  875. Böylece buradaki değişkenleri kullanan servisleri, ayrı bir kabuk başlatmadan
  876. çalıştırabilirsiniz.
  877. \end_layout
  878. \begin_layout Subsubsection*
  879. config
  880. \end_layout
  881. \begin_layout Standard
  882. Bu bir Python sözlük değişkeni olup, /etc/conf.d/betikpaketadı dosyasındaki
  883. isim=değer biçimindeki ayarları içerir.
  884. Eğer kullandığınız ayar dosyası adı betiğinizin paket adından farklıysa
  885. serviceConf değişkenine dosya adını verebilirsiniz (gene /etc/conf.d/ içinde
  886. bir dosya olmak üzere).
  887. \end_layout
  888. \begin_layout Section
  889. Teknik Yapı
  890. \end_layout
  891. \begin_layout Standard
  892. Pardus açılış sisteminde, olabildiğince modern bir yapı kullanıyoruz.
  893. Aygıt dosyası oluşturma, donanım tanıma programlarını tetikleme işleri
  894. tamamen udev tarafından yapılmakta, çekirdek ile udev arasında eski hotplug
  895. sistemi yerine netlink soket bağlantısı kullanılmakta, donanıma ait modülün
  896. bulunması sysfs dosya sisteminden gelen üretici/ürün gibi bilgilerle, kurulu
  897. olan modüllerin desteklediklerinin listesi karşılaştırılarak dinamik olarak
  898. yapılmakta, açılış sistemi ve servis betikleri yüksek seviyeli Python diliyle
  899. yazılmakta.
  900. \end_layout
  901. \begin_layout Subsection*
  902. Temel yaklaşımımız
  903. \end_layout
  904. \begin_layout Itemize
  905. Donanım tanıma dinamik olmalı, kurulu sistem donanımda değişiklikler olduğunda,
  906. yeniden elle ayar istemeden, çalışmaya devam edebilmelidir,
  907. \end_layout
  908. \begin_layout Itemize
  909. Programların sistemle entegrasyonu kolay ve problemsiz olmalıdır,
  910. \end_layout
  911. \begin_layout Itemize
  912. Açılıştaki erken bir sorun sistemi kurtarmayı çok zorlaştırmakta olduğu
  913. için, temel işlemler çok sağlam olmalı, bir hata çıktığında bunu düzeltmek
  914. için çaba göstermeli, daha güvenli açılış seçenekleri sağlamalıdır,
  915. \end_layout
  916. \begin_layout Itemize
  917. Sistem esnek olmakla birlikte, yeterli performansı da sağlamalıdır.
  918. \end_layout
  919. \begin_layout Subsection*
  920. Tasarım Kararları
  921. \end_layout
  922. \begin_layout Description
  923. Python Nedeni çok açık.
  924. Kabuk, awk, perl, sed betiklerinden oluşan çorba yerine, bakımı ve okuması
  925. kolay, ihtiyacımız olan karakter dizisi (string) ve liste, sözlük gibi
  926. veritiplerini çok güçlü bir şekilde destekleyen, fonksiyonel ve nesne tabanlı,
  927. hızlı ve temiz program geliştirilebilen bir dil seçtik.
  928. Kod büyüklüğü büyük ölçüde kısalırken, özelliklerimiz ve hızımız arttı.
  929. \end_layout
  930. \begin_layout Description
  931. Disk\InsetSpace ~
  932. hızı Harddisklerin oldukça yüksek olan okuma hızı, harddiskin okuyucu
  933. kafasının gereksiz dolaşımıyla büyük ölçüde düşüyor.
  934. Bu aşırı dolaşımın sebepleri arasında dosya sisteminin fragmentasyonu,
  935. çok sayıda dosyaya erişim, okuma/yazma işlemlerinin farklı dosyalar üzerinde
  936. içiçe yapılmaları, okuma işleminin tek seferde değil, ara ara parçalar
  937. halinde yapılması var.
  938. Bunu önlemek için, müdürün ana kısmını tek bir dosya (mudur.py) olarak tuttuk,
  939. dışardan çağırdığımız programları tam yolları ile (/sbin/mount şeklinde)
  940. çağırdık, Python yorumlayıcısının bir defada yüklenince birçok modülü (os,
  941. sys, string, time, glob, vb) sağlıyor olmasının avantajını kullandık, kabuğun
  942. zayıflığı nedeniyle çok kullanılmak zorunda kalınmış geçici dosyalardan
  943. kaçındık.
  944. \end_layout
  945. \begin_layout Description
  946. Çomar Klasik /etc/init.d/ altındaki kabuk betikleri yerine Python ile yazılmış
  947. Çomar betikleri kullanmayı seçtik.
  948. Dezavantajı servis betiklerinin yeniden yazılmasının gerekmesi.
  949. Dağıtımda servis betiği gerektiren uygulama sayısının %5 altında olması
  950. ve bu betikleri yazmanın, Python gibi kolay bir dille birer start ve stop
  951. metodu yazmaktan ibaret olması, ve Pisi paketçilerinin zaten Python ile
  952. çalışıyor olması, bu dezavantajı önemsiz kılıyor.
  953. Hazır Çomar yapısını kullanmak, servisleri yöneten araçlar yapmayı, ve
  954. servis yönetimi yetkilerini kullanıcılara dağıtabilmeyi çok kolaylaştırmakta.
  955. \end_layout
  956. \begin_layout Description
  957. init Başka açılış sistemi denemelerinin (initng, depinit, vs) tersine, temel
  958. süreci değiştirmekten kaçındık.
  959. Bu süreç kendi işini çok iyi yapıyor ve yılların sağlamlığına sahip.
  960. Paralelliği temel açılış bitmeden zaten başlatamıyoruz, şu anda Çomar ile
  961. servisleri paralel çalıştırıyoruz, müdür de init tarafından çalıştırılıyor.
  962. \end_layout
  963. \begin_layout Description
  964. sleep En çok kaçındığımız komut.
  965. Kafadan bir süre uyuyup, beklediğimiz olayın tamamlandığını varsaymak yerine,
  966. o olayın gerçekten olup olmadığını kontrol ediyoruz.
  967. Mesela syslogd başlattıktan sonra, işlemlere devam etmeden bir saniye beklemek
  968. yerine, /dev/log soketinin açılmasını bekliyoruz, böylece süreçlerimiz
  969. hem daha sağlam, hem de daha hızlı oluyor.
  970. \end_layout
  971. \begin_layout Description
  972. udev Hemen hemen tüm dağıtımlar tarafından kullanılıyor.
  973. Klasik diskte tutulan sabit /dev dizinine ve bir süre çekirdeğe dahil olup
  974. sonra atılan devfs sistemine göre, çok temiz ve esnek.
  975. \end_layout
  976. \begin_layout Description
  977. muavin Donanım tanıma sırasında udev ile modprobe arasında bizim muavin
  978. programımız bulunuyor.
  979. Çekirdekten gelen MODALIAS değerini direk modprobe etmemekteki amacımız,
  980. araya daha esnek bir kontrol sokabilmek.
  981. MODALIAS, özellikle ISAPNP gibi veri yollarında henüz başarılı değil.
  982. Muavin ayrıca, CPU frekans modülleri gibi, daha sezgisel metotlarla bulunan
  983. modüllerle de ilgileniyor.
  984. \end_layout
  985. \begin_layout Section
  986. Belge Geçmişi
  987. \end_layout
  988. \begin_layout Itemize
  989. İlk sürüm (2006-08-25), Gürer Özen
  990. \end_layout
  991. \end_body
  992. \end_document