ESP32'de gerçek Linux: MMU'lu yeni çip mikrodenetleyiciyi aştı
ESP32-S31, Sv32 MMU sayesinde tam Linux 6.18 çalıştırıyor. Port nasıl çalışıyor, 16 MiB bellekte neler yapılabiliyor ve sınırları ne, anlatıyoruz.

Bir mikrodenetleyici kartının seri konsoluna bağlanıp karşınızda esp32-s31 login: satırını görmek, birkaç yıl öncesine kadar pek mümkün değildi. ESP32 ailesi Wi-Fi'lı küçük projelerin, sensörlerin ve akıllı ev cihazlarının yaygın beyni olarak bilinir; üzerinde genellikle Linux değil, Espressif'in kendi gerçek zamanlı işletim sistemi katmanı çalışır. Şimdi ise ESP32-S31 adlı yeni çip, standart bir Linux çekirdeğini bellek yönetim birimiyle birlikte çalıştırıyor.
Hackaday'in 7 Kasım 2026 tarihli yazısı bu gelişmeyi "mikrodenetleyici ile tam bir işlemci çipi arasındaki sınırın bulanıklaşması" çizgisinde ele alıyor. Yazının bağlantı verdiği iki projeden biri Espressif'in kendi Linux deposu, öteki ise GrieferPig takma adlı bir geliştiricinin topluluk portu. Aşağıdaki teknik ayrıntılar bu ikinci projenin belgelerinden ve kod deposundaki açıklamalardan alındı.
Linux neden her çipte çalışmaz?
Bir Linux sisteminde her program, kendisine ait sanal bir adres alanında çalışıyormuş gibi davranır. Programın gördüğü adresler ile RAM'deki gerçek konumlar arasındaki çeviriyi işlemcinin bellek yönetim birimi (MMU) yapar. Bu çeviri bir tablo üzerinden yürür: işletim sistemi tabloyu doldurur, MMU her bellek erişiminde tabloya bakar.
Bu düzenin üç sonucu var. Birincisi, bir programın çökmesi ya da başka bir programın belleğine uzanması çekirdeği ve diğer süreçleri etkilemez; yetkisiz erişim donanım düzeyinde yakalanır. İkincisi, çok sayıda hazır Linux yazılımının dayandığı süreç çoğaltma mantığı rahat işler. Üçüncüsü, bellek parça parça ve gerektiğinde dağıtılabilir. Küçük mikrodenetleyicilerin çoğunda MMU yoktur; ona "adres çevirmeyen" basit bir bellek koruma birimi eşlik eder ya da hiçbir şey eşlik etmez.
MMU'suz çiplere Linux götürmek yine de denenmiş bir yoldur. Çekirdeğin "nommu" kipi bu iş için vardır; ancak her şey tek bir ortak adres alanında yaşar, süreçler birbirinden korunmaz ve standart yazılımın önemli bir kısmı olduğu gibi çalışmaz. Bu yüzden "gerçek Linux" ifadesi, tam da MMU'lu çalışmayı anlatır.
ESP32-S31'de değişen ne?
Port belgelerine göre ESP32-S31, 32 bitlik RISC-V mimarisiyle iki yüksek performanslı çekirdek taşıyor ve RISC-V'nin Sv32 adlı sayfa tablosu düzenini destekliyor. Hackaday'in aktardığına göre çip Wi-Fi 6 ve gigabit Ethernet de sunuyor. Projenin güç yönetimi tablosunda işlemci hızı için 80, 160, 240 ve 320 MHz basamakları listeleniyor.
| Özellik | Değer |
|---|---|
| Çekirdek sürümü | Linux 6.18 |
| Önyükleme zinciri | U-Boot, OpenSBI, ardından çekirdek |
| Kullanıcı alanı | Buildroot ile hazırlanan, BusyBox kabuklu sistem |
| Test edilen bellek | 16 MiB flash, 16 MiB PSRAM |
| Çekirdek sayısı | İki (ikisinde de Linux koşuyor, SMP) |
| Dosya sistemi | Salt okunur SquashFS, üstünde yazılabilir JFFS2 katmanı |
| Kablosuz | Wi-Fi istasyon kipi, BTstack ile Bluetooth |
Veriler, GrieferPig'in proje belgelerindeki özellik tablosundan alınmıştır.
Bellek bu kadar azken nasıl sığıyor?
16 MiB, bir masaüstü Linux'u için gülünç bir rakam; ama gömülü Linux dünyasında böyle sistemler uzun zamandır var. İş, çekirdeği ve sistemi küçük tutmakta. Projenin dikkat çeken tercihlerinden biri XIP (yerinde çalıştırma): kod, RAM'e kopyalanmak yerine doğrudan flash bellekten okunarak çalıştırılıyor.
Ne çalışıyor, ne çalışmıyor?
Projenin tablosunda çift çekirdek, kalıcı dosya sistemi, Wi-Fi istasyon kipi ve Bluetooth "dahil" olarak işaretli. I2C, SPI, SD kart, USB aygıt kipi ve Ethernet gibi pek çok çevre birimi "uygulandı" düzeyinde; yani sürücü var ama sınırlar olabilir. Wi-Fi'ın erişim noktası kipi ise yok: çip başka bir cihaza bağlanabiliyor, ama kendisi ağ yayını yapamıyor. Proje sahibi de bunun deneysel olduğunu ve üretimde kullanılmaması gerektiğini açıkça yazıyor.
Yapay zekâ yardımıyla yazılmış bir port
İlginç bir ayrıntı: GrieferPig, depoda sıkça sorulan sorular bölümünde çalışmanın büyük ölçüde yapay zekâ ajanlarının yardımıyla ilerlediğini açıkça kabul ediyor. Kendi anlatımına göre ajana "ortak SRAM tamponu ve kesme çanı kullanan bir iletişim katmanı yaz" gibi yönlendirmeler vermiş; çipin kâğıt üzerindeki belgelerle uyuşmayan davranışlarını ise kendisi fark etmiş. Örnek olarak, resmî belgenin tersine mcliccfg yazmacının bazı bitlerinin yazılabilir olduğunu veriyor. Yani hızlı ilerlemenin nedeni kısmen araçlar, ama donanımı sınayan insan hâlâ işin merkezinde.
Sırada ne var?
Açık kalan sorular belli. Bu portun ne kadar bellek ve güç harcadığına dair bağımsız bir ölçüm yazıda ve belgelerde yok; önyükleme süresi de belgelenmiş değil. Resmî Espressif Linux desteğinin ne zaman bu topluluk çalışmasının düzeyine ulaşacağı da belirsiz. Yine de fikir artık ispatlanmış durumda: bir mikrodenetleyici kartında MMU'lu, çok çekirdekli, ağa bağlanabilen bir Linux çalışabiliyor. Bundan sonrası, bu kartlarda hangi yazılımların gerçekten işe yarayacağını göstermek.
Kaynak: Yudum — https://www.yudum.net/haber/esp32-s31-uzerinde-gercek-linux-mmu-ile-16-mib-bellekte.html — Yazdırma tarihi:















