I am new to Genode, and found the concepts good, and there seems to have been done some good work over the years on the OS and the tools for porting new software, however I got one major complaint about the whole project, everything seems organised like a hobby project.
What I am referring to is how each new “exotic” hardware platform gets its own repository on Github, instead of just an arch folder in the mainline Genode repo, or perhaps just a new branch until it is ready to be merged into mainline.
It is also a problem how the Genode repo contains “repos”, and in it, it contains a mess of files, including hello_tutorial, demo, base, os, pc, etc. This makes it impossible to know what is contained within without scrolling down and getting an explanation in the readme, or opening the folders. This is improper as the naming and ordering should be mostly self-explanatory, instead of jumping back and fourth in the readme and/or manual(s). It also makes no sense to put all of these files in the same folder, and from the readme it is not apparent why “base” and “pc” exists, and it isn’t clearly until entering “pc” that it is heavily tied to x86 platform.
It also gets apparent that the folder hierarchy is a mess when trying to get an idea of how goa works. If you go into goa/examples/hello_make/used_apis, it says genodelabs/api/base. Ok, where does this exist? Where does the posix api exist? There isn’t an api repo in genodelabs with such a name. There isn’t a folder named “api” in goa/share/goa (why is the name reused in the same tree?). There isn’t any apparent location inside genode/repos/base either.
It cannot be that one needs to put on their detective hat to figure out where things are, or get a general idea of their purposes without having to read the whole documentation and remembering it by heart. There is a reason why we don’t just use a random string generator for naming schemes, even if those names are well documented in the manual. So please reorganise and/or rename the folders/files/links so the project is maintainable by others than just people close to whomever wrote it to begin with.