L4 (micronúcleo)

A família L4 é uma família de micronúcleos de segunda geração baseada nos projetos e implementações originais do cientista da computação alemão Jochen Liedtke. Foi originalmente implementada como código de montagem extremamente otimizado específico do Intel i386,[1] a interface de programação de aplicativos recebeu desenvolvimento extensivo em várias direções, ambas em obter um nível de independência de plataforma e também em melhorar a segurança, isolação e robustez.

Há várias reimplementações da interface de núcleo binária original do micronúcleo L4 (interface binária de aplicação) e seus sucessores de alto nível, incluindo L4Ka::Pistachio (Uni Karlsruhe), L4/MIPS (UNSW) e Fiasco (TU Dresden). Por essa razão, o nome L4 foi generalizado e não se refere mais à implementação original de Liedtke. Ele serve para toda a família de micronúcleos, incluindo a interface do L4 e suas diferentes versões.

O L4 é usado em produções de alguns telemóveis.

Paradigma de desenvolvimento

Especificando a ideia de um micronúcleo, Liedtke afirma:

Um contenco é tolerado dentro do micronúcleo apenas se mover ele para fora do núcleo, ex., permitir implementações concorrentes, fosse impedir a implementação de funcionalidades requeridas pelo sistema.[2]

Seguindo este espírito, o micronúcleo L4 fornece apenas quatro mecanismos básicos: endereçamento de espaço, linhas de execução, escalonamento, e comunicação entre processos síncrona.

Um sistema operacional baseado em um micronúcleo como o L4 tem que fornecer serviços como servidores no espaço de usuário que núcleos monolíticos como o Linux ou gerações anteories de micronúcleos incluíam internamente. Por exemplo, para implementar um sistema Tipo unix seguro, servidores terão que fornecer o gerenciamento de permissões que o Mach incluiu no núcleo.

História

A percepção de algumas desvantagens no projeto e performance da primeira gerão do Mach levaram um grande número de desenvolvedores a reexaminar todo o conceito de micronúcleo na metade de 1990. O conceito assincronia no buffer do núcleo para comunicação entre processos usado no Mach acabou se tornando uma das principais razões para sua má performance. Isto fez com que alguns desenvolvedores colocassem componentes de tempo crítico, como sistemas de ficheiro ou drivers, novamente dentro do núcleo, o que é claro, entrava em conflito com o conceito de um verdade micronúcleo.

Uma analise detralhada do gargalo do Mach indicou que dentre outras coisas o sei conjunto de trabalho era muito grande: havia muitas perdas de cache a maioria destas eram no núcleo. Em outras palavras, o código local era de ma qualidade. Isto criou a idéia de que micronúcleos deveriam na verdade ser pequenos o bastante para conter a maioria das seções críticas no cache de instruçõoes.

Referências

  1. Liedtke, Jochen (1993). «Improving IPC by kernel design». 14th ACM Symposium on Operating System Principles. Asheville, NC, USA. pp. 175–88 
  2. Jochen Liedtke (1995). «On µ-Kernel Construction». Proc. 15th ACM symposium on Operating Systems Principles (SOSP). pp. 237–250 

Leituras

  • Jochen Liedtke, Ulrich Bartling, Uwe Beyer, Dietmar Heinrichs, Rudolf Ruland, Gyula Szalay. Two years of experience with a μ-Kernel based OS, ACM Press 1991
  • Liedtke, Jochen; Haeberlen, Andreas; Park, Yoonho; Reuther, Lars; Uhlig, Volkmar (22 de outubro de 2000). «Stub-Code Performance is Becoming Important» (PDF). In Proceedings of the 1st Workshop on Industrial Experiences with Systems Software (WIESS), San Diego, CA, October 2000. Consultado em 5 de setembro de 2006  A referência emprega parâmetros obsoletos |coautor= (ajuda)(on L4 kernel and compiler)
  • Cheng Guanghui, Nicholas Mc Guire. L4/Fiasco/L4Linux Kickstart, Distributed & Embedded Systems Lab - Lanzhou University.

Ligações externas

  • «L4ka publications» 
  • «L4Hq». – L4 headquarters, community site for L4 projects 
  • «The L4 microkernel family». – Overview over L4 implementations, documentation and projects 
    • «Official L4.Fiasco Wiki» 
  • «L4Ka». – Implementations L4Ka::Pistachio and L4Ka::Hazelnut 
  • «Fiasco». – A free C++ implementation for x86 and ARM processors 
  • «UNSW». – Implementations for DEC Alpha and MIPS architecture 
  • «OKL4». – Commercial L4 version from Open Kernel Labs 
  • «NICTA L4». – Research Overview and Publications 
    • «Wombat». – A Linux port on top of the L4/Iguana OS 
    • «Darbat». – A Darwin port on top of the L4 microkernel 
  • «L4Linux». – Linux running on L4 microkernel 
  • «DROPS». – The Dresden Real-Time Operating System Project 
  • «Information about L3». , L4's predecessor 
  • «Codezero». , A free L4 implementation in C for ARM