Themenabend slides
|
@ -44,6 +44,7 @@ CONFIG_PUBLIC_SRC_SSH_CLIENT=ehmry/src/ssh_client/2019-04-08
|
|||
CONFIG_PUBLIC_SRC_STDCXX=genodelabs/src/stdcxx/2019-02-25
|
||||
CONFIG_PUBLIC_SRC_TERMINAL=ehmry/src/terminal/2019-04-05
|
||||
CONFIG_PUBLIC_SRC_VBOX_NOVA=genodelabs/src/vbox5-nova/2019-03-17
|
||||
CONFIG_PUBLIC_SRC_VFS_AUDIT=ehmry/src/vfs_audit/2019-04-20
|
||||
CONFIG_PUBLIC_SRC_VFS=genodelabs/src/vfs/2019-03-18
|
||||
CONFIG_PUBLIC_SRC_VFS_JITTERENTROPY=ehmry/src/vfs_jitterentropy/2019-03-17
|
||||
CONFIG_PUBLIC_SRC_VFS_LWIP=ehmry/src/vfs_lwip/2019-04-01
|
||||
|
|
45
index.xml
|
@ -1,20 +1,19 @@
|
|||
<index>
|
||||
|
||||
<index name="Emulators and game engines">
|
||||
<pkg path="_/pkg/dosbox" info="Experimental Libretro port of DOSBox"/>
|
||||
<pkg path="_/pkg/fceumm" info="NES"/>
|
||||
<pkg path="_/pkg/gambatte" info="GB"/>
|
||||
<pkg path="_/pkg/mgba" info="GBA"/>
|
||||
<pkg path="_/pkg/nxengine" info="Cave Story engine without game data"/>
|
||||
<pkg path="_/pkg/snes9x" info="SNES"/>
|
||||
<pkg path="_/pkg/advanced_tests" info="Libretro tests"/>
|
||||
<pkg path="_/pkg/dosbox" info="Experimental Libretro port of DOSBox"/>
|
||||
<index name="Tests">
|
||||
<pkg path="_/pkg/240pee-NES" info="NES tests"/>
|
||||
<pkg path="_/pkg/240pSuite-SNES" info="SNES tests"/>
|
||||
<pkg path="_/pkg/simple_tests" info="A test core written in C"/>
|
||||
<pkg path="_/pkg/advanced_tests" info="An advanced test core written in C"/>
|
||||
<pkg path="_/pkg/button_test" info="Libretro joypad button test"/>
|
||||
<pkg path="_/pkg/cruzes" info="An unfinished Picross game"/>
|
||||
<pkg path="_/pkg/simple_tests" info="A test core written in C"/>
|
||||
<pkg path="_/pkg/topbench_dosbox-libretro" info="The Oldskool PC Benchmark running in DOSBox"/>
|
||||
<pkg path="_/pkg/topbench_dosbox-svn" info="The Oldskool PC Benchmark running in DOSBox"/>
|
||||
</index>
|
||||
|
@ -39,11 +38,19 @@
|
|||
</index>
|
||||
|
||||
<index name="VMMs">
|
||||
<index name="Alpine">
|
||||
<pkg path="_/pkg/installer-alpine_seoul_nova" info="Alpine Linux as a Seoul VMM guest installer with 8GiB disk"/>
|
||||
<pkg path="_/pkg/alpine_seoul_nova" info="Alpine Linux as a Seoul VMM guest"/>
|
||||
<pkg path="genodelabs/pkg/vbox5-nova-sculpt/2019-03-18" info="VBox5 for running Linux"/>
|
||||
<index name="Installers">
|
||||
<pkg path="_/pkg/fetch_alpine_x86_64" info="Fetch Alpine Linux virt ISO"/>
|
||||
<pkg path="_/pkg/fetch_nixos_x86_64" info="Fetch NixOS minimal ISO"/>
|
||||
<pkg path="_/pkg/fetch_ubuntu_x86_64" info="Fetch Ubuntu netboot installer ISO"/>
|
||||
</index>
|
||||
<index name="Experimental">
|
||||
<index name="Alpine">
|
||||
<pkg path="_/pkg/installer-alpine_seoul_nova" info="Alpine Linux as a Seoul VMM guest installer with 8GiB disk"/>
|
||||
<pkg path="_/pkg/alpine_seoul_nova" info="Alpine Linux as a Seoul VMM guest"/>
|
||||
</index>
|
||||
<pkg path="_/pkg/vbox5-nova" info="Vbox with routable block devices"/>
|
||||
</index>
|
||||
<pkg path="_/pkg/vbox5-nova" info="Vbox with routable block devices"/>
|
||||
</index>
|
||||
|
||||
<index name="Operating system demos">
|
||||
|
@ -54,6 +61,16 @@
|
|||
</index>
|
||||
|
||||
<index name="Utilities">
|
||||
<index name="Network">
|
||||
<pkg path="_/pkg/nic_bridge" info="Ethernet bridge"/>
|
||||
<pkg path="_/pkg/nic_bridge_logged" info="Logged ethernet bridge"/>
|
||||
<pkg path="_/pkg/nic_bus" info="Switched ethernet bus"/>
|
||||
<pkg path="_/pkg/ninep" info="9P server"/>
|
||||
<pkg path="_/pkg/ssh_client" info="SSH client"/>
|
||||
<pkg path="_/pkg/test-lwip_node" info="Standalone lwIP IPv6 node"/>
|
||||
<pkg path="_/pkg/test-lwip_node" info="Standalone lwIP IPv6 node"/>
|
||||
</index>
|
||||
|
||||
<!-- <pkg path="ehmry/pkg/flif_capture/2019-03-22" info="Screen capture utility"/> -->
|
||||
<pkg path="_/pkg/backdrop" info="Nitpicker backdrop"/>
|
||||
<pkg path="_/pkg/block_shred" info="Fill a block device with psuedo-random noise"/>
|
||||
|
@ -62,21 +79,12 @@
|
|||
<pkg path="ehmry/pkg/grafx2/2019-03-19" info="Bitmap paint program (ported by cnuke)"/>
|
||||
<pkg path="ehmry/pkg/jitter_sponge/2019-03-31" info="Entropy source"/>
|
||||
<pkg path="ehmry/pkg/noux-build-x86/2019-03-20" info="Noux build environment"/>
|
||||
<pkg path="_/pkg/ninep" info="9P server"/>
|
||||
<pkg path="_/pkg/test-lwip_node" info="Standalone lwIP IPv6 node"/>
|
||||
<pkg path="_/pkg/ssh_client" info="SSH client"/>
|
||||
</index>
|
||||
|
||||
<index name="Network">
|
||||
<pkg path="_/pkg/nic_bus" info="Switched ethernet bus"/>
|
||||
<pkg path="_/pkg/nic_bridge" info="Ethernet bridge"/>
|
||||
<pkg path="_/pkg/nic_bridge_logged" info="Logged ethernet bridge"/>
|
||||
<pkg path="_/pkg/test-lwip_node" info="Standalone lwIP IPv6 node"/>
|
||||
</index>
|
||||
|
||||
<index name="Experimental">
|
||||
<pkg path="_/pkg/4do"/>
|
||||
<pkg path="_/pkg/blobs_service"/>
|
||||
<pkg path="ehmry/pkg/avplay/2019-04-24"/>
|
||||
<pkg path="_/pkg/blob_service"/>
|
||||
<pkg path="_/pkg/bluemsx"/>
|
||||
<pkg path="_/pkg/ifm1"/>
|
||||
<pkg path="_/pkg/ifm2"/>
|
||||
|
@ -85,6 +93,7 @@
|
|||
<pkg path="_/pkg/mu"/>
|
||||
<pkg path="_/pkg/musicbrainz_playlist_generator"/>
|
||||
<pkg path="_/pkg/testgl"/>
|
||||
<pkg path="_/pkg/themenabend_slides"/>
|
||||
</index>
|
||||
|
||||
<pkg path="_/pkg/chroot" info="Automatic file-system session partitioner"/>
|
||||
|
|
After Width: | Height: | Size: 75 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 79 KiB |
|
@ -0,0 +1,22 @@
|
|||
TARGET_NAME = themenabend_slides
|
||||
include_rules
|
||||
|
||||
: slides.tex |> pdflatex %f |> \
|
||||
%B.aux \
|
||||
%B.log \
|
||||
%B.nav \
|
||||
%B.out \
|
||||
%B.pdf \
|
||||
%B.snm \
|
||||
%B.toc \
|
||||
|
||||
: slides.pdf |> !collect_raw |>
|
||||
|
||||
PKG_DEPENDS += \
|
||||
_/raw/$(TARGET_NAME) \
|
||||
@(PUBLIC_PKG_PDF_VIEW) \
|
||||
|
||||
: runtime |> !collect_pkg_runtime |>
|
||||
|
||||
include $(RAW_RULES)
|
||||
include $(PKG_RULES)
|
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 361 KiB |
|
@ -0,0 +1,28 @@
|
|||
<runtime ram="64M" caps="2000" binary="pdf_view">
|
||||
|
||||
<requires> <nitpicker/> </requires>
|
||||
|
||||
<content>
|
||||
<rom label="freetype.lib.so"/>
|
||||
<rom label="jbig2dec.lib.so"/>
|
||||
<rom label="jpeg.lib.so"/>
|
||||
<rom label="libc.lib.so"/>
|
||||
<rom label="libm.lib.so"/>
|
||||
<rom label="libpng.lib.so"/>
|
||||
<rom label="mupdf.lib.so"/>
|
||||
<rom label="openjpeg.lib.so"/>
|
||||
<rom label="pdf_view"/>
|
||||
<rom label="slides.pdf"/>
|
||||
<rom label="vfs.lib.so"/>
|
||||
<rom label="zlib.lib.so"/>
|
||||
</content>
|
||||
|
||||
<config>
|
||||
<vfs>
|
||||
<rom name="slides.pdf"/>
|
||||
<dir name="dev"> <log/> </dir>
|
||||
</vfs>
|
||||
<libc stdout="/dev/log" stderr="/dev/log"/>
|
||||
</config>
|
||||
|
||||
</runtime>
|
After Width: | Height: | Size: 514 KiB |
|
@ -0,0 +1,202 @@
|
|||
\documentclass[pdf,utf8]{beamer}
|
||||
\mode<presentation>
|
||||
|
||||
%\usetheme{Dresden}
|
||||
|
||||
\title{Genode Operating System Framework\\+\\Sculpt}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{frame}
|
||||
\titlepage
|
||||
\end{frame}
|
||||
|
||||
\section{Motivation}
|
||||
|
||||
\subsection{History}
|
||||
|
||||
\begin{frame}
|
||||
New operating systems?
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\begin{center}
|
||||
\includegraphics[width=.5\textwidth,height=.5\textheight,keepaspectratio]{utah2000-cover.png}
|
||||
\footnote{\url{http://doc.cat-v.org/bell_labs/utah2000/}}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\begin{center}
|
||||
\includegraphics[width=\textwidth,height=.8\textheight,keepaspectratio]{utah2000-graph.png}
|
||||
(Symposium on Operating Systems Principles)\\
|
||||
\pause
|
||||
20 years, 20 years ago
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\begin{center}
|
||||
\includegraphics[width=\textwidth,height=.5\textheight,keepaspectratio]{usb_armory.jpg}
|
||||
\footnote{\url{http://inversepath.com/usbarmory.html}}
|
||||
\end{center}
|
||||
\pause
|
||||
Computers run on 5 Volts\\
|
||||
\pause
|
||||
Light bulbs have IP addresses
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Firmware Operating Systems}
|
||||
\begin{itemize}
|
||||
|
||||
\pause
|
||||
\item MINIX
|
||||
|
||||
\pause
|
||||
\item Apple Secure Enclave
|
||||
\footnote{\url{https://www.apple.com/hk/business/site/docs/iOS_Security_Guide.pdf}}
|
||||
|
||||
\pause
|
||||
\item Huawei LiteOS
|
||||
\footnote{\url{https://liteos.github.io/en/}}
|
||||
|
||||
\pause
|
||||
\item KasperskyOS
|
||||
\footnote{\url{https://os.kaspersky.com/}}
|
||||
|
||||
\pause
|
||||
\item PikeOS
|
||||
\footnote{\url{https://www.sysgo.com/products/pikeos-hypervisor/}}
|
||||
|
||||
\pause
|
||||
\item QNX
|
||||
\footnote{\url{https://blackberry.qnx.com/en}}
|
||||
|
||||
\pause
|
||||
\item RIOT
|
||||
\footnote{\url{https://www.riot-os.org/}}
|
||||
\end{itemize}
|
||||
\pause
|
||||
\center{All have a microkernel architecture and\\reasonable development costs}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Microkernel Architecture}
|
||||
\begin{center}
|
||||
\includegraphics[width=\textwidth,keepaspectratio]{OS-structure.png}
|
||||
\footnote{\url{https://commons.wikimedia.org/wiki/File:OS-structure.svg}}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\center{Systems Software Research is\\Less Irrelevant}
|
||||
\center{This is not the 90s}
|
||||
\end{frame}
|
||||
|
||||
\subsection{Monoliths}
|
||||
|
||||
\begin{frame}{Why reject Monoliths?}
|
||||
\begin{center}
|
||||
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{2001_apes_monolith.jpg}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Monoliths are big}
|
||||
\begin{itemize}
|
||||
\pause
|
||||
\item 9FRONT 2,3 MLOC
|
||||
\pause
|
||||
\item FreeBSD 17,2 MLOC\footnote{\url{https://www.openhub.net/p/freebsd}} (src/sys - 5,8 MLOC)
|
||||
\pause
|
||||
\item GNU/Linux (Glibc)1,4 MLOC \footnote{\url{https://www.openhub.net/p/glibc}}/(Kernel)17,6 MLOC\footnote{\url{https://www.openhub.net/p/linux}}
|
||||
\pause
|
||||
\item Android - 14 MLOC\footnote{\url{https://www.openhub.net/p/android}}
|
||||
\pause
|
||||
\item Chrome - 25,3 MLOC\footnote{\url{https://www.openhub.net/p/chrome}}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Monoliths are expensive}
|
||||
\includegraphics{The_Linux_Foundation_Logo.png}
|
||||
\begin{quote}
|
||||
16B USD\\Estimated development cost of the 100+ world’s leading projects hosted at The Linux Foundation
|
||||
\footnote{\url{https://www.linuxfoundation.org/}}
|
||||
\end{quote}
|
||||
\pause
|
||||
\\Schedule A membership fee - 500,000 USD annually
|
||||
\footnote{\url{https://www.linuxfoundation.org/bylaws/}}
|
||||
\pause
|
||||
\\Personal donations accepted
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Monoliths are a business model}
|
||||
\begin{center}
|
||||
\includegraphics[width=\textwidth,height=.8\textheight,keepaspectratio]{starfire.jpg}
|
||||
\footnote{\url{https://www.asktog.com/starfire/}}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Monoliths are dangerous}
|
||||
\begin{center}
|
||||
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{redstar.png}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
We don't need monoliths
|
||||
\end{frame}
|
||||
|
||||
\section{Genode}
|
||||
|
||||
\begin{frame}{The Genode Operating System Framework}
|
||||
\includegraphics[height=.25\textheight,keepaspectratio]{genode_logo.png}\\
|
||||
A toolkit for building operating systems\\
|
||||
\pause
|
||||
Abstract OS service APIs\\
|
||||
\pause
|
||||
Modular and reusable components\\
|
||||
\pause
|
||||
Usermode device drivers\\
|
||||
\pause
|
||||
Service multiplexers\\
|
||||
\pause
|
||||
Language runtimes\\
|
||||
\pause
|
||||
Virtual Machine Monitors\\
|
||||
\pause
|
||||
Reducing the complexity of the trusted computing base is a first class concern\\
|
||||
\pause
|
||||
\includegraphics[height=.20\textheight,keepaspectratio]{agpl-logo.png}\\
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
Kernels
|
||||
\begin{itemize}
|
||||
\item NOVA - ~12,5 KLOC
|
||||
\pause
|
||||
\item Genode Core - ~25 KLOC
|
||||
\pause
|
||||
\item Genode Init - ~10 KLOC
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\begin{center}
|
||||
\includegraphics[height=.9\textheight,keepaspectratio]{solo5_tcb.png}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Distributed Functionality, Distributed Policy}
|
||||
\begin{center}
|
||||
\includegraphics[width=\textwidth,height=.8\textheight,keepaspectratio]{app_specific_tcb.pdf}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\frame{Demo}
|
||||
|
||||
\begin{frame}{Sculpt}
|
||||
\begin{center}
|
||||
\includegraphics[width=\textwidth,height=.8\textheight,keepaspectratio]{sculpt_overview.png}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\end{document}
|
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 61 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 13 KiB |