Jeff Dike ile söyleşi

ArticleCategory: [Choose a category, do not translate this]

KernelCorner

AuthorImage:[Here we need a little image from you]

[Floris Lambrechts]

TranslationInfo:[Author + translation history. mailto: or http://homepage]

original in en Floris Lambrechts 

en to tr:Erdal Mutlu

AboutTheAuthor:[A small biography about the author]

Birkaç ay içerisinde Elektronik alanında sanayi mühendisi olacağım. Serbest yazılımlarından, açık standartları ve güzel kullanıcı arayüzlerinden hoşlanmaktadır.

Abstract:[Here you write a little summary]

User Mode Linux (Kullanıcı kipinde Linux) kısaca UML, masaüstünüze, sunucunuza veya mobil aygıtlarınıza 2.6.x sürümlü en son Linux çekirdeğininin getirdiği birçok ilginç özellikten biridir. Bu yazı, UML'nin yaratıcısı Jeff Dike ile Ocak 2003'te yaptığım e-iletilerin düzenlenmiş şeklidir.

Sonuna doğru UML sistemlerini yönetecek araçlardan söz etmek için devreye David Coulson girecek.

ArticleIllustration:[This is the title picture for your article]

[Illustration]

ArticleBody:[The article body]

Giriş

Herzaman olduğu gibi, dünyanın çeşitli yerlerinde bulunan yazılımcıların geliştirdikleri Linux'un geliştirme çekirdeğinde bir sürü yeni özellik vardır. UML bu özelliklerinden biri olmasına karşın, Linux sistemlerini yönetme şeklinizi değiştirebilecek olanıdır.
UML gördüğünden daha fazla ilgi hak ettiğini düşündüğümüz için, UML'yi bir söyleşiyle ve de bunu herhangi biriyle değil, projenin önderi olan Jeff Dike ile birlikte yaparak tanıtmak istiyoruz.

Jeff'in kendisi

LF: Eee, demek sen Jeff Dike'sın, UML projesinin 'arkasındaki adam'. Kendini kısaca tanıtır mısın?

JD: Evet, beni buldun ...

Pek iyi, işte resmi özgeçmişimcim olan Bill Stearns'ın yazdıklarından kısa bir cümle:

Jeff, 1992 yılında New Hampshire eyaletine yapacağı iş gezisinden vazgeçti. O günden beri Idaho'da Patates Liberasyon cephesinde 7 numaralı "Smoochy'ye ölüm" özgürlük savaşçısı olarak ve NH'nın Deering şehrindeki en büyük Çin çamaşırhanesinde baş destekçi olarak çalışmaktadır. Şu aralar Linux çekirdeğini DOS toplu iş (batch) dosyası olarak yeniden yazmaktadır.

LF: UML üzerinde (yarı) profesyonel mi veya hobi olarak mı çalışıyorsun?

JD: Üç aşağı beş yukarı hobi olarak çalışıyorum diyebilirim. Honypot ile ilgili UML işlerinde Dartmouth ISTS (www.ists.dartmouth.edu) den çok destek aldım. Çeşitli hataların düzeltilmesini veya yeni özelliklerin eklenmesini isteyen şirketler de bazen destekte bulundular.

LF: İlk önce temelden başlayalım. UML'nin sanaldokusu user-mode-linux.sourceforge.net yöresindeki bilgilerden anladığım kadarıyla UML, başka bir Linux çekirdeği(hosting) üzerinde çalışan bir Linux çekirdeğidir. Dolayısıyla, UML çekirdeği kullanıcı ortamında çalışmakta ve altında çalışanlara 'sanal' donanım sunmaktadır. Öyle değil mi?

JD: Evet. Linux'u UML, Linux'a uyarlanabilecek bir ortam gibi bakmaktadır. Bu, sadece x86 veya PPC bilgisayarlarına bakarak, Linux'u bunlara uyarlamak istemekle aynıdır. Üzerinde işletim sistemi çalıştırmak için Linux donanım ortamlarından çok farklıdır tabii ve UML'nin de kanıtladığı gibi Linux, üzerinde bir işletim sistemi uyarlamaya yetecek zenginlikte sistem çağrı arayüzü sunmaktadır.

Üzerinde çalıştığı çekirdeğin kaynaklarını kullanmasından, UML'nin donanımları sanaldır. Başka bir deyişle, bir diskin üzerinde çlıştığı sistemde gerçekte bir dosya olması gibi, UML'nin aygıtları gerçekten sanaldır. Her nekadar disk, disk bölmesi, CD okuyucusu veya disket sürücüsü gibi gerçek aygıtları UML'ye öbek aygıtı olarak birer dosya aracılığı ile atamanız olası, ancak UML, üzerinde çalıştığı sistem çekirdeğinin aygıtlarlı kullanırken çalıştırdığı düşük seviyeli komutları aynı şekilde çalıştıramayacaktır.

Ancak, bu alanda çalışmaların olduğunu duydum ve yakınlarda gönderilen bir yamayla, var olan PCI aygıt sürücülerini UML'ye yerleştirerek ilgili aygıtlar kullanılabildiği (Ben henüz incelemedim.) öne sürülmektedir.

LF: Demek ki kullanıcı ortamında çalışmaktadır... Peki root kullanıcısı olmadan UML ve hatta chroot olarak da çalıştırılabilir mi?

JD: Evet ve iyine evet. Aslında, root olarak çalıştırıldığında herhangi büyük bir tehlike oluşturduğundan değil, tamamiyle anlamsız olduğu için root olarak çalıştırılmamasını şiddetle öneriyorum. Hala bazı kullanıcılar UML'yi sıradan kullanıcı olarak çalıştırıp, ondan sonra UML içerisinde, sağladığı tüm haklarla root kullanıcısı olabilecekleri düşüncesine henüz alışmış değiller. UML'yi root olarak çalıştırmak gerektiğine inanlara, bunun gerekli olmadığını söylüyorum ve bunu anladıklarında yeni bir şey daha öğrenmiş oluyorlar. UML kullanıcıları topluluğunun bu tür sorulara cevap vermekte olduğuna çok memnunum, çünkü bunu onlar yaptığı için, benim böylece insanalrı tekrardan eğitmem gerekmiyor.

UML içerisinde olası kötü niyetli kullanıcı veya yazılımların olabileceği olasılığına karşı, UML'den dışarıya çıkmayı başarmanın yolunu bulan olursa diye bilgisayara fazladan bir güvenlik hattı olması için, UML'yi chroot ortamında çalıştırılması önerilmektedir.

LF: UML'nin şu anda 2.4 ve daha yenisi 2.5 sürümü var. 2.5 sürüm nolu UML üzerinde çalıştığı sistemde 2.4 çekirdek olduğunda veya tersi olduğunda çalışır mı?

JD:UML'nin sürümü ile üzerinde çalıştığı sistemin çekirdek sürümü arasında temelde bir bağımlılık yok. Sistem UML çalıştırabiliyorsa, herhangi sürümlü UML'yi çalıştırabilir.

LF: Harika... Peki x86 ortamlarına bağlı mıdır? Sözgelimi, MIPS veya PPC'lerde de çalışabilir mi?

JD: Hayır, değil. Bir ara PPC için neredeyse tam çalışan bir uyarlama vardı, ama artık geliştirilmiyor. Diğer donanım ortamlarına uyarlamalar yapılabilir ve o kadar da zor olmamalıdır. Özellikle devam ettirilecekse, farklı donanımlara olan uyarlamaları görmek isterdim doğrusu.

LF: Demek ki biri işi devir almadan, henüz uyarlanmamış olan çekirdeğin bir parçası mıdır?.

JD: Hayır. UML uyarlanmıştır. Uyarlanmamış olduğunu söyemeyiz. UML'yi bir başka donanım ortamına veya mimariye uyarlamak, bir donanım mimarisini aynı mimari içerisinde bir çipe uyarlamak ile benzerlik göstermektedir.

LF: Tamam şimdi anladım. Peki, 'gerçek' uyarlamalardan ne haber? UML'yi sözgelimi Windows'a uyarlamak olası mıdır?

JD: Bu zaten (iki defa) yapıldı. En son yapılan çalışma yaklaşık bir haftalık çalışmayı gerektirdi. Eskisini (http://umlwin32.sf.net) ise, yapanlar genelde boş zamanlarında çalıştıkları için bir ay kadar sürmüş. Dolayısıyla bunun ne kadalık bir sürekli çalışmaya denk geldiğini tahmin etmek güç.

Tek söylemek istediğim, bu ikisinden birinin bitirilmesinin ve hatalardan ayıklanmasının iyi olacağıdır. Windows altında çalışan bir UML'ye çok büyük bir ilgi ve istek var.

LF: UML'nin 2.5 sürümlü çekirdeğe (çekirdek kaynak kodu ağacına) resmen eklenmesinde ne duydun?

JD: Teknik olarak pek bu pek büyük bir iş değil. UML'yi resmi çekirdek kaynak kodu ağacının dışında yaklaşık üç yıldan beri geliştiriyorum (Ben, 2.4 sürümlü UML'yi çekirdek kaunak kodu ağacının dışında geliştirmeye devam ediyorum zaten.) ve böyle yapmak bir sorun yaratmazdı.

Ancak, böyle yapılması UML'nin tanıtımına katkı sağladı. Linus'un UML'yi çekirdeğin 2.5 sürümüne eklemesiyle, dünya UML'nin yararını fark etti (Ve dünyanın iyi kısmı UML'den ilk defa haberdar oluyordu.). UML'nin Linus'un kaynak kodu ağacına eklenmiş olmasının benim açımdan önemi, yaptığım işin bir 'kalite damgası' ile onylanmış olmasıdır. Artık UML, herkesçe kabul görmüş bir çekirdeğe yapılan bir delinin yazmış olduğu yama programı olarak gözden kaçmayacaktır.

LF: Sistem yöneticileri için UML henüz keşif edilmemiş yeni bir alandır. UMLd gibi UML yönetim araçları yeterince iyi mi ve UML'nin sistem yöneticilerine yarattığı fırsatları kullanmada etkin midirler?

JD: Bu soru Bill Stearns veya David Coulson sorulması gerekir. Ben, yönetim araçlarını başka insanlara bırakarak, kesinlikle çekirdekle uğraşıyorum.

LF: David? Peki UMLd?

DC: UMLd, hem kullanıcılar hem de sistem yöneticileri için UML'leri yöneten bir servistir. UMLd, kullanıcılarının bilgisayara kabuk üzerinden erşim olmadan, UML'nin yeniden başlatılmasını veya çekirdeğin güncellenmesinini sağlamaktadır. UMLd'nin sistem yöneticilerine sunduğu olanaklar ise, sunucu üzerindeki dosyalarla uğraşmadan, UML'leri denetlemek, değiştirmek ve hatta yaratmaktır.

Aslında UMLd, büyük bir kısmını yapmakla birlikte UML'nin tüm ynlerini denetleyebilmesi gerekir. UML sürükli geliştirildiğinden, UMLd'de sürekli güncellenmelidir. Sözgelimi, UML çekirdeğine eklenecek yeni bir şey olduğunda, UMLd'de ilgili güncelleme yapılmalıdır.

(...)
Birkaç ay boyunca 30'dan fazla UML'yi iki bilgisayarda UMLd ile çalıştırdım ve çok az sayıda sorunla karşılaştım. UML'leri oluşturma, yeniden başlatma, çekirdeklerini güncelleme vs gibi işlerde hep UMLd kullanıyorum. UMLd'nin istemcilerle iletişimde bulunduğu iletişim kuralları (haberleşme protokolü) kararlı duruma geldiğinde ve özellikleriyle mutlu olduğumda, UMLd için bir kullanıcı grafik arayüzü yazmaya başlayacağım, çünkü son kullanıcılar için mutlaka iyi bir kullanıcı grafik arayüzüne gereksinimleri var.

LF: Sizin bayağı eyleniyor olmalısınız. Sözgelimi, UML bilgisayarları yarışmasında "Ayın sistem yöneticisi faciası". Başka bir alıntı : "Eylence ve kazanç için UML. Pek iyi, kazanç kısmını unutun (http://uml.openconsultancy.com/)". UML, bir uyuncak ile araç arasında bir şey midir; Yoksa siz espiriyi seven insanlar mısınız ;-) ?

JD: Bence sonuncusu. UML, oldukça sert espiri anlayışına sahip insanları bir araya getirdi ve tabii ki biz iyi anlaşıyoruz :)

Sanal dünyalardan oluşan evrenin başka bir evrenin içerisinde olması, belli bir düşünce yapısına sahip insanların ilgisini çekmesiyle ortada uçuşan espirileri açıklıyor olabilir.

Yaptığımız iş veya programın kullanımından dolayı oluşacak sonuçlar ne kadar ciddi olursa olsun, neşelenmeye gerek vardır. İnsan yaptığın işten zevk almazsa, hayat çekilmez hele gelir.

LF: İlk soruyu sorduğumdan beri on altı ay geçti. Eklemek istediğin bir şey var mı?

JD: Söylemek istediğim bir şey var. O da x86_64'de çalışan bir UML uyarlamasının var olduğu ve umarım yakında onu yayımlarım.

Ayrıca, UML'den yeni olan ve ileride yapılması gereken bazı şeyleri günlüğüme yazdım.

Sonuç

User Mode Linux (Kullanıcı kipinde Linux), Linux çekirdeğine eklenen, uygulamalar, çekirdek ve dağıtımların denenmesi ve sergilenmesinde kullanılabilecek güzel bir eklemedir. Ayrıca, sistemi etkilemeden kullanıcılarına root erişim hakkını vererek 'sanal hosting' ortamlarının oluşturulmasında da kullanılabilir.

Referanslar