Page 1 of 1

microNET

Posted: Wed Dec 02, 2020 9:57 am
by austanss
Announcing microNET, the micro operating system.

The vision for microNET is for use in systems where performance is crucial, such as RasPi, embedded operations, etc., but also have compatibility with commonplace .NET/Windows applications so as to be useful.

Our GitHub: https://github.com/microNET-OS

Currently, we do not have support for ARM, as our vision suggests, nor do we have any compatibillity layer.

Though we do currently have a reasonably developed OS for testing out your typing skills.

:lol:

Our current features:

1. UEFI support
2. 64-bit support
3. Graphics mode driver
4. Interrupts
5. Keyboard input

Please, we need your help with testing the OS on real hardware. It's a one man team here, and I only have so many computers...

Re: microNET

Posted: Wed Dec 02, 2020 10:08 am
by bloodline
I'm not going to build it, do you have a prebuilt disk image I can boot with Qemu?

Re: microNET

Posted: Wed Dec 02, 2020 10:38 am
by PeterX
I would be willing to build it from source and test it on real HW, but I don't know how to build it, since it is spread over 4 repositories.

Greetings
Peter

Re: microNET

Posted: Wed Dec 02, 2020 10:42 am
by austanss
My latest release in the microCORE repository has a full ISO.

Re: microNET

Posted: Wed Dec 02, 2020 10:43 am
by austanss
You can also, to build from source, clone the microNET repository. Then you run make clone and then make image or make qemu

Re: microNET

Posted: Wed Dec 02, 2020 2:44 pm
by nexos
rizxt wrote: but also have compatibility with commonplace .NET/Windows applications so as to be useful.
That is possible, but note that Wine and ReactOS have been in development for maybe 20 years and still have fairly low compatibility. You can try, and if you want to, go for it. Just know it won't happen overnight :) . I wanted to do the same, and now I have more OSDev experience, emulating Unix is hard, let a lone Windows API. And no, your signature doesn't apply to what I am saying, because you can do it, it is just very very hard. Good work so far, though :D .

Re: microNET

Posted: Wed Dec 02, 2020 3:32 pm
by bzt
rizxt wrote:Please, we need your help with testing the OS on real hardware.
I took a quick look at your source, and I'm 100% sure it won't start in qemu for several reasons. Most likely it will simply triple-fault. There's no way I'm going to risk trying this on a real hardware.

Please ask for testing help if you can boot your OS properly in at least one emulator.

Cheers,
bzt

Re: microNET

Posted: Wed Dec 02, 2020 4:29 pm
by PeterX
rizxt wrote:My latest release in the microCORE repository has a full ISO.
There isn't an ISO in the microCORE repo.

Greetings
Peter

Re: microNET

Posted: Wed Dec 02, 2020 5:22 pm
by austanss
bzt wrote:
rizxt wrote:Please, we need your help with testing the OS on real hardware.
I took a quick look at your source, and I'm 100% sure it won't start in qemu for several reasons. Most likely it will simply triple-fault. There's no way I'm going to risk trying this on a real hardware.

Please ask for testing help if you can boot your OS properly in at least one emulator.

Cheers,
bzt
I've tested this on my computer and it works perfectly fine, and it boots in QEMU perfectly fine, with OVMF (no CSM).

Not sure about the latest source, but the latest release boots perfectly fine.

Re: microNET

Posted: Thu Dec 10, 2020 10:56 am
by eekee
nexos wrote:
rizxt wrote: but also have compatibility with commonplace .NET/Windows applications so as to be useful.
That is possible, but note that Wine and ReactOS have been in development for maybe 20 years and still have fairly low compatibility.
This seems to be more like Mono than Wine. I'm not sure, but I think many developers try to keep compatibility with Mono or even develop for it directly. This must help keep the .NET software ecosystem portable, if you get what I mean. And, as ReactOS uses Wine code (IIUC), microNET might perhaps use Mono code. I don't know whether it's efficient or not, but I assume it can't be bad.

Re: microNET

Posted: Thu Dec 10, 2020 12:59 pm
by bzt
rizxt wrote:I've tested this on my computer and it works perfectly fine, and it boots in QEMU perfectly fine, with OVMF (no CSM).
Please forgive me, but seeing things like this makes me sceptical:

Code: Select all

setupPaging:
	; Fetch the pointer to the paging directory
	mov rax, [rsp + 4]
	mov cr3, rax
There's no way this won't crash really badly.

This popa also guaranteed to crash. And calling pusha will do exactly nothing.

Not to mention the hardcoded, unaligned, arbitrary addresses like this:

Code: Select all

uint32_t *buffer = (uint32_t *)0xB00B1E5;
What was your intention, anyway? What if that address is not free and used by an UEFI run-time service on a real machine?
eekee wrote:microNET might perhaps use Mono code. I don't know whether it's efficient or not, but I assume it can't be bad.
They might want to take a look at https://www.nanoframework.net/ (I'm not sure how portable that is, but at least there's a ChibiOS port and its .NET interpreter is MIT licensed).

Cheers,
bzt