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
0 answers

NASM cannot display string

I'm trying to convert the barebone c kernel listed in osdev c kernel to assembly language using NASM. The c version work just fine but somehow I screw up in the asm. The program first initialize the video buffer with bg and fg color, then attempts…
tongko
  • 139
  • 2
  • 10
0
votes
1 answer

How can I initialise the GDT?

I'm making an operating system and I'm stuck at the GDT. I've tried different tutorials, such as http://www.osdever.net/bkerndev/Docs/gdt.htm and http://www.jamesmolloy.co.uk/tutorial_html/4.-The%20GDT%20and%20IDT.html, but my os crashes always. How…
user7330717
0
votes
1 answer

How does this OSDEV Identity map work for PAE Paging?

I'm trying to understand as best I can what this OSDEV tutorial is on about. I have read the AMD64 programmers manaul (vol.2) chapters 4 and 5 as suggested, but I do not understand what happens when he goes through this loop: mov ebx,…
Mike
  • 175
  • 1
  • 13
0
votes
0 answers

Raw binary entry point

I'm having issues in specifying the entry point for my hobby OS kernel. There is a simple bootloader that loads the kernel code to 0x6400000 address and jumps there. Then I have this linker command which outputs kernel with the starting address: ld…
PovilasB
  • 1,488
  • 1
  • 15
  • 25
0
votes
0 answers

ACPI _PS0 failing with UNINITIALIZED_ARG

I have a touchscreen controller (which is an I2C slave) that I need to enable via APCI. This should be done by calling the _PS0 ACPI method. I call this method by using AcpiEvaluateObject with no arguments and no return…
jklmnn
  • 481
  • 1
  • 5
  • 11
0
votes
0 answers

Some functions of the Kernel (Screen Driver) don't compile properly - osdev

I am building an OS kernel. I face a problem when some of the functions aren't compiled properly. I compile the code using a gcc compiler on a Linux subsystem on Windows. But when I compile the code, it isn't getting beyond 13833 bytes. This creates…
Anish Sharma
  • 314
  • 3
  • 18
0
votes
0 answers

Accessing a memory location by looping through a pointer array returns unwanted results - osdev

I am developing a physical memory manager for my OS. So, to get the memory map, I used the BIOS int 0x15, eax = 0xE820 interrupt to get the memory map. I store the map at a location (0x7e00) and then loop through each entry and try to store it in a…
Anish Sharma
  • 314
  • 3
  • 18
0
votes
1 answer

How to put a pixel on the screen?

I'm looking for information how to insert a pixel into the screen in my own operating system. I care about the resolution of 1920x1080, 16K colors and to do it without bios interruptions. Ideally, the resolution and number of colors will depend on…
0
votes
0 answers

SATA driver; AHCI port initialisation; Start (ST) command list;

I have an issue with initialising and running AHCI port on my devboard. Processor has SATA host controller with 2 ports implemented (port 0 & port 1). SSD drive w/ SATA interface is connected to the port 1. According to "Serial ATA AHCI 1.3.1…
user3124812
  • 1,861
  • 3
  • 18
  • 39
0
votes
1 answer

Can someone expain how I use this C data structure that comes from grub? I don't understand hi mem and lo mem

Grub is a multiboot compliant boot loader. When it boots an operating system it creates a structure defining the available memory and leaves a pointer to that structure in memory. I got that information…
Philluminati
  • 2,649
  • 2
  • 25
  • 32
0
votes
1 answer

ASM error in NASM

I am having an issue with this piece of code: loop : jmp loop times 510 -( $ - $$ ) db 0 dw 0 xaa55 It is giving me an error saying: boot.asm:6: error: comma expected after operand 1 I don't know what is…
user6481546
  • 31
  • 1
  • 8
0
votes
0 answers

How to assign work to each core on ARM Cortex A53?

How to run 4 different functions separately on each core of ARM Cortex A53 generally (for cortex A53 CPUs at least, if possible) while using Aarch64 instruction set in kernel mode? I got User Manual for my CPU. I am asking because of lack Internet…
ttdado
  • 164
  • 1
  • 1
  • 10
0
votes
1 answer

Linker is unable to find standard libraries

I am writing a C++ kernel for my own hobby operating system. I work on a mac, and compiled a working (until now) cross-compiler out of gcc version 4.8.2. Currently I have a kernel.cpp file, containing only a main() function and when I compile and…
Pieter
  • 103
  • 4
0
votes
1 answer

Error: Invalid combination of opcode and operands - nasm

I am creating a small routine to load the idtr register with lidt instruction. I have created this code - global load_idt load_idt: mov eax, esp add eax, 4 lidt eax ;<-----------------LINE 9 ret But when I compile this using…
Anish Sharma
  • 314
  • 3
  • 18
0
votes
0 answers

The Kernel starts behaving abnormally when the kernel code gets a little bigger

I am developing an OS kernel. I am facing a problem that till a particular size of the kernel - 8KB it runs perfectly but as it gets just a little over 8KB, it starts behaving abnormally. The clear screen function doesn't work, the scrolling…
Anish Sharma
  • 314
  • 3
  • 18