{"id":18767178,"url":"https://github.com/alandoescs/waffleos","last_synced_at":"2025-09-18T13:09:57.186Z","repository":{"id":247839776,"uuid":"826981389","full_name":"AlanDoesCS/WaffleOS","owner":"AlanDoesCS","description":"An open source operating system written in NASM and C, with the goal of demystifying how operating systems work.","archived":false,"fork":false,"pushed_at":"2025-07-15T20:08:11.000Z","size":1207,"stargazers_count":13,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-17T04:06:19.097Z","etag":null,"topics":["c","nasm","osdev","visualization"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlanDoesCS.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}},"created_at":"2024-07-10T19:16:34.000Z","updated_at":"2025-03-31T15:21:59.000Z","dependencies_parsed_at":"2024-07-19T03:21:28.019Z","dependency_job_id":"826060c2-4c04-4c04-9fb7-87f384f8dec7","html_url":"https://github.com/AlanDoesCS/WaffleOS","commit_stats":null,"previous_names":["alandoescs/waffleos"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AlanDoesCS/WaffleOS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanDoesCS%2FWaffleOS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanDoesCS%2FWaffleOS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanDoesCS%2FWaffleOS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanDoesCS%2FWaffleOS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlanDoesCS","download_url":"https://codeload.github.com/AlanDoesCS/WaffleOS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanDoesCS%2FWaffleOS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272013589,"owners_count":24858478,"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-08-25T02:00:12.092Z","response_time":1107,"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":["c","nasm","osdev","visualization"],"created_at":"2024-11-07T19:06:39.185Z","updated_at":"2025-09-18T13:09:52.130Z","avatar_url":"https://github.com/AlanDoesCS.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WaffleOS\nA Unix-like open source operating system written in NASM and C, with the goal of demystifying how operating systems work.\n\n\u003cimg src=\"https://github.com/user-attachments/assets/0553e678-e8b8-4853-ad1e-6e97e162c5fd\" alt=\"drawing\" height=\"200\"/\u003e \u003cimg src=\"https://github.com/user-attachments/assets/be56b9a4-c1fe-4710-b60d-4dc30a516874\" alt=\"CLI\" height=\"200\"/\u003e \u003cimg src=\"https://github.com/user-attachments/assets/cf378052-a6c2-4748-a15d-c7168cb37a6b\" alt=\"GUI\" height=\"200\"/\u003e\n\n![Hack Club arcade 2024 finalist](https://img.shields.io/badge/Hack%20Club%20arcade%202024-showcase%20finalist-gold?logo=https%3A%2F%2Fassets.hackclub.com%2Ficon-rounded.png\u0026logoSize=auto\u0026labelColor=orange)\n![License: GPL](https://img.shields.io/badge/License-GPL-blue.svg)\n[![CodeFactor](https://www.codefactor.io/repository/github/alandoescs/waffleos/badge)](https://www.codefactor.io/repository/github/alandoescs/waffleos)\n![GitHub Issues or Pull Requests](https://img.shields.io/github/issues/AlanDoesCS/WaffleOS)\n![GitHub commit activity](https://img.shields.io/github/commit-activity/t/AlanDoesCS/WaffleOS)\n![GitHub contributors](https://img.shields.io/github/contributors/AlanDoesCS/WaffleOS)\n![GitHub Repo stars](https://img.shields.io/github/stars/AlanDoesCS/WaffleOS)\n![GitHub forks](https://img.shields.io/github/forks/AlanDoesCS/WaffleOS)\n\n---\n# Table of contents\n1) [Current Features](#features)\n2) [Installation Guide](#installation)\n3) [Command List](#commands)\n4) [References](#references)\n\n---\n## Features\n- Bootloader\n    - Boots into 32 bit protected mode, and loads the C kernel\n- Disk driver\n    - A simple ATA PIO mode disk read/write driver\n- CLI\n    - VGA text mode to display information\n- FAT12 Support (WIP)\n- Interrupt descriptor table\n- Memory management\n    - allows memory management with malloc(), calloc() and free()\n- Programmable Interval Timer\n    - allow precise time delays\n- HTTP client (WIP)\n    - RFC 3986 compliant URI parsing\n\n---\n## Installation\n*WaffleOS is currently very early stages, so it may be prone to errors*\n\n### (For users) Virtual Machine (QEMU)\n*This guide requires you to be on a Linux based system, if on Windows, then it is recommended to install the \"Windows Subsystem for Linux\" (WSL)*\n*To install the WSL, simply run the command:* `wsl --install` *and follow the on-screen prompts, before restarting your system.*\n\n1) `sudo apt update`\n2) `sudo apt install qemu-system-i386`\n   - Download the latest OS image from the releases page, or from builds/bin/...\n3) `qemu-system-i386 -drive format=raw,file=PATH/TO/main_floppy.img`\n4) Enjoy your emulated WaffleOS experience! 🎉🎉\n\n### (For developers) Virtual Machine (QEMU)\n*This guide requires you to be on a Linux based system, if on Windows, then it is recommended to install the \"Windows Subsystem for Linux\" (WSL)*\n*To install the WSL, simply run the command:* `wsl --install` *and follow the on-screen prompts, before restarting your system.*\n\n1) First you will need to clone this repository before you can proceed with the installation\n2) https://wiki.osdev.org/GCC_Cross-Compiler\n\n### Bochs\n\nFor linux mint, I recommend to use these configuration flags for bochs:\n```shell\n./configure --enable-smp \\\n              --enable-cpu-level=6 \\\n              --enable-all-optimizations \\\n              --enable-x86-64 \\\n              --enable-pci \\\n              --enable-vbe \\\n              --enable-vmx \\\n              --enable-debugger \\\n              --enable-disasm \\\n              --enable-debugger-gui \\\n              --enable-logging \\\n              --enable-fpu \\\n              --enable-3dnow \\\n              --enable-sb16=dummy \\\n              --enable-cdrom \\\n              --enable-x86-debugger \\\n              --enable-iodebug \\\n              --disable-plugins \\\n              --disable-docbook \\\n              --with-term --with-sdl2\n```\n\n### x86 based device\n\n1) *Guide in progress*\n\n---\n## Commands\n*This list is subject to change*\n\n- `help`\n  - Prints a list of available commands\n- `clear`\n  - Clears the screen\n- `shutdown` (not yet implemented, but will use ACPI)\n  - Shuts down the system\n\n### Fun\n- `hello`\n  - Prints \"Hello, World!\" to the screen\n- `waffle`\n    - Prints \"WaffleOS\" to the screen, along with a waffle in ascii\n- `cowsay \u003carg\u003e`\n  - Prints a cow which says the argument, or \"WaffleOS!\" if no argument is provided\n---\n\n## WIP\nThese features have NOT YET BEEN IMPLEMENTED (hence WIP)\n\n### WIP Commands\n- Filesystem:\n    - `ls`\n    - `cd`\n    - `mkdir`\n    - `mv`\n    - `touch`\n    - `rm`\n    - `cat`\n- Miscellaneous:\n    - `webster`\n- Graphics\n    - `graphics -enable/disable` (enables or disables vbe graphics)\n\n# Dependencies\n- `nasm`\n- `gcc` (i686-elf-gcc)\n- bochs\n- OSLib (included) (Luca Abeni and Gerardo Lamastra, https://oslib.sourceforge.net/)\n  - used for libm\n\n# References\nMany thanks to the following resources for helping me to create WaffleOS, I would not have been able to do it without them:\n```bibtex\n@misc{nanobyte_os,\n  author       = {Tiberiu C.},\n  title        = {Nanobyte OS},\n  year         = {2024},\n  url          = {https://github.com/nanobyte-dev/nanobyte_os},\n  note         = {Accessed: 2025-03-01}\n}\n@misc{osdev,\n  author       = {{OSDev Community}},\n  title        = {OSDev Wiki},\n  year         = {2025},\n  url          = {https://wiki.osdev.org/Main_Page},\n  note         = {Accessed: 2025-03-01}\n}\n@misc{oslib,\n  author       = {Luca Abeni and Gerardo Lamastra},\n  title        = {The OSLib Project},\n  year         = {2000},\n  url          = {https://oslib.sourceforge.net/overview.html},\n  note         = {Accessed: 2025-03-01}\n}\n\n```\n\n## License\n\nThis project is licensed under the terms of the [GNU General Public License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falandoescs%2Fwaffleos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falandoescs%2Fwaffleos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falandoescs%2Fwaffleos/lists"}