ระบบนิเวศ Uxn
(100r.co)- Uxn/Varvara คือ สแตกการประมวลผลส่วนบุคคล ที่มี เครื่องเสมือนขนาดเล็ก เป็นศูนย์กลาง เพื่อให้แอปพลิเคชันเดียวกันทำงานได้บนหลายระบบ
- แม้จะเริ่มต้นจากความต้องการเฉพาะด้านในการโฮสต์แอปพลิเคชันแบบกราฟิก แต่ก็เปิดเผยให้ทุกคนนำไปใช้เป็น เป้าหมายสำหรับการรีลีส ได้
- โปรแกรมถูกเขียนด้วยภาษาเฉพาะของมันเองคือ Uxntal และรูปแบบการแจกจ่ายคล้ายกับการแชร์เกม ROM สำหรับอีมูเลเตอร์คอนโซลแบบคลาสสิก
- การรันต้องใช้อีมูเลเตอร์ตามระบบปฏิบัติการ และยังสามารถพัฒนาอีมูเลเตอร์ขึ้นเองจากสเปกของ VM และ I/O ได้
- โครงสร้างที่ใช้ ROM เดียวกันรันได้บนเดสก์ท็อป อุปกรณ์อิเล็กทรอนิกส์ขนาดเล็ก เครื่องพกพา และเบราว์เซอร์ ทำให้ซอฟต์แวร์ขนาดเล็กดูแลรักษาได้ยาวนานและย้ายข้ามสภาพแวดล้อมต่าง ๆ ได้ง่าย
สแตกการประมวลผลที่ Uxn/Varvara มุ่งไปสู่
- ระบบนิเวศ Uxn/Varvara คือ สแตกการประมวลผลส่วนบุคคล ที่มี เครื่องเสมือนขนาดเล็ก เป็นแกนกลาง
- เป้าหมายหลักคือทำให้แอปพลิเคชันเดียวกันสามารถทำงานได้บนหลายระบบ
- การออกแบบตั้งอยู่บนแนวคิด ให้ความสำคัญกับการลงมือสร้างก่อน และปรับให้เหมาะกับความต้องการเฉพาะในการโฮสต์แอปพลิเคชันแบบกราฟิก
- Uxn เขียนโปรแกรมด้วยภาษาเฉพาะของตัวเองคือ Uxntal
- การแจกจ่ายโปรแกรม Uxn คล้ายกับการแชร์ เกม ROM สำหรับอีมูเลเตอร์คอนโซลแบบคลาสสิก
- ดูเบื้องหลังการออกแบบเพิ่มเติมได้ในโน้ต uxn design
อีมูเลเตอร์และการรัน ROM
- หากต้องการรันโปรแกรม Uxn ต้องมี อีมูเลเตอร์ ที่ตรงกับระบบ
- Linux/BSD
- Mac/Plan9
- Windows
- สภาพแวดล้อมที่หลากหลายกว่านี้สรุปไว้ใน รายการอีมูเลเตอร์ awesome-uxn
- สามารถพัฒนาอีมูเลเตอร์ขึ้นเองได้จากสเปกของ VM และ I/O
- อีมูเลเตอร์ข้ามแพลตฟอร์มสำหรับเดสก์ท็อปต้องใช้ SDL2
- 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
- Arch:
- มีหลายวิธีในการรัน ROM
- ใช้โปรแกรม launcher
- ลากไฟล์
.romไปวางบนหน้าต่างอีมูเลเตอร์ - รัน
bin/uxnemu path/to/example.romจากเทอร์มินัล
- การควบคุมอีมูเลเตอร์พื้นฐานใช้ปุ่มฟังก์ชันและการแมปปุ่ม
F1: สลับการซูมF2: สลับดีบักเกอร์F3: จับภาพหน้าจอF4: โหลดlauncher.romL-Ctrl: A,L-Alt: B,L-Shift: Select,Home: Start
สภาพแวดล้อมที่รันได้และโปรแกรมตัวอย่าง
- Uxn ROM เดียวกันสามารถใช้ได้บนคอมพิวเตอร์เดสก์ท็อป อุปกรณ์อิเล็กทรอนิกส์ขนาดเล็ก เครื่องพกพารุ่นใหม่ และเบราว์เซอร์
- ยังมีพอร์ตสำหรับ GBA, Nintendo DS, Playdate, DOS, PlayStation Vita, Raspberry Pi Pico, Teletype, ESP32, Amiga, iOS, STM32, IBM PC และอื่น ๆ โดยบางส่วนยังไม่สมบูรณ์
- โปรแกรม Uxn ที่มีให้เป็นตัวอย่างครอบคลุมทั้งของเล่น เกม และเครื่องมือ
แหล่งเรียนรู้และชุมชน
- ลิงก์ต่อไปนี้คือแหล่งข้อมูลสำหรับเริ่มต้น
- หากต้องการความช่วยเหลือ สามารถสอบถามได้ที่ #uxn บน
irc.libera.chatหรือ Catlang Discord
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ทุกแง่มุมของกลุ่มนี้น่าสนใจมาก เป็นพวก ดิจิทัลโนแมดบนเรือ และแต่ละบทความก็เปิดให้เห็นชีวิตแบบที่ไม่เคยคิดมาก่อนว่าจะเป็นไปได้
ทุกครั้งที่เข้าเว็บนี้ก็เหมือนหล่นลงไปในโพรงกระต่าย ถ้าเป็นอีกชีวิตหนึ่งก็คงอยากลองใช้ชีวิตแบบนั้นดู
https://100r.co/site/dry_toilet_installation.html
https://100r.co/site/solar_evacuated_tube_cooking.html
การ cross-compile ก็ทำได้ง่าย และถ้าอ่านหนังสือแนะนำ Plan 9 ของ Ballesteros ไปเรื่อย ๆ ก็จะค่อย ๆ ซึมซับสัญชาตญาณทางวิทยาการคอมพิวเตอร์ไปด้วย
มีเนื้อหาดี ๆ มากมายจริง ๆ
ที่น่าทึ่งคือมันยังรันได้บนฮาร์ดแวร์จริงหลายแบบด้วย เคยเห็นโปรเจ็กต์ virtual machine มามาก แต่ส่วนใหญ่มักให้ความรู้สึกเหมือนถูกแยกขังอยู่ในคอมพิวเตอร์อีกเครื่องหนึ่ง ข้อจำกัดสุดขั้วน่าจะผลักดันให้การออกแบบเดินไปคนละทิศทางโดยสิ้นเชิง
แน่นอนว่า YouTube algorithm ก็ยังเป็น YouTube algorithm และทุนนิยมก็ยังเป็นทุนนิยม ดังนั้นวิดีโอการเดินเรือจำนวนไม่น้อยก็เป็นคอนเทนต์บิกินีไปด้วย แต่ขณะเดียวกัน ชีวิตที่ต้องซ่อม ดัดแปลง และอัปเกรดเรือยอชต์ลำเล็กก็เป็นอีกส่วนสำคัญ ตั้งแต่งานไฟเบอร์กลาสไปจนถึงพลังงานแสงอาทิตย์และระบบทำน้ำจืด ทำให้ได้เห็นชีวิตที่น่าสนใจมากจริง ๆ
นับถือทีมนี้มาก และควรอ่านบทความยอดเยี่ยมของพวกเขาเกี่ยวกับการค้นหา โมเดลการคอมพิวติ้ง ที่เรียบง่ายกว่าด้วย: https://100r.co/site/weathering_software_winter.html
100r ทำให้นึกถึงสิ่งที่พวกเราสูญเสียกันไปมากที่สุดในยุคนี้ นั่นคือ ความกล้า
เรากลัวที่จะคว้าโอกาส สำรวจไอเดีย เลือกทางที่ยากขึ้นอีกนิด และกระโจนใส่ความท้าทายที่จุกจิกซับซ้อน เราหลีกเลี่ยงความเสี่ยงและไม่ค่อยอยากลองสิ่งใหม่
เวลาได้อ่านเรื่องการเดินทางของพวกเขา งานทุกอย่างที่ทำบนเรือ ทัศนคติต่อโค้ด และโดยเฉพาะแนวคิดเรื่องการทำซอฟต์แวร์เพื่อคนเพียงคนเดียว มันทำให้รู้สึกว่าตัวเองขี้ขลาดไปเลย
อยากกล้าหาญขึ้นทั้งในวิธีที่ปฏิบัติต่อโค้ด ชีวิต และสภาพแวดล้อมรอบตัว ขอบคุณสำหรับผลงานทั้งหมดของ Rek และ Devine ดีใจที่ได้เห็นการยุ่งอยู่กับการไม่ทำอะไรเลย
บัญชีผู้เขียนบน Mastodon (https://merveilles.town/@neauoire) เป็นขุมทรัพย์ของโปรเจ็กต์เล็ก ๆ และภาพหน้าจอจาก จักรวาลการคอมพิวติ้งคู่ขนาน ของคอมพิวเตอร์ของ Devine
ขอแนะนำตอนพอดแคสต์ที่ทำร่วมกับ Future of Coding อย่างมาก: https://futureofcoding.org/episodes/044.html และยังมีตอนต่อที่พูดถึง Orca สภาพแวดล้อมดนตรีสดที่น่าทึ่งมาก: https://futureofcoding.org/episodes/045.html
คนคนนี้และผู้ใช้ Lisp รุ่นเก๋าในฟอรัมนี้ทำให้ผมคิดเรื่องการคอมพิวติ้งทางเลือกและภาษาโปรแกรมเฉพาะกลุ่มมาเป็นเวลานาน Uxn อยู่ในรายการสิ่งที่ต้องทำ และช่วงนี้กำลังยุ่งกับสาย Smalltalk ก่อนจะลงลึกไปใน Forth กับ Uxn :)
เวลาคนกลุ่มนี้ขึ้นหน้าแรกทีไรก็ดีใจทุกครั้ง ซอฟต์แวร์ที่เขียนก็น่าสนใจ แต่สิ่งที่น่าทึ่งจริง ๆ คือการทำให้เรือของพวกเขา พึ่งพาตนเอง ได้มากที่สุดเท่าที่จะทำได้
มีแฟน Blame! ไหม? https://wiki.xxiivv.com/site/devine_lu_linvega.html https://blame.fandom.com/wiki/Davine_Lu_Linvega
https://100r.co/site/pino.html
ในบรรดาเว็บของพวกเขา เว็บที่เช็กบ่อยจริง ๆ คือเว็บสูตรอาหาร: https://grimgrains.com/site/home.html
มีอะไรสนุก ๆ สำหรับคนชอบทำอาหารอยู่พอสมควร
Maxine Chevalier-Boisvert ซึ่งเป็นที่รู้จักจากงาน Basic Block Versioning JIT และ yjit ช่วงหลังก็กำลังพูดถึงไอเดียคล้าย ๆ กันอยู่เหมือนกัน
https://pointersgonewild.com/2023/02/24/building-a-minimalistic-virtual-machine/
เป็นงานออกแบบ virtual machine ที่เล็กและสง่างาม น่าจะถูกใจคนจำนวนมากที่นี่
ไม่ได้เป็นแค่ดีไซน์บนหน้าเว็บของใครสักคน แต่เอาไปทำเครื่องมือ เกม และงานศิลปะจริง ๆ
ผมลองทำมาแล้ว มันซับซ้อนกว่าชุดคำสั่งของพวกเขาเล็กน้อย แต่ไม่ได้ต่างกันมาก และเพราะมี compiler จริงรองรับเป็น target ได้ จึงแทบจะรันซอฟต์แวร์อะไรก็ได้ เพียงแต่ยังต้องจัดเตรียมสภาพแวดล้อม virtual machine ส่วนที่เหลือสำหรับ I/O และอย่างอื่นอยู่ดี
ฟังดูคล้าย Z-Machine ตรงที่เป็น เกมสไตล์เรโทร บนฐาน Forth ใช้สเปกต่ำ และพอร์ตได้แทบทุกที่ แต่เหมาะกับงานพิกเซลมากกว่า
ดูเหมาะกับเกมสไตล์ GB ที่ไม่ต้องไปสู้กับ instruction set แบบ Z80 และไม่ต้องคอยกังวลว่าจะเผา LCD จริงเพราะบั๊ก timing แปลก ๆ ระหว่างแสดงสไปรต์