
Hoshi 星 is an custom hobby operating system
for the x86_64
platform. It’s not Linux
but it is POSIX
-compatible and runs on a custom kernel named Yukiko 幸子. It is written from scratch in C, including the kernel, standard library and all major components.
Hoshi development started in 2015.
Requirements
- x86_64 CPU.
- 256MB RAM.
Features
- boots from an MBR using a custom bootloader.
- has a Graphical User Interface with APIs.
- multithreading.
- has a network stack supporting IPv4 and IPv6 , DNS, ICMP, UDP and TCP.
- supports the ISO 9660 filesystem, FAT32 and a custom filesystem named HOFS (Hoshi File System) that can store Hoshi-specific metadata.
- implements the POSIX API using a custom C library.
- the GNU toolchain (binutils and GCC ) can run natively on Hoshi.
- can be compiled on a modern system using GCC 10.
- Universal Serial Bus (USB) EHCI and xHCI support.
- Symmetric Multiprocessing (SMP).
- audio support and drivers.
- runs Doom and Quake.
- has an Internet Relay Chat (IRC) client.
- has a Mail client with support for POP3 and SMTP.
- has a custom web browser.
Hardware
- Graphics: BGA for now.
- Input devices: PS/2 mouse and keyboard.
- PCI , VGA text mode, APIC .
- Storage devices: AHCI and IDE.
- Ethernet cards: Intel PRO/1000 (82540EM/82545EM) and AMD PCNet (Am79C970A/Am79C973).
Boots and runs on bare-metal and VirtualBox , QEMU or VMware .
Ports
- Binutils 2.30
- GCC 6.50
- JPEG 9d
- FreeType 2.10.4
- libpng 1.6.37
- Modest
- JSON parser 1.1.0
- OpenLibm 0.7.4
- libogg 1.3.4
- libvorbis 1.3.7
- libtheora 1.1.1
- lame 3.100
- SQLite 3.34.1
- nghttp2 1.43.0
- curl 7.75.0
Applications
- Coreutils written from scratch.
- Text file editor.
- Code editor with syntax highlighting.
- Internet Relay Chat client.
- Painter, painting application.
- SysInfo, reporting various system information.
- Mail client.
- Terminal.
- Calculator.
- Font viewer.
- Image viewer with support for PNG and JPEG.
- Todo and contacts.
Games
- 2048
- Mines
- Tetris
- Breakout
- Doom
- Space Invaders
- Pacman
- Quake
- Memory
Components
Akimitsu
Akimitsu 昭光 is the GUI compositor and window manager.
Hosh
HoSH is the simple POSIX-compatible Hoshi shell.
Keiko
Keiko 恵子 is the network manager.
Masashi
Masashi 雅志 is the bootloader.