อ่าน 8 นาที
เธรดเอ็กซ์
ThreadX เป็น ระบบปฏิบัติการแบบเรียลไทม์ ฝังตัว (RTOS) ที่เขียนโปรแกรมส่วนใหญ่ด้วย ภาษา C เดิมทีเปิดตัวในปี 1997 ในชื่อ ThreadX เมื่อ Express Logic พัฒนาขึ้นเป็นครั้งแรก...
เธรดเอ็กซ์
| อีคลิปส์ เธรดเอ็กซ์ | |
|---|---|
![]() | |
| นักพัฒนา | Express Logic (รุ่นดั้งเดิม) Microsoft (รุ่นก่อนหน้า) Eclipse (รุ่นปัจจุบัน) |
| เขียนเป็น | ซี |
| สถานะการทำงาน | ปัจจุบัน |
| แบบจำลองแหล่งที่มา | โอเพนซอร์ส |
| การเผยแพร่ครั้งแรก | พ.ศ. 2540 |
| รุ่นล่าสุด | 6.4.1 [ 1 ] / 28 กุมภาพันธ์ 2024 |
| ที่เก็บข้อมูล |
|
| กลุ่มเป้าหมายทางการตลาด | ระบบฝังตัว , อินเทอร์เน็ตของสรรพสิ่ง |
| วิธีการอัปเดต | ติดตั้งใหม่ |
| ตัวจัดการแพ็กเกจ | ไม่มี |
| แพลตฟอร์มที่รองรับ | ARC , ARM , Blackfin, CEVA, C6x, MIPS , NXP , PIC , PowerPC , RISC-V , RX, SH, SHARC , TI , V850, Xtensa, x86 , Coldfireและอื่นๆ |
| ประเภทเคอร์เนล | ไมโครเคอร์เนลแบบฝังตัว , แบบกำหนดค่าได้ , แบบเรียลไทม์ , พิโคเคอร์เนล |
| ส่วนติดต่อผู้ใช้เริ่มต้น | การรองรับ UI แบบฝังตัว (GUIX) |
| ใบอนุญาต | ลิขสิทธิ์ MIT (ณ ปี 2023) |
| เว็บไซต์อย่างเป็นทางการ | threadx |
ThreadXเป็นระบบปฏิบัติการแบบเรียลไทม์ ฝังตัว (RTOS) ที่เขียนโปรแกรมส่วนใหญ่ด้วยภาษา Cเดิมทีเปิดตัวในปี 1997 ในชื่อThreadXเมื่อ Express Logic พัฒนาขึ้นเป็นครั้งแรก ต่อมาได้เปลี่ยนชื่อเป็นAzure RTOS (2019) หลังจาก ที่Microsoftซื้อ Express Logic [ 2 ]และล่าสุดได้เปลี่ยนชื่ออีกครั้งเป็นEclipse ThreadX (2023) หรือ "ThreadX" ในรูปแบบย่อ หลังจากเปลี่ยนมาใช้โมเดลโอเพนซอร์สฟรีภายใต้การดูแลของมูลนิธิ Eclipse [ 3 ]
ประวัติศาสตร์
ในปี พ.ศ. 2540 ThreadXได้รับการเผยแพร่และวางจำหน่ายครั้งแรกโดย Express Logic แห่งเมืองซานดิเอโก รัฐแคลิฟอร์เนียสหรัฐอเมริกา พัฒนาโดยWilliam Lamie [ 4 ] ซึ่งเป็นผู้เขียนดั้งเดิมของNucleusและPX5 RTOS และเป็นประธานและซีอีโอของ Express Logic ThreadX เวอร์ชัน 4 เปิดตัวในปี พ.ศ. 2544 เวอร์ชัน 5 เปิดตัวในปี พ.ศ. 2548 และเวอร์ชัน 6 เปิดตัวในปี พ.ศ. 2563 (เวอร์ชันหลักล่าสุด) FileX – ระบบไฟล์แบบฝังตัวสำหรับ ThreadX เปิดตัวในปี 1999 NetX – สแต็กเครือข่าย TCP/IP แบบฝังตัวสำหรับ ThreadX เปิดตัวในปี 2002 USBX – การสนับสนุน USB แบบฝังตัวสำหรับ ThreadX เปิดตัวในปี 2004 ThreadX SMP สำหรับสภาพแวดล้อมมัลติคอร์ SMP เปิดตัวในปี 2009 ThreadX Modules เปิดตัวในปี 2011 ThreadX ได้รับการรับรองความปลอดภัยจาก: TÜV IEC 61508ในปี 2013 และUL 60730ในปี 2014 GUIX – ส่วนต่อประสานผู้ใช้แบบฝังตัวสำหรับ ThreadX เปิดตัวในปี 2014
เมื่อวันที่ 18 เมษายน 2562 ไมโครซอฟต์ได้ซื้อ Express Logic ในราคาที่ไม่เปิดเผย และเปลี่ยนชื่อเป็นAzure RTOS [ 2 ]
เมื่อวันที่ 21 พฤศจิกายน 2023 ไมโครซอฟต์ประกาศว่า Azure RTOS จะเปลี่ยนไปใช้ โมเดล โอเพนซอร์สภายใต้การดูแลของมูลนิธิ Eclipseและทำให้โครงการนี้พร้อมใช้งานภายใต้ใบอนุญาต MITที่ อนุญาต [ 3 ] ด้วยมูลนิธิ Eclipse เป็นบ้านใหม่ Azure RTOS จึงเปลี่ยนชื่อเป็นEclipse ThreadXหรือ "ThreadX" ในรูปแบบย่อ
ภาพรวม
ชื่อ ThreadX หมายถึงเธรดที่ใช้เป็นองค์ประกอบที่สามารถเรียกใช้งานได้ โดยXแทนการ สลับบริบท
ThreadX มีคุณสมบัติเด่นหลายประการ ได้แก่ การจัดตารางเวลาแบบลำดับความสำคัญและการแทรกแซงก่อนเวลาการตอบสนองต่อการขัดจังหวะ ที่รวดเร็ว การจัดการหน่วยความจำการสื่อสารระหว่างเธรด การกีดกันซึ่งกันและกันการแจ้งเตือนเหตุการณ์ และการซิงโครไนซ์เธรดคุณลักษณะทางเทคโนโลยีที่สำคัญของ ThreadX ได้แก่ เกณฑ์การแทรกแซงก่อนเวลาการสืบทอดลำดับความสำคัญการจัดการตัวจับเวลาที่มีประสิทธิภาพ ตัวจับเวลาซอฟต์แวร์ที่รวดเร็ว การออกแบบ picokernelการเชื่อมโยงเหตุการณ์ และขนาดที่เล็ก (ขนาดเล็กที่สุดบน โปรเซสเซอร์ สถาปัตยกรรม ARMประมาณ 2 KB)
ThreadX รองรับ สภาพแวดล้อม โปรเซสเซอร์แบบมัลติคอร์ผ่านทางการประมวลผลแบบมัลติโปรเซสซิ่งแบบไม่สมมาตร (AMP) หรือแบบสมมาตร (SMP) การแยกเธรดแอปพลิเคชันด้วยหน่วยจัดการหน่วยความจำ (MMU) หรือหน่วยป้องกันหน่วยความจำ (MPU) นั้นมีให้ใช้งานในโมดูล ThreadX
ThreadX ได้รับการรับรองความปลอดภัยจากTÜVและULและเป็นไปตามมาตรฐาน Motor Industry Software Reliability AssociationและMISRA C
ThreadX เป็นรากฐานของ แพลตฟอร์ม อินเทอร์เน็ตของสิ่งต่างๆ (IoT) X-Ware ของ Express Logic ซึ่งรวมถึงการสนับสนุนระบบไฟล์แบบ ฝังตัว (FileX) การสนับสนุน UI แบบฝังตัว (GUIX) ชุดโปรโตคอลอินเทอร์เน็ต แบบฝังตัว (TCP/IP) การเชื่อมต่อคลาวด์ (NetX/NetX Duo) และการสนับสนุน Universal Serial Bus ( USB ) (USBX) ThreadX เป็นที่ชื่นชอบของนักพัฒนาและเป็น RTOS ที่ได้รับความนิยม[ 5 ]
ณ ปี 2017 ThreadX RTOS ได้กลายเป็นหนึ่งใน RTOS ที่ได้รับความนิยมมากที่สุดในโลก โดยมีการใช้งานในอุปกรณ์มากกว่า 6.2 พันล้านเครื่อง ซึ่งรวมถึงอุปกรณ์อิเล็กทรอนิกส์สำหรับผู้บริโภค อุปกรณ์ทางการแพทย์ แอปพลิเคชันเครือข่ายข้อมูล และ SoC [ 6 ]
เทคโนโลยี
ThreadX ใช้ขั้นตอนวิธีจัดกำหนดการแบบลำดับความสำคัญและแบบแทรกแซงล่วงหน้าด้วยคุณสมบัติเฉพาะที่เรียกว่าเกณฑ์การแทรกแซง เกณฑ์นี้ให้ความละเอียดมากขึ้นภายในส่วนวิกฤต ลดการสลับบริบท และเป็นหัวข้อของการวิจัยทางวิชาการเกี่ยวกับการรับประกันการจัดกำหนดการ[ 7 ]
ThreadX มีโครงสร้างเฉพาะที่เรียกว่าการเชื่อมโยงเหตุการณ์[ 8 ]ซึ่งแอปพลิเคชันสามารถลงทะเบียนฟังก์ชันเรียกกลับบนAPI ทั้งหมด ที่สามารถส่งสัญญาณเหตุการณ์ภายนอกได้ สิ่งนี้ช่วยให้แอปพลิเคชันเชื่อมโยงวัตถุสาธารณะต่างๆ เข้าด้วยกันใน ThreadX ทำให้เธรดหนึ่งสามารถบล็อกวัตถุหลายรายการได้
นอกจากนี้ ThreadX ยังมีเซมาฟอร์นับจำนวนมิวเท็กซ์ที่มีการสืบทอดลำดับความสำคัญได้ (ไม่บังคับ) แฟล็กเหตุการณ์คิวข้อความตัวจับเวลาซอฟต์แวร์ หน่วยความจำบล็อกขนาดคงที่ และหน่วยความจำบล็อกขนาดแปรผัน API ทั้งหมดใน ThreadX ที่บล็อกการทำงานบนทรัพยากรยังมีตัวเลือกการหมดเวลา (timeout) ด้วย
ThreadX รองรับโปรเซสเซอร์แบบมัลติคอร์ผ่านทาง AMP หรือ SMP นอกจากนี้ยังสามารถแยกโค้ดแอปพลิเคชันได้ผ่านส่วนประกอบ ThreadX Modules
ใบรับรองความปลอดภัย
ThreadX (รวมถึง FileX และ NetX Duo) ได้รับการรับรองล่วงหน้าจาก SGS-TÜV Saar ตามมาตรฐานความปลอดภัยดังต่อไปนี้: IEC 61508 SIL 4, IEC 62304 Class C, ISO 26262 ASIL DและEN 50128 SW-SIL 4
ThreadX (รวมถึง FileX และ NetX Duo) ได้รับการรับรองล่วงหน้าจาก UL ตามมาตรฐานความปลอดภัยต่อไปนี้: UL/ IEC 60730 , UL/ IEC 60335 , UL 1998
ThreadX ยังได้รับการรับรองตาม มาตรฐาน DO-178จากบริษัททางทหารและอวกาศต่างๆ อีกด้วย โดยได้รับการสนับสนุนจากไลบรารี Transport Layer Security (SSL/TLS) ยอดนิยม เช่นwolfSSL [ 9 ]
บรรจุภัณฑ์
ณ ปี 2017 ThreadX ได้ถูกบรรจุเป็นส่วนหนึ่งของ X-Ware IoT Platform ในรูปแบบซอร์สโค้ดเต็มรูป แบบ และไม่มีการจ่ายค่าลิขสิทธิ์ สำหรับการใช้ งาน
ส่วนประกอบหลัก
ส่วนประกอบหลักของ ThreadX ได้แก่:
เธรดเอ็กซ์
ThreadX คือระบบปฏิบัติการแบบเรียลไทม์ (RTOS)
ไฟล์เอ็กซ์และเลเวลเอ็กซ์
FileX เป็นระบบไฟล์ เสริม สำหรับ ThreadX รองรับ ระบบไฟล์ FAT12 , FAT16 , FAT32และexFATซึ่งระบบไฟล์ exFAT นั้นช่วยขยายขนาดไฟล์ FAT ให้เกิน 4 GBซึ่งมีประโยชน์สำหรับไฟล์วิดีโอขนาดใหญ่
นอกจากนี้ยังมีคุณสมบัติทนต่อความผิดพลาดและรองรับ สื่อหน่วย ความจำแฟลช NOR และ NAND โดยตรง ผ่านผลิตภัณฑ์ปรับระดับการสึกหรอของแฟลชเสริมที่เรียกว่า LevelX
กุยซ์
GUIX เป็นส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) ที่เป็นตัวเลือกสำหรับ ThreadX มันเป็น ระบบ กราฟิกคอมพิวเตอร์ 2 มิติที่รองรับอุปกรณ์แสดงผล หลายตัว ที่มีความละเอียดหน้าจอและความลึกของสีที่หลากหลาย มี วิดเจ็ตกราฟิก ที่กำหนดไว้ล่วงหน้ามากมายให้เลือกใช้ เครื่องมือโฮสต์ WYSIWYGสำหรับ Windows ที่ชื่อว่า GUIX Studio จะสร้างโค้ด C สำหรับ GUIX ให้ทำงานโดยอัตโนมัติในระหว่างการรันไทม์
เน็ตเอ็กซ์ดูโอ
NetX Duo เป็น ระบบเครือข่าย TCP/IP เสริม สำหรับ ThreadX รองรับทั้ง เครือข่าย IPv4และIPv6พร้อม ระบบรักษาความปลอดภัยเครือข่าย IPsecเลเยอร์ซ็อกเก็ต TCP และ UDP ให้บริการโดยTLS / DTLSโปรโตคอลเสริม ได้แก่ ARP, Auto IP, DHCP, DNS, DNS-SD, FTP, HTTP, ICMP, IGMP, mDNS, POP3, PPP, PPPoE, RARP, TFTP, SNTP, SMTP, SNMP และTelnetการสนับสนุนโปรโตคอล IoT Cloud ได้แก่ CoAP, MQTT และ LWM2M NetX Duo ยังรองรับThreadและ 6LoWPAN ด้วย ในปี 2017 ThreadX และ NetX Duo ได้รับการรับรองเป็นผลิตภัณฑ์ Thread [ 10 ]
ยูเอสบีเอ็กซ์
USBX เป็นระบบ Universal Serial Bus ( USB ) เสริมสำหรับ ThreadX รองรับทั้งโหมดโฮสต์/ดีไวซ์/ออนเดอะโก (OTG) การรองรับคอนโทรลเลอร์โฮสต์ประกอบด้วย EHCI, OHCI และคอนโทรลเลอร์โฮสต์ USB เฉพาะของแต่ละผู้ผลิต
อุปกรณ์นี้รองรับคลาสอุปกรณ์ USB ต่อไปนี้ : เสียง, Asix, CDC/ACM, CDC/ECM, DFU, GSER, HID, PIMA, เครื่องพิมพ์, Prolific, RNDIS และอุปกรณ์จัดเก็บข้อมูล
เทรซเอ็กซ์
TraceX เป็นซอฟต์แวร์เสริมสำหรับติดตั้งบนเครื่องโฮสต์ ซึ่งแสดงภาพกราฟิกของเหตุการณ์ต่างๆ ในระบบปฏิบัติการ ThreadX RTOS ต้องใช้ระบบปฏิบัติการWindows XPหรือเวอร์ชันที่ใหม่กว่า
พอร์ตที่รองรับ
ผลิตภัณฑ์ที่ใช้ ThreadX
ตัวอย่างผลิตภัณฑ์ที่ใช้ ThreadX:
- อุปกรณ์สวมใส่ขนาดเล็ก
- เครื่องพิมพ์อิงค์เจ็ทและอุปกรณ์ออลอินวันของHewlett-Packard [ 13 ]
- Intel Management Engine (ME) [ 14 ]
- ยานสำรวจอวกาศDeep Impact ของ NASA [ 15 ]
- คอมพิวเตอร์บอร์ดเดี่ยวตระกูล Raspberry Piรัน ThreadX เป็นไบนารีบล็อกบนหน่วยประมวลผลกราฟิก (GPU) ซึ่งควบคุมการบูต เริ่มต้น ซึ่งใช้ในการบูตระบบปฏิบัติการรอง เช่นLinuxและยังคงทำงานในบทบาทที่มีสิทธิ์มากขึ้นแม้หลังจากกระบวนการบูตเสร็จสิ้น[ 16 ]
- โทรศัพท์มือถือ AGM M11 [ 17 ]
ดูเพิ่มเติม
อ่านเพิ่มเติม
- เอกสารประกอบการใช้งาน ThreadX
- คู่มือผู้ใช้ ThreadX (2020) - ไมโครซอฟต์
- คู่มือผู้ใช้ FileX (2020) - ไมโครซอฟต์
- คู่มือผู้ใช้ GUIX (2020) - Microsoft
- คู่มือผู้ใช้ NetX (2020) - ไมโครซอฟต์
- คู่มือการใช้งานอุปกรณ์ USBX (2020) - ไมโครซอฟต์
- คู่มือผู้ใช้ USBX Host (2020) - Microsoft
- คู่มือผู้ใช้เพิ่มเติมสำหรับ USBX Host (2020) - Microsoft
- การเปรียบเทียบระบบปฏิบัติการแบบเรียลไทม์ (RTOS)
- รายงานประสิทธิภาพระบบปฏิบัติการแบบเรียลไทม์ (RTOS) ปี 2024 (FreeRTOS / ThreadX / PX5 / Zephyr) - Beningo Embedded Group
- การเปรียบเทียบระบบปฏิบัติการแบบเรียลไทม์ (RTOS) ปี 2013 (Nucleus / ThreadX / ucOS / Unison) - Embedded Magazine
ลิงก์ภายนอก
- เอสทีเอ็ม32
- บทนำเกี่ยวกับ ThreadX บน STM32 - ST
- สร้างเธรดสำหรับ STM32CubeIDE - ST
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ เธรดเอ็กซ์
ThreadX เป็น ระบบปฏิบัติการแบบเรียลไทม์ ฝังตัว (RTOS) ที่เขียนโปรแกรมส่วนใหญ่ด้วย ภาษา C เดิมทีเปิดตัวในปี 1997 ในชื่อ ThreadX เมื่อ Express Logic พัฒนาขึ้นเป็นครั้งแรก...
ประวัติศาสตร์
ในปี พ.ศ. 2540 ThreadX ได้รับการเผยแพร่และวางจำหน่ายครั้งแรกโดย Express Logic แห่งเมือง ซานดิเอโก รัฐแคลิฟอร์เนีย สหรัฐอเมริกา พัฒนาโดย William Lamie [ 4 ] ซึ่ง เป็นผู้เขียนดั้งเดิมของ Nucleus และ PX5 RTOS และเป็นประธานและซีอีโอของ Express Logic ThreadX...
ภาพรวม
ชื่อ ThreadX หมายถึง เธรด ที่ใช้เป็นองค์ประกอบที่สามารถเรียกใช้งานได้ โดย X แทนการ สลับบริบท
เทคโนโลยี
ThreadX ใช้ขั้นตอนวิธีจัดกำหนดการแบบลำดับความสำคัญและแบบแทรกแซงล่วงหน้าด้วยคุณสมบัติเฉพาะที่เรียกว่าเกณฑ์การแทรกแซง เกณฑ์นี้ให้ความละเอียดมากขึ้นภายในส่วนวิกฤต ลดการสลับบริบท และเป็นหัวข้อของการวิจัยทางวิชาการเกี่ยวกับการรับประกันการจัดกำหนดการ [ 7 ]
