Operating System
-자원관리
-어플리케이션과 유저에게 서비스 제공(편리한 컴퓨팅 환경)
자원은 물리적 자원, 가상 자원으로 나눌 수 있음
물리자원: Processor, Memory, Disk,..
가상자원: tasks, segments/pages, files, drivers, ...
임베디드 시스템과 OS
OS없이 개발 가능
(아두이노 등)
장점:
개발이 쉽고 간단하다.
작고 최적화된 코드
단점:
복잡한 시스템을 개발하기 힘들다.
메모리,파일 관리가 힘들다.
배우기 힘들다.(HW에 관한 이해가 필요)
OS
OS의 종류
Android, IOS, Windows, RTOS(Real-Time OS): VxWorks, pSOS ... , UNIX, LINUX
임베디드 시스템에서 OS는
시스템이 커지면서 멀티태스킹이 요구됨
자원관리를 OS가 하도록 함
task: 실행중인 프로그램
multitasking: task를 동시에 여러개 실행
scheduler: 실행될 task를 선택하는 OS의 핵심기능
Embedded Linux
장점
: 확장성이 좋다.
다양한 CPU를 지원(ARM, MIPS...)
로얄티가 없음. 무료 프로그램이며 소스코드가 공개되어 있다.
많은 유저가 사용하므로 에러를 고치기 좋음
데스크탑환경 등에서 개발하기 쉬움
단점:
RTOS에 비해 많은 메모리가 요구됨
범용 목적으로 설계된 OS이므로 real time system 지원안함
GUI를 제공하지 않음
많은 회사들과 개발자가 있어 표준화가 되어있지 않음
Shell
커널과 사용자 사이를 이어주는 역할을 하며, 사용자의 명령어를 시스템 콜로 변환하여 커널에게 올바른 명령어를 전달할 수 있도록 하는 프로그램
유저가 명령어를 입력하면, shell이 명령을 기계어로 번역함.
리눅스에서 기본 쉘은 Bash쉘.
스크립트를 이용하면 반복적인 동작 가능
Compile Process
1. Preprocessing
: 매크로, 헤더파일, 주석 등과 같은 전처리 지시문을 처리함
2. Compile(좁은 의미의 컴파일단계)
: 전처리된 소스코드를 기계어로 변환함. 최적화 수행후 어셈블리 코드를 생성
3. Assemble
: 어셈블리 코드를 기계어로 변환함. 결과물은 오브젝트 파일.
4. Linking
: 여러개의 오브젝트 파일과 라이브러리를 결합하여 실행 가능한 프로그램을 생성함.
Make
컴파일 프로세스를 자동화하는 도구.
'2023-1 > IoT와 임베디드 소프트웨어' 카테고리의 다른 글
Threads (0) | 2023.06.13 |
---|---|
Device Driver 2 (0) | 2023.06.13 |
Device Driver Concept (0) | 2023.06.13 |
CrossDevEnv, Kernel, BootLoader (0) | 2023.04.25 |
IoT and Embedded Software (0) | 2023.03.11 |
댓글