project visiondthain/courses/cse40677/spring2016/... · 2016. 1. 13. · – demo of a few litle...
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](https://reader035.vdocuments.net/reader035/viewer/2022071017/5fd0245b8f15a1193b185e20/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071017/5fd0245b8f15a1193b185e20/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071017/5fd0245b8f15a1193b185e20/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071017/5fd0245b8f15a1193b185e20/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071017/5fd0245b8f15a1193b185e20/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071017/5fd0245b8f15a1193b185e20/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071017/5fd0245b8f15a1193b185e20/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071017/5fd0245b8f15a1193b185e20/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071017/5fd0245b8f15a1193b185e20/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071017/5fd0245b8f15a1193b185e20/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071017/5fd0245b8f15a1193b185e20/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071017/5fd0245b8f15a1193b185e20/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071017/5fd0245b8f15a1193b185e20/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071017/5fd0245b8f15a1193b185e20/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071017/5fd0245b8f15a1193b185e20/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071017/5fd0245b8f15a1193b185e20/html5/thumbnails/16.jpg)
ShortTermTargets
• ThisFriday:– Teamworkschedulesetup.– InfrastructureselectedandiniPalized.– DemoofafewliTlehackstothecode.
• NextFriday:– Breakdownofbigtasksintochunks.– IniPaldivisionoflaboragreedon.– AllinfrastructureupwithiniPalusefulcontent.– FirstimprovementswriTen,debugged,accepted.