mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-24 07:46:42 +00:00
194 lines
8.3 KiB
Plaintext
194 lines
8.3 KiB
Plaintext
|
|
========
|
|
Road Map
|
|
========
|
|
|
|
|
|
Herein, we lay out our plans for evolving Genode. Progress in addition to this
|
|
planning will very much depend on the degree of community support the project
|
|
will receive. The
|
|
[http:/about/challenges - Challenges] page collects some of our ideas to
|
|
advance Genode in various further directions.
|
|
|
|
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 2018
|
|
##############
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
|
|
2019 - Bridging Worlds
|
|
######################
|
|
|
|
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:
|
|
|
|
# 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.
|
|
|
|
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.
|
|
|
|
# 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.
|
|
|
|
# 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 2019
|
|
###################
|
|
|
|
In the following, we present a rough schedule of the planned work. As usual,
|
|
it is not set in stone. If you are interested in a particular line of work,
|
|
please get in touch.
|
|
|
|
|
|
February - Release 19.02
|
|
========================
|
|
|
|
* 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 19.05
|
|
===================
|
|
|
|
* 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 19.08
|
|
======================
|
|
|
|
* 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 19.11
|
|
========================
|
|
|
|
* 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
|
|
|