Gnu

Delikanliyi bozsa da Linux ve GNU hastasi arkadaslara oneririm. Yakisir yani. Bilhassa debian kullanicilarina ;)..

A small analysis of Azureus project

Azureus is a popular open source Bitttorrent client application written in Java using SWT Gui library. It works in all the major OS'es and still one of the most suggested application especially for power bittorrent users. Recently when i started to read digg.com web site, i saw some azureus related news and comments. Surprisingly, there was heavy criticism over azureus as bing a resource hog. Even some were claiming that Azureus consumes 400-600MB or more memory and the for them guilty was of course, not the application but Java. So, i decided to make some tests to see if the claims were correct.

First of all, i am not part of the Azureus project, and i do not claim to be a power bittorrent user. The torrents i used in the tests were for test only. i just wanted to find a couple of fast torrents. also i am not a native English speaker, grammar and spelling errors may exist in the article. Here is the test environment:

OS: Windows XP SP-2
Hardware: Athlon64 3000+, 1Gb ram
IDE: IntelliJ IDEA 5.1.1
Profiler: YourKit profiler V5.5.2
Java version: Sun Java 5 update 6, Sun Java 6 Beta Build 76 (i used Java 6 Beta in the majority of the tests.)
Azureus version: 2.4.03_CVS
Network: Cable 3Mbit (shared)

So, i went to the SourceForge and checked out the latest cvs code of the Azureus. I must admit it is a big project. There are aroud 2100 java files and more then 3500 classes or interfaces exist in the project. Before the test results, i would like to say my personal view on the general project structure and code.

I did not like the way the main source directories organized in the project, not using a "src" directory and directly putting "com.aelitis.." packages in the root of the project is not a good thing. it gave me a minor difficulty arranging the project in IDEA. Another problem i see in the project structure is a small mess about old-new Azureus package names. There are two main source directories, one is com.aelitis.azureus, other is org.gudy.azureus2. i was not sure what really is the difference between them. For security related things code also contains some packages from another open source project, BouncyCastle.

Unfortunately as far as i see project does not contain unit tests (unit testing is rather common in most open source Java projects), Lack of unit tests causes increased amount of regression problems in the future if extreme care is not taken. There are some classes for functional testing here and there but i do not think it is enough. Of course, since code quality is seemingly ok (there are some really hard core network related coding as i see), it may reduce the risks a little.

The structure of the packages is a little strange to me. They use a good practice as separating interfaces and concrete implementation classes, but not in a way i got used to. There are "...impl" packages everywhere. Possibly i would prefer putting implementation and the concrete class in the same package for providing package visibility. Giving concrete classes "....Impl" name suffix is also not a common Java practice, sometimes it may create confusion.

Something gave me an eye sore is the coding style, i have never seen this style before. Lots of empty spaces and strange alignments are used (smells like some C++ or Pascal code i have seen before). it might be good for reading some parts of the code but generally i would prefer the Sun's coding practices for Java. Usage of Tab character may not be suggested too but here for aligning the variables it is used extensively. Since modern IDE's like IDEA Eclipse or NetBeans already comes with advanced code styling aspects, i felt that it would not be necessary (As far as i know Azureus team uses Eclipse). Last thing on this is the _ characters used in variable names. it makes the code crowded and very few Java projects i have seen uses this convention. Of course, all things i said related with project code structure and style were a matter of personal taste but i think that current coding practices would give some difficulty to the new comers of the project developement since it is completely non-standard. Below is the original code (click to enlarge the image)
and this is the style more or less i use.

i was rather disappointed to see that there are no Java 5 language enhancements and library methods used. Java 5 is out for almost 2 years now and it makes Java development much easier and cleaner. Of course using Java 1.4 compatible code is a good thing for some old systems but i think that more then %95 of the Azureus users already is using Java 5.

Now the important subject, the memory and CPU consumption. I am not an expert on this issue, but here is what i know: Java, and many modern platforms uses a virtual machine. Memory usage of the application is controlled by the virtual machine (That is why it is usually faster and easier to allocate memory, or create an object in Java then C++). Since there is virtually no manual de-allocation of the memory, Garbage collection mechanisms are used. Over the years GC techniques become very sophisticated and current Java Virtual machines have pretty robust mechanisms for it.

A typical Java Application (In Sun's virtual machine implementation) has two types of memory allocation. One is heap memory, the other is non-heap memory. Heap memory is the memory used by the application itself. When you create a new object, or an array, the required memory is used from here. By default for any client application initial heap memory allocation is 2MB, maximum heap memory is 64MBytes (if i am not mistaken initial heap allocation is 5Mb in Sun Java 6). When application consumes more then 2MB, it automatically arranges the memory usage (lets say makes the allocated area 8MB). If your application uses more then 64Mb of memory you get a fatal "out of memory error". For many applications 64MB heap memory is more then enough but if required this parameter can be modified. it is usually a rarity that Java applications has memory leaks. But bad design and GUI code may create such problems.

Non Heap memory is used by the internals of the JVM, class meta data, thread information and for some native access operations. By default maximum non-heap memory can be 96Mb in Sun JVM. However, this maximum values does not mean that application will actually use this amount of data. Also, for many application it is possible to limit the memory consumption by several runtime parameters. For example if you run the application with -Xmx16M parameter, VM will only allocate a maximum of 16MB of heap memory.
So, A small "hello world" type of application actually consumes less then half Mbyte's of heap memory and 3.3Mb of non heap memory (actually it is less, but profiling the app adds up a little). Even the size of the application get bigger, the memory consumption usually do not get effected dramatically.

Now, how about Azureus? When we run the Azureus from the IDE using the profile option, Profiler automatically starts running. Before i already started downloading 7 torrents most of them are larger then 100MB. Here is the initial results after the startup (initialization takes more thime because of the profiling.).

As it is seen, CPU usage is pretty high in the beginning. This is normal because application makes a lot of initialization (checking the torrents, caches, db , network, loading clases, creating objects etc.). After that CPU usage is usually below 10 percent. as the objects are created used heap memory goes higher, the system makes some adjustments on the allocated memory amount.

After system starts up, and torrents starts downloading, system actually consumes 7-9Mb of heap memory and 20MB of non Heap memory. i find non-heap memory consumption quite large. This is posibly because there are too many classes and threads in the project. If somehow used memory comes close to the allocated area, system adds up a little to it and makes a bigger garbage collection.


The default garbage collecion mechanism seems to be not causing any serious pause in the system. This is because Virtual machine makes very small collections continuously if the default algorithm is used. There are other types of garbage collection algorithms (like parallel GC) but i doubt it would make a big diference for this application.


But when we look at the Windows Task Manager, it shows 79Mb when Azureus screen is on the screen. After minimizing the screen the number goes down to 17MB and goes up slowly afterwards. For that, i have no explanation, honestly Task manager is not really a reliable source of information in this case. However, it might be good for understanding the CPU usage. Below is the Task Manager while azureus is running. My bad, there were several other programs were running too.

So how can we even make the memory usage even smaller? We basically limit the heap space with the Xmx parameter. After limiting it to 16MB, I still can use it wih all the active downloads without a problem. Keep in mind that there are 72 active threads and 3500 classes loaded. i would guess the number of downloads would not cause an out-of memory either. But still, non-heap usage is higher. it is possible to make that space also smaller with PermGen parameter, but i do not think it is wise to play with that area for this application.

So what would be the issue with those claims that Azureus consumes hundreds of megabytes of memory? i honestly do not know. There is a small possibility that SWT implementation of the Linux is not as good as the one in Windows so it may contain some memory leaks, but still i say this is higly unlikely. Truth is, Azureus is a perfectly ok application for midd-age to modern computers. Although works, it may not be proper for older systems with less then 128Mb memory. and do not think that .Net or Python applications would do better, they use more or less the same mechanisms and Java's VM is quite refined and matured throughout the years. if same functionality is applied they may even consume more memory than Azureus.

Here is my conclusions;
- When active, application memory usage of the Azureus is actually not more then 30MB. only 10MB of the data is actually allocated for objects and arrays required by the Application. more memory is used by other resuorce needs. However, VM may allocate more space before it is actually needed.
- The Windows or Linux memory observation tools are not enough for understading the memory usage of the Java applications. Read here for an example.
- Azureus usually uses less then 10% of the CPU while active. Only when there is a big garbage collection (never occured in my test) or initially CPU usage goes higher temporarily. if the number on your system is higher, find the culprit somewhere else.
- Azureus is still quite large, i think they should focus on the basic usage and default download should contain maybe only 50% of the current functionality. Power users can always add more stuff with plug-ins. Other applications (firewalls, virus applications etc) may affect the CPU usage of Azureus dramatically.
- Plug-ins may effect the memory usage badly. however, i did not have time for making a test like that.
- Azureus developers may consider limiting the memory options for older systems.

As a personal note, At the end, i congradulate Azureus team for the product. i use it frequently and did not have any problem with it. Chosing Java was a good idea, stick with it. Using C++ may bring small gains but i dont want to think their developers when it comes to deal with the perils of dynamic memory management, concurrency and of course platform dependancy.


Pardus macerası ve düşünceler.


Yıllardan beri Redhat, Mandrake, Suse, Gelecek ve Ubuntu dahil pek çok Linux dağıtımını samimi bir hevesle kurarım. Sonuçta çoğu zaman donanım sürücüsü problemleri, yazılım eksiklikleri, dil problemleri ve bazen de son kullanıcı arayüzü tasarım kötülüğü nedeniyle kendimi daha aşina olduğum ve is yerinde kullanmak mecburiyetinde olduğum Windows isletim sistemlerini kullanır buldum. Uludag projesi kapsaminda gelistirilen Pardus 1.0'in çıkması ile birlikte Linux'a tekrar bir şans vermek istedim. Pardus'u diğer Linux dağıtımlarından farklı yapan en önemli özellik Türkçe konusundaki sağlam desteği ve içindeki kilit bazı uygulamaların Türkiyede geliştirilmiş olması. Nihayet is yerindeki ağ üzerinden 600 kusur mB'lik iso dosyasını indirdim ve CD'ye kaydettim. Kurulum işlemine başladım. Pardus kurulumu ve kullanimi ile ilgili ilk intibalairmmi ve dusuncelerimi yazi

Kurulum

Kurulum gayet iyi başladı. Hoş tasarımlı bir kurulum arayüzü var Pardus'un. Önce lisans anlaşması içeren hoş geldiniz sayfası geliyor. Çok detay gibi görünse de bir kaç noktada kurulum arayüzünün geliştirilebileceğini tahmin ediyorum. örneğin:
  • Hoş geldin sayfasındaki açıklamalarda lisans anlaşmasından bahsedilmiyor ve GPL metin penceresinde “Kapat” düğmesi yok.
  • Kurulum sihirbazındaki ileri geri düğmelerinde sadece ok işaretleri değil “ileri” ve “geri” yazılsa daha iyi olurdu.
  • Bazı sayfalarda sağ taraftaki açıklama bölümünde aşağı – yukarı kırmızı ok işaretleri gerekmediği halde yer alıyor.
  • Aslında ilk sayfa ile lisans anlaşması sayfası ayrılsa daha iyi olurmuş.
Sonraki asama Klavye secimi. Sade ve anlaşılır bir sayfa. İngilizce klavye kullandığımdan bu secimin kurulumda olması iyi olmuş.
Bölümlendirme yönetimi sayfasına gelince işler biraz değişti. Öncelikle sisteme “otomatik biçimlendirme” yani tüm diski Pardus için kullanma kanaatimce oldukça tehlikeli. Bu seçeneğin nasıl işlediğini bilmiyorum, eminim yeterince uyarı mevcuttur. Yoksa Bilgisayarlarında Windows kurulu olan ve Pardus'u sadece denemek isteyen kişiler kazayla bu seçeneği seçip sonradan Pardus'a “rahmet” okuyabilirler.
Bölümlendirme sırasında bir sorun yaşadım, ama bu benim sistemime özel bir konu olabileceğinden bu konunun detayını yazının sonuna ekledim. Sonuçta sadece bir diskte bölümleme yapabildim ikinci diskte bölümlendirme işinden vazgeçip kuruluma devam ettim.

Dosyaların yüklenmesi aşamasında sırasında diğer Linux dağıtımlarındakinden farklı hoş resimler gösteriliyor kullanıcıya. Aslında bu resimlerdeki uygulamalar ile ilgili açıklamalar da yazılabilirdi. Ufak bir nokta, bilmiyorum belki de bu şekilde tasarlandı, alt taraftaki artan çubuk işlem göstergesi %100'e ulaştıktan sonra tekrar başa dönüyor. (“Kernel” paketlerini yüklemeden önce). Daha sonra kullanıcı ekleme sayfası geliyor. Oldukça iyi tasarlanmış bir sayfa ama genede özellikle ev kullanıcıları için bu sayfasının tasarımının daha da basitleştirilebilir. Çoğu son kullanıcının “root” kullanıcı gibi konularda bilgisiz olduğunu göz ardı etmemek gerekir.
Grub için kullanıcıya fazladan seçenek sorulmasını çok mantıklı bulmadım. Onun yerine Grub'u doğrudan kurup bu sayfada çoklu isletim sistemi durumunda bilgisayar açılış sırasını belirlemeyi sağlayan bir arayüz sunulabilirdi. Unutmamalı ki çoğu kisi Pardus'u henüz deneme amaçlı kuruyor. Grub ile ilgili işlemi tamamlamak, nedenini anlamadığım şekilde uzun surdu. Bu sırada hiçbir bekleme ara yüzü koyulmadığından ve imleç kum saatine dönüşmediğinden sistemin kilitlendiğini düşündüm. Neyse ki 8-10 saniye gibi bir sure sonra sistem kurulum tamamlandı ve bilgisayarı yeniden başlattım.

Açılış ve yazılım
Açılış, birazda sabit diskin hızından olsa gerek oldukça hızlı (Windows biraz daha hizli aciliyor). Pardus'un kendine özgü grafikleri gerçekten çok kaliteli ve şirin (eşim çok beğendi). Kullanıcı giriş ekranı gene sade ve hoş tasarımlı. ilk açılışta Kaptan programı sizi karşılıyor ve basit bir kaç ayarın yapılandırılmasını sağlıyor. Bu uygulama sadece bir defaya mahsus otomatik olarak çalışıyor.
KDE masa üstü ortamını kullanan Pardus gayet temiz ve canlı görünüşlü bir masa üstüne sahip. içinde hemen her konuda uygulama mevcut. Ana İnternet tarayıcısı olarak Firefox kullanılıyor ama Konqueror seçeneği de var. Gene bir Pardus güzelliği, Flash ve Java eklentileri doğrudan kurulu sistemde. Pardus ile birlikte gelen Java son sürüm değil ama ihtiyaçları giderecek seviyede. Kendim geliştirme için Java 5'e ihtiyaç duyduğumdan onu indirip elle kurmama gerekecek. Maceralı bir işlem olacağını tahmin ediyorum.

Ofis ürünü olarak en son OpenOffice.org sürümü (2.0.1) özel Zemberek eklentisi ile birlikte geliyor. (Bu yazıyı Pardus üzerinden OpenOffice.org Writer ile yazıyorum). Openoffice bu alandaki buyuk bir boşluğu gerçekten başarı ile kapatıyor. Pardus içindeki uygulamaların çoğu KDE masa üstü ortamı için geliştirilmiş. Örneğin Mesajlaşma yazılımı Kopete ile farklı mesaj hesaplarınızı tek programla kullanabiliyorsunuz. Aslında bu konuda Gaim gibi kuvvetli başka uygulamalar da mevcut ama Kopete bir kaç küçük kusur hariç temel mesajlaşma ihtiyaçlarımı giderebilecek seviyede görünüyor. Gene e-posta yazılımı Kontact masa üstü e-posta işlemleriniz için kullanışlı ama Thunderbird ya da Evolution kurup kullanabilirsiniz. Kde tabanlı uygulamaların bir avantajı doğrudan yazım denetimi desteği vermeleri. Tüm uygulamaları çalıştırıp denemediğim için her biri hakkında buraya yazmayacağım ama genel olarak uygulamalar hakkında bazı eksiklikleri ve yorumlarımı belirtmek isterim:

Pardus Türkçe konuşunda gerçekten bugüne kadar gördüğüm en başarılı Linux Dağıtımı. Ancak bazı temel uygulamalar halen kısmen Türkçe ceviri eksiklikleri içeriyor. Ara yüzü Türkçeleştirilen çoğu uygulamanın yardım dosyaları tamamen İngilizce. Bu aslında Pardus projesine ait bir sorunu değil, tüm uygulamaların Türkçeleştirilmesi de zaten beklenmiyor ama temel uygulamalarda en azından ara yüz bileşenlerindeki eksiklikler giderilmeli diye düşünüyorum.
Diğer bir sorun ise tüm Linux dağıtımlarında görülen bir konu, uygulama karmaşası. Genellikle Linux dağıtımları ayni isi yapan pek çok uygulamayı üzerinde taşır. Bu kullanıcının kendisini bir program karmaşası içinde bulmasına neden oluyor, alıştığı program yerine var olan yazılımı kullanmaya zorlanmış gibi hissettim. Bu belki kotu bir şey değil ama daha iyisi varken vasat yazılımları kullanmak tatsız bir durum. Ayrica daha az uygulama Pardus'un gelecekteki egitim ve bakim islerini cok daha kolaylastiracaktir. Aslında kurulum mekanizmasını basitleştirip sadece en temel gerekli uygulamaları sistem kurulumuna dahil etmek daha doğru bir yaklaşım olurdu. Pardus yazılım secimi konusunda dikkatli davranmasına rağmen içerisinde bu tur çiftlemelere rastlamak mümkün. Örneğin yanlış anlamadıysam Tasma ve Kontrol Merkezi aslında tamamen aynı işi yapan uygulamalar. Kontrol merkezi uygulamasındaki tüm seçenekler ana menüdeki “ayarlar” bölümünde gene aynen yer alıyor. Programlar bölümündeki farklı uygulamaları içeren “ayarlar” dizinin de adı farklı olmalıydı. Ayrıca yüklü program sayısı gördüğüm bazı dağıtımlara kıyasla az olmasına rağmen hala çok fazla. Aman bir köşede bulunsun mantığı özellikle İnternet erişiminin hızlandığı ve yazılım indirmenin dakikalar seviyesinde olduğu bugün geçerliliğini yitirdi.

Arayüz uyuşmazlıkları. Gene Pardus'a özel olmayan tüm Linux daha doğrusu *nix) dağıtımlarının en ciddi problemlerden birisi. Bilindiği gibi Linux dağıtımları genellikle iki farklı masa üstü ortamı üzerinde yoğunlaşmıştır. Gnome ve KDE. Her iki ortam da birbirlerinin uygulamalarını çalıştırmaya izin veriyor ancak Gnome ve KDE'nin tasarım anlayışında ciddi farklılıklar var. Bunun en bariz örneği arayüz diyaloglarında yasanıyor. Örneğin Konqueror ve Firefox icin programdan çıkmadan sorulan soru icin dugmelere bakilirsa onay ve iptal dugmelerinin yerinin ve iptal icin kullanilan kelimelerin farkli oldugu gorulebilir.




Bu uygulamaların kullanıcıyı yanıltmasına ve kullanım reflekslerinin gelişememesine neden oluyor. Benzer şekilde dosya diyalogları da Kde programlarından farklı (Bahsettiğim sorunlar Gimp, Firefox gibi uygulamalarda baş gösteriyor. ). Pardus çoğu konuda Kde yönünde uygulamalar içerdiğinden özellikle Windowstan geçen kullanıcıların daha kolay alışacağını sanıyorum. Buradaki temennim ise Kde yazılımlarının kalitesinin arttırılması.

Ufak tefek gözüme takılanlar:
  • Kopyala yapıştır nadiren islemiyor, ya da bu is için kullanılan kısa yollar farklı olabiliyor. örneğin OpenOffice'den Blogger yazim alanina kopyalama işlemini gerceklestiremedim. Benzeri durum Windows sistemlerinde de yaşanır (konsol – arayüz arası kopyalama)
  • Firefox yer imlerinin Türkiyedeki popüler haber ve banka sitelerini içerecek şekilde ayarlanması iyi fikir.
  • Firefox ile gezdiğim sitelerin buyuk bir kısmında sayfada kullanılan asil yazı tipi yerine farklı ve okunamaz denilebilecek bir yazı tipi kullanılıyor (bu site dahil). Konqueror ayni siteleri çok anlaşılır yazı tipleri ile gösteriyor. Bu ciddi bir sorun
Firefox

Konqueror

Firefox

Konqueror
  • Firefox genel olarak Windows sürümünden daha yavaşmış gibi göründü. özellikle Flash içeren sayfalarda uygulama ciddi şekilde yavaşlayabiliyor. Konqueror ise belli sitelerde cok daha yavas isliyor . Bir sitedeki (Blogger.com) kucuk bir flash animasyonu uygulamayi kullanilamaz derecede yavaslatti. Bir ihyimal bu yavasligin nedeni Pardus'un grafik hizlandirmasini benim sistemimde yeterince etkinlestirmemis olmasi olabilir, ancak bunu nasil anlayabilirim emin degilim.
  • Her uygulamanın yardım menusunde KDE hakkında seçeneğinin bulunması gereksiz.
  • Sistem yazı tiplerini (örneğin menu) küçülttüm, ama bu KDE dışı uygulamalara yansımadı. (Firefox, Gimp gibi). Bu bir derece anlasilir bir sorun, uygulamalarin bu parametreleri tek kaynaktan saglamasi oldukca zor olabiliyor.
  • Pisi ile paket kurma işlemini başaramadım. Daha doğrusu olmayan paketlerin listesini bir turlu göremedim. Konsoldan çalıştırma denemem de başarısızlıkla sonuçlandı.
  • Bazı programlar hiş pencere açmadan doğrudan sağ alttaki alanda çalışmaya başlıyor ve çıkarken gereksiz yere çıkmak istiyorsunuz diye soruyor.
  • Kopete'ye Google Gtalk hesabımı ekleyemedim.
Donanım sürücüleri

Ebetteki Linux dağıtımlarının en buyuk bas belası olan donanım sürücüleri sorunu Pardus için de geçerli. Fakat sanılanın aksine, Linux son yıllarda gerçekten buyuk bir atilim gerçekleştirerek bu konudaki sorunları buyuk ölçüde giderdi. Artık çoğu ciddi donanım üreticisi bu konuda daha titiz davranıyor. Bendeki kurulumda ciddi bir donanım sorunu olmadı. ana kart, sabit diskler, ses kartı ekran kartı gayet güzel çalıştı. Ama eksiklikler yok değil, üç problem yaşadım. Birincisi sistem Logitech Web kamerasını tanıyamadı. Bu aslında beklendik bir sorun, Windows bile çoğu donanımı (Hatta Linux 'tan daha fazla) otomatik olarak tanıyamıyor sonuçta. Sorun donanım sürücüsünü bulma ve yüklemedeki zorluk. Biraz araştırma ile SourceForge üzerindeki ilgili projeyi buldum “http://sourceforge.net/projects/qce-ga/ ”. Burada son kullanıcıyı tasa çarptıracak sorun geliyor, sürücüyü isletmek için kodu çekip derlemek gerekiyor. Bu islem zor değil ama bazı kütüphaneleri bulamadığını söyleyince şimdilik bu isten vazgeçtim. Normal bir ev kullanıcısının kodu indirmeye bile tenezzül edeceğini sanmıyorum.
İkinci sorun DSL modem ile olan USB bağlantı. evdeki DSL modemin bir USB bir Ethernet bağlantısı var. Ben USB'yi esim Ethernet'i kullanıyordu. Pardus USB bağlantı üzerinden modem ile iletişim kuramadı. Isin iyi yani gene sırf bunun için bir proje mevcut http://sourceforge.net/projects/speedtouch/ ancak oldukça meşakkatli görünen kurulum dokümanını görünce esimin kullandığı Ethernet bağlantısını çalmayı tercih ettim.
Son sorunum elimdeki sayısal fotoğraf makinesinin bağlantısı ile ilgili. Bu da o kadar ciddi bir sorun değil, dış USB Flash okuyucum bozulduğu için makineye doğrudan bağlantıya mecbur kalmıştım. Pardus aslında USB bağlantı olduğunu ve makineyi seziyor ancak resimlere erişim sağlayamadım. Bu konuda fazla kafa yormadım, tembelliği bırakıp bir dış okuyucu almak şart oldu.

Sonuç ve düşünceler

Çok fazla kurcalama fırsatım olmamada Pardus, şu ana kadar kullandığım en iyi Linux dağıtımlarından birisi diyebilirim. Benim açımdan geçenlerde denediğim bu aralar popüler olan Gnome tabanlı Ubuntu Linux'tan bile daha iyi. Kurulum bölümlendirme sırasında yaşadığım hata hariç son derece kolay gerçekleşti. Pardus'un Türkçe desteği ise en buyuk artısı. Yaşadığım sorun ve gördüğüm eksikliklerin çoğunun Pardus'un değil Linux dünyasındaki uzun suredir yasanan sancılar olduğunun farkındayım ama bu Pardus'un bu konularda eli kolu bağlı oturması anlamına gelmiyor. Bu yazıyı yazarken Pardus'u kim kullanmalı (ya da kullanır) sorusuna cevap aradım.
Ev kullanıcılarının Pardus deneyiminin olumlu olacağını düşünsem de bu kitlenin Pardus'a ana işletim sistemi olarak geçişinin daha uzun zaman alacağına inanıyorum. Çünkü web kamerası gibi basit bir aracın çalışmaması, MSN kullanıcıları ile sesli-görüntülü görüşme yapamaması ya da Picasa yazılımını Pardus'ta bulamamaları son derece acımasız kullanıcının anında Windows'a dönüş yapmasına neden olabilir. Beğenilsin beğenilmesin, Windows kullanıcılarının alışkanlıkları başlangıçta taklit edilmedikçe, ya da taklit etmek yerine daha kaliteli ya da es programlar kolay kurulum-kullanım özellikleri ile sunulmadıkça bu kullanıcının Pardus geçişi asla istenilen seviyede olmayacaktır.

Bazı kullanıcılar için ise Pardus kullanımı söz konusu değil. Bu kitleye genellikle Photoshop, AutoCAD gibi Windows ya da Mac-Windows uyumlu uygulama kullanan profesyonel is istasyonu kullanıcıları giriyor. Bu konuda Pardus'un yapabileceği fazla bir sey yok. Her ne kadar emulasyon yardımıyla bu uygulamaların kullanımı belli bir seviyede mümkün olsa da bu kişilerin Pardus'u seçmelerini gerektiren ciddi bir neden göremiyorum.

Pardus'un asil hedef kitlesi ise kurumsal kullanım olmalı. Okullar, üniversiteler, devlet kurumları ve elbette ordu. Bu yerlerdeki masa ustu sistemler ve sunucular genellikle abuk subuk donanımlar içermediğinden yasanan problemler daha farklı bir boyutta olacaktır. Yeni yazılımların eğitimi, var olan dokümanların dönüştürülmesi gibi. Pardus'un elini kolunu bağlayacak en buyuk sorun ise sadece Windows üzerinde çalışan uygulamalar. Onlarca, belki yüzlerce Visual Basic, Delphi Access uygulamaları, Microsoft Java ya da sadece İnternet Explorer gerektiren web sayfaları, tuhaf Excel makroları hatta DOS uygulamaları Pardus gibi bir isletim sisteminin kabul görmesindeki en ciddi ve sinsi problem. O nedenle Pardus'un yaygınlaşması uygulamaların “platform bağımsız” olmasına bağlı. Elbette sadece Pardus ya da Linux ile çalışan uygulamaların da kabul görmemesi gerektiğini savunuyorum. Bu nedenle web uygulamaları standartlara uygunlaştırılmalı, masaustu uygulamalar da platform bağımsız yazılım geliştirme tekniklerine bir an önce yöneltilmelidir. Bu konuda özellikle donanım bağımlılıkları nedeniyle problemler yaşanacaktır ama en belirli bir oranda basari sağlanacaktır.
Kedim Capablanca ve Pardus

Sonuçta Surum 1.0 ile kaliteli bir urun çıkarmayı başaran Pardus ekibini tebrik ediyorum. Biraz daha caba ile çoğu kullanıcı için gerçekten kolay kullanılabilir bir isletim sistemi olmaya aday olduğuna inanıyorum. Bu yazıda bahsi gecen hata ve eksiklikleri Pardus Uluzilla sistemine eklemeye çalışacağım. Sonraki sürümlerde kalitenin daha da artacağına inanıyorum ve herkesin mutlaka bir şekilde kurup denemesini öneriyorum.

Not-1: henüz sistemi kabaca incelediğimden bu yazı on inceleme olarak görülmelidir.

Not-2: Bu yazıyı Türkçeleştirmek için hem OpenOffice öneri sistemini hem zemberek web demo uygulamasını kullandım. Zemberek henüz modem, menu ve arayüz köklerini tanıyamıyor ve ASCII - Türkçe dönüşüm işlemi Web sitesinde bazen istemediğim kelimeyi öneriyor. "diski" icin "dışkı" gibi.

Not-3: Ekran goruntulerinin bir kismini Ksnapshot ile elde ettim. Cok kullanisli bir uygulama. Diger goruntuleri fotograf makinesi ile cektim, asil masaustu goruntuleri icin su sayfaya gidiniz.

Bölümlendirme hatasının detayları:

Bilgisayarımda iki tane SATA sabit disk mevcut. Ana disk olarak küçük boyutlu olsa da hızından dolayı 37GB WD Raptor kullanıyorum. ikinci disk 80GB. Ana diskte iki bölüm mevcut. 10GB Windows, diğer alanı ise deneme tahtası olarak kullanıyorum. Ikinci disk üzerinde 15GB Windows için ayrılmış durumda, gerisi gene deneme alanı. Genellikle yazılım geliştirme ile ilgilendiğimden bu alan bana rahatça yetiyor.
Önceden test alanında Solaris Express yüklü idi. Aslında oldukça iyi bir işletim sistemi (sunucu sistemlerinde Linux'a karşı tercih edilebilir), ama şu an için masa üstünde bazı eksiklikleri var. Pardus bölümlendirme yöneticisi Solaris'e ait olan bölümleri tanıyamadı. Solaris Linux bölümlerini tanımıştı oysaki. Tabi ki bu ciddi bir sorun değil, zaten üzerine kuracağımdan Solaris bölümlerini sildim. Ana sabit diskteki tüm boş alanı Pardus için ayırdım. Diğer disk üzerinde kullanıcı ve takas alanı için bölüm seçmeye kalkışınca ilk ciddi hata ile karsı karsıya kaldım. kullanıcı bölümü için 20GB yer istemem rağmen yönetici sadece 7MB ayrılmış gibi gösterdi.
Daha sonra bu alanı yeniden boyutlandırmaya kalkışınca hata penceresi çıktı (List Index out of bound Exception ). Silip aynı şeyi takas alanı için denedim, gene aynı hata ortaya çıktı. Boyutu belirlemek yerine tüm boş alanı kullanmak istedim bu defa farklı tur bir hata (Not enough free space...) ortaya çıktı. Isin asli benim yaşadığım hatalar muhtemelen özel durum sayılır ve kullanıcıların çoğunluğunun başına gelmeyecektir, ama genede ilk yeni sürümde giderilmesi gerekir.

Java adamı

Normalde Jroller sayfamda tenik ve geyik yazıları yayınlamakta idim, ama Türkçe karakter ile ilgili bir sorunları olduğundan (surpriz!) Türkçe karakter içeren yazıları yayınlamak için Blogger hesabımı kullanarak bu sayfayı açtım.. Asıl Blogger sayfamı da ziyaret edebilirsiniz.