fizban Mesaj tarihi: Ocak 16, 2010 Mesaj tarihi: Ocak 16, 2010 neyi yanlış yapıyorum bilemiyorum, ama teoride herşeyi doğru yapıyorum diyerek giriş yapiyim bi. bir ders projesi için kernel'i editlemek gerekli, ben de bunu yapıyorum, fakat ilk adım olarak eklediğim satırları falan test etmek için bir printk koyiyim sağa sola ki anliyim neler olduğunu diyorum. hatta istediğim fonksiyonun return komutundan önce şöyle diyorum printk("selam dayi nabern"); oldu diyor, sonracığıma kernel'i compile ediyorum, warning/error almıyorum; install ediyorum, boot edeyim derken hooop loadscreende gözgöze kalıyoruz öyle. sonra ctrl + alt + del ve tekrar aynı adımlar falan filan. neyi atlıyor olabilirim ?
sharky Mesaj tarihi: Ocak 17, 2010 Mesaj tarihi: Ocak 17, 2010 oo yazdim diorsun yani scheduler i ? ubuntu hic sevmem, geleneksel yontemle kernel derleyemiyorsun galiba. Emin degilim.
fizban Mesaj tarihi: Ocak 17, 2010 Konuyu açan Mesaj tarihi: Ocak 17, 2010 yazdim sanirim, bitirince paylasirim hatta da, compile etmeden deneyemiorum =P compile da nerede takildigini falan da buldum, bakalim baska makinede denicem simdi.
sharky Mesaj tarihi: Ocak 17, 2010 Mesaj tarihi: Ocak 17, 2010 Konunun cok gereksiz, fakat pratigini super gelistirecegini dusunuyorum :) Paylas tabii, en azindan bakar yontem ogreniriz.
Berk Mesaj tarihi: Ocak 17, 2010 Mesaj tarihi: Ocak 17, 2010 selam fizban, Şimdi linux kerneliyle elleşmek baya sıkıntılı bir konu; ben bitirme projemde ethernet layer network driver yazmıştım. Kernel hacking diyince kernel'e module yazıyorsun olarak algılıyorum. Ubuntunun diğer distrolara göre bir farkı yok. compile edip insmod yapınca güzel güzel oluyor. Tam detaylarını hatırlamıyorum (projenin üzerinden çok zaman geçti) ama ben yazarken linkini aşağıda verdiğim kitaptan çok yararlanmıştım. Linux Device Drivers 2nd ed. Bunun dışında printk aslında sakat bir fonksiyon çünkü kernel leveldan user levela geçiyor basmak için, hem de baya performans bottleneck'i. Bunun yerine linuxda /proc/ filesystem diye birşey var. Buraya yeni bir file yaratınca ekrana bastırmak yerine buraya yönlendiriyorsun outputlarını, driver çalışırken on the fly bu file'a yazıyor. (aslında tam file da değil, detaylarını okuyunca görürsün). Yolladığım linkte /proc/ nasıl kullanılır var. Umarım bir başlangıç noktası olmuştur. Not: Bu arada kernelle elleşeceksen ve benim gibi ilk seferinse native ubuntu kurmak yerine VM üzerine kurmanı öneririm. Keza modülde ufak bir hata yaptığında program terminate etmek yerine tüm sistem aşağı iniyor. Ubuntu restart zamanı saç baş yolduruyor(workspace de tekrar fileları açmak vs cabası).
Berk Mesaj tarihi: Ocak 17, 2010 Mesaj tarihi: Ocak 17, 2010 düşün paper yazmaktan o derece sıkıldım pati okudum aqualia.
fizban Mesaj tarihi: Ocak 18, 2010 Konuyu açan Mesaj tarihi: Ocak 18, 2010 selam berk, uzun zaman olmustur senin psotunu gormeyeli ehu. proje "ubuntuda olacak" demese ugrasmam bile. hatta yaptigim seylerin bir kismi o kadar sacma ve scriptle yapsam o kadar kolay olacak tarzda ki, akliniz durur. ama ugrasiyorum simdilik, sikintimin sebebi de USB HID core driver blabla diyip aglamasiydi eski surum kernelin cok saygideger bilgisayarim karsisinda. baska bilgisayara gectim cozdum o meseleyi =P
fizban Mesaj tarihi: Ocak 19, 2010 Konuyu açan Mesaj tarihi: Ocak 19, 2010 selamlar, acil bir son dakiak sorusu timer yazmam lazim. normalde timerlar anladigim kadariyla su sekilde calisiyor; x'ten geriye say, 0 olunca sunu yap. ama ben boyle calissin istemiyorum, backgroundda surekli dongu halinde calissin istiyorum. fakat bu userlevel olmamali. istedigim sey aslinda tam olarak soyle: kernel'de bir fonksiyonum var, bu fonksiyon birseyler yapip birsey donduruyor.. bu fonksiyon timer'i baslatacak, ama timer nonblocking oldugundan isine devam edecek.. timer surekli calisacak da calisacak.. fikir var midir ?
aquila Mesaj tarihi: Ocak 19, 2010 Mesaj tarihi: Ocak 19, 2010 abi sen neler yapiyosun ya, kimyaci degil misin sen? ben boyle islerle ugrasmadim.
di Mesaj tarihi: Ocak 19, 2010 Mesaj tarihi: Ocak 19, 2010 sen hic biseyle ugrasmiyosun ki sukru =) bu tip konularin hepsinde saskinlik icerisinde izliyorum seni =P
sharky Mesaj tarihi: Ocak 19, 2010 Mesaj tarihi: Ocak 19, 2010 Sen galiba io bandwith limitation u hesaplamak icin o timer 'i istiyorsun. If so; timer yazacagina, direk hw timer i kullansan ?
ucunbiri Mesaj tarihi: Ocak 20, 2010 Mesaj tarihi: Ocak 20, 2010 fizban said: selamlar, acil bir son dakiak sorusu timer yazmam lazim. normalde timerlar anladigim kadariyla su sekilde calisiyor; x'ten geriye say, 0 olunca sunu yap. ama ben boyle calissin istemiyorum, backgroundda surekli dongu halinde calissin istiyorum. fakat bu userlevel olmamali. istedigim sey aslinda tam olarak soyle: kernel'de bir fonksiyonum var, bu fonksiyon birseyler yapip birsey donduruyor.. bu fonksiyon timer'i baslatacak, ama timer nonblocking oldugundan isine devam edecek.. timer surekli calisacak da calisacak.. fikir var midir ? geçen dönem operating systems dersi için scheduler yazmıştık biz de kernele. timerlar aslında interruptlar üzerinden çalışıyor kernelde, jiffies diye bi olay var interruptları sayan bir değer ve sürekli olarak aktif, yani sen istediğin zamanlarda bu jiffies değerini kontrol edip istediğin şeyi yaparsın buna göre, kernel bütün zamanlamayı jiffiese göre tutuyor. 2 farklı zamanda aldığın jiffies değerlerinin farkını bişeyle çarpınca milisaniye cinsinden geçen zamanı veriyordu ama o değeri hatırlamıyorum hehe jiffiese bir bak olmadı sor daha detaylı yazarım çıkmam gerek lakin.
Öne çıkan mesajlar