osdev

    3

    2답변

    "hello world"를 인쇄하는 C로 데스크탑 OS를 만들었습니다. 나는 C에서 내 OS 용 GUI (사용자 정의 창 관리자, 버튼)를 만들려고 노력하고 있지만 문제가 있습니다. http://www.osdever.net/tutorials/view/gui-development 이 C의 데스크톱 운영 체제에있는 GUI 자습서의 모든 종류가 있습니다 : 나는

    5

    1답변

    운영 체제 사용자 모드 응용 프로그램의 가상 주소 공간이 비공개이므로 한 응용 프로그램이 다른 응용 프로그램에 속한 데이터를 변경할 수 없습니다. 각 응용 프로그램은 독립적으로 실행되며 응용 프로그램이 충돌하는 경우 충돌은 해당 응용 프로그램으로 제한됩니다. 다른 응용 프로그램과 운영 체제는 충돌의 영향을받지 않습니다. 커널 모드 OS에서 메모리를 보호하지

    2

    1답변

    부팅 할 때 할당 된 메모리가 필요합니다. 가상 주소가 아닌 실제 주소가 필요합니다. 또한, 나는 DMA 지역에서 그것을 원하지 않는다. 그것은 나의 목적이 아니다. alloc_bootmem(), alloc_bootmem_pages()를 시도했지만 가상 주소를 반환했습니다. 또한 alloc_low_page()를 보았습니다 ... 예상대로 잘 작동하지 않았습

    5

    1답변

    취미 OS의 CPU 감지 및 일반 환경 감지 코드 작업 중입니다. CPUID를 여러 번 호출해야하는 경우가 있습니까? 즉, 시스템에 여러 개의 코어가있는 경우 각 코어에서 CPUID를 호출해야합니까? NUMA와 동일합니다. AMD 및 Intel CPUID 설명서는이 점에서 분명하지 않습니다. osdev 위키에서 호출하는 CPUID가 Detecting CPU

    3

    3답변

    C++로 커널을 개발 중입니다. 하지만 나는 stdlib을 쓰고 싶지 않습니다. 그 목적을 위해 STLporthttp://www.stlport.org/을 다운로드했지만 어떻게 설치하고 사용하는지 모르겠습니다. 커널을 빌드 할 때 Linux를 사용하고 있습니다. 커널에서 C++ 표준 라이브러리를 어떻게 사용할 수 있습니까? 그리고 STLport에서 모든 라이

    4

    1답변

    현재 취미용 OS, 특히 ATA 드라이버에서 작업 중입니다. 인터럽트가있는 PIO 데이터 인 명령에 몇 가지 문제가 있습니다. 각 블록에 대해 인터럽트 발생과 함께 블록 단위로 드라이브에서 여러 섹터를 읽으려면 READ MULTIPLE 명령을 실행하려고합니다. 4 블록 (블록 당 1 섹터)의 읽기를 요청하면. 각 인터럽트는 각 데이터 블록 당 하나씩 4 개

    3

    1답변

    C로 운영 체제를 개발 중이며 페이징에 어려움을 겪고 있습니다. 메모리를 할당하고 실제 및 가상 페이지 할당을 처리하는 저수준 메모리 할당 출력을 출력하여 루프에서 커널 힙을 테스트하고 있습니다. PDE 0, 모든 페이지 0-1023에 대한 잘 작동하지만 다른 물리적 주소 할당 시작하면 즉시 PDE 1에 할당 이동할 때, 페이지 오류가 너무 본 플래그를 설

    1

    1답변

    일부 외부 어셈블러 기능과 인터페이스해야하는 운영 체제를 작성 중입니다. 나는 헤더에 선언을 넣어 : 코드가 실행됩니다 namespace Kernel { class DescriptorTables { public: void init(); void gdt_set_gate(s32int,u32int,u32int,

    3

    1답변

    32 비트 x86 프로세서의 일부 OS 개발의 일부로 페이지 오류 벡터에 대한 인터럽트 설명자 테이블의 작업 게이트 사용을 고려하고 있습니다. 목표는 핸들러의 스택이 맵핑되도록 보장되도록 (그리고 인터럽트 된 태스크의 스택의 일부가 맵핑되지 않은 경우를 피하도록) 태스크 전환을 강제 실행하는 것입니다. QEMU에서 커널을 실행 중이지만 페이지 폴트가 발생하

    0

    1답변

    idt.c이라는 파일이 있는데이 파일에서 어셈블리에서 idt_load 함수를 호출해야합니다. 자, 어셈블리 파일에서 변수 idtp에 액세스해야하고 변수가 idt.c에 선언되어 있다는 것을 제외하고는이 작업이 정상적으로 작동합니다. 링커에서 idt_load가 정의되지 않았거나 idtp가 정의되지 않았습니다. 어떻게 작동시킬 수 있습니까? idt.c의 관련 부