Hi Kaushal,
Thanks for taking a look at Minoca. We'd certainly love the help. There
is a Wishlist document [1], some of those items are still relevant. The
suggestions you came up with were great, I can comment on each of them:
* Porting Go: I'd love to have this, great idea. I haven't gotten to it
yet since Go doesn't use the C library. You'd need to wire up Go's
system call interface to Minoca's libminocaos for each of the system
calls Go wants to use. Some of them might require a little glue code to
get Go the interface it's expecting, but given that libminocaos supports
POSIX, it should work fairly well. This would be a good project as even
partial progress can be used towards a final port.
* Audio: We have some basic support for intel hda and Raspberry pi 2 at
[2], but support for more drivers is sorely needed. The Intel drivers
were only tested on a few devices, there may be testing and debugging to
get them working on more modern platforms.
* Scheduling: Also a great suggestion. We've got some code for
scheduling and grouping, but the current scheduling algorithm is
basically round-robin plus stealing tasks from busy cores [3]. It works
reasonably well for the workloads we test, but there's certainly room
for improvement, and probably some low-hanging fruit. You'd want to add
some tests and instrumentation so you could see the effect on latency
and throughput your changes are having. We need that too.
Some other things that come to the top of my mind if you're looking for
other ideas:
* Write a driver. We need drivers for: NVMe, any Wifi part, missing
peripherals on Raspberry Pi, virtio, SDIO, and tons of USB peripherals.
* Try to get Firefox or Chromium ported onto the xorg server we already
have running. It would be very satisfying to see a browser running on
Minoca.
* Port Wayland/Weston to complement or replace the Xorg support we've
got in third-party.
* Write a RISC-V disassembler, and port enough of UEFI over to get
qemu-system-riscv connected to the Minoca debugger.
Let me know what you decide to do. I can also help provide code review
if you want to post PRs of your work in progress.
-Evan
[1]
https://github.com/minoca/os/blob/master/docs/WISHLIST.md
[2]
https://github.com/minoca/os/tree/master/drivers/sound
[3]
https://github.com/minoca/os/blob/master/kernel/ke/sched.c#L1129