프로젝트/운영체제 만들기
-
[x86] 인터럽트프로젝트/운영체제 만들기 2023. 6. 5. 18:14
글의 참고 - 64-ia-32-architectures-software-developer-vol-3a-part-1-manual.pdf - https://en.wikipedia.org/wiki/Interrupt - https://en.wikipedia.org/wiki/Interrupt_handler - https://en.wikipedia.org/wiki/Advanced_Programmable_Interrupt_Controller - https://linux-kernel-labs.github.io/refs/heads/master/lectures/interrupts.html 글의 전제 - 내가 글을 쓰다가 궁금한 점은 파란색 볼드체로 표현했다. - 밑줄로 작성된 글은 좀 더 긴 설명이 필요해서 친 것이다. ..
-
권한프로젝트/운영체제 만들기 2023. 6. 5. 14:33
글의 참고 - 64-ia-32-architectures-software-developer-vol-3a-part-1-manual.pdf - https://www.read.seas.harvard.edu/~kohler/class/05s-osp/notes/notes9.html - https://en.wikipedia.org/wiki/X86_memory_segmentation#Detailed_segmentation_unit_workflow - https://wiki.osdev.org/Security#Rings 글의 전제 - 내가 글을 쓰다가 궁금한 점은 파란색 볼드체로 표현했다. 나도 모르기 때문에 나중에 알아봐야 할 내용이라는 뜻이다. - 밑줄로 작성된 글은 좀 더 긴 설명이 필요해서 친 것이다. 그러므로, 밑..
-
C 런타임프로젝트/운영체제 만들기 2023. 6. 4. 17:55
글의 참고 - https://en.wikipedia.org/wiki/Crt0 - https://www.embecosm.com/appnotes/ean9/html/ch05s02.html - https://wiki.osdev.org/Creating_a_C_Library#Program_Initialization 글의 전제 - 내가 글을 쓰다가 궁금한 점은 파란색 볼드체로 표현했다. 나도 모르기 때문에 나중에 알아봐야 할 내용이라는 뜻이다. - 밑줄로 작성된 글은 좀 더 긴 설명이 필요해서 친 것이다. 그러므로, 밑 줄 처친 글이 이해가 안간다면 링크를 따라서 관련 내용을 공부하자. - `글의 참조`에서 빨간색 볼드체로 체크된 링크는 이 글을 작성하면 가장 많이 참조한 링크다. - `운영체제 만들기` 파트에서 퍼..
-
크로스 컴파일[작성중]프로젝트/운영체제 만들기 2023. 6. 3. 21:48
글의 참고- https://wiki.osdev.org/GCC_Cross-Compiler- https://wiki.osdev.org/Why_do_I_need_a_Cross_Compiler%3F글의 전제- 내가 글을 쓰다가 궁금한 점은 파란색 볼드체로 표현했다.- 밑줄로 작성된 글은 좀 더 긴 설명이 필요해서 친 것이다.글의 내용 - 크로스 컴파일 빌드" 어디에 크로스 컴파일을 설치할 지를 정해야 한다. 시스템 디렉토리가 있는 곳에 설치하는 것은 최악이다. 대개는, `$HOME/opt/cross` 혹은 `usr/local/cross`에 설치를 많이 한다. $HOME/opt/cross는 나에게만 적용되는 것이고, 해당 컴퓨터가 서버라면 전역적으로 설치해야 하므로, `usr/local/cross`에 설치를 많이..
-
GCC[작성중]프로젝트/운영체제 만들기 2023. 6. 2. 00:39
글의 참고 - https://gcc.gnu.org/onlinedocs/gcc/Standards.html - https://gcc.gnu.org/onlinedocs/cpp/Search-Path.html 글의 전제 - 내가 글을 쓰다가 궁금한 점은 파란색 볼드체로 표현했다. 나도 모르기 때문에 나중에 알아봐야 할 내용이라는 뜻이다. - 밑줄로 작성된 글은 좀 더 긴 설명이 필요해서 친 것이다. 그러므로, 밑 줄 처친 글이 이해가 안간다면 링크를 따라서 관련 내용을 공부하자. - `글의 참조`에서 빨간색 볼드체로 체크된 링크는 이 글을 작성하면 가장 많이 참조한 링크다. - `운영체제 만들기` 파트에서 퍼온 모든 참조 글들과 그림은 반드시 `이 글과 그림을 소스 코드로 어떻게 구현을 해야할까` 라는 생각으로 ..
-
GIT 명령어프로젝트/운영체제 만들기 2023. 6. 1. 15:17
글의 참고- https://git-scm.com/docs- https://git-scm.com/book/en/v2- https://en.wikipedia.org/wiki/Git글의 전제- 내가 글을 쓰다가 궁금한 점은 파란색 볼드체로 표현했다.- 밑줄로 작성된 글은 좀 더 긴 설명이 필요해서 친 것이다글의 내용- diff 관련 명령어 : git diff --staged : staging area에 있는 파일들의 diff를 보여준다. : git diff : Working area와 HEAD가 가리키는 소스와의 비교한 내용을 보여준다. : git diff [ branch1 ] [ branch 2 ] : branch1과 branch2의 diff를 보여준다. 주의할 점이 있다. branch 끼리 비교할 때는 서..
-
메모리 맵프로젝트/운영체제 만들기 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비트 커널을 모두 그냥 단순히 합쳐서 커널..