{"id":15315222,"url":"https://github.com/AjayMT/mako","last_synced_at":"2025-10-09T01:30:26.968Z","repository":{"id":39570548,"uuid":"185292840","full_name":"AjayMT/mako","owner":"AjayMT","description":"The Mako Operating System","archived":false,"fork":false,"pushed_at":"2025-02-24T20:05:58.000Z","size":19333,"stargazers_count":63,"open_issues_count":0,"forks_count":5,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-02-24T21:22:10.089Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://ajaymt.github.io/mako","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AjayMT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2019-05-07T00:47:10.000Z","updated_at":"2025-02-24T20:06:04.000Z","dependencies_parsed_at":"2024-11-11T21:18:04.426Z","dependency_job_id":"f81e02ea-5689-44df-9479-8e1aed8d25ff","html_url":"https://github.com/AjayMT/mako","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/AjayMT/mako","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AjayMT%2Fmako","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AjayMT%2Fmako/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AjayMT%2Fmako/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AjayMT%2Fmako/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AjayMT","download_url":"https://codeload.github.com/AjayMT/mako/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AjayMT%2Fmako/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000725,"owners_count":26082895,"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","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-10-01T08:49:54.994Z","updated_at":"2025-10-09T01:30:22.459Z","avatar_url":"https://github.com/AjayMT.png","language":"C","funding_links":[],"categories":["Open Source Operating Systems"],"sub_categories":["Hobby"],"readme":"\n# Mako\nMako is an operating system for 32-bit x86-compatible computers. Among its features are:\n- Linux-compatible ext2 and USTAR filesystems\n- fully virtualized per-process address spaces\n- pipes and signals for inter-process communication\n- cooperative and pre-emptive multitasking -- multiple processes and multiple threads per process\n- a graphical user interface\n- a (mostly) UNIX-compatible C library\n- a Lua interpreter and a port of DOOM\n- graphical applications for navigating directories, editing files and executing programs\n\n![](http://ajaymt.github.io/mako/res/screenshot.png)\n\nMako is named after the [mako shark](https://marinebio.org/species/shortfin-mako-sharks/isurus-oxyrinchus/), the fastest shark in the sea. The shortfin mako shark is classified as an endangered species by the [IUCN](http://www.iucn.org) -- learn more about shark conservation [here](https://www.sharktrust.org/shark-conservation).\n\n'Mako' is also the name of the fictional source of energy from [Final Fantasy VII](https://finalfantasy.fandom.com/wiki/Final_Fantasy_VII).\n\n## Download\nDownload `mako.iso` and `mako-hda.img` from [here](https://github.com/AjayMT/mako/tree/release).\n\n## Build from source\nThis build process has been tested on macOS and Arch Linux. It *should* work on most Linux-like platforms. If you have trouble building Mako, please reach out to me or raise an issue on this repository.\n\nSteps:\n1. Build or acquire a [cross-compiling GCC toolchain](https://wiki.osdev.org/GCC_Cross-Compiler) that targets the `i386-elf` platform. This is the hardest and most time consuming step -- if you can find precompiled binaries of `i386-elf-gcc` and binutils for your platform, save yourself the effort and use them instead of building GCC from source. If you are building on macOS, use [this](https://github.com/nativeos/homebrew-i386-elf-toolchain) Homebrew tap and skip step 2. After this is complete, you should have `i386-elf` versions of GCC and binutils:\n```sh\n$ i386-elf-gcc --version\ni386-elf-gcc (GCC) 9.2.0\nCopyright (C) 2019 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n$ i386-elf-ld --version\nGNU ld (GNU Binutils) 2.31\nCopyright (C) 2018 Free Software Foundation, Inc.\nThis program is free software; you may redistribute it under the terms of\nthe GNU General Public License version 3 or (at your option) a later version.\nThis program has absolutely no warranty.\n```\n2. Install `grub-mkrescue`, which depends on `xorriso` and `mtools` to create bootable ISOs. Most (?) Linux distributions come with `grub-mkrescue` installed. (\u003chttps://www.gnu.org/software/grub/\u003e)\n3. Install [NASM](https://www.nasm.us/).\n4. Clone the Mako repository and run the following commands:\n```sh\n./fetch-deps.sh\nmake user # Ignore warnings\n./gen-hda.sh # Ignore the segfault message\nmake\n```\n5. You should now have the `mako.iso` and `hda.img` disk images!\n\n## Run it\nMako only works on [qemu](https://www.qemu.org/) at the moment.\n\n1. Install qemu.\n2. Download the `mako.iso` and `mako-hda.img` disk images from the link above.\n\n```sh\n# At least 64M of RAM is recommended\nqemu-system-i386 -cdrom mako.iso -m 256M -drive format=raw,file=mako-hda.img\n```\n\n## Roadmap\nTODOs:\n- More+better documentation.\n- QOL improvements.\n- Many small misc. things in the code.\n\nLong term goals:\n- Full POSIX compliant libc.\n- Port a C compiler.\n- Network/audio stack.\n\n## Acknowledgements\nMako makes use of the following libraries and programs:\n- This excellent `printf` implementation by Marco Paland: \u003chttps://github.com/mpaland/printf\u003e\n- LodePNG, the small PNG encoder and decoder: \u003chttps://lodev.org/lodepng/\u003e\n- The [Lua](http://lua.org) programming language\n- This very portable version of DOOM: \u003chttps://github.com/ozkl/doomgeneric\u003e\n- This small C compiler: \u003chttps://github.com/rswier/c4\u003e\n\nI wrote Mako to better understand how operating systems work and learnt a lot of cool stuff in the process. This project would not exist without:\n- the [osdev wiki](https://wiki.osdev.org/) and the friendly people of the #osdev IRC channel\n- [The little book about OS Development](https://littleosbook.github.io/)\n- the very well-documented source code of [ToAruOS](http://github.com/klange/toaruos), [SerenityOS](https://github.com/SerenityOS/serenity) and many other hobby-OS projects.\n\n## License\nAll Mako source is distributed under the terms of the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAjayMT%2Fmako","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAjayMT%2Fmako","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAjayMT%2Fmako/lists"}