Handmade Network»Forums»Work-in-Progress
51 posts / 2 projects
https://nakst.gitlab.io/
Operating System
Edited by nakst on
Hello,
Since Pseudonym73's operating system project is seemingly dead, I decided to start a little operating system project.
It's still very much a work in progress (and buggy), but any feedback/assistance would probably be appreciated.
Link: https://github.com/nakst/essence
Mārtiņš Možeiko
2562 posts / 2 projects
Operating System
Suggestion - don't do MBR & BIOS boot. Write and use UEFI bootloader. Everybody have seen (or can find on internet) how to write MBR bootloader for custom OS hundred times. But showing how to boot your kernel with UEFI bootloader - that kind of information is not easy to find and would be more valuable.
51 posts / 2 projects
https://nakst.gitlab.io/
Operating System
Maybe in the future. The MBR/BIOS bootloader is working fine for now, as far as I can tell. I want to program more features in first before I start worrying about that. You could make the same argument about how I'm using the PIC rather than the APIC, but I just want to get it working for now.
Simon Anciaux
1341 posts
Operating System
Will you document the process with explanations (text or video) ? I would really like to know how OS are made.
51 posts / 2 projects
https://nakst.gitlab.io/
Operating System
I don't have any plans for writing/recording tutorials, sorry. If you're interested in OS development though you should probably check out the Osdev forums .
117 posts
Code hacker/developer
Operating System
What type of "assistance" are you looking for? Just curious because I like OS stuff and I'll have a look at your project.

I agree with Martins that UEFI would be helpful to view, but I just fought my neighbor's UEFI system for almost a week so I get why you would choose MBR/BIOS instead lol.
Andrew Bromage
183 posts / 1 project
Research engineer, resident maths nerd (Erdős number 3).
Operating System
Edited by Andrew Bromage on
It's not dead, but the more the merrier.

FYI, I used GRUB for the bootloader, because I've written a bootloader a long time ago and didn't want to bother again. Well, kind of. GRUB loads and runs the loader, which runs the kernel. This has advantages on x86-64, because it means your kernel can be pure 64-bit code.

Also, I was booting off a CD image.

Good luck!
51 posts / 2 projects
https://nakst.gitlab.io/
Operating System
Edited by nakst on Reason: clarify who I'm talking to
@Todd
For right now, I'm not actually really looking for assistance, as the project is too much in its infancy, and trying to coordinate any other developers would be quite difficult, especially with the amount of bugs I still keep finding. I probably shouldn't have phrased it quite like it did; apologies for the confusion.
51 posts / 2 projects
https://nakst.gitlab.io/
Operating System
Edited by nakst on Reason: clarify who I'm talking to
@Pseudonym
Well, I'm glad to here you're still working on it!
Lewis Cowles
3 posts
Operating System
Just a comment RE: no documentation for how UEFI loaders would work.

Has anyone tried looking at Linux, sel4, or ReactOS?

I Understand it's a total PITA to pull apart a huge system, but it's probably going to be a heck of a lot faster than combing through various technical docs and posts on osdev. Also the micro-kernel project sel4 I mentioned might be lighter-weight as it's apparently completely tested, so all behaviour has been explained (quite the claim).

TBF I'm not sure how someone would improve upon existing projects, but I will admit the documentation of what has been done is either really well hidden, or non-existent (which is both a risk and a shame for the future)
51 posts / 2 projects
https://nakst.gitlab.io/
Operating System
CODESIGN2
Just a comment RE: no documentation for how UEFI loaders would work.

I'm not sure I understand what you mean by this. Searching "uefi documentation" on Google yields a ~3000 page PDF, and looking through its contents, it seems to have more than enough documentation to make a simple chain loader for a kernel.

CODESIGN2
Has anyone tried looking at Linux, sel4, or ReactOS?

I Understand it's a total PITA to pull apart a huge system, but it's probably going to be a heck of a lot faster than combing through various technical docs and posts on osdev.

From my experience so far, it's very difficult to learn anything from the codebases of large operating system projects. Posts on the osdev forums/wiki and decent technical documentation PDFs usually seem to me to be more informative than existing source code. There are usually careful design considerations in existing projects that are lost on the uniformed reader (and possibly bugs as well), so I would have to disagree with this approach.

(Apologies if any of this sounded rude; I'm typing this post on Android and its lagginess is annoying me.)

51 posts / 2 projects
https://nakst.gitlab.io/
Operating System
Update: I have written the kernel to the same functionality as before, but targeting x64 processors with SMP on ACPI systems.

In the screenshot an executable is loaded from a ext2 partition into a user-mode process that sends a test system call to the kernel.
51 posts / 2 projects
https://nakst.gitlab.io/
Operating System
Small teaser image!

Progress is good :)
Lewis Cowles
3 posts
Operating System
It's cool even if it's never more than a hobby. You've learned something I'd guess < 1% of people know. maybe < .001% (there are lots of decimals to play with between 100's and billions), so you're essentially an expert just by making this. Well done!
Lewis Cowles
3 posts
Operating System
nakst
(Apologies if any of this sounded rude; I'm typing this post on Android and its lagginess is annoying me.)


Totally NP, if you prefer a 3,000 page pdf to working tested code, that's your choice. I totally didn't read it with a tone, hopefully the same is true for this