Operating Systems 2026F Lecture 4: Difference between revisions
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 | * [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 | * [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