Sunteți pe pagina 1din 12

CS50Appliance2014

CS50Manual(/)

TableofContents
NOTICE
Cheatsheet
Notice
Instructions
HowtoInstallAppliance
HowtoUpdateAppliance
HowtoUseAppliance
HowtoChangePassword
HowtoOpenaTerminal
HowtoSSHtoAppliance
HowtoChangeResolution
HowtoEnableDropbox
HowtoPreventDropboxfromSynchingPersonalFilesintotheAppliance
HowtoTransferFilesbetweenApplianceandYourComputer
Windows
MacOS
HowtoTakeaScreenshot
HowtoShareControlofYourScreen
Changelog
KnownIssues
FutureWork
Acknowledgements

NOTICE
Thedocumentationonthispageisforversion2014oftheCS50Appliance.
Youshoulduseversion2014oftheapplianceifyouare:

takingCS50x2015throughedX,
takingCSCIE50inSpring2015throughHarvardExtensionSchool,
pursuingaCS50Certificatein2015throughHarvardDivisionofContinuing
Education,or
followingthefall2014offeringofCS50online.
Inanyoftheabovecases,followtheinstructionslateronthispage.
IffollowingFall2013ofCS50(orCSCIE50),youshoulduseversion19(../19)ofthe
appliance.
IffollowingFall2012ofCS50(orCSCIE52),youshoulduseversion17(../17)ofthe
appliance.
IffollowingSummer2012ofCSCIS75,youshouldalsouseversion17(../17)ofthe
appliance.
IffollowingSpring2012ofCS1,CS51,orCS164,youshoulduseversion3(../3)ofthe
appliance.
IffollowingFall2011(https://www.cs50.net/)ofCS50,youshoulduseversion2.3(../2.3)of
theappliance.
IffollowingFall2010(http://cs50.tv/2010/fall/)ofCS50,youshoulduseversion2.1(../2.1)of
theappliance.
IffollowingFall2009(http://cs50.tv/2009/fall/)ofCS50,youshoulduseversion1.4(../1.4)of
theappliance.
TheCS50Applianceisavirtualmachine(http://en.wikipedia.org/wiki/Virtual_machine)(VM)that
letsyou"take"CS50(andothercourses!),evenifyourenotastudentatHarvard.Itsbasedon
Ubuntu(http://en.wikipedia.org/wiki/Ubuntu_(operating_system)),aLinux
(http://en.wikipedia.org/wiki/Linux)basedoperatingsystem
(http://en.wikipedia.org/wiki/Operating_system).Itsanappliance
(http://en.wikipedia.org/wiki/Computer_appliance)inthesensethatwevepreconfiguredthisVM
foraspecificpurpose:CS50!
Inotherwords,evenifyourenotastudentinCS50,youcanstillplayalongathome.TheCS50
Appliancewillletyoucompilesourcecodefromlecturesandimplementproblemsetswithout
havingtofigureouthowtoconfigureclang(http://en.wikipedia.org/wiki/Clang),etc.yourself.
Moreover,theCS50ApplianceletsyourunLinuxinsideofawindowonyourowncomputer,
evenifyourealreadyrunning(someotherversionof)Linux,MacOS,Solaris,orWindows!
Incidentally,theapplianceisalwaysworkinprogress,sopleaseforgiveanybugs!

Incaseyourcomputerisunabletosupportavirtualmachine,oryousimplyprefernottouse
one,andyouknowhowtoinstallLinuxfromanISO9660image,weprovideanISOimage
(http://mirror.cs50.net/appliance50/2014/releases/29/appliance502014.iso)thatyoucanuseto
installanUbuntusystemequivalenttotheCS50Applianceon"baremetal".

Cheatsheet
Seeinstructionsformuchmoredetail.
YourName

JohnHarvard

Your

jharvard

Username
Your

crimson

Password
Appliances

anumberoftheformw.x.y.z,whichcanbefoundintheappliances

IPAddress

bottomrightcorner

Appliances

anumberoftheform 2014 ,(where isaminorversionnumber)which

Version

canbefoundintheappliancesbottomrightcorner

YourMySQL

jharvard

Username
YourMySQL

crimson

Password
phpMyAdmin

http://localhost/phpmyadmin/ fromwithintheappliance
http://*w.x.y.z*/phpmyadmin/ fromyourowncomputer(where
*w.x.y.z* istheIPaddressintheappliancesbottomrightcorner)

Notice
Forresearchpurposes,theCS50Applianceisdesignedtolog:

commandlinecommands(e.g., ls , makehello ,etc.)


theoutputofprogramslike check50 , clang , gdb , style50 ,etc.
gdb commandsand

sourcecodethatyoucreateand/orsaveinsideoftheappliance.Thoselogsarethen
periodicallyuploadedtoCS50sservers.
AmongCS50soverarchingresearchgoalsaretounderstandbetterhowstudentscode,how
studentsrespondtoerrormessages,andhowstudentsprogressfromnonworkingtoworking
code.Noneofthedatathatsloggedisusedtocomputegrades.
TheCS50Appliancedoesnot(andcannot)loganyactivitiesorfilesonyourownMacorPC
(outsideoftheCS50Appliance).ItcanonlylogactivityinsideoftheCS50Appliance(i.e.,
insideofitsownwindow).Evenso,youmaydisabletheuploadingoflogstoCS50sserversif
youwouldliketooptoutofthisresearch.Simplyrun no50 inaterminalwindowtooptout.

Instructions
HowtoInstallAppliance
InordertoinstalltheCS50Appliance,youfirstneedtoinstallahypervisor
(http://en.wikipedia.org/wiki/Hypervisor),whichisaprogramthatwillletyourunvirtualmachines
(http://en.wikipedia.org/wiki/Virtual_machine)onyourowncomputer,whetheryourunMacOS,
Windows,orLinux.
IfyouhaveaMac,youcancheckwhichversionofOSXitsrunningbyselectingAboutthis
MacfromtheApplelogomenuatthetopleftcornerofyourscreen.IfyourversionofOSX
is10.8.x("MountainLion")orlater,werecommendthatyoufollowtheseinstructionsfor
VMwareFusion7(fusion/).[1]
IfyouhaveaPCrunninga64biteditionofWindowsorLinux,werecommendthatyou
followtheseinstructionsforVMwareWorkstation11(workstation/).[2]
Alternatively(ifyourcomputerdoesntmeettherequirementsabove,oryourunintotroublewith
theapplicationsdonatedbyVMware),youmightfollowtheseinstructionsforVirtualBox
(virtualbox/).
Oncetheapplianceinstalled,itsnotuncommonforittotakeaminuteorsotoboot.Butif,once
atJohnHarvardsdesktop,theappliancestillfeelsunbearablyslowonaPCrunningWindows
orLinux,youmightneedtoenablehardwarevirtualization(/virtualization).(Hardware

virtualizationshouldbeenabledbydefaultonanyIntelbasedMacmanufacturedinthepastfew
years.)Evenwithhardwarevirtualizationenabled,though,virtualmachinesmightstillfeelslow
ifyourcomputerisafewyearsold,hasaCPUthatsrunningatlessthan2GHz,orhasonly
1GBorsoofRAM.

HowtoUpdateAppliance
Todeterminewhichversionoftheapplianceyouhave,simplylookintheappliancesbottom
rightcorner,whereyoushouldsee 2014 inboldface,where isanumber.Alternatively,you
canopenaterminalandexecute
appliance50v
whichshouldreport 2014# aswell.
Toensureyouhavethelatestversionoftheappliance,youcanupdateyoursbyopeninga
terminalandexecuting:
update50
Anupdatemaytakeseveralminutes.
Notethatyoucannotupdatefromversion1.4,2.1,2.3,3,17a,17,or19oftheapplianceto
version2014.Youmustinsteaddownload2014,pertheinstructionsabove.

HowtoUseAppliance
ThefirstthingyoushouldseewhentheappliancebootsupisJohnHarvardsdesktop.(Oh,
henceforth,youareJohnHarvard(http://en.wikipedia.org/wiki/John_Harvard_(clergyman)).Your
initialpasswordiscrimson.Andhereswhatyoulooklike
(http://en.wikipedia.org/wiki/File:BostonTrip91.jpg).)EventhoughyoumightthinkofLinuxas
havingonlyacommandlineinterface(http://en.wikipedia.org/wiki/Commandline_interface),
graphicaluserinterfaces(http://en.wikipedia.org/wiki/Graphical_user_interface)doexist.Weve
installedXfce(http://en.wikipedia.org/wiki/Xfce),oneofthemostpopular,foryou.However,we
installedasfewprogramsaspossibletokeeptheappliancesmall.Yourewelcometoinstall
additionalprogramsvia aptget .

HowtoChangePassword
Youcanchangeyourpasswordinanyoftheseways:
SelectMenu>SettingsManager>UsersandGroupsandfollowtheonscreenprompts.

Openaterminalandexecute:
passwd
Withthatsaid,allowustosuggestthatyounotchangeJohnHarvardspasswordifyourown
computerisalreadypasswordprotected.(Lifewillbesimplerwithcrimson.)Theappliancehas
beenconfiguredinsuchawaythatonlysomeonewithaccesstoyourcomputer(e.g.,you)can
accesstheappliance.EventhoughtheappliancecanconnecttotheInternet,theInternet
cannotconnecttotheappliance.

HowtoOpenaTerminal
Youcanopenaterminalinanyoftheseways:
SelectMenu>Accessories>TerminalEmulator.Youllfindyourselfinyourhome
directory( ~ ).
ClickTerminalsicon(ablacksquare)intheappliancesbottomleftcorner.Youllfind
yourselfinyourhomedirectory( ~ ).
RightclickanywhereonyourdesktopandselectOpenTerminalHere.Youllfindyourselfin
~/Desktop/ .

SelectMenu>Accessories>gedit.Youllfindyourselfinyourhomedirectory( ~ )in
geditsbottompanel.
Nomattertheapproachyoutake,itsintheterminalwindowthatyoullbeabletotype
commandslike cd , clang , ls ,etc.

HowtoSSHtoAppliance
IfyoudliketoSSHtotheappliancefromyourowncomputer(aswithTerminalonMacOSor
withPuTTYonWindows),youcanSSHfromyourcomputertotheappliancesIPaddress
(whichisdisplayedintheappliancesbottomrightcorner).

HowtoChangeResolution
Youcanchangetheappliancesresolution(i.e.,widthandheight)ineitheroftheseways:
SelectMenu>SettingsManager>Displaywithintheappliance,selectanewvaluetothe
rightofResolution,thenclickClose.
Clickanddragtheappliancesbottomrightcorner.

HowtoEnableDropbox
ThisfeaturerequiresInternetaccess.

Tomakeiteasiertobackupfileswithintheapplianceautomaticallyaswellassharethemwith
yourowncomputer(s),youcansynchronizeadirectoryinJohnHarvardsaccountwithDropbox
(http://www.dropbox.com/features).
HereshowtoconfiguretheapplianceforDropbox.
1. SelectMenu>Dropbox.
2. Youshouldbepromptedto"downloadtheproprietarydaemon"(i.e.,software)clickOK.
Thesoftwareshouldproceedtodownloadandunpack.
3. YoushouldthenbepromptedtosetupDropbox.
IfyoudontalreadyhaveaDropboxaccount,leaveIdonthaveaDropboxaccount
checked,thenclickNext.CreateyourDropboxasprompted.
IfyoualreadyhaveanDropboxaccount,checkIalreadyhaveaDropboxaccount,
thenclickOK.Loginasprompted.
4. IfpromptedtoupgradeyourDropbox,simplyleave2GBchecked(whichisfree)thenclick
Next,unlessyouwanttoupgradetoapaidaccount.
5. IfpromptedtoChoosesetuptype,leaveTypicalchecked,thenclickInstall.Ifpromptedto
"merge",clickMerge.
6. Ifpromptedtotakea5steptour,clickSkipTouritsscreenshotswontmatchwhatyoull
seeintheappliance.
7. WheninformedThatsit!,uncheckOpenmyDropboxfoldernow,thenclickFinish.A
Dropboxiconshouldthenappearintheappliancesbottomrightcorner.
Onlythosefilesandfoldersthatyousavein ~/Dropbox/ willbesynchronizedwithyour
Dropboxaccount.

HowtoPreventDropboxfromSynchingPersonalFilesintotheAppliance
1. CtrlclickontheDropboxiconintheappliancesbottomrightcornerandselect
Preferences.
2. ClickAdvanced.
3. ClickSelectiveSync.
4. Uncheckthefoldersthatyoudontwantsynchedintotheappliance.
5. ClickUpdate.

HowtoTransferFilesbetweenApplianceandYourComputer

IfyoudliketoSFTP(http://en.wikipedia.org/wiki/SSH_file_transfer_protocol)totheappliance
fromyourowncomputer(aswithCyberduck(http://cyberduck.ch/)onMacOSorwithWinSCP
(http://winscp.net/eng/download.php)onWindows),youcanSFTPfromyourcomputerto
w.x.y.z(wherew.x.y.zistheappliancesIPaddress,whichcanbefoundintheappliances
bottomrightcorner).
Alternatively,youcan"mount"JohnHarvardshomedirectory(viaaprotocolcalledSMB
(http://en.wikipedia.org/wiki/Server_Message_Block),otherwiseknownasCIFS
(http://en.wikipedia.org/wiki/CIFS))inawindowonyourowndesktop,toandfromwhichyoucan
draganddropfiles.Hereshow,whetheryourunLinux,MacOS,orWindows.

Windows
1. Openanyfolderonyourharddrive.
2. Clicktheaddressbaratopthefolderswindowandinput\\w.x.y.z\jharvard(wherew.x.y.zis
theappliancesIPaddress,whichcanbefoundintheappliancesbottomrightcorner),then
clickEnter.
3. Ifpromptedforyournameandpassword:
1. InputjharvardforUsername.
2. InputcrimsonforPassword.
3. CheckRemembermycredentialsifyoudlike.
4. ClickConnect.
JohnHarvardshomedirectoryshouldthenopeninanewwindow.

MacOS
1. SelectConnecttoServerfromtheFindersGomenu.
2. UnderServerAddress:,inputsmb://w.x.y.z(wherew.x.y.zistheappliancesIPaddress,
whichcanbefoundintheappliancesbottomrightcorner).(Clickthe+iconifyoudliketo
addtheappliancetoyourFavoriteServers.)ThenclickConnect.
3. Ifpromptedforyournameandpassword:
1. SelectRegisteredUser.
2. InputjharvardforName.
3. InputcrimsonforPassword.
4. ClickConnect.
JohnHarvardshomedirectoryshouldthenopeninanewwindow.

HowtoTakeaScreenshot
Itssometimeshelpfultotakeascreenshotoftheappliancesothatyoucanrememberorshare
somethingyouseeonyourscreen.
Totakeascreenshotinsideoftheappliance:
1. SelectMenu>Accessories>Screenshot.
2. CheckaRegiontocapture.
3. LeaveCapturethemousepointercheckedunlessyoudliketohideit.
4. LeaveDelaybeforecapturingat1,unlessyouneedmoretime.
5. ClickOK.
6. YoushouldthenbepromptedtodecideonanAction.LeaveSavecheckedandthenclick
OKifyoudliketosavethescreenshotasafiledecideonadestinationasprompted.You
canthensharethatscreenshotwithsomeoneifnecessary,asbyopeningGmailinFirefox
andsendingitasanattachment.
Youcanalsosharecontrolofyourscreenifyouneedsomeoneelsetoseemorethana
screenshot.

HowtoShareControlofYourScreen
ThisfeaturerequiresInternetaccess.
Sothatyoucanhelp(andbehelpedby!)fellowlearnersontheInternet,theappliancecomes
withTeamViewer(http://www.teamviewer.com/),whichletsyoushare(controlof)yourscreen
withsomeoneelse(a"partner")ontheInternet(andviceversa).
Toshareyourscreenwithsomeelse:
1. SelectMenu>TeamViewer.(ClickAcceptifprompted.)Awindowshouldappear.
2. TellyourpartnerYourIDandPasswordthatyousee.Onceyourpartnerinputsthose
values,yourscreenshouldbeshared.Thoughifyourowncomputerhasafirewall,you
mightfirstbepromptedto"allowincomingconnections"orthelike.
Toseesomeoneelsesscreen:
1. AskyourpartnerforaPartnerIDandPassword.
2. SelectMenu>TeamViewer.(ClickAcceptLicenseAgreementifprompted.)Awindow
shouldappear.

3. InputthePartnerIDintothatwindow,thenclickConnecttopartner.
4. Whenprompted,inputthePassword,atwhichpointyoushouldseeyourpartnersscreen.
Ifyouwouldliketoconnecttosomeoneelsesappliancefromyourowncomputer(ratherthan
fromyourownappliance)orfromamobiledevice,youcandownloadTeamViewerforfreefor
Android,iOS,Linux,MacOS,orWindowsfromhttp://www.teamviewer.com/en/download/
(http://www.teamviewer.com/en/download/).

Changelog
1.4(../1.4#Changelog)
2.0(../2.0#Changelog)
2.1(../2.1#Changelog)
2.2
2.3(../2.3#Changelog)
3(../3#Changelog)
19(../19#Changelog)
20140
TransitionedtoUbuntu
201424
201426
201429

KnownIssues
Noneatthistime.

FutureWork
Belowarefeaturesthatmaybeincludedinsomefutureversionoftheappliance.

AddSelenium.
Add dnsmasq andresolve*.localdomainto127.0.0.1.
AddsupportforstaticIPs.

Acknowledgements
ManythankstoeveryonewhoshelpedusimprovetheCS50Appliance,including,butnot
limitedto:
AaronOehlschlaeger
Amir
ChengGong
ChrisGerber
DanArmendariz
DarrinRagsdale
Dotty
FedericoLerner
GabrielGuimaraes
GlennHolloway
JamesLankford
KartikeyaSrivastava
MatthewPolega
MatthewRoknich
MauroBraunstein
NobuKikuchi
PhilipDurbin
R.J.Aquino
RobBowden
RodRuggiero
RolandoCruz

RoryOReilly
SergioPrado
ShaunGibson

1.IfyoureusingOSXversion10.7.x("Lion"),pleasedropanotetosysadmins@cs50.harvard.edu
(mailto:sysadmins@cs50.harvard.edu).
2.IfyourWindowsorLinuxcomputerrunsa32bitOS,pleasedropanoteto
sysadmins@cs50.harvard.edu(mailto:sysadmins@cs50.harvard.edu).

Copyright2015,CS50

S-ar putea să vă placă și