* You are viewing the archive for the ‘bilgisayar’ Category

Hangi işletim sistemiyim?

Sen bir HP-UX'sin. Geçen zamana rağmen hala güçlüsün. Seni anlayanlar az olsa da, bunlar seni derinden seven ve anlayan kişiler.
Hangi işletim sistemisiniz?

Şu zevzek testlerden birini dayanamayıp yaptım. Eh; Linux ya da Windows çıkmayacağımı biliyordum. Tahminim, Mac OS’du. Açıkçası, biraz daha özenli biri olsam, Solaris olduğumu düşünecektim. Lakin, HP UNIX çıktım. Sanırım iyi birşey:)

 

TWIX için basit yardım

Twix, tüm tembellik ve isteksizliğime rağmen yol almaya devam ediyor. Az önce, saatlerce konsantre olmaya çalıştıktan sonra zar zor 40-50 satır yazabildim. Network fonksiyonları bitmiş ve yeterli gibi duruyorlar; wizard kısmı hariç. Bugünkü konu, görüntü ile ilgiliydi. Ekran kartı bilgilerini (üretici,chipset,ram,VGA BIOS, geçerli çözünürlükler,mevcut çözünürlük, gamma,vs) gibi bilgileri toplayan bir fonksiyon yazdım. Geriye güç yönetimi ayarları kaldı temel olarak. Bundan sonra, xorg.conf’u yazıp değiştiren bir fonksiyon yazacağım. Bu basit; zira temel olarak network fonksiyonlarından kopya çekeceğim yazdırma-değiştirme işlemi için. Bir de, xorg.conf’a eklenebilen bazı ek ayarları yazan bir fonksiyon yazmam gerek;örneğin Pardus’da olan ve hiç tasvip etmediğim VTSwitch ayarını eklemek gibi.  Bayramdan önce bu modülü çalışır halde yayınlayıp, diğer modüllerin nasıl görünmesi gerektiği konusunda referans olarak kullanmak niyetindeyim. (Açıkçası, güzel bir sayfa tasarımı yapmak en büyük sıkıntım)

Bu arada, küçük bir yardıma ihtiyacım var: Linux kullanan arkadaşlar bana lspci çıktılarını (lspci -vvv ile) gönderirlerse çok işime yarayacak; çünkü GPU RAM ve VIDEO BIOS ayarlarını doğru okuduğumdan emin olabilmek istiyorum. 4 ayrı sistemde doğru okuduğumu görmüş olsamda, kusursuz çalıştığına henüz kani değilim.

Çıktıları yorum olarak gönderebilirsiniz.

Özgür Yazılım, Açık Kaynak filan da, ben anlamıyorum yahu!

Hani hayatında tek satır kod yazmamış adamlar, “kardeşim açık kaynak, kodu aç bak hemen anlarsın” diye Linux forumlarında sallarlar ya (kod yazmış olsa onu demez zaten!) bu meseleye uzun süredir takılmıştım.

Zaman zaman “kodu açıp bakıyorum”. En son xrandr’ın koduna baktım; çok şahaneydi tadından yiyemedim.

Doğrusu, çoğu açık kaynak kodlu projeden çok daha okunur bir koddu.
Fakat, açık kaynak kodlu projelerin çok ciddi bazı problemleri var. Bunlardan biri, programcıların “zeki görünme” çabası. Böyle bir durum henüz bizde yok. (Kod yokki üstüne konuşup yorum yapalım!). Dünyada da fazla var diyemem; ama çok ciddi projelerde bile bazı sivriler çıkıp “ineğe bak, öle mi yazılır lan o kod” diye ahkam kesiyor. Dolayısıyla, programcılar daha zeki görünmek için acaip karmaşık şeyler yazıyorlar. Programlama dillerinin çoğu, çok basit bir işi çok karmaşık göstermenize izin verecek esnekliğe sahipler; olmadıkları zamanlarda bile birileri öyle göstermenin yolunu kolayca bulabiliyor.

Gereğinden karmaşık yazmanın sadece bu kadar basit bir nedeni olmadığını düşünüyorum.Örneğin, bir sürücü kodunu ne kadar karmaşık yazarsanız, kodu açmanız durumunda rakipleriniz ne yaptığınızı anlayıp kendi ürünlerine uyarlamakta o kadar gecikirler. Yani işin biraz da maddi yönü sözkonusu. Bugün Çin, Hindistan gibi ülkelerde merdiven altı kart üreten ve oturup sürücüsünü de kendisi yazan adamlar var. İnanması güç ama gerçek.

Açık kaynak kodlu yazılımın bir diğer düşmanı da, kullanıcı ve geliştirici açısından, yetersiz dökümantasyon. Artık ciddi projelerin çoğunun yeterli dokümantasyonu mevcut. Hem geliştirici, hem de kullanıcı için. Öte yandan, örneğin KDE projesi için çok ama çok ciddi kaynak sıkıntısı var.  Örneğin, yapılandırma dosyalarındaki hangi ayarın ne işe yaradığını anlatan tek sayfa yazı bulamazsınız. Bazı basit ayarlarla ilgili bilgi var; ama açıkçası Pozitif Linux’da resmen reverse engineering yaptım. Bu esnada, elimde KDE ile ilgili ciddi bir doküman kaynağı da oluştu; hatta üşenmeyip masaüstünde bunun için basit bir WIKI bile oluşturdum; ama defterler hala duruyor:)

Compiler ya da Interpreter’lar çok zeki değildir. Çok basit ama farkı çok somut görebileceğiniz bir örnek vereyim: örneğin, 1′den 100′e kadar olan sayıları bir For döngüsü içinde toplamak yerine, sırayla toplarsanız, kodunuz çok daha hızlı çalışır. While kullanırsanız, for’dan da yavaş bir sonuç alırsınız. Bazen, bazı dillerle gelen hazır kütüphaneler de ayağınızı kaydırır; örneğin Python ile sistem bilgilerini API aracılığıyla almak, shell’den komut çalıştırıp -örneğin lspci- çıktısını almaktan genelde daha uzun sürer.

Kısacası, çoğu özgür yazılımın giderek özgürlükten uzaklaştığını düşünüyorum; sanki kodu giderek karmaşık hale getirerek, çok az insanın anlayabileceği, “elitist” bir yaklaşım içine giriyorlar. Kod içindeki açıklamalar yok olmaya başlıyor, kodlar uzuyor, kimi zaman bloklama yapmak gibi zahmetlere filan bile girilmiyor. Üstelik, bu çok “hince” bir yaklaşım. Çünkü hem “kodlar açık işte” diye insanları çekiyorlar, sonra da anlamasınlar diye ekstra çaba harcıyor, hatta muhtemelen programların olması gerektiğinden daha yavaş çalışmalarına neden oluyorlar.

USB 3.0 Geliyor: Yıl 2008, hız 4.8 gigabit!

USB 3 geliyor. Ancak, bu sefer optik kablolar ile.

İşte burası biraz soru işareti. Fiber optik kablolar, artık eskisi gibi hassas olmasalar da, hala katlanmayı ve bükülmeyi sevmiyorlar. Biraz da endüstriyel uygulamalara bakalım: USB 3.0, özellikle çok fazla sayıda elektrik motorunun çalıştığı ortamlara ilaç gibi gelecek; çünkü bakır kabloları EMI’den izole edebilmek ciddi bir sorundu.

Bir de, USB konnektörlerini eski RS-232′ler gibi vidalı yaparsalar, USB nihayet endüstriyel uygulamalara doğru dürüst bir giriş yapabilir. USB 3.0′ın ardından, zamanında “herşey USB ile bağlanacak” hayali gerçek olabilir. Zira, bu yüksek hız, görüntü ve yüksek kaliteli ses aktarımına izin verecek kadar hızlı. USB 3.0 ile, monitörleri ve synthesizerları bilgisayarımıza USB 3.0 ile bağlayabiliriz.

X Server: Artık çarpıyı koymak lazım

Dün TWIX ile ilgili network fonksiyonlarını tamamlayıp cilaladım; AJAX ile hazırlayacağım -kimbilir ne zaman!- sayfaya yerleştirmek üzere yedek alıp kenara koydum. Bu esnada, görüntü ile ilgili ayarları nasıl yapacağımı düşünmeye başladım; çoğunu da buldum.

Başlangıçta, xrandr isimli becerikli program beni bayağı uğraştırdı. Bilmeyenler için söylüyorum; xrandr, ekran çözünürlüğünü hızla değiştiren ve XFree86/X.org ile birlikte gelen küçük bir program. GNOME için bir arayüzü var; KDE içinde Krandr varmış (DPKG uçtuğu için şu an ancak “elle” paket kurabiliyorum-tamamen Slackware mantığı aslında, paketi açıp yerine yerleştirerek)

İki saat, strace filan da kullanarak, xrandr’ın ayarları nereye yazdığını aradım. Sonunda, ayar filan yazmadığını keşfettim!

Evet; xrandr sadece oturum tabanlı çalışıyor. KDE ise çözünürlük ayarlarını displayconfigrc isimli bir dosyaya yazıyor. Daha doğrusu, yazması gerekiyor! Çünkü, bendeki KDE Kontrol Merkezi, yaptığım ayarı nedense displayconfigrc dosyasına yazmamakta direniyor! Ama açıp elle yazarsam, sorun yok.

Saçma olan şu; xrandr, çözünürlük değerlerini, xorg.conf dosyasından okuyor. O anki oturumda çözünürlükte seçebiliyor, ancak bunu biryere yazamıyor.

X’in nasıl çalıştığını bir hayli iyi bildiğimi söyleyebilirim. Zamanında iki kere, çok minimal bir X sunucusu kurmak zorunda kaldım.

Lakin, X’in kendisi, bir hayli kötü bir tasarım. İsimlendirme bile tuhaf; X client olması gereken, yani kullandığınız ve KDE’nin çalıştığı kısım, X server(!). X client ise, X server’a veri sağlayan bir parça! Örneğin, bir terminal sunucu ile thin client kurduğunuzda, thin client aslında X server, terminal server ise X client oluyor!

X’ client ve server’ın kendi arasında konuşması ile ayrı bir mesele. Aynı makinede çalışan X server ve X client -tiipik bir Linux dağıtımı-, uzaktaki sistemden nedense daha yavaş çalışıyor. Çok aptal bir authentication mekanizması var (xauth bunu yapıyor). Bu yüzden, X ile  fazlasıyla haşır neşir olmak zorunda kalan kdesktop, kwin (KDE’nin temelleri) gibi programlar bile, DCOP gibi mekanizmalarla bunu kolaylaştırmaya çalışıyorlar. Bunun için, son derece hızlı çalışan bir kernel ve GNU araçları üzerinde, inleye inleye çalışan grafik arayüzler kullanmak durumunda kalıyoruz.

Neyse ki, yapılandırma için, X’i dibine kadar anlamak da gerekmiyor. Modeline’ın nasıl çalıştığını anlayacak kadar ileri gidebildiğinizde, herhangi bir ekran kartı ve monitörle, X’i bir şekilde çalıştırabiliyorsunuz.

Yalnız, X’in zaman içinde “değiştirilmesi” gerek; yoksa Mac ya da Windows’un grafik performansı bizler için hayal olmaktan öteye gitmeyecek.