Hệ sinh thái Uxn
(100r.co)- Uxn/Varvara là một stack điện toán cá nhân xoay quanh máy ảo nhỏ, cho phép chạy cùng một ứng dụng trên nhiều hệ thống
- Dù khởi đầu từ nhu cầu cụ thể là host các ứng dụng đồ họa, nó được công khai để bất kỳ ai cũng có thể chọn làm đích phát hành
- Chương trình được viết bằng ngôn ngữ riêng là Uxntal, và cách phân phối tương tự việc chia sẻ ROM game của các trình giả lập console cổ điển
- Để chạy cần có trình giả lập theo từng hệ điều hành; cũng có thể tự triển khai trình giả lập dựa trên đặc tả VM và I/O
- Với cấu trúc chạy cùng một ROM trên desktop, thiết bị điện tử nhỏ, máy cầm tay và trình duyệt, các phần mềm nhỏ dễ được duy trì lâu dài và chuyển sang nhiều môi trường
Stack điện toán mà Uxn/Varvara hướng tới
- Hệ sinh thái Uxn/Varvara là một stack điện toán cá nhân xoay quanh máy ảo nhỏ
- Mục tiêu cốt lõi là cho phép cùng một ứng dụng chạy trên nhiều hệ thống
- Thiết kế dựa trên tư duy ưu tiên triển khai, và được điều chỉnh cho nhu cầu cụ thể là host ứng dụng đồ họa
- Uxn được lập trình bằng ngôn ngữ riêng là Uxntal
- Việc phân phối chương trình Uxn tương tự cách chia sẻ ROM game cho các trình giả lập console cổ điển
- Có thể xem thêm bối cảnh thiết kế chi tiết trong ghi chú uxn design
Trình giả lập và chạy ROM
- Để chạy chương trình Uxn, cần có trình giả lập phù hợp với hệ thống
- Linux/BSD
- Mac/Plan9
- Windows
- Nhiều môi trường khác được tổng hợp trong danh sách trình giả lập awesome-uxn
- Cũng có thể tự triển khai trình giả lập bằng cách tham khảo đặc tả VM và I/O
- Trình giả lập đa nền tảng cho desktop cần 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:
- Có nhiều cách để chạy ROM
- Dùng chương trình launcher
- Kéo thả file
.romvào cửa sổ trình giả lập - Chạy
bin/uxnemu path/to/example.romtrong terminal
- Thao tác cơ bản với trình giả lập được thực hiện bằng phím chức năng và ánh xạ nút
F1: bật/tắt phóng to/thu nhỏF2: bật/tắt debuggerF3: chụp màn hìnhF4: tảilauncher.romL-Ctrl: A,L-Alt: B,L-Shift: Select,Home: Start
Môi trường có thể chạy và chương trình ví dụ
- Cùng một ROM Uxn có thể dùng trên máy tính desktop, thiết bị điện tử nhỏ, máy cầm tay hiện đại và trình duyệt
- Cũng có các bản port cho GBA, Nintendo DS, Playdate, DOS, PlayStation Vita, Raspberry Pi Pico, Teletype, ESP32, Amiga, iOS, STM32, IBM PC, v.v.; một số chưa hoàn thiện
- Các chương trình Uxn được cung cấp làm ví dụ bao gồm đồ chơi, game và công cụ
Tài liệu học tập và cộng đồng
- Tài liệu khởi đầu được cung cấp qua các liên kết sau
- Nếu cần trợ giúp, có thể hỏi tại #uxn trên
irc.libera.chathoặc Catlang Discord
1 bình luận
Ý kiến Hacker News
Mọi khía cạnh của nhóm này đều rất thú vị. Họ là những du mục số trên thuyền, và mỗi bài viết đều cho thấy thoáng qua một cuộc sống mà tôi chưa từng nghĩ là có thể tồn tại
Mỗi lần vào trang của họ là lại như rơi vào hang thỏ. Nếu sống một cuộc đời khác, có lẽ tôi cũng muốn thử
https://100r.co/site/dry_toilet_installation.html
https://100r.co/site/solar_evacuated_tube_cooking.html
Việc cross-compile cũng dễ, và khi đọc sách nhập môn Plan 9 của Ballesteros thì cảm giác về khoa học máy tính cũng dần hình thành một cách tự nhiên
Có rất nhiều nội dung tuyệt vời
Việc nó chạy được trên nhiều phần cứng thật khác nhau cũng đáng kinh ngạc. Tôi đã thấy nhiều dự án máy ảo, nhưng đa số đều có cảm giác bị cô lập bên trong một máy tính khác. Có vẻ như những ràng buộc cực đoan đẩy thiết kế theo một hướng hoàn toàn khác
Dĩ nhiên thuật toán YouTube vẫn là thuật toán YouTube và chủ nghĩa tư bản vẫn là chủ nghĩa tư bản, nên khá nhiều video đi biển cũng là nội dung bikini. Đồng thời, cuộc sống sửa chữa, cải tạo và nâng cấp những chiếc du thuyền nhỏ cũng chiếm tỷ trọng lớn. Từ làm việc với sợi thủy tinh đến điện mặt trời và khử muối nước, tất cả tạo nên một cái nhìn rất thú vị về một lối sống khác
Tôi thật sự rất kính trọng nhóm này. Cũng rất đáng đọc bài viết tuyệt vời của họ về hành trình đi tìm một mô hình tính toán đơn giản hơn: https://100r.co/site/weathering_software_winter.html
100r khiến tôi nhớ đến thứ mà dạo này chúng ta đánh mất nhiều nhất, đó là lòng can đảm
Chúng ta sợ nắm lấy cơ hội, khám phá ý tưởng, chọn con đường khó hơn một chút, và lao vào những thử thách khó nhằn. Chúng ta né tránh rủi ro và không muốn thử cái mới
Đọc về hành trình của họ, mọi việc họ làm trên thuyền, thái độ của họ với code, đặc biệt là khái niệm làm phần mềm cho một người duy nhất, khiến tôi thấy mình như một kẻ hèn nhát. Nó làm tôi muốn can đảm hơn trong cách mình đối diện với code, với cuộc sống và với môi trường xung quanh
Cảm ơn Rek và Devine vì mọi công việc của họ. Thật vui khi thấy họ bận rộn mà chẳng làm gì cả
Tài khoản tác giả trên Mastodon(https://merveilles.town/@neauoire) là cả một kho báu các dự án nhỏ và ảnh chụp màn hình đến từ vũ trụ tính toán song song là chiếc máy tính của Devine
Tôi cũng rất khuyên nghe tập podcast họ tham gia cùng Future of Coding: https://futureofcoding.org/episodes/044.html và còn có phần tiếp theo nói về Orca, một môi trường âm nhạc live tuyệt vời: https://futureofcoding.org/episodes/045.html
Nhờ người này và những người dùng Lisp lâu năm trên diễn đàn này mà tôi đã suy nghĩ rất lâu về điện toán thay thế và các ngôn ngữ lập trình ngách. Uxn vẫn nằm trong danh sách việc cần làm của tôi, còn dạo này tôi đang bận với nhánh Smalltalk trước khi đào sâu vào Forth và Uxn :)
Mỗi khi họ lên trang nhất tôi đều thấy vui. Phần mềm họ viết rất thú vị, nhưng những gì họ làm để con thuyền trở nên tự cung tự cấp nhất có thể còn đáng nể hơn nữa
Có ai là fan của Blame! không? https://wiki.xxiivv.com/site/devine_lu_linvega.html https://blame.fandom.com/wiki/Davine_Lu_Linvega
https://100r.co/site/pino.html
Trong các trang của họ, thứ tôi thật sự hay ghé xem là trang công thức nấu ăn: https://grimgrains.com/site/home.html
Ở đó có khá nhiều nội dung thú vị cho những ai thích nấu ăn
Maxine Chevalier-Boisvert, người nổi tiếng với công trình Basic Block Versioning JIT và gần đây là yjit, cũng đang bàn về những ý tưởng tương tự
https://pointersgonewild.com/2023/02/24/building-a-minimalistic-virtual-machine/
Đây là một thiết kế máy ảo nhỏ gọn và thanh lịch, nên nhiều người ở đây có lẽ sẽ thấy hứng thú
Nó không chỉ dừng ở một thiết kế nằm trên trang web của ai đó, mà thực sự tạo ra công cụ, trò chơi và nghệ thuật
Tôi đã tự làm rồi, và nó có hơi phức tạp hơn tập lệnh của họ một chút nhưng không khác biệt quá lớn. Vì compiler thật sự có thể nhắm tới nó, nên về cơ bản bạn có thể chạy gần như bất kỳ phần mềm nào. Dù vậy, bạn vẫn phải cung cấp phần còn lại của môi trường máy ảo cho I/O và những thứ tương tự
Một kiểu game retro dựa trên Forth, cấu hình thấp, máy ảo được port gần như khắp nơi, nên khá giống Z-Machine nhưng thiên về pixel hơn
Có vẻ rất hợp cho kiểu game phong cách GB, nơi bạn không phải vật lộn với tập lệnh kiểu Z80 hay lo một lỗi timing chu kỳ kỳ quặc lúc hiển thị sprite sẽ làm cháy màn LCD thật