{"id":13739965,"url":"https://github.com/Ironclad-Project/Gloire","last_synced_at":"2025-05-08T19:35:22.146Z","repository":{"id":49792407,"uuid":"456008022","full_name":"Ironclad-Project/Gloire","owner":"Ironclad-Project","description":"An OS built with the Ironclad kernel and GNU tools","archived":false,"fork":false,"pushed_at":"2024-10-24T01:31:48.000Z","size":5273,"stargazers_count":116,"open_issues_count":0,"forks_count":2,"subscribers_count":9,"default_branch":"main","last_synced_at":"2024-10-25T03:15:54.021Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","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/Ironclad-Project.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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-02-05T23:11:50.000Z","updated_at":"2024-10-24T01:31:51.000Z","dependencies_parsed_at":"2023-12-31T01:36:22.466Z","dependency_job_id":"9d62ebfe-8349-48e9-997f-5be413d0fea2","html_url":"https://github.com/Ironclad-Project/Gloire","commit_stats":null,"previous_names":["ironclad-project/gloire"],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ironclad-Project%2FGloire","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ironclad-Project%2FGloire/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ironclad-Project%2FGloire/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ironclad-Project%2FGloire/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ironclad-Project","download_url":"https://codeload.github.com/Ironclad-Project/Gloire/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224758252,"owners_count":17364973,"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":[],"created_at":"2024-08-03T04:00:40.423Z","updated_at":"2025-05-08T19:35:22.105Z","avatar_url":"https://github.com/Ironclad-Project.png","language":"Shell","funding_links":[],"categories":["Open Source Operating Systems"],"sub_categories":[],"readme":"# Gloire\n\n[\u003cimg src=\"artwork/logo.png\" width=\"250\" align=\"right\" alt=\"Gloire logo\"\u003e]()\n\nGloire is an OS built with the [Ironclad](https://ironclad-os.org)\nkernel and using GNU tools for the userland, along with some original\napplications like `util-ironclad`. This repository holds scripts and tools to\nbuild the OS from the ground up on a Linux-based system.\n\nGloire is named after the [french ironclad](https://en.wikipedia.org/wiki/French_ironclad_Gloire),\nwhich was the first ocean-going vessel of its kind.\n\n![Gloire running the JWM window manager, a terminal, taipei, and glxgears](artwork/screenshot1.png)\n![Gloire showcasing some terminal utilities](artwork/screenshot2.png)\n![Gloire running Taisei Project, a FOSS fangame of the Tōhō series](artwork/screenshot3.png)\n![Gloire showcasing the creation, compilation, and execution of a C program](artwork/screenshot4.png)\n\n## Downloading\n\nOne can grab a pre-built Gloire image [here](https://codeberg.org/Ironclad/Gloire/releases).\n\n## Running\n\nGloire as built from this repository will result in a live non-persistent image\nwith the option for installing. So keep in mind that when doing changes to the\nfilesystem.\n\n\u003e [!IMPORTANT]\n\u003e For the live images, the minimum amount of memory is dependent on the size\n\u003e of the image. A good formula is `size of the image + 1G`.\n\u003e\n\u003e For disk images, the minimum amount of memory is  500M for the graphical\n\u003e targets and 200M for the terminal-only ones.\n\u003e\n\u003e Additionally, for x86_64 platforms, Ironclad requires a system with a working\n\u003e HPET, among others.\n\u003e For more information on the current hardware requirements of the\n\u003e kernel, please visit [Ironclad's hardware support section](https://ironclad-os.org/supportedhardware.html).\n\n### On virtual machines\n\nOne can run either the downloaded disk image (uncompressing it first) or a\nbuilt image with an emulator like QEMU, for using QEMU with an x86_64\nimage, one can do:\n\n```bash\nqemu-system-x86_64 -enable-kvm -cpu host,migratable=off -m 8G -M q35 -drive format=raw,file=gloire.iso -serial stdio\n```\n\nWhere `gloire.iso` is your image of choice.\n\nTo do the same with a riscv64 image, you can do:\n\n```bash\nqemu-system-riscv64 -M virt,acpi=off -cpu rv64 -device ramfb -device qemu-xhci -m 4G         \\\n   -device usb-kbd -device usb-mouse -drive if=pflash,unit=0,format=raw,file=\u003cfirmware path\u003e \\\n   -hda gloire.iso -serial stdio\n```\n\nFor riscv64, firmware can be obtained [from the EDK2 project](https://github.com/osdev0/edk2-ovmf-nightly/releases/latest/download/ovmf-code-riscv64.fd),\nand must be prepared as per QEMU with a\n\n```bash\ndd if=/dev/zero of=\u003cfirmware path\u003e bs=1 count=0 seek=33554432\n```\n\nDepending on your distribution, to use Linux's KVM, you might need to add your\nuser to the `kvm` usergroup, as such:\n\n```bash\nusermod -aG kvm \u003cuser\u003e\n```\n\n### On physical hardware\n\nGloire should run fine on any x86 machine, be it UEFI or BIOS. For running it,\none can burn your gloire image (uncompressing it first if downloaded) to a\nSATA, IDE, or USB drive.\n\n## Contributing and bug reporting\n\nGloire accepts contributions for new packages or any other kind of changes\nusing the pull request system baked into Codeberg. Check our\n[contribution information](CONTRIBUTING.md).\n\n## Joining the community\n\nYou can visit our list of community channels on Ironclad's\n[community tab] (https://ironclad-os.org/community.html).\n\n## Building\n\nThe project uses `jinx` as its build system, which is included in the tree.\nThe instructions to build an x86_64 system are:\n\n```bash\nPKGS_TO_INSTALL=\"*\" ./build-support/makeiso.sh\n```\n\n*Note:* on certain distros, like Ubuntu 24.04, one may get an error like:\n```\n.../.jinx-cache/rbrt: failed to open or write to /proc/self/setgroups at line 186: Permission denied\n```\nIn that case, it likely means apparmor is preventing the use of user namespaces,\nwhich `jinx` needs. One can enable user namespaces by running:\n```sh\nsudo sysctl kernel.apparmor_restrict_unprivileged_userns=0\n```\nThis is not permanent across reboots. To make it so, one can do:\n```sh\nsudo sh -c 'echo \"kernel.apparmor_restrict_unprivileged_userns = 0\" \u003e/etc/sysctl.d/99-userns.conf'\n```\n\nThe image size will default to 3G, this may be too big or too small for the\nselection of packages the user may have built the image with. For modifying\nthis value, use the environment variable `IMAGE_SIZE`.\n\nTo build the very experimental riscv64 port, one can instead use:\n\n```bash\nPKGS_TO_INSTALL=\"*\" JINX_CONFIG_FILE=jinx-config-riscv64 ./build-support/makeiso.sh\n```\n\nRegardless of architecture, if, instead of building all packages, building\na minimal command-line only environment is desired, instead of `\"*\"`, one\ncan pass `\"\"` (or a list of desired packages, `base` is implied) as `PKGS_TO_INSTALL`.\n\nAny of those routes will generate a bootable disk image that can be burned to\nstorage media or be booted by several emulators.\n\nA list of the tools needed for compilation of the OS are:\n\n- `git` for cloning packages.\n- `curl` and a working C compiler (as `cc`) for setting up jinx.\n- Common UNIX tools like `bash`, `coreutils`, `grep`, `find`, etc.\n- `sgdisk` from the `gptfdisk` package for building the image.\n- `qemu` for testing, if wanted.\n- `tar` and `lzip` for extracting packages.\n- `xorriso` to build the final ISO file.\n\nAll of said things can be installed in debian-based systems with\n\n```bash\nsudo apt install lzip git build-essentials xorriso\n```\n\n## Licensing\n\nA list of the licenses used by the software ported to Gloire is:\n\n- [GPLv3 (Or-Later and Only)](https://www.gnu.org/licenses/gpl-3.0.html)\n- [GPLv2 (Or-Later and Only)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html)\n- [The Less License](https://github.com/gwsw/less/blob/master/LICENSE)\n- [MIT License](https://opensource.org/licenses/MIT)\n- [BSD 2-Clause](https://opensource.org/licenses/BSD-2-Clause)\n\n## Thanks to\n\n- [mintsuki](https://github.com/mintsuki) for the Limine Bootloader and\n[jinx](https://github.com/mintsuki/jinx).\n- [The Managarm Project](https://github.com/managarm) for help with some\nof the recipes and [mlibc](https://github.com/managarm/mlibc).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FIronclad-Project%2FGloire","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FIronclad-Project%2FGloire","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FIronclad-Project%2FGloire/lists"}