{"id":25689007,"url":"https://github.com/embeddedos/larvaos","last_synced_at":"2026-06-13T02:06:53.575Z","repository":{"id":85916967,"uuid":"532441744","full_name":"EmbeddedOS/LarvaOS","owner":"EmbeddedOS","description":"A multitasking operating system and kernel with an interactive shell.","archived":false,"fork":false,"pushed_at":"2023-03-08T15:34:14.000Z","size":323,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-24T21:17:23.944Z","etag":null,"topics":["kernel","osdev","x86"],"latest_commit_sha":null,"homepage":"","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/EmbeddedOS.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}},"created_at":"2022-09-04T04:54:17.000Z","updated_at":"2024-07-22T04:47:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"b90aa033-99c2-444c-96fa-eefc3b16b2b0","html_url":"https://github.com/EmbeddedOS/LarvaOS","commit_stats":null,"previous_names":["embeddedos/larvaos"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/EmbeddedOS/LarvaOS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmbeddedOS%2FLarvaOS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmbeddedOS%2FLarvaOS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmbeddedOS%2FLarvaOS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmbeddedOS%2FLarvaOS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EmbeddedOS","download_url":"https://codeload.github.com/EmbeddedOS/LarvaOS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmbeddedOS%2FLarvaOS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34269375,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"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":["kernel","osdev","x86"],"created_at":"2025-02-24T21:17:26.471Z","updated_at":"2026-06-13T02:06:53.555Z","avatar_url":"https://github.com/EmbeddedOS.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LarvaOS\n\nA multitasking operating system and kernel with an interactive shell.\n\n## Using bless command to see our kernel image\n\nbless - graphical hexadecimal Gtk# editor.\nEdit  the  FILEs  as a `sequence of bytes`, allowing read/write, search, pattern finding,  efficient  query-replace,  multi-tabbing,  customized data-views, plugins, and many other features. Using bless command:\n\n```bash\nbless ./bin/LavaOS.img\n```\n\n## Run your OS using qemu\n\n```bash\nqemu-system-x86_64 -hda ./bin/LavaOS.img\n```\n\n## Using cross compiler\n\n```bash\n./bin/cross/bin/$TARGET-gcc --version   # For compile C files.\n./bin/cross/bin/$TARGET-g++ --version   # For compile C++ files.\n./bin/cross/bin/$TARGET-ld              # Linker.\n```\n\n## Assemble a assembly file with nasm\n\n```bash\nnasm -f bin file_name.asm -o file_name.bin\n```\n\nTo disassemble it, simply using `ndisasm` command:\n\n```bash\nndisasm boot.binemu-system-x86_64 -hda file_name.bin -S -gdb stdio\n```\n\n## Debug my kernel image with gdb\n\nNOTE: We should use kernel.elf (kernel image) to add symbol instead of using disk image.\n\nFirst, entering to gdb mode:\n\n```bash\ngdb\n```\n\nAdding traceable symbol file:\n\n```bash\nadd-symbol-file /bin/kernel.o 0x0100000\n```\n\nSet break point in symbol:\n\n```bash\nbreak kernel_entry_point\n```\n\nStart debugging with remote target:\n\n```bash\ntarget remote | qemu-system-x86_64 -hda ./bin/LavaOS.img -S -gdb stdio\n```\n\nSwitching to assembly:\n\n```bash\nlayout asm\n```\n\nAnd step by step.\nprints out registers in both raw format (hex) and natural format in gdb:\n\n```bash\ninfo registers\n```\n\n## debug variable\n\n```bash\ngdb\n```\n\nIn gdb:\n\n```bash\nadd-symbol-file ./src/kernel/core/kernel.o 0x0100000\ntarget remote | qemu-system-x86_64 -hda ./bin/LavaOS.img -S -gdb stdio\n# Set break point in file-line\nbreak kernel.cc:21\n# continue\nc\n# print value of ptr variable\nprint ptr\n```\n\n## mount the disk image to your host\n\n```bash\nsudo mount -t vfat ./bin/LavaOS.img /mnt/d/\n# do some thing ...\nsudo umount /mnt/d/\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fembeddedos%2Flarvaos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fembeddedos%2Flarvaos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fembeddedos%2Flarvaos/lists"}