Operating Systems 2026F Lecture 4: Difference between revisions

From Soma-notes
No edit summary
 
(One intermediate revision by the same user not shown)
Line 2: Line 2:


Video from the lectures given on September 22nd and 23rd, 2026 are now available:
Video from the lectures given on September 22nd and 23rd, 2026 are now available:
* [https://homeostasis.scs.carleton.ca/~soma/os-2026f/lectures/comp3000-2026f-lec04a-20260922.mp4 September 22nd video]
* [https://homeostasis.scs.carleton.ca/~soma/os-2026f/lectures/comp3000-2026f-lec04a-20260922.mp4 Lecture 4A]
* [https://homeostasis.scs.carleton.ca/~soma/os-2026f/lectures/comp3000-2026f-lec04b-20260923.mp4 September 23rd video]
* [https://homeostasis.scs.carleton.ca/~soma/os-2026f/lectures/comp3000-2026f-lec04b-20260923.mp4 Lecture 4B]


==Notes==
==Notes==
===Lecture 4A===
<pre>
Lecture 4A
----------
Why is the original LinuxOnTab pretty slow?
- load the whole linux distribution over the web, all at once
- but also, it is emulating an x86 processor (32 bit)
What is happening when you load a web page? What code is running?
- by default, it is HTML, CSS, JavaScript
- so how do you run x86 code?
Sidebar - what is x86?
- refers to the instruction set of Intel (and then AMD) processors
8080 - 8 bit
8086/8088 - 16 bit
- 8088 was in the first IBM PC
80286
80386 <-- first 32 bit x86 processor
80486
Pentium
Pentium Pro
...
Intel decided to go make the Itanium for its 64 bit processor
- not backwards compatible
AMD made x86-64
- 64 bit version of x86
So what's going on in your web browser?
LinuxOnTab v1
x86 emulator
Firefox (JavaScript/WebAssembly)
x86-64 <-> Kernel
LinuxOnTab v2 (in WebAssembly)
Firefox (JavaScript/WebAssembly)
x86-64 <-> Kernel
An operating system can be big or small
- a small operating system => complexity pushed to applications
- a big operating system => applications can be simple, use rich functionality of OS
Again, files are not all "files"
- many aren't real <- /proc, /sys, /dev
- many aren't persistent <- tmpfs filesystems
Shell variables are private to a shell process
Environment variables are passed to any child processes
- a child process is created from a parent process
</pre>
===Lecture 4B===
<pre>
Lecture 4B
----------
Why are some operating systems big, and others small?
- small because you don't have room for anything else
- large because more functionality -> simpler applications
  (for the developer)
Intel processors
8080 <- 8 bit
8088/8086 <- 16 bit (Original IBM PC)
80286
80386 <- 32 bit processor
80486
Pentium
Pentium Pro
Itanium <--- 64 bit processor, NOT backwards compatible
AMD came up with x86-64, and Intel had to adopt it
In LinuxOnTab, we have
LinuxOnTab v1
v86 emulator (in WebAssembly)
Browser (x86 or ARM) <-> Kernel
Hardware
LinuxOnTab v2 (in WebAssembly)
Browser (x86 or ARM) <-> Kernel
Hardware
v1 is slower because
- emulates x86-32
- loads whole disk image
v2 loads on demand and has native WebAssembly
</pre>

Latest revision as of 21:12, 24 September 2026

Video

Video from the lectures given on September 22nd and 23rd, 2026 are now available:

Notes

Lecture 4A

Lecture 4A
----------

Why is the original LinuxOnTab pretty slow?
 - load the whole linux distribution over the web, all at once
 - but also, it is emulating an x86 processor (32 bit)


What is happening when you load a web page? What code is running?
 - by default, it is HTML, CSS, JavaScript
 - so how do you run x86 code?


Sidebar - what is x86?
 - refers to the instruction set of Intel (and then AMD) processors

8080 - 8 bit
8086/8088 - 16 bit
 - 8088 was in the first IBM PC
80286
80386 <-- first 32 bit x86 processor
80486
Pentium
Pentium Pro
...
Intel decided to go make the Itanium for its 64 bit processor
 - not backwards compatible

AMD made x86-64
 - 64 bit version of x86



So what's going on in your web browser?

LinuxOnTab v1
x86 emulator
Firefox (JavaScript/WebAssembly)
x86-64 <-> Kernel

LinuxOnTab v2 (in WebAssembly)
Firefox (JavaScript/WebAssembly)
x86-64 <-> Kernel


An operating system can be big or small
 - a small operating system => complexity pushed to applications
 - a big operating system => applications can be simple, use rich functionality of OS

Again, files are not all "files"
 - many aren't real <- /proc, /sys, /dev
 - many aren't persistent <- tmpfs filesystems

Shell variables are private to a shell process

Environment variables are passed to any child processes
 - a child process is created from a parent process

Lecture 4B

Lecture 4B
----------

Why are some operating systems big, and others small?
 - small because you don't have room for anything else
 - large because more functionality -> simpler applications
   (for the developer)

Intel processors
8080 <- 8 bit
8088/8086 <- 16 bit (Original IBM PC)
80286
80386 <- 32 bit processor
80486
Pentium
Pentium Pro

Itanium <--- 64 bit processor, NOT backwards compatible

AMD came up with x86-64, and Intel had to adopt it


In LinuxOnTab, we have


LinuxOnTab v1
v86 emulator (in WebAssembly)
Browser (x86 or ARM) <-> Kernel
Hardware

LinuxOnTab v2 (in WebAssembly)
Browser (x86 or ARM) <-> Kernel
Hardware

v1 is slower because
 - emulates x86-32
 - loads whole disk image

v2 loads on demand and has native WebAssembly