Giter Club home page Giter Club logo

minos's Introduction

Minos

minos

The name mwi-nu (Minos) is expected to mean 'ascetic' as Sanskrit muni, and fits this explanation to the legend about Minos sometimes living in caves on Crete.

Step 1: adding kernel to grub CFG:

/boot/grub/grub.cfg

### BEGIN MYKERNEL
menuentry 'My OS'  {
    multiboot /boot/mykernel.bin
    boot
}

Step 2: How do I get this booting on the physical machine?!

I keep getting the error "warning: no console available for OS" when I try to boot physically on my MacBook from a USB. OK, so by my current understanding, I need to load my kernel in VGA mode and write pixels. Anything else is bunk, since macs literally don't have BIOS, and thus literally (?) can't boot into text mode (!) Can follow the OSDev UEFI bare bones tutorial. Very interesting how practically every resource available has firmly departed from ground reality (GRUB2, UEFI,...). Seems like This forum thread on OSDev has useful links to PC screen fonts and drawing in protected mode. Also, OpenCoreShell has a `legacy-switch-to-text.diff which explains how to enable text mode in Mac UEFI.

OSDev thread about ditching BIOS If you use the BIOS for booting that way, you set a graphics mode using VESA, then go to protected mode to set up the kernel after which you can't sanely return to set a different graphics mode. If you use UEFI for booting that way, you set a graphics mode using the GOP interface, then exit boot services to set up the kernel after which you can't sanely return to set a different graphics mode.

The main difference in practice is that VESA allows more modes and is more forgiving to hacks. ๐Ÿ˜‰

Additionally, if you use GRUB you can get both platforms and a graphics mode pre-set for free.

https://wiki.osdev.org/Stivale_Bare_Bones
B00byedge, the chaddest: Use limine :meme:
7:01 PM] 3DNow! in Ring 2: search for framebuffer in the multiboot1/multiboot2 spec
[7:01 PM] 3DNow! in Ring 2: keep in mind that it doesn't work in qemu by default (with -kernel)
[7:02 PM] 3DNow! in Ring 2: you need to create a script that installs grub in an image and runs it in qemu, but at that point i'd just use a (usually) better bootloader like limine
[7:24 PM] B00byedge, the chaddest: yeah you can get a framebuffer from multiboot but not qemu
[7:24 PM] B00byedge, the chaddest: qemu just pretends like you didn't ask for it
[7:24 PM] B00byedge, the chaddest: which honestly is kinda strange, would probably be pretty useful if it did

Tutorials

minos's People

Contributors

bollu avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.