0

[Open Source] #58 - Puter: Hệ điều hành Internet mã nguồn mở với kiến trúc VFS và Service-Oriented trên Node.js

Việc chuyển đổi trình duyệt từ một công cụ xem tài liệu thành một môi trường thực thi ứng dụng là một bước tiến lớn của Web. Tuy nhiên, Puter còn đi xa hơn thế: nó xây dựng một hệ điều hành hoàn chỉnh (Internet OS) chạy ngay trên trình duyệt. Không chỉ dừng lại ở giao diện giả lập, Puter cung cấp một hệ sinh thái mạnh mẽ với hệ thống tệp tin ảo, khả năng phát triển ứng dụng và tích hợp AI đa mô hình.

Dưới góc độ kỹ thuật, Puter là một ví dụ điển hình về việc sử dụng JavaScript/Node.js để xây dựng hệ thống phân tán phức tạp, áp dụng các tư duy lập trình hiện đại như Trait-Oriented ProgrammingService-Oriented Architecture (SOA).

Github: https://github.com/HeyPuter/puter


🛠️ 1. Nền tảng công nghệ: Đa năng và Tối ưu hiệu suất

Puter tận dụng sức mạnh của hệ sinh thái JavaScript để tạo ra một môi trường làm việc nhất quán từ Client đến Server:

  • Runtime hiện đại: Yêu cầu Node.js v24+, cho phép dự án tận dụng những tính năng mới nhất của V8 engine và xử lý bất đồng bộ hiệu quả.
  • Cơ sở dữ liệu linh hoạt: Hỗ trợ song song SQLite (dành cho tự host nhẹ nhàng) và DynamoDB (thông qua AWS SDK) cho các hệ thống quy mô lớn, cần độ trễ thấp.
  • Frontend SPA (Single Page Application): Sử dụng jQuery và jQuery UI để xử lý các tương tác cửa sổ (windowing), kéo thả và quản lý desktop truyền thống một cách mượt mà mà không làm nặng trình duyệt.
  • Kiến trúc Monorepo: Toàn bộ logic từ GUI, Backend, CLI đến thư viện tiện ích putility đều nằm chung một kho mã nguồn, đảm bảo tính đồng nhất cực cao khi cập nhật hệ thống.

🏗️ 2. Trụ cột kiến trúc: VFS và SOA

Kiến trúc của Puter được thiết kế để trở thành một nền tảng (Platform) thay vì chỉ là một ứng dụng:

  • Virtual File System (VFS): Đây là linh hồn của hệ điều hành. VFS trừu tượng hóa lớp lưu trữ, cho phép người dùng gắn kết (mount) nhiều nguồn dữ liệu (Local disk, S3, v.v.) vào một cây thư mục duy nhất. Puter chia tệp tin thành hai tầng xử lý: HL (High-level) cho logic nghiệp vụ/quyền hạn và LL (Low-level) cho các thao tác vật lý trên database/disk.
  • BaseService & Trait-Oriented Programming: Puter không sử dụng kế thừa sâu (deep inheritance). Thay vào đó, mọi service backend đều kế thừa từ BaseService và đăng ký các khả năng thông qua thuộc tính IMPLEMENTS. Cách tiếp cận này giúp mã nguồn linh hoạt, dễ dàng mở rộng các tính năng như AI, Auth hay Filesystem mà không bị ràng buộc chặt chẽ.

🔄 3. Workflow: Quy trình xử lý thao tác tệp tin (Sequence Diagram)

Sơ đồ dưới đây mô tả cách Puter xử lý một yêu cầu đọc/ghi tệp tin từ giao diện người dùng đến lớp lưu trữ vật lý:

image.png


⚡ 4. Các kỹ thuật "Pro-level" trong Puter

  1. Type-Tagged Objects (TTO): Puter sử dụng ký hiệu $ làm tiền tố trong JSON (ví dụ: {"$": "fs-share"}) để định danh loại đối tượng. Kỹ thuật này giúp hệ thống tự động nhận diện và ánh xạ class/type mà không làm ô nhiễm không gian thuộc tính thực tế của dữ liệu.
  2. IPC (Inter-Process Communication): Các ứng dụng chạy bên trong Puter (Terminal, Editor) không trực tiếp gọi API. Chúng giao tiếp với "Virtual Kernel" của hệ điều hành thông qua IPC để yêu cầu tài nguyên, đảm bảo tính bảo mật và cô lập.
  3. Wisp Relay: Một kỹ thuật mạng cho phép Puter chuyển tiếp lưu lượng mạng (relay), giúp tạo ra các kết nối mạng ảo và bypass các giới hạn của trình duyệt về giao thức truyền tải.
  4. Multi-model AI Entry Point: Puter vừa refactor lại toàn bộ hệ thống AI, cung cấp một cổng vào duy nhất nhưng hỗ trợ đa dạng driver (OpenAI, Anthropic, Gemini), cho phép người dùng thay đổi "bộ não" của hệ điều hành một cách linh hoạt.

⚖️ 5. So sánh chiến lược

Tiêu chí Puter Internet OS Cloud Storage (S3/Drive) Web Desktops cũ
Bản chất Hệ điều hành hoàn chỉnh Lưu trữ tệp tin thuần túy Chỉ là giao diện giả lập
Môi trường Dev Có (Node.js, Editor, CLI) Không Rất hạn chế
Kiến trúc Service-Oriented (Trait) API-based Monolithic
Khả năng mở rộng Rất cao (Mod/Extension) Bị giới hạn bởi nhà cung cấp Khó chỉnh sửa

✅ Kết luận: Puter là tương lai của "Cloud Computing"?

Puter không chỉ là một dự án thú vị; nó là một bài học về System Design cấp độ cao trên nền tảng Web. Bằng cách kết hợp VFS, SOA và kỹ thuật TTO, dự án đã chứng minh rằng JavaScript hoàn toàn đủ sức mạnh để quản lý các hệ điều hành ảo hóa quy mô lớn.

Đối với các kỹ sư phần mềm, nghiên cứu Puter sẽ giúp bạn hiểu sâu về:

  • Cách xây dựng Hệ thống tệp tin ảo (VFS) bền bỉ.
  • Tư duy Modular hóa thông qua Trait-Oriented Programming.
  • Kỹ thuật xây dựng Middleware cho hệ điều hành trên nền tảng Web.

Hy vọng bản phân tích này mang lại cho bạn cái nhìn mới về tiềm năng của "Internet OS". Đừng quên Upvote và Follow mình để đón chờ những "kỳ quan" mã nguồn tiếp theo nhé!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí