00 KKAMA OS
들어가기 전에...
- 이 글은 kkamagui에 의해 작성된 글입니다.
- 마음껏 인용하시거나 사용하셔도 됩니다. 단 출처(http://kkamagui.tistory.com는 밝혀 주십시오.
- 기타 사항은 mint64os at gmail.com 이나 http://kkamagui.tistory.com으로 보내주시면 반영하겠습니다.
- 상세한 내용은 책 "64비트 멀티코어 OS 구조와 원리"를 참고하기 바랍니다.
옛날 kkamagui.osx86.org를 운영할 때 썼던 글을 옮겨왔습니다. ^^;;; 사실 이제는 64비트 멀티코어 OS 구조와 원리를 만들 때 개발한 MINT64로 발전해서 KKAMA OS는 더이상 볼 수 없지만... MINT64를 KKAMA OS라고 생각해주시면 좋겠습니다. ^^;;;
1.소개
KKAMA OS는 KKAMAGUI가 만든 OS란 뜻입니다.
프로젝트를 시작한건 작년 10월이나 11월쯤 되겠군요. (글고보니 이놈 정확한 생일도 모르고 있네요. 쩝쩝.. -_-a..)
처음엔 부트로더로 시작했던 녀석이 어느새 시간이 지나 32Bit 허접 Kernel로 진화를했습니다. 제가 주로 쓰는 Nic Name이 까마귀(KKAMAGUI)인지라 이녀석의 이름 또한 제 별명을 따라 지었습니다.
왜 KKAMAGUI OS가 아니라 KKAMA OS인지 궁금해 하실 분이 있으신지 모르겠으나 (-_-a.. 없으려나...) 어느날 녀석의 이름을 KKAMAGUI라고 지었을때, 어느분이
'어?? 그거 새로나온 GUI냐??' 라고 물으시던데...
이때 머리를 스치는 생각 'CUI(console user interface)를 가진 녀석은 KKAMA OS로 짓고 GUI를 갖추면 그때 KKAMAGUI OS로 만들자!!'
그래서 일단은 KKAMA OS로 지었습니다. 지금 어느정도 GUI도 있으니까 KKAMAGUI OS가 맞겠네요. ^-^
KKAMA OS의 이상은 Simplist, Light, Easy Implementation 입니다. 이중에서 Simplist와 Easy Implementation을 가장 중요하게 생각하고 있는데, 간단하고 쉬운 알고리즘이 가장 좋다고 생각하기 때문입s니다. 사실.. 생각만 그리하고, 실제로 실천 하고 있는지는 저도 알 수 없죠. 쿨럭..;;;
2.기능
2.1 동작 환경
KKAMA OS는 아래의 환경에서 동작합니다.
- Intel 386 이상 Protected Mode 동작 가능 CPU
- 하나 이상의 Floppy Disk ( Kernel이 Floppy를 통해 부팅되기 때문이죠 )
- PS/2 방식의 Keyboard 및 Mouse
- Vesa방식이 지원되는 Video Card ( 제건 3년 전 모델인데 지원하더라구요.. 앵간하면 다 될듯 GUI시 필수 CUI시 옵션 )
- FAT32 또는 16방식으로 포멧된 HDD ( 옵션 )
2.2 지원 기능
KKAMA OS가 지원하는 기능은 아래와 같습니다.
*1. FAT32 또는 16방식으로 포멧된 HDD Read/Write
( 파일 읽기쓰기, 디렉토리 읽기쓰기 가능 )
2. Serial 제어
( Serial을 통한 파일 송/수신 )
3. Floppy Disk 제어
( 섹터 읽기쓰기 지원, FAT12는 아직 미지원 )
4. Mouse 제어
( PS/2 방식만 가능, GUI때는 필수 )
5. 간단한 kernel shell
( Kernel 테스트를 위한 Shell, 그리 큰 기능은 없음 )
6. 응용프로그램 Loader
( djgpp를 통해 컴파일 링크된 Binary또는 djgpp-coff파일 실행가능,
단 djgpp-coff는 특별히 제작된 프로그램을 한번 통해 실행해야 됨 )
7. 약간의 GUI
( 최근에 구현된 허접한 GUI, 윈도우 겹침 처리 및 마우스 처리 외에 별다른
기능 없음 )
8. RAM Disk Drive
( 2004/03/23에 개발 1차 완료, 4Mbyte의 크기 )
9. IPC 중 파이프, 공유메모리 지원
( 파이프는 2004/04/11에 개발 1차 완료 ) *
'OS Kernel > 32bit OS Framework' 카테고리의 다른 글
Part5. Intel Architecture에 대한 소개 (2) | 2007.11.14 |
---|---|
Part4. 어셈블리어(Assembly Language)와 C 그리고 호출 규약(Calling Convention) (0) | 2007.11.14 |
Part3. 인터럽트(Interrupt) (0) | 2007.11.14 |
Part2. 커널 개발시 꼭 알아야할 몇가지 (0) | 2007.11.14 |
Part1. 커널 개발이 힘든 이유 (7) | 2007.11.14 |