일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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강의
- os 만들기
- 운영체제 정리
- 운영체제
- 쉽게 배우는 운영체제 풀이
- 쉽게 배우는 운영체제 연습문제
- 건담 엑스포
- 건담
- OS 그래픽 처리
- Gundam
- 맛집
- OS 제작
- 30일
- 운영체제 만들기
- Project Euler 해답
- 쉽게 배우는 운영체제 솔루션
- 건담 프라모델
- rg
- 프라모델
- Project Euler Problem
- project euler
- OS 구조와 원리
- 운영체제 제작
- 맛집 추천
- 쉽게 배우는 운영체제
- hg
- OS
- OS 강의
- Today
- Total
목록os 만들기 (11)
밤색모자이크의 개발이야기
안녕하세요. 밤색모자이크입니다.오늘은 드디어 마우스가 움직였네요. ㅜㅜ약간 문제가 있긴하지만 어째든 움직입니다. 그리고 책을 읽다보면 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)전역 세그먼트 기술자 표라는 뜻으로, 메모리의 어딘가에 설정할 세..
안녕하세요. 밤색모자이크입니다.이제 4일차 마지막인 OS 화면 구성을 하도록 하겠습니다.마찬가지로 bootpack.c 만 수정하면 됩니다.사각형 응용이요 이전의 4일차를 보실 분들은 다음 링크로 이동해주세요. 줄무늬 보이기 - http://godrjsmgl.tistory.com/109사각형 띄우기 - http://godrjsmgl.tistory.com/110 개발환경 운영체제 : Windows10텍스트 편집기 : AtomPC 에뮬레이터 : QEMU 소스코드 수정된 파일bootpack.c : OS 화면 구성으로 함수가 바뀜 bootpack.c 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..
안녕하세요. 밤색모자이크입니다.4일차 2번째인 사각형 출력입니다.4일차(1)에서 거의 다 해놨기 때문에 소스코드 수정은 bootpack.c만 하면됩니다.링크는 다음과 같습니다. http://godrjsmgl.tistory.com/109 개발환경 운영체제 : Windows10텍스트 편집기 : AtomPC 에뮬레이터 : QEMU 소스코드 수정된 파일bootpack.c : 사각형 출력 함수 생성 bootpack.c 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..
안녕하세요. 밤색모자이크입니다.오늘은 그래픽 작업을 하려고합니다.근데 이게 줄무늬부터 사각형 후에 OS모습을해서 줄무늬부터 시작해서 나눠서 하려고합니다. 개발환경 운영체제 : Windows10텍스트 편집기 : AtomPC 에뮬레이터 : QEMU 소스코드 수정된 파일naskFunc.nas : 인터럽트 함수, 색상지정 주소 지정bootpack.c : 팔레트 설정 및 세팅 naskFunc.nas 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 62 6..
안녕하세요. 밤색모자이크입니다. 오늘은 3일차로 32비트 모드를 도입하고 C언어를 추가하는 작업을 하겠습니다. 먼저, 말씀드리면 C언어를 호출하는 부분은 책에도 설명되어 있지않습니다. 나중에 설명할 거 같습니다. make 파일 작성하는 부분도 그냥 복사하시는게 정신 건강에 이롭습니다. 그리고 ipl10.nas에서 추가적으로 작성하는 부분을 쭉 했는데;; 오류가 1개 있는데 도무지 못 찾아서 그냥 전체 복사 붙여넣기 했습니다. 개발환경 운영체제 : Windows10 텍스트 편집기 : Atom PC 에뮬레이터 : QEMU 소스코드 변경 파일 목록 파일 이름 변경 파일 ipl.nas -> ipl10.nas : 디스크 읽고 로드 수정된 파일 ipl10.nas : 디스크 읽고 로드 Makefile : 메이크 파일..