HelenOS 0.5.0 Fajtl Beyond 0.5.0 Last Year At a Glance GSoC 2012 - - PowerPoint PPT Presentation

helenos
SMART_READER_LITE
LIVE PREVIEW

HelenOS 0.5.0 Fajtl Beyond 0.5.0 Last Year At a Glance GSoC 2012 - - PowerPoint PPT Presentation

HelenOS www.helenos.org What is HelenOS? Last year . . . HelenOS 0.5.0 Fajtl Beyond 0.5.0 Last Year At a Glance GSoC 2012 Community . . . Vojt ech Hork y vojtech.horky@gmail.com www.helenos.org HelenOS www.helenos.org What is


slide-1
SLIDE 1

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

HelenOS

Last Year At a Glance Vojtˇ ech Hork´ y

vojtech.horky@gmail.com

www.helenos.org

slide-2
SLIDE 2

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

What is HelenOS?

slide-3
SLIDE 3

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

What is HelenOS?

HelenOS is a shaping up open-source multiplatform microkernel multiserver general-purpose operating system written from scratch. And it is not “yet another Unix clone”.

slide-4
SLIDE 4

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

What is HelenOS?

HelenOS is a shaping up open-source multiplatform microkernel multiserver general-purpose operating system written from scratch. And it is not “yet another Unix clone”.

  • since 2001
  • over 822 thousand lines of code1
  • over 40 contributors
slide-5
SLIDE 5

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

What is HelenOS?

HelenOS is a shaping up open-source multiplatform microkernel multiserver general-purpose operating system written from scratch. And it is not “yet another Unix clone”.

  • bzr://helenos.org/mainline
  • https://code.launchpad.net/helenos
slide-6
SLIDE 6

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

What is HelenOS?

HelenOS is a shaping up open-source multiplatform microkernel multiserver general-purpose operating system written from scratch. And it is not “yet another Unix clone”.

  • PC – both 32bit and 64bit
  • IA-64 (Intel Itanium)
  • ARM (Neo FreeRunner2, BeagleBoard)
  • MIPS (SGI Indy)
  • PowerPC (Apple iMac G4)
  • SPARC (Sun Ultra)
slide-7
SLIDE 7

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

What is HelenOS?

HelenOS is a shaping up open-source multiplatform microkernel multiserver general-purpose operating system written from scratch. And it is not “yet another Unix clone”.

  • “SPARTAN”
  • virtual memory
  • scheduling
  • IPC (mostly asynchronous)
slide-8
SLIDE 8

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

What is HelenOS?

HelenOS is a shaping up open-source multiplatform microkernel multiserver general-purpose operating system written from scratch. And it is not “yet another Unix clone”.

  • separate userspace tasks
  • virtual file system (VFS)
  • filesystem drivers
  • hardware drivers
  • location service

Device manager Application HC driver Device driver Hardware

IPC IPC IPC IPC (data) IPC (data) HW access

slide-9
SLIDE 9

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

What is HelenOS?

HelenOS is a shaping up open-source multiplatform microkernel multiserver general-purpose operating system written from scratch. And it is not “yet another Unix clone”.

  • development is rather breadth-first than depth-first
  • unfortunately, only C is available
slide-10
SLIDE 10

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

What is HelenOS?

HelenOS is a shaping up open-source multiplatform microkernel multiserver general-purpose operating system written from scratch. And it is not “yet another Unix clone”.

  • SPARTAN kernel, libc
  • VFS, most of filesystem drivers (+ FUSE)
  • drivers, networking stack
  • compositing graphical stack
  • maybe, we are “reinventing” the wheel but
  • it is fun
  • ours is better ;-)
slide-11
SLIDE 11

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

What is HelenOS?

HelenOS is a shaping up open-source multiplatform microkernel multiserver general-purpose operating system written from scratch. And it is not “yet another Unix clone”.

  • no ghosts of unsafe or “odd” APIs
  • strcpy(), strncpy()
  • signals and threads
  • fork() & exec()
  • UTF-8
  • libposix as an emulation layer
slide-12
SLIDE 12

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Last year . . .

slide-13
SLIDE 13

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Shortly

  • 0.5.0 Fajtl was released. . .
  • . . . but development did not stop
  • Google Summer Of Code 2012
slide-14
SLIDE 14

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

0.5.0 Fajtl

slide-15
SLIDE 15

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Kernel improvements

  • Memory reservations
  • prevent overcommit when desired
  • Non-identity mapping in kernel
  • kernel can now access memory at

arbitrary physical address

slide-16
SLIDE 16

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Networking

  • Networking stack rewritten from scratch
  • separate tasks for TCP, UDP, . . .
  • NIC framework for writing drivers
  • Simple web server (static content only)
  • netcat-like terminal emulator nterm
  • Remote console
slide-17
SLIDE 17

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Device drivers

  • Improvements in device driver framework
  • command-line utilities
  • better unplug support
  • USB (1.1 only): UHCI, OHCI, HID, mass-storage
  • SATA
  • Location service
  • device provides a service
  • unifies hardware and “artificial” drivers
slide-18
SLIDE 18

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Filesystems

  • More instances of the same FS
  • e.g. task per mount-point
  • exFAT, LFN, FAT32
  • ISO-9960
  • ext2
slide-19
SLIDE 19

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Towards self-hosting

  • GNU binutils – assembler and linker
  • Portable C compiler (PCC)
  • MIPS R4000 simulator MSIM
slide-20
SLIDE 20

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Beyond 0.5.0

slide-21
SLIDE 21

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Graphical stack

  • Not based on X11 or Wayland or . . .
  • Three tiers
  • Graphic adapter driver
  • Compositor server
  • Widget toolkit
  • Bitmap-based effects
slide-22
SLIDE 22

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

“Invisible” changes

  • Guard pages
  • Large user stacks
  • More benevolent IPC
slide-23
SLIDE 23

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Miscellaneous

  • Support for “wall clock” (CMOS)
  • ext4 with write support
  • Projects from GSoC 2012
slide-24
SLIDE 24

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Feature branches, plans

  • Audio stack
  • Go language support
  • FUSE connector
  • Capability-based private-namespace file system
  • BeagleBoard3
slide-25
SLIDE 25

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Feature branches, plans (cont.)

  • Finish GCC porting
  • IPv6 support
  • Port BIRD Internet Routing Daemon4
  • Port KnotDNS5
  • authoritative-only DNS server

More at https://code.launchpad.net/helenos

slide-26
SLIDE 26

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Demo

slide-27
SLIDE 27

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Google Summer of Code 2012

slide-28
SLIDE 28

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

What is Google Summer of Code

. . . is a program that offers post-secondary student developers stipends to write code for various open source software projects . . . . . . student is paired with a mentor from the participating projects, thus gaining exposure to real-world software development scenarios . . . . . . the participating projects are able to more easily identify and bring in new developers . . .

https://developers.google.com/open-source/soc/

slide-29
SLIDE 29

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Projects

  • Port GCC to HelenOS – Vivek Prakash
  • Indian Institute of Technology Roorkee, India
  • “hack“ the ./configure scripts
  • add missing functionality to libposix
  • UDF file system driver – Julia G. Medvedeva
  • Volgograd State Technical University, Russia
  • DVD & Blu-Ray
  • read-only support
slide-30
SLIDE 30

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Projects (cont.)

  • Structured binary data tools (Bithenge) – Sean Bartell
  • North Carolina State University at Raleigh, USA
  • viewing/editing binary data

transform gif_image_block = struct { .left <- word; .top <- word; .width <- word; .height <- word; <- struct { . use_local_color_map <- bit; . interlacing <- bit; . reserved_bits <- uint_be (3); . bits_per_pixel <- (in + 1) <- uint_be (3); } <- bits_be <- known_length (1); if (. use_local_color_map ) { . local_colors <- gif_color_map_from_bbp (. bits_per_pixel ); } . lzw_initial_size <- uint8; .lzw_data <- generic_data_block ; };

slide-31
SLIDE 31

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Projects (cont.)

  • Scalable, resizable, concurrent hash-table – Adam Hraˇ

ska

  • Charles University in Prague, Czech Republic
  • RCU-based
  • for both kernel and userspace
  • continues as a master thesis
  • HelenOS as a Genode platform – Tobias B¨
  • rtitz
  • Dresden University of Applied Sciences, Germany
  • joint project with Genode Labs
  • continues as a master thesis
slide-32
SLIDE 32

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Community

slide-33
SLIDE 33

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Community

  • developers-only
  • over 40 contributors
  • about 20 of them active during last year6
  • but only 10 of them have at least 10 commits

(counting only mainline)

  • about half of the contributors have less than 10 commits
slide-34
SLIDE 34

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Attracting new collaborators

  • GSoC
  • a lot of applicants
  • 8 accepted students in 2 years
  • about half of them disappeared completely

at the end of the project

  • university courses
  • random passers-by
  • “can I run XY on it?”
  • “so, it runs above Linux, right?”
slide-35
SLIDE 35

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Learning more by programming. . .

  • Write a device driver
  • Be modular
  • Port to a new architecture
  • More low-level is only soldering
  • Implement a file system driver
  • Stay in userspace
  • Write user application
  • Use non-standard API
  • Port application from you favourite OS
  • Connect different worlds
  • Implement your wild ideas ;-)
slide-36
SLIDE 36

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Join us!

  • helenos-devel@lists.modry.cz
  • #helenos on Freenode
slide-37
SLIDE 37

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

Thank you! Q & A http://www.helenos.org

slide-38
SLIDE 38

HelenOS www.helenos.org What is HelenOS? Last year . . . 0.5.0 Fajtl Beyond 0.5.0 GSoC 2012 Community . . .

References

[1] Ohloh.net: lines of code

https://www.ohloh.net/p/helenos/analyses/latest/languages_summary

[2] HelenOS on Neo FreeRunner

http://trac.helenos.org/wiki/FreeRunner

[3] BeagleBoard

http://en.wikipedia.org/wiki/BeagleBoard

[4] The BIRD Internet Routing Daemon

http://bird.network.cz/

[5] Knot DNS

https://www.knot-dns.cz/

[6] Ohloh.net: contributors

https://www.ohloh.net/p/helenos/contributors/summary