스레드X

ThreadX
Azure RTOS 스레드X
Windows Azure logo.png
개발자표현 논리(원본)
마이크로소프트
기록 위치C
작업 상태현재
소스 모델소스 사용 가능한 소프트웨어
초기 릴리즈1997; 25년 전 (1998년)
최신 릴리즈6.1.9[1] / 2021년 10월 18일; 4개월(2021-10-18)
리포지토리github.com/azure-rtos/threadx/
마케팅 대상임베디드 시스템, IoT: 센서, 장치, 에지 라우터, 게이트웨이
업데이트 방법재설치
패키지 관리자없음
플랫폼ARC, ARM, Blackfin, CEVA, C6x, MIPS, NXP, PIC, PowerPC, RISC-V, RX, SH, SH, SHARC, TI, V850, Xtensa, X86, Coldfire, 기타
커널형임베디드, 결정론적, 실시간 마이크로커널, 피코커넬
체납
사용자 인터페이스
내장 UI 지원(GUIX)
면허증소유권
공식 웹사이트azure.microsoft.com/en-us/services/rtos

Azure RTOS ThreadX는 결정론적이고 내장형 실시간 운영 체제(RTOS)로 대부분 C 언어로 프로그래밍되어 있다.

개요

스레드X는 원래 미국 캘리포니아주 샌디에이고의 익스프레스 로직에서 개발하고 판매했다.스레드X의 저자(그리고 1990년 핵 RTOS의 원저자)는 익스프레스 로직의 사장 겸 CEO이기도 [2]한 윌리엄 라미이다.

익스프레스 로직은 2019년 4월 18일 마이크로소프트가 미공개 금액으로 구매했다.[3]

스레드X라는 이름은 실행 가능한 요소로 사용되는 스레드로부터 파생되었으며, 문자 X컨텍스트 스위칭, 즉 스레드를 전환한다.ThreadX는 우선 순위 기반, 사전 예약, 빠른 인터럽트 응답, 메모리 관리, 읽기 간 통신, 상호 제외, 이벤트 알림 및 스레드 동기화 기능을 제공한다.ThreadX의 주요 구별되는 기술 특성은 선점-임계, 우선 순위 상속, 효율적인 타이머 관리, 빠른 소프트웨어 타이머, 피코커넬 설계, 이벤트 체인링 및 소형 크기: ARM 아키텍처 프로세서의 최소 크기는 약 2KB이다.

ThreadX는 비대칭 멀티프로세싱(AMP) 또는 대칭 멀티프로세싱(SMP)을 통해 멀티코어 프로세서 환경을 지원한다.MMU(메모리 관리 장치) 또는 MPU(메모리 보호 장치) 메모리 보호를 통한 애플리케이션 스레드 분리를 스레드X 모듈에서 사용할 수 있다.

ThreadX는 Technischer Uberwachungsverein(TUV, 영어:기술 검사 협회(Technical Inspection Association) 및 UL(이전의 Insuriters Laboratory)이며, MISRA C를 준수한다.

ThreadX is the foundation of Express Logic's X-Ware Internet of things (IoT) platform, which also includes embedded file system support (FileX), embedded UI support (GUIX), embedded Internet protocol suite (TCP/IP) and cloud connectivity (NetX/NetX Duo), and Universal Serial Bus (USB) support (USBX).스레드X는 개발자들로부터 높은 평가를 받았고 매우 인기 있는 RTOS이다.[4]마케팅 조사기관인 VDC리서치에 따르면, 2017년 현재 스레드X RTOS는 가전, 의료기기, 데이터 네트워킹 애플리케이션, SoCs 등 62억 개 이상의 기기에 배치되어 세계에서 가장 인기 있는 RTOS 중 하나가 되었다.[5]

스레드X는 소스코드가 제공되고 라이선스로열티가 없는 마케팅 모델을 이용해 유통된다.

지원되는 플랫폼

  • 아날로그 장치
    • 블랙핀
    • CM4xx
    • 정밀 마이크로컨트롤러
    • 샤크
    • ULP 마이크로컨트롤러
    • ARM7
    • ARM9
    • ARM 코텍스-A
    • ARM 코텍스-R
    • ARM 코텍스-M
    • ARM Cortex-A 64비트
    • ARMv8M TrustZone
  • 캐던스
    • Xtensa
  • CEVA
    • 티클라이트-III
  • 인텔
    • 니오스 2세
    • 사이클론
    • 아리아 10호
    • x86
  • MIPS
    • MIPS32 4Kx
    • MIPS32 14Kx
    • MIPS32 24Kx
    • MIPS32 34Kx
    • MIPS32 74Kx
    • MIPS32 1004Kx
    • 인터랩티브
    • microaptiv
    • 프롭티브
    • 엠클래스
  • NXP
    • 콜드파이어+/콜드파이어
    • 아이엠엑스
    • 키네티스
    • LPC
    • 파워PC
    • S32
  • 세인트
    • STM32F0
    • STM32F1
    • STM32F2
    • STM32F3
    • STM32F4
    • STM32F7
    • STM32L
  • 실리콘 랩스
    • 도마뱀붙이
    • 자이언트 게코
    • 자이언트 게코 S1
    • 해피 게코
    • 제이드 게코
    • 레오파드 게코
    • 펄 게코
    • 타이니 게코
    • 원더 게코
    • 제로 게코
  • ARC
    • ARC 600
    • ARC 700
    • 아크 EM
    • ARC HS
  • 시린크스
    • 마이크로블레이즈
    • 진크 7000
    • 진크 울트라스케일+

역사

스레드X는 1997년에 처음 도입되었다.스레드X4는 2001년에 도입되었다.스레드X5는 2005년에 도입되었으며, 2020년 현재 최신 버전이다.

FileX – ThreadX용 내장 파일 시스템은 1999년에 도입되었다.

NetX – ThreadX용 내장 TCP/IP 네트워킹 스택은 2002년에 도입되었다.

USBX – ThreadX를 위한 내장 USB 지원은 2004년에 도입되었다.

SMP 멀티 코어 환경용 ThreadX SMP는 2009년에 도입되었다.

스레드X 모듈은 2011년에 도입되었다.

ThreadX는 다음에 대한 안전 인증을 획득했다.2013년에는 TUV IEC 61508, 2014년에는 UL 60730.

GUIX – 스레드X의 내장 UI는 2014년에 도입되었다.

익스프레스 로직은 2019년 4월 18일 마이크로소프트가 미공개 금액으로 구매했다.[3]

기술

ThreadX는 선점-임계라는 독점적 기능을 가진 우선 순위 기반의 선제적 스케줄링 알고리즘을 구현한다.후자는 중요한 부분 내에서 더 세부적인 내용을 제공하고, 상황 전환을 줄이며, 스케줄링 보장에 관한 학문적 연구의 대상이 되어 왔다.[6]

ThreadX는 응용 프로그램이 외부 이벤트를 신호할 수 있는 모든 API(응용프로그램 인터페이스)에 콜백 기능을 등록할 수 있는 이벤트 체인이라는 독특한 구조를 제공한다.[7]이것은 하나의 스레드가 여러 객체에서 효과적으로 차단할 수 있도록 응용프로그램이 스레드X에서 다양한 공용 객체를 체인 방식으로 연결하도록 돕는다.

또한 스레드X는 카운팅 세마포어, 선택적 우선 상속이 있는 뮤텍스, 이벤트 플래그, 메시지 큐, 소프트웨어 타이머, 고정 크기 블록 메모리 및 가변 크기 블록 메모리를 제공한다.또한 리소스에서 차단하는 ThreadX의 모든 API에는 옵션 시간 초과가 있다.

ThreadX는 AMP 또는 SMP를 통해 멀티 코어 프로세서 지원을 제공하며, 응용 프로그램 코드 분리는 ThreadX Modules 구성 요소를 통해 이용할 수 있다.

주요 구성 요소

ThreadX RTOS 구성 요소:

  1. 임베디드 파일 시스템
  2. 내장된 그래픽 사용자 인터페이스
  3. 임베디드 네트워킹
  4. 내장 USB
  5. 안전인증
  6. 포장

임베디드 파일 시스템

FileX는 ThreadX를 위한 내장형 파일 시스템이다.FileX는 FAT12, 16, 32exFAT 형식을 지원한다.후자는 FAT 파일 크기를 4GB 이상으로 확장해 동영상 파일에 특히 유용하며 마이크로소프트(MS)에서 직접 라이센스를 받아야 사용할 수 있다.FileX는 또한 내결함성을 제공하며 LevelX라는 플래시 웨어 레벨링 제품을 통해 NOR과 NAND 플래시 메모리 미디어를 직접 지원한다.

내장된 그래픽 사용자 인터페이스

GUIX는 스레드X를 위한 내장 그래픽 사용자 인터페이스(GUI)이다.GUIX는 ThreadX를 실행하는 임베디드 애플리케이션을 위한 2D 런타임 시스템(환경)을 제공한다.GUIX는 다양한 화면 해상도와 색의 깊이를 가진 다중 디스플레이 장치를 지원한다.많은 미리 정의된 그래픽 위젯을 사용할 수 있다.윈도 WYSIWYG 호스트 툴인 GUIX Studio는 GUIX가 런타임에 실행할 C 코드를 자동으로 생성한다.

임베디드 네트워킹

NetX Duo는 ThreadX에 내장된 TCP/IP 시스템이다.NetX Duo supports both IPv4 and IPv6 networking along with protocols such as ARP, Auto IP, DHCP, DNS, DNS-SD, FTP, HTTP, ICMP, IGMP, mDNS, POP3, PPP, PPPoE, RARP, TFTP, SNTP, SMTP, SNMP, and TELNET.IP 계층 네트워크 보안은 IPsec에 의해 제공된다.TLS와 DTLS가 각각 TCP와 UDP 소켓 레이어 보안을 제공한다.IoT 클라우드 프로토콜 지원에는 CoAP, MQTT, LWM2M 등이 포함되며 NetX 듀오는 스레드, 6LoWPAN도 지원한다.2017년 스레드X와 넷X 듀오가 스레드 인증 제품이 됐다.[8]

내장 USB

USBX는 스레드X용 내장 USB(Universal Serial Bus) 시스템이다.USBX는 호스트와 디바이스 모두를 지원한다.호스트 컨트롤러 지원에는 EHCI, OHCI 및 전용 USB 호스트 컨트롤러가 포함된다.USBX는 OTG도 지원한다.USBX 클래스 지원에는 오디오, Asix, CDC/ACM, CDC/ECM, DDU, GSER, HID, PIMA, 프린터, 다작, RNDIS, 스토리지가 포함된다.

안전인증

스레드X(및 FileX 및 NetX Duo)는 SGS-TUV Saar에 의해 IEC 61508 SIL 4, IEC 62304 Class C, ISO 26262 ASIL D, EN 50128 SW-SIL 4의 안전 표준으로 사전 인증되었다.

ThreadX(및 FileX 및 NetX Duo)는 UL/IEC 60730, UL/IEC 60335, UL 1998에 의해 사전 인증되었다.

스레드X도 각종 군과 항공우주업체로부터 DO-178 표준 인증을 받았다.WolfSSL 등 인기 있는 SSL/TLS(Transport Layer Security) 라이브러리가 지원한다.[9]

포장

스레드X는 2017년 현재 X-Ware IoT 플랫폼의 일부로 풀 소스 코드로 패키징되며 런타임 로열티 지급이 없다.

그것을 사용하는 제품

작은 웨어러블 기기부터 휴렛-패커드 프린터, 심지어 NASA의 딥 임팩트 우주 탐사선까지 스레드X를 사용하는 몇몇 유명한 제품들이 있다.[10]

싱글보드 컴퓨터Rassberry Pi 라인은 그래픽 처리 장치(GPU)에서 2진수로 ThreadX를 실행한다.이는 초기 부팅을 제어하며, 이는 리눅스 같은 2차 운영 체제를 부팅하는 데 사용되며, 부팅 프로세스가 끝난 후에도 보다 특권적인 역할로 계속 운영된다.[11]

참고 항목

참조

  1. ^ "Releases · azure-rtos/Threadx". GitHub.
  2. ^ Cole, Bernard; McConnel, Toni (September 3, 2010). "Bill Lamie: Story of a man and his real-time operating systems". Embedded. AspenCore.
  3. ^ a b Janakiram, MSV (April 21, 2019). "How Does The Express Logic Acquisition Help Microsoft and the IoT Ecosystem". Forbes.
  4. ^ Carbone, John. "High Performance RTOS "ThreadX": Express Logic: Enabling Shorter Time to Market and Reduced Development Cost". Renesas.
  5. ^ "IoT & Embedded Operating Systems". VDC Research. Retrieved 2018-07-31.
  6. ^ Wang, Yun; Saksena, Manas. "Scheduling Fixed-Priority Tasks with Preemption Threshold" (PDF). Department of Computer Science. University of Utah.
  7. ^ "Event Chaining Enables Real-Time Systems to Respond to Multiple Real-Time Events More Efficient" (PDF). Express Logic.
  8. ^ "Thread Certified Products". Thread Group.
  9. ^ "wolfSSL with Improved ThreadX/NetX Support". wolfSSL. 2018-01-16. Retrieved 2019-02-13.
  10. ^ "NASA's "Deep Impact" employs embedded systems to score bullseye 80 million miles away". Military Embedded Systems.
  11. ^ "What's Wrong with the Raspberry Pi". Own Your Bits.

외부 링크