저번 포스팅에는 우리 운영체제가 어떻게 시스템을 보호하는지에 대해 배웠어.
복습을 간략하게 해 보자면, CPU를 User mode // Kernel mode로 나누고, 특권 명령( privileged instruction)같은 시스템에 위협을 줄 수 있는 명령들은 오로지 Kernel mode 에서만 실행 되고, user app이 이 명령들에 접근하려 하면, 시스템 콜의 형태로 Exception이 발생되면서 OS가 cpu의 제어권을 받은 후, 명령을 처리하고, 다시 user app에게 cpu의 제어권을 넘겨주는 형식으로 시스템을 보호해. 즉, 시스템 콜은, OS가 제공하는 서비스를 사용하기 위한 인터페이스라고 정의 할 수 있어.
오늘은 컴퓨터의 전원이 켜 질때 어떠한 일이 일어나는 지 알아볼거야.
먼저, 우리가 노트북이나 컴퓨터의 전원을 누르면 어떻게 될까? 막 LED가 점등되고, 쿨러가 돌아가는 소리가 들리면서 모니터에서 부팅 과정이 보일거야. 이 구조를 좀 자세히 살펴보자
1. 컴퓨터의 전원을 누르게 되면, PDU( Power Distribution Unit)이라는 전원 공급 장치가 CPU와 기타 장치들에게 전원을 공급하게 돼.
2. 이후 Bootstrap이라는 프로그램이 실행되면서, I/O 디바이스들을 초기화 하는 역할을 해, 또한 부트스트랩은 Boot Loader를 메모리에 올려주는 역할을 해. 부트스트랩은 펌웨어, 바이오스라고도 불러.
3. 그 다음, Boot Loader가 메모리에 올라가면, 부트로더는 커널이미지를 메모리에 올려. 커널이미지는 그냥, 디스크 상에 올라가 있는 커널의 압축된 파일이야. 이 파일을 메모리에 올리는 작업을 수행하는 거지. 그렇게 되면 OS의 여러 기능들을 초기화하면서 운영체제의 동작 환경을 만들어 줘
4. 마지막으로, user apps가 실행될 수 있는 환경을 제공해주면서 컴퓨터의 실행이 되는거야.
이게 전체적인 흐름이야. 막 어려운건 없지?
간략하게 정리하면
>>> 전원 공급
>>> BIOS에 의해 Boot Loader를 메모리에 로드
>>> kernel phase 1(커널 이미지가 부트로더에 의해 메모리에 로드되고, 커널이 실행되면서 OS의 여러기능들을 초기화 OS의 동작 환경을 만듦)
>>> kernel phase 2 ( init()으로 user app이 실행될 환경을 제공 )
────────────────────────────────────────────────
'학교 수업 > 운영체제' 카테고리의 다른 글
운영체제 6 || 스레드(threads) (0) | 2021.04.17 |
---|---|
운영체제 || 5. Inter Process Communication (0) | 2021.03.29 |
운영체제 || 4. Process (0) | 2021.03.19 |
운영체제 3 || OS의 구조를 어떻게 디자인 할 수 있을까? (0) | 2021.03.14 |
운영체제 || 1. System Call (0) | 2021.03.11 |
댓글