RTOS, 요즘은 Kernel
what is Kernel?
OS 없을 때 : User가 모든 기능을 Software가 처리하도록 처음부터 끝까지 작성
OS 등장 : Software > Hardware에 자동으로 Loading, 실행해 주는 Monitoring 환경
> 실행만 하면 자동으로 Memory에 Loading
ex) DOS
모든 Software 공통점 : I/O
: Input을 받고 Output을 해주는 Architecture 사용
ex) 키보드, 모니터
> Monitoring 환경에 아예 집어 넣고 사용
" Operating System "
> 실행만 해주면 자동으로 Memory에 올려서 실행 가능하게 만들어줌 + I/O를 사용할 수 있도록 해줌
(옛날엔 DOS 형태 // ui 가 없고 console창 )
RTOS 마찬가지.. ( Embedded System사용 OS )
(RT : Real Time)
> Multi tasking, Interrupt 처리 기능을 가지고 있는 작은 OS
kernel
RTOS도 하는 일 많음 > RTOS중 중요한 부분들만 따로 떼어서 Kernel 부분 생김
> Kernel : Context Switching, Scheduling, Memory Management, ISR Management 등을 담당하는 부분
Kernel API중 어느 것이라도 불려야만 > 동작하는 System을 관리할 수 있는 Software
>Kernel 활성화
> Application, Task, Process등이 Kernel에게 Service를 받기 위해 Kernel API를 부름
> Interrupt가 걸림 > Interrupt 처리할 때 Interrupt 처리 routine의 끝에 Kernel의 API가 불림
>> Kernel은 혼자 살아 움직이는 괴물이 아님!
RTOS : Compact, small > RTOS 자체를 Kernel이라고 불러도 무방
<>
Micro Kernel (L4), Linux( Monolithic Kernel )
> Kernel이 OS랑 뭐가 다르냐!
여전히 Kernel : 핵심 기능을 하는 부분 > OS의 Kernel
OS의 이름 : Linux, L4, uC OS, REX, 뉴클리어스
Micro Kernel : 진짜 중요한 부분만 Kernel이라고 부름 (나머지 : Server라는 Process로 떨어져 나감)
Monolithic Kernel : Kernel에 다른 큰 부분들까지 같이 엮여서 부름 // 커널이 전반적인걸 다함
Linux : Monolithic Kernel 형태
> Linux 자체 = Kernel = OS
L4 : Micro Kernel의 형태 > 중요한 Core만 Kernel (나머지: Server라는 Process 형태로 따로 존재 )
// 진짜 중요한 Core : Scheduling, Context Switching, Memory관리, Resource 관리, ISR 관리 등
>>
Linux에서 사용하는 Kernel
L4같은 곳에서 사용하는 Kernel의 정의가 다름
참고) Window는 Monolithic Kernel일까요, Micro Kernel일까요? - 답은, Micro Kernel 캬캬. (이거 헷갈리죠?)
'임베디드 > 임베디드 레시피' 카테고리의 다른 글
Task 구조, signal (0) | 2024.12.12 |
---|---|
Embedded Software는 무한 Loop (0) | 2024.12.11 |
linked list, Queue (0) | 2024.12.11 |
함수 포인터와 실행 주소 변경 (0) | 2024.12.08 |
Stack의 Size (0) | 2024.12.07 |