staj etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
staj etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

30 Ekim 2015 Cuma

LinuxCon Europe Konferansı


Bu yıl 5-7 Ekim tarihlerinde LinuxCon + CloudOpen + ELC Europe etkinliği İrlanda, Dablin'de düzenlendi. Ben bu sene LinuxCon'a ilk kez ve konuşmacı olarak katıldım ^_^.

Outreachy stajyerlerine çalıştıkları projenin konferanslarından birine katılmaları için etkinlik bileti + $500 burs veriyor. Bu şekilde stajyerlerin iş bulabilme ihtimali de artıyor. Ben de geçtiğimiz kış Outreachy'de stajyer olduğum için bu bursu almaya hak kazandım.

Mümkün olduğunca bu tür etkinliklere katılmaya çalışıyorum. Yeni ülkeler, yeni insanlar görmek gerçekten çok güzel. Hem bu sayede çevremi de genişletmiş oluyorum. Zaten onlar da yeni insanlar tanımaya, konuşmaya çok hevesli.

Bu yıl şöyle bir durum oldu. Linux Vakfı Diversity Scholarship adı altında konferansa katılım bileti vermeye başladı. Outreachy zaten konferansa ücretsiz katılım sağlıyordu ama Julia (Outreachy'de Linux Kernel koordinatörü), bu bursa başvurmamızı önerdi. Biz (stajyerler) de başvurduk ve alındık. İtiraf ediyorum, konuşma yapacağım için alınmayı bekliyordum. Bu sefer şaşırmadım :p

LinuxCon'un ilk günü kayıtlar 7.15'te başladı. Genelde insanlar geç gelseler de biz yeni olduğumuz için vaktinde etkinlik yerinde olduk :). Etkinlik Convention Centre Dublin 'de yapıldı. Orası geçen yıl Dublin'e gittiğimde ışıl ışıl olmasıyla ilgimi çeken yer. Bir sene sonra orada sunum yapacaksın deseler inş. cnm yha derdim :). CCD'nin harika ötesi fotoğrafına bakmak için bu linke tıklayabilirsiniz.

Etkinlikte Julia, Daniel ve Greg ile tanışma fırsatım oldu. Aynı zamanda stajyer olan arkadaşlarla da tanışmış oldum. Etkinliğin ilk akşamı konuşmacılar için düzenlenen yemeğe katıldım. Birkaç servis insanları götürmek için CCD'ye gelmişti. Bu sırada Torvalds gelip önüme oturdu. Tabi bende hafif bir taşikardi ;)

Torvalds servise geldiğinde hafif bir alkış olsa da yanımdaki çekirdek geliştiricileri çekingen gibi duruyorlardı. Bu nedenle ben de Torvalds ile konuşmadım ama Torvalds ile aynı servise binmişliğim var diye cv'me yazayım diyorum.

Konferansta Rik'le (stajdaki danışmanım) görüşmeyi ümit etmiştim. Etkinlik sabahı Rik'e seni göremedim, hangi sunumdasın diye yazdım. Senede 2-3 konferansa katılabildiğim için buna gelmedim dedi. Tabi o böyle diyince içime gnu oturdu :(. Muhtemelen Amerika'da daha fazla etkinlik oluyordur diye düşündüm.

Acaba Sarah Sharp gelmiş midir? diye düşünürken akşama doğru Sarah'nın bu yazısını gördüm. Sarah bilgisayar bilimlerinde birçok kadını destekleyip, cesaretlendirdi. Hala daha devam ediyor. Geçtiğimiz dönem Red Hat'in kadınlar için düzenlediği Açık Kaynak Ödülleri'ni kazanmıştı. Sarah'nın Linux çekirdeği camiasından ayrılması gerçekten üzücü ancak tüm bunlar bir yana, insanın hayatında yer verdiği şeylere bir noktadan sonra dur diyebilmesi bence çok güzel bir davranış.

Geçen yıl gönderdiğim yamalara cevap alamayınca, ilk Sarah'ya sormuştum :). Yanlış bir şey mi yapıyorum, neden kimse cevaplamıyor? diye. Linux çekirdeği merge window sürecinde bu yüzden yeni yama kabul etmiyorlar demişti. O zamanlar Linux çekirdeğinde çok yeniydim (hala çok yeniyim :|) , okuldaki son yılımdı. Alanında lider insanların kendilerini yeni başlayanlara bile konuşacak kadar yakın hissettirmesi gerçekten harika bir şey. Dilerim dünyada daha fazla böyle güzel insanlar var olur.

Bu konudan sonra etkinliğe geri dönelim :p. Etkinliğin ilk günü oldukça heyecanlı ve yorucu geçti. Zaten sabah altıda kalkmıştım (etkinlik 7.15te olunca) :).  İkinci gün üzerimdeki heyecanı, stresi atıp sanki ertesi gün sunum yapacak olan ben değilmişim rahatlığında günümü geçirdim. Genelde Linux çekirdeği ile ilgili sunumlara katıldım, bazı sunumlarda çok fazla bilmediğim anahtar kelime olduğundan anlamakta zorlandım :|. 2. gün SanDisk'in sponsorluğunda kadınlara özel öğle yemeği düzenlendi. Yemek sonrasında kadınların bilişim dünyasındaki yeri, geliştirici topluluklarda kadınların genelde kendini geriye çekmesinden bahsedildi. Günümüzde insanların hala ırkı, rengi, LGTB'ye dahil olmaları gibi sebeplerle dışlandıklarından konuşuldu.

Ben de bu yıl ilk kez 100 kişilik sunum salonlarında 1-2 kadın olmasının nasıl bir durum olduğunu görmüş oldum. Outreachy Linux çekirdeği camiasındaki kadın-erkek dengesini sağlamak için gerçekten çok güzel bir adım. Outreachy'de sadece Linux Vakfı yok elbette. Mozilla, WikiMedia, Xen ve daha fazlası için bknz: katılan organizasyonlar.

Etkinliğin 3. günü Outreachy panelinde sunum yaptık. İlk önce Julia Outreachy'nin genel amaçlarından, nasıl işlediğinden bahsetti. Bu yıl Hindistan'dan gelecek olan stajyer arkadaşlar katılamadılar. İrlanda, Hindistan için vize vermemiş. Nasıl olur insan gerçekten anlayamıyor ama ..

Sunumu dinlemeye gelen kitle beklediğim kadar kalabalık olmadı ama yine de stajyerler olarak heyecandan ölmek üzere sunum yapmış olabiliriz :).

LinuxCon deneyimim benim için yeni insanları tanıyarak, yeni bir şehir hatta yeni bir ülke, mutlu, heyecanlı günler demek oldu. Yapılan sunumların kalitesi zaten gerçekten son zirve. Katılınması itina ile tavsiye edilir :)

25 Nisan 2015 Cumartesi

Linux Stajı Sonucunda


12 Mart sonunda Outreachy (OPW) kış dönemi stajları sona erdi. Ben bu süreçte bellek yönetiminde, THP (transparent huge page) kodları üzerinde çalıştım. Birlikte çalıştığım danışmanımın istersen bir süre daha birlikte çalışmaya devam edebiliriz demesiyle şimdi hala devam ediyorum :).

Staj sürecinde sadece okunur sayfalar, sıfır içerikli sayfalar (zero page, bellekte henüz eşleme yapılmamış sadece okuma isteği almış ve veri içermeyen sayfa) ve swap cache üzerinde çalıştım. Swapteki veriler için birini stajdayken diğeri stajdan sonra olmak üzere iki yama hazırladım. İkisininde ortak yanı do_swap_page kısmında takılıyor olmaları ^_^. Sistem bazen askıda kalıyor, bazen boot aşamasında bile bir panik oluyor gibi problemleri var hala. Koddaki sayaçların değerini daha iyi görebilmek için tracepoint yazdım. Tracepointi de ayrı bir yama olarak göndereceğiz. Askıda kalma problemleri için en iyi yöntemler ise serial console ya da netconsole kullanmak. Geçen gün Sarah Sharp'ın günlüğüne bakarken burada bir netconsole yazısı gördüm :). Askıda kalma olayı genelde spinlocklarda bir hata yaptıysak oluşuyor.

Outreachy'de, Linux Vakfı kendi stajerlerini 5 dakikalık kısa konuşma yapmak için Linuxcon'a davet ediyor. Ben Dublin'de olana katılacağım, Seattle'da olan biraz fazla uzak. Zaten bu ara hangi etkinliğe gitmek istesem hep Dublin'e denk geliyor, aslında ben mümkün olduğunca başka şehirler seçmeye çalışıyorum :).

Nisan başında lwn.net'te stajımla ilgili bir yazı yayınlayacaktık, yazının taslağı hazır, sanırım swaplerle olan işler bittikten sonra onları da ekleyip yayınlayacağız.

Bu staja alınmam benim için biraz sürpriz gibi oldu. Necdet hocanın hadi Ebru başvursana demesiyle başvurdum ve çok iyi oldu, çok da güzel oldu :).

Mezuniyetimden beri evden çalışıyorum, bu biraz değişik oldu. Muhtemelen bir ay daha evdeyim, sonra bir süre çekirdeğe ara verip başka işlere bakıp, sonrasında tekrar döneceğim :). Çekirdek üzerinde çalışmanın diğer alanlara göre daha fazla dikkat gerektirdiğini düşünüyorum. Çünkü bir yerde hata yaparsam o değişikliği geri almak daha uzun sürüyor, daha fazla şeyi kontrol etmem gerekiyor.

Staj sürecimde işini çok iyi yapan insanlarla birlikte çalıştım. Rik, 12 senedir Linux üzerinde çalışıyor. Bunun ilk duyduğumda bir yutkunma .. :).

Aslında üniversiteye başladığımdan beri hep işini çok iyi yapan, hayran olduğum insanlarla bir aradayım. "Harika insanlarla birlikte çalıştım" diyebilmek, bu hayattaki en güzel şeyler arasında ilk sıralarda yer alır. Çomü'de bilgi işleme gitmeye başladığımdan beri ben de bu sözü söyleyebiliyorum ve iş hayatında da böyle devam eder diye ümit ediyorum :).

31 Ocak 2015 Cumartesi

Linux Kernel Ekibiyle Staj

Geçtiğimiz yaz haziran sonunda mezun oldum. Mezuniyetten sonra bir işe girip çalışmak, her gün işe gidip gelmek, birkaç ay işim dışında bir şeye bakmamak, sonrasında iş temposuyla birlikte neler yapabileceğime karar vermek gibi bir düşüncem vardı. Ancak tabi ki böyle olmadı :).

Ağustos başında Google İrlanda ofisinden iş görüşmesi için e-posta aldım, benim ile başlangıç bir telefon görüşmesi yapmak istediklerini söylediler. Hemen kabul ettim. İlk üç aşamayı geçtim, son görüşme için Irlanda'ya gittim ancak son görüşmede başarılı olamadım. Sorular beklediğim gibi değildi, internetten çalıştığım gibi de değildi.

Ben evde son görüşmeye hazırlanırken Gnome OPW için başvurular da başlamıştı. Ben daha önce ilk Gnome'un araçlarına sonra da Linux Kernel'a başvurmuştum. Gnome'a katkı verirken katkı vermek için masaüstü bilgisayarınızda ortam oluşturmak zor. En son Fedora 19'un alfa sürümünü kullanmak zorunda kalmam ve alfanın hiç kullanışlı olmaması üzerine katkı vermeyi sonlandırdım :). Aslında jhubild'de kullanabiliriz ama onda ortamı hazırlaması .. bana bir tane geliştiricisi o zamanlar Fedora beta sürümü varken, beta kullanmamı önermişti, beta yine kullanılabilirdi ancak bir sonraki sürüme geçtiklerinde alfa kullanmak zorunda kalmam pek iyi olmadı. Bir de Gnome Continuous var, onu yeni gördüm ama henüz denemedim.

Linux Kernel'a katkı verdiğim sene aslında alınmayı beklemiştim gerçekten ama olmadı. Bu dönem başvuru süresi 2 ay gibi uzundu :), geçen sene 3 hafta gibi bir süreydi. Necdet hoca "Aslında sen başvursan çok şey yaparsın" dedi, ben de başvurdum ve alındım :). Alınmayı gerçekten beklemiyordum ve çok güzel bir sürpriz oldu.

Şimdi Rik van Riel ile birlikte bellek yönetimi üzerinde çalışıyorum. Bellek yönetimi katkı vermeye başlamanın en zor olduğu kısımlardan biri, çünkü çekirdeğin temel fonksiyonlarını içeriyor ve daha karmaşık. Başvurduğunuz projeye göre staj sürecinde ne kadar yama gönderebileceğinizin sayısı da değişiyor. Ben projem zor olduğundan, 4 ayda otuz satır yazabilir miyim derken şimdiden bir yamayı kabul ettiler bile :).

Linux kaynak kodunda bellek yönetimi ile ilgili dizin mm/. Eğer güncel mm dizinini takip etmek istiyorsak da Linus Torvalds'ın kullandığı dalı değil de linux-next'i takip etmek gerekiyor. Yamaları Andrew Morton kabul ediyor ve günlük olarak etiketliyor. Güncel linux-next'i nasıl takip edeceğinizi görmek için buraya bakabilirsiniz.

Anladığım kadarıyla, Linux'ta bellek yönetimi üzerine çoğunlukla Redhat ekibi bakıyor, çünkü birçok sunumu ve belgeyi o ekip hazırlamış. Ben yamaları gönderirken mm dizini bakıcılarına baktığımda genelde @redhat.com alan adlı hesaplar var. Yamaları vger.kernel.org ve  akpm@linux-foundation.org listelerine gönderdiğim için de çok mutluyum. O kadar büyük listelerdeki insanların kodlara bakıyor olması oldukça heyecanlı :).

Üzerinde çalıştığım proje ise, bellek üzerinde 2kB/4kB kadar boyutlarda olabilen sayfaların dışında bir de büyük sayfalar (huge page) var. Onların boyutları ise 2MB/4MB. Peki neden büyük sayfalara ihtiyaç duyuyoruz? Çünkü sayfalar büyük olduğunda sayfa tabloları da büyük oluyor ve bir süreç için verileri bellekten atma/belleğe getirme miktarı azalıyor. Eğer sayfalar 4MB'tan büyük olursa verimsiz oluyor.

Sistemin swap kullanması gerektiğinde büyük sayfalar normal boyutlu sayfalara parçalanıyor (2kB/4kB) ve o şekilde swap alanına yerleştiriliyor. Sorun şu ki; swap alanından belleğe tekrar geri getirilmek istendiğinde büyük sayfa olarak değil, normal boyutlu sayfalar olarak getiriliyorlar bu durumda eski verim sağlanamıyor, aynı zamanda burada izlenmesi gereken bir algoritmaya da karar verilmeli. Çünkü bir süreç swap kullanıyor diyelim, ve swapte olan bir veriye ihtiyaç duyuldu, sadece tek bir verinin bulunduğu sayfa 2kB, ancak bunun yerine 2MB büyük sayfa getirmek her zaman yararlı olmaz. Burada karar verilmesi gereken noktalar var.

Geçtiğimiz dönem kod ve belge okumak üzerine geçti. Bir tane de yama gönderdim. Sadece okunabilir sayfaları büyük sayfalar şeklinde birleştirmek için. Yamayı burada görebilirsiniz.

Bundan sonraki bir süre ise; "daha önce hiç okuma/yazma isteği almamış, henüz fiziksel belleğe eşlenmemiş, sadece sanalda bulunan, bir süre sonra ilk kez okuma izni aldığında fiziksel belleğe eşlenen sayfalar" var, bunlara zero page deniliyor, bunlar üzerinde çalışacağım. Eğer sayfa içerisinde veri yoksa, ilk okuma isteği aldığında çekirdek bunu sıfırlarla dolu bir sayfa olarak üretiyor. Bunları da büyük sayfalara dahil etmek üzere çalışacağım. Aynı zamanda (emin değilim), Documentation dizininde de belgelendirme yapmam gerekecek. Muhtemelen birkaç işim daha var ancak henüz ben bilmiyorum, danışmanımla işleri bitirdikçe yenisini alma şeklinde ilerliyoruz. Henüz başlamadığımız işlerden de şuna bir ara bakarız şeklinde konuşuyoruz.

Staj sürecinde birkaç Türkçe yazı daha yazacağım (yazmadı) :).