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

Bootloader memory location

This is a part of a bootloader that I am studying from `[ORG 0x00] [BITS 16] SECTION .text jmp 0x07c0:START ; set CS(segment register) to 0x07C0 and jump to START label. TOTALSECTORCOUNT: dw 0x02 KERNEL32SECTORCOUNT: dw …
Quaxton Hale
  • 2,460
  • 5
  • 40
  • 71
0
votes
1 answer

Are so many keyboard controller wait calls needed when enabling the A20 gate

From the OSDev page on the A20 line, the code for enabling A20 is given as: enable_A20: cli call a20wait mov al,0xAD out 0x64,al call a20wait mov al,0xD0 out 0x64,al call a20wait2 in …
Cygnus
  • 3,222
  • 9
  • 35
  • 65
0
votes
1 answer

How to to scan for connected devices using assembly

I am writing a new operating system for learning and exploration purposes. And I would like to be able to scan the machine for connected devices (network, keyboard, HDDs, and what have you). This will be used as a first step to install the…
feeling_lonely
  • 6,665
  • 4
  • 27
  • 53
0
votes
1 answer

How to write a Hello World Bootloader for MIPS?

I'm learning MIPS Assembly by the book MIPS Assembly Language Programming, but my I've just started learning MIPS because I want to build a MIPS OS, but now as I can see, there isn't any documentation talking about boot and these things. Then I'm…
Nathan Campos
  • 28,769
  • 59
  • 194
  • 300
0
votes
2 answers

Find how many free and used page there are in a address range

I'm trying to port liballoc on a small kernel that I'm writing for my thesis. In order to do that, I need a function that scan a range of address to find free (and used) pages. I wrote that function that scan from and address (it should be pagetable…
Luca D'Amico
  • 3,192
  • 2
  • 26
  • 38
0
votes
2 answers

How to print a string in protected mode in c

I am starter in os Deving and manage to make a bootloader and then a kernel.I cam successfully jumped to protected mode and transfer the control to kernel.I able to write single characters but printing string is not working.This is my printString()…
0
votes
1 answer

How to efficiently render a 24-bpp image on a 32-bpp display?

First of all, I'm programming in the kernel context so no existing libraries exist. In fact this code is going to go into a library of my own. Two questions, one more important than the other: As the title suggests, how can I efficiently render a…
zhiayang
  • 574
  • 1
  • 5
  • 14
0
votes
2 answers

Is it bad that a process should self create an own stack?

Is it bad that a process should self create an own stack? If a kernel does not want to do it. Like here _start: mov $stack_head, %rsp jmp main .data .align 8 stack: .quad 0 .quad 0 .quad 0 .quad 0 stack_head: or using the…
user2616346
  • 465
  • 1
  • 5
  • 12
0
votes
1 answer

OS development - converting logical block format to Cylinder-Head-Sector

I am referring BrokenThorn's OS development tutorial, and currently reading the part on developing a complete first stage bootloader that loads the second stage - Bootloaders 4. In the part of converting Logical Block Address (LBA) to…
Cygnus
  • 3,222
  • 9
  • 35
  • 65
0
votes
2 answers

E: Unable to find a source package for gcc-4.8.1

I trying to follow the instruction from this site to build an i386-elf cross-compiler. At first I tried to download a cross-compiler from the mirrors the author provided. But when I noticed that those mirrors where out dated I decided to build the…
Isaac D. Cohen
  • 797
  • 2
  • 10
  • 26
0
votes
2 answers

ARM memory mapping: INT15 equivalent? Standard way to query memory map?

On PC-architectures (where the presence of the BIOS and the usage of it is pretty much standardized), you can discover the size of the RAM memory, as well as its reserved/free for use regions by using the INT15 BIOS interrupt, function 0xE820. Since…
Zuzu Corneliu
  • 1,594
  • 2
  • 15
  • 27
0
votes
1 answer

Accessing bytes out of page

I have very simple question. I'm not able to find the answer on my own as I don't have any environment to test it. If I access 4 bytes on the edge of page, what will happen? mov eax, dword [0x100000+4095] What will be the upper three bytes when I…
user35443
  • 6,309
  • 12
  • 52
  • 75
0
votes
1 answer

x86 Video memory clear screen crash

I am currently writing a 32 bit kernel for my operating system, but i've stumbled upon a problem. When trying to clear screen using method from here, bochs crashes with the following message: [CPU ]prefetch: getHostMemAddr vetoed direct read,…
themorfeus
  • 277
  • 1
  • 3
  • 17
0
votes
3 answers

BIOS INT 0x15 Function 0x88 always returns same memory size

I'm using BIOS int 0x15 on my Bochs emulator, however this always returns the same memory size (34440) no matter what I have configured: mov ax, 0x88 int 0x15 I know that there are better methods of memory detection, but I wanted to understand why…
Justin
  • 84,773
  • 49
  • 224
  • 367
0
votes
2 answers

What is meant by multiboot header?

What is meant by multiboot header ? While going through the tutorials on how to make an OS. I came across this term.
saplingPro
  • 20,769
  • 53
  • 137
  • 195