Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mohammadhb/gootloader
Create your bootloader with Go.
https://github.com/mohammadhb/gootloader
assembly boot bootloader driver go golang
Last synced: about 1 month ago
JSON representation
Create your bootloader with Go.
- Host: GitHub
- URL: https://github.com/mohammadhb/gootloader
- Owner: mohammadhb
- License: mit
- Created: 2019-05-22T09:20:08.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-05-28T20:56:06.000Z (over 5 years ago)
- Last Synced: 2024-06-19T16:52:59.918Z (6 months ago)
- Topics: assembly, boot, bootloader, driver, go, golang
- Language: Go
- Size: 2.16 MB
- Stars: 11
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![alt text](https://github.com/mohammadhb/gootloader/blob/master/logo.png)
# Gootloader
Create bootloaders with Go.## Getting Started
Start with creating a Bootloader with your config :
```gobl := Bootloader{
Name: "myBootloader",
Arch: 1, // Bootloader Architecture
ModeBit: 16, // Bootloader Bit Mode
Loaddest: 0x7C00, // Destination of loading of bootloader in Memory
}
```Maybe Print a Message :
```gomessage := "Dear BIOS, Load me into ram and give the control flow to me please"
bl.print(message)```
Create Your Bootloader :
> This generates `bl.name`.asm file
```gobl.create();//AKA final file for bootloader
```
## Hello World Examplein main.go file :
```go
package main
import (
gootloader "github.com/mohammadhb/gootloader"
)func main() {
bl := gootloader.Bootloader{
Name: "MyFirstBootloader",
}bl.Print("Hello World!")
bl.Create()}
```
> run go run main.gp## Emulate and Testings the Bootloader
After you create your bootloader using `.create()`
You can use```bash
nasm boot.asm -f bin -o boot.bin && qemu-system-i386 -fda boot.bin
```> Caution : You must install nasm and qemu in your device to be able to emulate your bootloader (qemu-system-i386 is x86 arch in this example)