<?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=DistOS_2021F_2021-09-30</id>
	<title>DistOS 2021F 2021-09-30 - 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=DistOS_2021F_2021-09-30"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2021F_2021-09-30&amp;action=history"/>
	<updated>2026-05-13T00:42:53Z</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=DistOS_2021F_2021-09-30&amp;diff=23407&amp;oldid=prev</id>
		<title>Soma: Created page with &quot;==Notes==  &lt;pre&gt; Lecture 7 ---------  What is Solaris?  - proprietary UNIX  - although OpenSolaris was released under a    copyleft license that is specifically incompatible...&quot;</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2021F_2021-09-30&amp;diff=23407&amp;oldid=prev"/>
		<updated>2021-10-13T02:22:05Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==Notes==  &amp;lt;pre&amp;gt; Lecture 7 ---------  What is Solaris?  - proprietary UNIX  - although OpenSolaris was released under a    copyleft license that is specifically incompatible...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Notes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Lecture 7&lt;br /&gt;
---------&lt;br /&gt;
&lt;br /&gt;
What is Solaris?&lt;br /&gt;
 - proprietary UNIX&lt;br /&gt;
 - although OpenSolaris was released under a&lt;br /&gt;
   copyleft license that is specifically incompatible&lt;br /&gt;
   with the GPL (CDDL)&lt;br /&gt;
 - but then was made proprietary again&lt;br /&gt;
    - community still maintains opensolaris?&lt;br /&gt;
&lt;br /&gt;
 - originally was the successor to SunOS, which&lt;br /&gt;
   was based on BSD UNIX (Solaris was based on System V&lt;br /&gt;
   UNIX)&lt;br /&gt;
     - Oracle got it when they bought Sun&lt;br /&gt;
 - zfs &amp;amp; dtrace started with Solaris, now more widely used&lt;br /&gt;
&lt;br /&gt;
What is a container?&lt;br /&gt;
 - in the paper, zone with resource management&lt;br /&gt;
 - but in modern usage?&lt;br /&gt;
&lt;br /&gt;
Experience 1 is all about containers&lt;br /&gt;
 - as managed with kubernetes&lt;br /&gt;
&lt;br /&gt;
A container is essentially the userland of a process&lt;br /&gt;
 - containers on a host share a kernel&lt;br /&gt;
 - unlike virtual machines, where each VM has a kernel&lt;br /&gt;
   and the whole is managed by a hypervisor&lt;br /&gt;
&lt;br /&gt;
Kubernetes is an orchestration platform&lt;br /&gt;
 - i.e., it manages containers&lt;br /&gt;
&lt;br /&gt;
Containers are the unit of distribution in the cloud today&lt;br /&gt;
(even more than virtual machines)&lt;br /&gt;
 - NOT processes&lt;br /&gt;
&lt;br /&gt;
So a container is...&lt;br /&gt;
 - a group of processes&lt;br /&gt;
 - and associated storage and other resources&lt;br /&gt;
   (whatever those proceses need &amp;quot;locally&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
A process can&amp;#039;t be easily isolated from the rest of the system&lt;br /&gt;
 - that&amp;#039;s why plan9, LOCUS and such seem to forward so&lt;br /&gt;
   much towards other systems (turns into client/server)&lt;br /&gt;
&lt;br /&gt;
But a container is...self contained&lt;br /&gt;
 - so you can package it up, move it around, run it anywhere&lt;br /&gt;
&lt;br /&gt;
It is really a minimal abstraction of a host, not a process&lt;br /&gt;
 - a VM is an abstraction of a host, but with extra overhead&lt;br /&gt;
    - for 50 host-like things, why run 50 kernels when&lt;br /&gt;
      you can just run one?&lt;br /&gt;
&lt;br /&gt;
Solaris zones was really about the sharing of individual systems&lt;br /&gt;
 - much like OS virtualization has been used in the past&lt;br /&gt;
 - classic use case: multiple web servers on a host&lt;br /&gt;
 - really good for any app that wants &amp;quot;a whole computer&amp;quot; to&lt;br /&gt;
   run&lt;br /&gt;
&lt;br /&gt;
What&amp;#039;s hard about containers?&lt;br /&gt;
 - security, specifically isolation&lt;br /&gt;
 - UNIX-like kernels weren&amp;#039;t built to separate groups&lt;br /&gt;
   of processes so strictly&lt;br /&gt;
 - remains a big problem today, where best practices&lt;br /&gt;
   currently is to not run containers from multiple&lt;br /&gt;
   customers on the same system (VM)&lt;br /&gt;
     - each customer should use their own VMs because&lt;br /&gt;
       hardware virtual machines provide better isolation&lt;br /&gt;
 - so many opportunities for processes in one container&lt;br /&gt;
   to mess with other containers&lt;br /&gt;
      - because OS kernels have so many shared&lt;br /&gt;
        data structures&lt;br /&gt;
&lt;br /&gt;
What you should read to really understand this is your TAs master&amp;#039;s thesis&lt;br /&gt;
 - he just defended&lt;br /&gt;
 - it is really good&lt;br /&gt;
 - bpfcontain :-)&lt;br /&gt;
   (old version, bpfbox)&lt;br /&gt;
&lt;br /&gt;
the cloud really took off on the basis of virtual machines&lt;br /&gt;
 - if you go to AWS and rent a &amp;quot;computer&amp;quot;, your renting a hardware-based VM (likely running on Linux&amp;#039;s KVM or Windows&amp;#039;s Hyper-V)&lt;br /&gt;
 - in this old version of Solaris, the fair share scheduler is just for the CPU&lt;br /&gt;
   - you really have to manage CPU, memory, disk, network, and any other I/O&lt;br /&gt;
&lt;br /&gt;
The other big change today is containers are most frequently disposable&lt;br /&gt;
 - built from an immutable disk image&lt;br /&gt;
 - easily thrown away when not needed, has no&lt;br /&gt;
   critical state (that state is stored elsewhere)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Soma</name></author>
	</entry>
</feed>