Sylphide OS: Hệ điều hành đa dụng cho các máy tính dựa trên vi điều khiển
Sylphide OS là một dự án mã nguồn mở nhằm mang trải nghiệm máy tính cá nhân kiểu thập niên 80 lên các vi điều khiển (MCU) hiện đại. Không cần MMU hay Linux, hệ điều hành này hướng tới các bo mạch có khả năng xuất hình ảnh VGA/HDMI và hỗ trợ bàn phím, chuột, mang lại môi trường lập trình và sử dụng gần gũi với máy tính cổ điển.

Sylphide OS: Khi vi điều khiển trở thành "máy tính cá nhân" thời 8x
Giao diện tổng quan của Sylphide OS
Sylphide OS là một hệ điều hành đa dụng dành cho các máy tính được xây dựng từ vi điều khiển (MCU). Do thiếu đơn vị quản lý bộ nhớ (MMU), những bo mạch này thường không thể chạy các hệ điều hành hiện đại đầy đủ như Linux. Tuy nhiên, chúng đã đủ mạnh để cung cấp một môi trường rất giống với máy tính gia đình mà chúng ta từng biết trong thập niên 80.
"Retrocomputing" theo một hướng mới
Phong trào retrocomputing (máy tính hoài cổ) đang rất thịnh hành, nhưng nó có thể mang nhiều ý nghĩa khác nhau. Có người tập trung "phục chế máy tính cũ", chủ yếu để chơi và sưu tầm, thường cho rằng trình giả lập không đủ chân thực so với ký ức của họ. Những người khác, đam mê điện tử, lại quan tâm đến việc "tái tạo" máy tính cũ bằng linh kiện hiện đại (rẻ, dễ tìm) hoặc ngược lại, dùng chip đúng thời kỳ dành cho những ai đủ khả năng chi trả.
Cũng có đủ loại trình giả lập ở nhiều tầng khác nhau: thuần phần mềm, dựa trên FPGA, chính xác theo chu kỳ hoặc ở mức cao hơn. Bạn thậm chí có thể tìm thấy trình giả lập trực tuyến cho gần như mọi nền tảng trước năm 1990. Một số người phát triển phần mềm, thường là game, trên máy tính và công cụ hiện đại nhưng nhắm tới các máy tính cũ.
Dự án Sylphide OS đi theo một hướng khác: máy tính sử dụng vi điều khiển hiện đại. Chúng rẻ và ngày càng phổ biến, và chắc chắn sẽ còn nhiều lựa chọn hơn nữa trong tương lai.
Vi điều khiển và máy tính: Ranh giới đang mờ dần
Theo truyền thống, máy tính dựa trên bộ xử lý mạnh mẽ với nhiều thiết bị ngoại vi, quan trọng nhất là bàn phím, màn hình và chuột. Trong khi đó, vi điều khiển yếu hơn nhiều, chỉ gói gọn một lõi nhỏ với rất ít RAM và nhiều ngoại vi kiểu nhúng trên cùng một chip như UART, SPI, ADC, I2C, bộ đếm, bộ định thời, v.v.
Tuy nhiên, khi công nghệ phát triển, sự khác biệt đã bị xóa nhòa dần. Chúng ta bắt đầu thấy những vi điều khiển có thể xử lý thiết kế hệ thống "giống máy tính". Vấn đề không nằm ở sức mạnh tính toán (MCU đã rất mạnh từ lâu), mà ở khả năng xuất ra màn hình tiêu chuẩn như VGA hoặc HDMI, thay vì màn hình LCD nhỏ dựa trên SPI hay DSI.
Ở mức độ thấp hơn, đầu vào cũng là thách thức: nhiều MCU không có khả năng host USB, và khi có thì chỉ dùng được một cổng. Bạn cần ít nhất hai cổng cho bàn phím và chuột, lý tưởng là thêm cổng thứ ba cho USB key. Khi vượt qua được tất cả những điều đó, bạn vẫn có một môi trường bị giới hạn nghiêm ngặt (RAM thấp, ít màu). Cảm giác thực sự giống như những chiếc máy tính đầu thập niên 80/90, cả với người dùng lẫn lập trình viên.
Đây chính xác là kiểu "retrocomputing" mà tác giả theo đuổi.
Mạng (ethernet/wifi) không bắt buộc nhưng là một tính năng tuyệt vời nếu có. Tóm lại, dự án nhắm tới các nền tảng nằm giữa "bo mạch phát triển" (MCU không có màn hình/bàn phím/chuột) và máy tính bo mạch đơn (SBC) thường chạy được Linux.
Phần cứng mở và nền tảng FreeRTOS
Đây là phần cứng mở: bảng mạch PCB được thiết kế bằng KiCad, và mã nguồn cho cả phần mềm lẫn phần cứng có thể tìm thấy trên kho lưu trữ Mercurial tại freehackers.org.
Về kiến trúc, Sylphide OS sử dụng FreeRTOS — một nhân cấp thấp thường dùng trên nền tảng loại này, cung cấp các trợ giúp để chạy tác vụ và một số thủ tục cấp thấp. Hệ điều hành hướng tới sự linh hoạt để dùng được trên các nền tảng rất hạn chế (framebuffer nhỏ, màn hình đơn sắc, RAM tí hon) mà vẫn tận dụng được tính năng của các nền tảng cấu hình cao hơn.
Mã nguồn chủ yếu là C (cấp thấp, trình điều khiển, thư viện kết xuất) và C++ (cho giao diện đồ họa). Một số nền tảng dùng hợp ngữ cho trình điều khiển. C++ được dùng ở dạng rất hạn chế, chỉ những tính năng không làm phình phần mềm — bởi khi tài nguyên quá eo hẹp, bạn thực sự phải rất cẩn thận.
Trọng tâm của dự án là có một khung làm việc sạch và ổn định cùng các trình điều khiển phù hợp cho một vài nền tảng mục tiêu. Từ đầu, Sylphide OS đã được thiết kế để chạy trên nhiều nền tảng khác nhau và hiện có một số mục tiêu đã được hỗ trợ, mỗi nền tảng có trang riêng.
Dành cho ai và cách tham gia
Nếu bạn biết phần cứng sẵn có nào có thể dùng hệ điều hành như vậy, hãy liên hệ với tác giả. Tốt hơn nữa, bạn có thể tự bắt đầu một bản chuyển (port) — nhưng nên liên hệ trước.
Để theo dõi dự án, bạn có thể đăng ký blog của tác giả. Việc liên hệ diễn ra theo kiểu "cổ điển" qua IRC, kênh #freehackers trên mạng Libera. Nếu muốn đóng góp mã nguồn, bước đầu tiên là liên hệ với tác giả, sau đó có thể fork kho lưu trữ trên GitLab của freehackers.org.
Với những ai yêu thích điện tử nhúng và hoài niệm về thời kỳ máy tính cá nhân sơ khai, Sylphide OS là một dự án đáng để theo dõi — minh chứng rằng một hệ điều hành có giao diện đồ họa đầy đủ vẫn có thể sống trong vài chục kilobyte RAM.


