Update README files

This patch removes outdated information and improves the language of
various README files.
This commit is contained in:
Norman Feske 2023-03-10 11:29:58 +01:00 committed by Christian Helmuth
parent 9b9d1f4e12
commit 805fae5bab
17 changed files with 59 additions and 102 deletions

14
README
View File

@ -4,15 +4,17 @@
=================================
This is the source tree of the reference implementation of the Genode OS
architecture. For a general overview about the architecture, please refer to
the project's official website:
This is the source code of Genode, which is a framework for creating
component-based operating systems. It combines capability-based security,
microkernel technology, sandboxed device drivers, and virtualization with
a novel operating system architecture. For a general overview about the
architecture, please refer to the project's official website:
:Official project website for the Genode OS Framework:
:Website for the Genode OS Framework:
[https://genode.org/documentation/general-overview]
The current implementation can be compiled for 8 different kernels: Linux,
Genode-based operating systems can be compiled for a variety of kernels: Linux,
L4ka::Pistachio, L4/Fiasco, OKL4, NOVA, Fiasco.OC, seL4, and a custom "hw"
microkernel for running Genode without a 3rd-party kernel. Whereas the Linux
version serves us as development vehicle and enables us to rapidly develop the
@ -22,7 +24,7 @@ one. If a microkernel pretended to be fit for all use cases, it wouldn't be
"micro". Hence, all microkernels differ in terms of their respective features,
complexity, and supported hardware architectures.
Genode allows the use of each of the kernels listed above with a rich set of
Genode allows for the use of each of the supported kernels with a rich set of
device drivers, protocol stacks, libraries, and applications in a uniform way.
For developers, the framework provides an easy way to target multiple different
kernels instead of tying the development to a particular kernel technology. For

View File

@ -1,10 +1,5 @@
This repository contains the port of Genode to the NOVA microhypervisor.
For more information on this base platform, please refer to the official
website.
For more information on this kernel, please refer to the official website.
:[http://hypervisor.org]: Official website for the NOVA microhypervisor.
For information on using Genode on NOVA, please revisit the documentation at
'base-nova/doc/nova.txt':

View File

@ -1,6 +1 @@
This repository contains the implementation of Genode for the OKL4
kernel version 2.1. For further information, please refer to the
following website:
:[http://genode.org/documentation/articles/genode-on-okl4 - Bringing Genode to OKL4]:
This article explains the OKL4-specific porting work.
This repository contains the support of Genode for the OKL4 kernel version 2.1.

View File

@ -1,8 +1,4 @@
This directory and its subdirectories contain machine-generated code,
produced when building the OKL4 kernel with its native Scons build environment.
It is not part of the Genode project and remains under the licence of the OKL4 kernel.
You can obtain the OKL4 kernel version 2.1.1. here:
[http://www.ok-labs.com - Open Kernel Labs]
It is not part of the Genode project and remains under the licence of the OKL4
kernel.

View File

@ -1,3 +0,0 @@
This directory contains the following utilities for working with Genode
on OKL4.

View File

@ -1,3 +1 @@
This repository contains the L4ka::Pistachio-specific implementation of Genode.
Please see the documentation at 'base-pistachio/doc/pistachio.txt' for further
instructions on building and using Genode on the L4ka::Pistachio kernel.
This repository contains the L4ka::Pistachio-specific parts of Genode.

View File

@ -1,19 +1,18 @@
This is generic part of the Genode implementation. It consists of two parts:
This is the generic Genode base system, which consists of two parts:
:_Core_: is the ultimate root of the Genode application tree
and provides abstractions for the lowest-level hardware resources
such as RAM, ROM, CPU, and generic device access. All generic parts of Core
can be found here - for system-specific implementations refer to the
appropriate 'base-<system>' directory.
:_Core_: is the root of the Genode component tree. It provides abstractions for
the lowest-level hardware resources such as RAM, ROM, CPU, and device access.
All generic parts of core can be found here. For kernel-specific parts,
refer to the appropriate 'base-<kernel>' directory.
:_Base libraries and protocols_: that are used by each Genode component
:_Base libraries and interfaces: that are used by each Genode component
to interact with other components. This is the glue that holds everything
together.
_Core_ may export information about the hardware platform by an ROM
called 'platform_info'. Depending on the platform, e.g. ARM or x86 or riscv,
and depending on the boot mode and boot loader and kernel, some nodes may not
be populated.
Depending on the used kernel, core may export information about the hardware
platform as a ROM called 'platform_info'. For example, if the ACPI RSDT and
XSDT physical pointer are reported by the used kernel and/or bootloader, core
provides this information in the ROM as follows.
!<platform_info>
! <acpi revision="2" rsdt="0x1fe93074" xsdt="0x1fe930e8"/>
@ -22,9 +21,6 @@ be populated.
! </boot>
!</platform_info>
If the ACPI RSDT and XSDT physical pointer is reported by the used kernel
and/or bootloader, _Core_ may provide this information by the ROM.
If the graphic device is initialised and can be directly used by a framebuffer
driver, _Core_ may provide the physical pointer to the framebuffer, the
resolution and color depth in bits.
If the graphics device is initialised and can be directly used by a
framebuffer driver, core provides the physical pointer to the framebuffer, the
resolution, and color depth in bits.

View File

@ -1,3 +0,0 @@
This directory contains include files of interfaces that are exported
by components to be used by other components. Each subdirectory corresponds
to the component exporting the interface.

View File

@ -1 +0,0 @@
This directory holds library-description files.

View File

@ -1,24 +1,12 @@
This directory contains library description files. Each '<libname>.mk' file
holds the instruction for building the library '<libname>'. These makefiles are
never used directly but they are called from the build system when required.
When called, the build system passes the following variables:
This directory contains library-description files. Each _<libname>.mk_ file
contains the instructions for building the library _<libname>_. The .mk files
are never used directly but they are implicitely processed by the build
system.
:'BASE_DIR': This is the base directory of the source tree.
Source codes are specified by setting the 'SRC_CC' and 'SRC_C' variables.
The source code locations must be specified via 'vpath'.
A library can include other libraries by setting the 'LIBS'
variable.
Each '<libname>.mk' file must include the 'lib.mk' role file:
! include $(BASE_DIR)/mk/lib.mk
Libraries implementing one and the same library interface may have specific
implementations for different platforms. Such platform-specific '<libname>.mk'
files should be placed into corresponding subdirectories. For example, the
'linux'-specific implementation of the 'server' library resides in the 'linux/'
subdirectory. The build system automatically searches the right '<libname>.mk'
file by evaluating the 'SPECS' configuration variable. If 'SPECS' is set to
'host linux', the build system will look into the directories './', './host',
and './linux'.
Libraries implementing one interface may have specialized implementations for
different CPU architectures. Such architecture-specific _<libname>.mk_ files
are located in corresponding _spec/_ subdirectories. For example, the .mk
files of ARM-specific library variants reside in the _spec/arm/_ subdirectory.
The build system automatically finds the appropriate _<libname>.mk_ file by
evaluating the 'SPECS' build-configuration variable. Whenever the 'SPECS'
variable contains 'arm', the build system considers the _spec/arm/_ directory.

View File

@ -1 +0,0 @@
This directory contains all source codes.

View File

@ -1,4 +1,4 @@
This repository contains the Device Driver Environment for the
This repository contains the device-driver environment (DDE) for the
"donator OS" iPXE available from http://ipxe.org/.
For building DDE iPXE, you first need to fetch and patch the original
@ -7,14 +7,14 @@ sources. The 'prepare_port' tool automates this task. Just issue:
! ./tool/ports/prepare_port dde_ipxe
Now, you need to include the DDE iPXE repository into your Genode
build process. Just add the path to this directory to the
build configuration by adding the path to this directory to the
'REPOSITORIES' declaration of the 'etc/build.conf' file within your
build directory, for example
! REPOSITORIES += $(GENODE_DIR)/repos/dde_ipxe
After successful build the DDE iPXE based ethernet driver is located
at 'bin/nic_drv'.
After a successful build the DDE iPXE based ethernet driver is located
at 'bin/ipxe_nic_drv'.
The driver optionally reports the following information under the
label "devices" if requested in the config as depicted.

View File

@ -28,7 +28,7 @@ to your _etc/build.conf_ file of you build directory.
Finally,
! make lib/vfs/rump
! make lib/vfs_rump
called from your build directory will build the plugin.

View File

@ -1,5 +1,5 @@
Mini C library
This library only provides the libc support for libz and libpng.
This library only rudimentary libc support for libz and libpng.
Most functions are not implemented. The implemented functions might be
slightly incompatible to a real libc. Please use this library with caution!
slightly incompatible to a real libc.

View File

@ -1,6 +1,5 @@
This directory is a source-code repository containing Genode-specific
services and applications. In contrast to the components that come with
the 'os' repository, programs contained in 'gems' are able to leverage
the functionalities provided by higher-level repositories such as 'libports'.
To use the 'gems' repository, make sure to also add those repositories to your
build configuraion.
This directory is a source-code repository containing Genode-specific services
and applications. In contrast to the components hosted in the 'os' repository,
programs contained in 'gems' are able to leverage the functionalities provided
by higher-level repositories such as 'libports'. To use the 'gems' repository,
make sure to also add those repositories to your build configuraion.

View File

@ -1,12 +1,12 @@
This directory contains ports of popular 3rd-party software to Genode.
This directory contains ports of 3rd-party libraries to Genode.
Usage
-----
The tool './tool/ports/prepare_port' in the toplevel directory automates the
task of downloading and preparing the library source codes. You can select
individual packages that have to be prepared by specifying their base names
task of downloading and preparing the 3rd-party source codes. One can select
individual ports that have to be prepared by specifying their base names
(without the version number) as command-line argument. For example, the
following command prepares both the C library and the Freetype library:
! ./tool/ports/prepare_port libc freetype
@ -28,11 +28,7 @@ files.
How does 'libports' relate to the other repositories?
-----------------------------------------------------
Most libraries hosted in the 'libports' repository expect a complete C library,
which is provided with the 'libc' package. Please do not forget to prepare the
libc package when using any of the other libports packages. The libc, in turn,
depends on the 'os' repository for its back end. Because the 'os' repository is
the home of the dynamic linker, libraries contained in 'libports' are safe to
assume the presence of the dynamic linker and, thus, should be built as shared
libraries.
Most libraries hosted in the 'libports' repository expect a complete C
library, which is provided via the 'libc' port. The libc, in turn, depends on
the 'os' repository for its back end.

View File

@ -1,13 +1,13 @@
This directory contains ports of popular 3rd-party applications to Genode.
This directory contains ports of 3rd-party applications to Genode.
The 'ports' repository follows the line of the 'libports' repository.
The 'ports' repository follows the patterns of the 'libports' repository.
For instructions about downloading and building 3rd-party applications,
please refer to 'libports/README'.
please refer to _libports/README_.
Dependencies from other repositories
------------------------------------
Application provided by the 'ports' repository typically expect a rich
Applications provided by the 'ports' repository typically expect a rich
runtime environment, including shared libraries provided by the 'libports'
repository. Hence, 'ports' depends on 'libports'.