top | item 11411070

Show HN: ExDOS 64-bit version source code release

39 points| omarrx024 | 10 years ago | reply

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

order
[+] groovy2shoes|10 years ago|reply
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.

[+] nekopa|10 years ago|reply
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.

[+] astrodust|10 years ago|reply
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?

[+] analognoise|10 years ago|reply
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.

[+] omarrx024|10 years ago|reply
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.
[+] guilloche|10 years ago|reply
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?

[+] ams6110|10 years ago|reply
According to about page on his website, the author is "a 14-year old computer hobbyist."

Quite impressive!

[+] vmorgulis|10 years ago|reply
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
[+] omarrx024|10 years ago|reply
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.
[+] striking|10 years ago|reply
Looks like v86 doesn't support 64bit stuff, and ExDOS doesn't support not being 64bit.
[+] ludamad|10 years ago|reply
Is it able to run user-created programs? And if so, with what tools?
[+] omarrx024|10 years ago|reply
Not yet, because I am rewriting the multitasking subsystem.