임베디드/임베디드 레시피

6장) RTOS, Kernel

twoweeks-within 2024. 12. 11. 16:08

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