genodelabs / genode

Genode OS Framework
https://genode.org/
Other
1.07k stars 252 forks source link

Rename "Nitpicker" session to "Gui" session #3778

Closed nfeske closed 4 years ago

nfeske commented 4 years ago

Naming the session interface after the nitpicker GUI server was not a good idea because the name has no intuitive meaning. When looking at init configurations, the obscure name spoils the clarity. Hence, I'd like to rename the session interface to Gui. This is a change at two levels. At the code/API level, the Nitpicker namespace will be renamed to Gui. Second, at the configuration level - in particular the session routing - the server interface will be named "Gui".

For the latter, I intend to use "Gui" as opposed to "GUI" to follow the convention that only core services are written with all-uppercase letters. "Gui" is a non-core service like "Nic" or "Uart".

mewmew commented 4 years ago

In relation to the work on renaming the GUI session API - as it may already include a lot of API refactoring, I would like to start a discussion about something Daniel (@7i) and I have been curious about for some time. Namely, how difficult it would be to bring Wayland API over to Genode. The benefit would be that a lot of GUI frameworks and graphical applications would work out of the box, or at least, that would be the idealistic outcome. So the Wayland API wrapper could be similar that that of what Noux was for POSIX API.

I realize this is similar in spirit to the discussion in https://github.com/genodelabs/genode/issues/2084#issuecomment-264652653. This is mostly to keep it in mind when working on renaming the Nitpicker session, as potentially there could be more than one implementation of the Gui session? Where Nitpicker could be one.

Cheers, Robin

Edit: not entirely related, but I've been using Wayland as my primary display server on Linux for the last year or so. Firefox, Chromium and several other larger projects have now added native support for Wayland, just as a data point. It would be incredible to bring these over natively to Genode. Of course, for them to take full advantage of the capability-based security in Genode, they would have to be better integrated. But having them running natively in the first place would be a wonderful start.

nfeske commented 4 years ago

Hi Robin,

thanks for chiming in. The suggestion comes up every now and then but since I have never looked closely at the Wayland API, I'm unable to give a well-educated answer. However, here is what I know / what I think:

It's very considerate that you mentioned the discussion at https://github.com/genodelabs/genode/issues/2084#issuecomment-264652653 :-) I'd be excited about someone stepping forward committing to such work.

ttcoder commented 4 years ago

Robin: FWIW and in case it adds wind in your sails so to speak, I've found that Genode's framebuffer+Nitpicker API was easy to work with for porting another windowing display API to it (namely, make applications that use the InterfaceKit API compile and run as-is on Genode with Nitpicker; code can be found under my nickname on chiselapp.com). Still lots to do and stubbed out code I need to finish, but it was an enjoyable experience.

mewmew commented 4 years ago

Robin: FWIW and in case it adds wind in your sails so to speak, I've found that Genode's framebuffer+Nitpicker API was easy to work with for porting another windowing display API to it (namely, make applications that use the InterfaceKit API compile and run as-is on Genode with Nitpicker; code can be found under my nickname on chiselapp.com). Still lots to do and stubbed out code I need to finish, but it was an enjoyable experience.

Hi @ttcoder,

That's great! It's a really cool project you have for adding a Haiku compatability layer on top of Genode! Thanks for sharing both the project and your experience on porting a window display API to run on top of Nitpicker! :) This is very similar to what I had in mind.

Cheers, Robin

nfeske commented 4 years ago

Fixed in master.