24
May
14 mayıs'ta EMO ile Kocaeli üniversitesi bilişim topluluğu tarafından, Kocaeli üniversitesinde linux etkinliği gerçekleştirildi. Bir günlük bir etkinlikti.

Öncelikle, özgür yazılım felsefesini anlamak, benimsemek gerekliliği için ilk konuşma Enver
Altın'ın “Özgür Yazılım Felsefesi” idi . Bu konuşmayı daha önce dinlemiş olmama rağmen
dinlerken eğlendim; dinleyicilerin de sıkılmadığını, eğlenceli bulduğunu düşünüyorum.

Sonraki konuşma Pardus geliştiricisi Mete Aplarslan' ındı. Pardus ile ilgili her şey diyebiliriz:)

Ardından Linux kullanarak kolaylıkla yapılabilen, oldukça etkileyici birçok uygulamadan bahseden “Linux’ta Web ve güvenlik uygulamaları” konu başlığıyla Burak Oğuz'un konuşmasıydı. Oldukça ilgi çektiği 'Peki şu nasıl' sorularıyla anlaşılabiliyordu.

Etkinlikte, Metin Akdere ile birlikte “Üniversitelerde özgür yazılım” konu başlığı altında bir sunum yaptık. Özgür yazılıma nasıl katkı verilebilir, nereden başlanıp, nereye doğru gidilebilir, bizim için durum nasıldı gibi sorulara cevap vermeye çalıştık. Ardından TUBİTAK ile Üniversitemiz arasında yapılan, iki kurum içinde bu tarzda bir ilk olan anlaşma ve çalışmamız “Pardus'un 64 bit portunun hazırlanması” ile ilgili bilgiler vermeye çalıştık.

Özellikle birinci sınıfların katılımlarıyla üniversitede özgür yazılıma karşı ilgisizlikten ve
bilinçsizlikten rahatsız olan, bu tarz çalışmalarla bu durumu değiştirmeyi amaçlayan bilim
topluluğu ekibi ve EMO nun bir aşama kaydettiğini düşünüyorum.

Bu güsel etkinlik için tebrik ve teşekkür ediyorum.

Kocaeli etkinliğinin ardından ,14-16 tarihleri arasında gerçekleşen “Eskişehir Osmangazi
Üniversitesi bilişim günlerine
” katılmak için Eskişehir'e doğru yola çıktık. Orada da etkinlik içinde bizimde bir konuşmamız, çok eğlenceli, dinleyenler için oldukça öğretici,bu etkinlikten daha geniş kapsamlı, ayrıca yazmam gereken bir etkinlik geçirdiğimizi söyleyebilirim. Ayrıca Eskişehir'e hayran olduğumu:)
27
Mar

1 Şubatta ilk sürümü hazırladık. Eksik paket sayısı oldukça fazlaydı ve çok fazla farklı bilgisayar üstünde deneme fırsatımız olmamıştı. Onun bir adı yok :(


19 şubatta protokol imzalamak için gelen pardus ekibi ,ile atölye çalışmasından sonraki değişikliklerle yeni bir sürüm çıkardık. Sürümün adı "VECİHİ" .


Bilgi işlemde bir balığımız var; cinsi astronot. Parmağımızı akvaryum camına koyduğumuzda ağzını açıp hızlıca gelip kafasını cama vuran, kendinden küçük her şeyi yemeye çalışan, bize alışan, bizden kaçmayan. (cinsinden kaynaklı:) ve güneşin akvaryumunun üzerine vurmasıyla renkleriyle muhteşem bi görüntü oluşturan. Balığımızın adını Şener Şen' in pilot karakter adını, Vecihi' yi verdik. Sürüme ise balığımızın adını:)


6 Martta artan paket sayısı, yapılan değişiklikler sebepleriyle yeni bir sürüm çıkarttık. Sürümün adı "SERUHATTO"[1].


Çalışmalara başladığımızda dört kişiydik; Metin, Mete ve Serhat. Serhat geçen yıl bölümümüzden mezun oldu. Yanımızda olduğu sürece bizlere çok yardımda bulundu. Aralık ayında askere gitti ”o şimdi asker:)”. İsminin Japonca söylenmesiyle oluşan "SERUHATTO" kelimesi bu sürümün adı oldu.


Pardus 64 bit projesi ile ilgili yazıları bundan sonra 2uzeri6.blogspot.com adresinde yazacağız.



[1] http://tinyurl.com/seruhatto

4
Mar
Gecen bir aylık süre içerisinde yeni bir blog girdisi yapmamış olsam da, gerçekte piside ki ilk paketten pek çok gelişme oldu.

Öncelikle PİSİyi sistemde çalışır hale getirmek için gereken programları onların bağımlılıkları ve onların bağımlılıklarını… gösteren belgeyi oluşturduk.

ilk paketin(helloWord:) ardından Pardus kurumsal 2 deposunun görüntüsünü alıp kapsadığı paketleri 64 bit mimariye taşımaya başladık. Daha çok Gentoo'nun o paket için ne yaptığıyla ilgilenerek ilerledik.

64 it mimaride derlenmesi için değişiklikler yapılması gereken paketleri değişiklikleri uygulanmış halde kullandığımız svn deposuna(devel-X86_64) commit ettik. Ayrıca paketlerde ki bu değişikleri PardusWiki'deki X86_64-64_Mimarisine_Port_Edilmesi başlığı altındaki Paketlerin X86_64 Mimarisine Taşınmasında Yapılması Gerekenler maddesi altında gruplanmış halde yazdık.

System-base ve system-devel deki paketlerin tamamı 64 bit mimariye taşındığında, kök dosya sistemi duyuruldu. Duyurulduğun da grup tam olarak halledilmediği için rootfs i kullanmak isteyenler rootfs i bir disk bölümüne açıp eski grup içine yazmaları gerekiyordu; ya da sanal makine kullanmak ki bu kısımda x olmadığı için eğer yeterli donanıma sahipse daha mantıklı bir seçimdi bence. Fakat bu kısımda geçmişte kaldı. Artık Ximiz, KDEmiz var:))

Grub 64 bit mimaride derlenmiyor ve artık geliştirilmemekte. Diğer dağıtımlar Grubı 32 bitte static olarak derleyerek kullanmışlar. Bizde bu yöntemi kullandık. Artık bir GRUBımız da var.

Şu anda kurulan cd için yeterli paketimiz olduğunu düşünerek, kurulan cd hazırlamaya çalışıyoruz.

Pek çok şey öğrendiğim bu işte olmak, bu ekiple çalışmak çok güzel:). Kurulan cd den sonra ekibimizin büyüyeceğini düşünüyoruz;)

17
Şub
Oluşturduğumuz temel sistem(pardus64-rootfs-0.1.tar) kendi içinde bağımlı ve 64 bit mimaride.

Sıradaki hedefimiz 64 bit paketlerin hazırlanabileceği bir ortam hazırlamak için pisi ve bağımlılıklarını kurmak. Bu adımdan önce programlar tarafından sistemden istenen destekleri bilmediğimiz için derleme araçlarına Pardus de verilen tüm destekleri sağlama kararı aldık.

(Örnegin; gcc ye derleme parametresi olarak verilen "--enable long long" programında long long veri tipini tanımlayabilmene izin veriyor. bu desteği vermemiş isen long long veri tipini sistemde derleyemiyorsun. Bu tarz olası durumlardan en başta kaçmak için.

64 bit mimari için kullandığımız derleme parametreleri ve yamalara artı olarak Pardus de kullanılan derleme parametreleri(sadece 32 de kullanılan parametreler hariç "--enable-fat") ve yamalar ile derleme araçlarını ve bu araçların kullandıkları kütüphaneleri tekrar derledik(-kernel-headers-glibc-gmp-mprf-zlib-binutils-gcc-make-).

Derleme araçları(crosstools) döngü halinde birbirine bağımlı; sistem için herhangi bir derleme aracını derlerken diğer araçları kullanıyorsun. Bir araca verdiğin yeni bir desteği diğerlerinde görebilmek için onları son kurduğun araç ile yeniden derlemen gerekiyor.

Bu döngüden kaynaklı derleme araçlarını birbiri ile birkaç kez derledik.

Sırada ki ; sistemin paket hazırlanabilir halde olması için Pardus paket yöneticisi(pisi) ve onun bağımlılıklarını sisteme kurmak.
Pisi için gerekli olan tüm bağımlılıkların ve Pisinin, 64 bit için yapılması gereken ekler için Gentoo paketlerini kontrol ederek, Pardus deki yapılandırma parametreleri ve yamalar ile sistemimize kurulumunu bitirdik.

Pisi artık 64 Bit:)) ve ilk paketimiz merhaba-pisi:)))
Chroot olabilmek için gerekli adımları yaparak başarılı bir şekilde chroot olduğumuz geçici kök dosya sistemi üzerinde, kurulan programları tast edebilmek için test araçlarının( Tcl, Expect, DejaGNU ) kurulumunu da yaptıktan sonra kök dosya sistemini oluşturmaya çalışıyoruz.

Sisteme derlemenin temel araçlarından(kernel headers, C kütüphanesi ( glibc veya uclibc veya eglibc ), binutils (linker,assembler) ve gcc) , kernel headers-2.6.30 problemsiz olarak, glibc-2.9 ise " bin/ld: final link failed: Bad value " hatasını çözümleyerek sisteme kurduk.

binutils ve gcc ile test araçlarının çalışabilmesi için PYS nin uyumlu çalışması( host sistemimiz(bizde Debian) yeterli sayıda pseudo terminaline destek vermesi) gerekliliğini öğrendik. Yaptığımız testte doğru sonuç alamadık.
$expect -c "spawn ls"
spawn ls
The system has no more ptys.Ask your system administrator to create mor
Bunun için öncelikle host sistemimizin çekirdeğinin bu desteği verir halinin paketini yapıp kurduk.Host sistemimizdeki test sonucunu "spawn ls" olarak gördük.

Chroot olurken yaptığımız adımlardaki sanal çekirdek için gerekli olan mount adımındaki -f(fake) mountlarını(gerçek bir bağlama işlemi gerçekleşmiyor.);

$mounth -vt devpts devpts $clfs/dev/pts
$mounth -vt tmps shm $clfs/dev/shm


-f siz yaptığımızda chroot olduğumuz sistemimizde de test sonucunu "spawn ls" olarak gördük. Testi geçtik.

Ardından derleme araçlarından binutils ve gcc nin kurulumu ve temel sistem için gerekecek diğer programların(pardus sürümleriyle uyumlu) kurulumunu yaptık.

Oluşturduğumuz 64 bit mimaride çalışan programlar tarafından oluşturulmuş, host sisteme bağımlılığı olmayan temel sistemi tarladık.
(pardus64-rootfs-0.1.tar)

Bir ayı geçkin bir süredir, Necdet Yücel hocamız önderliğinde dört arkadaş (serhat, metin, mete) çok şey öğrendiğimiz ve severek yaptığımız bir iş içindeyiz; Pardusun 64 bit portunu hazırlama. 07.11.2009 cumartesi 6.30 civarında önemli bir aşama kaydettik, 64 bit debian üzerinde pardus üzerinde hazırladığımız geçici sisteme chroot olduk:)

Bu süreç;

Geçici sistemi hazırlamak için üzerinde çalışacağımız sistemin Pardus olması kararını verdikten sonra, çapraz derleme(cross-coppiler) araçlarını(herhangi bir mimaride çalışan ve derleyeceği kodu çalıştığı mimariden farklı bir mimari için derleyebilen) ve bağımlı olduğu kütüphaneleri derledik. Bu adımdan sonra 32 bit mimarideki Pardus üzerinde, kodlarımızı 64 bit mimaride derleyebilir durumdaydık.

Geçici sistem için, host sisteme bağımlılığı olmayacak şekilde çapraz derleyicimiz ile 64 bit mimaride gerekli olan programları -uyum problemi oluşmaması için Pardus un kullandığı sürümlerdeki- ayrı bir dizin içerisine derledik. Host sistemde, 64 bit mimari için derlenen programlar çalıştırılamıyor ve geçici sistemin bulunduğu dizine chroot yapılamıyor çünkü çekirdek 32 bit mimaride çalışıyor.

Bu durumda iki seçenek vardı. Hazırladığımız geçici sisteme 64 bit mimaride çalışan bir sistem üzerinde chroot yapma ya da geçici sistemi boot edilebilir hale getirme. Hedef olarak temel sistemi kullanarak paket oluşturacak olan arkadaşlar için daha kolay bir yol olduğu düşünülerek boot edilebilir bir sistem oluşturma kararını aldık fakat tamamen konsolda çalışmaları gerekecekti.

Boot sürecinde, çekirdek için Pardus tarafından seçilen çekirdek sürümünü ve onun kullandığı yapılandırma dosyasını kullandık. Çekirdeğin 64 bit mimariye destek verebilmesi için 32 ve 64 bit Debian yapılandırma dosyaları arasındaki farkı yapılandırma dosyasına uyguladık.

İnitramfs için Pardus un kullandığı init dosyasını, kaynak kodunu indirip 64 bit olarak derlediğimiz busyboxı ve init kodu içerisinde çalıştırılan diğer programları (coolplug ve disktype) kullandık.

Coolplug; klcc ile derlenmiş, klibc ye bağımlı bir yazılım. Gcc ile derlediğimizde derleme de hata oluştu ve çalışmadı. Host sistemde çapraz derleme yapabilecek klcc oluşturmak yerine; aynı donanım üzerinde çalışacağı ve statik linkleme kullandığı için problem oluşturmayacağını düşündüğümüz, aynı donanım üzerinde koşan 64 bit mimariye sahip bir sistemde(Debian) derleme işlemini yapma seçimini yaptık.

Son haliyle oluşturduğumuz initramfs ile sistemi boot etmeye çalıştığımızda, init dosyasının kodlarıyla ilerleyerek busybox araçlarının ve coolplug programının çalıştığını gördük fakat coolplug ile disk bağlanırken farklı bir hata oluştu.

Sürecin zamanında ilerlemesi amacıyla boot etme sürecini sonraya ertelemeye, 64 bitlik sistemde(Debian) geçici sisteme chroot yapmaya karar verdik. Şimdi paket yapacak olan arkadaşların 64 bit mimaride çalışan bir dağıtım kurmaları ve chroot yapmaları gerekecek fakat sadece konsolda çalışmak zorunda kalmayacaklar.

Sıradaki hedefimiz ise chroot yaptığımız sistem üzerine, temel bir sistem için gereken yazılımları, paket hazırlanabilir halde olması için pisi ve onun bağımlılıklarını kurmak.