osdev

    3

    1답변

    MBR을 작성하고 QEMU을 테스트 용으로 사용하고 있습니다. read sectors into memory (int 0x13, ah=0x02)을 사용하는 경우 int 명령이 내 프로그램 실행을 차단하는 것으로 보이며 중단됩니다. 필자는이 명령어가 블로킹인지 확인하기 위해 다양한 print 문을 테스트했습니다. 인터럽트 블록을 만들 수있는 요인은 무엇입니까?

    1

    1답변

    주 - 페이징은 아직 설정되지 않았으며 커널은 멀티 부팅, ELF입니다. 나는 irqs 및 isrs 해. 나는 멀티 부팅 헤더를 구문 분석 할 수 있습니다, 내 kernel.c 여기 menuentry "fOS-Terminal (25x80)" { multiboot /boot/fos.elf module /modules/program.bin

    1

    3답변

    내 OSDev의 OS에 대한 키보드 드라이버를 만드는 중이라서 그리고 난 내 kbd.c에 문제가 있습니다 int scancoderec() { __asm__ volatile("movl $0, %eax"); /* Moving 00 to EAX. */ __asm__ volatile("int $0x16 "); /*int 0x16 */ r

    3

    1답변

    현재, 처음부터 아주 작은 OS를 작성하려고합니다. 불행히도, 첫 번째 단계에서 나는 미친 듯이 움직이는 문제에 직면했다. 내 부트 로더로 다음 코드를 작성합니다. 다음 단계에서 .code16 #generate 16-bit code .text #executable code location .globl _start; _start:

    0

    1답변

    Stdio 라이브러리에 fprintf 기능이 있습니다. 그러나 사용 방법은 무엇입니까? 첫 번째 인수는 FILE 유형입니다. 하지만 EFI_FILE_PROTOCOL* File은 내가 가지고있는 EFIOpenFile 기능입니다. FILE 유형으로 매핑하는 방법은 무엇입니까?

    2

    1답변

    나는 자신의 OS를 숙제로 쓰고 있는데, 나는 C 코드에 문제가있다. 내 부팅 헤더와 링커 파일뿐만 아니라 'H'를 출력하고 내 C 코드를 호출하는 간단한 어셈블러 스크립트를 설정했습니다. 어셈블러 코드는 비디오 메모리에 잘 인쇄됩니다 (저는 0xb8000으로 인쇄하고 있습니다).하지만 C 코드의 while 루프는 인쇄되지 않습니다. const char *

    1

    1답변

    현재 저는 대학 과제를 수행하는 데 기본 OS를 사용하고 있습니다. 나는 x86 어셈블리 언어로 일하고있다. Bochs에서 응용 프로그램을 실행할 때 위의 오류가 발생하여 부트 로더의 두 번째 단계로 전환하는 데 문제가있는 것 같습니다. 테스트 결과, 오류는 응용 프로그램이 메모리에서 프로그램을 올바르게 읽지 못했기 때문에 발생했습니다. 부트 로더의 첫 번

    0

    1답변

    취미 게임 운영 체제 용 C++ 커널을 작성하고 있습니다. 나는 맥에서 일하고 gcc 버전 4.8.2에서 작동하는 (지금까지) 크로스 컴파일러를 컴파일했다. 현재 kernel.cpp 파일이 있는데이 파일을 컴파일하고 링크 할 때 main() 함수 만 포함하면 모든 것이 정상적으로 작동합니다. /opt/cross/gcc-i686-elf/lib/gcc/i686

    1

    2답변

    부트 섹터 프로그래밍 (https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf 및 https://www.youtube.com/watch?v=YvZhgRO7hL4)에 대한 Nick Blundell의 자습서를 따르고 있습니다. 내 코드는 내 qemu 에뮬레이터에서 정상적으로 작동하지만 실

    2

    1답변

    NASM을 사용하여 부트 로더를 작성하려고 했으므로 OSDEV가 매우 유용하다는 것을 알게되었습니다. 그러나 페이징 설정, GDT로드 또는 실제 모드에서 직접 전환 중일 때 시스템이 재부팅되는 오류가 있습니다. 내 코드는 Long mode OSDEV article에 기반을 두었습니다. GDT 페이징 및 스위치 gdt_start: .gdt_null: eq