[os란?]
<os 이전>
- os라는게 없을때 user가 모든 기능을 software가 처리하도록 처음부터 끝까지 작성했다. (힘듦)
<진화>
- 편하게 하기 위해 이러한 software를 hardware에 자동으로 Loading해주고 실행해주는 Monitoring 환경 만듦 (이게 os의 시초)
- 원래 software라는걸 한번에 한가지만 실행할 수 있는 환경에서, 여러가지 software에 대해서 실행만 하면 자동으로 Memory에 Loading 해주는 시스템 (비슷한 것이 DOS)
<os의 시작>
- 한참을 쓰다보니 모든 software에는 공통점이 있다. (I/O 부분)
- 모든 software는 Input을 받고 Output을 해주는 Architecture를 많이 사용한다 (ex : 키보드, 모니터)
- 그래서 이 부분을 Monitoring 환경에 아예 집어넣고 사용 (이게 os의 시작)
- 태초의 os(operating system)은 DOS 형태로서 실행만 해주면 자동으로 Memory에 올려서 실행 가능하게 만들어주고, 특별하게 뭘 안해줘도 I/O를 사용할 수 잇도록 해주는 형태
<RTOS란>
- RTOS도 os와 마찬가지이다.
- RTOS는 embdded에서 사용되는 os이다.
<RTOS라고 부르는 이유>
- Embedded system이라는게 범용적인 system이 아니고 특정한 목적을 위한 작은 system이다보니 Real Time이라는 말이 붙어서 RTOS라고 부른다.
- 기본적으로 Multi Tasking과 Interrupt처리 기능을 가지고 있는 작은 os이다.
<Kernel 이란>
- RTOS도 하는일이 많으니까 RTOS중에 중요한 부분들만 따로 떼어서 Kernel이라고 부르는 부분들이 생겨나고있다.
- Kernel은 대단한 애가 아니다. (혼자 움직이는 녀석이 아님)
- Kernel은 API중 어느 것이라도 불려야 동작하는 system을 관리할 수 있는 software이다.
- Kernel이 활성화 되려면 Application이나, Task, Process등이 Kernel에게 Service를 받기 위해서 Kernel API를 부르던가 Interrupt가 걸려서 Interrupt처리 할때 Interrupt 처리 routine의 끝에 Kernel의 API가 불리던가 하는식
http://recipes.egloos.com/5072853