{"id":21532204,"url":"https://github.com/modscleo4/dos","last_synced_at":"2025-04-10T00:30:35.234Z","repository":{"id":115746474,"uuid":"264010892","full_name":"modscleo4/dos","owner":"modscleo4","description":"Floppy Disk Operating System","archived":false,"fork":false,"pushed_at":"2024-06-10T15:02:08.000Z","size":721,"stargazers_count":15,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-24T02:13:02.162Z","etag":null,"topics":["assembly","c","grub2","multiboot2","os","osdev"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/modscleo4.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":"2020-05-14T19:50:49.000Z","updated_at":"2025-03-21T12:50:45.000Z","dependencies_parsed_at":"2023-11-30T16:27:23.309Z","dependency_job_id":"6f4f49ae-6258-4b80-8d45-2668309cbe02","html_url":"https://github.com/modscleo4/dos","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modscleo4%2Fdos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modscleo4%2Fdos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modscleo4%2Fdos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modscleo4%2Fdos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/modscleo4","download_url":"https://codeload.github.com/modscleo4/dos/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248134818,"owners_count":21053537,"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":["assembly","c","grub2","multiboot2","os","osdev"],"created_at":"2024-11-24T02:19:07.699Z","updated_at":"2025-04-10T00:30:35.203Z","avatar_url":"https://github.com/modscleo4.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DOS\r\nA Simple x86 Operating System written in C.\r\n\r\n## What's working\r\n### Grub2\r\nThe Kernel is loaded by Grub2. The boot configuration is located in `rootfs/boot/grub/grub.cfg`.\r\n\r\n### Multiboot 2\r\nThe Kernel is loaded by Grub2 using the Multiboot 2 protocol. The Kernel is loaded at `0x100000` and is loaded in 32-bit mode.\r\n\r\n### MBR Parsing\r\nThe Kernel parses the MBR and finds its own partition. It does not support extended partitions. Then it setups the filesystem and mounts it.\r\n\r\n### FAT12/16\r\nThe Kernel supports FAT12 and FAT16. It can read files and directories. The Kernel cannot write to FAT12/16.\r\n\r\n### Ext2\r\nThe Kernel supports Ext2. It can read files and directories. The Kernel cannot write to Ext2.\r\n\r\n### Syscalls\r\nThe Kernel supports syscalls via the `int 0x80` instruction. Currently the following syscalls are supported:\r\n- `sys_write`\r\n- `sys_read`\r\n- `sys_open`\r\n- `sys_close`\r\n- `sys_stat`\r\n- `sys_getpid`\r\n- `sys_fork`\r\n- `sys_execve`\r\n- `sys_exit`\r\n\r\n### ELF parsing\r\nThe Kernel can parse ELF files and execute them. It can also load debug symbols from itself.\r\n\r\n### Kernel Modules\r\nCurrently the Kernel is built as a single binary. In the future it will be split into modules. The Kernel will load the modules from the filesystem.\r\n\r\n### Networking\r\nThe Kernel supports the Intel 82540EM series of network cards. It can send and receive packets. The following protocols are supported:\r\n- ARP\r\n- IPv4\r\n- UDP\r\n- TCP\r\n- DHCP\r\n- DNS\r\n\r\n### Libc\r\nThe Kernel is built on top of a primitive libc. It is located in `kernel/libc`. There's also a `system/libc` which is used by the userspace programs and in the future will generate a shared library.\r\n\r\n## Goals\r\n- [x] Grub2\r\n- [x] Multiboot 2\r\n- [x] MBR Parsing\r\n- [x] FAT12/16\r\n- [x] Ext2\r\n- [x] ISO9660\r\n- [ ] x86_64\r\n- [x] Syscalls\r\n- [x] Multitasking\r\n- [x] Virtual Memory\r\n- [x] ELF parsing\r\n- [] Dynamic Linking\r\n- [x] Kernel Modules\r\n- [x] ACPI\r\n- [ ] ACPICA\r\n- [x] PCI\r\n- [x] ATA\r\n- [x] ATAPI\r\n- [x] Networking\r\n- [ ] Virtual File System\r\n- [ ] Init System\r\n- [ ] Shell\r\n- [x] Libc\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmodscleo4%2Fdos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmodscleo4%2Fdos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmodscleo4%2Fdos/lists"}