{"id":21301302,"url":"https://github.com/sajalkmr/endlos","last_synced_at":"2025-06-16T20:32:47.617Z","repository":{"id":233016391,"uuid":"785791532","full_name":"sajalkmr/EndlOS","owner":"sajalkmr","description":"EndlOS - A simple GUI OS","archived":false,"fork":false,"pushed_at":"2024-10-30T19:08:53.000Z","size":269,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-30T20:17:20.277Z","etag":null,"topics":["operating-system","os"],"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/sajalkmr.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":"2024-04-12T16:23:43.000Z","updated_at":"2024-10-30T19:09:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"cc3f76d3-e42e-4de1-afea-8d652353046d","html_url":"https://github.com/sajalkmr/EndlOS","commit_stats":null,"previous_names":["sajalkmr/gui-os","sajalkmr/endlos"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sajalkmr/EndlOS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sajalkmr%2FEndlOS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sajalkmr%2FEndlOS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sajalkmr%2FEndlOS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sajalkmr%2FEndlOS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sajalkmr","download_url":"https://codeload.github.com/sajalkmr/EndlOS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sajalkmr%2FEndlOS/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260232830,"owners_count":22978628,"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":["operating-system","os"],"created_at":"2024-11-21T15:44:59.342Z","updated_at":"2025-06-16T20:32:47.572Z","avatar_url":"https://github.com/sajalkmr.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EndlOS - A Simple Operating System from Scratch\n\nEndlOS is a minimalist operating system written in C and Assembly that implements basic OS functionality including graphics, window management, input handling, and task scheduling.\n\n## Features\n\n- **Custom Bootloader**: Written in Assembly to initialize the system and switch to protected mode.\n- **Graphics System**:\n  - Basic pixel drawing and shape rendering.\n  - Custom font rendering.\n  - Double buffering for smooth graphics.\n- **Window Management**:\n  - Movable windows.\n  - Window controls (close button).\n  - Taskbar.\n- **Input Handling**:\n  - Mouse support with a custom cursor.\n  - Keyboard input.\n  - Event system.\n- **Task Management**:\n  - Simple task scheduler.\n  - Priority-based execution.\n  - Multiple concurrent tasks.\n\n## Prerequisites\n\nTo build and run EndlOS, you'll need:\n- NASM (Netwide Assembler)\n- GCC (with 32-bit support)\n- LD (GNU Linker)\n- QEMU (for emulation)\n- Make\n\n### Ubuntu/Debian Setup\n\n```\nsudo apt-get update\nsudo apt-get install nasm gcc-multilib qemu-system-x86 make\n```\n\n\n### Windows Setup\n\n- Install NASM\n- Install MinGW (ensure you get the 32-bit version)\n- Install QEMU\n- Add all executables to your system PATH\n\n### Building\n\n- The project uses a simple Makefile for building. The build process:\n- Assembles the bootloader\n- Compiles the kernel\n- Links everything together\n- Creates the final disk image\n\n```\nall: bootloader\n\nbootloader:\n\tnasm boot/boot.asm -f bin -o boot/bin/boot.bin\n\tnasm boot/kernel_entry.asm -f elf -o boot/bin/kernel_entry.bin\n\t\n\tgcc -m32 -ffreestanding -c boot/final.c -o boot/bin/kernel.o\n\tld -m elf_i386 -o boot/bin/kernel.img -Ttext 0x1000 boot/bin/kernel_entry.bin boot/bin/kernel.o\n\n\tobjcopy -O binary -j .text boot/bin/kernel.img boot/bin/kernel.bin\n\tcat boot/bin/boot.bin boot/bin/kernel.bin \u003e os.img\n```\n\n\n### To build:\n\n```\nmake\n```\n\n### Running\n\n- To run in QEMU\n\n```\nmake run\n```\n\n### Project Structure\n```\nboot/\n  ├── boot.asm             # Bootloader implementation\n  ├── kernel_entry.asm     # Kernel entry point\n  ├── main.c               # Main kernel code\n  ├── graphics.c           # Graphics implementation\n  ├── input.c              # Input handling\n  ├── task.c               # Task scheduler\n  ├── graphics_elements.c   # UI elements\n  ├── font.c               # Font definitions\n  └── graphics.h           # Graphics declarations\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsajalkmr%2Fendlos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsajalkmr%2Fendlos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsajalkmr%2Fendlos/lists"}