https://github.com/katistix/simple-os
My personal learning journey for building a simple operating system from scratch.
https://github.com/katistix/simple-os
assembly bootloader kernel os x86 x86-64
Last synced: about 1 year ago
JSON representation
My personal learning journey for building a simple operating system from scratch.
- Host: GitHub
- URL: https://github.com/katistix/simple-os
- Owner: katistix
- License: mit
- Created: 2023-11-04T07:24:23.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-11-04T08:33:48.000Z (over 2 years ago)
- Last Synced: 2025-04-06T14:12:43.976Z (about 1 year ago)
- Topics: assembly, bootloader, kernel, os, x86, x86-64
- Language: Assembly
- Homepage:
- Size: 5.86 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Simple OS by Paul Tal / @katistix
"Readme generated by ChatGPT 😅"
Welcome to the Simple OS repository! This project serves as a personal learning journey for building a simple operating system from scratch, with a primary focus on the x86_64 architecture. While the primary goal is not to provide comprehensive OS-building tutorials, the repository will showcase the author's skills and serve as a portfolio project.
## Project Overview
The primary objectives of this project include:
1. **Learning Bootsectors**: Starting with a basic "Hello World" bootsector, the project will provide increasingly complex code for boot sectors. The initial bootsector, `hello_world.asm`, demonstrates how to print "Hello World!" on the screen using BIOS interrupts.
2. **Kernel Development**: As the project evolves, you will find code for developing a kernel. This will involve more advanced topics such as memory management, multitasking, and device drivers.
3. **Building a Simple OS**: Ultimately, the project aims to develop a basic operating system. This involves integrating the boot sector and kernel to create a functioning OS environment.
## Getting Started
If you're interested in exploring the code or following along with the project's development, you can clone the repository to your local machine:
```bash
git clone https://github.com/katistix/simple-os.git
```
## Prerequisites
For the recommended development environment, we suggest using Visual Studio Code with Dev Containers. To set up this development environment, follow these steps:
1. Make sure you have [Visual Studio Code](https://code.visualstudio.com/) installed on your system.
2. Install the [Visual Studio Code Remote - Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) if you haven't already.
3. Inside the repository, you will find a `Dockerfile` in the root directory. This `Dockerfile` contains instructions for the Dev Containers extension to build a Docker container for development.
4. Open the repository in Visual Studio Code and accept the prompt to "Reopen in Container" when asked. This will build a Docker container with the necessary tools, including NASM, and provide a consistent development environment.
## Usage
Once you have set up the development environment using Dev Containers, you can work with the code within the container. The development environment will include all the required tools and dependencies.
Feel free to explore and run the code snippets provided in the repository. You can build and test them in the Dev Container for a smooth development experience.
## Scripts
There's a `scripts` folder in the repository that contains some scripts for building and running the code. You can find more information about the scripts in the [scripts README](scripts/README.md).
## Contribution
Contributions to this repository are not the primary focus. However, if you discover issues or have suggestions for improvements, please feel free to create an issue or a pull request.
## License
This project is open-source, and the code is available under the MIT License.
Happy coding! 👨💻🌟