OSDev.org
https://forum.osdev.org/

The Nightingale Operating System [v0.8.8]
https://forum.osdev.org/viewtopic.php?f=2&t=36410
Page 1 of 1

Author:  tyler569 [ Thu Jan 02, 2020 4:01 pm ]
Post subject:  The Nightingale Operating System [v0.8.8]

Hey Everyone!

I wanted to share something I've been working on for the past few years on and off - this is the OS I've been working on, nightingale!

I can't give you a screenshot, since nightingale doesn't support any video output, but here's a paste of an interactive serial session showcasing some of my favorite features!

https://pastebin.com/raw/GL888kV1

Nightingale supports a vaguely UNIX-like userland, multiple processes, etc.

UNIX isn't a design goal, I'm just going that direction for now for ease of implementation (well documented interfaces to implement) and ease of porting.

I've already ported lua as a proof of concept, and I have a branch where I'm working on tcc.

If anyone is interested in giving it a try, I upload ISO images built by CI. There's a download link in the README, or you can grab it here, there are running instructions in the 'Running nightingale' section of the github README.

I hope someone finds something interesting here, and I am definitely open to any comments or suggestions!

Author:  charliehogger [ Sun Jan 05, 2020 4:09 pm ]
Post subject:  Re: The Nightingale Operating System [v0.8.8]

Good job! How did you implement lua? Also how do you run it from qemu? I cannot use the run.rb file.

Author:  tyler569 [ Sun Jan 05, 2020 5:20 pm ]
Post subject:  Re: The Nightingale Operating System [v0.8.8]

Thanks!

The qemu invocation I use is this:
Code:
qemu-system-x86_64 -cdrom ngos64.iso -vga std -no-reboot -m 32M -s -serial stdio -display none

It's also noted in the project readme if you want to refer to it later.

Getting lua building for the system was fairly easy, I had to hack up the makefiles to support my build system, but getting an executable that would run wasn't too hard thanks to lua's great portability. The main hurtle was improving my libc to the point where it would do anything useful. The main loop became (compile, stub out libc functions to get it to link, implement whatever function caused a failure at runtime).

There's still a bunch of functions stubbed out that you can see in nc/todo.c, stuff that I needed to have to link lua, but that I haven't exercised in any code I've run on it.

Lua was the catalyst for me to write most of the C stdio functions (fread, fwrite, etc) with FILE*s and buffering, as opposed to just using raw file descriptors, and that was where most of the time (and bugs) went for that project.

Author:  mmdmine [ Mon Jan 06, 2020 4:13 am ]
Post subject:  Re: The Nightingale Operating System [v0.8.8]

Hey I saw your code and it was pretty. I enjoyed it. you write clean and managed. good luck.

Page 1 of 1 All times are UTC - 6 hours
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/