diff --git a/doc/news.txt b/doc/news.txt index 642471c122..58c2d90065 100644 --- a/doc/news.txt +++ b/doc/news.txt @@ -4,6 +4,39 @@ =========== +Road Map for 2023 | 2023-01-17 +############################## + +| In 2023, we will make the mobile version of Sculpt OS fit for end users, +| unleash advanced hardware features of Intel platforms, +| switch to C++20 by default, and run the feature-complete PC version +| of Sculpt OS on Genode's custom-tailored microkernel. + +After having enabled all hardware features of the PinePhone that are +fundamental for a mobile phone over the course of the past year, the +project now aims at getting the mobile version of Sculpt OS into the hands of +end users. Throughout the year, there will be multiple rounds of field tests +within the community, allowing us to reach the desired state of maturity and +usefulness in an iterative way. + +On PC platforms, Genode will increasingly address advanced platform features +like the distinction between power-efficient and high-performance cores, the +management of temperatures and frequencies, or the practical use of +suspend/resume. By the end of the year, we envision the PC version of Sculpt +OS running on Genode's custom-tailored microkernel leveraging all those +aspects of modern PC hardware. + +Along the planned timeline of the project, one can spot plenty of additional +topics of interest such as the continued line of work of combining Genode +with FPGAs, applications implemented in Rust, the integration of IPv6, the +use of C++20 by default, or completed driver support for the MNT Reform laptop. +An exciting year lies ahead of us! + +More details including our reflections of the past year, this year's focus, +and a rough schedule are presented at our official +[https:/about/road-map - road-map page]. + + Genode OS Framework release 22.11 | 2022-11-30 ############################################## diff --git a/doc/road_map.txt b/doc/road_map.txt index e190d85aff..556e34cc30 100644 --- a/doc/road_map.txt +++ b/doc/road_map.txt @@ -14,82 +14,90 @@ 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 2021 +Review of 2022 ############## -Genode's year 2021 was defined by three extremely challenging lines of work. +The two main topics of 2022 went hand in hand. First, we reimagined Genode's +driver landscape across x86 and ARM, universally adopting a new method of +reusing Linux drivers to great success, and rigidly applying the framework's +security architecture to driver components. This effort unlocked the second +major achievement, namely the use of Genode as mobile OS on the PinePhone. -First, we conquered the territory of GPU support that was ridden with -uncertainties and seemed almost impenetrable when we started. But at the end -of the year, our custom Intel-GPU multiplexer has landed in Sculpt OS like it -always belonged there. In tandem with the Intel-GPU work, we explored the -Vivante GPU as a representative of an ARM platform. The work required a deep -dive into the respective GPU architectures and the Mesa software stack. It -eventually led us to the design of Genode's device-agnostic GPU interfaces. +Following the introduction of Genode's rigid driver architecture on ARM +platforms in 2021, we took the year 2022 as opportunity to consistently +establish this architecture across all platforms. +We conquered the convoluted world of x86 in greater depth than ever before, +leaving almost no stone unturned. On top of the new architecture, we built an +arsenal of fresh driver components, most of them based on our Linux +device-driver environment. Other drivers had been written from scratch +specifically for Genode, most prominently our custom Intel GPU multiplexer +that covers recent hardware generations like Intel Alderlake and Tigerlake. -The second line of work was concerned with the reuse of Linux drivers as -Genode components. Over the year, the puzzle pieces of our new Linux -device-driver environment come together, replacing former confusion and chaos -with knowledge and order, ultimately uncovering the treasure of Linux drivers -for Genode with very little friction. On the way, we created new methodology -and tooling, as well as extensive documentation in the form of the "Genode -Platforms" document. Thanks to the new drivers ported from the Linux kernel, -we were able to witness interactive Genode scenarios becoming alive on the -PinePhone by the end of the year. +Our intense engagement with the PinePhone was driven by the vision of a +Genode-based smartphone. It entailed the enablement of device hardware ranging +from touch screen, over power management, audio, storage, telephony, camera, +GPU, to mobile-data connectivity. The challenge of getting the hardware to +cooperate was met by the challenge of enabling meaningful application +workloads. The ability to run the Chromium-based morph browser directly on +Genode on the PinePhone is certainly the most prolific result. Moreover, we +haven't merely managed to get it to work, but we gained detailed guidance +material ([https://genode.org/documentation/genode-platforms-22-05.pdf - PDF]) +along the way, lowering the barrier of entry for others who wish to port +Genode to further mobile platforms in the future. -The third major topic was the growing sophistication of Genode-native -workloads, with the media features of the Chromium-based browser on 64-bit ARM -being the most impressive example. Apart from the apparent functional benefits -for Genode and Sculpt OS, this is the long outstanding validation of some bold -design decisions we took years ago, in particular the role and architecture of -the VFS and its interplay with the libc. - -When reviewing the road map for 2021, some items remained uncovered. In -particular the seL4-related topics became stale. At the end of 2020 - when we -assembled the road map for the past year - there was a tangible prospect of -pursuing this topic as funded work. However, those plans were repeatedly -deferred and remained uncertain. Also, there are some items that have seen -healthy doses of progress - like the topics related to Ada/SPARK or Goa - but -received less attention than anticipated. On the other hand, the four releases -([https://genode.org/documentation/release-notes/21.02 - 21.02], -[https://genode.org/documentation/release-notes/21.05 - 21.05], -[https://genode.org/documentation/release-notes/21.08 - 21.08], -[https://genode.org/documentation/release-notes/21.11 - 21.11]) -of 2021 covered quite a few topics not advertised at the road -map, e.g., webcam support, Xilinx Zynq, or RISC-V. - -It is fair to say that the level of technical risks we took in 2021 had been -unprecedented in Genode's development history. We are more than proud of the -outcome, which will hopefully propel Genode to new heights in 2022. +Besides these two main lines of development, 2022 was packed with further +intriguing topics as well. To name a few, we combined Genode with FPGAs for +new hardware-software co-design opportunities, enabled the use of +WireGuard-based virtual private networks, experimented with hardware security +modules, and explored suspend/resume functionality on PC hardware. +The [https://genode.org/documentation/release-notes/index - documentation] of +the four releases of 2022 presents the whole picture. -2022 - Mobile Usability -####################### +2023 - Rocking the platforms we support! +######################################## -After having enabled the first interactive Genode scenarios on the PinePhone -last year, we plan to take Genode on the PinePhone to a level where we can -routinely use it for advanced applications, in particular video chat. This -vision confronts us with a multitude of hard technical nuts to crack such as -power efficiency, UI latency, quality-of-service of audio processing, drivers -for multi-media devices, WebRTC performance, and usability. This grand theme -will not only address the PinePhone specifically. The efficiency gains will -benefit all Genode use cases large and small. +Genode has already come a long way to support a variety of device form factors +ranging from the embedded appliances, over the PinePhone, to PC hardware. +With the term "support", we used to refer to the principle use of fundamental +platform features like storage, networking, display, audio, or USB. The needs +of most real-world scenarios, however, go beyond those functional basics. +Think of suspend/resume, quick boot times, the deliberate management of +energy-efficient versus high-performance CPU cores, prolonged standby, +bounded audio latency, scaling down (towards microcontrollers), and +scaling up (towards edge-computing platforms). -Our theme of the Genode-based video chat on the PinePhone fuels several -ambitions in closely related areas. In particular, we aspire using WireGuard -to secure private communication, and experiment with the operation of -hardware-based trust anchors as the basis for encrypted storage and -communication. +In 2023, we are going to move from making things work to making things rock! -Besides the PinePhone, we will steadily nurture the quality and scope of -driver support on PC hardware, which remains the primary platform for the -day-to-day use of Sculpt OS. So you can expect us to keep up with recent -generations of Intel-based hardware. In this area, we plan to make IOMMU -support available with kernels beyond NOVA, and explore the use of -power-management features like suspend-resume with Sculpt OS. +Specifically, to rock the PinePhone, we will invite the community to +participate in multiple rounds of field tests, allowing us to enable and +refine advanced features, like prolonged standby, in an iterative way. + +Regarding the PC, we aim at leveraging the different power characteristics +of CPU cores found in modern Intel platforms, step up our game regarding GPU +support (peeking at Vulkan), and making suspend/resume a regular feature that +just works. + +These efforts will be flanked by continuous architectural work that will make +the framework ever cleaner and leaner, e.g., by reducing the reliance on +complex C++ features like exceptions, and continuously simplifying the +framework fundamentals and interfaces. On our mission to attain least +complexity of the base system, we strive to host the fully featured PC version +of Sculpt OS on Genode's custom-tailored microkernel by the end of the year. + +In addition to the overarching theme outlined above, the following additional +topics stood out during our yearly brainstorming session on the mailing list. +First, several developers expressed their curiosity in working on AMD graphics +(display and GPU) as a side activity. A second recurring topic was the +usability of Genode as desktop OS, easing the work with files on Sculpt, +supporting Drag'n'Drop, tightening the work-flow integration of app-VMs +using the light-weight Seoul VMM, or the use of Qemu on top of Genode for +cross development. +Even though those topics are absent from the timeline below, we can expect +improvements in these areas throughout the year. -Milestones for 2022 +Milestones for 2023 ################### In the following, we present a rough schedule of the planned work. As usual, @@ -97,45 +105,73 @@ it is not set in stone. If you are interested in a particular line of work, please get in touch. -February - Release 22.02 +February - Release 23.02 ======================== -* OpenGL in VirtualBox 6 -* Sculpt OS as tool kit for special-purpose OS images -* PinePhone - * Modem access - * Touch-screen compatibility of Sculpt OS +* Mobile version of Sculpt OS (PinePhone) + * Ready-to-use system image for first field test + * Quick switch between different system scenarios as presets + * On-target system update + * Boot optimization +* Goa support for porting 3rd-party libraries to Genode +* Improved I/O performance (Intel GPU buffer management, VFS I/O batching, + TCP throughput) +* Custom IP block for DMA protection on Xilinx Zynq +* PC suspend/resume mechanism for the base-hw kernel +* Optimized base-hw multimedia support (kernel scheduling, latency) +* Completed driver support for MNT Reform 2 laptop (i.e., Wifi) +* Interactive graphical VMs on ARM -May - Release 22.05 +May - Release 23.05 =================== -* Annual update of the "Genode Foundations" book -* Second edition of the "Genode Platforms" documentation -* WireGuard VPN -* Updated drivers for PC hardware (Wifi, Intel framebuffer, USB) -* New tracing tool with support for CTF and PCAP -* PinePhone telephony +* Updated "Genode Foundations" book +* Tool-chain update, switch to C++20 by default +* Mobile version of Sculpt OS (PinePhone) + * First system image fit for general use + * Reuse of an existing SDK for building applications + * Integration of file vault and WireGuard + * Prolonged standby mode + * Easy installation of user-supplied applications + * Wifi +* Principle x86 virtualization support for base-hw kernel (on Qemu) +* Base-hw kernel support for the tracing of scheduling events +* Updated DDE-Linux based driver for USB HID and USB network +* Replacing iPXE network driver by DDE-Linux-based driver +* Revision of the consistent block encrypter (CBE) + usability improvements +* Goa support for building simple Rust programs for Genode -August - Release 22.08 +August - Release 23.08 ====================== -* PinePhone - * Morph browser - * Media record and playback capabilities -* FPGA-powered DMA protection for the Zynq-7000 SoC -* Kernel-agnostic IOMMU support for PC hardware -* Optimized GUI latency and synchronization +* Improved PC platform support + * Pre-boot ACPI discovery, sandboxing of ACPICA + * Device & driver restart and/or resume support after ACPI wakeup + * Support for I2C based HID devices in Intel GEN12 (e.g., touchpad) + * Management of efficient/performance cores on Intel GEN12 +* Mobile version of Sculpt OS (PinePhone) + * File-management functionality + * Support for receiving and sending SMS messages +* User-level IPv6 routing (using IPv6 by VMs) +* VirtualBox on Intel hardware running on the base-hw kernel +* DDE-Linux update to kernel version 6.x +* System wind-down protocol (component life-cycle management) +* Exemplary port of non-trivial Rust-based application using Goa +* Revival of GDB monitor (update, making it easier to use) -November - Release 22.11 +November - Release 23.11 ======================== -* PinePhone - * WebRTC-based video chat - * Power management -* Base mechanism for suspend-resume on PC hardware -* Support for hardware-based trust anchor for CBE and WireGuard -* Software-hardware co-design example for the Zynq-7000 SoC +* Feature-complete PC version of Sculpt OS on the base-hw kernel + * IOMMU handled in platform driver +* Suspend/resume for Sculpt OS on the PC +* Mobile version of Sculpt OS (PinePhone) + * GPS, compass + * Open-street-map client +* IPv6 protocol stack (lxIP update, using IPv6 by native applications) +* Revised audio (timing robustness, pluggable drivers, sample-rate conversion) +* Dynamic VFS configuration