Show HN: ExDOS 64-bit version source code release

39 points by omarrx024 ↗ HN
Hi! I'm just posting to announce the release of the source code of the 64-bit version of my hobby OS, ExDOS. My site is here: http://exdos.co.nf/ and my source code is on GitHub: https://github.com/omarrx024/exdos64 It's licensed under GNU GPL v3 and has many improvements over it's old 32-bit version. This one has a truly functional ACPI driver on real hardware, a window-based GUI, a real disk driver independent of BIOS, and some other things.

27 comments

[ 1.8 ms ] story [ 34.3 ms ] thread
That OS is also developed by me, but it was 32-bit and had design issues. So I redesigned it and rewrote it in 64-bit and here it is.
Thanks, That was my guess. I posted the link to add context and because the progress since is pretty awesome.
any long-term plan to add 32-bit compatibility, probably?
This is amazing, good work!

Can I ask what references you used to figure out how to write certain pieces of this? There is a torrent of information online, but you've probably got a very good (curated) set of links or books that you recommend.

Well, I've never read a real book about OS development. But I can recommend the OSDev Wiki and Forum, and of course the specifications of everything you need. I've used Intel's Development Manual Volume 3 as reference, as well as ACPI's specification, and some others.
Very cool!

It (almost) runs on copy.sh V86 emulator: https://copy.sh/v86/

I see the boot process with dots (like linux) and after I have the following message with a red background (if that can help):

    ExDOS64 version 0.01 built 26.03.2016
    =====================================
    Boot error: CPU is not 64-bit capable...
The last lines of the Javascript console:

   [CPU ] mode=real/16 paging=0 vm=0 iopl=0 cpl=0 if=1 cs:eip=0xF000:0x0000FFF0 cs_off=0x000F0000 flgs=0x202 ss:esp=0x0000:0x00000F32 log.js:13:9
   [CPU ] far return eip=0x0000CB01 cs=0xF000 stack_adjust=0x0
Looks like v86 doesn't support 64bit stuff, and ExDOS doesn't support not being 64bit.
It clearly says "Boot error: CPU is not 64-bit capable..." which means your CPU is not 64-bit. The V86 emulator doesn't support 64-bit mode and so can't run ExDOS.
According to about page on his website, the author is "a 14-year old computer hobbyist."

Quite impressive!

Very impressive. Maybe it can be used in unikernel with freestanding applications.

Some Suggestion: do not focus on GUI at first, since it will not be usable soon as desktop OS anyway.

I could imagine that a barebone ExDos to manage multiple unikernel ExDOS virtual machines as web services is quite useful.

Any comments?

Is it able to run user-created programs? And if so, with what tools?
Not yet, because I am rewriting the multitasking subsystem.
Looks really cool.

One thing, though:

> tiny

> RAM: 64 MB required, 192 MB recommended.

That doesn't seem particularly tiny to me. I have an old Pentium II box with 32 MB of RAM that runs the latest release of OpenBSD with X, and I don't consider OpenBSD particularly tiny, either.

At risk of sounding like a crotchety old man, these are sad times to be living in when 64 MB is considered tiny.

Classic DOS barely took up kilobytes of memory. I think that qualifies as "tiny". Megabytes is downright bloated by comparison.

Considering this is written in assembly, what is all that memory used for?

Well, for one thing, it's a graphical OS.
What does that have to do with anything? Windows 3.1 had a minimum RAM requirement of 1 MB. The base model of the Apple Lisa 2, which featured a graphical OS, had 512 KB of RAM. It's possible to have graphics without requiring so much RAM.
Well, graphics rendering can take up many MB on its' own...
Because I don't have a proper heap yet. And so everything takes up 2 MB pages.
In all fairness, I think tiny in this case refers to the fact that the OS is only 200kb. From the openBSD install guide:

OpenBSD can be installed in as little as 512MB, but using that small of a device is something for advanced users.

It might say that, but to be honest I had no difficulties installing on my box with 32 MB RAM. I didn't even have to do anything special; I just followed the normal installation procedure. It's not blazing fast by any means, but it does boot and it does work :)
Disk size, not RAM. How large a hard drive are you using?
Ah. The HDD has 4 GB. This thing was top-of-the-line back in '98 when it was purchased ;)