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 :).

26 Nisan 2015

Posted In: bellek yönetimi, çekirdek, comu, Gezegen, Gnome, linux, opw, outreachy, staj

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ı) :).

1 Şubat 2015

Posted In: bellek yönetimi, collapse huge page, Gezegen, huge page, kernel, linux, staj, swap, yama, zero page

Bir yazılım stajı nasıl olmalı?

Güzel memleketimin dört bir köşesinde, her yıl binlerce genç, yazılım üzerine staj yapıyor. Ben de bir yazılım stajının nasıl olması gerektiği konusunda aklımda olan düşünceleri paylaşayım dedim.

Doğrusu yanlışı, eksiği fazlası benim düşüncemdir.

Başlayalım…

Staj, iş değildir!

Staj yaparken, iş nasıl yapılır onu öğrenirsiniz. Bunun için staj süresince çok iyi bir gözlemci olmalısınız. Kim nasıl çalışıyor iyi irdelemelisiniz. Bu, ‘kim yatıyor kim çalışıyor’ onu bulun demek değil.

İpuçları almaya çalışın

Olabildiğince yazılım geliştirme konusunda ipuçları almaya çalışın. Mümkün olduğunca yazılım geliştirme teknikleri konusunda çalışanlardan bilgi almaya çalışın. Öğreneceğiniz her bilgi ileride çok işinize yarayabilir. Mesela “hangi işletim sistemini kullanmalısınız” bilgisi oldukça önemli bir ipucu olabilir size (Linux forever!).

Kimlerle çalışacaksınız gitmeden önce öğrenin

Başvuru yapacağınız şirketin sayfasında eğer çalışanlar sayfası varsa iyice bir inceleyin orayı. Şirkette kim varmış kim yokmuş öğrenin. Eğer çalışanlar sayfası yoksa LinkedIn bu konuda size yardımcı olabilir.

Ayrıca çalışanların LinkedIn profillerini ve varsa bloglarını bulmaya çalışın. Bu şekilde çalışacağınız kişilerin hangi konularda bilgili olduklarını tespit edin.

Böylece kabul edilirseniz, staj süresince “aa bu adam bu konuyu biliyordu, dur gidip bir sorayım” diyebilirsiniz.

Şirket değil yazılımcı seçin!

Şirketten öte, şirkette çalışan yazılımcıları iyi araştırın. CV’nize yazacağınız şirketin mutlaka bir şekilde etkisi olacaktır. Ancak staj süresince edineceğiniz bilgi bundan daha önemlidir, bunu unutmayın.

Çok büyük bir X firmasına staj yapmak için girdiniz. Yaptığınız işler ufak tefek sayılamayacak kadar önemsiz olabilir. Doğal olarak o şirketten herhangi bir şey öğrenmeden ayrılmış olacaksınız.

Ama X firmasına göre daha ufak bir Y firmasında iyi bir yazılımcıyla stajınızı yaparsanız ve stajı gerçekten kaliteli işler üreterek tamamlarsanız bu sizin açınızdan daha faydalı olacaktır.

Mutlaka en az bir tane sistemci

Çalışacağınız yerde en az bir tane sistem yöneticisi olmasına dikkat edin. Hem yazılım üretip hem de sistemle ilgilenen kişilerden bahsetmiyorum. Mesleki sıfatı sistem yöneticisi olan ve sadece sistem yönetimiyle ilgilenen kişi veya kişilerin olmasından bahsediyorum.

Çünkü staj yapana kadar öğrenciler sistem tarafından pek haberdar olmuyor maalesef. Ara ara “yahu bu adam napıyor ki burada” deyip konuşmaya, fikir almaya çalışın. Çünkü gerçekten tüm sistem o adamın elinden geçiyor.

Aynı yerde birden fazla staj yapmayın

Staj sizin için sektörü tanımak için en uygun zamandır. Eğer birden fazla staj yapacaksanız ikisini de farklı farklı yerlerde yapmaya özen gösterin. Örneğin; bir yerde X diliyle çalışırsanız, diğer yerde Y dili ile çalışabilirsiniz.

Bunun en önemli yanı ufkunuzun açılmasıdır. Farklı “tatlar” denemeniz sizin avantajınızadır…

Naçizane benim aklıma gelenler bunlar, sürç-i lisan ettiysem affola.

Dip not: “E bunca fikri nasıl edindin be adam?” sorusu aklınıza gelebilir diye şöyle bir açıklama yapayım: 2 kez staj yaptım. Birkaç stajyer ile çalıştım. Ama farklı şirketlerde, farklı görevler üstlenen ve sayısını aklımda tutamadığım kadar çok, staj yapmış kişi ile çeşitli sebeplerle yaptıkları staj(lar) üzerinde diyalogum oldu. Bunca fikir staj yapmış kişilerle yaşadığım diyaloglar sayesinde ortaya çıktı.

11 Nisan 2013

Posted In: Genel, Gezegen, staj, stajyer, yazılım stajı

Europass CV

Merhaba arkadaslar, bugun Daron hocanin tweetini okuduktan sonra acaba xml formatinda cv nasil yazilir diye merak ettim ve biraz olsun arastirdim. Bu arastirmalarim sirasinda AB ce ve dunya uzerinde kabul goren bir CV sistemi oldugunu gordum. Simdi sizlere bundan bahsedecegim. kariyer.net gibi sitelerde doldurdugumuz cv ler isverenlerce cok dikkate alinmayabiliyor maalesef(Bakiniz Daron Yondem`in tweeti) Iste bu yuzden kendi cv mizi yazmamiz gerekiyor. Bunun icinde dunyaca kabul gormus bir seyden yararlanmak guzel olur diye dusundum. Simdi siteden bir alinti yapiyorum:)


Europass Özgeçmiş (CV)

Nedir?

Europass'ı kullanmak isteyen herkes Europass Özgeçmişi doldurarak başlayabilir. Europass Özgeçmiş (CV) becerilerinizi ve yeterliliklerinizi görülür hale getirmenizi sağlar. Bu döküman ile kişisel bilgilerinizi, iş deneyimlerinizi, eğitim öğretim bilgilerinizi ve kişisel becerilerinizi belirli bir formatta oluşturabilirsiniz. Bu döküman formatı AB ülkelerinde de aynı olduğu için kendinizi işverenlere en etkin şekilde tanıtmanıza olanak sağlar.
Europass Özgeçmiş (CV) 2002 yılında çıkarılan Avrupa Özgeçmişinin (CV) yerini alır.

Europass CV'nin Kullanımı


Europass Özgeçmişi (CV) kullanmak için üç seçeneğiniz vardır;


-Europass CV'nizi Online Olarak Oluşturun


Yukarıdaki linke tıkladıktan sonra karşınıza çıkacak sayfada sağ üst köşeden dil seçeneğini yaptıktan sonra, gerekli talimatları takip ederek CV’nizi oluşturabilirsiniz. CV’nizin tamamlanmış halini daha sonra elektronik olarak (e-posta ile veya indirerek) edinebilirsiniz.


-Europass CV belgelerini indirin


(boş şablon, talimatlar,farklı dillerde doldurulmuş örnekler ve Europass kapak sayfası). Bu bilgileri daha sonra bilgisayarınızda CV’nizi oluştururken kullanacaksınız.

-Europass CV'nizi Güncelleyin (XML/XML+PDF)


Eğer daha önceden CV'nizi yukardaki "Europass CV'nizi Online Olarak Oluşturun" linkinden oluşturmuş ve XML/XML+PDF formatlarında kayıt etmiş iseniz, bu CV'nizi ,bu linki kullanarak yükleyebilir ve verilerinizi güncelleyebilirsiniz.
Kişisel verileriniz otomatik olarak sisteme girilecektir.

21 Kasım 2010

Posted In: Geyik ve Ben, Gezegen, staj

Twitter Auto Publish Powered By : XYZScripts.com