Skip to content

IlanVinograd/OS_32Bit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview Version 0.7

OS_32Bit is a 32-bit operating system designed to showcase technical capabilities and serve as a platform for learning and collaboration. It is entirely open-source, inviting contributions from the developer community.

Images/BG test.gif

Core Components:

  • Kernel Entry
  • Virtual Memory
  • Multitasking (Round Robin)
  • Task Switching
  • Interrupt Handling (IDT)
  • Global Descriptor Table (GDT)
  • Task State Segment (TSS)
  • Utility Libraries
  • Input/Output
  • Memory Detection
  • Time and Date
  • Test and Debug

Installation

This section provides the necessary steps for installing the operating system, including system requirements, installation guides, and booting instructions.

  • Do Fork + Clone Repository:

    gh repo fork    https://github.com/IlanVinograd/OS_32Bi  t.git --clone=true
    gh repo star IlanVinograd/OS_32Bit
  • System Requirements: A basic development environment with Docker installed.

  • For GUI QEMU: Required install -> VcXsrv, When you start VcXsrv, choose "Multiple Windows" and ensure that "Disable access control" is checked.

  • Installation Guide: Follow the steps below to build and run the OS using Docker.

  • Booting Instructions: Run the bootloader through Docker and QEMU.

Build the Docker Image

To build the Docker image, use the following command:

cd Code
docker build -t os_32bit .
cd ..

Run the Project

  • Run the project using either CMD or PowerShell with the following commands.

    CMD

    docker run --rm -e DISPLAY=host.docker.internal:0.0 -v %cd%\Code:/usr/src/bootloader os_32bit
    

    OR

    Powershell

    docker run --rm -e DISPLAY=host.docker.internal:0.0 -v "$(Get-Location)/Code:/usr/src/bootloader" os_32bit
    

Cleaning Up Containers

  • You can stop and remove all running and stopped containers using the commands below.

  • NOTE: Always clean the containers to free up resources!

    CMD

    for /f "tokens=*" %i in ('docker ps -q') do docker stop %i
    for /f "tokens=*" %i in ('docker ps -a -q') do docker rm %i
    

    OR

    Powershell

    docker stop $(docker ps -q) ; docker rm $(docker ps -a -q)
    

Important Note: Save and Run

  • After making changes to your code, always save your changes before testing.

  • To test the updated code, you must run the docker run command again to start a new container with the latest changes.

    CMD

    docker run --rm -e DISPLAY=host.docker.internal:0.0 -v %cd%\Code:/usr/src/bootloader os_32bit
    

    OR

    Powershell

    docker run --rm -e DISPLAY=host.docker.internal:0.0 -v "$(Get-Location)/Code:/usr/src/bootloader" os_32bit
    

Documentation

Comprehensive documentation is provided to help you understand the core concepts and contribute to the project effectively.