Porting QEMU to RedoxOS
redox-os.org
redox-os.org
Of the features you disabled, the main one to be reinstated seems to be slirp.
--enable-tools builds qemu-img, qemu-nbd and other tools. --enable-coroutine-pool is an optimization that should not be a problem for portability.
[1] https://drewdevault.com/2018/09/10/Getting-started-with-qemu...
When QEMU is used for emulating ARM boards or retro computing you can launch it from the command-line specifying just a few things like the path to a disk image file or the amount of RAM. There are a lot of command-line options and it can be overwhelming, but luckily they are usually not needed for these use cases.
Documentation is here but it's easier to start with a QEMU command-line recommended by the software (e.g. exotic OSes) you want to try out: https://qemu-project.gitlab.io/qemu/
There you go.
QEMU builds on a number of host operating systems, not all of them POSIX. We'd be happy to help!
While it's certainly useful to learn by rolling projects from the ground up, you can learn a whole lot more by contributing to an established project and experiencing how their code standards, review process, etc. all feel in comparison to other projects. One big thing I lacked was simply having someone say "We write static functions LIKE THIS because they have THAT ROLE within the scope of this project."
And yet now, we have plenty of projects and nobody contributing.
https://github.com/redox-os/redox/graphs/contributors
This graph doesn't look so healthy. Projects with one major contributor tend to die the moment that contributor loses interest.
Which leads me to wonder, if rust is so popular, and this is one of the most relevant rust projects in the wild, why is this essentially a single contributor repo? Linus didn't write Linux by himself. Redox is never going to happen with a single developer.
Doesn't anyone want a memory safe OS and micro kernel? What does this say about the demand for memory safe systems languages?
[1] An example I like, try to make sense of this https://cosmic.mearie.org/2014/01/periodic-table-of-rust-typ...
It is fun as a toy but developing on it is difficult.
Or I missed something.
Sadly their gitlab instance at the time was "email the dev to set up an account", so I just left it there.
The Gitlab had a "sign in with Github" feature at least since August 2019, which is when I created my account there.
The biggest barrier to adoption is lack of a working compiler.
Linux is GPL-2.0 while RedoxOS is MIT licensed. You can't use Linux driver code without relicensing Redox as GPL-2.0.
What you can do, however, is implement a Linux driver compatibility layer. Linux has NDISwrapper, which enables Linux to take advantage of Windows drivers for networking hardware. FreeBSD has Linux compatibility with linuxkpi and FreeBSD can use some Linux graphics drivers that way.
You can also port the drivers and keep them out of Redox's MIT source tree, too.
If you want to add drivers to Redox, you can do a clean room implementation by documenting how Linux interacts with the hardware it supports, and then writing drivers from those documents.
i've been watching with interest for a while, there's a lot to like about this project!
>"The non-goals of Redox"
>"We are not a Linux clone, or POSIX-compliant, nor are we crazy scientists, who wish to redesign everything. Generally, we stick to well-tested and proven correct designs. If it ain't broken don't fix it."
>"This means that a large number of standard programs and libraries will be compatible with Redox. Some things that do not align with our design decisions will have to be ported."
>"The key here is the trade off between correctness and compatibility. Ideally, you should be able achieve both, but unfortunately, you can't always do so."