Questions tagged [hobby-os]

Hobby OS is usually related to operating systems that are being built and maintained just for fun, or for learning purposes.

Hobby OS is usually related to operating systems that are being built and maintained just for fun, or for learning purposes. Generally, hobbyist operating systems are not used for commercial purposes and their purpose is not to generate income.

Hobbyist operating systems are often built on the C programming language, together with the Assembly language.

Most hobbyist OS use the CLI (command line interface), but there are advanced cases where the hobbyist OS can have a GUI (graphical user interface).

10 questions
11
votes
2 answers

Running assembly in an empty virtual machine instance?

How is it possible to run assembly code in an empty virtual machine (virtualbox, vmware) instance? I want to try writing a simple bootloader. My aim is to work for a hobby operating system.
tolga
  • 2,462
  • 4
  • 31
  • 57
7
votes
1 answer

How to write a simple soundblaster 16 driver using direct write mode for a hobby OS?

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 to write to the DAC (I want to avoid DMA at all…
7
votes
2 answers

How good can an operating system be in Real Mode?

There are real and unreal modes of x86 CPU, contrary to the protected mode. BIOS provides basic drivers to access hardware. Could those drivers be used by the OS? Sure MS-DOS is that kind of OS, but it also has memory limit issue. Wikipedia says…
exebook
  • 32,014
  • 33
  • 141
  • 226
4
votes
1 answer

Why would an end-of-interrupt for the master PIC cause a triple fault (reboot)?

Ok, in school we are developing an operating system. My project has been to develop an ATA hard disk driver. I thought I had my interrupt service routine working quite well when my professor pointed out that I was only sending end-of-interrupt…
Mr. Shickadance
  • 5,283
  • 9
  • 45
  • 61
3
votes
1 answer

Are ext2 directory entry names guaranteed to be null-terminated on a valid file system?

I thought this would be an easy question, but I can't find the answer. I've mainly been reading these specs: http://www.nongnu.org/ext2-doc/ext2.html It doesn't seem to mention if a directory entry's name is supposed to be null-terminated. I'm…
Mr. Shickadance
  • 5,283
  • 9
  • 45
  • 61
3
votes
4 answers

Port GNU C Library to minimal hobby OS

So I have a minimal OS that doesn't do much. There's a bootloader, that loads a basic C kernel in 32-bit protected mode. How do I port in a C library so I can use things like printf? I'm looking to use the GNU C Library. Are there any tutorials…
user2151887
  • 457
  • 1
  • 6
  • 9
2
votes
2 answers

How could an assembly OUTB function cause a triple fault?

In my systems programming class we are working on a small, simple hobby OS. Personally I have been working on an ATA hard disk driver. I have discovered that a single line of code seems to cause a fault which then immediately reboots the system. The…
Mr. Shickadance
  • 5,283
  • 9
  • 45
  • 61
2
votes
0 answers

In Cosmos, how do I use plugs properly?

I'm in the process of creating my own operating system with Cosmos, but I have a problem. I need help with plugs! So far I've managed to write my operating system using code that doesn't require plugs. But this makes my OS really limited. I can't…
0
votes
0 answers

Syscall causing 'invalid opcode' interruption

I'm implementing my own kernel. I have a problem when I try to use syscall instruction. I already defined the setup for syscall, but when i call syscall command the 'INVALID OPCODE' (Interrupt 6 (#UD)) interruption is called. I don't know what is…
Crazynds
  • 61
  • 1
  • 9
0
votes
1 answer

How to correctly display a TGA image in a framebuffer?

I've been working on my own hobby OS. I would like to display icons. For its simplicity, I chose the tga format. But it is impossible to have a correct image: it is completely distorted. Here is my code: struct tga_header { uint8_t magic1; …
pwhx
  • 1
  • 2