handmade.network » Forums » Work-in-Progress » Operating System
nakst
8 posts
If I ever sound angry, it's because I just found a bug ...
#12474 Operating System
4 months, 1 week ago Edited by on Sept. 29, 2017, 4:46 p.m.

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

None
mmozeiko
Mārtiņš Možeiko
1505 posts
1 project
#12475 Operating System
4 months, 1 week ago

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.
nakst
8 posts
If I ever sound angry, it's because I just found a bug ...
#12481 Operating System
4 months, 1 week ago

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.

None
mrmixer
Simon Anciaux
286 posts
#12488 Operating System
4 months, 1 week ago

Will you document the process with explanations (text or video) ? I would really like to know how OS are made.
nakst
8 posts
If I ever sound angry, it's because I just found a bug ...
#12493 Operating System
4 months, 1 week ago

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 .

None
Todd
94 posts

I use x86-64 assembly, Python, C, and SQL to fight malware.

#12510 Operating System
4 months, 1 week ago

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.

I'm the smartest man in Athens because I know that I know nothing. ~ Socrates
Pseudonym
Andrew Bromage
173 posts
1 project
(tbd)
#12517 Operating System
4 months, 1 week ago Edited by Andrew Bromage on July 17, 2017, 7:04 a.m.

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!

sub f{($f)[email protected]_;print"$f(q{$f});";}f(q{sub f{($f)[email protected]_;print"$f(q{$f});";}f});
nakst
8 posts
If I ever sound angry, it's because I just found a bug ...
#12521 Operating System
4 months, 1 week ago Edited by on July 17, 2017, 8:57 a.m. 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.

None
nakst
8 posts
If I ever sound angry, it's because I just found a bug ...
#12522 Operating System
4 months, 1 week ago Edited by on July 17, 2017, 8:58 a.m. Reason: clarify who I'm talking to

@Pseudonym
Well, I'm glad to here you're still working on it!

None
CODESIGN2
Lewis Cowles
1 posts
#12599 Operating System
4 months ago

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)
nakst
8 posts
If I ever sound angry, it's because I just found a bug ...
#12634 Operating System
4 months ago

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.)


None
nakst
8 posts
If I ever sound angry, it's because I just found a bug ...
#13051 Operating System
2 months, 2 weeks ago

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.

None
nakst
8 posts
If I ever sound angry, it's because I just found a bug ...
#13553 Operating System
4 days, 13 hours ago

Small teaser image!

Progress is good :)

None