project visiondthain/courses/cse40677/spring2016/... · 2016. 1. 13. · – demo of a few litle...

16
CSE 40677 Spring 2015 Open Source So6ware Development Project Vision Prof. Douglas Thain University of Notre Dame

Upload: others

Post on 22-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Project Visiondthain/courses/cse40677/spring2016/... · 2016. 1. 13. · – Demo of a few liTle hacks to the code. • Next Friday: – Breakdown of big tasks into chunks. – IniPal

CSE40677Spring2015OpenSourceSo6wareDevelopment

ProjectVision

Prof.DouglasThain

UniversityofNotreDame

Page 2: Project Visiondthain/courses/cse40677/spring2016/... · 2016. 1. 13. · – Demo of a few liTle hacks to the code. • Next Friday: – Breakdown of big tasks into chunks. – IniPal

SemesterGoals:1-Buildaprototypeopera0ngsysteminwhichhierarchicalcontainmentistheorganizing

principle.

2-Makeitasustainableopen-sourceprojectsothatotherscaneasily

contribute.

Page 3: Project Visiondthain/courses/cse40677/spring2016/... · 2016. 1. 13. · – Demo of a few liTle hacks to the code. • Next Friday: – Breakdown of big tasks into chunks. – IniPal

ModernsystemshavemanylayersofmutuallyuntrusPngso6ware.

OperaPngSystem

UserA UserB

WebBrowser

WebPage1

EmailApplicaPon

WebPage2

WebApp

VideoCodec

CodeinATachment

OtherApps

Page 4: Project Visiondthain/courses/cse40677/spring2016/... · 2016. 1. 13. · – Demo of a few liTle hacks to the code. • Next Friday: – Breakdown of big tasks into chunks. – IniPal

ButtheOSonlyseparatesusers.

OperaPngSystem

UserA UserB

WebBrowser

WebPage1

EmailApplicaPon

WebPage2

WebApp

VideoCodec

CodeinATachment

OtherApps

Page 5: Project Visiondthain/courses/cse40677/spring2016/... · 2016. 1. 13. · – Demo of a few liTle hacks to the code. • Next Friday: – Breakdown of big tasks into chunks. – IniPal

TheTradiPonalUnixModel:

•  Onlythesuper-usercancreatenewprotecPondomains(i.e.users)inordertoseparateuntrustedso6ware.

•  OrdinaryuserscannotcreatenewprotecPondomains,andsotheycannotprotectthemselvesfromuntrustedso6ware!

Page 6: Project Visiondthain/courses/cse40677/spring2016/... · 2016. 1. 13. · – Demo of a few liTle hacks to the code. • Next Friday: – Breakdown of big tasks into chunks. – IniPal

Thisresultsinseveralbigproblems:

•  Security:– AnordinaryprogramhasnosimplewayofprotecPngitselffromasub-program.

•  ConfiguraPon:– Userscannotsetuptheso6wareconfiguraPonthattheywanttouse,withoutge[ngthesysadminto“install”theso6wareforeveryone.

•  ContaminaPon:–  Everyso6warepackageexpectstohaveaccesstoeveryotherso6warepackagesimultaneously.

Page 7: Project Visiondthain/courses/cse40677/spring2016/... · 2016. 1. 13. · – Demo of a few liTle hacks to the code. • Next Friday: – Breakdown of big tasks into chunks. – IniPal

Containmentispossibletoday,butexpensiveandcomplicated:

•  MandatoryAccessControl(SELinux):SomeonemustconfiguraPontheinteracPonsofeverythingonthesystem.

•  VirtualMachines–Muchtooheavyweighttorunindividualcomponents.

•  Containers–Ge[ngbeTer,butsPlltooheavyweightjusttorunasinglewebapp,videocodec,ordataanalysistask.

•  RunPmeslikeJVM/CLR/JS–providecontainment,butonlyifyouprograminthatlanguage!

Page 8: Project Visiondthain/courses/cse40677/spring2016/... · 2016. 1. 13. · – Demo of a few liTle hacks to the code. • Next Friday: – Breakdown of big tasks into chunks. – IniPal

Whatwewant:

•  Containment:–  Everyprocessislimitedtoasubsetofresources(display,disk,memoryetc)andcannotventureoutsideofthoselimits.

•  HierarchicalContainment:–  EveryprocessiscapableofstarPngsub-processeswhoselimitsfallwithinthatoftheparentprocess.

•  Asaresult:–  EveryprocessiseffecPvelythesuperuserwithrespecttoallofitssub-processes.Noneedforsudo/setuid!

Page 9: Project Visiondthain/courses/cse40677/spring2016/... · 2016. 1. 13. · – Demo of a few liTle hacks to the code. • Next Friday: – Breakdown of big tasks into chunks. – IniPal

AprototypeoperaPngsystem:

•  AkernelthatcanmanagethemostessenPalresources(display,disk,memory)andrunsomeexampleprogramssoastoclearlydemonstratehierarchicalcontainment.

•  FocusonthedesignofthebasickernelarchitectureandsystemcallAPItoenablehierarchicalcontainment.

•  (Itmusthavesomeworkingdrivers,butthatisn’ttheinteresPngpoint.)

Page 10: Project Visiondthain/courses/cse40677/spring2016/... · 2016. 1. 13. · – Demo of a few liTle hacks to the code. • Next Friday: – Breakdown of big tasks into chunks. – IniPal

StarPngPoint:Basekernel

hTp://github.com/dthain/basekernel

•  Askeletonkernelthatbootsthesystemin32bitmode,andhasminimalsupportfordisks,memory,andvideo.

Page 11: Project Visiondthain/courses/cse40677/spring2016/... · 2016. 1. 13. · – Demo of a few liTle hacks to the code. • Next Friday: – Breakdown of big tasks into chunks. – IniPal

SketchofCompleteSystem

ATA Video MMU Others?

FileSystem

WindowSystem

MemoryManager

SystemCallAPI

AppsApps

ContainmentPolicy

Page 12: Project Visiondthain/courses/cse40677/spring2016/... · 2016. 1. 13. · – Demo of a few liTle hacks to the code. • Next Friday: – Breakdown of big tasks into chunks. – IniPal

SemesterGoals:1-BuildaprototypeoperaPngsysteminwhichhierarchicalcontainmentis

theorganizingprinciple.

2-Makeitasustainableopen-sourceprojectsothatotherscaneasily

contribute.

Page 13: Project Visiondthain/courses/cse40677/spring2016/... · 2016. 1. 13. · – Demo of a few liTle hacks to the code. • Next Friday: – Breakdown of big tasks into chunks. – IniPal

ProjectRequirements•  Apublic,highquality,andeditablewebpresencewhichincludesa

compellingprojectvision,instrucPonsfordownloadingandusingtheso6ware,technicaldocumentaPonandlinksregardingthedetailsoftheso6ware,andadescripPonofthemembershipandgovernanceoftheproject.

•  Theprojectsourcecodemustbemaintainedinapubliccoderepository,andchangesacceptedtotheprojectthroughastandardizedprocess.Theremustbeasimpleandwell-documentedprocessforbuildingandusingthesourcecode.

•  PublicvenuesforreporPngbugs,requesPnghelp,anddiscussingprojectfeatures.Thesemayincludeissuetrackers,forumso6ware,orwhateverismostappropriatetotheproject.Projectdevelopmentmustbecarriedoutusingthesetools.

•  Thefinalversionoftheso6waremustmeettherequirementsofaMinimumViableProduct(MVP)whichwillbearPculatedbytheteamearlyinthesemester.

Page 14: Project Visiondthain/courses/cse40677/spring2016/... · 2016. 1. 13. · – Demo of a few liTle hacks to the code. • Next Friday: – Breakdown of big tasks into chunks. – IniPal

MeePngStructure

•  Setupascheduletoworktogetheronaregularbasiseachweek,includingsomePmetosyncandpreparetheweeklyreport.

•  Presentaweeklyreporttomewithaccomplishmentsofeachmember,overallstatus,anddemoofthecurrentcode.

•  Nothingis“real”unPlitischeckedinandpublicallyvisibleonline!

Page 15: Project Visiondthain/courses/cse40677/spring2016/... · 2016. 1. 13. · – Demo of a few liTle hacks to the code. • Next Friday: – Breakdown of big tasks into chunks. – IniPal

Ge[ngStarted•  Selectopensourcetoolsforsourcecode,webpage,bugtracking,etc.(Thereisnoperfecttool,sopicksomethingandgoforward…)

•  Decideupondivisonoflabor,atleasttostart.(Itcanchangeasyougoforward.)

•  Getthestartercode,compileit,runitinaVM,andplayaroundwithit.

•  Picksome*simple*improvementsthatcanbedonequickly,toexerciseyourprojectprocess.

Page 16: Project Visiondthain/courses/cse40677/spring2016/... · 2016. 1. 13. · – Demo of a few liTle hacks to the code. • Next Friday: – Breakdown of big tasks into chunks. – IniPal

ShortTermTargets

•  ThisFriday:– Teamworkschedulesetup.–  InfrastructureselectedandiniPalized.– DemoofafewliTlehackstothecode.

•  NextFriday:– Breakdownofbigtasksintochunks.–  IniPaldivisionoflaboragreedon.– AllinfrastructureupwithiniPalusefulcontent.– FirstimprovementswriTen,debugged,accepted.