Propuesta De Software Base Para El Desarrollo De Sistemas Embebidos

Total Page:16

File Type:pdf, Size:1020Kb

Load more

Universidad Central «Marta Abreu» de las Villas Facultad de Matemática - Física - Computación Departamento de Ciencia de la Computación Propuesta de software base para el desarrollo de sistemas embebidos Tesis presentada en opción al Título Académico Máster en Ciencia de la Computación Lic. Reinier Millo Sánchez Año 58 de la Revolución Santa Clara 2016 Universidad Central «Marta Abreu» de las Villas Facultad de Matemática - Física - Computación Departamento de Ciencia de la Computación Propuesta de software base para el desarrollo de sistemas embebidos Tesis presentada en opción al Título Académico Máster en Ciencia de la Computación Lic. Reinier Millo Sánchez Tutor: DrC. Carlos Morell Pérez Año 58 de la Revolución Santa Clara 2016 DICTAMEN El que suscribe, Lic. Reinier Millo Sánchez, hago constar que el trabajo titulado «Propuesta de software base para el desarrollo de sistemas embebidos» fue realizado en la Universidad Central «Marta Abreu» de las Villas como parte de la culminación de los estudios de la especialidad de Ciencia de la Computación, autorizando a que el mismo sea utilizado por la institución, para los fines que estime conveniente, tanto de forma parcial como total, y que además no podrá ser presentado en eventos ni publicado sin la autorización de la Universidad. Firma del autor Lic. Reinier Millo Sánchez Los firmantes que aparecen a continuación certifican que el presente trabajo ha sido realizado según acuerdos de la dirección del centro y el mismo cumple con los requisitos que debe tener una investigación de esta envergadura referida a la temática señalada. Firma del tutor Firma del jefe del seminario DrC. Carlos Morell Pérez DrC. Carlos Pérez Risquet 24 de junio del 2016 Fecha Pensamiento «Hay dos formas de escribir programas sin errores; sólo la tercera funciona» Alan J. Perlis Dedicatoria A la memoria de mi abuela Nena ... A la memoria de mi abuelo Marcelo ... A la memoria de mi abuela Olga ... A mis padres ... A Patri, mi linda sobrina ... A mi familia... A todos mis amigos... En fin, a todos aquellos que siempre creyeron en la realización de este trabajo. Agradecimientos A mi tutor DrC. Carlos Morell Pérez por todo su apoyo, dedicación y momentos en los que fumamos para la realización de este trabajo y el desarrollo de la ciencia. A mi familia en especial mis padres y mi hermana, por quererme y tener siempre todo su apoyo... ... a mis abuelos y tíos, por su cariño ... ... a todos ellos por hacer de mi la persona que soy. A mi Betty Boop, esa persona especial que llegó a mi vida, y hoy es motivo de mi alegría e inspiración, gracias por todo su cariño, paciencia y apoyo en la realización de este trabajo. A Yadira Benavides Zaila por todo su apoyo y dedicación para la realización de este trabajo, por todas sus sugerencias oportunas para la redacción del documento y el desarrollo de la investigación en general. A Lenniet Coello Blanco y Mabel Frías, camagüeyanas especiales que conocí durante la maestría, por brindarme su amistad y apoyo incondicional, aunque no les gustara mi trabajo, por ser motivo de inspiración y mostrarme que siempre se puede. A Isabel Cristina Pérez Verona, simplemente Is, una amiga muy especial que conocí durante la maestría, por brindarme su amistad y confianza, por soportarme como soy y siempre tener una sonrisa. A Fernando Rosales, Jarvin Antón, Osmany Morffa, Guillermo Sosa, Claudia Companioni, Karelia Díaz, Marilyn Bello, Adis Perla, Addel Goya, Frank Reyes, Alejandro Boix, Mario Amores, Waldo Paz, Tahimy Morffa, amigos de la carrera, de la universidad y compañeros de trabajo, por soportarme y confiar en mi. Al equipo de desarrollo de Sistema Operativo UCLV-XETID, Waldo Paz, Alexy Gallardo, Humberto López, Alexy Fajardo, Jorge A. Polo, algunos ya no pertenecen al equipo de trabajo pero de ellos dependió mucho la realización de este trabajo. Agradecimientos Al grupo de trabajo de la XETID en la UCLV, Eva, Randy, Yosmel, Leonardo, Alexy, Humberto, Carlos, Ernesto, Liliana, Michel, Daniel, Claudia, Alejandro, Luis Javier, Yanelys, Yadira, Loreni, Julio, por todos los días trabajados en colectivo y los momentos compartidos. A los compañeros de la XETID, en especial Vasconcelo, Arce y Frank, por todo el apoyo brindado para el desarrollo de este trabajo. A las comunidades de desarrollo de Fiasco.OC y GenodeOS por toda su ayuda y el apoyo brindado durante el desarrollo de este trabajo. A Tania Rendón, periodista de profesión que sin conocimientos de la temática me brindó oportunas sugerencias para la redacción del documento. A todo el claustro de profesores de la maestría por todo el conocimiento brindado. A todos los que nos tildaron de locos al comenzar este trabajo y nos hicieron esforzarnos más para obtener un buen resultado. En fin, para que no quede nadie por mencionar, a todas las personas que de una forma u otra han colaborado con la realización de este trabajo. A todos muchas gracias RESUMEN El empleo de sistemas embebidos se ha convertido en un fenómeno común de nuestros días, ya que se pueden encontrar dispositivos embebidos desde las fábricas automatizadas hasta en el hogar. Aunque el funcionamiento de los sistemas embebidos es predeterminado por la funcionalidad para la cual se van a emplear, resulta necesario tener un sistema operativo que controle el dispositivo. El desarrollo de sistemas operativos para controlar estos sistemas embebidos tiene nuevos retos con el auge de nuevas plataformas de hardware y nuevos requisitos de sistema. Dos de los enfoques más empleados para el desarrollo de kernels de sistema son el monolítico y el microkernel. El enfoque basado en microkernel tiene un enfoque minimalista y es una mejor alternativa para el desarrollo de sistemas embebidos. En el presente trabajo se propone XEOS, una combinación del microkernel Fiasco.OC con el framework de desarrollo GenodeOS, para el desarrollo de un software base cuyo fin es ser empleado en sistemas embebidos desarrollados por la XETID. Asimismo, en la investigación se aplican pruebas de rendimiento al sistema propuesto, demostrando que existen diferencias significativas respecto a sistemas con un enfoque monolítico, tomado como referencia, pero se logra un mejor aprovechamiento del hardware subyacente. La factibilidad de emplear XEOS para el desarrollo de sistemas embebidos en la XETID es probada con el caso de estudio ErosXD, un controlador de domótica desarrollado en la XETID. i ABSTRACT The use of embedded systems has become a common phenomenon today, these embedded devices can be found from automated factories to home. Although the operation of embedded systems it is predetermined by functionality for which are to be used, it must have an operating system that control the device. The development of operating systems to control these embedded systems has new challenges with the rise of new hardware platforms and new system requirements. Two of most commonly used approaches for the development of system kernels are monolithic and microkernel. Microkernel-based approach has a minimalist approach and is a better alternative for the development of embedded systems. In this thesis it is proposed XEOS, a combination of Fiasco.OC microkernel with the GenodeOS development framework, for the development of a basis software used in embedded systems developed by XETID. Also, in this research are applied performance tests to the system, demonstrating that there are significant differences compared to systems with a monolithic approach that were taken as reference, but achieves a better use of the underlying hardware. The feasibility of using XEOS for development of embedded systems in the XETID is tested with the case ErosXD, home automation controller developed in the XETID. ii TABLA DE CONTENIDOS Listado de figuras VI Listado de tablas VIII Listado de acrónimos IX Introducción 1 Capítulo 1: Acerca del desarrollo de sistemas operativos 8 1.1 El kernel del sistema operativo . .8 1.1.1 Planificación de la CPU . .9 1.1.2 Administración de la memoria . .9 1.1.3 Administración de dispositivos de I/O . 10 1.1.4 Mecanismo de comunicación . 11 1.1.5 Llamadas al sistema . 11 1.2 Enfoques para el desarrollo de kernel del sistema . 12 1.2.1 Kernel monolítico . 13 1.2.2 Microkernel .......................... 14 1.2.3 Kernel híbrido . 16 1.2.4 Exokernel ........................... 17 1.2.5 Kernel monolítico vs. microkernel .............. 19 Consideraciones finales del capítulo . 21 Capítulo 2: Selección del microkernel y el framework de la propuesta 22 2.1 Microkernels para el desarrollo de sistemas embebidos . 22 2.1.1 Minix3 . 22 2.1.2 Microkernel de la familia L4 . 23 2.1.2.1 Fiasco.OC . 24 2.1.2.2 OKL4 . 25 2.1.2.3 seL4 . 26 2.1.3 FreeRTOS . 26 2.1.4 Selección del microkernel . 27 2.2 Frameworks de desarrollo de sistemas operativos . 30 2.2.1 LibOS . 30 iii Tabla de contenidos 2.2.2 Graphene . 31 2.2.3 LynxOS . 31 2.2.4 Quantum Leaps . 32 2.2.5 Mentor Embedded Multicore Framework . 32 2.2.6 GenodeOS . 33 2.2.7 L4Re . 35 2.2.8 Selección del framework . 36 Consideraciones finales del capítulo . 38 Capítulo 3: XEOS, software base de sistemas embebidos 39 3.1 XEOS . 39 3.2 Plataformas de hardware RaspberryPI y Odroid-X2 . 40 3.2.1 El TCB del sistema . 44 3.3 Soporte de XEOS para las plataformas de hardware ........ 45 3.3.1 Portando la plataforma RaspberryPI a XEOS . 46 3.3.2 Portando la plataforma Odroid-X2 a XEOS . 48 3.4 Seguridad del software base . 49 Consideraciones finales del capítulo . 51 Capítulo 4: Pruebas de software 53 4.1 Pruebas de software .......................... 53 4.1.1 Pruebas de software estáticas . 54 4.1.2 Pruebas de software dinámicas . 55 4.1.3 Pruebas automáticas . 58 4.2 Pruebas de software sobre XEOS .
Recommended publications
  • Hacker Public Radio

    Hacker Public Radio

    hpr0001 :: Introduction to HPR hpr0002 :: Customization the Lost Reason hpr0003 :: Lost Haycon Audio Aired on 2007-12-31 and hosted by StankDawg Aired on 2008-01-01 and hosted by deepgeek Aired on 2008-01-02 and hosted by Morgellon StankDawg and Enigma talk about what HPR is and how someone can contribute deepgeek talks about Customization being the lost reason in switching from Morgellon and others traipse around in the woods geocaching at midnight windows to linux Customization docdroppers article hpr0004 :: Firefox Profiles hpr0005 :: Database 101 Part 1 hpr0006 :: Part 15 Broadcasting Aired on 2008-01-03 and hosted by Peter Aired on 2008-01-06 and hosted by StankDawg as part of the Database 101 series. Aired on 2008-01-08 and hosted by dosman Peter explains how to move firefox profiles from machine to machine 1st part of the Database 101 series with Stankdawg dosman and zach from the packetsniffers talk about Part 15 Broadcasting Part 15 broadcasting resources SSTRAN AMT3000 part 15 transmitter hpr0007 :: Orwell Rolled over in his grave hpr0009 :: This old Hack 4 hpr0008 :: Asus EePC Aired on 2008-01-09 and hosted by deepgeek Aired on 2008-01-10 and hosted by fawkesfyre as part of the This Old Hack series. Aired on 2008-01-10 and hosted by Mubix deepgeek reviews a film Part 4 of the series this old hack Mubix and Redanthrax discuss the EEpc hpr0010 :: The Linux Boot Process Part 1 hpr0011 :: dd_rhelp hpr0012 :: Xen Aired on 2008-01-13 and hosted by Dann as part of the The Linux Boot Process series.
  • UNIVERSIDAD AUTÓNOMA DE CIUDAD JUÁREZ Instituto De Ingeniería Y Tecnología Departamento De Ingeniería Eléctrica Y Computación

    UNIVERSIDAD AUTÓNOMA DE CIUDAD JUÁREZ Instituto De Ingeniería Y Tecnología Departamento De Ingeniería Eléctrica Y Computación

    UNIVERSIDAD AUTÓNOMA DE CIUDAD JUÁREZ Instituto de Ingeniería y Tecnología Departamento de Ingeniería Eléctrica y Computación GRABADOR DE VIDEO DIGITAL UTILIZANDO UN CLUSTER CON TECNOLOGÍA RASPBERRY PI Reporte Técnico de Investigación presentado por: Fernando Israel Cervantes Ramírez. Matrícula: 98666 Requisito para la obtención del título de INGENIERO EN SISTEMAS COMPUTACIONALES Profesor Responsable: M.C. Fernando Estrada Saldaña Mayo de 2015 ii Declaraci6n de Originalidad Yo Fernando Israel Cervantes Ramirez declaro que el material contenido en esta publicaci6n fue generado con la revisi6n de los documentos que se mencionan en la secci6n de Referencias y que el Programa de C6mputo (Software) desarrollado es original y no ha sido copiado de ninguna otra fuente, ni ha sido usado para obtener otro tftulo o reconocimiento en otra Instituci6n de Educaci6n Superior. Nombre alumno IV Dedicatoria A Dios porque Él es quien da la sabiduría y de su boca viene el conocimiento y la inteligencia. A mis padres y hermana por brindarme su apoyo y ayuda durante mi carrera. A mis tíos y abuelos por enseñarme que el trabajo duro trae sus recompensas y que no es imposible alcanzar las metas soñadas, sino que solo es cuestión de perseverancia, trabajo, esfuerzo y tiempo. A mis amigos: Ana, Adriel, Miguel, Angélica, Deisy, Jonathan, Antonio, Daniel, Irving, Lupita, Christian y quienes me falte nombrar, pero que se han convertido en verdaderos compañeros de vida. v Agradecimientos Agradezco a Dios por haberme permitido llegar hasta este punto en la vida, sin Él, yo nada sería y es Él quien merece el primer lugar en esta lista. Gracias Señor porque tu mejor que nadie sabes cuánto me costó, cuanto espere, cuanto esfuerzo y trabajo invertí en todos estos años, gracias.
  • Microkernel Construction Introduction

    Microkernel Construction Introduction

    Microkernel Construction Introduction Nils Asmussen 04/09/2020 1 / 32 Normal Organization Thursday, 4th DS, 2 SWS Slides: www.tudos.org ! Studies ! Lectures ! MKC Subscribe to our mailing list: www.tudos.org/mailman/listinfo/mkc2020 In winter term: Microkernel-based operating systems (MOS) Various labs 2 / 32 Organization due to COVID-19 Slides and video recordings of lectures will be published Questions can be asked on the mailing list Subscribe to the mailing list! Practical exercises are planed for the end of the semester Depending on how COVID-19 continues, exercises are in person or we use some video-conferencing tool 3 / 32 Goals 1 Provide deeper understanding of OS mechanisms 2 Look at the implementation details of microkernels 3 Make you become enthusiastic microkernel hackers 4 Propaganda for OS research done at TU Dresden and Barkhausen Institut 4 / 32 Outline Organization Monolithic vs. Microkernel Kernel design comparison Examples for microkernel-based systems Vision vs. Reality Challenges Overview About L4/NOVA 5 / 32 Monolithic Kernel System Design u s Application Application Application e r k Kernel e r File Network n e Systems Stacks l m Memory Process o Drivers Management Management d e Hardware 6 / 32 Monolithic Kernel OS (Propaganda) System components run in privileged mode No protection between system components Faulty driver can crash the whole system Malicious app could exploit bug in faulty driver More than 2=3 of today's OS code are drivers No need for good system design Direct access to data structures Undocumented
  • Can Microkernels Mitigate Microarchitectural Attacks?⋆

    Can Microkernels Mitigate Microarchitectural Attacks?⋆

    Can Microkernels Mitigate Microarchitectural Attacks?? Gunnar Grimsdal1, Patrik Lundgren2, Christian Vestlund3, Felipe Boeira1, and Mikael Asplund1[0000−0003−1916−3398] 1 Department of Computer and Information Science, Link¨oping University, Sweden ffelipe.boeira,[email protected] 2 Westermo Network Technologies [email protected] 3 Sectra AB, Link¨oping,Sweden Abstract. Microarchitectural attacks such as Meltdown and Spectre have attracted much attention recently. In this paper we study how effec- tive these attacks are on the Genode microkernel framework using three different kernels, Okl4, Nova, and Linux. We try to answer the question whether the strict process separation provided by Genode combined with security-oriented kernels such as Okl4 and Nova can mitigate microar- chitectural attacks. We evaluate the attack effectiveness by measuring the throughput of data transfer that violates the security properties of the system. Our results show that the underlying side-channel attack Flush+Reload used in both Meltdown and Spectre, is effective on all in- vestigated platforms. We were also able to achieve high throughput using the Spectre attack, but we were not able to show any effective Meltdown attack on Okl4 or Nova. Keywords: Genode, Meltdown, Spectre, Flush+Reload, Okl4, Nova 1 Introduction It used to be the case that general-purpose operating systems were mostly found in desktop computers and servers. However, as IoT devices are becoming in- creasingly more sophisticated, they tend more and more to require a powerful operating system such as Linux, since otherwise all basic services must be im- plemented and maintained by the device developers. At the same time, security has become a prime concern both in IoT and in the cloud domain.
  • Operating System Support for Run-Time Security with a Trusted Execution Environment

    Operating System Support for Run-Time Security with a Trusted Execution Environment

    Operating System Support for Run-Time Security with a Trusted Execution Environment - Usage Control and Trusted Storage for Linux-based Systems - by Javier Gonz´alez Ph.D Thesis IT University of Copenhagen Advisor: Philippe Bonnet Submitted: January 31, 2015 Last Revision: May 30, 2015 ITU DS-nummer: D-2015-107 ISSN: 1602-3536 ISBN: 978-87-7949-302-5 1 Contents Preface8 1 Introduction 10 1.1 Context....................................... 10 1.2 Problem....................................... 12 1.3 Approach...................................... 14 1.4 Contribution.................................... 15 1.5 Thesis Structure.................................. 16 I State of the Art 18 2 Trusted Execution Environments 20 2.1 Smart Cards.................................... 21 2.1.1 Secure Element............................... 23 2.2 Trusted Platform Module (TPM)......................... 23 2.3 Intel Security Extensions.............................. 26 2.3.1 Intel TXT.................................. 26 2.3.2 Intel SGX.................................. 27 2.4 ARM TrustZone.................................. 29 2.5 Other Techniques.................................. 32 2.5.1 Hardware Replication........................... 32 2.5.2 Hardware Virtualization.......................... 33 2.5.3 Only Software............................... 33 2.6 Discussion...................................... 33 3 Run-Time Security 36 3.1 Access and Usage Control............................. 36 3.2 Data Protection................................... 39 3.3 Reference
  • Linuxmce Wiki Linuxmce

    Linuxmce Wiki Linuxmce

    LinuxMCE - LinuxMCE wiki LinuxMCE Core Contents ● 1 Core The Core is the heart and brain of the LinuxMCE system. The Core is a single PC acting as a dedicated server and interface for all the sub- ● 2 Orbiters components. The Core includes a plug-and-play back-end, so it listens ● 3 Media Directors for and auto configures all sorts of devices, like network audio players ● 4 Network Attached Storage (NAS) (e.g. Squeeze Box), IP phones and cameras. The Core can automatically provide a network boot for thin-client PCs (which can ● 5 Security then be used as Media Directors). A Media Director is hooked up to ● 6 Telecom your TV or stereo and becomes an integrated media player, PVR, ● 7 Home Automation video conferencing, intercom and portal to monitor and control everything in the home. All Media Directors work together seamlessly ● 8 Multimedia as a whole-house solution. ● 9 Personal Computing ● 10 Building a new Home around LinuxMCE More about the Core ● 11 What can I do with LinuxMCE? Orbiters Orbiters are high-tech remote controls. LinuxMCE allows a wide variety of devices to function as Orbiters. Ordinary laptops, wireless tablet PCs, PDAs, mobile phones running Symbian or Microsoft Mobile, or any PC with a web interface that is able to connect to your LinuxMCE LAN can be used as an Orbiter. More about Orbiters Media Directors A Media Director (also known as a Media Station) is a dedicated PC that streams music and video from the Core to your TV and speakers for an awesome multimedia experience.
  • Oliinykkv Magistr.Pdf

    Oliinykkv Magistr.Pdf

    НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ «КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ імені ІГОРЯ СІКОРСЬКОГО» Інститут телекомунікаційних систем Кафедра Інформаційно-телекомунікаційних мереж «На правах рукопису» «До захисту допущено» УДК ______________ Завідувач кафедри __________ Лариса ГЛОБА «___»_____________2020 р. Магістерська дисертація на здобуття ступеня магістра за освітньо-професійною програмою «Інформаційно-комунікаційні технології» зі спеціальності 172 «Телекомунікації та радіотехніка» на тему: «Удосконалений спосіб побудови систем управління розумним будинком» Виконав: студент VI курсу, групи ТІ-91мп Олійник Костянтин Володимирович __________ Керівник: Доцент кафедри ІТМ ІТС, доцент, к.т.н. Кононова Ірина Віталіївна __________ Рецензент: Доцент кафедри ТК ІТС, доцент, к.т.н. Явіся Валерій Сергійович __________ Засвідчую, що у цій магістерській дисертації немає запозичень з праць інших авторів без відповідних посилань. Студент _____________ Київ – 2020 року 2 Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Інститут телекомунікаційних систем Кафедра Інформаційно-телекомунікаційних мереж Рівень вищої освіти – другий (магістерський) Спеціальність – 172 «Телекомунікації та радіотехніка» Освітньо-професійна програма «Інформаційно-комунікаційні технології» ЗАТВЕРДЖУЮ Завідувач кафедри __________ Лариса ГЛОБА «___»_____________2020 р. ЗАВДАННЯ на магістерську дисертацію студенту Олійнику Костянтину Володимировичу 1. Тема дисертації «Удосконалений спосіб побудови систем управління розумним
  • 132093859.Pdf

    132093859.Pdf

    MediaPortal Mais: LinuxMCE em detalhes O Media Portal é um programa gratuito, desenvolvido WINDOWS MEDIA CENTER como Software Livre, e uma opção para quem quer montar um Media Center sem abandonar o Windows XP. Originalmente uma versão especializada do Windows, o Mais: MediaPortal em detalhes Windows Media Center agora é parte das edições Home Premium e Ultimate do Windows Vista. Não é necessário MythTV instalar ou configurar nada separadamente, o programa é instalado junto com o sistema operacional e pode ser O MythTV é o sistema media center baseado em Linux acessado via ícone no menu Iniciar. mais popular no mercado, e usá-lo como base para seu media center tem algumas vantagens. A principal, e mais O Windows Media Center oferece tudo o que você pode óbvia delas, é o preço. Uma licença do Windows Vista precisar em um media center básico, inclusive opções de Home Premium, que já inclui o Windows Media Center, gravação e reprodução de TV ao vivo. custa perto de R$ 500. Já uma cópia da versão mais recente do Fedora ou Ubuntu mais o MythTV custa zero: Com hardware extra, você pode fazer o computador ambos podem ser baixados gratuitamente da Internet. simular um controle remoto para comandar o decodificador de TV a cabo e agendar gravações sem Mais: MythTV em detalhes falhas mesmo estando fora de casa. A programação deste recurso é meio maçante: a maioria dos decodificadores de LinuxMCE TV a cabo no mercado nacional não consta na lista do Windows Media Center, e você terá de fazer a Este novato no mundo dos Media Centers também roda programação manual, apertando cada botão do controle sobre o Linux, mais especificamente sobre o Kubuntu, remoto várias vezes até o micro aprender os comandos.
  • KOS - Principles, Design, and Implementation

    KOS - Principles, Design, and Implementation

    KOS - Principles, Design, and Implementation Martin Karsten, University of Waterloo Work In Progress - September 29, 2015 Abstract KOS is an experimental operating system kernel that is designed to be simple and accessible to serve as a platform for research, experimen- tation, and teaching. The overall focus of this project is on system-level infrastructure software, in particular runtime systems. 1 Introduction KOS (pronounce "Chaos") is an experimental operating system kernel that is designed to be simple and accessible to serve as a platform for research, ex- perimentation, and teaching. It is focused on building a nucleus kernel that provides the basic set of operating system functionality, primarily for resource mediation, that must realistically be implemented for execution in privileged mode. While being simple KOS is not simplistic and avoids taking design shortcuts that would prohibit adding more sophisticated resource management strategies later on { inside the kernel or at higher software layers. The nu- cleus kernel is augmented with several prototype subsystems typically found in an operating system to eventually support running realistic applications. The entire code base is written in C++, except for small assembler parts. The C++ code makes use of advanced language features, such as code reuse with efficient strong type safety using templates, the C++ library for data struc- ture reuse, as well as (limited) polymorphism. Existing open-source software is reused for non-nucleus subsystems as much as possible. The project is hosted at https://git.uwaterloo.ca/mkarsten/KOS 2 Motivation In principle, an operating system has two basic functions. First, it consolidates low-level hardware interfaces and provides higher-level software abstractions to facilitate and alleviate application programming.
  • Embassies: Radically Refactoring the Web Jon Howell, Bryan Parno, John R

    Embassies: Radically Refactoring the Web Jon Howell, Bryan Parno, John R

    Embassies: Radically Refactoring the Web Jon Howell, Bryan Parno, John R. Douceur, Microsoft Research Abstract of evolving complexity. On the Internet, application Web browsers ostensibly provide strong isolation for providers, or vendors, run server-side applications over the client-side components of web applications. Unfor- which they exercise total control, from the app down tunately, this isolation is weak in practice; as browsers to the network stack, firewall, and OS. Even when ven- add increasingly rich APIs to please developers, these dors are tenants of a shared datacenter, each tenant au- complex interfaces bloat the trusted computing base and tonomously controls its software stack down to the ma- erode cross-app isolation boundaries. chine code, and each tenant is accessible only via IP. We reenvision the web interface based on the notion The strong isolation among virtualized Infrastructure-as- of a pico-datacenter, the client-side version of a shared a-Service datacenter tenants derives not from physical server datacenter. Mutually untrusting vendors run their separation but from the execution interface’s simplicity. code on the user’s computer in low-level native code con- This paper extends the semantics of datacenter rela- tainers that communicate with the outside world only via tionships to the client’s web experience. Suspending dis- IP. Just as in the cloud datacenter, the simple semantics belief momentarily, suppose every client had ubiquitous makes isolation tractable, yet native code gives vendors high-performance Internet connectivity. In such a world, the freedom to run any software stack. Since the datacen- exploiting datacenter semantics is easy: The client is ter model is designed to be robust to malicious tenants, it merely a screencast (VNC) viewer; every app runs on is never dangerous for the user to click a link and invite its vendor’s servers and streams a video of its display to a possibly-hostile party onto the client.
  • Master Thesis

    Master Thesis

    Charles University in Prague Faculty of Mathematics and Physics MASTER THESIS Petr Koupý Graphics Stack for HelenOS Department of Distributed and Dependable Systems Supervisor of the master thesis: Mgr. Martin Děcký Study programme: Informatics Specialization: Software Systems Prague 2013 I would like to thank my supervisor, Martin Děcký, not only for giving me an idea on how to approach this thesis but also for his suggestions, numerous pieces of advice and significant help with code integration. Next, I would like to express my gratitude to all members of Hele- nOS developer community for their swift feedback and for making HelenOS such a good plat- form for works like this. Finally, I am very grateful to my parents and close family members for supporting me during my studies. I declare that I carried out this master thesis independently, and only with the cited sources, literature and other professional sources. I understand that my work relates to the rights and obligations under the Act No. 121/2000 Coll., the Copyright Act, as amended, in particular the fact that the Charles University in Pra- gue has the right to conclude a license agreement on the use of this work as a school work pursuant to Section 60 paragraph 1 of the Copyright Act. In Prague, March 27, 2013 Petr Koupý Název práce: Graphics Stack for HelenOS Autor: Petr Koupý Katedra / Ústav: Katedra distribuovaných a spolehlivých systémů Vedoucí diplomové práce: Mgr. Martin Děcký Abstrakt: HelenOS je experimentální operační systém založený na mikro-jádrové a multi- serverové architektuře. Před započetím této práce již HelenOS obsahoval početnou množinu moderně navržených subsystémů zajišťujících různé úkoly v rámci systému.
  • A Multiserver User-Space Unikernel for a Distributed Virtualization System

    A Multiserver User-Space Unikernel for a Distributed Virtualization System

    A Multiserver User-space Unikernel for a Distributed Virtualization System Pablo Pessolani Departamento de Ingeniería en Sistemas de Información Facultad Regional Santa Fe, UTN Santa Fe, Argentina [email protected] Abstract— Nowadays, most Cloud applications are developed application components began to be deployed in Containers. using Service Oriented Architecture (SOA) or MicroService Containers (and similar OS abstractions such as Jails [7] and Architecture (MSA). The scalability and performance of them Zones [8]) are isolated execution environments or domains is achieved by executing multiple instances of its components in in user-space to execute groups of processes. Although different nodes of a virtualization cluster. Initially, they were Containers share the same OS, they provide enough security, deployed in Virtual Machines (VMs) but, they required enough performance and failure isolation. As Containers demand computational, memory, network and storage resources to fewer resources than VMs [9], they are a good choice to hold an Operating System (OS), a set of utilities, libraries, and deploy swarms. the application component. By deploying hundreds of these Another option to reduce resource requirements is to use application components, the resource requirements increase a the application component embedded in a Unikernel [10, lot. To minimize them, usually small OSs with small memory footprint are used. Another way to reduce the resource 11]. A Unikernel is defined as “specialized, single-address- requirements is integrating the application components in a space machine image constructed by using library operating Unikernel. This article proposes a Unikernel called MUK, system” [12]. A Unikernel is a technology which integrates based on a multiserver OS, to be used as a tool to integrate monolithically network, storage, and file systems services Cloud application components.