OS 커널의 구조와 원리 : 1. 부트 스트랩

Real Mode 와 Protected Mode

Real Mode란 머퓨터에 전원이 들어온 후 CPU가 처음 움직이기 시작하면서 활동하는 모드. 리얼모드에서는 프로그램이 한 번에 한 개씩밖에 동작하지 못한다. 그리고, 한 프로그램은 현재 컴퓨터가 가지고 있는 램의 모든 영영ㄱ을 자기 마음대로 사용할 수 있다.

프로그램이 C 언어 함수 while(); 등으로 무한루프를 돌리면 도중에 사람이 인터럽트를 걸어서 멈추기 전에는 어느 다른 프로그램도 실행시킬 수 없기도 하고, 램 영역의 모든 부분에 접근할 수 있었기 때문에 DOS의 중요한 시스템 영역을 실수로든 악의로든 망쳐놓아 컴퓨터가 제대로 작동을 못하게 되는 경우도 허다했다. 현재는 하드웨어의 제어가 간단하다는 이유 등으로 제어용으로 사용하거나 하는 특별한 경우를 제외하고는 DOS는 거의 사용되지 않는다.

그런데 이 Real Mode를 아직까지 사용하고 있는 이유는 예전에 사용되던 8086 CPU용의 DOS 프로그램을 현재에도 계속 사용할 수 있도록 하는 호환성 문제 때문이다. 486을 사용하든지 Pentium을 사용하든지 리얼 모드가 동작하고 있을 때에는 CPU가 모두 하드웨어적으로 8086이 되어 있다고 생각하고 프로그램을 작성해야 한다. 따라서 모든 커널은 컴퓨터에 전원이 들어온 후 리얼 모드에서 여러 가지 하드웨어적인 세팅을 마친 후 프로텍티드 모드로 CPU를 전환한다.

Protected Mode란 현재 많이 사용되고 있는 Microsoft Windows나 Linux가 CPU에서 동작되고 있는 모드이다. 이 모드에서는 모든 프로그램이 한꺼번에 동작한다. 정확히 얘기하면 Protected Mode에서는 유저모드와 커널 모드의 두 가지 모드로 다시 나뉘어지는데, 프로그램들은 실행하는 도중 아직 끝나지 않은 상태에서 CPU가 갑자기(정해진 루틴에 의하여) 커널 모드로 들어가면서 커널의 루틴에 의해 멈추어지게 되고, 다른 프로그램이 이 커널의 루틴에 의해 길행되는 식으로 순서대로 조금씩 조금씩 실행된다. 그리고 각 프로그램이 사용할 수 있는 램의 영역도 커널의 루틴에 의해 정해지게 되고, 더 필요하면 커널 모드로 들어가서 요청하여 허락을 받고 얻어오는 방식을 취한다. 당연히 커널 모드의 영역은 유저 모드 프로그램에서는 정해진 루트 외에는 접근을 할 수 없다.

말하자면 모든 프로그램이 CPU를 공평히 사용하여 CPU시간이라는 소중한 자원의 낭비를 없애고 메모리를 아무렇게나 사용하지 않도록 해서 메모리 낭비를 없애는 관리를 커널 루틴이 해주는 효율적인 것이 Protected Mode이다.

현재 사용되는 대부분의 OS는 Protected Mode에서 동작한다.

 

6월 26일 일요일 새벽 3시즈음..

 

난 요즘 무얼 하고 있는 것일까?

 

이렇다할 노력은 하지 않은 채 그저 꿈만을 바라보고 있는 내가 느껴진다.

꿈이란 결코 바라만 보아서는 얻어지는 것이 아님을 아는데도 이렇다.

내 자신에게 너무 관대해진 것일까…

 

불과 몇달 전, 철인 경기를 준비하면서 느꼈던 뜨거움이 느껴지지 않는다.

아마도 내 자신이 뭔가 달라진 듯 하다.

 

열정, 젊음, 투지, 노력… 등등의 나를 지탱해주며 내가 진심으로 원했던 것들이 느껴지지 않는다.

내가 원하는 것, 내가 하고 싶은 것은 저 멀리에 있는데 나는 지금 무엇을 하고 있는 것일까.

 

내 작은 방에 무수히 꽂혀있는 책들.

그 책들 위에 쌓인 먼지들이 내가 그동안 아무것도 하지 않았음을 말해주는 듯 하다.

 

나의 꿈. 내가 하고 싶은 것. 내가 되고 싶은 것.

나는 항상 나의 꿈들을 알고 있다고 생각하고 있었다.

나의 꿈에 대한 나의 확신은 절대 흔들리지 않을것이라고 생각하고 있었다.

내가 바라보는 것 이외에는 다른 길은 없다고 생각했었다.

 

그런데.. 지금 이 상황은 무엇일까.

마치… 아무 목적없이, 아무 희망없이 하루하루를 살아가는 듯한 이런 모습.

너무 싫다.

 

회사에 입사한지 일년이 넘었다.

일년 전, 회사에 처음 입사했을때, 서울 생활을 다시 시작했을 때.

그때는 정말 자신감, 미래에 대한 확신. 나에 대한 믿음으로 충만했다.

 

그때와 지금.. 환경이 달라진 부분은 없다.

오히려 더 좋아졌다면 좋아졌을까. 아무리 생각해도 더 나빠진 부분은 없다.

 

단 하나, 나빠진 것이 있다면 그것은 바로 나.

공허함.. 허탈함.. 박탈감..

 

주위에서 자주듣는 이야기.

 

아무리 노력해도 1억 모으기가 결코 쉽지가 않을 것이라는 것.

아무리 해도 대기업에 들어가기가 쉽지 않을 것이라는 것.

서울에서 집 한채 사기가 쉽지 않을 것이라는 것.

 

내가 하고 싶은 것은 결코 그런 것들이 아님에도.. 뭐랄까. 힘이 빠진다.

 

아니다. 사실 저런 이야기에 힘이 빠진다는 것은 핑계일 뿐.

아침에 눈 떴을 때, 그 졸린 기운을 참고 일어나는 일.

나에게 주어진 하루라는 시간을 어제보다 더 활기찬 기운으로 보내는 일.

약간은 노력과 참을성과 인내심이 필요한 모든 일들.

 

그런 일들에 대해 나에게 매일 매일 더 관대해지는 나를 느낀다.

 

오늘 같은 날.

장마의 초입에서 오늘 같은 빗소리가 떨어지고 아무도 나의 시간을 방해하지 않고, 방해받지 않는 지금..

고요히 혼자 생각해보니…

그저 난 아무것도 아니었다.

 

다시 처음부터 시작하자.

도전을 두려워 하지 않고, 항상 어제보다 오늘 더 많은 용기와 더 많은 인내를 가질 수 있도록 노력하자.

언제나 그랬던 것처럼.

다시 처음부터…

다른 이야기..

군대에 있을 때 적었던 일기.

두꺼운 연습장에 한페이지씩 열심히 일기를 적던 때가 있었다.

그 일기장의 가장 앞 페이지에는 이렇게 적혀있었다.

군대를 제대한 후 꼭 해야할 일 or 곤대에 있는 동안 해야할 일

1. 개인서재
2. 전세방 하나
3. 승용차 구입(그전에 면허증)
4. 별자리 공부
5. …사랑
6. 리눅스/유닉스 공부
7. 여행…워키 할리데이…
8. 세계일주
9. 진정한 친구 만들기
10. 웹 마스터 자격증
11. 컴퓨터 자격증
12. 부모님께 대한 효도(이건 항상)
13. 검도
14. 항상 처음과 같은 마음가짐
15. 특공 무술
16. 부모님과…인도여행
17. 아빠와 낚시여행
18. 지리산 완정
19. 부모님의 정기검진
20. 중국 여행
21. 프로그래밍 언어 공부
22. 수영
23. 토익, 토플 시험
24. 내가 지은 책 출판하기
25. 홈페이지 제작
26. 성적표 All A+
27. 국토 순례
28. 철인 3종 경기
29. 서울대에서 강의
30. 개(진돗개, 허스키) 키우기
31. 복수전공(게임 디자인 학과)

 

좋은 책, 좋은 느낌.

우연하게 얻게된 책 한권.

책을 읽다보니 참으로 감사한 마음이 든다.

 

회사에서 이벤트로 시작한 ‘북 바이러스’

안토니오(사장님)을 비롯한 다른 4명의 사람들과 동시에 시작하게 되었는데, 두번째 타자로 내가 지목되었다.

안토니오께서 적어주신 조그마한 메모.

조나단에게 순례자 책을 선물합니다.
나의 소중한 Book friend 인
조나단 님께 항상 감사한 마음입니다.

누가 나에게 이책을 진심으로 줄 수 있을까.

나 역시 너무나 감사한 마음뿐..

 

책을 읽다가 책의 한 구절 한 구절에 너무나 벅찬 마음이 들었다가 갑자기 책 구절이 아닌 나에게 이 책을 전해준 안토니오의 생각이 들었다.

이 소중한 만남과, 이 소중한 인연에 참으로 감사할뿐..