osdev Questions
1
Solved
I have been trying to create an ISR handler following this
tutorial by James Molloy but I got stuck. Whenever I throw a software interrupt, general purpose registers and the data segment register ...
1
Solved
I am developing a simple and small 64bit OS. Until now I've used a single file and compile it with NASM:
nasm -f bin os.asm -o os.bin
Then tested the .bin file with qemu.
Now I need to use multi...
Counsellor asked 1/6, 2019 at 18:11
2
Solved
In a previous Stackoverflow answer Margaret Bloom says:
Waking the APs
This is achieved by inssuing a INIT-SIPI-SIPI (ISS) sequence to the all the APs.
The BSP that will send the ISS seque...
2
Solved
Looking into the internals of Linux and memory management, I just stumbled upon the segmented paging model that Linux uses.
Correct me if I am wrong, but Linux (protected mode) does use paging for...
Meow asked 20/5, 2019 at 2:4
1
Solved
GGC's inline assembly can be difficult to implement properly and easy to get wrong1. From a higher level perspective inline assembly has some rules that have to be considered outside of what instru...
Naidanaiditch asked 15/5, 2019 at 21:50
1
Solved
I was engaged with an expert who allegedly has vastly superior coding skills than myself who understands inline assembly far better than I ever could.
One of the claims is that as long as an oper...
Clitoris asked 15/5, 2019 at 5:48
2
Solved
I am writing a GDT for a Kernel and all is going well, I'm following this tutorial.
http://www.osdever.net/bkerndev/Docs/gdt.htm
When link the C code to the assembly code he uses this piece of co...
Excavate asked 22/3, 2018 at 21:11
1
Solved
I have been following this guide for OS development OS Development on Windows
However, I do not like the windows development environment, and so I am trying to transfer these instructions over to ...
1
Solved
It's me again, I have a new problem in my idt.S file (Intel syntax compiled with gcc). When I try to compile the following code:
load_idt:
mov edx, (esp + 4) ; On this line
lidt (edx)
sti
ret
...
Flowerdeluce asked 3/3, 2019 at 15:25
2
Solved
I'm in 32-bit protected mode running at current privilege level (CPL=0). I'm trying to enter v8086 mode by setting EFLAGS.VM (Bit 17) flag to 1 (and IOPL to 0) and doing a FAR JMP to my 16-bit real...
1
Solved
Reading the documentation between Intel and AMD and looking at code makes it difficult at times to understand how to create a proper Task State Segment (TSS) that has no IO port bitmap (IOPB). Ther...
Outsell asked 25/2, 2019 at 23:4
1
Solved
I am developing a 32 bit, protected mode hobby operating system. At the moment, I am looking to add simple sound support. To do this, I'm looking to use the sound blaster 16 and use the direct mode...
Leakage asked 14/11, 2018 at 18:34
1
Solved
Well I have written a bootloader in assembly and trying to load a C kernel from it.
This is the bootloader:
bits 16
xor ax,ax
jmp 0x0000:boot
extern kernel_main
global boot
boot:
mov ah, 0x02 ...
1
Solved
from Wikipedia
On an IBM PC compatible machine, the BIOS selects a boot device, then
copies the first sector from the device (which may be a MBR, VBR or
any executable code), into physical mem...
Ambo asked 24/8, 2018 at 0:34
1
Solved
I'm writing a DOS clone for a school project and I'm trying to read some sectors from a floppy drive (mainly the root directory of a FAT12 file system, sector 19) using BIOS INT 13, 2. I set the pa...
0
In a comment to this question,
Unexpected behaviour in simple pointer arithmetics in kernel space C code,
Michael Petch wrote, "The 64-bit ELF format supports 32-bit code sections."
I have a worki...
2
Solved
I'm currently getting into bootloaders and kernel development (very much beginning)
I'm following a combination of
https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf
and the c...
1
Solved
I'm working on writing own little os. I already done booting, entering protected mode, some text printing and serial communication with qemu.
I've been trying to add interrupts for over two days. I...
Unhandled asked 25/2, 2018 at 2:44
3
I am building an 32 bit OS in assembly.
I have setup the IDT and I am handling program interruptus through int instruction.
How can I enable the syscall and sysenter instructions and how do I hand...
Jarrad asked 3/9, 2017 at 9:52
1
Solved
The OSDev wiki says that:
It is traditional and generally good to have your kernel mapped in every user process
Why is that though? Can't the process be mapped to memory solely? What are the a...
Carboni asked 20/10, 2017 at 10:57
4
Solved
In x86 Real Mode rebooting is very simple. You can either use the BIOS or:
jmp 0xFFFF:0000
But how should one reboot when in Protected Mode?
1
Solved
In the following x86 assembly code:
dd 0x1BADB002
dd 0x00
dd - (0x1BADB002+0x00)
The values don't seem to be assigned to any variables. So what does this snippet of code do? I've heard something...
1
Solved
I am writing an OS in Rust and need to directly call into a virtual address that I'm calculating (of type u32). I expected this to be relatively simple:
let code = virtual_address as (extern "...
Redoubt asked 9/9, 2017 at 19:41
1
Solved
this is the problem:
When I link my scripts in C, using ld, when I generate elf32-i386 files as output format in ld, putting it as OUTPUT_FORMAT() in the ld script, I dont have any error, but if I ...
Autotruck asked 31/7, 2017 at 17:55
1
Solved
What is the correct gnu assembly syntax for doing the following:
.section .data2
.asciz "******* Output Data ********"
total_sectors_written: .word 0x0
max_buffer_sectors: .word ((0x9fc00 - $data_...
Wilda asked 3/5, 2017 at 17:27
© 2022 - 2024 — McMap. All rights reserved.