Contiki
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
Contiki는 메모리, 전력 소비, 처리 능력 및 통신 대역폭이 제한된 하드웨어 장치에서 실행되도록 설계된 오픈 소스 운영 체제이다. 1.x, 2.x, 3.0 버전이 있으며, 최신 버전은 2015년 8월 25일에 출시된 3.0이다. Contiki는 다양한 임베디드 시스템, 8비트 컴퓨터, 마이크로컨트롤러, 게임 콘솔, 컴퓨터 등 다양한 하드웨어를 지원하며, uIP, uIPv6, Rime 스택을 포함한 네트워킹 메커니즘을 제공한다. 저전력 작동을 위한 ContikiMAC을 제공하며, 센서 시뮬레이터 Cooja를 포함한다. 프로토스레드를 기반으로 하는 프로그래밍 모델을 사용하며, 멀티태스킹 커널, 인터넷 프로토콜 스위트, 윈도잉 시스템, 웹 브라우저, VNC 서버 등의 기능을 지원한다.
더 읽어볼만한 페이지
- 코모도어 64 소프트웨어 - 코모도어 도스
코모도어 도스는 코모도어 컴퓨터에서 사용된 디스크 운영 체제로, 코모도어 1541과 같은 다양한 디스크 드라이브 모델과 함께 사용되었으며 BASIC 명령어를 통해 파일 조작, 파일 유형, 디렉터리 구조를 지원했지만 덮어쓰기 저장 버그로 인한 데이터 손실 위험이 있었다. - 무선 센서 네트워크 - DASH7
DASH7은 DASH7 Alliance에서 제시하는 무선 데이터 기술로, 액티브 RFID 통신 규격의 문제점을 해결하고 무선 센서 네트워크 분야에서 와이파이 얼라이언스와 유사한 역할을 목표로 하며, 낮은 전력 소비, 장거리 통신, 양방향 통신 지원 등의 특징을 가진다. - 무선 센서 네트워크 - Z-Wave
Z-Wave는 1999년 덴마크에서 개발된 홈 오토메이션 프로토콜로, 900MHz 비허가 주파수를 사용하며, 메시 네트워크를 통해 최대 232개의 장치를 연결하고 S2 보안 기능을 제공하며 스마트 홈 분야에서 널리 사용된다. - MIPS 운영 체제 - Nucleus RTOS
Nucleus RTOS는 1993년 Accelerated Technology에서 출시된 실시간 운영 체제로, 다양한 아키텍처와 구성 요소를 지원하며 안전 인증을 받아 여러 제품에 사용되었다. - MIPS 운영 체제 - IRIX
IRIX는 실리콘 그래픽스에서 개발한 유닉스 기반 운영 체제로, 컴퓨터 애니메이션 및 과학적 시각화 분야에서 널리 사용되었으며 실시간 디스크 및 그래픽 입출력을 지원하고 OpenGL의 기원이 된 IRIS GL 기술을 포함했지만 SGI 파산 후 지원이 종료되었다.
| Contiki - [IT 관련 정보]에 관한 문서 | |
|---|---|
| Contiki | |
![]() | |
| 개발자 | Adam Dunkels |
| 소스 모델 | 오픈 소스 소프트웨어 |
| 최초 릴리스 | 2003년 3월 10일 |
| 최신 릴리스 버전 | 3.0 |
| 최신 릴리스 날짜 | 2015년 8월 25일 |
| 라이선스 | BSD-3-Clause |
| 웹사이트 | www.contiki-os.org |
| 저장소 | github.com/contiki-os/contiki |
| Contiki-NG | |
| 최신 릴리스 버전 | 4.9 |
| 최신 릴리스 날짜 | 2023년 6월 17일 |
| 저장소 | github.com/contiki-ng/contiki-ng |
| 웹사이트 | www.contiki-ng.org |
2. 역사
콘티키는 시뮬레이션 환경에서 시작하여 C64와 같은 오래된 8비트 컴퓨터에서 실행되도록 개발되었다. 초기에는 개인용 컴퓨터에서 실행되었지만, 2.x 버전부터는 CPU와 플랫폼을 분리하여 무선 센서 네트워크(WSN) 지원을 강화했다.
2. 1. 버전 정보
콘티키는 버전별로 다음과 같은 특징을 가진다.| 버전 | 출시일 | 주요 특징 |
|---|---|---|
| 1.x | 최초 릴리스, 다양한 플랫폼 및 CPU 지원 | |
| 2.x | CPU와 플랫폼 분리, 무선 센서 네트워크(WSN) 지원 강화 | |
| 3.0 | 2015년8월 25일 | 최신 릴리스, [https://github.com/contiki-os/contiki 깃허브 저장소]에서 소스 코드 확인 가능 |
2. 1. 1. Contiki 2.x 계열
Contiki 2.x 계열은 CPU와 플랫폼이 분리되어 기존 CPU 아키텍처에 대한 플랫폼 대응이 쉬워졌다. 또한, 무선 센서 네트워크(WSN)에 대한 대응이 강화되어, 단순히 오래된 컴퓨터를 활용하는 것뿐만 아니라 작은 풋프린트를 활용한 새로운 환경에서의 동작에도 힘을 쏟고 있다.2. 1. 2. 최신 버전
2015년8월 25일 현재, Contiki의 최신 릴리스 버전은 3.0이며, 2015년 8월 25일에 릴리스되었다. 소스 코드는 [https://github.com/contiki-os/contiki 깃허브 저장소]에서 확인할 수 있다.3. 하드웨어
콘티키는 메모리, 전력 소비, 처리 능력 및 통신 대역폭이 심각하게 제약된 하드웨어 장치에서 실행되도록 설계되었다. 일반적인 콘티키 시스템은 수 킬로바이트 수준의 메모리, 밀리와트 수준의 전력 예산, 메가헤르츠 단위의 처리 속도 및 수백 킬로비트/초 수준의 통신 대역폭을 갖는다. 이러한 시스템에는 다양한 유형의 임베디드 시스템과 구형 8비트 컴퓨터가 포함된다.
현재 개발이 진행 중인 버전에서는 소스 트리 상에서 CPU와 플랫폼이 분리되어 기존 CPU 아키텍처에 대한 플랫폼 대응이 쉬워졌다.
또한, 무선 센서 네트워크(WSN)에 대한 대응이 이루어져, 단순히 오래된 컴퓨터를 활용하는 것뿐만 아니라 작은 풋프린트를 활용한 새로운 환경에서의 동작에도 힘을 쏟고 있다.
4. 네트워킹
콘티키는 세 가지 네트워크 메커니즘을 제공한다.
- uIP TCP/IP 스택[6]은 IPv4 네트워킹을 제공한다.
- uIPv6 스택[7]은 IPv6 네트워킹을 제공한다.
- Rime 스택은 저전력 무선 네트워크를 위해 설계된 맞춤형 경량 네트워킹 프로토콜 세트이다.
IPv6 스택은 시스코에서 기여했으며, 출시 당시 'IPv6 Ready' 인증을 받은 가장 작은 IPv6 스택이었다.[8] IPv6 스택은 또한 저전력 손실 IPv6 네트워크를 위한 '저전력 및 손실 네트워크용 라우팅 프로토콜'(RPL) 라우팅 프로토콜과 IEEE 802.15.4 링크를 위한 6LoWPAN 헤더 압축 및 적응 계층을 포함한다.
Rime은 IPv4 또는 IPv6 스택의 오버헤드가 과도할 때 사용할 수 있는 대체 네트워크 스택이다. Rime 스택은 저전력 무선 시스템을 위한 일련의 통신 기본 요소를 제공한다. 기본 요소는 다음과 같다.
- 단일 홉 유니캐스트
- 단일 홉 브로드캐스트
- 멀티 홉 유니캐스트
- 네트워크 플러딩
- 주소 없는 데이터 수집
기본 요소는 단독으로 사용하거나 결합하여 더 복잡한 프로토콜과 메커니즘을 형성할 수 있다.[9]
5. 저전력 작동
콘티키 시스템은 대부분 전력 제약이 심하다. 배터리로 작동하는 무선 센서는 수년간 무인 작동을 해야 하며, 배터리를 재충전하거나 교체하기 어렵다. 콘티키는 실행되는 시스템의 전력 소비를 줄이기 위한 여러 메커니즘을 제공한다. 무선 장치의 저전력 작동을 위한 기본 메커니즘은 ContikiMAC[10]이다. ContikiMAC을 사용하면 노드는 저전력 모드로 실행되면서도 무선 메시지를 수신하고 중계할 수 있다.
6. 시뮬레이션
Contiki 시스템은 Contiki 노드를 시뮬레이션하는 Cooja라는 센서 시뮬레이터를 포함하고 있다.[11] Cooja의 노드는 다음 세 가지 유형으로 나뉜다.
- a) 에뮬레이션된 Cooja 노드
- b) 시뮬레이션 호스트에서 컴파일 및 실행되는 Contiki 코드
- c) Java 노드 (노드의 동작은 Java 클래스로 다시 구현되어야 한다.)
하나의 Cooja 시뮬레이션은 위 세 가지 유형의 센서 노드를 모두 포함할 수 있다. 에뮬레이션된 노드는 시뮬레이션된 네트워크에 비 Contiki 노드를 포함하는 데에도 사용될 수 있다.
Contiki 2.6에서는 TI MSP430, Atmel AVR 마이크로컨트롤러가 있는 플랫폼을 에뮬레이션할 수 있다.
7. 프로그래밍 모델
프로토스레드 기반의 Contiki 프로그래밍 모델은 작은 메모리 시스템에서 효율적으로 실행되도록 설계되었다.[12][13] 프로토스레드는 멀티스레딩과 이벤트 구동 프로그래밍의 특징을 결합하여 메모리 효율성을 높인 프로그래밍 추상화로, 각 프로토스레드의 메모리 오버헤드를 낮게 유지한다. Contiki 커널은 내부 또는 외부 이벤트에 대한 응답으로 프로세스의 프로토스레드를 호출한다. 내부 이벤트에는 작동하는 타이머나 다른 프로세스에서 보낸 메시지가 있고, 외부 이벤트에는 센서 작동이나 라디오 이웃으로부터 들어오는 패킷이 있다.
프로토스레드는 협력적으로 스케줄링되므로, Contiki 프로세스는 정기적으로 커널에 제어권을 명시적으로 반환해야 한다. Contiki 프로세스는 각 이벤트 호출 사이에 커널에 제어권을 양보하면서 이벤트를 기다리는 동안 차단하기 위해 특별한 프로토스레드 구문을 사용할 수 있다.
8. 기능
Contiki는 다음과 같은 기능을 제공한다.
- 멀티태스킹 커널
- 애플리케이션별 선택적 선점형 멀티스레딩
- 프로토스레드
- 인터넷 프로토콜 스위트(TCP/IP) 네트워킹, IPv6 포함
- 윈도잉 시스템 및 GUI
- 가상 네트워크 컴퓨팅을 사용한 네트워크 원격 디스플레이
- 웹 브라우저 (세계에서 가장 작다고 주장됨)
- 개인 웹 서버
- 간단한 텔넷 클라이언트
- 화면 보호기
Contiki는 wolfSSL과 같은 전송 계층 보안(SSL/TLS) 라이브러리를 지원하며, 릴리스 3.15.5에 포트를 포함하고 있다.[14]
9. 포팅
Contiki는 마이크로컨트롤러, 컴퓨터, 게임 콘솔 등 다양한 플랫폼에 포팅되었다.
9. 1. 마이크로컨트롤러
| 제조사 | 마이크로컨트롤러 |
|---|---|
| Atmel | ARM, AVR |
| NXP 반도체 | LPC1768,[15] LPC2103, MC13224 |
| 마이크로칩 | dsPIC, PIC32 (PIC32MX795F512L) |
| 텍사스 인스트루먼츠 | MSP430, CC2430, CC2538, CC2630, CC2650, CC2538: cctv, Firefly, Zoul (CC2538과 CC1200을 단일 모듈 형식으로 구성) |
| ST마이크로일렉트로닉스 | STM32 W |
현재 개발이 진행 중인 버전은 소스 트리 상에서 CPU와 플랫폼이 분리되어 기존 CPU 아키텍처에 대한 플랫폼 대응이 쉬워졌다. 또한, 무선 센서 네트워크(WSN)에 대한 대응이 이루어져, 단순히 오래된 컴퓨터를 활용하는 것뿐만 아니라 작은 풋프린트를 활용한 새로운 환경에서의 동작에도 힘을 쏟고 있다.
2010년 4월 현재, 최신 CVS 저장소에서 지원하는 아키텍처는 다음과 같다(개발 중인 것 포함).
- 6502
- at91sam7s
- AVR
- MSP430
- x86
- Z80
- 8051 (TI CC2430)
9. 2. 컴퓨터
Contiki는 다음과 같은 다양한 컴퓨터 플랫폼을 지원한다.[16]| 플랫폼 |
|---|
| 애플 II |
| 아타리 8비트 컴퓨터 |
| 아타리 ST |
| 아타리 포트폴리오 |
| 포켓 뷰어 |
| 코모도어 PET |
| VIC-20 |
| 코모도어 64, 코모도어 128 |
| 오릭 컴퓨터 |
| NEC PC-6001 |
| 샤프 위저드 |
| x86 기반의 유닉스 계열 시스템, GTK+ 위에서, 또는 X 윈도 시스템을 직접 사용하여 실행[17] |
2010년 4월 현재, 최신 CVS 저장소에서 지원하는 아키텍처는 다음과 같다(개발 중인 것 포함).
| 아키텍처 |
|---|
| 애플 II |
| 코모도어 64 |
| NEC PC-6001 |
| 마이크로소프트 윈도우 32비트 |
| NEC PC 엔진 |
| 세가 드림캐스트 |
| 닌텐도 게임보이 |
| Crossbow 센서 네트워크 MICAz |
| WGN사 (와이어리스 그룹 네트워크스) ZCC-2431-M "Brione" : TI CC2430/31 계열 + 가속도 센서 (일본 전파법 취득 무선 모듈) |
9. 3. 게임 콘솔
Contiki는 다음의 게임 콘솔 플랫폼들을 지원한다.
2010년 4월 현재, 최신 CVS 저장소에서 지원하는 아키텍처는 다음과 같다(개발 중인 것 포함).
참조
[1]
간행물
Contiki OS
http://www.contiki-o[...]
[2]
간행물
Contiki: Bringing IP to Sensor Networks
http://ercim-news.er[...]
[3]
간행물
Contiki OS
http://www.contiki-o[...]
[4]
간행물
Proceedings of the 29th Annual IEEE International Conference on Local Computer Networks.
[5]
웹사이트
Out in the Open: The Little-Known Open Source OS That Rules the Internet of Things
https://www.wired.co[...]
[6]
간행물
Proceedings of the First ACM/Usenix International Conference on Mobile Systems, Applications and Services (MobiSys)
2003-05
[7]
poster session
Proceedings of the Sixth ACM Conference on Networked Embedded Sensor Systems (SenSys)
ACM
2008-11
[8]
간행물
Newsroom
http://newsroom.cisc[...]
Cisco
[9]
간행물
Proceedings of the Fifth ACM Conference on Networked Embedded Sensor Systems (SenSys)
2007-11
[10]
간행물
The ContikiMAC Radio Duty Cycling Protocol
http://dunkels.com/a[...]
[11]
간행물
Contiki OS
http://www.contiki-o[...]
[12]
간행물
Proceedings of the Fourth ACM Conference on Embedded Networked Sensor Systems (SenSys)
2006-11
[13]
간행물
Code
http://code.google.c[...]
[14]
웹사이트
wolfSSL CONTIKI OS port - wolfSSL
https://www.wolfssl.[...]
2018-12-18
[15]
웹사이트
The Contiki Operating System / [Contiki-developers] Contiki port for the LPC1768 arm processor
http://sourceforge.n[...]
2020-12-19
[16]
문서
cc65 based development
[17]
간행물
Running Contiki under Windows
http://hstein.trix.n[...]
Trix
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com
