7 คะแนน โดย GN⁺ 2023-11-30 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Microsoft เปิดซอร์ส ThreadX ซึ่งเป็นระบบปฏิบัติการแบบเรียลไทม์ที่บริษัทได้มาจากการเข้าซื้อ Express Logic
  • ชุดพัฒนา Azure RTOS ที่มี ThreadX RTOS รวมอยู่ด้วย ถูกบริจาคให้กับ Eclipse Foundation และจะเป็นที่รู้จักในชื่อ Eclipse ThreadX โดยสามารถใช้งานได้ภายใต้สัญญาอนุญาต MIT
  • แม้จะมีระบบปฏิบัติการแบบเรียลไทม์ (RTOS) อยู่หลากหลาย แต่ ThreadX ถูกใช้งานบนอุปกรณ์มากกว่า 1.2 พันล้านเครื่อง และมีบทบาทสำคัญในอุปกรณ์หลายประเภท รวมถึง Raspberry Pi

ความสัมพันธ์ระหว่าง Raspberry Pi กับ ThreadX

  • ThreadX ถูกใช้ในการขับเคลื่อน management engine ภายในชิปของ Intel และเฟิร์มแวร์ของ Raspberry Pi
  • บน Raspberry Pi 1, 2, 3 จะเรียกว่า bootcode.bin ส่วนบน Pi 4 และ 400 จะเรียกว่า start*.elf ซึ่งแม้จะถูกรวมอยู่ใน GitHub และ Debian แต่ก็เป็น proprietary "blob" ที่ไม่ได้เปิดเผยซอร์สโค้ด
  • มันทำงานอยู่บน VideoCore GPU ของ Raspberry Pi ขณะที่คอร์ Arm ทำงานเป็นอุปกรณ์ลูกที่ขึ้นกับ GPU

ความหมายของการเข้าซื้อ ThreadX และการโอเพนซอร์สโดย Microsoft

  • ในปี 2019 ซึ่งเป็นปีที่ ThreadX มีอายุครบ 21 ปี Microsoft ได้เข้าซื้อ Express Logic และรีแบรนด์เป็น Azure RTOS
  • การเข้าซื้อนี้ดูเหมือนเป็นการตอบโต้ต่อกรณีที่ AWS เข้ารับสิทธิ์ดูแล FreeRTOS ขณะที่ William Lamie ผู้พัฒนาดั้งเดิมได้ก่อตั้งบริษัทใหม่และกำลังจำหน่าย PX5OS ซึ่งเป็น RTOS "เจเนอเรชันที่ห้า" ที่มีเธรดแบบเข้ากันได้กับ POSIX
  • ThreadX เป็นผลิตภัณฑ์ที่ผ่านการพิสูจน์แล้ว และบางเวอร์ชันได้รับการรับรองด้าน Functional Safety จาก TÜV ซึ่งเป็นจุดที่น่าสนใจสำหรับลูกค้าบางกลุ่ม

ความเห็นของ GN⁺

  • ประเด็นสำคัญที่สุดของบทความนี้คือ Microsoft ได้นำ ThreadX RTOS มาเปิดเป็นโอเพนซอร์ส ซึ่งเป็นการเปลี่ยนแปลงสำคัญที่อาจมอบโอกาสมากขึ้นให้ชุมชนนักพัฒนาและช่วยเร่งนวัตกรรมทางเทคโนโลยี
  • การโอเพนซอร์สนี้ยังเปิดความเป็นไปได้ให้ซอฟต์แวร์สแตกของอุปกรณ์อย่าง Raspberry Pi อาจกลายเป็นโอเพนซอร์สได้อย่างสมบูรณ์ ทำให้อุปกรณ์เหล่านี้เป็นตัวเลือกที่น่าสนใจยิ่งขึ้นสำหรับผู้คนจำนวนมาก
  • การเปลี่ยนแปลงดังกล่าวถือเป็นข่าวที่น่าตื่นเต้นทั้งสำหรับผู้หลงใหลในเทคโนโลยีและมืออาชีพ และคาดว่าจะส่งผลเชิงบวกต่อการเติบโตและนวัตกรรมของระบบนิเวศโอเพนซอร์ส

1 ความคิดเห็น

 
GN⁺ 2023-11-30
ความคิดเห็นจาก Hacker News
  • "Azure RTOS" คือสิ่งที่ Microsoft รีบซื้อหลังจาก Amazon เข้าซื้อ FreeRTOS Bill Lamie ไปเริ่ม PX5 และพาคนเก่งส่วนใหญ่ไปทำงาน RTOS แบบฝังตัวขนาดเบารุ่นใหม่ ถ้า Microsoft ทำแบบนี้ ก็อาจหมายถึงการถอยออกจากโรดแมปของ Azure RTOS และโหนด IoT ก็ได้ ThreadX มี ecosystem ใหญ่กว่า FreeRTOS มาก และทำงานได้บนอย่างอื่นนอกจาก Raspberry Pi ด้วย Renesas เคยแจกให้ฟรีถ้าซื้อ SoC ของตัวเอง
  • การรับรองด้านความปลอดภัยน่าสนใจเป็นพิเศษ การพัฒนา "ซอฟต์แวร์ความปลอดภัย" ต้องใช้ความพยายามอย่างมาก การมี RTOS ที่เป็นโอเพนซอร์สและผ่านการรับรองด้านความปลอดภัยถือว่าเป็นเรื่องที่ดีมาก การรักษาสถานะการรับรองไว้น่าจะต้องมีการลงทุนจากที่ใดที่หนึ่ง การเข้าใจมาตรฐานความปลอดภัย การวางกระบวนการพัฒนาที่ถูกต้อง และการคงสิ่งเหล่านี้ไว้เมื่อซอฟต์แวร์เปลี่ยนแปลง ไม่ได้ง่ายเหมือนแค่เขียนโค้ดแล้วรัน มันไม่ใช่งานพัฒนาซอฟต์แวร์แบบที่ทำเป็นงานอดิเรกได้ หวังว่า Microsoft จะสนับสนุนเงินสำหรับความพยายามด้านการพัฒนานั้น FreeRTOS ไม่ได้ผ่านการรับรองด้านความปลอดภัย แต่ SAFERTOS ซึ่งเป็น implementation เชิงพาณิชย์ที่ใช้ API เดียวกันนั้นผ่านการรับรองแล้ว
  • ตอนที่เคยใช้ ThreadX ฉันชอบมันมาก การเรียกมันว่า "ระบบปฏิบัติการ" ก็ถือว่าใจกว้างอยู่ เพราะจริง ๆ แล้วมันคือชุดของฟังก์ชันที่ให้ความสามารถอย่าง interrupt service routine, การสร้างเธรด, การจัดการการจองหน่วยความจำ และอื่น ๆ ThreadX เบามากและเหมาะกับการทำงาน เรียกใช้ฟังก์ชันอย่าง tx_thread_create, tx_malloc แล้วใช้ queue, semaphore, mutex ฯลฯ ดีใจที่เห็นว่า ThreadX ยังอยู่รอด ฉันต้องทำลูปควบคุมพลังงาน/พัดลม/ความร้อนแบบเรียลไทม์ จึงต้องควบคุมได้ว่างานบางอย่างจะเกิดขึ้นเมื่อไร และหลังจากตรวจพบปัญหาแล้วต้องสั่งการตอบสนองภายในเวลาที่กำหนดหรือทำให้ระบบยังคงปลอดภัย
  • สำหรับคนที่สงสัยว่า Azure มี RTOS ไปทำไม Microsoft เข้าซื้อ Express Logic และ ThreadX RTOS ของบริษัทในปี 2019 ThreadX ถูกใช้บนไมโครคอนโทรลเลอร์จำนวนมากที่มีข้อจำกัดด้านทรัพยากรสูง การใส่แบรนด์ Azure ดูแทบไม่มีความหมายมากนัก นอกจากประเด็นที่ว่าอุปกรณ์ IoT จะสื่อสารกับคลาวด์
  • ตอนนี้มีแค่เวอร์ชันปัจจุบันอยู่บน GitHub และไม่เห็นร่องรอยของเวอร์ชัน VideoCore เลย ยังพอมีความหวังว่า Raspberry Pi Foundation อาจได้รับอนุญาตให้เผยแพร่ซอร์สโค้ดของเวอร์ชันของตัวเองได้
  • โค้ดนี้ดี แต่ฉันคิดว่ามีหลายวิธีที่จะทำให้มันพกพาได้มากขึ้นและเป็นมิตรกับโปรแกรมเมอร์มากขึ้น โดยเฉพาะส่วนของโค้ดแอสเซมบลีที่พอร์ตมา การแก้ดัชนีของ data structure ทำได้ยาก จึงทำให้การเปลี่ยนโครงสร้างไม่ง่าย ถ้า C struct กับดัชนีในโค้ดแอสเซมบลีไม่ตรงกัน ระบบอาจล่มได้ ถ้าทำดัชนีในโค้ดแอสเซมบลีให้เป็น macro ก็น่าจะแก้ไขได้ง่ายขึ้น แค่สร้าง header สำหรับแอสเซมบลีและ header สำหรับโค้ด C แล้วกำหนด struct ด้วย macro แบบนี้โค้ด C และโค้ดแอสเซมบลีก็จะซิงก์กัน ข้อเสียคือต้องนิยาม struct ด้วย macro นี้ แต่ก็จะใช้เฉพาะกับ struct ที่ถูกใช้ร่วมกันระหว่างแอสเซมบลีกับ C หรือระดับที่สูงกว่าเท่านั้น
  • ไม่ได้ยินเรื่อง ThreadX มานานมากแล้ว เมื่อประมาณ 20 ปีก่อนฉันเคยทำงานกับผลิตภัณฑ์ที่ใช้ ThreadX มันเป็นอุปกรณ์แอปพลิเคชันที่ไม่ต้องการทั้ง real-time scheduling หรือการบูตเร็วมากนัก แต่การตัดสินใจเลือก ThreadX ก็เกินกว่าระดับที่ฉันจะเข้าไปมีส่วนร่วมได้ ยังมีผลิตภัณฑ์ "ขั้นสูง" แยกต่างหากด้วย ซึ่งรัน embedded Linux และทำงานด้วยแล้วสนุกกว่า การพัฒนา ดีบัก และทดสอบด้วย ThreadX ใช้เวลานานกว่า 2 ถึง 3 เท่า เพราะ convenience features จำนวนมากที่มักพึ่งพาใน kernel ไม่มีอยู่ใน ThreadX ฉันแนะนำให้ใช้กับอุปกรณ์ที่เรียบง่ายและมีความสำคัญต่อความปลอดภัยเท่านั้น
  • นี่เป็นเรื่องใหญ่จริง ๆ และการที่ Eclipse Foundation มาดูแลก็น่ายินดี Microsoft สมควรได้รับคำชมและการยกย่องในเรื่องนี้ พวกเขามีประวัติที่ดีอยู่แล้ว จึงมองในแง่ดีมาก แต่โครงการนี้จะต้องการการสนับสนุนอย่างต่อเนื่องอีกมาก ตอนนี้ไม่ใช่ความรับผิดชอบของ Microsoft เพียงฝ่ายเดียวแล้ว แต่อาจต้องแบกรับภาระมากขึ้นในช่วงที่ทุกอย่างเริ่มขยับ
  • ตอนทำงานกับเฟิร์มแวร์ของ Deskjet นั้น ThreadX เป็น RTOS ที่ใช้ได้ดี ในเวลานั้นโอเพนซอร์ส OS และโดยเฉพาะเครื่องมือยังไม่เหมาะกับงาน แต่ตอนนี้สถานการณ์เปลี่ยนไปมากแล้ว และมีทางเลือกอื่น
  • ThreadX ไม่ใช่โอเพนซอร์ส ซอร์สโค้ดเปิดให้ดูได้ แต่เป็นเวอร์ชันสำหรับประเมินผล กล่าวคืออยู่ภายใต้ไลเซนส์แบบ proprietary