일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 27 | 28 | 29 |
30 | 31 |
- OS 제작
- rg
- Project Euler 해답
- Project Euler Problem
- 운영체제 문제 풀이
- 운영체제 만들기
- 건프라
- os 만들기
- OS강의
- 쉽게 배우는 운영체제 연습문제
- 맛집
- OS 그래픽 처리
- 쉽게 배우는 운영체제 풀이
- hg
- 쉽게 배우는 운영체제 솔루션
- OS 강의
- 건담
- 건담 엑스포
- 맛집 추천
- OS
- 쉽게 배우는 운영체제
- 운영체제
- project euler
- 운영체제 정리
- 30일
- 운영체제 제작
- OS 구조와 원리
- 프라모델
- Gundam
- 건담 프라모델
- Today
- Total
목록운영체제 제작 (8)
밤색모자이크의 개발이야기
안녕하세요. 밤색모자이크입니다.오늘은 드디어 마우스가 움직였네요. ㅜㅜ약간 문제가 있긴하지만 어째든 움직입니다. 그리고 책을 읽다보면 asmbead.nas 부분의 약 100행정도를 그냥 넘어가는 부분이 있는데 이번 장에서 설명을 합니다.저는 그냥 단순히 메모리맵으로 대신하겠습니다. 0x00000000 - 0x000fffff : 부팅중에 여러 용도로 사용, 그 이후에는 비어짐0x00100000 - 0x00267ffff : 플로피 디스크 내용 기억0x00268000 - 0x0026f7ff : 비어 있음0x0026f800 - 0x0026ffff : IDT0x00270000 - 0x0027ffff : GDT0x00280000 - 0x002ffff : bootpack.hrb0x00300000 - 0x003ffff..
안녕하세요. 밤색모자이크입니다.7일차에는 마우스 인터럽트와 키보드 인터럽트 처리를 마무리합니다.글자가 입력되고 마우스가 움직이는건 아니지만, 해당 디바이스의 정보가 인터럽트 처리되어 들어오는 것을 확인 할 수 있습니다. 인터럽트를 할 때, 큐를 사용했는데 선형큐는 데이터가 밀어들어오면 다 저장을 못하고 한번 쓰면 버려야하기 때문에 원형큐를 구현하였습니다. 큐를 구현한 소스코드는 fifo.c 입니다. 별 다른 용어는 없습니다. 개발환경 운영체제 : Windows10텍스트 편집기 : AtomPC 에뮬레이터 : QEMU 소스코드 수정된 파일bootpack.c : 키보드와 마우스 인터럽트 후 처리 코드 추가bootpack.h : fifo.c의 관련 함수 추가int.c : 인터럽트 실행을 빠르게 하기위해 인터럽트..
안녕하세요. 밤색모자이크입니다.6일차에는 소스코드가 많이 길어져서 이것을 분할하는 것부터 합니다.분할을 한 뒤에 인터럽트 처리를 하게 되는데, 키보드 인터럽트는 보입니다. 아쉽게도 마우스 인터럽트는 안되네요 ㅜㅜ책에서는 자세히 설명하지만, 저는 분할과 인터럽트 부분을 다 통합한 부분만 보여드리겠습니다. PIC (Programmable Interrupt Controller) :설정가능한 인터럽트 컨트롤러로써, 인터럽트를 관리할 수 있습니다. IMR (Interrupt Mask Registier) : 인터럽트를 막아놓은 레지스터, 이 레지스터가 설정되어있으면 인터럽트를 무시합니다. ICW (Intial Control Word) : 초기화 제어 데이터 개발환경 운영체제 : Windows10텍스트 편집기 : A..
안녕하세요. 밤색모자이크입니다.OS 개발 5일차입니다. OS 화면 구성은 대충 끝냈고, 이번에는 문자를 표시하기 위해 파일들을 설정하고, 테스트로 표시해봅니다.그리고 마우스를 사용하기 위해서 GDT와 IDT를 초기화를 하는 것을 배웠습니다. 세그먼테이션(Segmentation)컴퓨터의 메모리를 각 블록단위로 분할하여, 각 블록의 처음 번지를 0으로 하여 다루는 기능입니다.이렇게 하게 되면 복수의 프로그램을 사용할 때 메모리 이용범위가 겹치지않고 ORG를 0으로 설정하여 쉽게 사용할 수 있습니다. 세그먼트(Segment)세그먼테이션으로 구분된 블록들을 세그먼트라고 합니다. GDT (Global (segment) Descriptor Table)전역 세그먼트 기술자 표라는 뜻으로, 메모리의 어딘가에 설정할 세..
안녕하세요. 밤색모자이크입니다. 오늘은 3일차로 32비트 모드를 도입하고 C언어를 추가하는 작업을 하겠습니다. 먼저, 말씀드리면 C언어를 호출하는 부분은 책에도 설명되어 있지않습니다. 나중에 설명할 거 같습니다. make 파일 작성하는 부분도 그냥 복사하시는게 정신 건강에 이롭습니다. 그리고 ipl10.nas에서 추가적으로 작성하는 부분을 쭉 했는데;; 오류가 1개 있는데 도무지 못 찾아서 그냥 전체 복사 붙여넣기 했습니다. 개발환경 운영체제 : Windows10 텍스트 편집기 : Atom PC 에뮬레이터 : QEMU 소스코드 변경 파일 목록 파일 이름 변경 파일 ipl.nas -> ipl10.nas : 디스크 읽고 로드 수정된 파일 ipl10.nas : 디스크 읽고 로드 Makefile : 메이크 파일..
안녕하세요. 밤색모자이크입니다.OS 제작 2일차 입니다.이번에는 1일차에서 만든 부트섹터 실행하는 파일을 앞으로 만들 OS와 분리 시키는 작업을 합니다.또, 더 편하게 실행하고 정리하기 위해서 Make파일을 생성하는 것을 하겠습니다. 개발환경 운영체제 : Windows10텍스트 편집기 : AtomPC 에뮬레이터 : QEMU 소스코드 ipl.nas code 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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61; ipl.nas ; 부트섹터로 분리 ; TA..
이 책은 어셈블리언어를 활용해서 Hello world를 띄우는걸 처음으로 합니다.문제는 이걸 이진수 편집기로 작성을하고 난 뒤에 어셈블리언어로 재작성합니다. 이진수 편집기는 건너뛰도록 하겠습니다. 개발환경 운영체제 : Windows10텍스트 편집기 : AtomPC 에뮬레이터 : QEMU 여기서 알고 있어야하는 것은 어셈블리어로 작성하긴 했지만, 일반적인 어셈블리어가 아닌 책의 저자가 만든 NASK라는 어셈블러입니다.NASM을 많이 따라했다고 하네요. 텍스트 편집기는 따로 설치하는게 좋습니다. 메모장으로는 한계가 많습니다. Atom이 무겁긴한데 편리해서 추천드려요. 소스코드 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 27 28..
안녕하세요. 밤색모자이크입니다. 평소부터 꼭 해보고 싶던 OS 만들기를 해보려고 합니다. 처음부터 바로 만들기에는 제가 실력이 부족해서 책을 한번 쭉 따라하려고 합니다. OS 구조와 원리 카와이 히데미저, 한빛미디어 출판 링크 : http://book.naver.com/bookdb/book_detail.nhn?bid=2887547 쉬운 책이라서 많은 사람들이 따라하고 리뷰도 많이 남긴 책입니다. 소스코드 또한 전부 제공되어있습니다. 다만, 절판 됬습니다... 중고 서적을 구입하거나 보통 대학 도서관에는 한권씩 있습니다. 30일 완성을 목표로 OS를 만드는 책인데 왠만하면 더 빨리 완성 할 수 있을 정도로 쉽게 정리되어 있는거 같습니다. 책의 소스코드를 정말 단계로 심할 정도로 정리가 잘 되어있어서 다 작..