BeagleBoard/GSoC/2019Proposal/Xen on BeagleBoard-x15

From eLinux.org
< BeagleBoard‎ | GSoC
Revision as of 08:56, 28 March 2019 by Embden (talk | contribs) (Contingency)
Jump to: navigation, search


Proposal

{{#ev:youtube|Jl3sUq2WwcY||right|BeagleLogic}}

The project idea is to make Xen hypervisor available and easy to use on beagleboard-x15. To achieve this, it is planned to write Xen-supporting code and tutorials for Xen setup on the board. Another project goal is to improve user experience by working on optimizations for Beagleboard's kernel virtualization support code and/or on user-space tools.
Previously, the problem was discussed in xen mailing list and in beagleboard mailing list. The general solution wasn't provided and it seems that the problem still does exist.
The virtualization will make prototyping of virtualization-based security solutions easier in such areas like automotive computing and mobile privacy (BYOD problems).

Student: Denis Obrezkov
Mentors: Jason Kridner, Stefano Stabellini, Julien Grall, Iain Hunter
Code: https://github.com/embeddedden
Wiki: https://elinux.org/index.php?title=GSoC_2019_Proposal:_Xen_on_Beagleboard-x15
GSoC: N/A

Status

This project is currently just a proposal.

Proposal

Please complete the requirements listed on the ideas page and fill out this template.

About you

IRC: Freenode IRC nickname
Github: Github account
School: School name
Country: Country
Primary language (We have mentors who speak multiple languages): Language
Typical work hours (We have mentors in various time zones): 8AM-5PM US Eastern
Previous GSoC participation: Tell us why you want to participate in GSoC here. Also, provide list of URLs for any previous GSoC participation with any organizations.

About your project

Project name: Super Awesome Project

Description

In my project I want to provide a working implementation of Xen hypervisor on BeagleBoard-x15. This implementation will allow users to experiment on embedded virtualization and in related fields like automotive, critical systems prototyping and processor's resources sharing. It might also provide very interesting possibilities for heterogeneous resources' utilization. Another important outcome for both Xen and Beagleboard communities is a set of documentation on installation and usage processes. I hope that the project will also allow to make both this projects (beagleboard and xen) more popular among open-source and industrial developers.

My own motivation for this project is to improve open-source embedded virtualization. The knowledge obtained during the project will simplify my work in the field of embedded and mobile security.

The technology stack in this project involves arm architecture, Linux kernel, Xen virtualization and bootloading. The main programming language is C and assembler will likely be used. Also, some C++ might be used for writing utilities. The hardware needed for this project is Beagleboard-X15 and xds-200 debugger. The gdb debugger will probably be used in this project.

Timeline

Provide a development timeline with a milestone each of the 11 weeks and any pre-work. (A realistic timeline is critical to our selection process.)

2019-05-27: Pre-work
2019-06-03: Milestone #1

  • Introductory Youtube video

2019-06-10: Milestone #2
2019-06-17: Milestone #3
2019-06-24: First evaluation milestone
2019-07-01: Milestone #5
2019-07-08: Milestone #6
2019-07-15: Milestone #7
2019-07-22: Second evaluation milestone
2019-08-05: Milestone #9
2019-08-12: Milestone #10
2019-08-19: Coding completion milestone

  • Completion Youtube video

Experience and approach

Currently, I am a PhD student in the University of Bremen, Germany. In my PhD project I am working on security mechanisms for embedded and mobile systems. Currently, I am developing a simple mechanisms for managing SELinux attributes in a natural way for both Android and Linux systems with Qt (the work is in a very initial state).

Before this study, I was working with OMAP-L137 (with both ARM and C6x cores) for two years in a R&D company. My main duties were writing bare metal code (UART and SPI drivers) and embedded Linux user-space utilities, mostly, parsers.

In 2017, I have participated in GSoC with RISC-V on RTEMS project. My goal was to make a port of RTEMS for the HiFive1 board. The port was done till the end of the GSoC. Though, it wasn't merged (because of a very small memory on the board (32 KB) while RTEMS required at least 64 KB) it still might be used for future SiFive SoCs.

I am pretty optimistic about my chances on successful implementation with the proposed project. On the one hand, I will work on the board that already had few revisions and has an established community. On the other hand, I will be supported by mentors from different organizations (ARM, Xen, 3rd Party). And since I have no problems with requesting help I assess my chances on successful completion of the project as pretty high.

Contingency

What will you do if you get stuck on your project and your mentor isn’t around?

Most of the time, when I get stuck I go to the related IRC channels and ask for help. If I don't receive any help I ask people in mailing lists and on related forums.

Benefit

If successfully completed, what will its impact be on the BeagleBoard.org community? Include quotes from BeagleBoard.org community members who can be found on http://beagleboard.org/discuss and http://bbb.io/gsocchat.

Suggestions

Is there anything else we should have asked you?