아브 로스
ATMEL AVR CPU 용 UNIX와 같은 임베디드 마이크로 넬 OS
16K RAM으로 ATMEGA1284P에서 실행됩니다
특징:
- 메시지 전달 시설이있는 최소 마이크로 커널, OS 서비스 ( "프로세스"관리, 파일 시스템, 장치 드라이버)의 대부분은 클라이언트 (사용자 작업)와 통신하는 별도의 작업 (서버)에 의해 구현되며 메시지 전달에 의해 서로 통신합니다.
- 현재 구현 된 OS 엔티티는 UNIX와 유사하며 친숙한 시스템 호출과 함께 OS 엔티티는 주로 OS 서비스 작업 (서버)에 의해 정의됩니다.
- 여러 OS 엔티티가 동일한 CPU에서 공존 할 수 있으며 동일한 마이크로 커널을 공유 할 수 있습니다.
- 협력 및/또는 타이머 인터럽트 기반 선제 적 멀티 태스킹
- UNIX -PIPES가있는 가상 파일 시스템 - (파일 이름과 폴더는 아직 구현되지 않았습니다. 각 파일을 해당 장치/inode 번호 듀엣, 예를 들어 구문 : '2/1')와 함께 각 파일을 참조해야합니다.
- 장치 드라이버는 파이프 장치를 포함하여 별도의 작업 (스레드)으로 실행됩니다.
- 통합 장치 드라이버 인터페이스
- USARTS를 통한 쉘 액세스, Init에서 여러 세션을 스폰 할 수 있습니다.
저장소
main.c : 첫 번째 작업 및 기본 기능 - OS가 먼저이 작업을 실행합니다. 순서대로 서버를 생성하고 (TS, VFS, ES, PM, 아래를 참조하십시오.
커널 : Microkernel 및 HAL (하드웨어 추상화 레이어) 소스 코드
- 기본 기능 : 작업 작성 및 일정 (우선 순위 라운드 로빈), 메시지 전달, 인터럽트 처리, 메모리 할당 (메모리 관리자 서버가 개발 중입니다. Misc/참조)
- Idletask- 실행할 것이 없을 때 실행됩니다 - 다음 인터럽트가 될 때까지 CPU를 정지시켜 전원을 절약합니다.
usr
서버 :
- PM : 프로세스 관리자 -
프로세스 계층, 좀비 프로세스, exit (), wait (), exec (), spawntask () - VFS : Virtual File Server -File Discriptors, Filp Table, Inodes, Open (), Close (), read (), dup (), pipe (), mkdev (), mknod (), fstat () 등 ...
- SEMA : Simple Semaphore Server (현재 사용하지 않음) -P (), v ()
- TS : 시간 서버 - 타이머 인터럽트 핸들러, 수면 (), 가동 시간, 실시간
- 예 : 실행 파일 서버 - 실행 가능한 응용 프로그램을 등록하고 작업을 호출 할 때 exec ()를 호출 할 때 PM에 제공합니다 (AVR은 하버드 아키텍처 CPU입니다. OS는 이진을로드하여 플래시 프로그램 메모리에 태울 수 없습니다).
드라이버 :
- TTY_USART0 : USART 0 장치의 인터럽트 구동 TTY 드라이버
- MEMFILE : Inode Management가있는 메모리 드라이브 장치
- Pipedev : 파이프 장치 (다중 읽기, 다중 쓰기)
문서 : 문서 (DIA를 사용한보기 : https://wiki.gnome.org/apps/dia/)
lib : src/queue.c : 이중 링크 된 목록