{"id":18638038,"url":"https://github.com/baponkar/keblaos","last_synced_at":"2026-01-16T15:37:44.443Z","repository":{"id":243511288,"uuid":"812558928","full_name":"baponkar/KeblaOS","owner":"baponkar","description":"KeblaOS is a simple Operating System based on x86 32 bit and 64 bit architecture and made with C and assembly.","archived":false,"fork":false,"pushed_at":"2026-01-15T06:09:27.000Z","size":321419,"stargazers_count":3,"open_issues_count":6,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-15T12:42:22.543Z","etag":null,"topics":["asm","c","operating-system","os","x86"],"latest_commit_sha":null,"homepage":"https://baponkar.github.io/KeblaOS/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/baponkar.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":"2024-06-09T08:39:33.000Z","updated_at":"2026-01-15T06:05:13.000Z","dependencies_parsed_at":"2024-06-09T14:22:16.719Z","dependency_job_id":"d6964120-8705-4a12-9ddb-00c8eafac9e7","html_url":"https://github.com/baponkar/KeblaOS","commit_stats":null,"previous_names":["baponkar/keblaos"],"tags_count":44,"template":false,"template_full_name":null,"purl":"pkg:github/baponkar/KeblaOS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baponkar%2FKeblaOS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baponkar%2FKeblaOS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baponkar%2FKeblaOS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baponkar%2FKeblaOS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/baponkar","download_url":"https://codeload.github.com/baponkar/KeblaOS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baponkar%2FKeblaOS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28479409,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"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":["asm","c","operating-system","os","x86"],"created_at":"2024-11-07T05:38:51.620Z","updated_at":"2026-01-16T15:37:44.423Z","avatar_url":"https://github.com/baponkar.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![KeblaOS Badge](https://img.shields.io/badge/Kebla-OS-maker?labelColor=red\u0026color=blue)](https://gitlab.com/baponkar/kebla-os)\n[![KeblaOS Badge](https://img.shields.io/badge/version-1.0-maker?labelColor=red\u0026color=blue)](https://github.com/baponkar/KeblaOS/releases)\n\u003cimg src=\"image/KeblaOS.png\" alt=\"Float Left\" alt=\"My Image\" width=\"20\" height=\"20\"\u003e\n\n# KeblaOS\n\n|Subject       | Value         |\n|--------------|---------------|\n|🏷️Version     | `1.1`        |\n|🖥️Architecture| `x86`        |\n|🔢Bit         | `64`         |\n|📅Start Date  | `09.06.2024` |\n|🔄Last Update | `14.09.2025` |\n\n---\n\n![screenshot](screenshot/keblaos_gui_screenshot.png)\n\n## Description:\nThis is a x86 architecture based 64 bit Operating System.\n\n\n\n### KeblaOS Features\n\n| Feature                      | Sub-Features / Notes                                                                 |\n|------------------------------|--------------------------------------------------------------------------------------|\n| ✅ 🚀**Limine Bootloader**  | Getting Various Boot Information, Getting Firmware Information                       |\n| ✅ **ACPI**                  | RSDT, FADT, MADT, MCFG, HPET                                                         |\n| ✅ **CPU Info \u0026 Control**    | CPUID, SMP                                                                           |\n| ✅ **GDT**                   | Multi-core support                                                                   |\n| ✅ **TSS**                   | Multi-core support                                                                   |\n| ✅ ⚡**Interrupts**          | APIC (Multi-core), PIC, ISR, IRQ                                                     |\n| ✅ 🧠**Memory Management**   | Memory Info Parsing, 4-Level Paging, PMM, Kmalloc, VMM, KHEAP                        |\n| ✅ ⏱️**Timers**              | TSC, RTC, PIT, APIC, ⚠️ HPET (Not Using)                                            |\n| ✅ **Multitasking**        | Process, Thread, Scheduler, CPU State Handling, Multi-core Multitasking                |\n| ✅ **Kernel Shell (kshell)** | Calculator, Steam Locomotive Animation                                               |\n| ✅ 📂**Filesystem**          | FAT32 (via FatFs, ⚠️ Issues in implementation), VFS Layer                           |\n| ✅ **System Calls**        | Interrupt-based (Using), MSR-based (Not Using)                                         |\n| ✅ **User Mode Switching** | ELF Loader, Binary Loader, minimal libc,stemcall                                       |\n| ✅ 🔌**Drivers**             | 🎴PCI, AHCI SATA Disk, VGA Framebuffer, I/O Ports, Serial, Keyboard, Speaker, Mouse |\n\n-------------------------------------------------------------------------------------------------------------------------\n\n* ✅ 📦**External Libraries** :\n    1. [Limine-9.2.3](https://codeberg.org/Limine/Limine)\n    2. [FatFs-R0.15b](https://elm-chan.org/fsw/ff/)\n    3. [tiny-regex-c](https://github.com/kokke/tiny-regex-c)\n    4. [uGUI](https://github.com/achimdoebler/UGUI)\n    5. [Nuklear](https://github.com/Immediate-Mode-UI/Nuklear)\n    6. [LvGL](https://github.com/lvgl/lvgl)\n    \n    \n\n\n---\n\n#### Used Tools Version :\n- [x] [Limine Bootloader](https://github.com/limine-bootloader/limine) - 9.2.3\n- [x] [x86_64-elf-gcc](https://wiki.osdev.org/GCC_Cross-Compiler) (GCC) 14.2.0\n- [x] GNU ld (GNU Binutils) 2.43\n- [x] [GNU Make](https://www.gnu.org/software/make/manual/make.html) 4.3\n- [x] [bison](https://www.gnu.org/software/bison/manual/) (GNU Bison) 3.8.2\n- [x] flex 2.6.4\n- [x] [xorriso](https://www.gnu.org/software/xorriso/) 1.5.6\n- [x] NASM version 2.16.01\n- [x] [GNU gdb](https://www.sourceware.org/gdb/documentation/) (Ubuntu 15.0.50.20240403-0ubuntu1) 15.0.50.20240403-git\n- [x] [FatFs](https://elm-chan.org/fsw/ff/00index_e.html) R0.15b Library\n- [x] [QEMU emulator](https://www.qemu.org/) 8.2.2 (Debian 1:8.2.2+ds-0ubuntu1.9)\n- [x] [WSL](https://learn.microsoft.com/en-us/windows/wsl/install) 2.5.10.0\n- [x] [mkfs](https://www.man7.org/linux/man-pages/man8/mkfs.8.html) util-linux 2.39.3\n- [x] [parted](https://www.gnu.org/software/parted/manual/parted.html) (GNU parted) 3.6\n- [x] sync (GNU coreutils) 9.4\n- [x] mount from util-linux 2.39.3 (libmount 2.39.3: selinux, smack, btrfs, verity, namespaces, idmapping, statx, assert, debug)\n\n---\n\n## System Call:\n\n- General System Call:\n\n    1. `int syscall_keyboard_read(uint8_t *buffer, size_t size)`\n    2. `int syscall_print(const char *msg)`\n    3. `int syscall_exit()`\n    4. `int syscall_print_rax()`\n\n    5. `uint64_t syscall_uheap_alloc(size_t size, enum allocation_type type);`\n    6. `uint64_t syscall_uheap_free(void *ptr, size_t size);`\n\n\n- FatFs File Manage: \n\n    7. `int64_t syscall_vfs_mkfs(int fs_type, char *disk);`\n    8. `nt64_t syscall_vfs_init(char *fs_name);`\n    9. `uint64_t syscall_mount(char *path);`\n    10. `uint64_t syscall_open(const char *path, uint64_t flags);`\n    11. `uint64_t syscall_close(void *file);`\n    12. `uint64_t syscall_read(void *file, uint64_t offset, void *buf, uint32_t size);`\n    13. `uint64_t syscall_write(void *file, uint64_t offset, void *buf, uint32_t btw);`\n\n\n    14. `uint64_t syscall_lseek(void *file, uint32_t offs);`\n    15. `uint64_t syscall_unlink(char *path);`\n\n\n- FatFs Directory Manage:\n\n    16. `uint64_t syscall_opendir(const char *path);`\n    17. `uint64_t syscall_closedir(void * dir_ptr);`\n    18. `uint64_t syscall_readdir(void * dir_ptr);`\n    19. `uint64_t syscall_mkdir(void * dir_ptr);`\n    20. `int syscall_list_dir(const char* path);`\n    21. `int syscall_getcwd(void *buf, size_t size);`\n    22. `int syscall_chdir(const char *path);`\n    23. `int syscall_chdrive(const char *path);`\n\n\n- Process Manage:\n\n    24. `void *syscall_create_process(char* process_name);`\n    25. `int syscall_delete_process(void *process);`\n    26. `void *syscall_get_process_from_pid(size_t pid);`\n    27. `void *syscall_get_current_process();`\n\n- Thread Manage:\n\n    28. `void *syscall_create_thread(void* parent, const char* thread_name, void (*function)(void*), void* arg);`\n    29. `void *syscall_delete_thread(void *thread);`\n\n\n- Time Manage:\n\n    30. `time_t syscall_time(time_t *t);`\n    31. `int syscall_clock_gettime(int clk_id, struct timespec *tp);`\n    32. `int syscall_gettimeofday(struct timeval *tv, struct timezone *tz);`\n    33. `clock_t syscall_times(struct tms *buf);`\n    34. `uint64_t syscall_get_uptime(void);`\n\n- VGA:\n    \n    35. `int syscall_set_pixel(int x, int y, uint32_t color);`\n    36. `uint32_t syscall_get_pixel(int x, int y);`\n    37. `int syscall_cls_color();`\n    38. `int syscall_display_image( int x, int y, const uint64_t* image_data, int img_width, int img_height);`\n    39. `int syscall_display_transparent_image( int x, int y, const uint64_t* image_data, int img_width, int img_height);`\n\nBefore building set GCC , LD, OBJDUMP, \n`src` directory is containing source code. `build` directory is containing generated object file, binary file and iso file. `iso_root` is required for building `image.iso` file.\n\nTo build and run by QEmu iso `make -B`.\nTo get Make help by `make help`\n\nDownloaded from [here](https://github.com/baponkar/KeblaOS/releases).\n\n\n---\n\n© 2025 baponkar. All rights reserved except externel library used.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaponkar%2Fkeblaos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbaponkar%2Fkeblaos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaponkar%2Fkeblaos/lists"}