{"id":26398604,"url":"https://github.com/h5law/norman","last_synced_at":"2025-07-07T06:38:32.920Z","repository":{"id":270433345,"uuid":"908377454","full_name":"h5law/norman","owner":"h5law","description":"A pure zero-dependency libc implementation with an expanded stdlib with useful data-structures and functionality atop the standard. Used to build and power the rollo kernel and later operating system all built from scratch.","archived":false,"fork":false,"pushed_at":"2025-06-21T18:58:23.000Z","size":275,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-21T19:27:00.864Z","etag":null,"topics":["bootloader","c","data-structures-and-algorithms","kernel","libc","operating-system","os","standard-library","zero-dependency"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"zlib","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/h5law.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}},"created_at":"2024-12-25T23:09:49.000Z","updated_at":"2025-06-21T19:19:10.000Z","dependencies_parsed_at":"2024-12-31T06:22:37.223Z","dependency_job_id":"ba8e900d-d870-43ec-8489-69f6eecdb5cb","html_url":"https://github.com/h5law/norman","commit_stats":null,"previous_names":["h5law/norman"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/h5law/norman","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h5law%2Fnorman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h5law%2Fnorman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h5law%2Fnorman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h5law%2Fnorman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/h5law","download_url":"https://codeload.github.com/h5law/norman/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h5law%2Fnorman/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264029622,"owners_count":23546505,"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":["bootloader","c","data-structures-and-algorithms","kernel","libc","operating-system","os","standard-library","zero-dependency"],"created_at":"2025-03-17T12:31:51.342Z","updated_at":"2025-07-07T06:38:32.912Z","avatar_url":"https://github.com/h5law.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# norman + rollo\n#### WIP - VERY EARLY DEVELOPMENT\n## A `libc` implementation powering a from scratch `kernel` for a from scratch `OS`\n\n\u003e The goal in this project is to write every single line of code myself,\n\u003e no external libraries, no system headers, or compiler builtins. A fully\n\u003e freestanding Operating System, Kernel, Bootloader and Libc.\n\n`norman` is a multi-faceted project focused around building out from scratch a\nbootloader, kernel, operating system and a `libc` implementation. In fact it is\nthe `libc` implementation that will power the rest of the components such as\nthe kernel who will in turn provide needed interfaces for it in return.\n\n`rollo` is the name of the fledgling kernel and is rather new in development\nwith only serial IO through basic UART peripherals being supported currently.\nWhile the `libc` implementation supports in theory `aarch64`, `arm` and\n`x86_64` the kernel currently only supports `aarch64` architectures due to its\nbootloader.\n\nBeing implemented fully from scratch is not easy and as such the work on the\n`crt` or C Runtime/CSU will be postponed on the `libc` side until the kernel\nis futher along read to load manage and execute binaries when the task will be\nmuch clearer.\n\nBy targeting `aarch64` and `arm` predominantly, as apposed to `x86/x86_64`\nthere is unfortunately not such a wide abundance of resources available to pull\nfrom but for this project I have found the  FreeBSD source tree to be welcoming\nand very easy to parse, along with numerous entries from the ARM specifications.\n\n**NOTE**: This `libc`, `bootloader` and `kernel` are far from pre-alpha and\nshould not be used outside of testing and playing around with the code. It is\na hobby project of mine to develop all things from scratch using only my code\nso until I am further along in my vision I don't expect anyone to be attempting\nto use this software.\n\nhttps://github.com/user-attachments/assets/85466bff-a87e-4cc2-a2a9-ee30e333802e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh5law%2Fnorman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fh5law%2Fnorman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh5law%2Fnorman/lists"}