User Tools

Site Tools


soc:2017:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
soc:2017:start [2017/03/14 14:33]
dcvmoole update email address
soc:2017:start [2017/03/15 14:26] (current)
jeanbaptisteboric adding ARM board vendors port and rump project
Line 9: Line 9:
 MINIX 3 aims to be suitable for use on the high end of embedded ARM platforms. Important steps have been made in that direction, but there is much more work to be done. In this project, a concrete goal in that direction will be arranged together with the student, which could range from porting MINIX 3 to a board similar to those supported already, to implementing drivers to support for example Serial Peripheral Interface (SPI) and/or Controller Area Network (CAN) bus devices. MINIX 3 aims to be suitable for use on the high end of embedded ARM platforms. Important steps have been made in that direction, but there is much more work to be done. In this project, a concrete goal in that direction will be arranged together with the student, which could range from porting MINIX 3 to a board similar to those supported already, to implementing drivers to support for example Serial Peripheral Interface (SPI) and/or Controller Area Network (CAN) bus devices.
  
 +=== Project: Porting MINIX 3 to new ARM board vendors ===
 +
 +Mentor: [[jblbeurope@gmail.com|Jean-Baptiste Boric]]
 +
 +The MINIX 3 ARM port is currently hard-coded to only support the Beagle family of boards. Eventually we will need to support new boards from other vendors in order to expand our horizons. Tasks include among others bootstrapping MINIX 3 on new ARM platforms, writing lots of device drivers, adding flat device tree and multi-vendor support, removing hard-coded Beagle boards assumptions...
 +
 +Any ARM board is a potential candidate, but the following are especially wanted:
 +  * Raspberry Pi 2/3: a bare-bones proof of concept port [[https://​github.com/​Stichting-MINIX-Research-Foundation/​minix/​pull/​134|exists]],​ but there is a lot of work to do before it can be merged and reach feature parity with the Beagles
 +  * QEMU's ARM virt: most ARM board have a fixed hardware configuration and are not suited for heavy-duty tasks like bulk compilation of pkgsrc packages, so there is a need for a highly modular and scalable ARM platform
 +
 +Completing a port can be a long endeavor spanning several months, so a complete port supporting every last feature of a given board is not expected.
 +
 +=== Project: rump ===
 +
 +Mentor: [[jblbeurope@gmail.com|Jean-Baptiste Boric]]
 +
 +The rump anykernel essentially turns large parts of the NetBSD kernel (notably drivers, file systems and network stack) into portable, reusable components that can run anywhere. Adding rump support to MINIX would drastically boost the number of file systems and hardware peripherals supported by the operating system, vastly improving its usability on physical hardware along with tons of utilities like fs-utils or the rump server.
 +
 +It has been proven that the rump components themselves [[https://​github.com/​Stichting-MINIX-Research-Foundation/​minix/​pull/​185|will compile]] with little to no modification inside the MINIX tree, but there is no suitable hypercall implementation to build rump programs in user-space or glue code to run them inside the service or driver layer. We basically have a big heap of libraries without the needed foundations to make use of them.
 +
 +Note: this is a really, really tough project for students looking for a really, really tough challenge. When in doubt, consider applying for another project.
soc/2017/start.txt · Last modified: 2017/03/15 14:26 by jeanbaptisteboric