Oberon (sistema operacional) - Oberon (operating system)

Oberon
OberonScreen.PNG
Arranjo de janela de azulejos de Oberon
Desenvolvedor Niklaus Wirth
Jürg Gutknecht
Escrito em Oberon
Família de sistema operacional Oberon
Estado de trabalho Atual
Modelo fonte Código aberto
lançamento inicial 1987 ; 34 anos atrás ( 1987 )
Disponível em inglês
Plataformas Ceres ( NS32032 ), IA-32 , Xilinx Spartan e muitos outros
Tipo de kernel Orientado a Objeto

Interface de usuário padrão
Interface do usuário baseada em texto
Licença Estilo BSD
Precedido por Medos-2
Website oficial www .ethoberon .ethz .ch

O Oberon System é um sistema operacional modular, de usuário único, processo único e multitarefa escrito na linguagem de programação Oberon . Foi originalmente desenvolvido no final dos anos 1980 na ETH Zurique . O Oberon System possui uma interface de usuário de texto visual não convencional (TUI) em vez de uma interface de linha de comando convencional (CLI) ou interface gráfica de usuário (GUI). Essa TUI foi muito inovadora em sua época e influenciou o design do editor de texto Acme para o sistema operacional Plan 9 da Bell Labs .

A última versão do Sistema Oberon, Projeto Oberon 2013, ainda é mantida por Niklaus Wirth e vários colaboradores, mas as versões ETH mais antigas do sistema ficaram órfãs. O sistema também evoluiu para o multiprocessamento, multiprocessamento simétrico (SMP) A2 (anteriormente Active Object System (AOS), depois Bluebottle ), com uma interface de usuário de zoom (ZUI).

História

O sistema operacional Oberon foi originalmente desenvolvido como parte do projeto de estação de trabalho Ceres baseado em NS32032 . Ele foi escrito quase inteiramente (e desde a versão de 2013, é descrito inteiramente) na linguagem de programação Oberon . O sistema básico foi projetado e implementado por Niklaus Wirth e Jürg Gutknecht e seu design e implementação estão totalmente documentados em seu livro "Projeto Oberon". A referência da interface do usuário e dos programadores pode ser encontrada no livro "The Oberon System", de Martin Reiser. Posteriormente, foi estendido e portado para outro hardware por uma equipe da ETH Zurich e teve reconhecimento em revistas populares. Wirth e Gutknecht (embora sejam professores ativos de ciência da computação ) referem-se a si próprios como 'programadores de meio período' no livro Projeto Oberon . No final de 2013, alguns meses antes de seu 80º aniversário, Wirth publicou uma segunda edição do Projeto Oberon. Ele detalha a implementação do Sistema Oberon usando uma CPU de computador de conjunto de instruções reduzido (RISC) de seu próprio projeto, realizada em uma placa Xilinx field-programmable gate array (FPGA). Ele foi apresentado no simpósio organizado por seu 80º aniversário na ETH Zurique . Nesse ínterim, vários emuladores para esta versão foram implementados.

De acordo com Josef Templ, ex-membro do grupo de desenvolvedores do Swiss Federal Institute of Technology em Zurique e posteriormente membro do Institut für Systemsoftware da Johannes Kepler University Linz , onde uma versão bifurcada (V4) foi mantida, a genealogia das diferentes versões do Sistema Oberon é este:

Ano Nome Observação
1985 Início do projeto Oberon
1987 V1 Uso interno na ETHZ ; recursos de edição de texto simples apenas
1991 V2 Modelo de texto extensível e um editor especial chamado Write que oferece suporte a essas extensões
1991 Sistema 3 Extensões de kernel que suportam objetos persistentes e bibliotecas de objetos que suportam incorporação de objetos e vinculação de objetos; Gadgets, Script (editor de texto), Illustrate (editor gráfico)
1992 Publicação da Trilogia Oberon: "Projeto Oberon", "O Sistema Oberon" e "Programação em Oberon"
1992 V4 Funções de gravação integradas ao editor de texto padrão
Rel. 1,4 Desktops
1993 Rel. 1,5 Modelo de documento genérico
1994 V4 Hanspeter Mössenböck nomeado para JKU (Linz) , o desenvolvimento V4 se move para lá
1995 Rel. 2.0 Espaço de documentos estendido a toda a internet; editor de bitmap aprimorado: Rembrandt; tutoriais online
2000 ETH-Oberon System-3 renomeado ETH-Oberon
2002 AOS Active Object System, também Active Oberon System, mais tarde renomeado Bluebottle e, em seguida, A2
2013 PO 2013 - V5 Reimplementação do Sistema Oberon original em FPGA

Interface de usuário

Oberon tem uma interface de usuário de texto (TUI), que é muito diferente de uma interface de usuário de terminal . Ele combina a conveniência de apontar e clicar de uma interface gráfica de usuário (GUI) com a força linguística de uma interface de linha de comando (CLI) e está intimamente ligado às convenções de nomenclatura da linguagem Oberon. O texto que aparece em quase qualquer lugar na tela pode ser editado e usado como entrada de comando . Os comandos são ativados por um clique do meio do mouse em um fragmento de texto do formulário Module.Command(opcionalmente seguido por parâmetros, que são encerrados por ~). Um comando é definido por qualquer procedimento que é exportado e possui uma lista de argumentos vazia. Os parâmetros para o comando devem ser definidos antes de executar o clique do meio e devem ser explicitamente digitalizados e recuperados pelo procedimento. Nenhuma verificação ou pergunta ocorre durante a execução do comando. Isso às vezes é chamado de interface do usuário (IU) não modal . Nada como um prompt de comando é necessário.

Embora muito diferente de uma linha de comando, a TUI é muito eficiente e poderosa. Uma subida íngreme na curva de aprendizado inicial torna isso um pouco difícil no início. Nenhuma pergunta é feita: esta é uma decisão de design deliberada, à qual você precisa se acostumar. A maioria dos editores pergunta ao usuário ao fechar um texto modificado: este não é o caso no Sistema Oberon. O uso da TUI e da interface de programação está totalmente documentado no livro de Martin Reiser "The Oberon System". Uma breve introdução à interface do usuário pode ser encontrada na página inicial de Niklaus Wirth . As versões posteriores do System Oberon, Oberon V4 (V4, às vezes também denominado Linz-Oberon) e Oberon System 3 (ou S3, às vezes também denominado ETH-Oberon ou Spirit of Oberon), aprimoraram a interface básica com implementações diferentes, mas incompatíveis para botões , menus suspensos e outros elementos ativos. O V4 usava para esse propósito um caractere de controle dedicado embutido no texto normal em contraste com o System 3, que estendia o kernel introduzindo objetos persistentes. Ambas as extensões incluem um grande conjunto de elementos de interface do usuário.

Dominar a interface de usuário Oberon, tanto a puramente textual quanto o chamado Sistema de Gadgets (no S3), não é trivial. Assim, após a instalação bem-sucedida do Oberon System 3, é recomendável estudar o tutorial André Fischers Oberon System 3 . Uma versão expandida deste tutorial foi publicada como um livro, que está esgotado agora. O livro completo está disponível em formato eletrônico sob uma licença de usuário em cada versão instalada do System 3 (Windows, Linux ou Native, ou seja, também com o kit de ferramentas Gadgets de OLR). Mais informações sobre como obter sua própria cópia do Oberon Companion podem ser encontradas na seção Getting Started do Oberon Wikibook.

Interfaces de usuário semelhantes ainda não apareceram em sistemas operacionais mais comuns. Rob Pike 's Acme sistema para Plan 9 from Bell Labs foi fortemente inspirado pelo Oberon TUI. É difícil decidir se a interface de planilha do Workshop do Programador do Macintosh influenciou a TUI de Oberon ou vice-versa: o Sistema Oberon foi baseado no projeto de computador anterior de Wirth, o Lilith , e tanto o Apple Macintosh (e seu precursor Lisa ) e o Sistema Oberon (em Ceres e sua precursora Lilith) têm as mesmas raízes: foram todas inspiradas no Alto desenvolvido na Xerox PARC .

Versões e disponibilidade

V1 foi a primeira versão utilizável algum tempo antes da Trilogia Oberon ser publicada. Uma grande mudança no modelo de texto junto com o editor chamado Write resultou em V2. Conforme prenunciado na tabela da seção História acima, houve uma grande bifurcação no início dos anos 1990: V4 vs. Sistema 3: O grupo em torno de Jürg Gutknecht introduziu objetos persistentes e bibliotecas de objetos, estendendo assim o kernel. O grupo em torno de Hanspeter Mössenböck percebeu recursos semelhantes, introduzindo elementos ativos mapeados para um caractere especial, estendendo assim as fontes sem alterar o kernel. O Sistema 3 às vezes também era denominado Spirit of Oberon e mais tarde renomeado ETH Oberon, enquanto o V4 às vezes também era denominado Linz Oberon.

O subsistema Oberon em A2 em um XO-1.5 .

A partir de 2017, o Oberon OS está disponível para várias plataformas de hardware de computação , geralmente em versões gratuitas e de várias fontes, o que é bastante confuso. O Oberon OS é tipicamente extremamente compacto. Mesmo com um compilador Oberon , diversos utilitários, incluindo um navegador da web , rede TCP / IP e uma GUI, o pacote completo pode ser compactado em um disquete de 3,5 " . Existem versões que emulam o Oberon OS em outro sistema operacional e versões que executado em hardware simples. Os últimos são chamados de Native Oberon . Existem versões nativas para as plataformas Ceres , Intel IA-32 e ARM . Em 2013, Niklaus Wirth adaptou o sistema básico descrito no "Projeto Oberon" para um FPGA atual design. De acordo com o prefácio da edição de 2013, todo o sistema compila em menos de 10 segundos em uma placa Spartan-3. Esta versão às vezes também é chamada de V5, apesar de ser muito mais semelhante funcionalmente ao V1 original rodando no Ceres do que qualquer uma das versões posteriores.

Uma versão do Oberon System 3, que é mais integrada ao sistema operacional Microsoft Windows do que outras implementações, foi chamada de Plugin Oberon. O plug-in Oberon tinha suporte para OLE , plug-ins do Netscape e o formato binário denominado Oberon Module Interchange (OMI) ou binários slim , que permitiam código de objeto portátil entre as arquiteturas Intel x86 , Motorola 68K e PowerPC . Os binários Slim foram inventados por Michael Franz no início dos anos 1990. Eles estavam motivados e se opunham aos binários gordos inventados pela Apple durante a transição das arquiteturas 68k para PowerPC. O OMI forneceu código portátil com base em uma versão compactada da árvore de sintaxe abstrata. A abordagem de uma árvore de sintaxe abstrata compactada para representação de código portátil é revivida no mundo Java para GraalVM e Truffle .

A versão chamada Oberon V4 (veja também a História ) é mais próxima do sistema operacional original desenvolvido por Wirth e Gutknecht. Foi originalmente desenvolvido na ETHZ, mas quando o HP Mössenböck foi para o Institut für Systemsoftware na Johannes-Kepler University em Linz (JKU) , o desenvolvimento do V4 também mudou. Assim, V4 às vezes também é chamado de Linz-Oberon em contraste com ETH-Oberon. A versão mais recente do V4 e extensões estão disponíveis em JKU . O Oberon V4 parece estar órfão, quase não há mudanças desde 2000. Outro repositório do V4 é o Oberon V4 de Claudio Nieder , que também mostra diferença entre as diferentes implementações do V4. Desde 2013, esta página mudou para / está espelhada no SourceForge . A V4 está mais próxima do que agora seria chamado de ambiente de desenvolvimento integrado do que de um sistema operacional próprio. Havia muitas extensões escritas para V4, que ainda estão disponíveis no servidor ftp do SSW em JKU ; alguma documentação pode ser encontrada em suas páginas da web , mais informações são normalmente incluídas nos pacotes e são fornecidas no formato especial de texto rico de Oberon.

Por volta de 2010, o departamento de ciência da computação da ETH Zurich começou a explorar objetos ativos e simultaneidade para sistemas operacionais e lançou uma versão inicial de uma nova linguagem Active Oberon e um novo sistema operacional para ela, primeiro denominado Active Object System (AOS) em 2002 , então devido a questões de marca registrada, renomeado Bluebottle em 2005, então renomeado A2 em 2008. Ele está disponível na ETH Zurich com a maioria das fontes via Internet . As versões nativas (A2) são executadas em hardware simples e são atualmente possíveis para sistemas Intel IA-32 e x86-64 de processador único e multiprocessador e para a família de CPUs StrongARM . Versões para outros sistemas operacionais estão disponíveis no Windows (WinAos), Unix (UnixAos), Linux (LinuxAos) e macOS (DarwinAos). Informações mais detalhadas sobre o A2 estão nas páginas da Wikipédia em russo sobre o A2 .

Como parte de um projeto de pesquisa industrial, o Native Systems Group da ETH Zurich desenvolveu um sistema operacional específico para aplicativos denominado stailaOS, que se baseia na versão mais recente do Oberon OS. Destina-se a usos como análise em tempo real , sistema de negociação automatizado de alto desempenho (ATS), planejamento de recursos empresariais (ERP) baseado na memória principal , etc.

Oberon nativo

O instalador Oberon0 em execução no QEMU no Debian Wheezy. A apresentação da tabela de partição ilustra a compreensibilidade do sistema em geral.

Oberon nativo é um sistema Oberon executado em hardware simples. PC-Native Oberon é uma versão que roda em hardware de PC IA-32 (x86-32). Nunca houve um Oberon nativo V4, então todas as informações nesta seção implicitamente assumem que é o System 3. Oberon nativo tem pequenos requisitos de hardware: Pentium 133 MHz, disco rígido de 100 MB, placa de vídeo VESA 2 com resolução mínima de 1024x768 pixels, opcional Placa de rede 3Com . O sistema básico é executado a partir de um disquete HD e mais softwares podem ser instalados por meio de uma rede. A instalação completa inclui a GUI de gadgets. Está escrito integralmente no idioma Oberon.

Uma versão chamada Linux Native Oberon (LNO) usa o Linux como camada de abstração de hardware (HAL). Seu objetivo é ser o mais compatível possível com o PC-Native Oberon. Outras versões do Sistema Oberon, sem Native no nome, tinham interfaces parcialmente modificadas de módulos de baixo nível. Em 2015, Peter Matthias revitalizou a LNO sob o nome Oberon Linux Revival (OLR) como uma distribuição multiplataformas rodando perfeitamente em Intel x86, ARM , MIPS e RISC-V . Funciona bem no Raspberry Pi e no computador CHIP de baixo custo ; com alguns ajustes (ajustando a associação de grupo ou / e permissões em alguns dispositivos) ele funciona bem no Tiny Core Linux . O OLR faz interface com o kernel do Linux por meio de chamadas diretas ao sistema . Em junho de 2017, OLR não tinha uma camada de rede.

Projeto Oberon 2013

Em 2013, Wirth e Paul Reed concluíram uma reimplementação do Sistema Oberon original para a placa de partida Digilent Xilinx Spartan 3 FPGA . O trabalho inclui uma revisão do "Projeto Oberon", identificado como Projeto Oberon (Nova Edição 2013) . Em 2015, Reed colaborou com Victor Yurkovsky para criar OberonStation , um computador baseado em Xilinx Spartan 3 projetado especificamente para executar Oberon. O sistema desde então foi portado para uma placa de desenvolvimento Xilinx Spartan 6 FPGA Pepino pela Saanlima Electronics e uma placa Xilinx Artix 7 com base em Digilent Nexys A7-100 FPGA Trainer pela CFB Software . Peter de Wachter implementou um emulador para ele, que também foi portado para Java e JavaScript por Michael Schierl, rodando em navegadores modernos , e portado para Free Pascal / Ultibo por Markus Greim e to Go . Andreas Pirklbauer mantém uma versão experimental e extensões do Projeto Oberon 2013 no GitHub .

Galeria

Glossário

  • A2 - Anteriormente Active Object System (AOS) em 2002, renomeado Bluebottle em 2005 devido a rumores de problemas de direitos autorais, renomeado A2 em 2008.
  • ALO - ARM Linux Oberon; na família LNO e para ARM CPU.
  • AOS - consulte a entrada A2 acima.
  • BB - Construtor de componentes do BlackBox. Componente Pascal IDE da Oberon Microsystems .
  • Bluebottle - consulte a entrada A2 acima.
  • CP - Componente Pascal. Um dialeto na família Oberon mais semelhante ao Oberon-2.
  • ETHO - Oberon desenvolvido no Instituto Federal Suíço de Tecnologia em Zurique: Eidgenössische Technische Hochschule (ETH).
  • Fox - O compilador para Active Oberon , aparecendo no AOS (consulte a entrada A2 acima).
  • LEO - Linux ETH Oberon. ETHO 2.4.3 para Linux x86.
  • LNO - Linux Native Oberon.
  • NÃO - Native Oberon. É executado em hardware simples, em vez de em outro sistema operacional.
  • OLR - Oberon Linux Revival. Uma versão do NO que usa Linux como HAL e roda em x86 , ARM e MIPS .
  • OP2 - O Compilador Portátil Oberon-2. OP2 foi desenvolvido para portar Oberon em plataformas disponíveis comercialmente.
  • PACO - (escopo) PArallel COmpiler. Aparece em A2 (consulte a entrada acima). Compila cada escopo em um encadeamento independente.
  • RISC5 - a unidade de processamento central (CPU) do Projeto Oberon 2013 com base na arquitetura RISC da Wirth . Não deve ser confundido com RISC-V .
  • UnixAOS - AOS baseado em Unix, consulte a entrada A2 acima.
  • WinAOS - AOS baseado em Windows, consulte a entrada A2 acima.

Veja também

Referências

links externos