2 puan yazan GN⁺ 2023-07-16 | 1 yorum | WhatsApp'ta paylaş
  • Uxn/Varvara, küçük bir sanal makineyi merkezine alan ve aynı uygulamayı birden çok sistemde çalıştırmayı sağlayan bir kişisel bilişim yığınıdır
  • Grafik uygulama barındırma gibi somut bir ihtiyaçtan doğmuş olsa da, herkesin yayın hedefi olarak benimseyebilmesi için açık şekilde sunulmuştur
  • Programlar kendi dili olan Uxntal ile yazılır ve dağıtım biçimi klasik konsol emülatörlerinde oyun ROM'larının paylaşılmasına benzer
  • Çalıştırmak için işletim sistemine uygun bir emülatör gerekir; VM ve I/O belirtimlerine bakarak emülatörü kendiniz de geliştirebilirsiniz
  • Aynı ROM'u masaüstünde, küçük elektronik cihazlarda, el tipi cihazlarda ve tarayıcıda çalıştırabilen bu yapı, küçük yazılımları uzun süre korumayı ve farklı ortamlara taşımayı kolaylaştırır

Uxn/Varvara'nın hedeflediği bilişim yığını

  • Uxn/Varvara ekosistemi, küçük bir sanal makineyi merkezine alan bir kişisel bilişim yığınıdır
  • Temel hedefi, aynı uygulamaların birden çok sistemde çalışabilmesini sağlamaktır
  • Tasarım, önce uygulama yaklaşımına dayanır ve grafik uygulama barındırma gibi somut bir ihtiyaca göre şekillendirilmiştir
  • Uxn, kendi dili olan Uxntal ile programlanır
  • Uxn programlarının dağıtımı, klasik konsol emülatörleri için oyun ROM'ları paylaşmaya benzer
  • Tasarım arka planına dair daha fazla bilgi uxn design notlarında bulunabilir

Emülatörler ve ROM çalıştırma

  • Uxn programlarını çalıştırmak için sisteme uygun bir emülatör gerekir
  • VM ve I/O belirtimlerine bakarak emülatörü kendiniz de geliştirebilirsiniz
  • Masaüstü için çapraz platform emülatörlerde SDL2 gerekir
    • Arch: sudo pacman -S sdl2
    • Ubuntu: sudo apt install libsdl2-dev
    • Void Linux: sudo xbps-install SDL2-devel
    • OSX: brew install sdl2
    • openBSD: doas pkg_add sdl2
  • ROM çalıştırmanın birkaç yolu vardır
    • Başlatıcı program kullanmak
    • .rom dosyasını emülatör penceresine sürüklemek
    • Terminalde bin/uxnemu path/to/example.rom komutunu çalıştırmak
  • Varsayılan emülatör kontrolleri işlev tuşları ve düğme eşlemeleriyle yapılır
    • F1: yakınlaştırma/uzaklaştırma geçişi
    • F2: hata ayıklayıcı geçişi
    • F3: ekran görüntüsü
    • F4: launcher.rom yükle
    • L-Ctrl: A, L-Alt: B, L-Shift: Select, Home: Start

Çalışabildiği ortamlar ve örnek programlar

  • Aynı Uxn ROM'u masaüstü bilgisayarlarda, küçük elektronik cihazlarda, modern el tipi cihazlarda ve tarayıcıda kullanılabilir
  • GBA, Nintendo DS, Playdate, DOS, PlayStation Vita, Raspberry Pi Pico, Teletype, ESP32, Amiga, iOS, STM32, IBM PC ve daha fazlasına portlar vardır; bazıları henüz tamamlanmamıştır
  • Örnek olarak sunulan Uxn programları oyuncaklar, oyunlar ve araçlar içerir
    • Oquonie: tuhaf bir dünya
    • Donsol: kart tabanlı dungeon crawler
    • Left: metin düzenleyici
    • Noodle: çizim programı
    • Orca: live coding ortamı
    • Nasu: sprite düzenleyici
    • Turye: yazı tipi düzenleyici
    • Catclock: masaüstü saati
    • Dexe: hex düzenleyici
    • Bicycle: etkileşimli REPL

Öğrenme kaynakları ve topluluk

1 yorum

 
GN⁺ 2023-07-16
Hacker News yorumları
  • Bu grubun her yönü ilginç. Teknede yaşayan dijital göçebeler ve yazdıkları her bir yazı, mümkün olduğunu hiç düşünmediğim bir hayata göz atmamı sağlıyor
    Siteye her girdiğimde kendimi bir tavşan deliğine düşmüş buluyorum. Başka bir hayatım olsaydı belki denemek isterdim
    https://100r.co/site/dry_toilet_installation.html

    • Gerçekten çok ilginç şeyler var. Kişisel olarak en çok güneş enerjili kollektörü sevdim; güneş ışığıyla yemek pişirip ekmek bile yapmaktan bahsediyor
      https://100r.co/site/solar_evacuated_tube_cooking.html
    • Bağımlılıklardan ve şişmiş işletim sistemlerinden bıktıkları için 9front'u da aktif olarak kullanıyorlar. 9front çok küçük, her şey statik derleniyor ve API'si de küçük
      Çapraz derleme de kolay; Ballesteros'un Plan 9 giriş kitabını okurken bilgisayar bilimi sezginiz de kendiliğinden gelişiyor
    • İlgilenirseniz Devine'in kişisel wikisi de var: https://wiki.xxiivv.com/site/home.html
      Gerçekten çok havalı içerik var
    • Böyle “gerçek dünya” sorunlarının hepsiyle uğraşırken bir yandan da sanal makine yapacak enerjiye, motivasyona ve zamana sahip olmaları gerçekten etkileyici
      Çeşitli gerçek donanımlarda çalışması da şaşırtıcı. Pek çok sanal makine projesi gördüm ama çoğu, başka bir bilgisayarın içinde izole kalmış gibi hissettiriyordu. Aşırı kısıtlar tasarımı bambaşka bir yöne itiyor gibi
    • YouTube'da yelkencilerin büyük bir alt kültürü var; ben de kişisel olarak bunu gerçeklerden kaçış içeriği olarak izliyorum
      Elbette YouTube algoritması YouTube algoritmasıdır, kapitalizm de kapitalizmdir; bu yüzden yelken videolarının önemli bir kısmı bikini içeriği de oluyor. Aynı zamanda küçük bir yelkenliyi onarma, dönüştürme ve yükseltme hayatı da büyük yer tutuyor. Fiberglas işlerinden güneş enerjisine, tuzdan arındırmaya kadar uzanıyor ve gerçekten ilginç bir hayata göz atma fırsatı veriyor
  • Bu ekibe gerçekten saygı duyuyorum. Daha basit bir bilişim modeli arayışına dair harika yazıları da birlikte okunmaya değer: https://100r.co/site/weathering_software_winter.html

  • 100r bana bugünlerde en çok kaybettiğimiz şeyi, yani cesareti hatırlatıyor
    Fırsatları değerlendirmekten, fikirleri keşfetmekten, biraz daha zor yolu seçmekten ve çetin meydan okumalara atılmaktan korkuyoruz. Riskten kaçınıyoruz ve yeni şeyler denemek istemiyoruz
    Yolculuklarını, teknede yaptıkları tüm işleri, koda yaklaşımlarını, özellikle de tek bir kişi için yazılım yapma fikrini okuyunca kendimi korkak gibi hissediyorum. Kodla, hayatla ve çevremle ilişkimde daha cesur olmak istiyorum
    Rek ve Devine'in tüm çalışmalarına minnettarım. Hiçbir şey yapmadan meşgul olmalarını görmek sevindirici

  • Mastodon'daki yazar hesabı (https://merveilles.town/@neauoire), Devine'in bilgisayar denen paralel bilişim evreninden çıkmış küçük projeler ve ekran görüntüleriyle dolu bir hazine sandığı
    Future of Coding'deki birlikte yapılan podcast bölümünü de şiddetle öneririm: https://futureofcoding.org/episodes/044.html ve şaşırtıcı canlı müzik ortamı Orca'yı ele alan devam bölümü de var: https://futureofcoding.org/episodes/045.html
    Bu kişi ve bu forumdaki eski Lisp kullanıcıları sayesinde alternatif bilişim ve niş programlama dilleri üzerine uzun süre düşündüm. Uxn yapılacaklar listemde; şu sıralar Forth ve Uxn'e girmeden önce Smalltalk ailesiyle meşgulüm :)

    • Yılı A'dan Z'ye 26 adet iki haftalık döneme bölen bir takvimden bahsetmişti; ama 26 kez iki hafta yalnızca 364 gün ediyor. Bu takvimde yılı 364 gün mü yapmak istiyorlar, 26 iki haftalık dönemin dışına fazladan bir gün mü ekliyorlar, yoksa başka bir yöntem mi kullanıyorlar merak ediyorum
    • Mastodon profilinde doğrudan they/them yazıyor
  • Bunlar ana sayfaya çıktığında her zaman seviniyorum. Yazdıkları yazılım da ilginç, ama tekneyi olabildiğince kendi kendine yeterli hale getirmek için yaptıkları işler gerçekten muazzam

  • Blame! hayranı var mı? https://wiki.xxiivv.com/site/devine_lu_linvega.html https://blame.fandom.com/wiki/Davine_Lu_Linvega

  • Siteleri arasında gerçekten sık sık baktığım yer tarif sitesi: https://grimgrains.com/site/home.html
    Yemek yapmayı sevenler için burada epey eğlenceli içerik var

  • Basic Block Versioning JIT çalışması ve son dönemde yjit ile tanınan Maxine Chevalier-Boisvert de yakın zamanda benzer bir fikri ele alıyor
    https://pointersgonewild.com/2023/02/24/building-a-minimalistic-virtual-machine/

  • Küçük ve zarif bir sanal makine tasarımı olduğu için buradaki pek çok kişinin ilgisini çekebilir

    • Şaşırtıcı olan, ne kadar pratik olduğu. Etrafta duran türlü eski donanımlara port etmişler ve bir sürü yazılım da yapmışlar
      Birinin web sayfasındaki tasarımdan ibaret değil; araçlar, oyunlar ve sanat üretiyorlar
    • Bu kavramı daha ana akım bir biçimde görmek isterseniz RISC-V'ye de bakmaya değer. Uzantısız temel bir RISC-V yorumlayıcı sanal makinesini uygulamak kabaca bir gün sürer
      Bizzat yaptım; onların komut kümesinden biraz daha karmaşık ama büyük bir fark yok. Gerçek derleyiciler tarafından hedeflenebildiği için pratikte her türlü yazılımı çalıştırabilir. Ancak giriş/çıkış vb. için sanal makine ortamının geri kalanını yine sağlamanız gerekir
  • Forth tabanlı retro tarzı oyun, düşük sistem gereksinimi ve neredeyse her yere port edilmiş sanal makine olması bakımından Z-Machine'e benziyor; ama daha çok piksellere yönelik
    Z80 benzeri komutlarla boğuşmadan ve sprite gösterimi sırasında garip döngü zamanlaması hataları yüzünden gerçek LCD'yi yakıp yakmayacağınızı düşünmeden GB tarzı oyunlar için iyi görünüyor