<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://homeostasis.scs.carleton.ca/wiki/index.php?action=history&amp;feed=atom&amp;title=Operating_Systems_2026F_Lecture_11</id>
	<title>Operating Systems 2026F Lecture 11 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://homeostasis.scs.carleton.ca/wiki/index.php?action=history&amp;feed=atom&amp;title=Operating_Systems_2026F_Lecture_11"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2026F_Lecture_11&amp;action=history"/>
	<updated>2026-10-25T14:32:14Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2026F_Lecture_11&amp;diff=25211&amp;oldid=prev</id>
		<title>Soma: Created page with &quot;==Video==  Video from the lectures given on October 22nd and 23rd, 2026 are now available: * [https://homeostasis.scs.carleton.ca/~soma/os-2026f/lectures/comp3000-2026f-lec11a-20261022.mp4 Lecture 11A] * [https://homeostasis.scs.carleton.ca/~soma/os-2026f/lectures/comp3000-2026f-lec11b-20261023.mp4 Lecture 11B]  ==Notes==  ===Lecture 11A===  &lt;pre&gt; Lecture 11B -----------  What makes smartphone secure?  Is it the app stores?  - automated and (for Apple) manual review?  -...&quot;</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2026F_Lecture_11&amp;diff=25211&amp;oldid=prev"/>
		<updated>2026-10-23T16:26:21Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==Video==  Video from the lectures given on October 22nd and 23rd, 2026 are now available: * [https://homeostasis.scs.carleton.ca/~soma/os-2026f/lectures/comp3000-2026f-lec11a-20261022.mp4 Lecture 11A] * [https://homeostasis.scs.carleton.ca/~soma/os-2026f/lectures/comp3000-2026f-lec11b-20261023.mp4 Lecture 11B]  ==Notes==  ===Lecture 11A===  &amp;lt;pre&amp;gt; Lecture 11B -----------  What makes smartphone secure?  Is it the app stores?  - automated and (for Apple) manual review?  -...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Video==&lt;br /&gt;
&lt;br /&gt;
Video from the lectures given on October 22nd and 23rd, 2026 are now available:&lt;br /&gt;
* [https://homeostasis.scs.carleton.ca/~soma/os-2026f/lectures/comp3000-2026f-lec11a-20261022.mp4 Lecture 11A]&lt;br /&gt;
* [https://homeostasis.scs.carleton.ca/~soma/os-2026f/lectures/comp3000-2026f-lec11b-20261023.mp4 Lecture 11B]&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
===Lecture 11A===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Lecture 11B&lt;br /&gt;
-----------&lt;br /&gt;
&lt;br /&gt;
What makes smartphone secure?&lt;br /&gt;
&lt;br /&gt;
Is it the app stores?&lt;br /&gt;
 - automated and (for Apple) manual review?&lt;br /&gt;
 - developer vetting?&lt;br /&gt;
&lt;br /&gt;
NOPE&lt;br /&gt;
&lt;br /&gt;
The automated part is just anti-malware scanning, plus some policy checks&lt;br /&gt;
 - and that&amp;#039;s standard on Windows and even macOS&lt;br /&gt;
 - and anti-malware scanners are always reactive&lt;br /&gt;
&lt;br /&gt;
If you&amp;#039;re trying to categorize all manner of badness, you&amp;#039;re always reactive&lt;br /&gt;
 - infinite ways to be bad!&lt;br /&gt;
&lt;br /&gt;
Rather than making a deny list, better security comes from an allow list&lt;br /&gt;
 - world of known good is inherently more limited&lt;br /&gt;
&lt;br /&gt;
Turns out Apple and Google (historically) haven&amp;#039;t vetted developers&lt;br /&gt;
 - bar to entry VERY low&lt;br /&gt;
 - different from game stores!&lt;br /&gt;
&lt;br /&gt;
So app store policies are not sufficient to make mobile OSs more secure than desktop OSs&lt;br /&gt;
&lt;br /&gt;
But apps on mobile OSs are sandboxed!&lt;br /&gt;
&lt;br /&gt;
Remember that sandboxing is an aspiration, not a technical mechanism&lt;br /&gt;
 - want code to be isolated from rest of system so it can&amp;#039;t do harm&lt;br /&gt;
&lt;br /&gt;
Sandboxing is normally dynamic, i.e., code is checked at runtime&lt;br /&gt;
 - versus static analysis before running code&lt;br /&gt;
&lt;br /&gt;
Most used sandboxes are language or runtime-based sandboxes&lt;br /&gt;
 - the program execution environment itself limits program activity&lt;br /&gt;
 - JavaScript/WebAssembly, Java (JVM), Flash&lt;br /&gt;
&lt;br /&gt;
When a language requires a runtime, it means that its code isn&amp;#039;t compiled directly into machine code&lt;br /&gt;
 - instead, it is run as source code or as byte code&lt;br /&gt;
 - but isn&amp;#039;t this slower? generally yes (but not always)&lt;br /&gt;
   - with interpretation, yes&lt;br /&gt;
   - with just-in-time compilation, mostly yes&lt;br /&gt;
&lt;br /&gt;
When you have a runtime, that runtime can implement restrictions on code behavior&lt;br /&gt;
 - it can provide the sandbox&lt;br /&gt;
&lt;br /&gt;
But language-based runtimes aren&amp;#039;t enough on mobile OSs&lt;br /&gt;
 - we want to run native apps (i.e., ones in machine code)&lt;br /&gt;
&lt;br /&gt;
So we have to use the operating system.&lt;br /&gt;
&lt;br /&gt;
Good news, modern OSs already do a lot of the work&lt;br /&gt;
 - already have limits on memory and CPU&lt;br /&gt;
    - virtual memory&lt;br /&gt;
    - scheduling&lt;br /&gt;
 - but the system call interface is, by default, too permissive&lt;br /&gt;
&lt;br /&gt;
iOS and Android take different approaches to OS-level sandboxing&lt;br /&gt;
 - but today they are basically equivalent&lt;br /&gt;
&lt;br /&gt;
Android builds on the standard UNIX security model&lt;br /&gt;
 - assign users to apps&lt;br /&gt;
 - groups for resources&lt;br /&gt;
 - intent permissions for Android APIs (implemented through binder)&lt;br /&gt;
   - mediated by systemserver&lt;br /&gt;
 - plus SELinux (mandatory access control)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
iOS started with app isolation through OS-level virtualization&lt;br /&gt;
 - every app thinks it has a separate environment&lt;br /&gt;
    - users, groups, process IDs, filesystem&lt;br /&gt;
 - so any sharing between apps then has to be built as exceptions to the isolation&lt;br /&gt;
&lt;br /&gt;
Rest of term:&lt;br /&gt;
 - scheduling&lt;br /&gt;
 - virtual memory&lt;br /&gt;
 - filesystems&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Why not cheat?&lt;br /&gt;
 - AI&amp;#039;s do it all the time!&lt;br /&gt;
&lt;br /&gt;
What is cheating?&lt;br /&gt;
 - achieving a goal (or attempting to achieve a goal)&lt;br /&gt;
 - using means that are not permitted for some reason&lt;br /&gt;
   - peer pressure&lt;br /&gt;
   - &amp;quot;morals&amp;quot;&lt;br /&gt;
   - &amp;quot;ethics&amp;quot;&lt;br /&gt;
   - against the &amp;quot;rules&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cheating is inherent to current AI systems&lt;br /&gt;
 - because AI is just search&lt;br /&gt;
 - and modern AI systems search over concepts&lt;br /&gt;
&lt;br /&gt;
So what is cheating in this context?&lt;br /&gt;
 - looking for solutions in the &amp;quot;wrong&amp;quot; part of the search space&lt;br /&gt;
&lt;br /&gt;
Why don&amp;#039;t we like cheating in AI systems?&lt;br /&gt;
 - mostly because it undermines learning&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Lecture 11B===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Lecture 11B&lt;br /&gt;
-----------&lt;br /&gt;
&lt;br /&gt;
What makes smartphone secure?&lt;br /&gt;
&lt;br /&gt;
Is it the app stores?&lt;br /&gt;
 - automated and (for Apple) manual review?&lt;br /&gt;
 - developer vetting?&lt;br /&gt;
&lt;br /&gt;
NOPE&lt;br /&gt;
&lt;br /&gt;
The automated part is just anti-malware scanning, plus some policy checks&lt;br /&gt;
 - and that&amp;#039;s standard on Windows and even macOS&lt;br /&gt;
 - and anti-malware scanners are always reactive&lt;br /&gt;
&lt;br /&gt;
If you&amp;#039;re trying to categorize all manner of badness, you&amp;#039;re always reactive&lt;br /&gt;
 - infinite ways to be bad!&lt;br /&gt;
&lt;br /&gt;
Rather than making a deny list, better security comes from an allow list&lt;br /&gt;
 - world of known good is inherently more limited&lt;br /&gt;
&lt;br /&gt;
Turns out Apple and Google (historically) haven&amp;#039;t vetted developers&lt;br /&gt;
 - bar to entry VERY low&lt;br /&gt;
 - different from game stores!&lt;br /&gt;
&lt;br /&gt;
So app store policies are not sufficient to make mobile OSs more secure than desktop OSs&lt;br /&gt;
&lt;br /&gt;
But apps on mobile OSs are sandboxed!&lt;br /&gt;
&lt;br /&gt;
Remember that sandboxing is an aspiration, not a technical mechanism&lt;br /&gt;
 - want code to be isolated from rest of system so it can&amp;#039;t do harm&lt;br /&gt;
&lt;br /&gt;
Sandboxing is normally dynamic, i.e., code is checked at runtime&lt;br /&gt;
 - versus static analysis before running code&lt;br /&gt;
&lt;br /&gt;
Most used sandboxes are language or runtime-based sandboxes&lt;br /&gt;
 - the program execution environment itself limits program activity&lt;br /&gt;
 - JavaScript/WebAssembly, Java (JVM), Flash&lt;br /&gt;
&lt;br /&gt;
When a language requires a runtime, it means that its code isn&amp;#039;t compiled directly into machine code&lt;br /&gt;
 - instead, it is run as source code or as byte code&lt;br /&gt;
 - but isn&amp;#039;t this slower? generally yes (but not always)&lt;br /&gt;
   - with interpretation, yes&lt;br /&gt;
   - with just-in-time compilation, mostly yes&lt;br /&gt;
&lt;br /&gt;
When you have a runtime, that runtime can implement restrictions on code behavior&lt;br /&gt;
 - it can provide the sandbox&lt;br /&gt;
&lt;br /&gt;
But language-based runtimes aren&amp;#039;t enough on mobile OSs&lt;br /&gt;
 - we want to run native apps (i.e., ones in machine code)&lt;br /&gt;
&lt;br /&gt;
So we have to use the operating system.&lt;br /&gt;
&lt;br /&gt;
Good news, modern OSs already do a lot of the work&lt;br /&gt;
 - already have limits on memory and CPU&lt;br /&gt;
    - virtual memory&lt;br /&gt;
    - scheduling&lt;br /&gt;
 - but the system call interface is, by default, too permissive&lt;br /&gt;
&lt;br /&gt;
iOS and Android take different approaches to OS-level sandboxing&lt;br /&gt;
 - but today they are basically equivalent&lt;br /&gt;
&lt;br /&gt;
Android builds on the standard UNIX security model&lt;br /&gt;
 - assign users to apps&lt;br /&gt;
 - groups for resources&lt;br /&gt;
 - intent permissions for Android APIs (implemented through binder)&lt;br /&gt;
   - mediated by systemserver&lt;br /&gt;
 - plus SELinux (mandatory access control)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
iOS started with app isolation through OS-level virtualization&lt;br /&gt;
 - every app thinks it has a separate environment&lt;br /&gt;
    - users, groups, process IDs, filesystem&lt;br /&gt;
 - so any sharing between apps then has to be built as exceptions to the isolation&lt;br /&gt;
&lt;br /&gt;
Rest of term:&lt;br /&gt;
 - scheduling&lt;br /&gt;
 - virtual memory&lt;br /&gt;
 - filesystems&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Why not cheat?&lt;br /&gt;
 - AI&amp;#039;s do it all the time!&lt;br /&gt;
&lt;br /&gt;
What is cheating?&lt;br /&gt;
 - achieving a goal (or attempting to achieve a goal)&lt;br /&gt;
 - using means that are not permitted for some reason&lt;br /&gt;
   - peer pressure&lt;br /&gt;
   - &amp;quot;morals&amp;quot;&lt;br /&gt;
   - &amp;quot;ethics&amp;quot;&lt;br /&gt;
   - against the &amp;quot;rules&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cheating is inherent to current AI systems&lt;br /&gt;
 - because AI is just search&lt;br /&gt;
 - and modern AI systems search over concepts&lt;br /&gt;
&lt;br /&gt;
So what is cheating in this context?&lt;br /&gt;
 - looking for solutions in the &amp;quot;wrong&amp;quot; part of the search space&lt;br /&gt;
&lt;br /&gt;
Why don&amp;#039;t we like cheating in AI systems?&lt;br /&gt;
 - mostly because it undermines learning&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Soma</name></author>
	</entry>
</feed>