{"id":24538641,"url":"https://github.com/iimpaq/sweb-env","last_synced_at":"2025-03-16T02:25:14.562Z","repository":{"id":181787074,"uuid":"603818757","full_name":"IImpaq/sweb-env","owner":"IImpaq","description":"My development setup to work on the SWEB educational OS.","archived":false,"fork":false,"pushed_at":"2023-07-18T14:26:31.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-22T15:14:05.724Z","etag":null,"topics":["bash","docker","docker-compose","educational-project","macos","operating-system","os","os-development","osx","windows"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IImpaq.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}},"created_at":"2023-02-19T17:00:56.000Z","updated_at":"2023-09-09T08:51:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"e9aa54c6-2c56-42e0-beac-1bf6514c604a","html_url":"https://github.com/IImpaq/sweb-env","commit_stats":null,"previous_names":["iimpaq/sweb-env"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IImpaq%2Fsweb-env","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IImpaq%2Fsweb-env/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IImpaq%2Fsweb-env/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IImpaq%2Fsweb-env/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IImpaq","download_url":"https://codeload.github.com/IImpaq/sweb-env/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243814979,"owners_count":20352077,"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":["bash","docker","docker-compose","educational-project","macos","operating-system","os","os-development","osx","windows"],"created_at":"2025-01-22T15:14:07.554Z","updated_at":"2025-03-16T02:25:14.532Z","avatar_url":"https://github.com/IImpaq.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sweb-env\nMy development setup to work on the SWEB educational OS.\n\n## Description\nThis repository contains all the necessary scripts to set up a more or less complete development environment\nto work on the SWEB educational OS on macOS. I prepared the workspace and tried to automate as much of the process as\npossible before taking the Operating Systems course at TU Graz. In my case CLion is used as an IDE. Docker and Docker\nCompose are used to setup a container with the necessary packages installed. The execution of the SWEB OS itself is\ndone on the host system (macOS) using the provided script.\n\n## Notes\nI chose to use Ninja instead of Make due to improved build performance. Anything in this repository is highly\nexperimental and I expect for stuff to not work sometimes. This repository will probably receive some patches during\nthe next few months. Brew is recommended for installing necessary packages on the macOS host. I won't and can't\nguarantee that anything works (correctly) and/or that nothing will break.\n\n## Getting Started\n### Dependencies\n* zsh\n* QEMU\n* Docker\n* Docker Compose\n\n### Installation\n* Clone this repository\n* Run the \"setup\" script\n* Clone the sweb repository to the root of this folder as \"src\"\n\n### Workflow\n* Start the docker container by run the \"run\" script\n* Open the local sweb repository (stored in the \"src\") with the IDE of your choice (CLion in my case) directory and make any changes you feel like\n* When opening the project for the first time in CLion create a new toolchain and select the newly created docker container.\n* Hint: for ease you can move the docker toolchain up in the hierarchy to used it as a default\n* Apply the changes\n* Run the \"compile\" script before executing\n* Hint: compile can be run either in \"debug\" or \"release\" mode (passed as a parameter)\n\n### How to run the OS?\n* To start sweb via qemu: type \"../emulate.sh run\" in the terminal to start a qemu instance\n* Hint: this expects you to be within the \"src\" directory\n\n### How to debug the os?\n* To debug sweb: type \"../emulate.sh debug\" in the terminal\n* Important: run the compile script in debug mode before (and you might want to run the clean script before that)\n* Hint: this expects you to be within the \"src\" directory\n* Hint: you need to setup your IDE correctly to be able to debug sweb efficiently\n* Click the debug button in your correctly configured IDE and it should connect to the qemu instance\n* Hint: recompile when changing breakpoints\n\n### How to setup an IDE for debugging?\n* Important: this guide will only focus on CLion.\n* Click \"Edit Configurations...\"\n* Click the plus icon in the top-left corner and select \"Remote Debug\"\n* Choose any logical name\n* Set the value of \"'target remote' args\" to be \"127.0.0.1:1234\"\n* Set the value of Symbol file to be \"/tmp/sweb/kernel64.x\"\n* Set the value of Sysroot to be \"/tmp/sweb/\"\n* Add a new \"Path mapping\": \"Remote\" is \"/tmp/src/\" and \"Local\" is the path to the sweb repository on your host machine\n* Apply the changes\n\n## Author\nMarcus Gugacs\n\n## License\nSee LICENSE file\n\n## Acknowledgments\n* https://github.com/IAIK/sweb\n* https://www.iaik.tugraz.at/course/operating-systems-inp32512uf-wintersemester-2022-23/\n* https://www.iaik.tugraz.at/teaching/materials/os/tutorials/sweb-kernel-debuggen-mit-cgdb/\n* https://brew.sh/\n* https://www.qemu.org/\n* https://www.zsh.org/\n* https://www.docker.com/","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiimpaq%2Fsweb-env","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiimpaq%2Fsweb-env","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiimpaq%2Fsweb-env/lists"}