diff --git a/doc/news.txt b/doc/news.txt index 0aca11259..ed891be44 100644 --- a/doc/news.txt +++ b/doc/news.txt @@ -4,6 +4,26 @@ =========== +Road Map for 2019 | 2019-01-15 +############################## + +| In 2019, we will focus on practical use cases, on interoperability, and +| on harmonizing Genode with existing applications and programming languages. + +The past Year of Sculpt was dedicated to bringing Genode to the desktop on +commodity PC hardware. Now is a good time to focus on making the Sculpt OS +relevant and appealing for a broader community. The road map for 2019 features +three major ambitions towards that goal. First, making Genode easier +approachable and usable by presenting practical use cases while fostering a +stronger sense of community among users and developers. Second, simplifying +the use of existing applications and programming languages in Genode-based +systems. And third, improving the interoperability of Genode with existing +protocols and systems. + +The complete story behind the new road map is presented at the +[https:/about/road-map - road-map page]. + + Genode OS Framework release 18.11 | 2018-11-29 ############################################## diff --git a/doc/road_map.txt b/doc/road_map.txt index cd2ecbdcc..b5c456f7d 100644 --- a/doc/road_map.txt +++ b/doc/road_map.txt @@ -14,132 +14,122 @@ The road map is not fixed. If there is commercial interest of pushing the Genode technology to a certain direction, we are willing to revisit our plans. -Review of 2017 +Review of 2018 ############## -The technical topics of 2017 ranged from hardware-accelerated graphics, over -UEFI, greatly improved seL4 support, user-level networking, file-system -infrastructure, to an consolidated framework API. However, one topic stood out -the most, which is the practical use of Genode as day-to-day OS. +Sculpt is our take on creating a Genode-based general-purpose operating +system. When we declared 2018 as Genode's Year of Sculpt one year ago, our +vision of how Sculpt OS would shape up was still vague. We were convinced that +we had - functionality-wise - all building blocks of a general-purpose OS in +place. But it was rather unclear how to best put them together to attain a +practical system. The unconquered design space seemed vast, which was both +exciting but also - at times - a bit paralyzing. -Whereas the so-called "Turmvilla" system scenario enabled a few enthusiasts to -work on a Genode-based system since mid of 2015, the scenario was quite rigid -and required significant manual labour for any customization. Although it was -not really inviting for potential users, it illustrated well that all the -basic building blocks - in particular the driver stacks - were in place. But -it would have been be quite a stretch to call Turmvilla a general-purpose OS -at that point. The year 2017 introduced two pivotal features that allowed us to -break free from the limitations of Turmvilla-like scenarios, namely the new -[https://genode.org/documentation/release-notes/17.05#Package_management - package-management concept] -and the ability to -[https://genode.org/documentation/release-notes/17.02#Dynamically_reconfigurable_init_component - compose and modify subsystems dynamically]. +The Year of Sculpt was more than anything a design-space exploration, not +an up-front planned activity. The process was driven by intensive +brainstorming, experimentation, and the continuous practical evaluation +through the day-to-day use of the system by its developers. For us, this ride +was certainly the most rewarding period in Genode's history so far. Now, when +looking at the result, we are proud about what we have achieved together. +Whenever having the chance to showing off Sculpt running on our laptops, +the system doesn't fail to impress. -Inspired by these new features, a new system scenario called "Sculpt" emerged -in Autumn 2017. The combination of Genode's recursive architecture with the -dynamic reconfigurability of the init component allows the user to -interactively shape the running Genode system including any subsystem or even -configurations of individual components. The system structure is always at the -user's fingertips and can by modified instantly using a text editor. At the -same time, the new package management greatly helps to keep the complexity at -a manageable level. Whereas Turmvilla users rarely updated their installation -out of hesitance to break their work environment, Sculpt is routinely updated -on a weekly basis. The switch of the entire Genode-Labs team to Genode full -time by the end of year was certainly our biggest milestone so far. +Unsurprisingly, many topics of the past year had a direct connection to +Sculpt, e.g., the NIC router, the huge device-driver efforts, the GUI-stack +improvements, our custom microcode update mechanism, the software packaging +and deployment, and the work on the file-system and networking stacks. + +The bottom line of the Year of Sculpt is that Sculpt OS has become a +surprisingly versatile and robust system. It can be deployed in a few seconds +by booting from USB, runs as day-to-day OS on almost all of our laptops, its +mechanisms for installing and updating software from packages have become a +second nature, and it continues to inspire us to explore new application +areas. Even outside of Genode Labs, there is a small and enthusiastic user +base. + +Besides Sculpt, we set forth a number of other goals one year ago. + +:The transition from NOVA to our custom kernel and seL4: is ongoing but + the topic received less attention than originally planned. This has + two reasons. First, Alexander Boettcher's excellent maintenance and gradual + improvement of NOVA keeps us hooked. Over the past year, there has been not + much incentive of actual Sculpt users to move away from NOVA. Second, there + is renewed interest in NOVA beyond our use of the kernel. Most specifically, + we started joining forces with + [https://cyberus-technology.de - Cyberus Technology] to improve NOVA + together. That's fantastic! + + This development notwithstanding, we still follow our ambition to bring the + support for the other kernels like seL4 on par with NOVA to give Genode + users the ultimate choice. + Speaking of seL4, throughout the year, we have continuously adapted Genode + to the kernel's upstream development and enjoy the informal collaboration + with seL4 developer community. That said, the seL4 version of Genode still + remains a side activity with no commercial backing. + +:NXP i.MX: support has become much better, particularly with respect to + network support and performance. Our ongoing commitment to the i.MX + platform is also fueled by privacy-advocating projects like the Librem + phone that are based on the same SoC. + +:Software quality and resilience: ultimately became the title story of the + [https://genode.org/documentation/release-notes/18.11#Raising_the_bar_of_quality_assurance - release 18.11]. + We greatly intensified the amount and quality of testing, explored static + code analysis, and vastly scaled up the complexity of workloads carried + by Genode. + +:System monitoring, tracing, profiling: remains a somewhat underdeveloped area + of Genode. As a step in the right direction, we introduced a simple + trace-logging tool. Also, Sculpt's introspection features like the ability + to inspect the runtime's state live on the machine make Genode's behavior + easier to capture and to understand. But that said, the use of these + features remains a black art mastered only by a few. + +:Java: has found its way into Genode via our port of OpenJDK. Details such as + the enabling of the JIT engine on ARM took much more effort than anticipated. + We are happy to report that Tomcat works fine. But at the current state, it + is still too early to advertise Java as a stable feature. -2018 - The year of Sculpt -######################### +2019 - Bridging Worlds +###################### -The "Turmvilla" era lies behind us. So let the "Sculpt" era begin! +We dedicated the year 2018 to prove that Genode scales to general-purpose +computing. [https://genode.org/download/sculpt - Sculpt OS] leaves no doubt +about that. The logical next step is to make Sculpt OS relevant and appealing +for a broader community. +During our public road-map +[https://lists.genode.org/pipermail/users/2018-December/006517.html - discussion] +on our mailing list, we identified three ways towards that goal: -Having used Sculpt over the past few months, we feel confident to make the -system scenario available to a larger audience. In 2018, we will take four -steps: +# In order to capture the interest of new Genode users, we have to + put *emphasis on the practical use* of Genode, not on its technical prowess. + With practical use, we refer to both desktop computing and headless + scenarios like network appliances and servers. Over the course of 2019, + we plan to establish (variations of) Sculpt as an attractive foundation for + those application areas, and advance Genode's protocol stacks (storage and + encryption come in mind) and hardware support (e.g., ARM 64-bit) accordingly. -# Sculpt for Early Adopters (EA) + This will go hand in hand with making Genode easier to discover and to use, + describing use cases at a digestible level of detail, and fostering the + sense of one community that includes both users and developers. - The current version of Sculpt accompanied with plain-text documentation - that explains the concept and use. It is intended for people who are - already familiar with Genode, in particular users that experimented with - Turmvilla-like scenarios in the past. Sculpt EA expects basic Vim skills - from the user. +# Since an operating system is only valuable with applications, we have + to make the *porting of existing software* and the use of popular + *programming languages* a frictionless experience. Besides supporting the + reuse of existing software, we should also cultivate the "Genode way" as + an option for designing native applications. Such applications can + leverage the unique capabilities of the framework, in particular the + sandboxing of code at a very fine granularity and the low footprint of raw + Genode components. -# Sculpt for The Curious (TC) - - A polished version of Sculpt that is more welcoming to the user and - accompanied with example subsystems that loosely resemble a traditional - notion of an operating system (like basic menus and window borders). - There will be a ready-to-use ISO image for Sculpt TC. So users won't need - to be familiar with Genode's source code and build system. As with Sculpt - EA, Sculpt TC will still rely on the user's ability to use Vim. - -# Sculpt by Visual Composition (VC) - - Whereas the earlier versions rely on text editing for sculpting the system, - Sculpt VC will feature an interactive graphical user interface, which will - hopefully make the system tangible for users who live outside the terminal. - -# Sculpt as a Community Experience (CE) - - Sculpt CE will allow anyone to play the role of a component provider. - Each user should be able to pick individual components or entire component - compositions provided by others while maintaining complete control over the - system. - -In addition to working on Sculpt as the overall theme of the year, we will -focus on the following topics: - -:Gentle transition from NOVA to our custom kernel and seL4: - - NOVA used to be our kernel of choice on x86 platforms. However, since the - kernel is no longer actively developed, we had to take over the - responsibility to maintain it. Whereas we feel confident in developing the - kernel in an evolutionary way, the kernel has long-standing architectural - limitations (i.e. kernel-memory management) that would require invasive - changes. Instead of ramping up our engagement with NOVA, we'd like to focus - on our custom kernel (base-hw) and the seL4 kernel. In 2018, we set out to - enable Sculpt on base-hw. This involves the support for SMP, VT-x, and VT-d - on x86. - -:Freescale i.MX: - - Based on the feedback from our community, Freescale i.MX support is of - great interest, specifically i.MX6. Hence, we plan to improve the driver - support for this SoC. - -:seL4: - - We will try to apply all improvements of Genode on seL4 whenever feasible. - It also goes without saying that we will track seL4's upstream development. - -:Software quality and resilience: - - The modernized framework API introduced last year is an important stepping - stone. But there is much more we can (and should) do, I.e., learning from - the high-integrity computing community (e.g., implementing critical - components in SPARK), leveling-up the scope and intensity of our automated - tests, facilitating static code analysis, and employing software-hardening - techniques. Of course, this scope goes far beyond the time frame of one - year. The immediate prioritization of these topics will largely depend on - the focus of commercial users funding the work. - -:System monitoring, tracing, profiling: - - The interactive use of Sculpt along with the prospects enabled by Genode's - GPU support motivate us to optimize Genode towards low-latency multimedia - applications. We will ultimately need to gain a deep understanding on - inter-component interactions, in particular along time-critical data paths. - Therefore, we plan to improve the tooling and cultivate the use of our - existing but underused tracing support. - -:Java: - - By the end of 2018, we want to enable Genode to leverage the ecosystem - around Java, which is - according to the TIOBE index - the most popular - programming language. +# Because an operating system does not exist in isolation, we must foster + Genode's *interoperability* with other systems and applications by speaking + widely used protocols and supporting universally expected + software-integration features. -Milestones for 2018 +Milestones for 2019 ################### In the following, we present a rough schedule of the planned work. As usual, @@ -147,40 +137,57 @@ it is not set in stone. If you are interested in a particular line of work, please get in touch. -February - Release 18.02 +February - Release 19.02 ======================== -* Sculpt for Early Adopters (EA) -* Dynamic on-target package installation and deployment -* i.MX6 networking +* OpenJDK with JIT on ARM and x86 +* Sculpt with support for online package discovery +* Showcase of a Genode-based web appliance +* Showcase of a multi-port network appliance -May - Release 18.05 +May - Release 19.05 =================== -* Sculpt for The Curious (TC) -* Update of the Genode Foundations book -* Consistent use of the depot tools for automated tests -* Qt5-based applications based on packages -* SMP support for the base-hw kernel on x86 +* Updated "Genode Foundations" book +* Tool-chain update and SDK (C++-17, enabling O3 by default, considering GDC) +* Headless Sculpt + * Pluggable network drivers + * Native support for Let's Encrypt certificates +* Revisited GUI-related framework interfaces +* Sculpt + * Improved interactive system composition + * Passphrase handling + * Clipboard support +* Kernel-agnostic virtual-machine monitors +* ARM 64-bit -August - Release 18.08 +August - Release 19.08 ====================== -* Sculpt by Visual Composition (VC) -* Ability to (cleanly) restart device drivers -* Updated PC hardware support -* i.MX6 USB -* Multi-component user mail agent -* IOMMU support for the base-hw kernel on x86 +* Interactive tracing tool +* Virtualization support for the base-hw kernel on x86 +* Library version of the init component +* Sculpt + * Fine-grained USB-device policies + * Interactive depot manager (ability to add/remove software providers) + * Configuration of CPU affinities and scheduling priorities + * Audio +* Showcase of a Sculpt-based network router +* VM-based desktop applications (enhanced VM integration features) +* Updated Qt5 +* Consolidation of the Noux runtime (performance) -November - Release 18.11 +November - Release 19.11 ======================== -* Sculpt as a Community Experience (CE) -* Automated tests hosted on top of Sculpt -* Sculpt-like scenario for network appliances -* Virtualization support for the base-hw kernel on x86 +* Building Genode packages directly on Sculpt +* VNC server support +* Sculpt + * On-target debugging of components + * Shutdown protocol +* Block-level encrypted storage +* Drag-and-drop protocol