멋진 운영 체제 관련 내용
이 목록에는 멋진 운영 체제와 관련된 내용이 포함되어 있습니다. 목표는 사람들이 코드를 연구하고 배울 수 있도록 다양한 오픈 소스 OS를 수집하는 것입니다. 또한 인기 있는 운영 체제에서 개발을 시작하는 데 도움이 되는 유용한 리소스를 수집합니다.
오픈 소스 운영 체제
- 9front - 분산 네트워크 컴퓨팅을 위해 설계된 Plan 9의 포크입니다.
- AROS - 연구 운영 체제는 컴퓨터를 최대한 활용할 수 있도록 설계된 가볍고 효율적이며 유연한 데스크톱 운영 체제입니다. API 수준에서 AmigaOS와 호환되는 것을 목표로 하는 독립적이고 이식 가능한 무료 프로젝트입니다.
- AlmeidaOS - 자체 부트로더, 스케줄러 및 제한된 libc가 모두 처음부터 작성된 x86-64 OS
- Animal - 32비트 다중 스레드 운영 체제(이전 Gramado)
- AurixOS - 개발자와 제작자를 위해 설계된 소형 다중 플랫폼 운영 체제
- AquilaOS - POSIX와 호환되고 대부분 ISA에 투명하도록 설계된 운영 체제
- BareMetal, GitHub - x86-64용 어셈블리로 작성된 64비트 운영 체제
- Basekernel - 연구, 교육 및 재미를 위한 간단한 OS 커널
- BoneOS - 모두가 만든 모두를 위한 OS
- Bottlerocket OS - 컨테이너 호스팅을 위한 Linux 기반 OS입니다.
- Brutal - 1970년대 UNIX의 이상과 현대 기술 및 엔지니어링을 결합한 잔인한 디자인에서 영감을 받은 운영 체제입니다.
- cavOS - C로 된 Amd64 운영 체제. 간단하고 읽기 쉬운 코드베이스를 사용하여 전체 OS를 만들려고 합니다.
- Charlotte - Rust의 CharlotteOS 커널
- ChibiOS - RTOS, HAL, 주변 장치 드라이버, 지원 파일 및 도구를 포함한 임베디드 애플리케이션을 위한 완벽한 개발 환경
- Clive - 마드리드의 Rey Juan Carlos 대학 에서 개발된 Plan9 및 Nix에서 영감을 받은 유니커널 OS
- Cyjon - 순수 x64 어셈블리 언어 운영 체제(Fern-Night 프로젝트 관련).
- DragonOS - 처음부터 x86-64 OS 빌드입니다.
- Dreamos64 - 처음부터 새로 제작된 x86-64 취미 OS
- Embox - 리소스가 제한된 임베디드 시스템을 위해 설계된 구성 가능한 운영 체제 커널입니다.
- ExectOS, GitHub - ExectOS는 처음부터 작성되고 XT 아키텍처를 구현하는 최신 EFI 지원 범용 운영 체제입니다. x86 및 x86_64 아키텍처에서 실행되며 NT 드라이버 호환성 계층을 제공합니다.
- Fern-Night - C 언어 운영 체제(Cyjon 프로젝트 관련).
- Fiwix, GitHub - i386 아키텍처를 위한 UNIX와 유사한 커널입니다.
- Fomos - Rust로 구축된 실험적인 OS입니다.
- FreeRTOS, GitHub - Amazon의 마이크로컨트롤러용 IoT 운영 체제입니다.
- GarnOS - 모듈식 커널로 구동되는 취미 OS입니다.
- Genode - 마이크로커널 추상화 계층과 사용자 공간 구성 요소 모음으로 구성된 FOSS 운영 체제 프레임워크
- Gloire - Ironclad 커널(SPARK 및 Ada로 작성된 범용 및 임베디드 OS를 위한 작은 설치 공간을 갖춘 부분적으로 공식적으로 검증된 커널) 및 GNU 도구로 구축된 OS입니다.
- GreenteaOS, Github - Windows 실행 파일과 호환되도록 설계된 무료 OS
- HalideOS - 처음부터 완전히 작성된 실험적인 운영 체제입니다.
- HarveyOS - 분산 운영 체제
- HelenOS - 다중 커널 다중 서버 OS
- House - Haskell 사용자의 운영 체제 및 환경.
- Hubris - Hubris는 Rust의 Oxide Computer Company에서 개발한 마이크로컨트롤러용 운영 체제입니다.
- Illumos - Illumos는 다운스트림 배포판(예: OmniOS, OpenIndiana 및 Tribblix)을 위한 차세대 기능을 제공하는 Unix 운영 체제입니다.
- 임시 - Lisp 시스템 및 Plan9의 개념을 갖춘 미니멀리스트 OS
- JSD-OS - 32비트 x86용 소형 운영 체제입니다.
- Jehanne, GitHub - Plan9, 9front 및 Harvey OS에서 영감을 받은 OS
- KiddieOS - 어셈블리, C++로 작성된 UNIX와 유사한 64비트 운영 체제입니다.
- KnightOS - z80 계산기용
- KolibriOS - MenuetOS 포크
- L4re - 보안/안전이 중요하고 가상화 지원 애플리케이션을 위한 운영 체제 및 하이퍼바이저입니다.
- LemonOS, GitHub - C++로 작성된 UNIX와 유사한 64비트 운영 체제입니다.
- Mako - 처음부터 x86용 Hobby OS, C로 작성됨
- MaslOS - 대부분 C++와 약간의 C/ASM으로 처음부터 작성된 64비트 GUI 멀티태스킹 Hobby OS입니다.
- MeetixOS - Unix와 유사한 것을 목표로 하는 최신 C++20으로 작성된 취미용 OS입니다.
- MentOS - 교육용 32비트 Linux와 유사한 운영 체제입니다.
- MenuetOS - 어셈블리 언어로 작성된 32비트 및 64비트를 지원하는 Hobby OS
- Mimiker, GitHub - 교육 및 연구 목적을 위한 간단한 유닉스 계열 운영 체제입니다. MIPS 마이크로커널.
- Mimosa, GitHub - 베어메탈에서 Scheme을 실행하는 연구 운영 체제
- Minoca OS - C로 작성된 범용 OS
- MollenOS - MollenOS/Vali는 추상화 및 모듈식 설계에 중점을 두고 구축되어 누구나 모든 아키텍처에 이식할 수 있는 최신 운영 체제입니다. 현재 x86-32 및 x86-64 플랫폼을 대상으로 합니다.
- MyXomycota - C의 모놀리식 커널
- NESOS - Nintendo Entertainment System용 OS!
- Nanos - C로 작성된 Linux 호환 Unikernel
- NodeOS - NodeJS와 Linux를 사용하는 OS
- Northport - riscv64 및 x86_64용 모놀리식 커널 및 지원 라이브러리입니다.
- PathOS - 어셈블리 언어로 작성된 MikeOS 기반 취미 OS
- Pidi OS - 독립적이고 최소한의 OS
- PonyOS, GitHub - ToaruOS 기반, My Little Pony 테마 OS
- PouplyOS - ESISAR 마스코트 Poulpy의 이름을 딴 재미와 학습을 위한 간단한 OS
- PureDarwin - PureDarwin은 Darwin을 완전하고 사용 가능한 운영 체제로 확장하는 커뮤니티 프로젝트입니다.
- Qubes OS - Xen 하이퍼바이저를 기반으로 구축된 보안 중심 OS로, 신뢰 수준에 따라 다양한 구획을 격리하도록 설계되었습니다.
- RavynOS - macOS(이전의 airyxOS)와 같은 경험과 일부 호환성을 제공하는 것을 목표로 하는 BSD 기반 OS 프로젝트입니다.
- Redox - Rust로 작성됨
- RustyHermit - Rust 기반의 경량 유니커널
- Sanos, GitHub - Sanos는 표준 PC 하드웨어에서 실행되는 네트워크 서버 어플라이언스를 위한 최소한의 32비트 x86 운영 체제 커널입니다.
- SayoriOS - x86 컴퓨터용 Hobby OS, 현재 개발 중이며 C로 작성됨
- Sculpt OS - Genode 기반 OS
- Serenity - x86 컴퓨터용 그래픽 Unix 계열 운영 체제
- SimpleOS - C 및 어셈블리로 코딩된 간단한 운영 체제
- Snowdrop OS - 처음부터 어셈블리 언어로 만든 홈브류 운영 체제
- Sortix - Jonas 'Sortie' Termansen의 C 및 C++ 취미 OS
- Syllable - AtheOS의 후속 버전인 Syllable은 Amiga 및 BeOS의 전통을 따라 설계되었지만 GNU 프로젝트 및 Linux의 많은 부분을 사용하여 구축되었습니다.
- SynestiaOS - arm 플랫폼용으로 C로 작성된 32/64비트 운영 체제
- TempleOS - 종교 OS :-)
- 테세우스(Theseus) - 새로운 OS 구조와 상태 관리 기술을 탐구하기 위해 Rust로 처음부터 작성된 최신 실험적 OS입니다.
- Thor - 대부분 C++로 작성된 64비트 운영 체제
- ToaruOS - 처음부터 취미 운영 체제
- Týndur - Lowlevel 커뮤니티에서 빌드한 취미 운영 체제입니다. C와 파스칼로 작성됨
- Ultron OS - C++로 작성된 x86 운영 체제, 고등학교 프로젝트
- Unikraft - 전문화, 고효율, 성능 및 보안을 위한 모듈식 유니커널입니다. Linux/POSIX 호환; 주로 C에서
- Vinix - Vinix는 V 프로그래밍 언어로 현대적이고 빠르며 유용한 운영 체제를 작성하려는 노력입니다.
- Visopsys - 1997년부터 개발된 오픈소스 취미OS
- Electron의 Windows 95 - 취미용 Electron의 Windows 95 구현
- Xv6 - MIT 운영 체제 과정을 위해 2006년 여름에 개발된 교육용 운영 체제입니다.
- ZealOS - Zeal 운영 체제는 64비트 Temple 운영 체제인 TempleOS의 현대화된 전문 포크입니다.
- ackOS - 간단한 64비트 운영 체제입니다.
- aurora_os - Rust로 작성되었습니다.
- dahliaOS- dahliaOS는 GNU/Linux와 Fuchsia OS의 장점을 결합한 현대적이고 안전하며 가볍고 반응성이 뛰어난 운영 체제입니다.
- duckOS - x86 컴퓨터용 그래픽 창 관리자를 갖춘 취미용 UNIX 유사 OS입니다.
- eggos - x86 베어메탈에서 실행되는 Go 유니커널
- emerald - 재미를 위해 C로 작성된 운영 체제 커널
- gopher-os - Go로 작성된 개념 증명 OS 커널
- hhuOS - hhuOS는 x86 아키텍처용 C++ 및 어셈블러로 작성된 작은 운영 체제입니다. 이 프로젝트의 주요 목적은 운영 체제 이론의 다양한 측면이 어떻게 구현되고 서로 연결될 수 있는지 보여주는 것입니다. 이 시스템은 일상적인 사용을 위한 모든 기능을 갖춘 운영 체제를 목표로 하지 않습니다.
- 수소 - 장난감 OS. EFI, PCIe, SATA, 프레임 버퍼 그래픽 모드, HFS+를 지원하는 64비트, 선점형 멀티태스킹 커널.
- lyre - mlibc, GNU 사용자 도구 및 기타 일반적인 *nix 소프트웨어로 구동되는 x86 커널 및 배포판입니다.
- managarm - 완전 비동기식 I/O를 갖춘 실용적인 마이크로커널 기반 OS
- menix - 최소한의 확장 가능한 Unix 계열 운영 체제입니다.
- moros - MOROS는 x86 아키텍처용으로 Rust로 작성된 취미 운영 체제입니다.
- mos - 처음부터 개발된 취미 운영 체제
- nopeos - x86용 BASIC 인터프리터가 포함된 간단한 OS 커널
- octox - xv6-riscv에서 영감을 받은 Rust의 Unix 계열 OS
- oneOS - 선점형 멀티스레딩, 창 관리자 및 편집기를 갖춘 x86-32 및 ARMv7 커널
- opuntiaOS - x86, ARMv7, Aarch64를 대상으로 하는 운영 체제입니다.
- orange_slice - 최소한의 성능 비용으로 완전히 결정적인 에뮬레이션을 시도하는 연구 커널 및 하이퍼바이저입니다. 러스트에서
- pranaOS - 처음부터 c/c++로 작성된 유닉스 운영 체제
- QuickOS - 독립 개발자가 만든 OS로, MS-DOS처럼 아직 개발 중이지만 qbasic에 있습니다. qb64로 제작되었습니다.
- r3 - 최소한의 기능을 갖춘 Rust로 작성된 취미용 x86_64 운영 체제 커널
- ravynOS - macOS(이전의 airyxOS)와 같은 경험과 일부 호환성을 제공하는 것을 목표로 하는 BSD 기반 OS 프로젝트입니다.
- skiftOS, GitHub - 그래픽 사용자 인터페이스를 갖춘 간단한 수제 운영 체제입니다.
- soso - Nasm 어셈블리와 대부분 C로 작성된 간단한 유닉스 계열 운영 체제
- tilck - 작은 Linux 호환 커널입니다.
- tock, GitHub - 마이크로컨트롤러를 위한 보안 임베디드 운영 체제
- unox-os - Unox는 교육용 유닉스 계열 운영 체제입니다.
- willOS - 최소 64비트 커널(많은 것을 "작동"할 수 없는 운영 체제)
인기 있는 운영 체제
- Darwin XNU - MacOS 및 iOS에서 사용하기 위한 XNU 커널 소스 코드
- FreeBSD, Github - BSD 기반의 Unix 계열 운영 체제
- FreeDOS - DOS 호환 OS
- Haiku - BeOS에서 영감을 받은 OS
- 리눅스 - 리눅스 커널
- Minix, Github - 마이크로커널 아키텍처를 기반으로 하는 Unix 계열 운영 체제
- MS-DOS - MS-DOS 1.25 및 2.0의 원본 소스
- NetBSD, Github - BSD 기반의 Unix 계열 운영 체제
- OpenBSD, Github - BSD 기반의 Unix 계열 운영 체제
- Bell Labs의 Plan 9 - Unix 제작자가 만든 OS로, "모든 것은 파일이다"라는 Unix 철학을 네트워크 중심 파일 시스템, 네임스페이스 및 분산 컴퓨팅으로 확장합니다.
- ReactOS, Github - 무료 Windows 호환 운영 체제
- SystemV - AT&T UNIX 시스템 V 소스 코드
도서 및 가이드
온라인 도서
- 컴퓨터 운영 체제를 만드는 방법 - C++로
- Intermezzos - Rust에서 IntermezzosOS를 구축하기 위한 후속 책
- 간단히 말해서 Linux 커널 - 전체 커널 작업 범위를 다루며 장 또는 하나의 PDF로 제공됩니다.
- Erik Helin 과 Adam Renberg가 쓴 OS 개발에 관한 작은 책
- Think OS - Allen B. Downey 의 운영 체제에 대한 간략한 소개
- 운영 체제 개발 시리즈 - C에서 처음부터 끝까지 OS
- 운영 체제: 세 가지 쉬운 부분 - 가상화, 동시성 및 지속성을 다루는 읽기 쉬운 책
- xv6: 간단한 Unix 계열 교육 운영 체제 - Xv6용 도서
- 운영 체제: 0에서 1까지 - Do Hoang Tu 가 직접 부트스트랩하여 처음부터 OS 작성
- Osdev Notes - Ivan G. 및 Dean T. 가 처음부터 운영 체제를 작성하는 방법
튜토리얼
- Baking Pi – 캠브리지 대학의 운영 체제 개발
- Jim Huang이 처음부터 ARM용 최소 멀티태스킹 OS 커널 구축
- Brandon Friesen의 밀기울 커널 개발
- Linux 커널 패치를 작성하고 제출하는 방법 - Greg Kroah-Hartman
- Greg Kroah-Hartman의 Linux 커널 개발 방법에 대한 프레젠테이션
- os-tutorial - Carlos Fenollosa가 처음부터 OS를 만드는 방법
- 나만의 장난감 UNIX 클론 OS 만들기 - James Molloy
- Philipp Oppermann의 Rust로 OS 작성하기
- Rust를 사용하여 RISC-V 운영 체제 만들기(Stephen Marz)
- Leo Whitehead의 Dummies용 운영 체제 개발
- 커널 101 - Arjun Sreedharan의 커널을 작성해 보겠습니다.
- 커널 201 - Arjun Sreedharan이 지원하는 키보드 및 화면 지원 커널을 작성해 보겠습니다.
- Joe Bergeron의 작은 x86 부트로더 작성
- Alex Parker의 부트로더 작성
- Linux 커널과 Raspberry Pi를 활용한 운영체제 개발 학습
- mya Erfan이 처음부터 OS를 만드는 재미있는 프로젝트입니다.
웹사이트
- Genodians - Genode 운영 체제에 관한 이야기
- os-dev - 당신이 알아야 할 모든 것을 담은 Wiki
- Lowlevel - 처음부터 OS를 만드는 방법에 대한 위키입니다. 독일어로
- POSIX - 운영 체제 간의 호환성을 유지하기 위한 표준
- Rust OSDev - Rust의 OS 개발에 관한 뉴스레터
- OSRTOS - 오픈 소스 실시간 운영 체제 목록
- Multicians - Multicians 웹 사이트는 시스템 역사에 관심이 있는 사람들을 위해 Multics 운영 체제에 대한 이야기를 제공합니다.
서류
- 고급 언어로 POSIX 커널을 작성할 때의 이점과 비용 - Cody Cutler, M. Frans Kaashoek 및 Robert T. Morris, MIT CSAIL
- Samuel Yvon, Marc Feeley, Scheme 2020의 베어 메탈에서 실행 계획
- Unikraft: 빠르고 전문화된 Unikernels를 통한 간편한 방법 작성자: Kuenzer et al., EuroSys 2021
비디오 튜토리얼
- 자신만의 운영체제를 작성하세요
- 나노바이트
- Dragon Zap Education이 처음부터 커널 개발
- AptRock327의 OSDev 강의 시리즈
리눅스 전용
Linux 커널 개발을 위한 초보자 가이드(LFD103)
Linux 커널 모듈 프로그래밍 가이드
Linux 커널 문서
커널 개발 커뮤니티와 협력
리눅스 커널 교육
리눅스 내부
Linux 커널 통합 문서
리눅스 커널 교육
bootlins 대화형 Linux 커널 맵
Marcin Juszkiewicz의 모든 아치에 대한 Linux 커널 시스템 호출 테이블
OldLinux - 주석이 많이 달린 Linux 커널 소스 등
sam4ks Linux 커널 리소스
xairys Linux 커널 공격
fibdrv 피보나치 수를 계산하는 Linux 커널 모듈
커널 보안 학습
syzbot 버그
syzkaller 커널 퍼저
지식과 b4, 슬라이드로 더 많은 작업 수행
Rouven Czerwinski의 Der Linux Kernel Entwicklungs-Workflow(2023, 독일어)
도구
- b4, docu, 이메일 기반 패치 워크플로우를 돕는 도구
- clang-extract clang 및 LLVM 인프라를 사용하여 소스 파일에서 코드 콘텐츠를 추출하는 도구입니다.
- hackermail은 메일링 리스트를 사용하여 협력하는 해커를 위한 메일 관리 도구입니다.
- kworkflow - Linux 개발을 위한 인프라 설정으로 오버헤드를 줄입니다.
- virtme-ng - 라이브 시스템의 가상화된 스냅샷 내에서 커널을 빠르게 구축하고 실행합니다.
블로그 게시물
플래닛 커널
Linux 커널 기여자가 되어 보세요 - Javier Carrasco의 1부
Linux 커널 기여자가 되어 보세요 - Javier Carrasco의 2부
Linux 커널 기여자가 되어 보세요 - Javier Carrasco의 3부
Javier Carrasco의 Syzbot, Qemu 및 GDB를 사용하여 Linux 커널의 버그 수정
Javier Carrasco의 Linux 커널 기여자용 b4
Marcus Folkesson의 커널 기여에 b4 사용
lei, b4 및 mutt를 사용하여 커널 개발 수행 작성자: Josef Bacik
2023년의 netdev 작성자: Jakub Kicinski
커널을 충돌시키는 다섯 가지 명령 - Marcos Paulo de Souza
당신도 커널 해커가 될 수 있습니다! 줄리아 에반스
커널 해커가 되는 4가지 길 - Julia Evans
Julia Evans의 Linux 커널 레지스터 추측
어떻게 Ariel Miculas로부터 첫 번째 커널 기여를 빼앗겼나요?
Adam Young의 LKML에서 Linux 커널 패치 적용(b4를 알기 전)
Josef Bacik의 패치 검토 작업 흐름
Tommaso Merciai의 Linux 커널 개발 워크플로
Greg Kroah-Hartman이 작성한 안정 트리(2009)에 Linux 커널 패치 적용
Greg Kroah-Hartman의 Mutt 2019를 사용한 패치 워크플로
Marcus Folkesson의 KGDB를 사용한 디버그 커널
Linux 커널 디버깅
Emily Shaffer의 이메일 패치 개발자 워크플로를 좋아하게 된 방법
디버깅
- 벌레 사냥
- 버그를 양분하기
- 동적 디버그
- 누가, 언제 변경했는지: 디버깅을 위해 Cregit 사용 작성자: Shuah Khan
- 스택 덤프 출력을 다시 유용하게 만들기
- Sanjeev Sharma의 시스템 맵을 사용한 커널 패닉 및 커널 오류 디버깅 분석
- 커널 이해하기 이런! 수리야 프라브하카르(Surya Prabhakar)
이메일
git+email 사용 방법 알아보기: git-send-email
이메일을 통해 패치를 검토하는 방법 알아보기: git-am
일반 텍스트 이메일 사용
Drew DeVault의 이메일 기반 Git 워크플로의 장점
Drew DeVault의 이메일 속도로 코드 검토
컨퍼런스/프레젠테이션