본문 바로가기

[64비트 멀티코어 OS 원리와 구조] 5장 - 플로피 디스크에서 OS 이미지를 로딩하자 - BIOS 기능을 사용해서 플로피 디스크를 제어하자 - 가상 OS 이미지를 만들고 로딩한다 5.1 BIOS 서비스와 소프트웨어 인터럽트 - BIOS의 기능은 소프트웨어 인터럽트를 호출해서 사용한다. - 인터럽트 벡터 테이블은 메모리 어드레스 0에 존재한다. 테이블의 각 항목은 인덱스에 해당하는 인터럽트가 발생했을 때 처리하는 함수 어드레스가 저장되어 있으며, 4바이트다. - 인터럽트는 최대 256개까지 설정 가능하다. 그래서 리얼 모드의 인터럽트 벡터 크기는 최대 1024 바이트다. - BIOS는 레지스터 방식으로 파라미터와 결과값을 주고받는다. AX, BX, CX, DX 레지스터와 ES 세그먼트 레지스터를 사용해서 파라미터를 넘겨주며 결과값도 레지스터를 통해 넘겨 받는다. 디스크 구조 (3.5인치, .. 더보기
[64비트 멀티코어 OS 원리와 구조] 4장 - 내 PC를 부팅하자 4.1 부팅과 부트로더 - 부트로더는 OS의 나머지 코드를 메모리에 복사해 실행시킨다. 부트로더는 대부분 512바이트의 코드다. - 부팅은 PC가 켜지고 OS가 실행되기 전까지 수행되는 일련의 작업 과정이다. 프로세서 초기화, 메모리와 외부 디바이스 검사 및 초기화, 부트로더를 메모리에 복사하고 OS를 시작하는 과정등이 포함된다. - 부팅 과정에서 하드웨어 관련 작업은 BIOS가 담당하고, 여기서 하는 각종 테스트나 초기화를 POST라고 한다. - BIOS는 메인보드에 포함된 펌웨어의 일종으로, 보드에 롬이나 플래시 메모리 형태로 존재하고, 전원이 켜지면 프로세서가 가장 먼저 실행하는 코드다. - 여기서 가장 중요한 작업은 부트로더 이미지를 메모리로 복사하는 단계다. 이 단계는 우리가 BIOS에서 처음으.. 더보기
[64비트 멀티코어 OS 원리와 구조] 2장 - OS 개발 환경을 구축하자 나는 맥을 사용하기 때문에 환경설정은 이 책을 보고 따라하기 힘들었음 (책은 윈도우 기반) 그래서 아래 내용도 맥 기준으로 다시 작성하였습니다. 1. GCC 설치 - GCC는 GNU Compiler Collection. 무료로 사용할 수 있는 컴파일러 관련 프로그램의 집합. (공식 사이트: https://gcc.gnu.org/) - mac os는 리눅스 계열이므로 gcc가 설치되어 있을 수 있음. - 확인은 c 확장자 파일을 생성해서, c언어를 이용해서 아무 코드나 작성해 놓고, 아래 명령어로 컴파일이 되는지 확인하면 된다. gcc -m32 -o test32 test.c gcc -m64 -o test64 test.c gcc - 컴파일 명령어 -m32 옵션: 32비트용 코드를 생성(참고: https://g.. 더보기