bonnet OS, OS 만들기
아래의 글을 읽고 bonnet OS 개발 페이지에가서 둘러보다가 질답을 보게 되었습니다.
음, OS를 밑바닥부터 만드는 것은 많은 무리가 뒤따를것 같군요. Nachos같은 것을 고치는 것에서 시작하는 것이 어떠실런지.. 대학교 OS과목 홈페이지에 가면 프로젝트 소개와 참고자료들이 잘 나와 있을 겁니다.누구나 남 코드 참조 안한 상태에서 자신만의 것을 만들고 싶어하긴 합니다만, OS같은 큰 프로그램은 그런식으로 하다간 정말 대책 없죠.
그리고 왜 파일 시스템부터 만드셨는지 이해가 안가네요. 보통 OS를 만드는 순서를 생각하자면,
부팅 -> 디버그 용 문자출력 루틴 -> 프로세스 관리
-> 인터럽트 -> 콘솔 디바이스 드라이버
-> C library
이정도 까지 하면 HelloWorld같은 간단한 C프로그램을 커널이랑 같이 링킹해서 돌려볼 수 있게 되겠고요..이 다음부터 파일 시스템이니, 가상 메모리, 네트웍, 동적 로더 등을 추가하는게 훨씬 효율적이라 보여집니다.
열심히 하시길!!!
어떤분의 글을 읽게 되었는데요, 직접 물어보고 싶었지만, Anonymous로 되어 있어 알 길이 없었습니다.
제가 궁금한건
부팅 -> 디버그 용 문자출력 루틴 -> 프로세스 관리
-> 인터럽트 -> 콘솔 디바이스 드라이버
-> C library
이 순서 입니다.
저도 OS를 만들고 있었는데요, 순서가 어떻게 저렇게 될 수 있는지 궁금합니다.
부팅을 하고 나서 커널을 로드해야 하는데, 커널을 넣기위해서는 파일 시스템이 필요했거든요,
부팅을 한 후, 파일 시스템에서 커널의 위치를 찾아내고, 찾은 커널을 올려서 부팅을 완료하여 OS로써 기능을 할 수 있게 나아가야 하는것이 아닌가요?
제가 아직 생각을 정리하지를 못해서 그렇습니다.
혹시, 커널을 만들기 위해서, 다른 부분을 뒤로 미루고, 디스크 임의의 위치에 아무 규칙없이 커널을 써둔후에, 부팅을 하여 바로 그것을 읽어 나가도록 만드는 것인가요?
음.. 저렇게 하면 파일 시스템 고민을 하지 않아도 될것 같네요..
그런데 제 생각이 맞는 것인가요?
조언을 구합니다.
ps. 사실 파일 시스템 구현으로 고민을 했었는데, 꽤 많은 시간이 투자되어야 하는 것 같더군요, 주 목적이 부팅되는 커널 개발인데 파일 시스템 개발로 긴 시간 투자가 필요하여 주객이 전도된듯 하여.. 계속.. 쭈욱 고민하고 있었습니다.
grub 같은 부트로더를 쓰시면 어떨까요 ?grub은 파일 시스템까지
grub 같은 부트로더를 쓰시면 어떨까요 ?
grub은 파일 시스템까지 인식을 하니까요.
커널 올려주는 데까지는 해줄 것 같습니다만.
( 단, grub과 같이 있는 multi-boot standard를 지켜야 합니다. )
저는 잘은 모르지만이전에 이미 완성된 파일시스템을 사용하면 어떨까
저는 잘은 모르지만
이전에 이미 완성된 파일시스템을 사용하면 어떨까요?
잘 아시다시피 hurd 도 아직 실험 단계인데 ext2 를 파일 시스템으로
사용하더군요.
그래서 인지 설치도 debian linux 를 통해서 만 가능하게 되어있더군요
GNU/Hurd는 데비안 리눅스 없이도 설치할 수 있습니다. 물론 데비안
GNU/Hurd는 데비안 리눅스 없이도 설치할 수 있습니다. 물론 데비안 판으로 설치하면 바로 사용할 수 있는 소프트웨어가 많다는 장점이 있긴 하죠...
Bee GNU/Hurd
http://bee.es.gnu.org/
이것은 pkgsrc를 쓰는 것 같습니다.
--feanor
댓글 달기