{"id":47422450,"url":"https://github.com/russor/crazierl","last_synced_at":"2026-04-04T22:01:13.507Z","repository":{"id":218141794,"uuid":"208165141","full_name":"russor/crazierl","owner":"russor","description":"An Erlang Operating System for x86","archived":false,"fork":false,"pushed_at":"2026-03-11T16:42:23.000Z","size":1276,"stargazers_count":23,"open_issues_count":1,"forks_count":2,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-03-11T21:57:10.946Z","etag":null,"topics":["crazy","erlang","operating-system"],"latest_commit_sha":null,"homepage":"https://crazierl.org/","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/russor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2019-09-12T23:48:40.000Z","updated_at":"2026-03-11T16:42:27.000Z","dependencies_parsed_at":"2024-01-28T00:55:45.189Z","dependency_job_id":"e4c1eb14-8cd0-434e-902e-cf78dbfd223d","html_url":"https://github.com/russor/crazierl","commit_stats":null,"previous_names":["russor/crazierl"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/russor/crazierl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/russor%2Fcrazierl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/russor%2Fcrazierl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/russor%2Fcrazierl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/russor%2Fcrazierl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/russor","download_url":"https://codeload.github.com/russor/crazierl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/russor%2Fcrazierl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31416323,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T20:09:54.854Z","status":"ssl_error","status_checked_at":"2026-04-04T20:09:44.350Z","response_time":60,"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":["crazy","erlang","operating-system"],"created_at":"2026-03-21T17:00:28.980Z","updated_at":"2026-04-04T22:01:13.499Z","avatar_url":"https://github.com/russor.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"# [Crazierl](https://crazierl.org)\n\n**Crazierl** is an Erlang operating system.\n\n**Erlang** is a programming language and runtime system for building massively scalable soft real-time systems with requirements on high availability.\n\n[Learn more about Erlang and OTP](http://erlang.org/doc/system_architecture_intro/sys_arch_intro.html).\n\n## What does it do\n\n[See the demo](https://crazierl.org/demo.html) Demo includes a simple\nnetworked chat application.\n\nCrazierl is just enough of an OS to run BEAM, the Erlang/OTP VM for x86 PCs\n(and virtual machines). The console is the Erlang shell. Most drivers will\nbe written in Erlang, and can be hot loaded.\n\nDrivers are present for text mode vga, pc keyboard, pc com port, virtio-net,\nand rtl_8168.\n\nerlang-tcpip enables a basic tcp-ip stack, and there is an example dhcp\nclient, ntp client, and simple http server.\n\nDist works (milestone 2), with -proto_dist gen_tcp, a custom epmd, and a little help here\nand there with cookies and things.\n\n## Where does it run\n\nRuns on qemu, v86, and some real hardware. Needs a multiboot loader (tested\non the built in multiboot loader for qemu and v86, as well as ipxe and\ngrub). ACPI required, CPU support for SSE is required. The TSC is treated as\ninvariant, but it's not a fatal error, as many VMs don't support it. SMP\nworks (milestone 1), but is untested at large core counts; over 256 cores is definitely\nnot going to work.\n\n## How does it work\n\nCrazierl provides a (roughly) FreeBSD compatible syscall interface, and can\nload and run FreeBSD executables from an initrd filesystem.  The Makefile\nwill prepare an initrd that includes many files from the pkg distribution of\nErlang, the FreeBSD rtld, and object files from this source, including some\nwhich override files in the Erlang distribution.\n\n## How to build\n\nShould build with gmake on FreeBSD matching the version returned from\nsyscall\\_\\_\\_sysctl in kernel_src/kernel.c This will use Erlang/OTP from pkg,\nbut you can change OPTDIR in Makefile to use a different build. Using a\nchecked build can be very helpful for finding kernel bugs that manifest in\nreturning improper results to BEAM. Crazierl is (currently) 32-bit, but can\nbuild on 32-bit or 64-bit FreeBSD. Send me email if you have trouble\nbuilding.\n\n## What is it based on\n\nErlang/OTP provides for the userland and was the inspiration for the\nproject.\n\nFreeBSD provides many things: the syscall interface, libraries and\nutilities, rtld: the dynamic loader.\n\nBearSSL, from FreeBSD contrib, provides the blocks to build kernel random.\n\nErlang-Tcpip provides the tcp-ip stack.\n\nGNU Make builds it all.\n\nInitial structure of the kernel is from\nhttps://wiki.osdev.org/User:Zesterer/Bare_Bones as well as lots of other\nknowledge from the OS Dev wikis and forums; thank you!\n\n## Similar projects\n\n[Ling](https://github.com/cloudozer/ling): ErlangOnXen -- an alternate VM\nfor Erlang targetted to be a Xen guest.\n\n[HydrOS](http://www.erlang-factory.com/euc2017/sam-williams) presentation\navailable; but I didn't find code? Seems to have a focus on a capability\nsecurity model. Presentation includes some additional projects.\n\n## Why\n\nAn excellent question. It seemed like a good idea to explore the possibility\nof Erlang as its own system.\n\n## Who did this\n\n[Richard Russo](mailto:crazierl@ruka.org) and friends.\n\n## License\n\nCopyright \\[2019-2024\\]\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n[http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frussor%2Fcrazierl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frussor%2Fcrazierl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frussor%2Fcrazierl/lists"}