OS Development Archive

  • Should I use a physical or virtual memory model?

    Should I use a physical or virtual memory model?

    One of the most important considerations for your OS kernel is memory management. For all but the very simplest of environments, your kernel is going to need memory allocation and deallocation (free) facilities. This, of course, means carving off a “chunk” of memory each time...

    Full Story

  • Identifying installed floppy drives

    Identifying installed floppy drives

    If you’re implementing support for floppy drive controllers in your hobby OS kernel, then one of your first tasks is to identify what floppy drives are installed in the system. This is pretty easy to do, as we can interrogate the system configuration to find...

    Full Story

  • Detecting when a floppy disk is changed or missing

    Detecting when a floppy disk is changed or missing

    In a floppy disk controller device driver, we can check if a floppy disk has been changed or is missing by telling the controller to select the drive and switch it’s motor on, then checking if the DISK CHANGE bit is asserted in the Digital...

    Full Story

  • Enabling paging vs. the GDT “wrap around” trick

    Enabling paging vs. the GDT “wrap around” trick

    When writing our standalone code for the OS nucleus or kernel, one of the first problems we have to deal with is the difference between our linked addresses (i.e. the load addresses defined by the linker) versus the actual address we are loaded at by...

    Full Story

  • Creating VirtualBox (VDI) hard disk images on OpenSolaris

    Creating VirtualBox (VDI) hard disk images on OpenSolaris

    While testing my hobby OS nucleus (kernel) code, it is sometimes useful to be able to create disk images containing a file system and any files I need that I can then load into a virtual machine. One of the virtual hosts I like to...

    Full Story