Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DOCSITE: Reorganise tutorials and add inline solutions #231

Open
wants to merge 110 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
110 commits
Select commit Hold shift + click to select a range
502c045
add new structure for tutorials
bbrcknl Mar 1, 2024
3321716
add about seL4 text
bbrcknl Mar 1, 2024
ca73b83
minor update microkit page
bbrcknl Mar 1, 2024
cd889c4
rewrite tuts (incomplete)
bbrcknl Mar 4, 2024
0d7dc88
add reordered tutorial sidebar
bbrcknl Mar 4, 2024
c6e88b0
fix nav-sidebar
bbrcknl Mar 4, 2024
85b9591
rework tuts (incomplete); update navbar
bbrcknl Mar 4, 2024
f918f4a
add reworked tuts (incomplete)
bbrcknl Mar 6, 2024
fa1c85d
add reworked tuts (incomplete)
bbrcknl Mar 8, 2024
a311549
add how-to page
bbrcknl Mar 11, 2024
cb2fc67
add camkes 1 and 2 (incomplete)
bbrcknl Mar 11, 2024
9007734
update camkes 1 and 2 (incomplete)
bbrcknl Mar 11, 2024
8f11ebd
add and update camkes 2 & 3 tuts
bbrcknl Mar 13, 2024
a18f827
update camkes tuts
bbrcknl Mar 15, 2024
d63b96f
add tutorials overview page
bbrcknl Mar 15, 2024
6e8dbed
add resources
bbrcknl Mar 15, 2024
e293afc
add more resources
bbrcknl Mar 15, 2024
84168b0
replace old tut files with new
bbrcknl Mar 15, 2024
c9aaf62
change Getting Started to Working with seL4
bbrcknl Mar 15, 2024
442aacb
work on redirect for tutorial landing page
bbrcknl Mar 15, 2024
ce25b3f
organise front page, navbar and how-to page
bbrcknl Mar 18, 2024
dae73c8
fix trailing whitespace
bbrcknl Mar 18, 2024
4bfd6d9
fix broken links
bbrcknl Mar 22, 2024
1769b62
add layout for tutorial pages
bbrcknl Mar 22, 2024
98b162c
update setting up instructions
bbrcknl Apr 19, 2024
7071759
rename tutorials to match tutorials repo
bbrcknl Apr 24, 2024
438d54a
add tests for including tutorial.md
bbrcknl May 10, 2024
5fbdc58
revert docsite tutorial files to include tutes from tutorials repo
bbrcknl May 13, 2024
94045ff
fix links in nav sidebar
bbrcknl May 13, 2024
5e86114
Makefile testing code
bbrcknl May 27, 2024
104f7d0
add refs and headers to how-to page
bbrcknl May 17, 2024
4758f09
fix typo
bbrcknl May 17, 2024
c22a3e6
fix href target blank
bbrcknl May 17, 2024
61f321c
fix link
bbrcknl May 17, 2024
cd34825
expand solutions if using how-to page
bbrcknl May 20, 2024
74e0413
add css space after solution boxes
bbrcknl May 20, 2024
f159026
separate instructions for getting tutes manifest
bbrcknl May 20, 2024
afc4010
fix fault handlers link
bbrcknl May 24, 2024
8af55ad
update mcs link in fault handlers tut
bbrcknl May 24, 2024
264bdc4
add item to how-to page
bbrcknl May 27, 2024
3ecb6fa
fix whitespace error
bbrcknl May 27, 2024
43542f4
remove testing code from Makefile
bbrcknl May 27, 2024
94fe1fc
add licence to toggle-markdown.js
bbrcknl May 27, 2024
ba70bbe
remove old tutorial files
bbrcknl May 27, 2024
d3ba4f8
Update Tutorials/seL4Kernel/setting-up.md
bbrcknl Jul 10, 2024
0556ae4
Update Tutorials/seL4Kernel/setting-up.md
bbrcknl Jul 10, 2024
d28d363
Update Tutorials/seL4Kernel/setting-up.md
bbrcknl Jul 10, 2024
68c00ea
address Gerwin's high level comments (incomplete)
bbrcknl Jul 12, 2024
28d8d6d
work (incomplete) on tutorial pathways
bbrcknl Jul 12, 2024
51ad641
finish adding tutorial pathways
bbrcknl Jul 14, 2024
9b3284c
finish addressing Gerwin high-level issues
bbrcknl Jul 14, 2024
5e641fb
move toggle markdown to tutorial layout
bbrcknl Jul 14, 2024
cd0344e
fix trailing whitespace
bbrcknl Jul 14, 2024
e8ff93d
fix mattermost link
bbrcknl Jul 14, 2024
42b9c6c
address Gerwin's comments on setting-up page
bbrcknl Jul 15, 2024
6502de9
put dependencies in one line of code
bbrcknl Jul 15, 2024
c6d7a3a
fix links
bbrcknl Jul 15, 2024
3e2f994
revert to old tutorials structure
bbrcknl Jul 17, 2024
aa1e4d1
move how-to to tutorials dir
bbrcknl Jul 18, 2024
127113e
change old GettingStarted links to Resources
bbrcknl Jul 18, 2024
a134caf
add how-to to tutorials in makefile
bbrcknl Jul 18, 2024
9dd38d1
fix code in capabilities tut
bbrcknl Jul 19, 2024
0bb322a
fix path in toggle-markdown for tutes
bbrcknl Jul 19, 2024
6ff3c1a
fix typo
bbrcknl Jul 26, 2024
eb0932b
remove trace from Makefile
bbrcknl Jul 31, 2024
da53f84
fix typo Resources.md
bbrcknl Jul 31, 2024
4655aad
fix copyright year - capabilities
bbrcknl Jul 31, 2024
4791ced
remove empty lines - dynamic-1
bbrcknl Jul 31, 2024
203a9f8
fix typos in how-to
bbrcknl Jul 31, 2024
9eafb8a
fix mcs description
bbrcknl Jul 31, 2024
aefbaab
fix copyright year pathways and overview
bbrcknl Jul 31, 2024
4fd520d
minor fixes navbar
bbrcknl Jul 31, 2024
02f9734
replace dynamic-libraries with libraries
bbrcknl Jul 31, 2024
2debab4
replace dynamic libraries with libraries
bbrcknl Jul 31, 2024
fc11969
nav: fix project links
lsf37 Jul 31, 2024
ce0ef6d
nav: tweak sections in tutorial nav
lsf37 Jul 31, 2024
7a0599d
[drop] temporarily revert library rename
lsf37 Aug 1, 2024
f635bf1
tutorials: remove unused front matter description
lsf37 Aug 1, 2024
b787447
tutorial nav: factor out tutorial navigation
lsf37 Aug 1, 2024
35dd737
layouts/tutorial: remove unused code
lsf37 Aug 1, 2024
9aa4207
layout/tutorials: tweak js link
lsf37 Aug 1, 2024
a50cf29
debugging-guide: use tutorial layout
lsf37 Aug 1, 2024
1e2e4b1
tutorials: remove unused tutorial-order field
lsf37 Aug 1, 2024
09108e1
tutorials: redirect /projects/sel4-tutorials/
lsf37 Aug 1, 2024
34f5313
tutorial nav: automate "next" link
lsf37 Aug 1, 2024
48dbb59
tutorial nav: move "included from" to layout
lsf37 Aug 1, 2024
99ae7a4
Update Tutorials/get-the-tutorials.md
bbrcknl Aug 9, 2024
5578b97
Update Tutorials/get-the-tutorials.md
bbrcknl Aug 9, 2024
c4e61e4
Update Tutorials/get-the-tutorials.md
bbrcknl Aug 9, 2024
ba83f25
Update Tutorials/get-the-tutorials.md
bbrcknl Aug 9, 2024
448e41c
rename dynamic to libraries
bbrcknl Aug 9, 2024
1903f1c
fix accidental renaming in IA32.md
bbrcknl Aug 9, 2024
04c005a
change name dynamic -> libraries
bbrcknl Aug 9, 2024
8a3bc44
change dir tutorials -> Tutorials
bbrcknl Aug 9, 2024
5336a78
change libraries->dynamic in old release notes
bbrcknl Aug 11, 2024
06e6c24
consolidate two tutorials overview pages
bbrcknl Aug 12, 2024
07952f1
remove next link for external tutes
bbrcknl Aug 23, 2024
ad85e98
remove duplicate next links
bbrcknl Aug 23, 2024
6505987
fix solutions css styling and pointer
bbrcknl Aug 23, 2024
fd00916
fix pointer for expanded solutions box
bbrcknl Aug 23, 2024
fa69841
Merge branch 'master' into birg-tutorials-rework
bbrcknl Aug 23, 2024
6e5059f
remove accidental commit of camkes-vm
bbrcknl Aug 23, 2024
7620007
remove breadcrumb naming hack
bbrcknl Aug 26, 2024
bcbc394
update camkes and library headers
bbrcknl Aug 26, 2024
238fb77
remove duplicated next link
bbrcknl Sep 27, 2024
c6adfe6
add comment about filtered tut pages
bbrcknl Oct 4, 2024
6258219
revert copyright year
bbrcknl Oct 4, 2024
e20dd47
add relative_url for github preview
bbrcknl Oct 4, 2024
a2a59cd
fix js code for markdown expansions
bbrcknl Oct 4, 2024
0bc8c02
Fix Tutorial How To Links
Indanz Oct 4, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@ _repos/tutes:
_repos/tutes/%.md: _repos/sel4proj/sel4-tutorials/tutorials/% _repos/tutes
PYTHONPATH=_repos/sel4/capdl/python-capdl-tool _repos/sel4proj/sel4-tutorials/template.py --docsite --out-dir _repos/tutes --tut-file $</$(@F)

# Make tutorials
# Filter out index.md; get-the-tutorials.md; how-to.md pathways.md; setting-up.md
# which are docsite pages, and not in the tutorials repo
TUTORIALS:= $(filter-out index.md get-the-tutorials.md how-to.md pathways.md setting-up.md,$(notdir $(wildcard Tutorials/*.md)))
tutorials: ${TUTORIALS:%=_repos/tutes/%}

Expand Down
2 changes: 1 addition & 1 deletion Tutorials/hello-world.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: Hello, World!
tutorial: hello-world
layout: tutorial
SPDX-License-Identifier: CC-BY-SA-4.0
SPDX-FileCopyrightText: 2024 seL4 Project a Series of LF Projects, LLC.
SPDX-FileCopyrightText: 2020 seL4 Project a Series of LF Projects, LLC.
---

{% include tutorial.md %}
41 changes: 20 additions & 21 deletions Tutorials/how-to.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,71 +9,70 @@ This guide provides links to tutorial solutions as quick references for seL4 cal

[//]: # (<html><a href="no-javascript.html" title="Get some foo!">Show me some foo</a></html>)


## The seL4 kernel

### [Capabilities](capabilities.md)
### [Capabilities](capabilities?tut_expand)

- [Calculate the size of a CSpace](capabilities.md#how-big-is-your-cspace)
- [Copy a capability between CSlots](capabilities.md#copy-a-capability-between-cslots)
- [Delete a capability](capabilities.md#how-do-you-delete-capabilities)
- [Suspend a thread](capabilities.md#suspend-a-thread)
Indanz marked this conversation as resolved.
Show resolved Hide resolved

### [Untyped](untyped.md)
### [Untyped](untyped?tut_expand)

- [Create an untyped capability](untyped.md#create-an-untyped-capability)
- [Create a TCB object](untyped.md#create-a-tcb-object)
- [Create an endpoint object](untyped.md#create-an-endpoint-object)
- [Create a notification object](untyped.md#create-a-notification-object)
- [Delete an object](untyped.md#delete-the-objects)

### [Mapping](mapping.md)
### [Mapping](mapping?tut_expand)
- [Map a page directory](mapping.md#map-a-page-directory)
- [Map a page table](mapping.md#map-a-page-table)
- [Remap a page](mapping.md#remap-a-page)
- [Unmap a page](mapping.md#unmapping-pages)

### [Threads](threads.md)
### [Threads](threads?tut_expand)
- [Configure a TCB](threads.md#configure-a-tcb)
- [Change the priority of a thread](threads.md#change-priority-via-sel4_tcb_setpriority)
- [Set initial register state](threads.md#set-initial-register-state)
- [Start the thread](threads.md#start-the-thread)
- [Set the arguments of a thread](threads.md#passing-arguments)
- [Resolve a fault](threads.md#resolving-a-fault)

### [IPC](ipc.md)
### [IPC](ipc?tut_expand)
- [Use capability transfer to send the badged capability](ipc.md#use-capability-transfer-to-send-the-badged-capability)
- [Get a message](ipc.md#get-a-message)
- [Reply and wait](ipc.md#reply-and-wait)
- [Save a reply and store reply capabilities](ipc.md#save-a-reply-and-store-reply-capabilities)

### [Notifications](notifications.md)
### [Notifications](notifications?tut_expand)
- [Set up shared memory](notifications.md#set-up-shared-memory)
- [Signalling](notifications.md#signal-the-producers-to-go)
- [Differentiate signals](notifications.md#differentiate-signals)

### [Interrupts](interrupts.md)
### [Interrupts](interrupts?tut_expand)
- [Invoke IRQ control](interrupts.md#invoke-irq-control)
- [Set NTFN](interrupts.md#set-ntfn)
- [Acknowledge an interrupt](interrupts.md#acknowledge-an-interrupt)

### [Fault handling](fault-handlers.md)
### [Fault handling](fault-handlers?tut_expand)
- [Set up an endpoint for thread fault IPC messages](fault-handlers.md#setting-up-the-endpoint-to-be-used-for-thread-fault-ipc-messages)
- [Receive an IPC message from the kernel](fault-handlers.md#receiving-the-ipc-message-from-the-kernel)
- [Get information about a thread fault](fault-handlers.md#finding-out-information-about-the-generated-thread-fault)
- [Handle a thread fault](fault-handlers.md#handling-a-thread-fault)
- [Resume a faulting thread](fault-handlers.md#resuming-a-faulting-thread)

## [MCS Extensions](mcs.md)
## [MCS Extensions](mcs?tut_expand)
- [Set up a periodic thread](mcs.md#periodic-threads)
- [Unbind a scheduling context](mcs.md#unbinding-scheduling-contexts)
- [Experiment with sporadic tasks](mcs.md#sporadic-threads)
- [Use passive servers](mcs.md#passive-servers)
- [Configure fault endpoints](mcs.md#configuring-a-fault-endpoint-on-the-mcs-kernel)

## [Dynamic libraries](libraries-1.md)
## [Dynamic libraries](libraries-1?tut_expand)

### [Initialisation & threading](libraries-1.md)
### [Initialisation & threading](libraries-1?tut_expand)
- [Obtain BootInfo](libraries-1.md#obtain-bootinfo)
- [Initialise simple](libraries-1.md#initialise-simple)
- [Use simple to print BootInfo](libraries-1.md#use-simple-to-print-bootinfo)
Expand All @@ -90,7 +89,7 @@ This guide provides links to tutorial solutions as quick references for seL4 cal
- [Start the new thread](libraries-1.md#start-the-new-thread)
- [Print](libraries-1.md#print-something)

### [IPC](libraries-2.md)
### [IPC](libraries-2?tut_expand)
- [Allocate an IPC buffer](libraries-2.md#allocate-an-ipc-buffer)
- [Allocate a page table](libraries-2.md#allocate-a-page-table)
- [Map a page table](libraries-2.md#map-a-page-table)
Expand All @@ -105,7 +104,7 @@ This guide provides links to tutorial solutions as quick references for seL4 cal
- [Write the message registers](libraries-2.md#write-the-message-registers)
- [Reply to a message](libraries-2.md#reply-to-a-message)

### [Processes & Elf loading](libraries-3.md)
### [Processes & Elf loading](libraries-3?tut_expand)
- [Create a VSpace object](libraries-3.md#virtual-memory-management)
- [Configure a process](libraries-3.md#configure-a-process)
- [Get a CSpace path](libraries-3.md#get-a-cspacepath)
Expand All @@ -115,23 +114,23 @@ This guide provides links to tutorial solutions as quick references for seL4 cal
- [Send a reply](libraries-3.md#send-a-reply)
- [Initiate communications by using seL4_Call](libraries-3.md#client-call)

### [Timer](libraries-4.md)
### [Timer](libraries-4?tut_expand)
- [Allocate a notification object](libraries-4.md#allocate-a-notification-object)
- [Initialise a timer](libraries-4.md#initialise-the-timer)
- [Use a timer](libraries-4.md#use-the-timer)
- [Handle an interrupt](libraries-4.md#handle-the-interrupt)
- [Destroy a timer](libraries-4.md#destroy-the-timer)

## [CAmkES](hello-camkes-0.md)
## [CAmkES](hello-camkes-0?tut_expand)

### [A basic CAmkES application](hello-camkes-1.md)
### [A basic CAmkES application](hello-camkes-1?tut_expand)
- [Define an instance in the composition section of the ADL](hello-camkes-1.md#define-an-instance-in-the-composition-section-of-the-adl)
- [Add a connection](hello-camkes-1.md#add-a-connection)
- [Define an interface](hello-camkes-1.md#define-an-interface)
- [Implement an RPC function](hello-camkes-1.md#implement-a-rpc-function)
- [Invoke a RPC function](hello-camkes-1.md#invoke-a-rpc-function)

### [Events in CAmkES](hello-camkes-2.md)
### [Events in CAmkES](hello-camkes-2?tut_expand)
- [Specify an events interface](hello-camkes-2.md#specify-an-events-interface)
- [Add connections](hello-camkes-2.md#add-connections)
- [Wait for data to become available](hello-camkes-2.md#wait-for-data-to-become-available)
Expand All @@ -149,7 +148,7 @@ This guide provides links to tutorial solutions as quick references for seL4 cal
- [Restrict access to dataports](hello-camkes-2.md#restrict-access-to-dataports)
- [Test the read and write permissions on the dataport](hello-camkes-2.md#test-the-read-and-write-permissions-on-the-dataport)

### [CAmkES Timer](hello-camkes-timer.md)
### [CAmkES Timer](hello-camkes-timer?tut_expand)
- [Instantiate a Timer and Timerbase](hello-camkes-timer.md#instantiate-a-timer-and-timerbase)
- [Connect a timer driver component](hello-camkes-timer.md#connect-a-timer-driver-component)
- [Configure a timer hardware component instance](hello-camkes-timer.md#configure-a-timer-hardware-component-instance)
Expand All @@ -166,12 +165,12 @@ This guide provides links to tutorial solutions as quick references for seL4 cal
- [Handle the interrupt](hello-camkes-timer.md#handle-the-interrupt)
- [Stop the timer](hello-camkes-timer.md#stop-the-timer)

### [CAmkES VM Linux](camkes-vm-linux.md)
### [CAmkES VM Linux](camkes-vm-linux?tut_expand)
- [Add a program](camkes-vm-linux.md#adding-a-program)
- [Add a kernel module](camkes-vm-linux.md#adding-a-kernel-module)
- [Create a hypercall](camkes-vm-linux.md#creating-a-hypercall)

### [CAmkeES Cross VM Connectors](camkes-vm-crossvm.md)
### [CAmkeES Cross VM Connectors](camkes-vm-crossvm?tut_expand)
- [Add modules to the guest](camkes-vm-crossvm.md#add-modules-to-the-guest)
- [Define interfaces in the VMM](camkes-vm-crossvm.md#define-interfaces-in-the-vmm)
- [Define the component interface](camkes-vm-crossvm.md#define-the-component-interface)
Expand Down
2 changes: 1 addition & 1 deletion Tutorials/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ toc: true
title: Tutorials
layout: tutorial
SPDX-License-Identifier: CC-BY-SA-4.0
SPDX-FileCopyrightText: 2024 seL4 Project a Series of LF Projects, LLC.
SPDX-FileCopyrightText: 2020 seL4 Project a Series of LF Projects, LLC.
---
# Overview

Expand Down
2 changes: 1 addition & 1 deletion Tutorials/setting-up.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
toc: true
layout: tutorial
SPDX-License-Identifier: CC-BY-SA-4.0
SPDX-FileCopyrightText: 2024 seL4 Project a Series of LF Projects, LLC.
SPDX-FileCopyrightText: 2020 seL4 Project a Series of LF Projects, LLC.
---

# Setting up your machine
Expand Down
8 changes: 4 additions & 4 deletions _includes/header.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
</li>
<li class="col-xs-12 col-md-10 menu">
<nav aria-label="Banner links">
<h2><a href="/Resources">Resources</a></h2>
<h2><a href="/processes">Contributing</a></h2>
<h2><a href="/projects">Projects</a></h2>
<h2><a href="/Tutorials/">Tutorials</a></h2>
<h2><a href="{{ '/Resources' | relative_url }}" />Resources</h2>
<h2><a href="{{ '/processes' | relative_url }}" />Contributing</a></h2>
<h2><a href="{{ '/Projects' | relative_url }}" />Projects</h2>
<h2><a href="{{ '/Tutorials' | relative_url }}" />Tutorials</h2>
<iframe title="DuckDuckGo search bar" src="https://duckduckgo.com/search.html?site=docs.sel4.systems&prefill=Search%20sel4.systems" style="overflow:hidden;margin-bottom:10px; padding:0;height:40px;float:right;border-width: 0px"></iframe>
</nav>
</li>
Expand Down
18 changes: 7 additions & 11 deletions assets/js/toggle-markdown.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
// SPDX-License-Identifier: CC-BY-SA-4.0
// Copyright 2024 seL4 Project a Series of LF Projects, LLC.

// Expand all solutions if previous link was how-to page
// Expand all solutions
let param = new URLSearchParams(window.location.search);

let text = document.referrer;
let result = text.includes("Tutorials/how-to");

if (result==true){
document.body.querySelectorAll('details')
.forEach((e) => {(e.hasAttribute('open')) ?
e.removeAttribute('open') : e.setAttribute('open',true);
console.log(e.hasAttribute('open'))
})
}
if (param.has('tut_expand')) {
document.body.querySelectorAll('details').forEach((e) => {
e.setAttribute('open', true);
})
}