Yaz projem: Python ile Linux kurcalamaları
|
Yrd. Doc. Dr. Mehmet Yakut‘tan aldığım proje ARM işlemci kullanarak TCP/IP simulasyonuydu. Ancak yeterince hazır kod bulamamam, bulduklarımın ARM modeliyle simülasyona aktarımda yaşadığım sorunlardan dolayı projeyi sonuçlandıramadım. Hatta neredeyse adım atamadım. Proje internette kod ve doküman arama projesi gibi oldu benim için. Hocamla görüştüm. Hak verdi bana. Yanlız olduğumdan kaynaklı olduğunu söyledi bir de. Hatta Erkal‘a da tek başına bu tip bir bitirme tezi konusu vermiştik ondan da fazla verim alamadık dedi. Sonuç olarak projeye yazın devam et dedi. Ama farklı bir şekil verdik bu sefer. ARM kitiyle uğraşan bir tanıdığıyla görüştü ve o linux üzerinde bu konuda çalışmanın aynı şey olacağını söyledi. Sonuç olarak herhangi bir ARM kitine de linux gömülecek. Yani linux üzerinde çalışmalarımızı yapıp sonra kite doğrudan geçirebilirmişiz. Hocam yazın, linux üzerinde basit uygulamalarla başla, sonra bilgisayarı yönet, driver yaz, daha sonra kernel seviyesine inersin dedi. Ki bu projeyi gerçekleştirmek için kernel seviyesinde olmam lazım. Dil olarak ta C yerine Python kullanmak istedim. Bu proje gerçekleşmese bile (ki TCP/IP peşinde koşmayacağım artık) linux’u kernel seviyesinde biliyor olmak ve python öğrenmek bana çok şey katacak. Ben olsam beni işe alırım Şurada Python’u anlattım biraz. |
English Articles
Emrah Üstün
3 Temmuz, 2007 saat 04:19
[...] Yaz projem: Python ile Linux kurcalamaları [...]
4 Temmuz, 2007 saat 01:01
Bitirme tezinde kernel hackerlığı… Çok var mı sizin gibi? Post-doktoranızı düşünemiyorum bile!
4 Temmuz, 2007 saat 01:33
yok öyle büyütülecek seviyede değil. sadece embedded linuxla uğraşabilmek için kernelle oynayabiliyor olmak gerekiyormuş.
ayrıca bitirme tezi değil de öyle ismi olmayan boş zamanda uğraşacağım proje. bitirme ne zaman alırım kim bilir
4 Temmuz, 2007 saat 01:40
Anlıyorum. Hazırlık dönemindeki kaynak kodlarınızın da açık/erişilebilir olması dileğiyle… Ben de Python ile ilgileniyorum ve kod okumayı blog okumaktan daha çok seviyorum
4 Temmuz, 2007 saat 01:42
Tabi yaptığım herşeyi aktaracağım.
4 Temmuz, 2007 saat 01:48
Buna çok sevindim. Kolay gelsin. Mümkün olduğunca erken yayınlamanız dileğiyle.
13 Temmuz, 2007 saat 17:13
Arm altında python araştırırken bu sayfaya geldim, tarih yeni olduğu için yorumda bulunmak istedim.
TCP/IP simülasyonundan kasıt nedir, tam olarak anlamadım. Hali hazırda geliştirilmiş olan açık kaynak kodlu “TCP/IP stack” lere göz attınız mı? Mesela lwIP bunlardan en gelişmiş olanı. Çok güzel de ARM portları mevcut. Tamamıyla açık kaynak kodlu olduğu için bu tarz bir proje için güzel bir başlangıç noktası olabilir.
Linux kısmında ise dikkatimi birşey çekti. Bu proje için kernel seviyesine inmeniz gerektiğini vurgulamışsınız. Ama dil olarak Python’u seçmişsiniz. Bu ikisi nasıl bir araya gelecek?
Ama böyle bir proje ile uğraşacak olmak çok güzel birşey. Kim almaz ki işe
Başarılar dilerim.
13 Temmuz, 2007 saat 17:24
TCP/IP simülasyonu proteus’ta yapılacaktı. Ürettiğimiz veya verdiğimiz veri arm ile tcp/ip ‘ye dönüştürülecek. Paketlere ayıracak, crc ekleyecek, bayrakları ayarlayacak falan filan… Tavsiyeleriniz için teşekkür ederim bu arada.
Python’la kernel seviyesine inilebiliyor diye biliyorum ama öyle yapılmıyorsa da sanırım prototip çıkarıp C’ye de geçiş yapılabiliyor. Çok iyi bilmiyorum ben de. Esasen amaç öğrenmek zaten. Yapamazsam da önemli değil
13 Temmuz, 2007 saat 20:33
ek$i #1492206:
nesneye yonelik, interpreted oldugu, yuksek seviye veri yapilarini destekledigi, c, c++ gibi baska dillerden modulleri destekledigi ve cogu kullanici arabirim kutuphanelerine (mfc, tk, motif, x) arayuzu oldugu icin prototip implementasyonunda kullanisli bir programlama dili.
Yani python’da kurallara uyduğun sürece(yani bir işi yapan kod parçası varsa onu kullanıp kendin tasarlamadığın zaman Bkz:scripting language, en hası da MATLAB’dır bu tarz dillerin)diğer dillere(java,C++ vs.) dönüşüm gerçekleştirilebilmekte, yaklaşık o dille yazılmış en iyilenmiş(optimized) kod çıkışı verebilmektedir. Ancak alıntıda da belirtildiği gibi Python’un kullanım amacı makine kodlarına inmek değildir. C, C++ ‘ın işidir assembly üstü pilav. Python C, C++ gibi ikili makine dilleri üretmez, byte kodlarını Java gibi sanal makine üzerinde çalıştırır. Bu nedenle Python arayüzler arasında bir bağlaç olarak kullanılıp kernel ile uğraşacak kısımlar C,C++ ile yazılıp programa gömülür(Umarım böyledir
.
8 Ekim, 2007 saat 15:37
tcp simulasyonu cok agir bir konu, eger amac sifirdan tcp/ip stackini yerlestirmessek, ilkonce PIC seviyesindeki devrelerle baslabilirsin. Hem az kodda konuyu daha iyi anlar hemde sistem internallarindaki olmazsa olmazlarini daha iyi anlabilirsin.
bu konuda rfc/protokol duzeyinde bir implementasyon yapmak zaten basli basina bir is burda hangi duzeyde destekleyecegin ve ne sekilde bir cevap alacagin onemli. En basit olarak sadece ip ve icmp’ye ait bir kac tane ip yapisi ve buna bagli adresleme seklinde bir baslangic yapsan en dogru baslangic gibi olur. kolay gelsin.