{"id":19608651,"url":"https://github.com/sel4/sel4-tutorials","last_synced_at":"2025-04-05T12:05:19.380Z","repository":{"id":36039678,"uuid":"40336727","full_name":"seL4/sel4-tutorials","owner":"seL4","description":"Tutorials for working with seL4 and/or CAmkES.","archived":false,"fork":false,"pushed_at":"2025-03-17T01:07:34.000Z","size":28279,"stargazers_count":54,"open_issues_count":14,"forks_count":55,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-03-29T11:07:18.595Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://docs.sel4.systems/Tutorials","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/seL4.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSES/BSD-2-Clause.txt","code_of_conduct":".github/CODE_OF_CONDUCT.md","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":"2015-08-07T02:23:59.000Z","updated_at":"2025-03-25T17:43:24.000Z","dependencies_parsed_at":"2024-06-17T03:32:33.867Z","dependency_job_id":"33e46bf8-6ff4-4f94-a5c8-11a52ff7fbd0","html_url":"https://github.com/seL4/sel4-tutorials","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seL4%2Fsel4-tutorials","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seL4%2Fsel4-tutorials/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seL4%2Fsel4-tutorials/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seL4%2Fsel4-tutorials/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seL4","download_url":"https://codeload.github.com/seL4/sel4-tutorials/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247332602,"owners_count":20921853,"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-11-11T10:16:13.198Z","updated_at":"2025-04-05T12:05:19.342Z","avatar_url":"https://github.com/seL4.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--\n     Copyright 2024, seL4 Project a Series of LF Projects, LLC..\n\n     SPDX-License-Identifier: CC-BY-SA-4.0\n--\u003e\n\n# seL4 Tutorials\n\nVarious tutorials for using seL4, its libraries, and CAmkES.\n\n## Prerequisites\n\nFollow the instructions for setting up your host environment on the [seL4 docsite](https://docs.sel4.systems/HostDependencies).\n\n## Starting a tutorial\n\nThis tutorial repository is part of a larger collection of repositories, which\nare required to run the tutorial and are coordinated in a manifest file. See\n[this guide](https://docs.sel4.systems/Tutorials/#the-tutorials) on how to check\nout a consistent set.\n\nOnce you have that, a tutorial is started through the use of the `init` script\nthat is provided in the root directory. Using this script you can specify a\ntutorial and target machine and it will create a copy of the tutorial for you to\nwork on.\n\nExample:\n\n```sh\nmkdir build_hello_world\ncd build_hello_world\n../init --plat pc99 --tut hello-world\n```\n\nThe `init` script will initialize a build directory in the current directory and at the end\nit will print out a list of files that need to be modified to complete the tutorial. Building\nis performed simply be invoking `ninja`, and once the tutorial compiles it can be tested\nin Qemu by using the provided simulation script through `./simulate`\n\n## Tutorials and targets\n\nThe `-h` switch to the `init` script provides a list of different tutorials and targets that\ncan be provided to `--plat` and `--tut` respectively.\n\nMost tutorials support any target platform, with the exception of hello-camkes-timer, which only\nsupports the zynq7000 platform.\n\n### Virtual Machine Image\n\nYou can also download a [VirtualBox virtual machine appliance](https://trustworthy.systems/Downloads/sel4_tut_v3_lubuntu_16_041-v2.ova)([md5](https://trustworthy.systems/Downloads/sel4_tut_v3_lubuntu_16_041-v2.md5)) (3GB, based on Lubuntu 16.04.1 with all the seL4 tutorial prerequisites installed).\n\nThis appliance is based on [VirtualBox 5.1.2](https://www.virtualbox.org/wiki/Downloads).\nYou may also need to install the appropriate VirtualBox extensions available from the same page.\n\n## Solutions\n\nTo view the solutions for a tutorial instead of performing the tutorial pass the `--solution` flag\nto the `init` script\n\nExample:\n\n```sh\nmkdir build_hello_world\ncd build_hello_world\n../init --plat pc99 --tut hello-world --solution\n```\n\nAfter which it will tell you where the solution files are that you can look at. You can then\ndo `ninja \u0026\u0026 ./simulate` to build and run the solution.\n\n### Reporting issues or bugs in the tutorials:\n\nPlease report any issues you find in the tutorials (bugs, outdated API calls, etc) by filing an issue on the public github repository:\n\u003chttps://github.com/seL4/sel4-tutorials/issues/\u003e\n\n### Build system tutorial\n\nDue to custom written additions to the build system specifically for the tutorials they are\nnot appropriate for learning how to create and structure new applications/systems. Future\ntutorials for this will be forthcoming. For now it is suggested to look at other existing\napplications for ideas.\n\n# Documentation\n\n## Developer wiki\n\nA walkthrough of each tutorial is available on the [`docs site`](https://docs.sel4.systems/Tutorials)\n\n## Tutorial Slides\n\nThe slides used for the tutorial are available in [`docs`](docs).\n\n## seL4 Manual\n\nThe seL4 manual lives in the kernel source in the [`manual`](https://github.com/seL4/seL4/tree/master/manual) directory.\nTo generate a PDF go into that directory and type `make`.\nYou will need to have LaTeX installed to build it.\n\nA pre-generated PDF version can be found [`here`](http://sel4.systems/Info/Docs/seL4-manual-latest.pdf).\n\n## CAmkES Documentation\n\nCAmkES documentation lives in the camkes-tool repository in [docs/index.md](https://github.com/seL4/camkes-tool/blob/master/docs/index.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsel4%2Fsel4-tutorials","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsel4%2Fsel4-tutorials","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsel4%2Fsel4-tutorials/lists"}