30
Martin Děcký [email protected] http://d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics faculty of mathematics and physics HelenOS: State of the Union 2012 HelenOS: State of the Union 2012

HelenOS: State of the Union 2012

Embed Size (px)

DESCRIPTION

An annual status report about HelenOS development.

Citation preview

Page 1: HelenOS: State of the Union 2012

Martin Děcký

[email protected]

http://d3s.mff.cuni.cz

CHARLES UNIVERSITY IN PRAGUE

faculty of mathematics and physicsfaculty of mathematics and physics

HelenOS: State ofthe Union 2012

HelenOS: State ofthe Union 2012

Page 2: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 2

What's New?What's New?

Since October 11th 2011384 days (1.05 years) ago

Latest release 0.5.0 (Fajtl)August 9th 2012The biggest release ever (15 months of development)

On track to 0.5.1Minor release, but important improvements plannedExpected in Q2 2013

Page 3: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 3

What's New in 0.5.0?What's New in 0.5.0?

Hardware support resurrection

IA-64 (on real hardware, non-SMP only)

PowerPC

Kernel memory management improvements

Memory reservationsPrevents memory overcommitting if not desired

Kernel non-identity mapping supportSupport for accessing any physical memory from the kernel

Page 4: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 4

What's New in 0.5.0? (2)What's New in 0.5.0? (2)

Integration of various development branches

USB supportUHCI, OHCI (USB 1.1)

USB HID, USB Mass Storage

Networking improvementsIntel PRO/1000 (E1000) device driver

Realtek RTL8139 device driver

NIC driver framework

Rewritten TCP/IP stack

Page 5: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 5

What's New in 0.5.0? (3)What's New in 0.5.0? (3)

Integration of various development branches

File systemsRead-only ext2 driver

Read-only ISO 9660 driver

Read/write support for FAT12, FAT16, FAT32 and exFATIncluding LFN extension

Read/write support for MINIX FSMigration path from MINIX 3 :-)

Page 6: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 6

What's New in 0.5.0? (4)What's New in 0.5.0? (4)

Infrastructure improvements

Location serviceImproved replacement for the Device mapper

Service names (instances)

Service categories (classes)

Towards self-hostingAssembler and linker via GNU Binutils

C compiler via PCC

Virtual machine via MSIM

Page 7: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 7

What's New in 0.5.0? (5)What's New in 0.5.0? (5)

Miscellaneous and experimental

SATA (AHCI) support

Anticipated device removal

Multiple file system driver instances

Web server can actually serve files from file system

Remote network console

Dynamic linking production-grade on IA-32

GRUB 2 as preferred boot loader (on IA-32 and AMD64)

Page 8: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 8

What's New Since the Release?What's New Since the Release?

Graphical User Interface

Graphics drivers as 1st class DDF citizensProposal for hardware acceleration API

Display compositor

GUI widgets library

File systems

Read/write ext4 driver

Partial read/write UDF driver

Page 9: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 9

What's New Since the Release? (2)What's New Since the Release? (2)

Structured binary data manipulation

Bithenge framework

IPC improvements

Avoiding bookkeeping of unimportant messages

Scalable concurrent hash table

User space part merged so far

Real time clock driver

CMOS based (IA-32)

Page 10: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 10

What's New Since the Release? (3)What's New Since the Release? (3)

Demo

Page 11: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 11

History 2005 – 2012History 2005 – 2012

2005-032005-06

2005-092005-12

2006-032006-06

2006-092006-12

2007-032007-06

2007-092007-12

2008-032008-06

2008-092008-12

2009-032009-06

2009-092009-12

2010-032010-06

2010-092010-12

2011-032011-06

2011-092011-12

2012-032012-06

2012-09

0

1000

2000

3000

4000

5000

6000

7000

Date

Commits

Page 12: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 12

History 2005 – 2012 (2)History 2005 – 2012 (2)

2005-032005-06

2005-092005-12

2006-032006-06

2006-092006-12

2007-032007-06

2007-092007-12

2008-032008-06

2008-092008-12

2009-032009-06

2009-092009-12

2010-032010-06

2010-092010-12

2011-032011-06

2011-092011-12

2012-032012-06

2012-09

0

50000

100000

150000

200000

250000

300000

350000

Date

SLOC

Page 13: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 13

What's CookingWhat's Cooking

IPC interfaces and ports

Replacement for duck typing and “mixins”Stronger run-time type checking

Connection to ports mediated by naming services

Read-copy-update

Two parallel efforts (AP-RCU, A-RCU)

Scalable concurrent data structures (hash table)

Page 14: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 14

What's Cooking (2)What's Cooking (2)

Go support

FUSE support

VFS 2.0

Capability-based private file system namespaces

BeagleBoard, Raspberry Pi

Audio stack

Low-level drivers and a sound server

Page 15: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 15

What's Cooking (3)What's Cooking (3)

Xen revival

HelenOS running as a Xen domain

HelenOS acting as Xen hypervisor

System services manager and logger

Think of cgroups, systemd and journald

HelenOS installer

Page 16: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 16

What's Cooking (4)What's Cooking (4)

Self-hosting

Port of GCC

Port of Python

Python-based build infrastructure (waf)

Continuous integration and testing

Based on Hudson (but with a twist)

Networking features

DNS, DHCP, etc.

Page 17: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 17

Social AgendaSocial Agenda

FOSDEM 2012

February 4th – 5th 2012, Brussels, Belgium

Université libre de Bruxelles

Jakub Jermář chaired the Microkernel OS DevroomParticipation of HelenOS, Genode Labs, NOVA, MINIX, Hurd

FOSDEM 2013

February 2nd – 3rd 2013, Brussels, Belgium

Genode Labs is about to chair the Microkernel and Component-based OS Devroom

Page 18: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 18

FOSDEM 2012FOSDEM 2012

Page 19: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 19

FOSDEM 2012 (2)FOSDEM 2012 (2)

Photos

Page 20: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 20

Google Summer of Code 2012Google Summer of Code 2012

4th attempt, 2nd successful (in a row)

http://helenos.org/gsoc201217 student proposals

Vivek Prakash: Port GNU Compiler Collection (GCC) to HelenOSIndian Institute of Technology Roorkee, India

Mentored by Jiří Svoboda

Sean Bartell: Structured binary data toolsNorth Carolina State University at Raleigh, USA

Mentored by Vojtěch Horký

Adam Hraška: Resizeable, scalable, concurrent hash tableCharles University in Prague, Czech Republic

Mentored by Jakub Jermář

Julia G. Medvedeva: UDF file system serverVolgograd State Technical University, Russia

Mentored by Martin Děcký

Tobias Börtitz: HelenOS as a Genode platformDresden University of Applied Sciences, Germany

Mentored by Stefan Kalkowski

Page 21: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 21

GSoC Mentor Summit 2012GSoC Mentor Summit 2012

Unconference

October 20th – 21st 2012

Googleplex, Mountain View, California

Attended by Vojtěch Horký and Jakub Jermář

Minority OS minisummit

Page 22: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 22

GSoC Mentor Summit 2012 (2)GSoC Mentor Summit 2012 (2)

Photo by Robin Smidsrød

Page 23: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 23

GSoC Mentor Summit 2012 (3)GSoC Mentor Summit 2012 (3)

Photo by Robin Smidsrød

Page 24: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 24

BithengeBithenge

Aim

Extensible declarative way to describe binary formatsBinary files (ELF headers, DWARF debugging information), on-disk file system structures, network packets

Components

Declarative DSL for describing binary formats

API for accessing data based on the DSL

User front-ends (editors)

Page 25: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 25

Bithenge (2)Bithenge (2)transform u8 = uint8;transform u16 = uint16le;transform u32 = uint32le;

transform fat_attributes = struct { .read_only <- bit; .hidden <- bit; .system <- bit; .volume_label <- bit; .subdirectory <- bit; .archive <- bit; .device <- bit; .reserved <- bit;} <- bits_le <- known_length(1);

Page 26: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 26

Bithenge (3)Bithenge (3)transform file_data(data, bits, fat, cluster_size, start) = (in.data) <- struct { .cluster <- (data[(start-2)*cluster_size, cluster_size]); .last_cluster_number <- switch (bits) { 12: (488); # 0x00000ff8 16: (65528); # 0x0000fff8 32: (268435448); # 0x0ffffff8 }; .next <- (fat[start]); if (.next == 0 || .next >= .last_cluster_number) { .data <- (.cluster); } else { .rest <- file_data(data, bits, fat, cluster_size, .next) <- known_length(0); .data <- (.cluster ++ .rest); }};

Page 27: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 27

Possible Application of HelenOSPossible Application of HelenOS

Cooperation with CZ.NIC Labs

IPv6 support in HelenOS

BIRD routing daemon for HelenOShttp://bird.network.cz/

Knot DNS server for HelenOShttp://www.knot-dns.cz/

Page 28: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 28

HelenOS PhD ThesisHelenOS PhD Thesis

Work in Progress

Semantic informationin source code

Architecture andbehavior specification

Architecturemodels

Extra-functionalproperties

Page 29: HelenOS: State of the Union 2012

Martin Děcký, D3S Seminar, October 30th 2012 HelenOS: State of the Union 2012 29

Q&Awww.helenos.org

Page 30: HelenOS: State of the Union 2012