{"id":31537682,"url":"https://github.com/frogtheastronaut/moose-os","last_synced_at":"2025-10-04T08:09:12.648Z","repository":{"id":299520146,"uuid":"1001750670","full_name":"frogtheastronaut/moose-os","owner":"frogtheastronaut","description":"32-Bit OS written in C","archived":false,"fork":false,"pushed_at":"2025-09-29T03:26:50.000Z","size":6265,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-29T05:29:56.734Z","etag":null,"topics":["asm","assembly-language","c","grub2","operating-system","os","osdev","qemu"],"latest_commit_sha":null,"homepage":"","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/frogtheastronaut.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-14T00:21:26.000Z","updated_at":"2025-09-29T03:26:54.000Z","dependencies_parsed_at":"2025-07-17T12:16:23.302Z","dependency_job_id":"a6df85f8-26d9-4190-b94a-21ce4e3f52cd","html_url":"https://github.com/frogtheastronaut/moose-os","commit_stats":null,"previous_names":["frogtheastronaut/simplem","frogtheastronaut/moose-os"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/frogtheastronaut/moose-os","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frogtheastronaut%2Fmoose-os","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frogtheastronaut%2Fmoose-os/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frogtheastronaut%2Fmoose-os/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frogtheastronaut%2Fmoose-os/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/frogtheastronaut","download_url":"https://codeload.github.com/frogtheastronaut/moose-os/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frogtheastronaut%2Fmoose-os/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278283509,"owners_count":25961311,"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-04T02:00:05.491Z","response_time":63,"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":["asm","assembly-language","c","grub2","operating-system","os","osdev","qemu"],"created_at":"2025-10-04T08:09:10.004Z","updated_at":"2025-10-04T08:09:12.642Z","avatar_url":"https://github.com/frogtheastronaut.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\u003cimg src=\"./resources/moose-logo.png\"/\u003e\u003c/h1\u003e\n\n![GitHub License](https://img.shields.io/github/license/frogtheastronaut/moose-os)  ![GitHub last commit (branch)](https://img.shields.io/github/last-commit/frogtheastronaut/moose-os/main) ![Build Status](https://github.com/frogtheastronaut/moose-os/actions/workflows/build.yml/badge.svg)\n\nMOOSE is a 80s-style operating system. It can run on QEMU, Bochs, as well as real machines.\n\n## Getting Started\n\nThese instructions assume you are running MacOS with Homebrew installed. Feel free to adjust these commands so they can work on your Operating System. \nThe Makefile will automatically adjust if you are running on Linux. Users on Linux\nonly need to install `nasm`, `xorriso` and `mtools`.\n\n### Supported Virtual Machines\nMost, if not all, virtual machines should work but we currently recommend *QEMU*. We\nalso support *Bochs*.\n\n### Quick Start\n\nRunning this OS is relatively easy. Just install QEMU\n\n```shell\nbrew install qemu\n```\nthen run\n\n```shell\ncd moose-os\nmake run\n```\n\nAnd enjoy!\n\n### Prerequisites\n\nPlease install Homebrew, then install the following dependencies.\n\nFirst, tap NativeOS' i386 elf toolchain and install it. This is used to link and compile the project.\n\n```shell\nbrew tap nativeos/i386-elf-toolchain\nbrew install nativeos/i386-elf-toolchain/i386-elf-binutils\nbrew install nativeos/i386-elf-toolchain/i386-elf-gcc\n```\n\nNext, install QEMU and NASM. QEMU is used to test the operating system in a virtual environment, and NASM is used to compile ASM files.\n\n```shell\nbrew install qemu nasm\n```\n\nFinally, install GRUB. We use GRUB to make the ISO.\n\n```shell\nbrew install i686-elf-grub\n```\n\n### Building\n#### QEMU\n\nFirst, clone the repository.\n\n```shell\ngit clone https://github.com/frogtheastronaut/moose-os.git\ncd moose-os\n```\n\nThen, just type\n\n```shell\nmake\n```\n\nAnd it should install and run QEMU. It also tells you if it can't find any dependancies.\n\n#### Real PC\nThis OS was tested on a 2009 HP PC equipped with VGA graphics and PS/2 input devices. While not all features have been exhaustively verified, a large majority function as intended.\n\nBalenaEtcher was used to write the ISO to a USB, which boots and functions like a normal operating system.\n\n## Features\nHere is a list of features currently implemented\nin MooseOS. There will be more in the future.\n\n#### VGA Graphics\n320x200 256-colour graphics mode\n\n#### Desktop Interface\nDock-based application launcher\n\n#### Keyboard and Mouse Support\nSupports PS/2 keyboard and mouse interrupts, and also\ndisplays mouse on screen\n\n#### IDT\nFull IDT with 32 exception handlers\n\n#### Applications\nApplications include: \n- terminal emulator (capable of some commands)\n- a text editor\n- file explorer.\n\n#### Audio System\nHertz-based tone generation through the PC speaker.\n\n#### ATA Disk I/O\nSupports writing to a .img file through ATA read/write\noperations.\n\n#### Real-time clock\nIt syncs the time with the RTC at first, and then\nuses the Programmable Interval timer to update the time.\n\n#### ELF Program support\nCan load, parse and validate ELF32 executables.\n\n#### Memory Management\nCustom heap allocator (`kmalloc`, `kfree`, etc) and \n4KBs of virtual memory with paging.\n\n#### Custom filesystem\nCustom filesystem with custom signature that you can\nwrite to a .img file.\n\n#### Kernel Panic system\nCrash and reporting once an interrupt is triggered.\n\n#### QEMU/Bochs Integration\nCurrently guaranteed to work on QEMU. Most, if not all\nfeatures work on Bochs though Bochs is pickier with errors. It also supports QEMU debug logging.\n\n## Built With\n\n- [Make](https://www.gnu.org/software/make/) - Runs Makefiles.\n- [Homebrew](https://brew.sh/) - Install Dependencies\n- [GRUB](https://www.gnu.org/software/grub/) - Building ISO files.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrogtheastronaut%2Fmoose-os","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrogtheastronaut%2Fmoose-os","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrogtheastronaut%2Fmoose-os/lists"}