Oberon (sistema operacional) - Oberon (operating system)
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 |
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 |
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.
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
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
Emulador Oberon V5 RISC no GNURoot Debian no Android em um tablet Alcatel 9015B com teclado e mouse conectado por Bluetooth .
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
- A2 (sistema operacional)
- Oberon (linguagem de programação)
- Linguagem de programação Oberon-2
Referências
links externos
- Site oficial , página inicial antiga ETH Oberon, morto desde janeiro de 2020, redirecionado paraArchive.org:versão arquivada
- Artigo de Oberon na WikiWikiWeb
- Genealogia e história da versão do Sistema Oberon em archive.org
- Bibliografia de Oberon
- Compiladores Oberon.
- Instale ETH Oberon usando QEMU
- Bluebottle / AOS / A2 Uma evolução do Native Oberon com suporte para sistemas multiprocessados com o Active Objects (tipo de threads em execução em processadores separados, se disponível) e um usuário zoom de interface disponível a partir de 04 de março de 2020 a ETH Zurich 's redmine instância.
- Página inicial Native Oberon redirecionada para Archive.org (maio de 2016 - este site tem URLs corrompidos nos links para o servidor ftp; os arquivos foram movidos de ftp://ftp.inf.ethz.ch/pub/ETHOberon/ para ftp: //ftp.ethoberon.ethz.ch/ )
- Compatibilidade de hardware nativa Oberon redirecionada para archive.org
- ETH PC Native Oberon, notas de uso
- Blog de Lukas Mathis sobre Oberon Um bom traço de volta à história das interfaces de usuário e Oberon.
- Página principal do Oberon V4 na Johannes Kepler University Linz
- Fontes Oberon V4 Fontes coletadas para diferentes implementações V4 no SourceForge e Oberon V4 para Linux, mais informações no wiki correspondente .
- http://www.projectoberon.com/, Projeto Oberon.
- Oberon Experimental
- WinOberon, também conhecido como Plugin Oberon Versão 2.6, fornecido por Emil Zeller a Alexander Illjin por volta de 2010
- Oberon System 3 Tutorial de André Fischer (1997), versão arquivada