Upload
andrew-pantyukhin
View
284
Download
1
Embed Size (px)
Citation preview
The Obsoletion of theOS
EuroBSDcon 2011, Maarssen
the Unix OS▪ 1970s — comprehensive platform complete with
apps
▪ 1990s — nice platform to run third-party apps
▪ 2010s — thin sub-middleware layer
operating system▪ meeting point
▪ implementation repo
▪ academic vehicle
good ol' times▪ data
▪ server OS (Unix)
▪ user
wasted effort ...▪ server OS (FreeBSD, etc)
▪ server middleware (hadoop, etc)
▪ server app (Facebook PHP, etc)
... wasted effort▪ client OS (PC-BSD, etc)
▪ client middleware (browsers, etc)
▪ client app (Facebook JS, etc)
Chrome OS▪ consolidating client side
▪ only in concept
large systems▪ Google, Facebook, Twitter, ...
▪ a small company cluster
▪ any two machines, e.g. client-server
TCP/IP is evil▪ never meant for intrasystem comms
▪ utterly tenacious
▪ preempted real distributed systems engineering
the cloud▪ does not tolerate inconveniences in the OS
▪ happy to move any piece of logic up
▪ happy to forget about the OS altogether (baremetal Java!)
should BSD care?▪ wasted effort
▪ highly fragmented distributed engineering effort
▪ extremely poor quality of net result
a way forward▪ look for obvious things to move down into the OS
▪ provide useful conveniences
▪ set the trend and define guidelines
the usual impediment▪ the larger the system —
▪ — the more the experience and ideas
▪ — the less time to speak and contribute
complexitymanagement
real life
role aware rc▪ one /etc for all machines
▪ infectious boot: pxe, hdd, usb
▪ / in git
rc.conf.dcase `hostname -s` inz[0-9]*|h22|nemea|h4|lw[1-2])
nginx_enable="YES"nginx_profiles="default zdata";;
esac
machine generateddata
▪ don't try to print human readable
▪ don't try to parse human readable
▪ expect multiple hosts
▪ cron(8), periodic(8)
▪ apache-style logs, logs in SQL
task contracts▪ access to data
▪ resource allocation
▪ real-life metrics
task baby-sitting▪ launchd, fcs
▪ crontab: pgrep || start
▪ monitd, etc
AAA▪ LDAP/GSS
▪ master.passwd(5), group(5) in git(1)
SW fault tolerance▪ watchdogd(8)
▪ timelimit(1)
▪ custom wrappers
▪ rctl(8), capsicum
HW fault tolerance▪ ipmitool
▪ disk error counters
▪ memory testing
massive execution▪ zz -grole1,role2 -Xrole3,role4 uptime
▪ distributed uptime, df, w, top, ...
storage▪ RAID, HAST hard to justify on a scale
▪ ZFS limited to one node
▪ no useful distributed fs
▪ UFS2 + nginx + custom dispatcher
the good bits▪ ssh hpn
▪ rctl
▪ pkgng
▪ SU+J
▪ bsnmpd