https://github.com/tralahm/simple-os-kernel
Operating System Development is one of the most Technically Involving Pursuits for a Computer Scientist.From writing kernels, to multi-stage boot-loaders, to device drivers, getting your hands dirty.
https://github.com/tralahm/simple-os-kernel
32-bit 64-bit assembly bios bootloader cpp11 firmware grub kernel ld nasm-assembly os tralahm tralahtek
Last synced: 3 months ago
JSON representation
Operating System Development is one of the most Technically Involving Pursuits for a Computer Scientist.From writing kernels, to multi-stage boot-loaders, to device drivers, getting your hands dirty.
- Host: GitHub
- URL: https://github.com/tralahm/simple-os-kernel
- Owner: TralahM
- License: mit
- Created: 2020-06-04T06:53:49.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-06-04T17:32:15.000Z (over 5 years ago)
- Last Synced: 2025-01-13T08:45:23.646Z (9 months ago)
- Topics: 32-bit, 64-bit, assembly, bios, bootloader, cpp11, firmware, grub, kernel, ld, nasm-assembly, os, tralahm, tralahtek
- Language: C++
- Homepage:
- Size: 12.7 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.rst
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
[](https://travis-ci.com/TralahM/simple-os-kernel)
[](https://simple-os-kernel.readthedocs.io/en/latest/?badge=latest)
[](https://opensource.org/licenses/MIT)
[](https://github.com/TralahTek)
[](http://dwyl.io/TralahM/simple-os-kernel)
[](https://github.com/TralahM/simple-os-kernel/pull/)
[](https://github.com/TralahM/simple-os-kernel/pull/)
[](https://github.com/TralahM)# simple-os-kernel.
This is an OS development experimentation i am carrying out using C(or actually) C++, and assembly to develop my own operating system.
Simple targeted at 32-bit system architectures.It leverages the *Bootloader* **GRUB**
## Tools you need to develop an OS
- An **Assembler**
An Assembler takes your assembly code and give's you the low-level outputs like an object containing your controls on CPU registers the assembler here I use is NASM(netwide assembler).- A Cross-Compiler
In order to develop an operating system, you must have a cross compiler because you must compile your kernel for it's executable format here i use **GCC**(gnu compiler collection) .- A **Linker**
The linker take's your objects and link them to getter here i use GNU **binutils**.- A **Virtual** **Machine**
In order to test your operating system, you must have a vm(virtual machine) but it isn't necessary here i use *virtualbox*.[](https://github.com/TralahTek)
[](https://github.com/TralahM)
[](https://github.com/TralahM)# How to Build and Install
```console
$ git clone https://github.com/TralahM/simple-os-kernel.git
$ cd simple-os-kernel
$ make clean
$ make
$ make iso
```An ISO image will be built which you can test with *QEMU*, Virtualbox, or create a bootable disk.
# Contributing
[See the Contributing File](CONTRIBUTING.rst)[See the Pull Request File](PULL_REQUEST_TEMPLATE.md)
# Support
# LICENCE
[Read the license here](LICENSE)
# Self-Promotion
[](https://twitter.com/TralahM)
[](https://github.com/TralahM)
[](https://kaggle.com/TralahM)
[](https://linkedin.com/in/TralahM)
[](https://tralahm.tralahtek.com)
[](https://tralahtek.com)