osdev

    3

    2답변

    나는 보통의 메모리 액세스가 가상 주소를 물리적 주소 변환을 위해 페이지 테이블을 통과한다는 것을 알고있다. 하지만 PTE 수정은 어떨까요? OS가 프로세스의 페이지 테이블 항목을 수정하려고하고 프로세스의 페이지 테이블을 통과합니까? 즉, 페이지 테이블에 항목 자체를 가리키는 항목이 있습니까?

    23

    1답변

    저는 약간의 OS 개발을 OSDev.org에서 배우고 있습니다. 커널이 있고 qemu를 사용하여 GRUB Legacy (0.97)에서 부팅하려고합니다. 내가 kernel 200+9를 입력 할 때 그러나, 나는이 내가 (나쁜) 부분을 제외하고 기대되는 메시지 [Multiboot-elf, <0x100000:0x80:0x4008>(bad), entry=0x100

    1

    1답변

    저는 LILO bootsect.s와 GRUB stage1.s을보고있었습니다. LILO는 하드 코딩 된 특정 섹터에서 물건 (또는 무언가)을로드합니다. 설치시 패치 할 수있는 예약 된 바이트는 사용하지 않습니다. 드라이브에 홀로있는 것이 아니라 파티션에 있다면 어떻게 작동합니까? LILO는 bootsec.s에게 디스크에있는 위치를 어떻게 알려주므로로드해야 할

    1

    1답변

    GRUB을 부트 로더로 사용하여 몇 주 동안 작업 한 후, 어떻게 작동하는지 이해할 수 있도록 자신을 롤업해야한다고 결정했습니다. Brokenthorn의 인터넷 자습서 (현재 http://www.brokenthorn.com/Resources/OSDev9.html에 있음)를 발견했습니다. 보호 모드로 전환하려고하면 멀리 떨어진 후에 CPU 하드웨어가 재설정됩

    3

    2답변

    GCC 및 ld 사용에 대한 지식이 부족하기 때문에 전문가의 도움을 요청합니다. 교육 목적으로 OS를 작성하고 컴파일하는 데 문제가 있습니다. 및 C 코드 연결. 정직하기 위해, 더는 문제가되지 않습니다,하지만 난 정말 어떤 매개 변수에 모두 사용 알 필요가 GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 symtab..strta

    3

    1답변

    부트 로더는 2 단계로 구분됩니다. 첫 번째 스테이지는 어셈블리로 작성되고 두 번째 스테이지는 두 번째 스테이지 만 C에로드됩니다. Stage1은 C에서 0x0500 : 0 주소로 코드를로드하고 거기서 점프합니다. Stage2는 "hello message"를 작성하고 중지해야합니다. 어쩌면 내가 삭제 shouldt objcopy의 somethnig으로 삭제

    2

    1답변

    FAT12 파일 시스템을 기반으로 부트 섹터를 작성했습니다. 잠시 후 나는 문제를 생각해 냈다. .FindBootSectorTwo: push SI push DI push CX mov CX, 11 mov SI, BootloaderSTG2 rep cmpsb pop CX pop DI

    3

    1답변

    A20 gate에 대한 질문이 있습니다. 나는 최신 CPU가 구형 20 비트 버스 대신 32 비트 주소 버스를 가질 때 나타나는 "랩 어라운드"주소 문제를 해결하는 메커니즘이 존재한다고 말하는 기사를 읽는다. 랩 어라운드를 처리하는 올바른 방법은 A20-A31 비트가 아닌 모든 비트를 해제하는 것입니다. 문제를 처리하기 위해 비트 A20 만 끄는 것만으로

    3

    2답변

    내 OS의 외부 프로그램으로 플랫 이진 파일을 사용하고 있습니다. 컴파일 할 때 다음과 같이하면된다 : 그러나 이렇게하면 문자 배열의 내용이 파일에 저장되지 않는다. 이건 내 코드입니다 : 00008000 <_start>: 8000: 55 push ebp 8001: 89 e5 mov ebp,esp 8003: a1 70 90 00 00

    3

    3답변

    적어도 한 번 이상 자신의 삶에서 세계의 모든 프로그래머로서, 나는 "혁신적인"새롭고 유일한 운영 체제를 만들려고 노력하고 있습니다. : D 글쎄, 가상 에뮬레이터 (Oracle VM Virtual Box)를 사용하고 있는데,이를 위해 vnmdk 디스크를 사용하여 새로운 unknwon 운영 체제를 만듭니다. vmdk는 보통 파일이기 때문에 가상 하드 디스크