{"id":13477780,"url":"https://github.com/maestro-os/maestro","last_synced_at":"2025-03-27T06:30:51.517Z","repository":{"id":37265826,"uuid":"317027600","full_name":"maestro-os/maestro","owner":"maestro-os","description":"Unix-like kernel written in Rust","archived":false,"fork":false,"pushed_at":"2024-05-31T20:46:43.000Z","size":5892,"stargazers_count":2819,"open_issues_count":15,"forks_count":92,"subscribers_count":23,"default_branch":"master","last_synced_at":"2024-06-06T23:10:22.480Z","etag":null,"topics":["kernel","rust","unix"],"latest_commit_sha":null,"homepage":"https://blog.lenot.re","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maestro-os.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-29T19:32:39.000Z","updated_at":"2024-06-06T23:10:25.484Z","dependencies_parsed_at":"2023-11-10T19:23:23.532Z","dependency_job_id":"7cb8cd7d-b028-43f6-85d9-f4f9738ffeba","html_url":"https://github.com/maestro-os/maestro","commit_stats":null,"previous_names":["maestro-os/maestro"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maestro-os%2Fmaestro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maestro-os%2Fmaestro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maestro-os%2Fmaestro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maestro-os%2Fmaestro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maestro-os","download_url":"https://codeload.github.com/maestro-os/maestro/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245797254,"owners_count":20673813,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kernel","rust","unix"],"created_at":"2024-07-31T16:01:47.473Z","updated_at":"2025-03-27T06:30:50.634Z","avatar_url":"https://github.com/maestro-os.png","language":"Rust","funding_links":[],"categories":["Rust","Active","Open Source Operating Systems","operating-system"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/maestro-os/maestro-lnf/master/logo-light.svg\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/maestro-os/maestro-lnf/master/logo.svg\" alt=\"logo\" width=\"50%\" /\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n[![AGPL-3.0 license](https://img.shields.io/badge/license-AGPL--3.0-blue.svg?style=for-the-badge\u0026logo=book)](./COPYING)\n![Version](https://img.shields.io/badge/dynamic/toml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmaestro-os%2Fmaestro%2Fmaster%2Fkernel%2FCargo.toml\u0026query=%24.package.version\u0026style=for-the-badge\u0026label=version)\n![Rust toolchain](https://img.shields.io/badge/dynamic/toml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmaestro-os%2Fmaestro%2Fmaster%2Frust-toolchain.toml\u0026query=%24.toolchain.channel\u0026style=for-the-badge\u0026logo=rust\u0026label=rust%20toolchain\u0026color=%23444)\n![Continuous integration](https://img.shields.io/github/actions/workflow/status/maestro-os/maestro/check.yml?style=for-the-badge\u0026logo=github)\n![Stars](https://img.shields.io/github/stars/maestro-os/maestro?style=for-the-badge\u0026color=yellow)\n[![Discord](https://img.shields.io/discord/971452040821760080?style=for-the-badge\u0026logo=discord\u0026color=%235865f2)](https://discord.gg/4JMBN3YPAk)\n\n\n\n# About\n\nMaestro is a lightweight Unix-like kernel written in Rust.\n\nThe goal is to provide a lightweight operating system able to use the safety features of the Rust language to be reliable.\n\n\u003e This project is still in early stage development, thus it is highly unstable and misses a lot of features. **Do not use it in production!**\n\nTo stay updated with the project, follow the [blog](https://blog.lenot.re)!\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://blog.lenot.re/assets/article/neofetch.png\" alt=\"neofetch\" width=\"100%\" /\u003e\n\u003c/p\u003e\n\n[Neofetch](https://github.com/dylanaraps/neofetch) and bash running on the OS.\n\n\n\n# Features\n\nThe following features are currently implemented (non-exhaustive):\n- Terminal with [VGA text mode](https://en.wikipedia.org/wiki/VGA_text_mode) and [PS/2](https://en.wikipedia.org/wiki/PS/2_port) keyboard (with forward compatibility with USB handled by the motherboard's firmware)\n    - Partial support of [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code)\n- Memory allocation/virtual memory\n    - [Buddy allocator](https://en.wikipedia.org/wiki/Buddy_memory_allocation)\n    - Internal memory allocator, with similarities with **dlmalloc**'s implementation, working on top of the buddy allocator\n- Processes and [scheduler](https://en.wikipedia.org/wiki/Scheduling_(computing)) ([round-robin](https://en.wikipedia.org/wiki/Round-robin_scheduling))\n    - POSIX signals\n- [PCI](https://en.wikipedia.org/wiki/Peripheral_Component_Interconnect) devices enumeration\n- Files:\n    - Mountpoints\n    - [IDE/PATA](https://en.wikipedia.org/wiki/Parallel_ATA) driver\n    - Filesystem ([ext2](https://en.wikipedia.org/wiki/Extended_file_system) only for now)\n    - Disk partitions ([MBR](https://en.wikipedia.org/wiki/Master_boot_record) and [GPT](https://en.wikipedia.org/wiki/GUID_Partition_Table))\n    - Virtual filesystems (`/tmp` and `/proc`)\n    - initramfs\n- Time/Clock ([RTC](https://en.wikipedia.org/wiki/Real-time_clock))\n- Linux system calls (roughly 30% are currently implemented)\n- Kernel modules\n- [ELF](https://en.wikipedia.org/wiki/Executable_and_Linkable_Format) programs\n\n\n\n# Quickstart\n\nThis repository is not a full operating system in itself but only the kernel.\n\nYou can either:\n- Use the [installer](https://github.com/maestro-os/maestro-install) to build a full operating system from an ISO file\n- Build the OS by hand. For this, you can check the kernel's book\n\nThe OS can then be run by a virtual machine such a **QEMU** or **VirtualBox**, or on a physical machine.\n\n\n\n## Build\n\nTo build and/or run the OS, `cd` into the kernel's crate:\n\n```sh\ncd kernel/\n```\n\nThen follow the instructions in [README.md](kernel/README.md)\n\n\n\n## Documentation\n\nThe kernel's book contains general information on how to use the kernel.\n\nThe book can be built using *mdbook*, with the command:\n\n```sh\nmdbook build doc/\n```\n\nThen, it can be accessed at `doc/book/index.html`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaestro-os%2Fmaestro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaestro-os%2Fmaestro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaestro-os%2Fmaestro/lists"}