7 điểm bởi GN⁺ 2023-11-30 | 1 bình luận | Chia sẻ qua WhatsApp
  • Microsoft đã công bố mã nguồn mở cho ThreadX, hệ điều hành thời gian thực mà hãng có được thông qua thương vụ mua lại Express Logic.
  • ThreadX RTOS và bộ công cụ phát triển Azure RTOS bao gồm nó đã được đóng góp cho Eclipse Foundation và sẽ được biết đến với tên Eclipse ThreadX, đồng thời có thể được sử dụng theo giấy phép MIT
  • Có nhiều hệ điều hành thời gian thực (RTOS) khác nhau, nhưng ThreadX đang được sử dụng trên hơn 1,2 tỷ thiết bị và đóng vai trò cốt lõi trên nhiều thiết bị, bao gồm cả Raspberry Pi

Mối quan hệ giữa Raspberry Pi và ThreadX

  • ThreadX được dùng để vận hành công cụ quản lý bên trong chip của Intel và firmware của Raspberry Pi.
  • Trên Raspberry Pi 1, 2, 3, nó được gọi là bootcode.bin, còn trên Pi 4 và 400 là start*.elf; các tệp này có trong GitHub và Debian nhưng là các "blob" độc quyền chưa công khai mã nguồn
  • Nó chạy trên GPU VideoCore của Raspberry Pi, còn các lõi Arm hoạt động như thiết bị phụ thuộc kiểu slave vào GPU

Ý nghĩa của việc Microsoft mua lại và mã nguồn mở hóa ThreadX

  • Năm 2019, khi ThreadX tròn 21 tuổi, Microsoft đã mua lại Express Logic và đổi thương hiệu thành Azure RTOS
  • Thương vụ này có vẻ là phản ứng trước việc AWS tiếp quản FreeRTOS; nhà phát triển ban đầu William Lamie đã thành lập công ty mới và đang bán PX5OS, một RTOS "thế hệ thứ năm" có luồng tương thích POSIX
  • ThreadX là một sản phẩm đã được kiểm chứng, một số phiên bản đã nhận chứng nhận an toàn chức năng TÜV, điều này hấp dẫn với một số khách hàng

Ý kiến của GN⁺

  • Điểm quan trọng nhất của bài viết này là Microsoft đã mã nguồn mở ThreadX RTOS, đây là một thay đổi đáng kể có thể mang lại nhiều cơ hội hơn cho cộng đồng nhà phát triển và thúc đẩy đổi mới công nghệ.
  • Việc mã nguồn mở hóa mở ra khả năng ngăn xếp phần mềm của các thiết bị như Raspberry Pi có thể trở thành hoàn toàn mã nguồn mở, từ đó trở thành lựa chọn hấp dẫn hơn với nhiều người.
  • Đây là tin tức thú vị với cả người đam mê công nghệ lẫn giới chuyên môn, và được kỳ vọng sẽ tác động tích cực đến sự tăng trưởng và đổi mới của hệ sinh thái mã nguồn mở.

1 bình luận

 
GN⁺ 2023-11-30
Ý kiến Hacker News
  • "Azure RTOS" là thứ Microsoft vội mua sau khi Amazon thâu tóm FreeRTOS. Bill Lamie đã khởi động PX5 và đưa theo phần lớn nhân sự để làm một RTOS nhúng hạng nhẹ mới. Nếu Microsoft đi theo hướng này, có thể họ đang rời khỏi lộ trình của Azure RTOS và các nút IoT. ThreadX có hệ sinh thái lớn hơn FreeRTOS rất nhiều và còn chạy được trên nhiều thứ khác ngoài Raspberry Pi. Renesas từng cung cấp miễn phí nếu bạn mua SoC của họ.
  • Chứng nhận an toàn đặc biệt thú vị. Việc phát triển "phần mềm an toàn" đòi hỏi rất nhiều công sức. Có một RTOS vừa mã nguồn mở vừa có chứng nhận an toàn là điều khá tuyệt. Để duy trì chứng nhận, sẽ cần có đầu tư từ đâu đó. Hiểu các tiêu chuẩn an toàn, thiết lập đúng quy trình phát triển và duy trì chúng khi phần mềm thay đổi không hề đơn giản như chỉ viết và chạy mã. Đây không phải kiểu phát triển phần mềm có thể làm như một sở thích. Tôi hy vọng Microsoft sẽ tài trợ cho nỗ lực phát triển đó. FreeRTOS không có chứng nhận an toàn, nhưng SAFERTOS là một triển khai thương mại dùng cùng API và đã được chứng nhận an toàn.
  • Khi dùng ThreadX, tôi đã rất thích nó. Gọi nó là một "hệ điều hành" có phần hơi rộng lượng, vì nó thực chất là tập hợp các hàm cung cấp những thứ như interrupt service routine, tạo luồng và quản lý cấp phát bộ nhớ. ThreadX rất nhẹ và làm việc rất tốt. Tôi gọi các hàm như tx_thread_create, tx_malloc, rồi dùng queue, semaphore, mutex, v.v. Thật vui khi thấy ThreadX vẫn còn tồn tại. Tôi phải xử lý các vòng điều khiển điện năng/quạt/nhiệt theo thời gian thực, nên cần kiểm soát được chính xác thời điểm một số tác vụ xảy ra, đồng thời phải phản ứng bằng cách phát lệnh trong một khoảng thời gian nhất định sau khi phát hiện sự cố để giữ hệ thống an toàn.
  • Với những ai thắc mắc vì sao Azure lại có RTOS, Microsoft đã mua Express Logic và RTOS ThreadX của họ vào năm 2019. ThreadX được dùng trên nhiều vi điều khiển có tài nguyên rất hạn chế. Thương hiệu Azure dường như không có nhiều ý nghĩa ngoài việc các thiết bị IoT giao tiếp với đám mây.
  • Hiện chỉ có phiên bản hiện tại được đưa lên GitHub, và không thấy dấu vết của phiên bản VideoCore. Vẫn có hy vọng rằng Raspberry Pi Foundation có thể được cấp phép để công bố mã nguồn cho phiên bản riêng của họ.
  • Mã này tốt, nhưng tôi nghĩ có nhiều cách để tăng tính di động và làm nó thân thiện hơn với lập trình viên. Đặc biệt là phần mã assembly đã được port. Rất khó sửa các chỉ số vào cấu trúc dữ liệu, nên việc thay đổi struct không hề dễ. Nếu struct trong C và các chỉ số trong mã assembly không đồng bộ, hệ thống có thể sập. Nếu biến các chỉ số trong mã assembly thành macro thì sẽ dễ chỉnh sửa hơn. Chỉ cần tạo header cho assembly và header cho mã C, rồi định nghĩa struct bằng macro. Làm vậy sẽ giữ cho mã C và mã assembly luôn đồng bộ. Điểm trừ là phải định nghĩa struct bằng các macro đó, nhưng điều này chỉ áp dụng cho các struct được dùng trong assembly và C hoặc ở mức cao hơn.
  • Lâu rồi tôi mới lại nghe về ThreadX. Khoảng 20 năm trước tôi từng làm việc với một sản phẩm dựa trên ThreadX. Đó là một thiết bị ứng dụng không cần lập lịch thời gian thực hay khởi động nhanh, nhưng quyết định chọn ThreadX nằm ngoài phạm vi mà tôi có thể can thiệp. Thậm chí còn có một sản phẩm "cao cấp" riêng, chạy Linux nhúng và làm việc với nó thì dễ chịu hơn nhiều. Việc phát triển, debug và kiểm thử với ThreadX mất thời gian gấp 2 đến 3 lần, vì nhiều tiện ích tiện lợi mà người ta thường dựa vào ở kernel không tồn tại trong ThreadX. Tôi chỉ khuyến nghị dùng nó cho các thiết bị an toàn trọng yếu rất đơn giản.
  • Đây thực sự là một thương vụ lớn, và việc Eclipse Foundation quản lý nó là điều rất hay. Microsoft xứng đáng được ghi nhận và khen ngợi vì việc này. Họ có thành tích tốt nên tôi khá lạc quan, nhưng dự án này sẽ cần rất nhiều hỗ trợ liên tục. Giờ đây không còn là trách nhiệm riêng của Microsoft nữa, nhưng trong lúc mọi thứ vận hành, họ có thể vẫn sẽ phải gánh phần lớn hơn.
  • Khi tôi làm firmware cho Deskjet, ThreadX là một RTOS khá ổn. Hồi đó, các OS mã nguồn mở và đặc biệt là công cụ của chúng chưa phù hợp cho công việc. Nhưng hiện nay mọi thứ đã khác rất nhiều và đã có các lựa chọn thay thế.
  • ThreadX không phải mã nguồn mở. Mã nguồn thì được công khai, nhưng được cung cấp dưới dạng bản dùng thử, tức là theo giấy phép độc quyền.