Questions tagged [osdev]

Operating System development: kernel, shell, networking, cross-compiling, etc.

An operating system is the base software that runs atop computers. It has at least two important roles:

  • it manages access to the underlying hardware, regulating competing access to the same resources from multiple programs;
  • it presents an extended machine for programs that is easy to understand and use.

Operating system development comprises several topics, like:

  • kernel;
  • supporting operating system utilities (e.g. the shell, networking, etc.);
  • cross compiling.

Resources

This community wiki contains links to several interesting resources and courses to get started on operating system development:

What are some resources for getting started in operating system development?

1093 questions
0
votes
1 answer

conflicting types for 'gettimeofday' while building newlib for cross compiler

while trying to build newlib 1.20.0... i followed this tutorial http://wiki.osdev.org/OS_Specific_Toolchain#newlib.2Flibc.2Fsys.2Fmyos but when trying to build newlib i get the following…
Saurabh7
  • 710
  • 1
  • 5
  • 18
-1
votes
0 answers

How to modify head.s in the linux0.11 source code to support 4GB paging and map the kernel space to 0xc0000000

https://github.com/mengchaobbbigrui/Linux-0.11code/blob/master/boot/head.s I want to modify it based on this head.s There is a problem that has been bothering me here, that is, the default paging in the Linux 0.11 source code is equal mapping, that…
CHAOSYD
  • 15
  • 1
  • 5
-1
votes
0 answers

problems with the loop in my kernel which is written by c++

I'm trying to print an 'A' by my kernel, but there is a big problem. First, I have a array which is named "font_A" static unsigned char font_A[16] = { 0x00,0x18,0x18,0x18,0x18,0x24,0x24,0x24,0x24,0x7e,0x42,0x42,0x42,0xe7,0x00,0x00 }; This code…
-1
votes
1 answer

How to implement the OpenGL API in a custom arm os

I'm developing an operating system targetting the ARM architecture, more specifically, a RaspberryPi 4B. For that I've already managed to use the "Mailbox Property Interface" to draw some shapes on the screen. Out of curiosity I would like to know…
-1
votes
1 answer

How to get IRQ Pins in PCI

I was creating some drivers and I found my self stuck in the IRQ Pins, my kernel uses IOAPIC and I don't know how this interrupt mechanism (IRQ Pins) works and how to get them and use them. Can anyone give a detailled answer on how to use them to…
git_lk1
  • 76
  • 1
  • 8
-1
votes
1 answer

SCANF function only records first letter pressed

I am working on a simple OS in C++, and am trying to implement the keyboard without using interrupts (yes I'm being lazy-) however the char* returned by the function only has one letter (the first one pressed) It uses a variable called MAX_16, which…
-1
votes
1 answer

Find location of GRUB2/Multiboot 'module' (aka initrd)

I am working on an OS, and need to load an INITRD (grub command "module") and can't find info on where (in RAM) the module is loaded to Does grub have a way of telling me or is it a fixed address or none of the above? Any help would be appreciated
-1
votes
1 answer

How to get keyboard ASCII input and save it to a value in .data in x86_64 Assembly?

So as my question states, how do you get the ASCII key code from keyboard input as an integer value, then I want to save that value in a dataword inside of .data so I can then place the dataword into a different function. input: ; get ASCII for…
Comedy
  • 23
  • 5
-1
votes
1 answer

How will first megabyte memory layout be changed in Protected Mode?

As far as I understand when we are in x86 Real Mode the first megabyte memory layot looks like that: Will memory layot be changed once we jump to Protected Mode? I know that we can access video memory by the same address like we did it the Real…
daniil_
  • 707
  • 7
  • 26
-1
votes
1 answer

How to move cursor with mouse?

I am developing a realmode operating system in x86 assembly. I managed to move cursor with keyboard, but I want to move the cursor with mouse. I don't know how. I found int 33h deals with the mouse, but I can't seem to move the cursor using int 33h.
fsdfff
  • 121
  • 8
-1
votes
1 answer

When I modify code the disk image becomes unbootable

I'm developing an operating system in assembly language. When making changses o the code the output file isn't seen as bootable. This is my code: BITS 16 start: mov ax, 07C0h ; Set up 4K stack space after this bootloader add ax, 288 …
fsdfff
  • 121
  • 8
-1
votes
1 answer

Writing an OS in C language

I would like to know if an operating system can be written in only a language such as C .Can it be done using only C or do I need to use the inline assembly with c?
preciousbetine
  • 2,959
  • 3
  • 13
  • 29
-1
votes
1 answer

NASM: `loader.s : 8: error: parser: instruction expected`

I am trying to do some low level programming using NASM. I know a fair amount of Assembly, and trying to compile what I think is perfectly sound code results in: loader.s:8 : error: parser: instruction expected What is wrong here? Here is my…
Safal Aryal
  • 155
  • 1
  • 8
-1
votes
1 answer

Why is this the EBP register value?

I'm currently developing Operating System. In the process of Paging, I'm creating a page fault handler. write_cr0 : push ebp mov ebp, esp mov eax, dword[ebp+8] mov cr0, eax pop ebp retn In the page fault handler, set the PG bit in the cr0 register…
장우종
  • 9
  • 2
-1
votes
1 answer

Qemu debugging an assembly kernel

I am writing an OS in assembly (the bootloader and the kernel) and I am debugging it using QEMU. I want to set some debug breakpoints to pause the executions and execute only one instruction at the time (single step).Also i want to read and set the…
ARISTOS
  • 336
  • 3
  • 7