분류 전체보기
-
메모리 맵프로젝트/운영체제 만들기 2023. 6. 1. 00:50
글의 참고 - https://en.wikipedia.org/wiki/Memory_map - https://wiki.osdev.org/Memory_Map_(x86) 글의 전제 - 내가 글을 쓰다가 궁금한 점은 파란색 볼드체로 표현했다. - 밑줄로 작성된 글은 좀 더 긴 설명이 필요해서 친 것이다. 글의 내용 - 메모리 맵 : 커널 개발에서 메모리 맵은 정말 중요하다. 커널은 명시적으로 특정 영역에 메모리를 쓸 수 있는 프로그램이다. 그런데, 이미 시스템에 예약된 영역에 뭔가를 쓰게 되면 크래시가 발생할 것이다. 하드웨어적으로 예약된 영역이면 그나마 다행이다. 쓰자마자 크래시가 발생할 것이다. 그런데, 만약 소프트웨어적으로 예약된 영역이라고 지정해 놓았는데, 여기에 뭔가를 쓰는 것이면 이건 디버깅이 굉장히 ..
-
커널 이미지프로젝트/운영체제 만들기 2023. 5. 31. 20:45
글의 참고 - https://linuxhint.com/combine-binary-files-linux/ 글의 전제 - 내가 글을 쓰다가 궁금한 점은 파란색 볼드체로 표현했다. - 밑줄로 작성된 글은 좀 더 긴 설명이 필요해서 친 것이다. 글의 내용 - Overview : 커널 이미지를 만드는 방법은 2가지가 있다. 1" 플랫 바이너리를 단순히 붙어서 커널 이미지를 만든다. 2" 링커를 통해 커널 이미지를 만든다. : CAT 명령어를 통한 커널 이미지 만들기 " 첫 번째 방법부터 알아보자. YohdaOS는 커널 이미지를 BIN 파일 포맷을 사용한다. 이 말은 YohdaOS의 커널 이미지는 플랫 바이너리라는 뜻이다. 그래서 부트 로더(16비트), 32비트 커널, 64비트 커널을 모두 그냥 단순히 합쳐서 커널..
-
페이징프로젝트/운영체제 만들기 2023. 5. 30. 14:43
글의 참고 - http://www.brokenthorn.com/Resources/OSDev18.html - https://wiki.osdev.org/Setting_Up_Paging - https://en.wikipedia.org/wiki/Page_(computer_memory) - https://en.wikipedia.org/wiki/Page_table - https://en.wikipedia.org/wiki/Physical_Address_Extension#Page_table_structures - https://wiki.osdev.org/Page_Tables - https://wiki.osdev.org/Setting_Up_Paging_With_PAE - https://wiki.osdev.org/Sett..
-
PIT [작성중]프로젝트/운영체제 만들기 2023. 5. 29. 19:41
글의 참고 - https://en.wikipedia.org/wiki/Intel_8253 - https://en.wikipedia.org/wiki/Programmable_interval_timer - https://web.archive.org/web/20161122073424/http://www.intel.com:80/design/archives/periphrl/docs/7203.htm - https://stackoverflow.com/questions/20712085/rtc-vs-pit-for-scheduler - https://en.wikipedia.org/wiki/High_Precision_Event_Timer - https://en.wikipedia.org/wiki/System_time - http..
-
[운영체제 만들기] Exception프로젝트/운영체제 만들기 2023. 5. 25. 19:36
글의 참고 - https://wiki.osdev.org/Exceptions#Error_code 글의 전제 - 내가 글을 쓰다가 궁금한 점은 파란색 볼드체로 표현했다. 나도 모르기 때문에 나중에 알아봐야 할 내용이라는 뜻이다. - 밑줄로 작성된 글은 좀 더 긴 설명이 필요해서 친 것이다. 그러므로, 밑 줄 처친 글이 이해가 안간다면 링크를 따라서 관련 내용을 공부하자. - `글의 참조`에서 빨간색 볼드체로 체크된 링크는 이 글을 작성하면 가장 많이 참조한 링크다. - `운영체제 만들기` 파트에서 퍼온 모든 참조 글들과 그림은 반드시 `이 글과 그림을 소스 코드로 어떻게 구현을 해야할까` 라는 생각으로 정말 심도있게 잠시 멈춰서 생각해봐야 실력이 발전한다. 글의 내용 - x86 익셉션(Exception) :..
-
[운영체제 만들기] 에러 사항프로젝트/운영체제 만들기 2023. 5. 24. 11:58
글의 전제 - 미해결글은 빨간색 볼드체다. 그 외에 검은색 볼드체 및 파란색 볼드체는 해결된 에러 사항이다. 글의 내용 - QEMU 64비트 연산(미해결) : 64비트 모드를 설정했는데, 64비트 데이터 타입이 64비트를 지원하지 않는다. - QEMU 자체에서 뭔가 설정할 필요도 없어보이는데, 문제를 잘 모르겠다. 램 사이즈를 4GB로 설정하긴 했지만, 사실 이 부분도 문제가 될 부분은 아니라고 생각된다. s64는 long long 이고, u64는 unsigned long long 이다. 그런데 2개다 모두 문제다. 아직 32비트 타입밖에 지원하지 않는 것 같다. 아직 확인이 더 필요한 사항이다. 램 사이즈를 256GB 허용하도록 했는데, unsigned long long 에 7GB 주소를 넣으면 위와 ..
-
[운영체제 만들기] 문자열 - 라이브러리프로젝트/운영체제 만들기 2023. 5. 18. 19:27
글의 참고 https://en.cppreference.com/w/ 글의 전제 - 내가 글을 쓰다가 궁금한 점은 파란색 볼드체로 표현했다. 나도 모르기 때문에 나중에 알아봐야 할 내용이라는 뜻이다. - 밑줄로 작성된 글은 좀 더 긴 설명이 필요해서 친 것이다. 그러므로, 밑 줄 처친 글이 이해가 안간다면 링크를 따라서 관련 내용을 공부하자. - `글의 참조`에서 빨간색 볼드체로 체크된 링크는 이 글을 작성하면 가장 많이 참조한 링크다. - `운영체제 만들기` 파트에서 퍼온 모든 참조 글들과 그림은 반드시 `이 글과 그림을 소스 코드로 어떻게 구현을 해야할까` 라는 생각으로 정말 심도있게 잠시 멈춰서 생각해봐야 실력이 발전한다. 글의 내용 - 문자열 길이 : 문자열 관련 처리는 대개 NULL문자를 기반으로 ..
-
[운영체제 만들기] 코딩 컨벤션프로젝트/운영체제 만들기 2023. 5. 16. 15:27
글의 참고 - 주 참고 글 - - 보조 참고 글(`주 참고 글`을 이해하기 위한 참고한 글) 글의 전제 - 내가 글을 쓰다가 궁금한 점은 파란색 볼드체로 표현했다. 나도 모르기 때문에 나중에 알아봐야 할 내용이라는 뜻이다. - 밑줄로 작성된 글은 좀 더 긴 설명이 필요해서 친 것이다. 그러므로, 밑 줄 처친 글이 이해가 안간다면 링크를 따라서 관련 내용을 공부하자. - `글의 참조`에서 빨간색 볼드체로 체크된 링크는 이 글을 작성하면 가장 많이 참조한 링크다. - `운영체제 만들기` 파트에서 퍼온 모든 참조 글들과 그림은 반드시 `이 글과 그림을 소스 코드로 어떻게 구현을 해야할까` 라는 생각으로 정말 심도있게 잠시 멈춰서 생각해봐야 실력이 발전한다. 글의 내용 - 정수형 변수는 되도록 이면 양의 정수가..