Linux çekirdeği kullanarak mobil işletim sistemi nasıl yapılır?

Telefona ait tuşlar için, dokunmatik ekran için, ses entegresi için, GSM için vs. sürücü yazmak gerekli. Her cihazda farklı olan donanımları seçtim çünkü bu saydıklarımın çoğu zaman Android sürücüsünü Linux karşılamaz, üreticiler yazar.

İlk test telefonunuz için mesela sürücü yazabilirsiniz datasheet okuyarak ve elektronik hakkında bilginiz varsa takımca.
 
Baştan yapmak yerine var olanlara destek vermek daha iyi bir fikir olabilir. Ubuntu Touch'u diğer cihazlara portlayabilirsiniz.

Bir dağıtımı taban almayı düşündüm ama zaten güzel dağıtımlar bayağı var gereksiz olur. Kendi tabanımı yapmak daha mantıklı bence.
Telefona ait tuşlar için, dokunmatik ekran için, ses entegresi için, GSM için vs. sürücü yazmak gerekli. Her cihazda farklı olan donanımları seçtim çünkü bu saydıklarımın çoğu zaman Android sürücüsünü Linux karşılamaz, üreticiler yazar.

İlk test telefonunuz için mesela sürücü yazabilirsiniz datasheet okuyarak ve elektronik hakkında bilginiz varsa takımca.

O benim için pek sıkıntı olacağını sanmam. Android ve onun gibi dağıtımlara bakar bir şey öğrenirim. Ama nasıl başlayacağım onu bilmiyorum.
 
O benim için pek sıkıntı olacağını sanmam. Android ve onun gibi dağıtımlara bakar bir şey öğrenirim. Ama nasıl başlayacağım onu bilmiyorum.
Senin yerinde olsaydım bir tane Raspberry Pi veya türevi bir makine alırdım. Bu makineye GPIO ile düğme gibi basit şeyler bağlar ve sürücüsünü yazardım. Örneğin GPIO pinindeki düğmeye basıldığında X eyleminin yapılması için bir sürücü. Böyle böyle sürücü yazmayı ve bir yandan elektroniği öğrenirdim. Düşük seviyeli koda inmek zorundasın çünkü gömülü Linux alanına gireceksen.
 
Senin yerinde olsaydım bir tane Raspberry Pi veya türevi bir makine alırdım. Bu makineye gpıo ile düğme gibi basit şeyler bağlar ve sürücüsünü yazardım. Örneğin gpıo pinindeki düğmeye basıldığında X eyleminin yapılması için bir sürücü. Böyle böyle sürücü yazmayı ve bir yandan elektroniği öğrenirdim. Düşük seviyeli koda inmek zorundasın çünkü gömülü Linux alanına gireceksen.

Aslında evde gereksiz bir telefon var ona yapabilir miyim olur mu? Ve diyelim ki sürücü yazmayı öğrendim sonraki aşama ne olur? Ve sürücüyü yazmak için ne gibi kütüphaneler lazım? Projelere baksam öğrenir miyim?
 
Aslında evde gereksiz bir telefon var ona yapabilir miyim olur mu? Ve diyelim ki sürücü yazmayı öğrendim sonraki aşama ne olur? Ve sürücüyü yazmak için ne gibi kütüphaneler lazım? Projelere baksam öğrenir miyim?
Bir donanımın nasıl davrandığını bilmiyorsan o donanıma sürücü yazamazsın. Bundan dolayı da datasheet okuman gerekli, tabii datasheet okuyabilmek için de belirli bir elektronik bilgisi gerekiyor. Kütüphane kullanamazsın, sadece kernel API'lerini kullanabilirsin. printf() gibi C standart kütüphane fonksiyonlarını bile kullanamazsın, onun yerine kernel'e günlük yazmak için (dmesg ile erişilebilecek günlükler) printk() kullanabilirsin. Bu yaptığın sürücü ile Linux çekirdeği aynı seviyede çalışıyor, nasıl ki çekirdeğin kendisi C standart kütüphanesi kullanamıyorsa sen de kullanamazsın. Fakat bu geliştirdiğin sürücüler ile Linux çekirdeğine aslında katkıda bulunuyorsun ve CV'ne yazabileceğin bir beceri olmuş oluyor sürücü yazmak.

Eğer nasıl çalıştığını bildiğin bir donanım varsa onun sürücüsünü okuyabilir ve sürücü yazmaya ufak adımlar atabilirsin.
 
Bir donanımın nasıl davrandığını bilmiyorsan o donanıma sürücü yazamazsın. Bundan dolayı da datasheet okuman gerekli, tabii datasheet okuyabilmek için de belirli bir elektronik bilgisi gerekiyor. Kütüphane kullanamazsın, sadece kernel API'lerini kullanabilirsin. printf() gibi C standart kütüphane fonksiyonlarını bile kullanamazsın, onun yerine kernel'e günlük yazmak için (dmesg ile erişilebilecek günlükler) printk() kullanabilirsin. Bu yaptığın sürücü ile Linux çekirdeği aynı seviyede çalışıyor, nasıl ki çekirdeğin kendisi C standart kütüphanesi kullanamıyorsa sen de kullanamazsın. Fakat bu geliştirdiğin sürücüler ile Linux çekirdeğine aslında katkıda bulunuyorsun ve CV'ne yazabileceğin bir beceri olmuş oluyor sürücü yazmak.

Eğer nasıl çalıştığını bildiğin bir donanım varsa onun sürücüsünü okuyabilir ve sürücü yazmaya ufak adımlar atabilirsin.

Hocam burayı okursam bir şey öğrenir miyim?
 
Hocam burayı okursam bir şey öğrenir miyim?
Dostum dediğim gibi bu işle uğraşmak için önce datasheet okumayı bilmelisin. Donanımın hangi durumda nasıl davranacağını sana datasheet'ler söyler. Attığın faydalı bir referans tabii ki fakat önce elindeki donanımın nasıl çalıştığını bilmelisin sürücü yazmak için.
 
Dostum dediğim gibi bu işle uğraşmak için önce datasheet okumayı bilmelisin. Donanımın hangi durumda nasıl davranacağını sana Datasheet'ler söyler. Attığın faydalı bir referans tabii ki fakat önce elindeki donanımın nasıl çalıştığını bilmelisin sürücü yazmak için.

Bir sürü datasheet var hangisine bakayım hangisine bakmam daha iyi olur?
 

Yeni konular

Geri
Yukarı