{"id":18175112,"url":"https://github.com/vaishaks/vosix","last_synced_at":"2026-04-29T00:34:36.622Z","repository":{"id":145578923,"uuid":"146224319","full_name":"vaishaks/vosix","owner":"vaishaks","description":"Attempt at writing a bare-metal Operating System for the Raspberry Pi 3.","archived":false,"fork":false,"pushed_at":"2018-09-12T06:02:35.000Z","size":60,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-07T09:41:24.558Z","etag":null,"topics":["operating-system","operating-system-learning","os","raspberry-pi-3"],"latest_commit_sha":null,"homepage":null,"language":"C","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/vaishaks.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":"2018-08-26T23:30:50.000Z","updated_at":"2018-09-12T06:02:37.000Z","dependencies_parsed_at":"2023-04-11T17:02:30.172Z","dependency_job_id":null,"html_url":"https://github.com/vaishaks/vosix","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vaishaks/vosix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaishaks%2Fvosix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaishaks%2Fvosix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaishaks%2Fvosix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaishaks%2Fvosix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vaishaks","download_url":"https://codeload.github.com/vaishaks/vosix/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaishaks%2Fvosix/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32405901,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T19:38:08.556Z","status":"ssl_error","status_checked_at":"2026-04-28T19:37:55.688Z","response_time":56,"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":["operating-system","operating-system-learning","os","raspberry-pi-3"],"created_at":"2024-11-02T16:08:51.644Z","updated_at":"2026-04-29T00:34:36.603Z","avatar_url":"https://github.com/vaishaks.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vosix\nMy attempt at writing a bare-metal Operating System for the Raspberry Pi 3 Model B.\n\n## Useful Tutorials\n- [s-matyukevich/raspberry-pi-os](https://github.com/s-matyukevich/raspberry-pi-os): This repository contains a step-by-step guide that teaches how to create a simple operating system (OS) kernel from scratch. \n- [bxtsrc/raspi3-tutorial](https://github.com/bztsrc/raspi3-tutorial): This tutorial series are made for those who would like to compile their own bare metal application for the Raspberry Pi.\n\nThese guys are awesome for creating these tutorials! I reccomend that you check them out. This repo is my experiments using what I learn from their tutorials.\n\n## Development Environment\nI'm developing this on Windows using the Windows subsystem for Linux because I had some trouble with running docker on Windows. If you're running Linux or if you can setup docker without any issues, that could serve as a good environment too.\n\nIf you're building this on Linux or on the Windows subsystem for Linux, then run the following commands to setup build dependencies for this repo:\n\n```\nsudo apt-get update\n\nsudo apt-get install -y gcc-aarch64-linux-gnu build-essential\n````\n\nI'm using qemu-system-arm and the raspi machine to debug the code locally. As of writing this (08/26/18), qemu 2.5 is available for Ubuntu 16.04. The raspi machine is included from qemu 2.12. So I had to compile the latest qemu locally using the [following steps](https://raspberrypi.stackexchange.com/questions/34733/how-to-do-qemu-emulation-for-bare-metal-raspberry-pi-images/85135#85135).\n\n````\n# Install qemu build dependencies\nsudo apt-get install git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev\n\nsudo apt-get install libnfs-dev libiscsi-dev\n\n# Clone the qemu repository\ngit clone git://git.qemu.org/qemu.git\n\ncd qemu\n\n# Checkout a stable version\ngit checkout v2.12.0\n\n# Configure and build\n./configure --target-list=aarch64-softmmu  \nmake -j`nproc`\n\n# Export to path or add path to .bashrc\nexport PATH=\"$(pwd)/aarch64-softmmu:${PATH}\"\n````\n\nTo run @bztsrc's tutorial with the installed compiler, make sure to run the following command in the project you want to build:\n\n`find . -name Makefile | xargs sed -i 's/aarch64-elf-/aarch64-linux-gnu-/'`\n\n## Building and Running\n\n- Run `make` to build the source.\n- Run `make debug` to debug the kernel locally\n\nFollow instructions from [here](https://github.com/s-matyukevich/raspberry-pi-os/blob/master/docs/lesson01/rpi-os.md#raspberry-pi-config) to test the kernel on an actual Raspberry Pi 3 Model B.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaishaks%2Fvosix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvaishaks%2Fvosix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaishaks%2Fvosix/lists"}