···11+#let title = "What is Twizzler?"
22+33+44+// the big idea is movign into a data centric operating system
55+//
66+// with that data centric operating system means that processes
77+// access data directly
88+//
99+// How do we ensure that data is only accessed by parties who
1010+// are supposed to access that data, if the kernel isnt there
1111+// to mediate data access?
1212+//
1313+// lead into capabilities...
1414+1515+#lorem(200)
1616+1717+1818+1919+
+19
poster/sections/2_cap.typ
···11+#let title = "Capabilities"
22+33+// what is a capability in general?
44+//
55+// what is a twizzler capability?
66+//
77+// keypairs!? why??
88+// (to ensure that noone can just tamper with a capability on disk and
99+// get away with it.)
1010+//
1111+// verifying key
1212+// signing key
1313+//
1414+//
1515+// figure of what a capability looks like
1616+1717+#lorem(200)
1818+1919+
+10
poster/sections/3_sec_ctx.typ
···11+#let title = "Security Contexts"
22+33+// what is a security context
44+//
55+// figure of what a security context looks like...
66+77+88+#lorem(200)
99+1010+
+13
poster/sections/4_execution.typ
···11+#let title = "System At Work"
22+33+// ok show an example of the system at work, what exactly is done
44+// to map it in, and then run...
55+//
66+// key point is that once access is set up, the process
77+// does not have to interact with the kernel to read/write to the file.
88+99+1010+// THE main point is that there is no kernel involvement in the datapath,
1111+// but we still uphold security!!
1212+1313+#lorem(200)
+5
poster/sections/5_future.typ
···11+#let title = "Future Work"
22+33+// dude just look at the fucking grant proposal lmfao
44+55+#lorem(200)
···11-#let title = "Security Contexts"
22-#lorem(200)
-4
poster/sections/twizzler.typ
···11-#let title = "What is Twizzler?"
22-#lorem(200)
33-44-
+12-17
thesis/main.typ
···2233#show: mol-thesis
4455-66-75#mol-titlepage(
86 // title: "Design, Implementation, and Verification of a Security System for Data-Centric Operating Systems",
97 title: "Twizzler-Security\nA Capability-Based Security System for Twizzler",
···1311 birth-place: "Alice Springs, Australia",
1412 defence-date: "August 28, 2005",
1513 /* Only one supervisor? The singleton array ("Dr Jack Smith",) needs the
1616- trailing comma. */
1414+ trailing comma. */
1715 supervisors: ("Owen B. Arden",),
1816 committee: (
1917 "Dr. Peter Alvaro",
2018 "Dr. Andi Quinn",
2119 ),
2222- degree: "Computer Engineering B.S."
2020+ degree: "Computer Engineering B.S.",
2321)
24222523// DANIEL feedback
···3129// more feedback throughout, feel free to take or ignore
32303331#mol-abstract[
3434-Traditional operating systems permit data access through the kernel, applying
3535-security policy as a part of that pipeline. The Twizzler operating system flips
3636-that relationship on its head, focusing on an approach where data access is a
3737-first-class citizen, getting rid of the kernel as a middleman. This
3838-data-centric approach requires us to rethink how security policy interacts with
3939-users and the kernel. In this thesis, I present the design and implementation of
4040-core security primitives in Twizzler. Then I evaluate the security model with
4141-microbenchmarks of core security operations, and ways to increase performace.
4242-Lastly, I discuss a few things we plan to do in the continuation of this work, as
4343-its not conplete by any means.
4444-// Lastly, I discuss future work built
4545-// off this thesis, such as the incorporation of Decentralized Information Flow
4646-// Control.
3232+ Traditional operating systems permit data access through the kernel, applying
3333+ security policy as a part of that pipeline. The Twizzler operating system flips
3434+ that relationship on its head, focusing on an approach where data access is a
3535+ first-class citizen, getting rid of the kernel as a middleman. This
3636+ data-centric approach requires us to rethink how security policy interacts with
3737+ users and the kernel. In this thesis, I present the design and implementation of
3838+ core security primitives in Twizzler. Then I evaluate the security model with
3939+ micro benchmarks of core security operations, and ways to increase performance.
4040+ Lastly, I discuss a few things we plan to do in the continuation of this work, as
4141+ its not complete by any means.
4742]
48434944
+38-39
thesis/template.typ
···3030 #set heading(numbering: "1.1.1.1")
3131 #set outline.entry(fill: repeat(". "))
3232 #show outline.entry.where(
3333- level: 1
3333+ level: 1,
3434 ): set block(above: 1.5em)
3535 #show outline.entry.where(level: 1): it => [
3636 #set block(above: 1.5em)
···5757 "Dr Jack Smith",
5858 "Prof Dr Jane Williams",
5959 "Dr Jill Jones",
6060- "Dr Albert Heijn"),
6161- degree: "MSc in Logic"
6060+ "Dr Albert Heijn",
6161+ ),
6262+ degree: "MSc in Logic",
6263) = align(alignment.center)[
6364 // Size of the thesis's title
6465 #let title-size = 17pt
···81828283 *#author*
83848484- under the supervision of #supervisors.map(x => [*#x*]).join(", ", last:
8585- " and "), and submitted to the
8585+ under the supervision of #supervisors.map(x => [*#x*]).join(", ", last: " and"), and submitted to the
86868787- Examinations Board in partial fulfilment of the requirements for the
8888- degree of
8787+ Examinations Board in partial fulfillment of the requirements for the
8888+ degree of
89899090 #text([*#degree*], size: subtitle-size)
9191···93939494 #v(50pt)
95959696- #box(width: 75%,
9797- columns(2, gutter: -10%,
9898- align(alignment.left, [
9999- #set par(first-line-indent: 0em)
9696+ #box(width: 75%, columns(2, gutter: -10%, align(alignment.left, [
9797+ #set par(first-line-indent: 0em)
10098101101- // *Date of the public defence:*
9999+ // *Date of the public defence:*
102100103103- // _#defence-date _
101101+ // _#defence-date _
104102105105- #colbreak()
103103+ #colbreak()
106104107107- *Members of the Thesis Committee:*
105105+ *Members of the Thesis Committee:*
108106109109- #committee.join("\n")
110110- ])
111111- )
112112- )
107107+ #committee.join("\n")
108108+ ])))
113109114110 // #align(bottom, image("../img/illclogo.svg", alt: "ILLC Logo. A 3-by-3 jigsaw puzzle. The
115111 // center piece is white, while the surrounding pieces are black. The text
···122118// A non-numbered page dedicated to the thesis abstract.
123119#let mol-abstract(body) = [
124120 #set page(numbering: none)
125125- #align(center+horizon, heading("Abstract", numbering: none, outlined: false))
121121+ #align(center + horizon, heading(
122122+ "Abstract",
123123+ numbering: none,
124124+ outlined: false,
125125+ ))
126126 #body
127127 #pagebreak()
128128 #counter(page).update(1)
···132132#let mol-chapter(body) = [
133133 #pagebreak()
134134 #hide(
135135- heading(body,
136136- hanging-indent: 0pt,
137137- level: 1,
138138- supplement: [Chapter])
135135+ heading(body, hanging-indent: 0pt, level: 1, supplement: [Chapter]),
139136 )
140137 #text(size: 28pt, weight: "bold")[
141138 #set par(first-line-indent: 0pt)
···147144// A counter for mathematical blocks
148145#let mathcounter = rich-counter(
149146 identifier: "mathblocks",
150150- inherited_levels: 1
147147+ inherited_levels: 1,
151148)
152149153150// A block for mathematical definitions
154151#let definition = mathblock(
155152 blocktitle: "Definition",
156156- counter: mathcounter
153153+ counter: mathcounter,
157154)
158155159156// A block for mathematical theorems
160157#let theorem = mathblock(
161158 blocktitle: "Theorem",
162162- counter: mathcounter
159159+ counter: mathcounter,
163160)
164161165162// A block for mathematical examples
166163#let example = mathblock(
167164 blocktitle: "Example",
168168- counter: mathcounter
165165+ counter: mathcounter,
169166)
170167171168// A block for mathematical propositions
172169#let proposition = mathblock(
173170 blocktitle: "Proposition",
174174- counter: mathcounter
171171+ counter: mathcounter,
175172)
176173177174// A block for mathematical lemmas
178175#let lemma = mathblock(
179176 blocktitle: "Lemma",
180180- counter: mathcounter
177177+ counter: mathcounter,
181178)
182179183180// A block for mathematical corollaries
184181#let corollary = mathblock(
185182 blocktitle: "Corollary",
186186- counter: mathcounter
183183+ counter: mathcounter,
187184)
188185189186// A block for mathematical remarks
190187#let remark = mathblock(
191188 blocktitle: "Remark",
192192- prefix: [_Remark._]
189189+ prefix: [_Remark._],
193190)
194191195192// A block for mathematical proofs
···199196// This allows you to invoke it once per file in your thesis. This is important,
200197// because Typst would otherwise raise an error if you were to cite a source in
201198// a file with no bibliography.
202202-//
199199+//
203200// https://forum.typst.app/t/how-to-share-bibliography-in-a-multi-file-setup/1605/9
204204-//
201201+//
205202// If invoked with "true", it actually displays the bibliography.
206206-//
203203+//
207204// ```typst
208205// // main.typ
209206// #include "chapter-1.typ"
210207// #load-bib(read("works.bib"), main: true)
211208// ```
212212-//
209209+//
213210// Otherwise, it still makes the sources citable in the current file. Should be
214211// invoked with "true" at most once.
215215-//
212212+//
216213// ```typst
217214// // chapter-1.typ
218215// We build on the work of @Author_2025.
···222219 counter("illc-mol-thesis-bibs").step()
223220 context if main {
224221 [#bibliography(bytes(sources)) <main-bib>]
225225- } else if (counter("illc-mol-thesis-bibs").get().first() == 1 and
226226- query(<main-bib>) == ()) {
222222+ } else if (
223223+ counter("illc-mol-thesis-bibs").get().first() == 1
224224+ and query(<main-bib>) == ()
225225+ ) {
227226 // This is the first bibliography, and there is no main bibliography
228227 bibliography(bytes(sources))
229228 }