Coisas incríveis do sistema operacional
Esta lista contém coisas incríveis relacionadas ao sistema operacional. O objetivo é coletar todos os tipos de sistemas operacionais de código aberto diferentes para que as pessoas possam estudar seu código e aprender com eles. Além de coletar recursos úteis para ajudar as pessoas a começar a desenvolver em sistemas operacionais populares.
Sistemas operacionais de código aberto
- 9front - Um fork do Plan 9, projetado para computação distribuída em rede.
- AROS - Research Operating System é um sistema operacional de desktop leve, eficiente e flexível, projetado para ajudá-lo a aproveitar ao máximo seu computador. É um projeto independente, portátil e gratuito, que visa ser compatível com AmigaOS a nível API
- AlmeidaOS - SO x86-64 com bootloader próprio, agendador e libc limitada, tudo escrito do zero
- Animal - sistema operacional multithread de 32 bits (antigo Gramado)
- AurixOS – Um pequeno sistema operacional multiplataforma projetado para desenvolvedores e criadores
- AquilaOS - Sistema operacional projetado para ser compatível com POSIX e principalmente transparente com ISA
- BareMetal, GitHub - sistema operacional de 64 bits escrito em Assembly para x86-64
- Basekernel – Um kernel de sistema operacional simples para pesquisa, ensino e diversão
- BoneOS- SO para todos, criado por todos
- Bottlerocket OS- SO baseado em Linux destinado à hospedagem de contêineres.
- Brutal – Um sistema operacional inspirado no design brutalista que combina os ideais do UNIX da década de 1970 com tecnologia e engenharia modernas
- cavOS - Sistema operacional Amd64 em C. Tentando fazer um SO completo, com uma base de código simples e legível
- Charlotte - Kernel CharlotteOS em Rust
- ChibiOS - um ambiente de desenvolvimento completo para aplicações embarcadas, incluindo RTOS, HAL, drivers periféricos, arquivos de suporte e ferramentas
- Clive - Um sistema operacional unikernel inspirado em Plan9 e Nix desenvolvido na Universidad Rey Juan Carlos de Madrid
- Cyjon - sistema operacional puro em linguagem assembly x64 (relacionado ao projeto Fern-Night).
- DragonOS - Um sistema operacional x86-64 construído do zero.
- Dreamos64 - Um hobby OS x86-64 construído do zero
- Embox - Kernel de sistema operacional configurável projetado para sistemas embarcados e com recursos limitados.
- ExectOS, GitHub - ExecectOS é um sistema operacional moderno, habilitado para EFI e de uso geral, escrito do zero e implementando a arquitetura XT. Ele roda em arquiteturas x86 e x86_64 e fornece camada de compatibilidade de drivers NT.
- Fern-Night - sistema operacional em linguagem C (relacionado ao projeto Cyjon).
- Fiwix, GitHub - Um kernel semelhante ao UNIX para a arquitetura i386.
- Fomos - SO experimental, construído com Rust.
- FreeRTOS, GitHub - sistema operacional IoT para microcontroladores, da Amazon.
- GarnOS - Hobby OS alimentado por um kernel modular.
- Genode - Uma estrutura de sistema operacional FOSS que consiste em uma camada de abstração de microkernel e uma coleção de componentes do espaço do usuário
- Gloire - Um sistema operacional construído com o kernel Ironclad (um kernel parcialmente verificado formalmente com uma pequena área ocupada para sistemas operacionais incorporados e de uso geral, escrito em SPARK e Ada) e ferramentas GNU.
- GreenteaOS, Github – Um sistema operacional gratuito projetado para ser compatível com executáveis do Windows
- HalideOS - sistema operacional experimental escrito inteiramente do zero.
- HarveyOS – Um sistema operacional distribuído
- HelenOS - sistema operacional multiservidor multikernel
- House - Sistema operacional e ambiente do usuário Haskell.
- Hubris - Hubris é um sistema operacional para microcontroladores desenvolvido pela Oxide Computer Company em Rust
- Illumos - illumos é um sistema operacional Unix que fornece recursos de próxima geração para distribuições downstream (como OmniOS, OpenIndiana e Tribblix)
- Interim - SO minimalista com conceitos de máquinas Lisp e Plan9
- JSD-OS - Um pequeno sistema operacional para x86 de 32 bits.
- Jehanne, GitHub - sistema operacional inspirado em Plan9, 9front e Harvey OS
- KiddieOS - sistema operacional de 64 bits semelhante ao UNIX escrito em Assembly, C++.
- KnightOS - para calculadoras z80
- KolibriOS - fork do MenuetOS
- L4re - Sistema operacional e hipervisor para aplicativos críticos para segurança e habilitados para virtualização.
- LemonOS, GitHub - sistema operacional de 64 bits semelhante ao UNIX escrito em C++.
- Mako - Hobby OS para x86 do zero, escrito em C
- MaslOS - Um Hobby OS multitarefa GUI de 64 bits escrito principalmente do zero em C++ e um pouco de C/ASM.
- MeetixOS - Um sistema operacional hobby escrito em C++20 moderno que pretende ser semelhante ao Unix.
- MentOS - Um sistema operacional educacional semelhante ao Linux de 32 bits.
- MenuetOS - Hobby OS com suporte para 32 e 64 bits, escrito em linguagem Assembly
- Mimiker, GitHub - Sistema operacional simples do tipo Unix para fins de educação e pesquisa. Micronúcleo MIPS.
- Mimosa, GitHub - Sistema operacional de pesquisa que executa Scheme em bare-metal
- Minoca OS - SO de uso geral, escrito em C
- MollenOS - MollenOS/Vali é um sistema operacional moderno construído com foco na abstração e design modular, permitindo que qualquer pessoa o porte para qualquer arquitetura. Atualmente tem como alvo a plataforma x86-32 e x86-64
- MyXomycota - Kernel monolítico em C
- NESOS – Um sistema operacional para o Nintendo Entertainment System!
- Nanos - Unikernel compatível com Linux, escrito em C
- NodeOS - SO usando NodeJS e Linux
- Northport - Kernel monolítico e bibliotecas de suporte para riscv64 e x86_64.
- PathOS - Hobby OS baseado em MikeOS, escrito em linguagem Assembly
- Pidi OS - SO independente e minimalista
- PonyOS, GitHub - sistema operacional com tema My Little Pony baseado em ToaruOS
- PouplyOS - Sistema operacional simples para diversão e aprendizagem, em homenagem ao mascote da ESISAR Poulpy
- PureDarwin - PureDarwin é um projeto comunitário para estender o Darwin a um sistema operacional completo e utilizável.
- Qubes OS - SO focado em segurança construído no hipervisor Xen, projetado para isolar diferentes compartimentos com base em níveis de confiança.
- RavynOS - Um projeto de sistema operacional baseado em BSD que visa fornecer uma experiência semelhante e alguma compatibilidade com macOS (anteriormente conhecido como airyxOS)
- Redox - escrito em Rust
- RustyHermit - Um unikernel leve e baseado em Rust
- Sanos, GitHub - Sanos é um kernel minimalista de sistema operacional x86 de 32 bits para dispositivos de servidor de rede executados em hardware de PC padrão.
- SayoriOS - Hobby OS para computadores x86, atualmente em desenvolvimento ativo, escrito em C
- Sculpt OS - SO baseado em Genode
- Serenity - sistema operacional gráfico semelhante ao Unix para computadores x86
- SimpleOS - Sistema Operacional Simples codificado em C e Assembly
- Snowdrop OS - um sistema operacional homebrew do zero, em linguagem assembly
- Sortix - Hobby OS em C e C++ por Jonas 'Sortie' Termansen
- Syllable - Sucessor do AtheOS, o Syllable foi desenhado na tradição do Amiga e BeOS, mas construído usando muitas partes do projeto GNU e Linux.
- SynestiaOS - sistema operacional de 32/64 bits escrito em C para plataforma arm
- TempleOS - sistema operacional religioso :-)
- Teseu – Um sistema operacional experimental moderno escrito do zero em Rust para explorar novas estruturas de sistema operacional e técnicas de gerenciamento de estado.
- Thor - sistema operacional de 64 bits escrito principalmente em C++
- ToaruOS – Sistema operacional hobby do zero
- Týndur - Sistema operacional Hobby desenvolvido pela comunidade Lowlevel. Escrito em C e Pascal
- Ultron OS - Sistema Operacional x86 escrito em C++, Projeto High School
- Unikraft – Um unikernel modular para especialização, alta eficiência, desempenho e segurança; Compatível com Linux/POSIX; principalmente em C
- Vinix - Vinix é um esforço para escrever um sistema operacional moderno, rápido e útil na linguagem de programação V
- Visopsys - SO Hobby de código aberto desenvolvido desde 1997
- Windows 95 em Electron - Hobby Implementação do Windows 95 em Electron
- Xv6 - Um sistema operacional de ensino desenvolvido no verão de 2006 para o curso de sistemas operacionais do MIT
- ZealOS - O sistema operacional Zeal é um fork profissional e modernizado do sistema operacional Temple de 64 bits, TempleOS.
- ackOS – Um sistema operacional simples de 64 bits.
- aurora_os – Escrito em Rust.
- dahliaOS- dahliaOS é um sistema operacional moderno, seguro, leve e responsivo, combinando o melhor do GNU/Linux e Fuchsia OS.
- duckOS - Um sistema operacional semelhante ao UNIX com um gerenciador de janelas gráfico para computadores x86.
- eggos - Um unikernel Go rodando em bare metal x86
- esmeralda - Um kernel de sistema operacional escrito para diversão em C
- gopher-os - Uma prova de conceito do kernel do sistema operacional escrito em Go
- hhuOS - hhuOS é um pequeno sistema operacional escrito em C++ e Assembler para a arquitetura x86. O principal objetivo deste projeto é mostrar como diferentes aspectos da teoria dos sistemas operacionais podem ser implementados e interligados. O sistema não pretende ser um sistema operacional completo para uso diário.
- hidrogênio - sistema operacional de brinquedo. Kernel multitarefa preemptivo de 64 bits com suporte para EFI, PCIe, SATA, modo gráfico framebuffer, HFS+.
- lyre - kernel x86 e distribuição alimentada por mlibc, ferramentas de usuário GNU e outros softwares *nix comuns.
- managarm - SO pragmático baseado em microkernel com E/S totalmente assíncrona
- menix - Um sistema operacional semelhante ao Unix mínimo e expansível.
- moros - MOROS é um sistema operacional hobby escrito em Rust para a arquitetura x86.
- mos – Um sistema operacional hobby desenvolvido do zero
- nopeos - Kernel de sistema operacional simples com interpretador BASIC para x86
- octox - SO semelhante ao Unix em Rust inspirado em xv6-riscv
- oneOS - kernel x86-32 e ARMv7 com multi-threading preventivo, gerenciador de janelas e editor
- opuntiaOS - um sistema operacional voltado para x86, ARMv7, Aarch64.
- orange_slice - Um kernel de pesquisa e hipervisor que tenta obter emulação totalmente determinística com custo mínimo de desempenho. Na ferrugem
- pranaOS – Um sistema operacional unix escrito do zero em c/c++
- quickOS - Um SO feito por um desenvolvedor independente, ainda em desenvolvimento, como o MS-DOS, mas em qbasic. É FEITO com qb64.
- r3 - Um kernel de sistema operacional hobby x86_64 escrito em Rust - com funcionalidades mínimas
- ravynOS - projeto de sistema operacional baseado em BSD que visa fornecer uma experiência semelhante e alguma compatibilidade com macOS (anteriormente conhecido como airyxOS)
- skiftOS, GitHub - Um sistema operacional simples e feito à mão com uma interface gráfica de usuário.
- soso - Sistema operacional simples tipo unix escrito em assembly Nasm e principalmente em C
- tilck - Um pequeno kernel compatível com Linux.
- tock, GitHub – Um sistema operacional embarcado seguro para microcontroladores
- unox-os - Unox é um sistema operacional educacional semelhante ao Unix
- willOS - Um kernel mínimo de 64 bits (sistema operacional que não pode "operar" muitas coisas)
Sistemas operacionais populares
- Darwin XNU - O código-fonte do kernel XNU para uso em MacOS e iOS
- FreeBSD, Github - sistema operacional semelhante ao Unix baseado no BSD
- FreeDOS - sistema operacional compatível com DOS
- Haiku - sistema operacional inspirado no BeOS
- Linux - núcleo Linux
- Minix, Github - sistema operacional semelhante ao Unix baseado em uma arquitetura microkernel
- MS-DOS - As fontes originais do MS-DOS 1.25 e 2.0
- NetBSD, Github - sistema operacional semelhante ao Unix baseado no BSD
- OpenBSD, Github - sistema operacional semelhante ao Unix baseado no BSD
- Plan 9 do Bell Labs - Um sistema operacional dos criadores do Unix, estendendo a filosofia Unix de "tudo é um arquivo" com um sistema de arquivos centrado na rede, namespaces e computação distribuída.
- ReactOS, Github – Um sistema operacional gratuito compatível com Windows
- SystemV - Código-fonte AT&T UNIX System V
Livros e Guias
Livros on-line
- Como fazer um sistema operacional de computador - em C++
- Intermezzos - Um livro de acompanhamento para construir IntermezzosOS em Rust
- Kernel Linux em poucas palavras - Abrange toda a gama de tarefas do kernel, disponíveis como capítulos ou um PDF
- O livrinho sobre desenvolvimento de sistema operacional de Erik Helin e Adam Renberg
- Think OS - Uma breve introdução aos sistemas operacionais por Allen B. Downey
- Série de desenvolvimento de sistema operacional - SO desde o início em C
- Sistemas Operacionais: Três Peças Fáceis - Livro fácil de ler que aborda virtualização, simultaneidade e persistência
- xv6: um sistema operacional de ensino simples, semelhante ao Unix - Livro para Xv6
- Sistemas operacionais: de 0 a 1 - Inicialize-se para escrever um sistema operacional do zero por Do Hoang Tu
- Notas Osdev - Como escrever um sistema operacional do zero por Ivan G. e Dean T.
Tutoriais
- Baking Pi – Desenvolvimento de Sistemas Operacionais pela Universidade de Cambridge
- Crie um kernel de sistema operacional multitarefa mínimo para ARM do zero por Jim Huang
- Desenvolvimento do Kernel do Bran por Brandon Friesen
- Como escrever um patch do kernel Linux e enviá-lo por Greg Kroah-Hartman
- Apresentação sobre como o kernel Linux é desenvolvido por Greg Kroah-Hartman
- os-tutorial - Como criar um SO do zero por Carlos Fenollosa
- Crie seu próprio sistema operacional clone UNIX de brinquedo, de James Molloy
- Escrevendo um sistema operacional em Rust por Philipp Oppermann
- Fazendo um sistema operacional RISC-V usando Rust por Stephen Marz
- Desenvolvimento de sistemas operacionais para Dummies por Leo Whitehead
- Kernels 101 – Vamos escrever um Kernel por Arjun Sreedharan
- Kernels 201 - Vamos escrever um Kernel com suporte para teclado e tela por Arjun Sreedharan
- Escrevendo um Bootloader Tiny x86 por Joe Bergeron
- Escrevendo um Bootloader por Alex Parker
- Aprendendo o desenvolvimento de sistemas operacionais usando kernel Linux e Raspberry Pi
- mya, um projeto divertido para criar um sistema operacional do zero por Erfan
Sites
- Genodianos – Histórias em torno do sistema operacional Genode
- os-dev - Wiki com tudo que você precisa saber
- Lowlevel - Um wiki sobre como criar um sistema operacional do zero. Em alemão
- POSIX – Padrões para manter a compatibilidade entre sistemas operacionais
- Rust OSDev - Boletim informativo sobre desenvolvimento de sistema operacional em Rust
- OSRTOS - Lista de sistemas operacionais de código aberto em tempo real
- Multicians - O site Multicians apresenta a história do sistema operacional Multics para pessoas interessadas na história do sistema
Artigos
- Os benefícios e custos de escrever um kernel POSIX em uma linguagem de alto nível por Cody Cutler, M. Frans Kaashoek e Robert T. Morris, MIT CSAIL
- Esquema de execução no Bare Metal por Samuel Yvon, Marc Feeley, Esquema 2020
- Unikraft: Unikernels rápidos e especializados da maneira mais fácil por Kuenzer et al., EuroSys 2021
Tutoriais em vídeo
- Escreva seu próprio sistema operacional
- Nanobyte
- Desenvolvimento de kernel do zero por Dragon Zap Education
- Série de palestras OSDev por AptRock327
Específico do Linux
Guia para iniciantes no desenvolvimento do kernel Linux (LFD103)
O Guia de Programação do Módulo Kernel Linux
A documentação do kernel Linux
Trabalhando com a comunidade de desenvolvimento do kernel
Ensino do Kernel Linux
linux-insiders
Livro de exercícios do kernel Linux
Ensino do Kernel Linux
mapa interativo do kernel Linux bootlins
Tabela de chamadas do sistema kernel Linux para todos os archs por Marcin Juszkiewicz
OldLinux – Uma fonte de kernel Linux fortemente comentada e muito mais
Recursos do kernel Linux sam4ks
Exploração do Kernel Linux xairys
Módulo do kernel Linux fibdrv que calcula números de Fibonacci
aprendizagem de segurança do kernel
erros do syzbot
difusor do kernel syzkaller
Fazendo mais com lore e b4, slides
Der Linux Kernel Entwicklungs-Workflow (2023, alemão) por Rouven Czerwinski
Ferramentas
- b4, docu, uma ferramenta para ajudar com fluxos de trabalho de patches baseados em e-mail
- clang-extract uma ferramenta para extrair conteúdo de código de arquivos de origem usando a infraestrutura clang e LLVM.
- hackermail uma ferramenta de gerenciamento de e-mails para hackers que colaboram usando listas de e-mails
- kworkflow – reduza a sobrecarga com configuração de infraestrutura para desenvolvimento Linux
- virtme-ng - crie e execute kernels rapidamente dentro de um instantâneo virtualizado do seu sistema ativo
Postagens de blog
Núcleo do Planeta
Torne-se um contribuidor do kernel Linux - Parte 1 por Javier Carrasco
Torne-se um contribuidor do kernel Linux - Parte 2 por Javier Carrasco
Torne-se um contribuidor do kernel Linux - Parte 3 por Javier Carrasco
Corrigindo bugs no kernel Linux com Syzbot, Qemu e GDB por Javier Carrasco
b4 para contribuidores do kernel Linux por Javier Carrasco
Use b4 para contribuições do kernel por Marcus Folkesson
Usando lei, b4 e mutt para desenvolver o kernel por Josef Bacik
netdev em 2023 por Jakub Kicinski
Cinco comandos para travar o kernel por Marcos Paulo de Souza
Você pode ser um hacker de kernel! por Júlia Evans
4 caminhos para ser um hacker de kernel por Julia Evans
Adivinhando os registros do kernel do Linux por Julia Evans
Como minha primeira contribuição ao kernel foi roubada por Ariel Miculas
Aplique patches do kernel Linux do LKML por Adam Young (antes de tomar conhecimento do b4)
Meu fluxo de trabalho de revisão de patches por Josef Bacik
Fluxo de trabalho de desenvolvimento do kernel Linux por Tommaso Merciai
Aplicar um patch do kernel Linux à árvore estável (2009) por Greg Kroah-Hartman
Fluxo de trabalho de patch com Mutt 2019 por Greg Kroah-Hartman
Depurar kernel com KGDB por Marcus Folkesson
Depuração do Kernel Linux
Como aprendi a amar o fluxo de trabalho do desenvolvedor de patch de e-mail, por Emily Shaffer
Depuração
- Caça aos insetos
- Dividindo um bug
- Depuração dinâmica
- Quem fez essa mudança e quando: usando Cregit para depuração por Shuah Khan
- Torne a saída de despejo de pilha útil novamente
- Análise de depuração de kernel panics e kernel oopses usando System Map por Sanjeev Sharma
- Compreendendo um Kernel Ops! por Surya Prabhakar
E-mail
Aprenda como usar git+email: git-send-email
Aprenda como revisar patches por e-mail: git-am
Use e-mails de texto simples
As vantagens de um fluxo de trabalho git baseado em e-mail por Drew DeVault
Revisão de código na velocidade do e-mail por Drew DeVault
Conferências / Apresentações
- Encanadores Linux, YT
- A Fundação Linux