[Gelistirici] sydbox, bir siyam kedisi

Ali Polatel polatel at gmail.com
21 Nis 2009 Sal 14:55:26 EEST


Merhabalar,
Bu haftasonu Onur Küçük ile yaptığım konuşmadan sonra bu e-postayı yazma
ihtiyacı hissettim. Sanırım biraz uzun bir e-posta olacak, uzun
e-postalardan hazzetmeyen arkadaşlara duyurulur...

Öncelikle sydbox'ın ne olduğundan biraz bahsedeyim. Sydbox[1] Gentoo'nun
sandbox programındaki birçok yetersizlikten dolayı Exherbo[2] için yazmaya
başladığım bir sandbox uygulaması. İsmini yakın zamanda kaybettiğimiz
Pink Floyd'un ilk solisti Syd Barrett'tan[3] alıyor. Kısmen catbox ve
strace'den kodlar kullanıyor. catbox gibi ptrace(2) tabanlı. Ayar
dosyasını okumak için confuse[4] kütüphanesini kullanıyor. Diğer
bağımlılıkları ise glib ve gobject. İlk versiyonu olan 0.1_alpha'yı
geçen hafta yayınladık[5].

Başlarda catbox'a çok benzemesine rağmen şu an üstüne birçok yenilik
eklenmiş durumda. Kısaca farkları sıralayayım:
- 64 bit desteği
- Daha fazla sistem çağrısını inceleme. Hatırladığım kadarıyla catbox at
  ile biten sistem çağrılarını - openat, mkdirat vs. - desteklemiyor.
- Program çalışırken ayar yapmaya yarayan "sihirli" komutlar diye
  adlandırdığımız özel sistem çağrıları. Örneğin /etc/ld.so.cache
  dosyasını yazılabilir dosyalar listesine eklemek için sydbox altında:
  :>/dev/sydbox/write/etc/ld.so.cache
  gibi basit bir kabuk komutu kullanılıyor.
  /dev/sydbox diye bir dizin aslında yok fakat sydbox open() sistem
  çağrılarını gözden geçirip bu tip çağrılara rastlayınca işlem yapıyor.
  Tabi bunları işlem yaptıktan sonra
  :>/dev/sydbox/lock
  kabuk komutuyla kilitlemek ya da
  :>/dev/sydbox/exec_lock
  kabuk komutuyla ilk karşılaşılan execve() çağrısından sonra
  kilitlenmesini emretmek de mümkün.
  Daha fazla bilgi için Exherbo'da şu an bunları nasıl kullandığımıza
  bakabilirsiniz.[6]
- Paranoyak kullanıcılar için bir paranoyak mod. Bu modda sydbox mümkün
  olduğunca bu güvenlik kutusunun kırılmasını engellemeye çalışıyor.
  Hala deneysel olan bu modda sydbox sembolik bağlarla muhattap oluyor,
  olası yarış durumlarını engellemek için argümanları sembolik bağ olan
  sistem çağrıların argümanlarını gerçek dosya yoluyla değiştiriyor.

Başta da değindiğim gibi halen alpha seviyesinde olan sydbox hazır
olduğu zaman Exherbo'da sandbox yerine kullanmayı planlıyoruz. Ayrıca
amacım sydbox'ı Pardus altında da kullanılabilmesi. Bu yüzden sydbox'ı
bir kütüphane ve programcık olarak ayırmayı planlıyoruz.
Şöyle ki:
* libsydbox - Ana kütüphane, exec* kabilesi için "ambalaj" fonksiyonlar,
sydbox_execve(), sydbox_execvp() vs., burda tanımlanacak.
* pysydbox - Kütüphanenin python bağları, "yeni catbox"
* sydbox - Exherbo'da kullanılacak programcık.

Buraya kadar herşey güzel görünüyor açıkçası, fakat size birkaç sorum
olacak:
1. Anlattıklarıma sıcak bakıyor musunuz? Eğer bu beraber çalışma çözümü
mantıklı gelmediyse, sydbox'taki yenilikleri catbox'a taşımak için
yamalar gönderme yolunu da seçebilirim.
2. Glib ve gobject bağımlılıkları sizin için bir sorun oluşturur mu?
Bu iki kütüphane aynı arşivle dağıtılmasına rağmen bazı linux
dağıtımlarında - örneğin debian - iki ayrı paket olarak kullanıcılara
sunuluyor. Pardus'ta bu nasıl yapılıyor bilmiyorum. Glib syslog-ng gibi
sistem paketlerinde kullanılıyor ve gnome'dan ayrı bir parça o yüzden
kde'ciler olarak içiniz rahat olabilir. Gobject'i sadece sinyaller[7]
için kullanıyoruz ve bu bağımlılıktan eğer isterseniz vazgeçebiliriz.

Okuduğunuz için teşekkürler, bu kadar yazı yazdıktan sonra
Syd Barrett'dan birkaç dize eklememek herhalde ayıp olurdu.

Lucifer Sam, Siam cat.
Always sitting by your side,
always by your side.
That cat's[8] something I can't explain.

[1]: http://alip.github.com/sydbox/
[2]: http://www.exherbo.org/
[3]: http://www.sydbarrett.net/welcome.htm
[4]: http://www.nongnu.org/confuse/
[5]: http://polatel.wordpress.com/2009/04/14/sydbox-01_alpha/
[6]: http://github.com/alip/paludis-sydbox/blob/master/paludis/repositories/e/ebuild/sydbox.bash
[7]: http://library.gnome.org/devel/gobject/unstable/signal.html
[8]: http://omploader.org/vMWp5ZA/sermin.jpg

-- 
Saygılar,
Ali Polatel
-------------- sonraki bölüm --------------
A non-text attachment was scrubbed...
Name: kullanılamıyor
Type: application/pgp-signature
Size: 198 bytes
Desc: kullanılamıyor
URL: <http://liste.pardus.org.tr/gelistirici/attachments/20090421/180f0622/attachment-0002.pgp>


Gelistirici mesaj listesiyle ilgili daha fazla bilgi