Transcript
Page 1: OmniOS Motivation and Design ~ LISA 2012

/

Motivation & Design

Building an Illumos-based OS

Friday, December 14, 12

Page 2: OmniOS Motivation and Design ~ LISA 2012

Hi, I’m @postwait

• Theo Schlossnagle

• Founder of OmniTI

• Avid open source developer

• Illumos contributor

Friday, December 14, 12

Page 3: OmniOS Motivation and Design ~ LISA 2012

Motivation

Galaxy Quest (1999)

Sir Alexander Dane You're just going to have to figure out what it wants.What is its motivation?

Jason Nesmith It's a rock monster.It doesn't have motivation.

Sir Alexander Dane See, that's your problem, Jason.You were never serious about the craft.

Friday, December 14, 12

Page 4: OmniOS Motivation and Design ~ LISA 2012

Where the world is going...

Friday, December 14, 12

Page 5: OmniOS Motivation and Design ~ LISA 2012

Where the world is today...

Friday, December 14, 12

Page 6: OmniOS Motivation and Design ~ LISA 2012

Where the world is today...

Friday, December 14, 12

Page 7: OmniOS Motivation and Design ~ LISA 2012

Where the world is today...

Friday, December 14, 12

Page 8: OmniOS Motivation and Design ~ LISA 2012

Where the world is today...

Friday, December 14, 12

Page 9: OmniOS Motivation and Design ~ LISA 2012

Some brief history

• We ran a lot of Solaris (10 GA⇾u9 + SXCE)

Friday, December 14, 12

Page 10: OmniOS Motivation and Design ~ LISA 2012

Some brief history

• We ran a lot of Solaris (10 GA⇾u9 + SXCE)

• I learned that I like: DTrace, crossbow

Friday, December 14, 12

Page 11: OmniOS Motivation and Design ~ LISA 2012

Some brief history

• We ran a lot of Solaris (10 GA⇾u9 + SXCE)

• I learned that I like: DTrace, crossbow

• I learned that I love: ABI stability, zones

Friday, December 14, 12

Page 12: OmniOS Motivation and Design ~ LISA 2012

Some brief history

• We ran a lot of Solaris (10 GA⇾u9 + SXCE)

• I learned that I like: DTrace, crossbow

• I learned that I love: ABI stability, zones

• I learned that I need: ZFS, open source

Friday, December 14, 12

Page 13: OmniOS Motivation and Design ~ LISA 2012

Some brief history

• We ran a lot of Solaris (10 GA⇾u9 + SXCE)

• I learned that I like: DTrace, crossbow

• I learned that I love: ABI stability, zones

• I learned that I need: ZFS, open source

• The future was bright

Friday, December 14, 12

Page 14: OmniOS Motivation and Design ~ LISA 2012

The Oracle Solar(is) Ecplise: 2013/08/13

http://mail.opensolaris.org/pipermail/opensolaris-discuss/2010-August/059310.html

Friday, December 14, 12

Page 15: OmniOS Motivation and Design ~ LISA 2012

Pouring a 40 for Sun... and moving on.

Friday, December 14, 12

Page 16: OmniOS Motivation and Design ~ LISA 2012

UNIX lives on in many of us

Friday, December 14, 12

Page 17: OmniOS Motivation and Design ~ LISA 2012

The motivation

• We have a lot of customers with“traditional deployments”(servers, not instances)

• We would likely have bought Solaris 11,if I could build it from source.

• We needed a path of least resistance for our Solaris 10 users... that delivered on the promises Sun made.

Friday, December 14, 12

Page 18: OmniOS Motivation and Design ~ LISA 2012

Actual Motivation

It so happensthere is abusinessmodel.

Friday, December 14, 12

Page 19: OmniOS Motivation and Design ~ LISA 2012

Goals: set ‘em

Friday, December 14, 12

Page 20: OmniOS Motivation and Design ~ LISA 2012

Goals

ABI Stability, ZFS,Zones, Crossbow,

DTrace, Open Source

#1

Friday, December 14, 12

Page 21: OmniOS Motivation and Design ~ LISA 2012

Goals

ABI Stability, ZFS,Zones, Crossbow,

DTrace, Open Source

#1

(+ KVM courtesy of Joyent)

Friday, December 14, 12

Page 22: OmniOS Motivation and Design ~ LISA 2012

Goals

Traditionally installable (on disk)via network

#2

Friday, December 14, 12

Page 23: OmniOS Motivation and Design ~ LISA 2012

Goals

Traditionally installable (on disk)via network

#2

kayak

ZFS-based

disk imaging

Friday, December 14, 12

Page 24: OmniOS Motivation and Design ~ LISA 2012

Goals

Bring userlandrecent to prolong life

#3

Friday, December 14, 12

Page 25: OmniOS Motivation and Design ~ LISA 2012

Goals

Bring userlandrecent to prolong life

#3

Sadly, Ill

umos needs

OpenSSL, libxml2 and zlib

Friday, December 14, 12

Page 26: OmniOS Motivation and Design ~ LISA 2012

Goals

Bring userlandrecent to prolong life

#3

gcc 4.6.3(4.4 for kernel)

Sadly, Ill

umos needs

OpenSSL, libxml2 and zlib

(1.0.1)

(2

.9.0)

(1.2.7)

Friday, December 14, 12

Page 27: OmniOS Motivation and Design ~ LISA 2012

Goals

Build all of OmniOSwith core OmniOS

A subjective, “thick” take on JEOS

#4

Friday, December 14, 12

Page 28: OmniOS Motivation and Design ~ LISA 2012

Goals

Build all of OmniOSwith core OmniOS

A subjective, “thick” take on JEOS

#4

Only 111

pieces

of sof

tware

Friday, December 14, 12

Page 29: OmniOS Motivation and Design ~ LISA 2012

Goals

Build all of OmniOSwith core OmniOS

A subjective, “thick” take on JEOS

#4

Only 111

pieces

of sof

tware

“Put that shit in a box and ship it.”

Friday, December 14, 12

Page 30: OmniOS Motivation and Design ~ LISA 2012

Goals

Consistent multiinstruction-set-architecture

(ISA) support

#5

Friday, December 14, 12

Page 31: OmniOS Motivation and Design ~ LISA 2012

Goals

Consistent multiinstruction-set-architecture

(ISA) support

#5

Ship both32-bit & 64-bit libsconsistently

Friday, December 14, 12

Page 32: OmniOS Motivation and Design ~ LISA 2012

Goals

Establish arigorous

major release cycle(every 6 months)

#6

Friday, December 14, 12

Page 33: OmniOS Motivation and Design ~ LISA 2012

Goals

Establish arigorous

major release cycle(every 6 months)

#62012-04 r151002....

2012-10 r151004

Friday, December 14, 12

Page 34: OmniOS Motivation and Design ~ LISA 2012

Goals

Establish anon-disruptive

minor update cycle(every week)

#7

Friday, December 14, 12

Page 35: OmniOS Motivation and Design ~ LISA 2012

Goals

Establish anon-disruptive

minor update cycle(every week)

#72012-04.2 r151002a2012-04.4 r151002b

.

.

.

.2012-10.2 r151002z

Friday, December 14, 12

Page 36: OmniOS Motivation and Design ~ LISA 2012

Goals

Commercial support formission-criticality

and/orcompliance requirements

#8

Friday, December 14, 12

Page 37: OmniOS Motivation and Design ~ LISA 2012

Goals

Commercial support formission-criticality

and/orcompliance requirements

#8

Friday, December 14, 12

Page 38: OmniOS Motivation and Design ~ LISA 2012

Kayak Installs Simple Stupid

• Kayak (http://omnios.omniti.com/browse.php/core/kayak)

• builds an altroot install

• zfs sends it (to a file, then over HTTP)

• makes a miniroot (served over TFTP)

• written in shell (sysadmins rejoice)

• tiny python web server (not required)

Friday, December 14, 12

Page 39: OmniOS Motivation and Design ~ LISA 2012

Release Cycles

r151002a

Friday, December 14, 12

Page 40: OmniOS Motivation and Design ~ LISA 2012

Release Cycles

r151002a r151003

Friday, December 14, 12

Page 41: OmniOS Motivation and Design ~ LISA 2012

Release Cycles

r151002a r151003

irregularspasmodic

change

Friday, December 14, 12

Page 42: OmniOS Motivation and Design ~ LISA 2012

Release Cycles

r151002a r151003

irregularspasmodic

change

r151002c

Friday, December 14, 12

Page 43: OmniOS Motivation and Design ~ LISA 2012

Release Cycles

r151002a r151003

irregularspasmodic

change

r151002c

r151002d

Friday, December 14, 12

Page 44: OmniOS Motivation and Design ~ LISA 2012

Release Cycles

r151002a r151003

irregularspasmodic

change

r151002c

r151002d 1 wee

k

Friday, December 14, 12

Page 45: OmniOS Motivation and Design ~ LISA 2012

Release Cycles

r151002a r151003

irregularspasmodic

change

r151002z

r151002c

r151002d 1 wee

k

Friday, December 14, 12

Page 46: OmniOS Motivation and Design ~ LISA 2012

Release Cycles

r151002a r151003

irregularspasmodic

change

freeze

r151002z

r151002c

r151002d 1 wee

k

Friday, December 14, 12

Page 47: OmniOS Motivation and Design ~ LISA 2012

Release Cycles

r151002a r151003

irregularspasmodic

change

freeze

r151002z

r151002c

r151002d

r151004a

1 wee

k

Friday, December 14, 12

Page 48: OmniOS Motivation and Design ~ LISA 2012

Release Cycles

r151002a r151003

irregularspasmodic

change

freeze

r151002z

r151002c

r151002d

r151004a

26 weeks

1 wee

k

Friday, December 14, 12

Page 49: OmniOS Motivation and Design ~ LISA 2012

Release Cycles

r151002a r151003 r151005

irregularspasmodic

change

freeze

r151002z

r151002c

r151002d

r151004a

26 weeks

1 wee

k

Friday, December 14, 12

Page 50: OmniOS Motivation and Design ~ LISA 2012

Release Cycles

r151002a r151003 r151005

irregularspasmodic

change

freeze

r151002z

r151002c

r151002d

r151004a

26 weeks

1 wee

k irregularspasmodic

change

Friday, December 14, 12

Page 51: OmniOS Motivation and Design ~ LISA 2012

Release Cycles

r151002a r151003 r151005

irregularspasmodic

change

freeze

r151004b

r151002z

r151002c

r151002d

r151004a

26 weeks

1 wee

k irregularspasmodic

change

Friday, December 14, 12

Page 52: OmniOS Motivation and Design ~ LISA 2012

Release Cycles

r151002a r151003 r151005

irregularspasmodic

change

freeze

r151004b

r151004c

r151002z

r151002c

r151002d

r151004a

26 weeks

1 wee

k irregularspasmodic

change

Friday, December 14, 12

Page 53: OmniOS Motivation and Design ~ LISA 2012

Release Cycles

r151002a r151003 r151005

irregularspasmodic

change

freeze

r151004b

r151004c

r151004e

r151002z

r151002c

r151002d

r151004a

26 weeks

1 wee

k irregularspasmodic

change

Friday, December 14, 12

Page 54: OmniOS Motivation and Design ~ LISA 2012

Release Cycles

r151002a r151003 r151005

irregularspasmodic

change

freeze

r151004b

r151004c

r151004e

r151004z r151002z

r151002c

r151002d

r151004a

26 weeks

1 wee

k irregularspasmodic

change

Friday, December 14, 12

Page 55: OmniOS Motivation and Design ~ LISA 2012

Release Cycles

r151002a r151003 r151005

irregularspasmodic

change

freeze

r151004b

r151004c

r151004e

r151004z r151002z

r151002c

r151002d

r151004a

26 weeks

1 wee

k irregularspasmodic

change

freeze

Friday, December 14, 12

Page 56: OmniOS Motivation and Design ~ LISA 2012

Release Cycles

r151002a r151003 r151005

irregularspasmodic

change

freeze

r151004b

r151004c

r151004e

r151004z r151002z

r151002c

r151002d

r151004a

26 weeks

1 wee

k irregularspasmodic

change

freeze

Friday, December 14, 12

Page 57: OmniOS Motivation and Design ~ LISA 2012

Available on EC2

Friday, December 14, 12

Page 58: OmniOS Motivation and Design ~ LISA 2012

Operating System Holy War Outcomes

Friday, December 14, 12

Page 59: OmniOS Motivation and Design ~ LISA 2012

Operating System Holy War Outcomes

Editor: vi (naturally)

Friday, December 14, 12

Page 60: OmniOS Motivation and Design ~ LISA 2012

Operating System Holy War Outcomes

Editor: vi (naturally)

Filesystem: ZFS (obviously)

Friday, December 14, 12

Page 61: OmniOS Motivation and Design ~ LISA 2012

Operating System Holy War Outcomes

Editor: vi (naturally)

Filesystem: ZFS (obviously)

Packaging: IPS (WTF?!)

Friday, December 14, 12

Page 62: OmniOS Motivation and Design ~ LISA 2012

IPS Controversy

✓IPS sucks (yes, like the rest)

✓IPS made new problems to solve

✓IPS is uncommon

Friday, December 14, 12

Page 63: OmniOS Motivation and Design ~ LISA 2012

IPS Justification

• IPS builds are part of Illumos

• ipkg zone is something we use

• I’m disaffected:"It's packaging other people's softwarethat makes system administrators violent people"- http://www.youtube.com/watch?v=ieCTIPG43no

• Avoid “solutions:”I’m looking at you facets

• Minimal use of incorporations

Friday, December 14, 12

Page 64: OmniOS Motivation and Design ~ LISA 2012

IPS niceties

• IPS is a network resource

• pkgsend is tool, not a framework

• All HTTP micro assets (cacheable)

• Handles all the BE magic

• Without the “features” it just works

Friday, December 14, 12

Page 65: OmniOS Motivation and Design ~ LISA 2012

What we learned.

• We built packages for Solaris 10...and for Linux ...and for FreeBSD

• Because we’re a snowflake...just like very one else.

• Rule: “keep your shit to yourself.”

Friday, December 14, 12

Page 66: OmniOS Motivation and Design ~ LISA 2012

Minimal: not useful

• OmniOS only ships “core”

• no web server. no database.no proxy cache. no PHP. no Ruby.no bind.

• we ship perl, use your own.

• we ship python, use your own.

Friday, December 14, 12

Page 67: OmniOS Motivation and Design ~ LISA 2012

Minimal: awesome-sauce

We use OmniOS...

like a layered cake

Publisher URL

ms.omniti.com http://pkg.omniti.com/omniti-ms/

perl.omniti.com http://pkg.omniti.com/omniti-perl/

Friday, December 14, 12

Page 68: OmniOS Motivation and Design ~ LISA 2012

Distro Construction Kit

OmniOS as a base for buildingmore comprehensiveIllumos distributions

Friday, December 14, 12


Top Related