우와.. OS(Operating System)를 만들어보실려고 하시는군요..
그건 굉장히 힘들고, 어려운 작업입니다..
제일먼저, CPU Type을 먼저 고려하셔야합니다..
왜냐하면,
OS는 장치드라이버를 쉽게 다룰수 있게 하는 S/W이기 때문이죠..
장치드라이버를 다루기 위해서,,
장치드라이버에 명령어를 하달해야 하는데..
명령어를 하달하기 위해서 필수적으로 거쳐야 할 곳이..
바로 CPU죠..
따라서, CPU에 따라서,
CPU를 조작하기 위한 기계어 언어가 달라지는데..
그건, CPU를 만드는 설계과정에서 어떤 규정을 지은것을
이용하기 위한 것이죠..
기계어를 직접적으로 다루기 힘들기 때문에..
Assembly를 사용하고..
Assembly도 힘드니까..
C/C++등의 언어를 사용하는 것입니다..
어쨌든간에..
CPU Type의 선정을 제1위에 두시고..
OS를 개발하여야 하며..
CPU Type을 선정했다면..
제2위로
각종 장치드라이버를 이용하기 위한 방법을 아셔야 합니다..
제3위로는
각종 장치드라이버를 사용함에 따른
경쟁원리를 어떻게 잘 배분하느냐라는 문제가 발생합니다..
즉, 어떤것이 먼저 요청해서, 우선순위를 두고 먼저 처리하느냐
의 문제이죠..
또한, 같은 우선순위, 혹은 동시에 수행될때..
그 수행시점에 같이 사용하는 Resource를 어떻게 관리할지의 문제도 보셔야 합니다..
전산에서는 이것을 Critical Area라고 합니다..
대충.. 1~3위의 내용을 만드셨다면..
마지막으로,
이제 OS를 사용할 User들이 많은 입력을 하지 않고..
편리하게 반복적으로 사용할 수 있는 부분이 무엇인지를 염두해서..
I/O에 대한 처리방법론을 설계하셔합니다..
(마치, DOS처럼..)
이것 또한, 우선순위가 있어서..
우선순위를 관리해야만 합니다..
이제 각종 드라이버, I/O장치들을 쉽게 제어하고 가능하게
설계를 하셨다면,
마지막으로,
포장을 하는 것이죠..
마치, Window XP처럼..
껍데기를 화려하게, 마우스를 사용해서..
한번의 touch로 모든게 동작할 수 있는 기능(전 포장이라고 생각하지만)을
추가하는 것이죠..
OS를 만들기 위해서는 많은 관련서적을 읽어보시거나..
즉, 기초적인 상관관계에 대한 이론적인 바탕이 있어야 한다는 뜻입니다..
마지막으로, OS 소스를 훑어보는 노력이 필요합니다..
답이 되셨는가 모르겠습니다..
그건 굉장히 힘들고, 어려운 작업입니다..
제일먼저, CPU Type을 먼저 고려하셔야합니다..
왜냐하면,
OS는 장치드라이버를 쉽게 다룰수 있게 하는 S/W이기 때문이죠..
장치드라이버를 다루기 위해서,,
장치드라이버에 명령어를 하달해야 하는데..
명령어를 하달하기 위해서 필수적으로 거쳐야 할 곳이..
바로 CPU죠..
따라서, CPU에 따라서,
CPU를 조작하기 위한 기계어 언어가 달라지는데..
그건, CPU를 만드는 설계과정에서 어떤 규정을 지은것을
이용하기 위한 것이죠..
기계어를 직접적으로 다루기 힘들기 때문에..
Assembly를 사용하고..
Assembly도 힘드니까..
C/C++등의 언어를 사용하는 것입니다..
어쨌든간에..
CPU Type의 선정을 제1위에 두시고..
OS를 개발하여야 하며..
CPU Type을 선정했다면..
제2위로
각종 장치드라이버를 이용하기 위한 방법을 아셔야 합니다..
제3위로는
각종 장치드라이버를 사용함에 따른
경쟁원리를 어떻게 잘 배분하느냐라는 문제가 발생합니다..
즉, 어떤것이 먼저 요청해서, 우선순위를 두고 먼저 처리하느냐
의 문제이죠..
또한, 같은 우선순위, 혹은 동시에 수행될때..
그 수행시점에 같이 사용하는 Resource를 어떻게 관리할지의 문제도 보셔야 합니다..
전산에서는 이것을 Critical Area라고 합니다..
대충.. 1~3위의 내용을 만드셨다면..
마지막으로,
이제 OS를 사용할 User들이 많은 입력을 하지 않고..
편리하게 반복적으로 사용할 수 있는 부분이 무엇인지를 염두해서..
I/O에 대한 처리방법론을 설계하셔합니다..
(마치, DOS처럼..)
이것 또한, 우선순위가 있어서..
우선순위를 관리해야만 합니다..
이제 각종 드라이버, I/O장치들을 쉽게 제어하고 가능하게
설계를 하셨다면,
마지막으로,
포장을 하는 것이죠..
마치, Window XP처럼..
껍데기를 화려하게, 마우스를 사용해서..
한번의 touch로 모든게 동작할 수 있는 기능(전 포장이라고 생각하지만)을
추가하는 것이죠..
OS를 만들기 위해서는 많은 관련서적을 읽어보시거나..
즉, 기초적인 상관관계에 대한 이론적인 바탕이 있어야 한다는 뜻입니다..
마지막으로, OS 소스를 훑어보는 노력이 필요합니다..
답이 되셨는가 모르겠습니다..