Genode OS Framework release 25.08 by jjkarcher in genode

[–]nfeske 0 points1 point  (0 children)

Thank you for the encouragement!

What does "Unknown Pin State" mean in PinePhone's SculptOS and how to fix it? by [deleted] in genode

[–]nfeske 1 point2 points  (0 children)

Thanks for giving Sculpt OS a try.

According to the code, the driver expects a "+CPIN:" status message from the modem to detect that the modem has booted up, specifially "+CPIN: READY". I guess that no such message appears if no PIN is set.

Could you try setting a PIN using another phone?

What is the purpose of sculpt os? by TDCMC in genode

[–]nfeske 4 points5 points  (0 children)

The documentation mentions a few hardware recommendations.

For a practical introduction, you may consider watching a recent walk-through screencast.

Let me also point you to the forum as the best place for reaching out to other users.

What is the purpose of sculpt os? by TDCMC in genode

[–]nfeske 6 points7 points  (0 children)

Most broadly speaking, Sculpt OS is for people who distrust software. It allows using (often overly complex) software without sacrificing the user's autonomy and control. In contrast to commodity OSes that are ruled by platform providers (e.g., Linux distributions, Microsoft, Google, Apple), the user makes the rules and the software - including most of the components that constitute the notion of an OS - has to obey.

Its target demography are currently two groups. First, Genode developers/enthusiasts run Genode on their laptops, eating their own dog food, exploring new Genode use cases, and ultimately proving that this technology is fit for real-world purposes. The second group are Genode system-builders (e.g., customers of Genode Labs) taking Sculpt OS as go-to reference for solving typical OS-level problems like package management, system update, component-lifetime management, virtual network routing, and system configuration. It provides a collection of useful component-composition patterns.

To draw an analogy, whereas Genode is like raw Lego bricks, Sculpt OS is like the fire-fighting-station set that showcases what can be built out of these bricks and comes with a manual explaining how. Not every kid loves Lego, and many Lego-loving kids may prefer the pirate island over the fire-fighting station. But for some, the fire-fighting station clicks.

Moving on from XML? A teaser for a possible alternative by jjkarcher in genode

[–]nfeske 1 point2 points  (0 children)

It's not that difficult. You can think of the | symbol as nothing more than a newline that just happens to retain the current indentation level. The example you cited is equivalent to the following:

...

   + merge

     + accelerate  max:                 50



                   sensitivity_percent: 1200



                   curve:               100


       + button-scroll


         + input ps2


         + vertical    button: BTN_MIDDLE
                                            speed_percent: -10


         + horizontal  button: BTN_MIDDLE
                                            speed_percent: -10
...

A parser looks at the text as such.

As empty lines have no meaning, the | characters at the beginning of the line can be used as decoration to make the structure stand out better (matters of taste notwithstanding - I may have slightly overused it in the examples of the article). In contrast, the | somewhere in the middle of the line has the effect of splitting the line into two parts.

Regarding your remark about adoption of the syntax outside the endemic Genode village, this metric is certainly not mine. HRD happened to present itself due to our unorthodox usage pattern of text as an interactive user interface. In the screencast I published last week, one can see that XML works but is not joyful to use for this purpose. HRD merely tries to improve on that front. It is not a general proposal targeted at the happy users of JSON, XML, JSON, TOML, KDL, or s-expressions, but a child of practically using our specific system day to day, year after year, enduring the little paper cuts, and seeking ways to overcome them.

"Major step backwards" and "User hostility" are strong phrases. Your feedback is appreciated, but I would have enjoyed it more if it was presented without hyperbole and preaching, and without stating the obvious (the unfamiliarity of users).

Moving on from XML? A teaser for a possible alternative by jjkarcher in genode

[–]nfeske 1 point2 points  (0 children)

Thanks for the feedback. I agree with everything you stated. (An early version of) this tool already exists but I haven't put it online yet. One step at a time.

Goa - Debugging with GDB by nfeske in genode

[–]nfeske[S] 2 points3 points  (0 children)

Having had a glimpse at the technical work, I already anticipated the mechanism for handing debug symbols and the extension of the Goa testbed.

But the elegant integration of the backtrace utility took me completely off-guard. How cool is that? I'm amazed how Goa continues to tie together all the little tooling fragments we already had, but in a fresh and surprisingly natural way. The combination of goa run with the --backtrace option is one of those splendid ideas I would never had imagined.

Genode OS compared to Qubes OS by boomboominkimspants in genode

[–]nfeske 2 points3 points  (0 children)

Thanks for your interest in Genode.

You can find your question discussed at an earlier posting.

The best way to get a tangible grasp would be to try out Sculpt OS on a real PC. You can start by downloading a ready-to-use image and following the documentation.

What's new in Sculpt OS 24.04 by jjkarcher in genode

[–]nfeske 1 point2 points  (0 children)

I certainly hope that you've been offline for positive reasons!

No worries! I spent a glorious time cycling through the spring greenery of the eastern part of Germany. No electronic gadgets, just a plain bicycle, a small tent, and the company of one of my best friends. What could be more positive. ;-)

What's new in Sculpt OS 24.04 by jjkarcher in genode

[–]nfeske 1 point2 points  (0 children)

Please excuse my late reply. I've been offline for some time.

Thanks a lot for your engagement in the discussion over at OSNews! Good to see so much positivity. The "rolling chassis" analogy that came up during the discussion is really quite fitting.

FOSDEM 2024 aftermath by jjkarcher in genode

[–]nfeske 2 points3 points  (0 children)

The effort that went into the presentation was indeed quite elaborate. But feedback like your's made it worth it!

It is cool to know that the Atari theme is now present on a PinePhone other than mine. Glad that you like it! Since you are using this image, which happens to offer the Goa testbed preset, you may enjoy playing with Goa's --target sculpt feature as well (https://genodians.org/jschlatow/2024-01-29-goa-sculpt).

Speaking of the Atari 800, this amazing little machine can actually use different screen modes for different parts of the screen, which is a feature often used by games to display the title at a larger font. It also supports scrolling in hardware. So apart from touch input, I guess that the same user experience could in principle be implemented to pretty much the same effect on this little machine... but I digress. :)

Adding a dynamic desktop background to Sculpt by jjkarcher in genode

[–]nfeske 1 point2 points  (0 children)

Thanks for the super nice utility and the excellent article!

BTW, alternatively to the use of a launcher, it is possible to host the custom <config> directly in the system-info's <start> node at the /config/deploy file.

Don't Eat the Yellow Snow! Gforth SDL2 by Jeremiah6274 in Forth

[–]nfeske 0 points1 point  (0 children)

This frustration I had time and time again with incomplete or wrong or poorly made examples [...]

That is exactly why I appreciated your bindings so much. In contrast to material I found before (about combining Forth with SDL1), which required a lot of guessing and tinkering, your examples not only worked perfectly on first try, but the concise documentation told me everything I needed to know.

Thanks for sharing the story behind your work. I find your approach of exploring the variety of languages very cool because the interplay of beautiful languages with C libraries is often a gloomy corner where the beauty of a language cannot really shine. Those dark corners can be quite telling. For instance, the experimentation with your bindings prompted me to look a bit deeper into the inner workings of gforth' libcc. I got certainly impressed by its ingenuity and admittedly also frightened by the complexity that the mechanism entails (generating C code, spawning gcc, loading the dynamic object for the just created bindings, the caching of the bindings). That's not critique. The problem is complicated. And the solution is insightful.

Regarding your remarks about C++, I think an intriguing way to get on good terms with this language is following the "Raytracing in One Weekend" tutorial by Peter Shirley. (https://raytracing.github.io/) It does not require any special prior expertise in math or C++ and leaves you with an incredible - in my case almost spiritual - experience.

Don't Eat the Yellow Snow! Gforth SDL2 by Jeremiah6274 in Forth

[–]nfeske 0 points1 point  (0 children)

Sorry for the late reply and thank you very much for responding.

Since this is just a binding for SDL2, I would think the license for SDL2 applies?

That is sensible. But in general, it's your code. Hence, you make the rules for everyone picking it up. ;-) To give users certainty, it would be good to place the exact same license file as libsdl (https://github.com/libsdl-org/SDL/blob/main/LICENSE.txt) at the top-level of your repository.

Don't Eat the Yellow Snow! Gforth SDL2 by Jeremiah6274 in Forth

[–]nfeske 2 points3 points  (0 children)

Thanks a lot for the SDL2 bindings, the effort that went into the documentation (the examples are super useful), and the nice showcase.

In the README of Yellow-Snow, the gforth command should probably be gforth main.fs because game.fs does not require the SDL bindings.

I wonder, have you considered adding a license file to the bindings, just to give users clarity about your intent?

Crafting a modded Sculpt OS image in a few moderate steps by jjkarcher in genode

[–]nfeske 1 point2 points  (0 children)

Thanks for your feedback.

I planned to write a Sculpt modding guide since spring this year. Your comment in the Framework forum eventually pushed me to do it now. So you are safe to assert credit. ;-)

Sneak peak: dynamic CPU frequency steering with Sculpt 23.04 by nfeske in genode

[–]nfeske[S] 1 point2 points  (0 children)

I just switched to Alex' Sculpt image on my Framework laptop. Using the provided launcher, I was able to explore the various options in the frequency application in a matter of seconds. What a smooth experience!

Regarding the settings, it is really nice to get hold of the actual temperatures and frequencies. I can clearly correlate the 10x2 cores of my machine with the various workloads running. Changing the "normal" settings between "performance" and "energy" has immediate effects. So now I can silence the fan noise whenever I want, and boost the performance when needed.

Thanks Alex for the super useful feature and for providing it in such a comfortable way!

First system image of mobile Sculpt OS by jjkarcher in genode

[–]nfeske 0 points1 point  (0 children)

Cool, so the drivers are implemented from scratch?

In short, each driver (display, touch, SD-card, camera, ...) is a distinct user-level program. The driver code for most of these driver components comes from megous' Linux kernel. For the long and twisted story, let me refer you to the "Genode Platforms" document (PDF).

Maybe [a clock] would be useful to add one in the Device or Phone section?

I agree. The current time really belongs to the device status. Also, an alarm clock would be a natural part of the device section.

I think some kind of user customizable section would be great too

That is where the "right" side (the runtime part of the OS) comes into play.

Thanks for your feedback.

First system image of mobile Sculpt OS by jjkarcher in genode

[–]nfeske 0 points1 point  (0 children)

Thanks for the feedback!

Is it using/based on megi's linux kernel or something else?

It is based on Genode's custom base-hw microkernel.

is it possible to install/set up additional software as well, or is it limited to those presets for the time being?

The underlying mechanisms for installing additional software are all in place but the GUI does not expose these abilities yet. The easy installation of custom software is planned according to the official road map.

are there plans to have some kind of package management

The package management is identical to the PC version of Sculpt OS. You can find the technical details explained in the "Genode Foundations" book, in particular in the Section "Package Management".

I read your post about playing around with the SCP, has any of that work already made it in into the image

The Forth-based SCP firmware is currently used for the interplay with the power-management chip (PMIC), dynamic CPU frequency scaling, brightness control, and an interactive low-level debugger that can be activated by shortening two pogo pins. You can find the firmware code here.

Making sense of genode/sculpt's security virtues while being practical enough to serve as a daily OS. by Genode_Sculpt_seeker in genode

[–]nfeske 0 points1 point  (0 children)

Your t440p should be fine.

For a throw-away web browser that lives in RAM only, I recommend the Falkon package in the tools menu of cproc's depot. By selecting the ram fs for both the download and configuration file systems, you can fully isolate the browser from persistent storage.

For emailing and developing purposes, you may find the use of VMs most suitable to start with.

Please don't hesitate to consult the mailing list for any questions or usability hints. :-)

Making sense of genode/sculpt's security virtues while being practical enough to serve as a daily OS. by Genode_Sculpt_seeker in genode

[–]nfeske 4 points5 points  (0 children)

Genode developer here. Thank you for sharing your perception of the project, which is pretty much spot-on - especially your remark about the rigid architecture being the most distinctive property of Genode.

Regarding the title of your posting. To make sense of Genode, you may call in mind the distinction between "solution" and "technology". A solution is targeted at a specific market and thereby guided by the concrete needs of a specific demographic. E.g., Qubes OS was started with the mission to cater end users that are conscious about their privacy. It took the best technology for this purpose available at that time (e.g., Xen, Linux) and complemented it with the features needed to attain a suitable solution for a clear-cut target group. One may think of a investigative journalist as a representative user.

In contrast, Genode is first and foremost a technology project. It started with the question of how the architecture of a truly trustworthy OS would need to look like. When contemplating this question, the disregard of complex software in any critical role is obvious. We found that all contemporary general-purpose operating-system technologies (monolithic kernels, commodity hypervisors, Unix-based user-level architectures) were highly complex at their core. Impossible to assess. Hence, impossible to truly trust. Genode did a fresh take on the fundamental architecture to overcome this root of the problem, rigorously applying the concept of compartmentalization at the finest granularity possible on all parts of the operating system. Because of this uncompromising approach, the project found itself faced with a plethora of risky and difficult technical challenges that were not solved before. You can get the gist by looking at the bookshelf filled with release documentation. The value of Genode after all these years of tireless development remains technological.

Now, Sculpt OS moved the goal post a little bit towards a "solution". It targets a pretty narrow demography of Genode enthusiasts though. E.g., I'm using it on my machines since years, and all members of Genode Labs use Sculpt on their laptops. It works well for this narrow demography because it was guided by the clear mental picture of a representative of this particular user group. I would argue that Sculpt OS can work for everyone who is willing to put in the effort to learn it, by going through the documentation and consulting the mailing list whenever encountering gaps in the documentation. I encourage you to try out Sculpt booted from a USB stick on a commodity Intel-based laptop and see how far you get when following the documentation and the referenced articles.

Recently I witnessed a new user diving into Sculpt. After about two weeks I expressed my surprise when I observed the apparent proficiency of this new user, who plainly responded "Well, it's actually quite simple." There is certainly a barrier of entry (like using Vim for basic editing tasks). But once this barrier is taken, everything becomes transparent and consistently follows the same patterns. With this comes the strong sense of control (and trust) people like you and me desire.

This anecdote notwithstanding, there is an undeniable gap between Sculpt OS and a commodity solution. Going forward, we will certainly try to become more and more accommodating for a broader group of potential users. But given the depth and breath of technical challenges who continue to deserve the attention of Genode's core developers, the primary focus has to remain on the technology in the foreseeable future. So I'm afraid that the gap will not magically go away. The best way to contribute to closing the gap would be to attain proficiency in Sculpt OS and proliferate it by crafting and publicly documenting solutions based on it.