Cosas impresionantes del sistema operativo
Esta lista contiene cosas increíbles relacionadas con el sistema operativo. El objetivo es recopilar todo tipo de sistemas operativos de código abierto diferentes para que las personas puedan estudiar su código y aprender de ellos. Además de recopilar recursos útiles para ayudar a las personas a comenzar a desarrollar en sistemas operativos populares.
Sistemas operativos de código abierto
- 9front: una bifurcación del Plan 9, diseñada para informática distribuida en red.
- AROS - Research Operating System es un sistema operativo de escritorio liviano, eficiente y flexible, diseñado para ayudarlo a aprovechar al máximo su computadora. Es un proyecto independiente, portátil y gratuito, que pretende ser compatible con AmigaOS a nivel API.
- AlmeidaOS: sistema operativo x86-64 con su propio gestor de arranque, programador y biblioteca limitada, todo escrito desde cero
- Animal: sistema operativo multiproceso de 32 bits (anteriormente Gramado)
- AurixOS: un pequeño sistema operativo multiplataforma diseñado para desarrolladores y creadores
- AquilaOS: sistema operativo diseñado para ser compatible con POSIX y en su mayoría transparente con ISA
- BareMetal, GitHub: sistema operativo de 64 bits escrito en ensamblador para x86-64
- Basekernel: un kernel de sistema operativo simple para investigación, enseñanza y diversión
- BoneOS: SO para todos creado por todos
- Bottlerocket OS: sistema operativo basado en Linux destinado a alojar contenedores.
- Brutal: un sistema operativo inspirado en un diseño brutalista que combina los ideales de UNIX de la década de 1970 con tecnología e ingeniería modernas.
- cavOS: sistema operativo Amd64 en C. Intentando crear un sistema operativo completo, con un código base simple y legible
- Charlotte - Kernel de CharlotteOS en Rust
- ChibiOS: un entorno de desarrollo completo para aplicaciones integradas que incluye RTOS, HAL, controladores de periféricos, archivos de soporte y herramientas.
- Clive: un sistema operativo unikernel inspirado en Plan9 y Nix desarrollado en la Universidad Rey Juan Carlos de Madrid
- Cyjon: sistema operativo en lenguaje ensamblador x64 puro (relacionado con el proyecto Fern-Night).
- DragonOS: un sistema operativo x86-64 creado desde cero.
- Dreamos64: un sistema operativo x86-64 creado desde cero
- Embox: núcleo de sistema operativo configurable diseñado para sistemas integrados y con recursos limitados.
- ExectOS, GitHub: ExectOS es un moderno sistema operativo de propósito general, habilitado para EFI, escrito desde cero e que implementa la arquitectura XT. Se ejecuta en arquitecturas x86 y x86_64 y proporciona una capa de compatibilidad de controladores NT.
- Fern-Night: sistema operativo en lenguaje C (relacionado con el proyecto Cyjon).
- Fiwix, GitHub: un kernel similar a UNIX para la arquitectura i386.
- Fomos: sistema operativo experimental, construido con Rust.
- FreeRTOS, GitHub: sistema operativo IoT para microcontroladores, de Amazon.
- GarnOS: Hobby OS impulsado por un kernel modular.
- Genode: un marco de sistema operativo FOSS que consta de una capa de abstracción de microkernel y una colección de componentes del espacio de usuario.
- Gloire: un sistema operativo creado con el kernel Ironclad (un kernel parcialmente verificado formalmente con un tamaño reducido para sistemas operativos integrados y de propósito general, escrito en SPARK y Ada) y herramientas GNU.
- GreenteaOS, Github: un sistema operativo gratuito diseñado para ser compatible con los ejecutables de Windows
- HalideOS: sistema operativo experimental escrito íntegramente desde cero.
- HarveyOS: un sistema operativo distribuido
- HelenOS - sistema operativo multiservidor multinúcleo
- House: sistema operativo y entorno del usuario de Haskell.
- Hubris - Hubris es un sistema operativo para microcontroladores desarrollado por Oxide Computer Company en Rust.
- Illumos: illusmos es un sistema operativo Unix que proporciona funciones de próxima generación para distribuciones posteriores (como OmniOS, OpenIndiana y Tribblix).
- Interim: sistema operativo minimalista con conceptos de máquinas Lisp y Plan9
- JSD-OS: un pequeño sistema operativo para x86 de 32 bits.
- Jehanne, GitHub: sistema operativo inspirado en Plan9, 9front y Harvey OS
- KiddieOS: sistema operativo de 64 bits similar a UNIX escrito en ensamblador, C++.
- KnightOS - para calculadoras z80
- KolibriOS - bifurcación MenuetOS
- L4re: sistema operativo e hipervisor para aplicaciones de seguridad/críticas y habilitadas para virtualización.
- LemonOS, GitHub: sistema operativo de 64 bits similar a UNIX escrito en C++.
- Mako - Hobby OS para x86 desde cero, escrito en C
- MaslOS: un Hobby OS multitarea con GUI de 64 bits escrito principalmente desde cero en C++ y un poco de C/ASM.
- MeetixOS: un sistema operativo aficionado escrito en C ++ 20 moderno que pretende ser similar a Unix.
- MentOS: un sistema operativo educativo similar a Linux de 32 bits.
- MenuetOS: Hobby OS compatible con 32 y 64 bits, escrito en lenguaje ensamblador
- Mimiker, GitHub: sistema operativo sencillo tipo Unix para fines educativos y de investigación. Micronúcleo MIPS.
- Mimosa, GitHub: sistema operativo de investigación que ejecuta Scheme sin sistema operativo
- Minoca OS: sistema operativo de propósito general, escrito en C
- MollenOS: MollenOS/Vali es un sistema operativo moderno construido centrándose en la abstracción y un diseño modular, lo que permite a cualquiera adaptarlo a cualquier arquitectura. Actualmente está dirigido a las plataformas x86-32 y x86-64.
- MyXomycota - Núcleo monolítico en C
- NESOS: ¡un sistema operativo para Nintendo Entertainment System!
- Nanos: Unikernel compatible con Linux, escrito en C
- NodeOS: sistema operativo que utiliza NodeJS y Linux
- Northport: kernel monolítico y bibliotecas de soporte para riscv64 y x86_64.
- PathOS - Hobby OS basado en MikeOS, escrito en lenguaje ensamblador
- Pidi OS: sistema operativo independiente y minimalista
- PonyOS, GitHub: sistema operativo basado en ToaruOS y con temática de My Little Pony
- PouplyOS: sistema operativo simple para divertirse y aprender, que lleva el nombre de la mascota de ESISAR, Poulpy
- PureDarwin: PureDarwin es un proyecto comunitario para ampliar Darwin a un sistema operativo completo y utilizable.
- Qubes OS: sistema operativo centrado en la seguridad integrado en el hipervisor Xen, diseñado para aislar diferentes compartimentos según los niveles de confianza.
- RavynOS: un proyecto de sistema operativo basado en BSD que tiene como objetivo proporcionar una experiencia similar y cierta compatibilidad con macOS (anteriormente conocido como airyxOS)
- Redox - escrito en Rust
- RustyHermit: un unikernel ligero basado en Rust
- Sanos, GitHub: Sanos es un kernel de sistema operativo x86 minimalista de 32 bits para dispositivos de servidor de red que se ejecutan en hardware de PC estándar.
- SayoriOS: Hobby OS para computadoras x86, actualmente en desarrollo activo, escrito en C
- Sculpt OS: sistema operativo basado en genodo
- Serenity: sistema operativo gráfico tipo Unix para computadoras x86
- SimpleOS - Sistema Operativo Simple codificado en C y Ensamblador
- Snowdrop OS: un sistema operativo casero desde cero, en lenguaje ensamblador
- Sortix - Hobby OS en C y C++ por Jonas 'Sortie' Termansen
- Syllable: sucesor de AtheOS, Syllable está diseñado según la tradición de Amiga y BeOS, pero construido utilizando muchas partes del proyecto GNU y Linux.
- SynestiaOS: sistema operativo de 32/64 bits escrito en C para plataforma arm
- TempleOS - SO religioso :-)
- Theseus: un sistema operativo experimental moderno escrito desde cero en Rust para explorar la estructura novedosa del sistema operativo y las técnicas de gestión del estado.
- Thor: sistema operativo de 64 bits escrito principalmente en C++
- ToaruOS - Sistema operativo Hobby desde cero
- Týndur: sistema operativo Hobby creado por la comunidad Lowlevel. Escrito en C y Pascal
- Ultron OS - Sistema operativo x86 escrito en C++, Proyecto de escuela secundaria
- Unikraft: un unikernel modular para especialización, alta eficiencia, rendimiento y seguridad; Compatible con Linux/POSIX; principalmente en C
- Vinix: Vinix es un esfuerzo por escribir un sistema operativo moderno, rápido y útil en el lenguaje de programación V.
- Visopsys: sistema operativo Hobby de código abierto desarrollado desde 1997
- Windows 95 en Electron - Implementación Hobby de Windows 95 en Electron
- Xv6: un sistema operativo de enseñanza desarrollado en el verano de 2006 para el curso de sistemas operativos del MIT.
- ZealOS: el sistema operativo Zeal es una bifurcación profesional y modernizada del sistema operativo Temple de 64 bits, TempleOS.
- ackOS: un sistema operativo sencillo de 64 bits.
- aurora_os - Escrito en Rust.
- dahliaOS- dahliaOS es un sistema operativo moderno, seguro, liviano y responsivo, que combina lo mejor de GNU/Linux y Fuchsia OS.
- duckOS: un sistema operativo aficionado similar a UNIX con un administrador de ventanas gráfico para computadoras x86.
- eggos: un unikernel de Go que se ejecuta en x86 bare metal
- esmeralda: un núcleo de sistema operativo escrito para divertirse en C
- gopher-os: una prueba de concepto del kernel del sistema operativo escrito en Go
- hhuOS - hhuOS es un pequeño sistema operativo escrito en C++ y ensamblador para la arquitectura x86. El objetivo principal de este proyecto es mostrar cómo se pueden implementar y vincular diferentes aspectos de la teoría de los sistemas operativos. El sistema no pretende ser un sistema operativo con todas las funciones para uso diario.
- hidrógeno - sistema operativo de juguete. Kernel multitarea preventivo de 64 bits que admite EFI, PCIe, SATA, modo de gráficos framebuffer y HFS+.
- lyre: kernel x86 y distribución impulsada por mlibc, herramientas de usuario GNU y otro software *nix común.
- managarm: sistema operativo pragmático basado en microkernel con E/S totalmente asíncrona
- menix: un sistema operativo tipo Unix mínimo y ampliable.
- moros: MOROS es un sistema operativo aficionado escrito en Rust para la arquitectura x86.
- mOS: un sistema operativo aficionado desarrollado desde cero
- nopeos - Kernel de sistema operativo simple con intérprete BÁSICO para x86
- octox: sistema operativo tipo Unix en Rust inspirado en xv6-riscv
- oneOS: kernel x86-32 y ARMv7 con subprocesos múltiples preventivos, administrador de ventanas y editor
- opuntiaOS: un sistema operativo dirigido a x86, ARMv7, Aarch64.
- orange_slice: un núcleo de investigación e hipervisor que intenta obtener una emulación totalmente determinista con un costo de rendimiento mínimo. En óxido
- pranaOS - Un sistema operativo Unix escrito desde cero en c/c++
- QuickOS: un sistema operativo creado por un desarrollador independiente, todavía en desarrollo, como MS-DOS, pero en qbasic. Está HECHO con qb64.
- r3: un núcleo del sistema operativo x86_64 escrito en Rust, con funcionalidades mínimas
- ravynOS: proyecto de sistema operativo basado en BSD que tiene como objetivo proporcionar una experiencia similar y cierta compatibilidad con macOS (anteriormente conocido como airyxOS)
- skiftOS, GitHub: un sistema operativo sencillo, hecho a mano, con una interfaz gráfica de usuario.
- soso: sistema operativo simple tipo Unix escrito en ensamblador Nasm y principalmente en C
- tilck: un pequeño kernel compatible con Linux.
- tock, GitHub: un sistema operativo integrado seguro para microcontroladores
- unox-os - Unox es un sistema operativo educativo tipo Unix
- willOS: un kernel mínimo de 64 bits (sistema operativo que no puede "operar" muchas cosas)
Sistemas operativos populares
- Darwin XNU: el código fuente del kernel XNU para usar en MacOS e iOS
- FreeBSD, Github: sistema operativo tipo Unix basado en BSD
- FreeDOS: sistema operativo compatible con DOS
- Haiku: sistema operativo inspirado en BeOS
- Linux-núcleo de Linux
- Minix, Github: sistema operativo tipo Unix basado en una arquitectura de microkernel
- MS-DOS: las fuentes originales de MS-DOS 1.25 y 2.0
- NetBSD, Github: sistema operativo tipo Unix basado en BSD
- OpenBSD, Github: sistema operativo tipo Unix basado en BSD
- Plan 9 de Bell Labs: un sistema operativo de los creadores de Unix, que amplía la filosofía Unix de "todo es un archivo" con un sistema de archivos centrado en la red, espacios de nombres y computación distribuida.
- ReactOS, Github: un sistema operativo gratuito compatible con Windows
- SystemV - Código fuente del sistema V de AT&T UNIX
Libros y guías
Libros en línea
- Cómo crear un sistema operativo para computadora - en C++
- Intermezzos: un libro de seguimiento para construir IntermezzosOS en Rust
- Kernel de Linux en pocas palabras: cubre toda la gama de tareas del kernel, disponible en capítulos o en un PDF
- El pequeño libro sobre el desarrollo de sistemas operativos de Erik Helin y Adam Renberg
- Think OS: una breve introducción a los sistemas operativos por Allen B. Downey
- Serie de desarrollo de sistemas operativos: sistema operativo desde cero en C
- Sistemas operativos: tres piezas sencillas: libro fácil de leer que cubre virtualización, concurrencia y persistencia
- xv6: un sistema operativo de enseñanza simple, similar a Unix - Libro para Xv6
- Sistemas operativos: de 0 a 1: comience a escribir un sistema operativo desde cero por Do Hoang Tu
- Notas de Osdev: Cómo escribir un sistema operativo desde cero por Ivan G. y Dean T.
Tutoriales
- Baking Pi – Desarrollo de sistemas operativos por la Universidad de Cambridge
- Cree un kernel mínimo de sistema operativo multitarea para ARM desde cero por Jim Huang
- Desarrollo del núcleo de Bran por Brandon Friesen
- Cómo escribir un parche para el kernel de Linux y enviarlo por Greg Kroah-Hartman
- Presentación sobre cómo se desarrolla el kernel de Linux por Greg Kroah-Hartman
- os-tutorial - Cómo crear un SO desde cero por Carlos Fenollosa
- Rueda tu propio sistema operativo clon UNIX de juguete por James Molloy
- Escribiendo un sistema operativo en Rust por Philipp Oppermann
- Creación de un sistema operativo RISC-V utilizando Rust por Stephen Marz
- Desarrollo de sistemas operativos para Dummies por Leo Whitehead
- Kernels 101 – Escribamos un Kernel por Arjun Sreedharan
- Kernels 201: escribamos un kernel con soporte para teclado y pantalla por Arjun Sreedharan
- Escribiendo un gestor de arranque Tiny x86 por Joe Bergeron
- Escribiendo un gestor de arranque por Alex Parker
- Aprendizaje del desarrollo de sistemas operativos utilizando el kernel de Linux y Raspberry Pi.
- mya un proyecto divertido para crear un sistema operativo desde cero por Erfan
Sitios web
- Genodianos: historias sobre el sistema operativo Genode
- os-dev - Wiki con todo lo que necesitas saber
- Lowlevel: una wiki sobre la creación de un sistema operativo desde cero. en alemán
- POSIX: estándares para mantener la compatibilidad entre sistemas operativos
- Rust OSDev - Boletín sobre el desarrollo del sistema operativo en Rust
- OSRTOS: lista de sistemas operativos en tiempo real de código abierto
- Multicians: el sitio web de Multicians presenta la historia del sistema operativo Multics para las personas interesadas en la historia del sistema.
Papeles
- Los beneficios y costos de escribir un kernel POSIX en un lenguaje de alto nivel por Cody Cutler, M. Frans Kaashoek y Robert T. Morris, MIT CSAIL
- Esquema en ejecución en Bare Metal por Samuel Yvon, Marc Feeley, Scheme 2020
- Unikraft: Unikernels rápidos y especializados de forma sencilla por Kuenzer et al., EuroSys 2021
Tutoriales en vídeo
- Escribe tu propio sistema operativo
- Nanobyte
- Desarrollador de kernel desde cero por Dragon Zap Education
- Serie de conferencias OSDev de AptRock327
Específico de Linux
Una guía para principiantes sobre el desarrollo del kernel de Linux (LFD103)
La guía de programación del módulo del kernel de Linux
La documentación del kernel de Linux
Trabajar con la comunidad de desarrollo del kernel
Enseñanza del kernel de Linux
linux-dentro
Libro de trabajo del kernel de Linux
Enseñanza del kernel de Linux
mapa interactivo del kernel de Linux con bootlins
Tabla de llamadas al sistema del kernel de Linux para todos los arcos por Marcin Juszkiewicz
OldLinux: una fuente del kernel de Linux muy comentada y más
Recursos del kernel de Linux sam4ks
Explotación del kernel de Linux xairys
módulo fibdrv del kernel de Linux que calcula los números de Fibonacci
aprendizaje-de-seguridad-del-kernel
errores syzbot
fuzzer del núcleo syzkaller
Hacer más con lore y b4, diapositivas
Der Linux Kernel Entwicklungs-Workflow (2023, alemán) por Rouven Czerwinski
Herramientas
- b4, docu, una herramienta para ayudar con los flujos de trabajo de parches basados en correo electrónico
- clang-extract es una herramienta para extraer contenido de código de archivos fuente utilizando la infraestructura clang y LLVM.
- hackermail una herramienta de gestión de correos para hackers que colaboran mediante listas de correo
- kworkflow: reduzca los gastos generales con la configuración de infraestructura para el desarrollo de Linux
- virtme-ng: construye y ejecuta rápidamente kernels dentro de una instantánea virtualizada de tu sistema en vivo
Publicaciones de blog
Núcleo del planeta
Conviértete en colaborador del kernel de Linux - Parte 1 por Javier Carrasco
Conviértete en colaborador del kernel de Linux - Parte 2 por Javier Carrasco
Conviértete en colaborador del kernel de Linux - Parte 3 por Javier Carrasco
Corrección de errores en el kernel de Linux con Syzbot, Qemu y GDB por Javier Carrasco
b4 para contribuyentes del kernel de Linux por Javier Carrasco
Utilice b4 para contribuciones al kernel de Marcus Folkesson
Usando lei, b4 y mutt para desarrollar el kernel por Josef Bacik
netdev en 2023 por Jakub Kicinski
Cinco comandos para bloquear el kernel por Marcos Paulo de Souza
¡Puedes ser un hacker del kernel! por Julia Evans
4 caminos para ser un hacker del kernel por Julia Evans
Adivinando los registros del kernel de Linux por Julia Evans
Cómo me robaron mi primera contribución al kernel por Ariel Miculas
Aplique parches del kernel de Linux de LKML por Adam Young (antes de conocer b4)
Mi flujo de trabajo de revisión de parches por Josef Bacik
Flujo de trabajo de desarrollo del kernel de Linux por Tommaso Merciai
Aplicar un parche del kernel de Linux al árbol estable (2009) por Greg Kroah-Hartman
Flujo de trabajo de parches con Mutt 2019 por Greg Kroah-Hartman
Depurar kernel con KGDB por Marcus Folkesson
Depuración del kernel de Linux
Cómo aprendí a amar el flujo de trabajo del desarrollador de parches de correo electrónico por Emily Shaffer
Depuración
- caza de errores
- Dividiendo un error
- Depuración dinámica
- Quién hizo ese cambio y cuándo: uso de Cregit para la depuración por Shuah Khan
- Hacer que la salida del volcado de pila vuelva a ser útil
- Análisis de depuración de pánicos y fallos del kernel utilizando System Map por Sanjeev Sharma
- Entendiendo un kernel ¡Ups! por Surya Prabhakar
Correo electrónico
Aprenda a usar git+email: git-send-email
Aprenda a revisar parches por correo electrónico: git-am
Utilice correos electrónicos de texto sin formato
Las ventajas de un flujo de trabajo Git basado en correo electrónico por Drew DeVault
Revisión de código a la velocidad del correo electrónico por Drew DeVault
Conferencias / Presentaciones
- Plomeros de Linux, YT
- La Fundación Linux