OSDev.org

The Place to Start for Operating System Developers
It is currently Thu Mar 28, 2024 6:27 am

All times are UTC - 6 hours




Post new topic Reply to topic  [ 4 posts ] 
Author Message
 Post subject: The Nightingale Operating System [v0.8.8]
PostPosted: Thu Jan 02, 2020 4:01 pm 
Offline

Joined: Sun Feb 25, 2018 1:14 pm
Posts: 3
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!

_________________
My OS: nightingale


Top
 Profile  
 
 Post subject: Re: The Nightingale Operating System [v0.8.8]
PostPosted: Sun Jan 05, 2020 4:09 pm 
Offline

Joined: Thu Oct 17, 2019 2:21 pm
Posts: 1
Good job! How did you implement lua? Also how do you run it from qemu? I cannot use the run.rb file.


Top
 Profile  
 
 Post subject: Re: The Nightingale Operating System [v0.8.8]
PostPosted: Sun Jan 05, 2020 5:20 pm 
Offline

Joined: Sun Feb 25, 2018 1:14 pm
Posts: 3
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.

_________________
My OS: nightingale


Top
 Profile  
 
 Post subject: Re: The Nightingale Operating System [v0.8.8]
PostPosted: Mon Jan 06, 2020 4:13 am 
Offline
Member
Member

Joined: Sat Dec 28, 2019 5:19 am
Posts: 47
Location: Iran
Hey I saw your code and it was pretty. I enjoyed it. you write clean and managed. good luck.

_________________
https://mmdmine.github.io


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC - 6 hours


Who is online

Users browsing this forum: No registered users and 23 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group