{"id":49587489,"url":"https://github.com/rishitv26/rishios","last_synced_at":"2026-05-03T23:05:17.896Z","repository":{"id":65375138,"uuid":"587105039","full_name":"rishitv26/RishiOS","owner":"rishitv26","description":"an operating system made from scratch.","archived":false,"fork":false,"pushed_at":"2024-03-17T19:25:17.000Z","size":16955,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-03-17T20:36:28.065Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rishitv26.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-01-10T00:57:58.000Z","updated_at":"2023-03-03T15:08:29.000Z","dependencies_parsed_at":"2024-03-17T20:32:26.723Z","dependency_job_id":null,"html_url":"https://github.com/rishitv26/RishiOS","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/rishitv26/RishiOS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rishitv26%2FRishiOS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rishitv26%2FRishiOS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rishitv26%2FRishiOS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rishitv26%2FRishiOS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rishitv26","download_url":"https://codeload.github.com/rishitv26/RishiOS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rishitv26%2FRishiOS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32587829,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"ssl_error","status_checked_at":"2026-05-03T22:09:10.534Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"2026-05-03T23:05:16.771Z","updated_at":"2026-05-03T23:05:17.889Z","avatar_url":"https://github.com/rishitv26.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RishiOS\n\nRishiOS is an x86-64 operating system written from scratch in C and x86 Assembly. It includes a custom bootloader and kernel, and is designed to run in an emulated environment.\nWhy? I was awestruck with how computers with silicon transistors are able to fire in such a way that we can run elegant software on them. In order to fully learn to appreciate all Unix-based devices, I decided to build an OS of my own, with a simple command-line retro feel to it.\n\n## System Requirements\n\nThe OS targets the following hardware configuration:\n\n- x86-64 architecture\n- 1G page support (`pdpe1gb`)\n- xAPIC\n- SSE2\n- PS/2 keyboard\n- ATA disk (IDE interface)\n- No hard disk required at runtime, runs entirely in RAM\n\n## Project Structure\n\n| Directory | Description |\n|---|---|\n| `bootloader/` | Stage 1/2 bootloader written in x86 Assembly |\n| `kernel/` | Kernel source in C and Assembly |\n| `user/` | User-space programs |\n| `scripts/` | Build and run scripts |\n| `bin/` | Compiled binaries |\n| `boot.img` | Bootable disk image (stable version) |\n| `os.img` | Full OS disk image (FAT16 in-progress) |\n| `bochsrc.bxrc` | Bochs emulator configuration for FAT16 version |\n| `old.bxrc` | Bochs emulator configuration for stable version |\n\n## Dependencies\n\nBuilding from source requires:\n\n- `nasm`\n- `x86_64-elf-gcc` (cross-compiler, do **NOT** use the system `gcc`)\n- `make`\n\nRunning the OS requires one of:\n\n- **QEMU** (recommended, works on Linux and macOS)\n- **Bochs 2.7** (Windows, using `bochsrc.bxrc`)\n\n## Setup\n\n### Pre-built Image\n\nIf you would prefer a pre-built image, that is provided to you in releases. For contribution, however, it is necessary to build the system from a cross-compiler (x86_64-elf-gcc`, in this case).\n\n### Linux\n\nInstall dependencies:\n\n```bash\nsudo apt install nasm gcc-x86-64-linux-gnu qemu-system-x86\n```\n\nBuild and run:\n\n```bash\nbash scripts/compile_run.sh\n```\n\n### macOS\n\nInstall dependencies via Homebrew:\n\n```bash\nbrew install nasm x86_64-elf-gcc qemu\n```\n\nBuild:\n\n```bash\nbash scripts/compile_run.sh\n```\n\u003e `compile_run.sh` may give errors depending on the version that the script targeted. If all else fails, one can use the image file from releases.\n\nRun:\n\n```bash\nqemu-system-x86_64 \\\n  -m 1G \\\n  -smp 1 \\\n  -cpu pentium3,+lm,+sse2,+apic,+pdpe1gb \\\n  -drive file=boot.img,format=raw,if=ide,media=disk \\\n  -machine type=pc-i440fx-9.2\n```\n\n\u003e Note: `-enable-kvm` and `-mem-path /dev/hugepages` are Linux-only flags and must be omitted on macOS.\n\n### Windows\n\nInstall [Bochs 2.7](https://bochs.sourceforge.io/) and open `bochsrc.bxrc` from the repo root, or use WSL (Debian) for building combined with Bochs on the Windows side:\n\n```bat\nscripts\\windowsrun.bat\n```\n\nRequires WSL with Debian, NASM, and `x86_64-elf-gcc` installed inside WSL.\n\n## Results\n\nHere is how RishiOS currently looks like from the QEMU emulator:\n\nhttps://github.com/user-attachments/assets/eab2a865-72d5-4514-ad51-c73e30dd092b\n\n\u003e This is from a MacOS system\n\n## Suggestions for me?\nI am new to the world of OS development, and would love any suggestions for better code, or just tips in general :)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frishitv26%2Frishios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frishitv26%2Frishios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frishitv26%2Frishios/lists"}