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
-1
votes
1 answer

Linker error setting loading GDT register with LGDT instruction using Inline assembly

I was compiling my prototype of prototype of a kernel (sounds weird, but it really doesn't matter) and in the installation I need to link the ASM file to a C file compiled with gcc to get a executable that could be used as kernel. The problem is…
Rottenheimer2
  • 425
  • 1
  • 5
  • 13
-1
votes
2 answers

How to boot my OS in Virtualbox?

Here is my code: section .text ;section declaration ;we must export the entry point to the ELF linker or global _start ;loader. They conventionally recognize _start as their …
-1
votes
1 answer

How does this code to display to screen works?

I was going through the Kernel development tutorials all over the Internet when I found the bona fide OS development tutorials. I went through the code, but I could not understand this. The code is as follows : int main(void){ char *str = "Hello,…
Panther Coder
  • 1,058
  • 1
  • 16
  • 43
-1
votes
2 answers

How can I place an array at a specific address at boot time

I am writing a small hobby OS as a learning experience. It's aimed at a 32-bit x86 architecture. I am at the point where I need to create an initial page_directory so I can enable paging. At this point paging (and thus VM) is not enabled. I have a…
ErwinM
  • 5,051
  • 2
  • 23
  • 35
-1
votes
2 answers

C++ add up all bytes in a structure

Given a packed struct like this: struct RSDPDescriptor { char Signature[8]; uint8_t Checksum; char OEMID[6]; uint8_t Revision; uint32_t RsdtAddress; } __attribute__ ((packed)); How can I sum all of the individual bytes in it?
Makerimages
  • 384
  • 6
  • 27
-1
votes
1 answer

VirtualBox faliled to load .img or .flp file

I've tried to write a simple kernel in C. I've found this tutorial: Bare Bones. I've followed the steps. When I compiled the "o" files to one "bin" file, I tried to run this in VirtualBox. I've changed "bin" extension to "img". I've created a new…
uno20001
  • 211
  • 1
  • 5
-1
votes
2 answers

GRUB Multiboot header not found

After reading this this question and it's primary answer, I ran readelf on my kernel, and noticed my .text section was at 0x00101000 and not 0x00100000. I also noticed a section above that read .not.gnu.build-i that was in the place the .text…
-1
votes
1 answer

Tools needed for OS Development and Emulation

I saw lots of Good Tutorials about OS Development, but i don't know how to setup an emulator and test my OS. I also don't know which bootloader to choose, because i don't want to use GRUB - my OS will be lightweight and GRUB is heavy.
AvRT
  • 11
  • 1
-1
votes
2 answers

Kernel is not being loaded at correct address

Alright, I've been tearing out the remaining hair I have with this problem... Basically, I'm am trying to develop a very simple hobby OS. The OS will run on an X86 platform, off of a FAT12 floppy disk. Before I test it on my machine, I create a disk…
s0d4pop
  • 532
  • 4
  • 14
-1
votes
1 answer

Can't get my stage 2 bootloader to be found from FAT12 root directory

I'm following a guide on writing your own operating system. It starts with writing a 2 stage bootloader, where the first bootloader loads in stage 2. In the guide i am following, they have me use the FAT12 filesystem for the floppy image, so i'm…
Gogeta70
  • 881
  • 1
  • 9
  • 23
-2
votes
1 answer

How do you get memory data in C and Assembly with a kernel located at 0x1000?

Before I begin, I understand there may be similar questions to mine, but I do not see any questions that answer mine. If you really think you see one that answers my question, I respectfully ask you to tell me in the comments before closing my…
Tech
  • 37
  • 1
  • 8
-2
votes
1 answer

How to send data using DMA to PCI device?

How to program the DMA controller for sending/receiving data to/from a PCI device?
Richard--
  • 44
  • 8
-2
votes
1 answer

My OS boots on Qemu but triple faults on VMWare

I built an operating system and it successfully booted with qemu. However when I try to boot in on VMWare, a triple fault occurs. I used a floppy to boot it in both cases. How can I find the error code of the triple fault from VMWare? I tried…
mike
  • 100
  • 7
-2
votes
1 answer

How to implement a file system for operating system development

I am using Xfce Ubuntu and building on GCC 10.2. I want to use FAT filesystem or EXT2 filesystem for my hobbyist operating system. I want a specific instruction and specific code for this question, and I am using C to develop my OS. I I want to list…
Jihwan Ahn
  • 51
  • 1
  • 6
-2
votes
2 answers

Real mode interrupt works if I use call, doesn't work(won't execute) if I use INT

I was trying to add a system call to my REAL MODE operating system, and it will work if I write this: call [21h*4] however it just doesn't work if I try to call it with int 0x21 Here's the code I used to setup the system call: mov word…
1 2 3
72
73