The Future of
the Operating
System
What is an
Operating
System ?
OS Manages
Processes &
Resources
OS Provides
Portability 

(same app runs on different
hardware)
OS Provides
Isolation &
Reliability
Operating
Systems &
Apps Over Time
1960s &

1970s
Mainframe Era
OS in 1960s
• IBM OS/360
– First OS that kept track of system
resources (program, memory, storage)
• CTSS
– Introduce scheduling
• Univac Exec 8, Burrows MCP, Multics
OS in 1970s
• UNIX takes over mainframes
– only IBM’s MVS and DEC’s OpenVMS
remain
• UNIX (written in C) first portable OS
Apps in 1960s & 1970s
• Ran on mainframe
• Many apps ran on one mainframe (multi-tenancy)
• Very few operators
• Relatively small set of “users”
• Users didn’t interact with application

• CHALLENGE: Very limited reach
1980s &

1990s
Microcomputer Era
OS in 1980s & 1990s
• UNIX dominates mainframes/servers
• PC emerges & brings lots of users
(expanded reach)
–DOS & Windows
–Mac System Software
–OS2, Amiga OS & BeOS
Apps in 1980s & 1990s
• Application ran on a desktop
• Single user
• Operator became the user

• CHALLENGE : Distribution
– Physical media
– Ship times measured in months/years
1995 -
2005
Dawn of the Internet Era
OS in 1995 - 2005
• Browser becomes gateway to Internet
applications
• Desktop ruled by Windows
• Linux emerges as the “OS of the
Internet”
• LAMP Stack
Apps in 1995 - 2005
• Internet emerges, brings easier distribution
• Applications are monoliths running on a few
machines
• Applications run on owned / leased hardware
• Applications accessed through browser
• Apps have millions of users
• CHALLENGE: Scale
2005 -
2015
Distributed Applications Era
Apps in 2005 - 2015
• Browser solidified as window (view) to
applications
• Mobile emerges… most apps merely
component (view) to server based
applications
• Apps have 1+ billion users
APPS IN 2005 - 2015
• Apps evolved to be composed of services
• Distributed applications running on clusters
• NoSQL & Cloud

• CHALLENGE : Operations & Deployment
– Many services require coordination
– Need duplicate environments (dev, stage, prod)
Applications Run on Clusters
Static
Website
Web Front EndBackground
Workers
User DB Analytics DB
Queue API
Endpoint
oneapplication
Components Need to Work Together
Static
Website
Web Front End
Background
Workers
User DB Analytics DB
QueueAPI
Endpoint
oneapplication
New OS needs to
schedule not only
processes, but
components across nodes
Development VM
QA Server
Public Cloud
Disaster Recovery
Developer Laptop
Server Cluster
Data Center
Distributed Applications Challenge
Static
Website
Web Front EndBackground
Workers
User DB Analytics DB
Queue API
Endpoint
Development Test & QA Production Scale Out
oneapplication
OS no longer
providing
application
portability
OS needs to
evolve to meet
Application
Linux provides
foundation for
Solution.. but needs
another layer
Docker +
Linux
Modern
Application
Portability
The Docker Mission
Build Ship Run
Anywhere
Any Application
Local Cloud Data Center
Docker Engine
Creates, Ships & Runs containers
• Deployable anywhere
• Communicates with Docker Hub
BUILD

Package app and
dependencies
together
SHIP
Deploy locally, in the
cloud or in the data
center
RUN

Run containers with
monitoring and stats
anywhere

Application Portability
Run Docker containers unchanged
in any environment, on any
infrastructure
Build Ship Run
Schedule
Components &
Resources
Orchestration
Compose
• Configure multi-container applications with a simple file
Machine
• Auto-provision hosts and install Engine with a single
command
• Drivers to integrate with 12 infrastructure partners

Swarm
• Running and scheduling clusters of containers
Isolation &
Reliability
Isolation
Container provides true isolation of
components
Build Ship Run
Service Reliability
Faithful representation of app with
encompassed dependencies
Build Ship Run
Development VM
QA Server
Public Cloud
Disaster Recovery
Developer Laptop
Server Cluster
Data Center
Distributed Applications Solution
Development Test & QA Production Scale Out
Static
Website
Web Front
End
BackgroundWorkers
Analytics DB
Queue APIEndpoint
User DB
oneapplication
The Docker
Un-Enabled
Organization
Case Study: Gilt Groupe
Before Docker
• 7 Monolithic apps
• Wasted time
implementing 

monolithic PaaS
•Dev-to-Prod: weeks
Case Study: ING
Before Docker
•9+ months from
commit to deploy
• Poorly rated applications
•Redundant processes
and apps
The Docker
Enabled
Organization
Case Study: Gilt Groupe
After Docker
• 400+ microservices
• 100+ innovations a day
• Easily burst capacity
at peak times
•Dev-to-Prod: minutes
Case Study: ING
After Docker
•15 minutes from
commit to live
• 1,500 deployments
per week
The Future…
… is written by
people willing to
disrupt the
established
UBER
Distributed
Apps are the
Future
Linux + Docker 

is the Future of
Operating Systems
THANK YOU

The Future of the Operating System - Keynote LinuxCon 2015