÷ƒ’À;è TeX output 2003.11.26:1336‹ÿÿÿÿ Û_2 ý ~? ÕÁ ýZݺóþÖëI½q½qecss2074¼The–fÑUnix“and“Internet“F›ÿwmundamentals“HO˜WTOŽ¤ ®„ØcÕÁGŽŽ¡ó 1ê± ecrm1000¹Eric–U S.“Raš¸èymond’#¡¿v1.4,“25“settem˜bre“1999Ž¡Ÿ&°óŒ6 ecss1000½Questo–,‘došGcumento“descrive“il“funzionamento“di“base“dei“computer“di“classe“PC,“i“sistemi“op˜erativi“di“tip˜o“Unix“eŽ¡Internet–U senza“faš¸èr“uso“di“un“linguaggio“troppGo“tecnico.‘q€T‘ÿ*¸raduzione“a“cura“di“Mirk˜o“Nasato,“óø8‹ ecsi1000¾mnasato@iol.it“½.ŽŸ(Àœó&Lt$ffffecbx1440ÀIndiceŽ¤Øó]fŒ ecbx1000Á1Ž‘ÿIn®>troQÂduzione’€Ó2ŽŽ©ؼ‘ÿ¹1.1Ž‘%ý¡ScopšGo–U di“questo“do˜cumen¸èto‘L¯‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï2ŽŽ¡Á2Ž‘ÿNo®>vit€à’ŸBè2ŽŽ¦‘ÿ¹2.1Ž‘%ý¡Risorse‘U correlate‘ G‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï2ŽŽ¦‘ÿ2.2Ž‘%ý¡Nuo•¸èv“e›U v“ersioni˜di˜questo˜doGcumen“to‘ ‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï3ŽŽ¦‘ÿ2.3Ž‘%ý¡Commen•¸èti,›U suggerimen“ti˜e˜correzioni‘c‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï3ŽŽ¡Á3Ž‘ÿAnatomia–Õdi“base“del“computer’"†Ë3ŽŽ¡4Ž‘ÿCosa–Õsuccede“quando“si“accende“un“computer?’Öu3ŽŽ¡5Ž‘ÿChe–Õcosa“accade“con“il“log“in?’*¯,5ŽŽ¡6Ž‘ÿCosa–Õsuccede“quando“si“eseguono“i“programmi“dalla“shell?’œC5ŽŽ¡7Ž‘ÿCome–Õfunzionano“i“dispQÂositivi“di“input“e“gli“in®>terrupt?’¯Ÿ6ŽŽ¡8Ž‘ÿCome–Õfa“il“computer“a“fare“divš®>erse“cose“con˜tempQÂoraneamen˜te?’…i&7ŽŽ¡9Ž‘ÿCome–Õfa“il“computer“a“evitare“cš®>he“i“proQÂcessi“si“in˜tralcino“tra“loro?‘t6P7ŽŽ¡10Ž‘ÿCome–Õfa“il“computer“a“immagazzinare“le“cose“in“memoria?’šVk8ŽŽ¦‘ÿ¹10.1Ž‘%ý¡Numeri‘B[‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï9ŽŽ¦‘ÿ10.2Ž‘%ý¡Caratteri‘‚Ÿ‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï9ŽŽ¡Á11Ž‘ÿCome–Õfa“il“computer“a“immagazzinare“le“cose“su“disco?’¥ø‰10ŽŽ¦‘ÿ¹11.1Ž‘%ý¡Struttura–U di“basso“liv¸èello“del“disco“e“del“le“system‘¥Ç‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?10ŽŽ¦‘ÿ11.2Ž‘%ý¡Nomi–U dei“le“e“delle“directory‘¢g‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?11ŽŽ¦‘ÿ11.3Ž‘%ý¡Moun•¸èt‘U pGoin“tX¯‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?11ŽŽ¦‘ÿ11.4Ž‘%ý¡Come–U viene“cercato“un“le‘·K‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?11ŽŽ¦‘ÿ11.5Ž‘%ý¡Proprietari–U dei“le,“autorizzazioni“e“sicurezza‘$Ç‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?11ŽŽ¦‘ÿ11.6Ž‘%ý¡Come–U le“cose“pGossono“andare“male‘q[‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?13ŽŽŽŽŒ‹* Û_2 ý ~?Ÿ„€ÕÁGŽÁ1.‘ñ8In®>troQÂduzione’~¯œ¹2ŽŽ ÕÁ ýV¯Á12Ž‘ÿCome–Õfunzionano“i“linguaggi“pQÂer“computer?’Þ‡Ø14ŽŽ¤ؼ‘ÿ¹12.1Ž‘%ý¡Linguaggi‘U compilati‘nû‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?14ŽŽ¡‘ÿ12.2Ž‘%ý¡Linguaggi‘U in¸èterpretati‘ý“‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?15ŽŽ¡‘ÿ12.3Ž‘%ý¡Linguaggi–U a“coGdice“P‘’בü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?15ŽŽŸØÁ13Ž‘ÿCome–Õfunziona“In®>ternet?’=êÅ15ŽŽ¡‘ÿ¹13.1Ž‘%ý¡Nomi–U e“loGcazioni‘çg‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?15ŽŽ¡‘ÿ13.2Ž‘%ý¡P•¸èacc“hetti–U e“router'Ñü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?16ŽŽ¡‘ÿ13.3Ž‘%ý¡TCP–U e“IP‘Éç‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?16ŽŽ¡‘ÿ13.4Ž‘%ý¡HTTP‘ÿ*¸,–U un“protoGcollo“applicativ¸èo‘x/‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?17ŽŽŸ(ÀœÀ1Ž‘ÁInctropœduzioneŽŸèó¥!¢N ecbx1200Ã1.1Ž‘¾Scopš_úo–¸di“questo“do˜cumen toŽŸMª¹Questo–óUdošGcumen¸èto“vuole“essere“un“aiuto“p˜er“gli“utenš¸èti“di“Lin˜ux“e“di“In˜ternet“c˜he“stanno“imparando“dallaŽ¤ ®pratica.‘´ZAncš¸èhe–se“il“learning“b˜y“doing‘ë[€è“un“ottimo“metošGdo“p˜er“acquisire“comp˜etenze“sp˜ecicš¸èhe,‘FPa“v˜olteŽ¡lascia–ú6determinate“lacune“nella“conoscenza“delle“basi“c¸èhe“pšGossono“rendere“dicile“il“p˜ensiero“creativ¸èo“o“laŽ¡risoluzione–æóecace“dei“problemi,‘ ga“causa“della“mancanza“di“un“cš¸èhiaro“moGdello“men˜tale“relativ˜o“a“cosa“staŽ¡succedendo–U nella“realt€à.Ž©ؼCercš¸èher€ò–ædi“descriv˜ere“con“un“linguaggio“c˜hiaro“e“semplice“come“funziona“il“tutto.‘ÅÒLa“presen˜tazione“sar€àŽ¡calibrata– ûpšGer“p˜ersone“cš¸èhe“usano“Unix“o“Lin˜ux“su“hardw˜are“di“classe“PC.“Di“solito“far€ò“com˜unque“riferimen˜toŽ¡semplicemenš¸ète–¬a“`Unix',‘Íãdato“c˜he“la“maggior“parte“delle“descrizioni“v‘ÿqÐale“anc˜he“pGer“altre“piattaforme“e“v‘ÿqÐarian˜tiŽ¡Unix.Ž¦Assumer€ò–ÆAcš¸èhe“stiate“usando“un“PC–Æ$In˜tel.‘ÄãI“dettagli–ÆAdieriscono“leggermen˜te“se“la˜v˜orate“su“un“Alpha“o“unŽ¡P•¸èo“w“erPC–U o“qualc¸èhe“altro“computer“Unix,“ma“i“concetti“di“base“sono“gli“stessi.Ž¦Non–ŠàripGeter€ò“le“cose,‘˜Pquindi“doš¸èvrete“stare“atten˜ti,‘˜Pma“ci€ò“signica“anc˜he“c˜he“imparerete“da“ogni“parola“c˜heŽ¡leggete.‘8ô€È‘«Ouna–«zbuona“idea“limitarsi“a“dare“una“scorsa“la“prima“vš¸èolta“c˜he“leggete;‘ädo˜vreste“pGoi“tornare“indietroŽ¡e–U rileggere“alcune“vš¸èolte“nc˜h€é“a˜vrete“digerito“quello“c˜he“a˜v˜ete“imparato.Ž¦Questo–„€è“un“doGcumenš¸èto“in“ev˜oluzione.‘þgIn˜tendo“con˜tin˜uare“ad“aggiungere“sezioni“in“rispGosta“agli“stimoli“deiŽ¡lettori,–U pšGertan¸èto“p˜erio˜dicamenš¸ète“do˜vreste“tornare“a“riv˜ederlo.ŽŸ(ÀœÀ2Ž‘ÁNocvit€àŽŸ¿:¹Noš¸èvit€à–2Inella“v˜ersione“1.2:‘`Sezione“`Come“fa“il“computer“a“immagazzinare“le“cose“in“memoria?'.‘eãNo˜vit€à“nellaŽ¡v¸èersione–U 1.3:›q€Sezione“`Che“cosa“accade“con“il“log“in?'˜e“`Proprietari“dei“le,“autorizzazioni“e“sicurezza'.ŽŸ#ÃÃ2.1Ž‘¾Risorse‘¸correlateŽŸMª¹Se–2žstate“leggendo“questo“doGcumenš¸èto“al“ne“di“imparare“come“div˜en˜tare“un“hac˜k˜er,‘9…do˜vreste“anc˜he“leggere“laŽ¡ó½HЃ ecti1000ÄHow–áT‘ÿ;Èo“Be–ÿ}/c“ome–áA‘àòHacker“F‘þú_A¾˜Q‘©óqLË ectt1000ºhttp://www.tuxedo.org/~esr/faqs/hacker-‘€howto.html–©0¹.‘m°Con¸ètiene“deiŽ¡link–U ad“altre“risorse“utili.ŽŽŽŒ‹¤ Û_2 ý ~?Ÿ„€ÕÁGŽÁ3.‘ñ8Anatomia–Õdi“base“del“computer’ c_¹3ŽŽ ÕÁ ýV¯Ã2.2Ž‘¾Nuo• v“e›¸v“ersioni˜di˜questo˜do_úcumen“toŽŸMª¹Nuo•¸èv“e›A,v“ersioni˜dello˜Unix˜and˜In“ternet˜F‘ÿ*¸undamen“tals˜HO“WTO‘@kv“erranno˜p•Gerio“dicamen¸ète˜p“ostate˜suŽ¤ ®Äc›ÿ}/omp.os.linux.help–U ¹,“Äc˜omp.os.linux.announc˜eŽ©ؼ¹e–ýÄnews.answers“ºnews:answers“¹.‘4uSaranno“anc¸èhe“depGositate“su“v‘ÿqÐari“siti“WWW›Îe“FTP˜dedicati“a“Lin¸èux,‘ÂinclusaŽ¡la–U LDP“home“page.Ž¦P•¸èotete›’zv“edere˜l'ultima˜v“ersione˜sul˜W–ÿ*¸orld˜Wide˜W“eb˜all'URL‘ #̺http://metalab.unc.edu/LDP/HOWTO/Ž¡Fundamentals-‘€HOWTO.html‘U ¹.ŽŸ#ÃÃ2.3Ž‘¾Commen• ti,›¸suggerimen“ti˜e˜correzioniŽŸMª¹Se›D¿a•¸èv“ete˜domande˜o˜commen“ti˜su˜questo˜doGcumen“to˜sen“titevi˜libGeri˜di˜con“tattare˜Eric˜S.˜Ra“ymond˜all'indirizzoŽ¡Äesr@thyrsus.c‘ÿ}/om–®V¹.‘}"Qualsiasi“suggerimenš¸èto“o“critica“sar€à“il“bGen˜v˜en˜uto.‘}"Apprezzo“particolarmen˜te“link“aŽ¡spiegazioni–5Spi€ù“dettagliate“dei“singoli“concetti.‘fæSe“troš¸èv‘ÿqÐate“un“errore“pGer“fa˜v˜ore“fatemelo“sapšGere,‘;¯in“mo˜do“c¸èheŽ¡lo–U pGossa“correggere“nella“prossima“v¸èersione.‘q€Grazie.ŽŸ(ÀœÀ3Ž‘ÁAnatomia–G\di“base“del“computerŽŸ¿:¹Denš¸ètro–ì{al“v˜ostro“computer“c'€è“un“c˜hip“proGcessore“c˜he“compie“l'elabGorazione“v˜era“e“propria.‘NŸC'€è“una“memoriaŽ¡inš¸èterna–UÐ(quella“c˜he“la“gen˜te“DOS/Windo˜ws“c˜hiama“RAM‘*×e“la“gen˜te“Unix“spGesso“c˜hiama“core).‘fIl“proGcessoreŽ¡e–U la“memoria“risiedono“sulla“Äsche–ÿ}/da‘“°madr“e‘ÀO¹,–U cš¸èhe“€è“il“cuore“del“v˜ostro“computer.Ž¦Il–å§vš¸èostro“computer“ha“uno“sc˜hermo“e“una“tastiera.‘LXHa“disc˜hi“ssi“e“disc˜hi“opp˜y‘ÿ*¸.‘LXLo“sc˜hermo“e“i“disc˜hi“hannoŽ¡Äsche–ÿ}/de‘—ûc“ontr“ol‘‚Ðler‘mH¹cš¸èhe–YËsi“attaccano“sulla“sc˜heda“madre“e“aiutano“il“computer“a“gestire“questi“dispGositivi.‘(LaŽ¡tastiera–cè€è“troppšGo“semplice“p˜er“a•¸èv“er–cèbisogno“di“una“scš¸èheda“separata;‘kMil“con˜troller“€è“costruito“all'in˜terno“dellaŽ¡tastiera‘U stessa.)Ž¦Scenderemo– ˜pi€ù“a•¸èv‘ÿqÐan“ti– ˜in“alcuni“dei“dettagli“relativi“al“funzionamenš¸èto“di“questi“dispGositivi.‘‘çP˜er“ora,‘7öeccoŽ¡alcune–U cose“di“base“da“tenere“a“men¸ète“su“come“funzionano“assieme:Ž¦T‘ÿ*¸utte–( le“parti“inš¸èterne“del“v˜ostro“computer“sono“collegate“da“un“Äbus‘Ò¹.‘ê?Fisicamen˜te,‘\Åil“bus“€è“quello“do˜v˜e“siŽ¡attaccano–*Úle“scš¸èhede“con˜troller“(la“sc˜heda“video,‘3Nil“con˜troller“del“disco,‘3Nuna“sc˜heda“audio“se“ce“l'a˜v˜ete).‘ciIl“busŽ¡€è–U l'autostrada“dei“dati“tra“il“proGcessore,“lo“sc¸èhermo,“il“disco“e“tutto“il“resto.Ž¦Il–WrproGcessore,›Š/c¸èhe“fa“funzionare“tutto“il“resto,˜in“realt€à“non“€è“in“grado“di“vš¸èedere“direttamen˜te“nessuno“degli“altriŽ¡pGezzi:‘Zdev•¸èe›°Ócom“unicare˜con˜loro˜attra“v“erso˜il˜bus.‘:¼L'unico˜sottosistema˜al˜quale˜ha˜accesso˜v“eramen“te˜rapido,Ž¡immediato,–U €è“la“memoria“(core).‘q€P•¸èerc“h€é–U i“programmi“siano“eseguiti,“dunque,“dev¸èono“essere“Äin‘“°memoria‘ÄU¹.Ž¦Quando– il“vš¸èostro“computer“legge“un“programma“o“dei“dati“dal“disco“in“eetti“succede“c˜he“il“proGcessore“usa“ilŽ¡bus–wÃpšGer“sp˜edire“una“ricš¸èhiesta“di“lettura“disco“al“con˜troller“del“disco.‘ÙhDopšGo“un“p˜o'“di“temp˜o“il“con¸ètroller“delŽ¡disco–Êusa“il“bus“pšGer“segnalare“al“computer“c¸èhe“ha“letto“i“dati“e“li“ha“messi“in“una“certa“lo˜cazione“di“memoria.Ž¡Il–U prošGcessore“pu€ò“allora“usare“il“bus“p˜er“guardare“in“quella“memoria.Ž¦Ancš¸èhe–o‘la“tastiera“e“lo“sc˜hermo“com˜unicano“con“il“proGcessore“attra˜v˜erso“il“bus,‘v-ma“in“moGdi“pi€ù“semplici.‘ÀÒNeŽ¡discuteremo–Á7sono“buoni“motivi“pšGer“compiere“alcune“op˜erazioni“di“riaggiustamenš¸èto“prima“c˜he“il“v˜ostro“UnixŽ¡sia–tutto“a“pGosto.‘x^Pš¸èarleremo“pi€ù“approfonditamen˜te“di“questo“pi€ù“a˜v‘ÿqÐan˜ti,‘-Ra“propGosito“di“11.6“(come“i“leŽ¡system–U si“pGossono“danneggiare).Ž¦Il–Äñpasso“successivš¸èo“del“k˜ernel“€è“far“partire“div˜ersi“Ädemoni‘ɹ.‘ÀòUn“demone“(o“daemon)“€è“un“programma“qualeŽ¡uno›¤Ósp•Go“oler˜di˜stampa,‘ø¿un˜programma˜c•¸èhe˜attende˜di˜ricev“ere˜pGosta˜in˜arriv“o˜oppure˜un˜serv“er˜WWWŽ¡cš¸èhe–<rimane“laten˜te“in“sottofondo,‘uÂaspšGettando“qualcosa“da“fare.‘&9Questi“programmi“sp˜eciali“dev¸èono“sp˜essoŽ¡coGordinare–k[divš¸èerse“ric˜hieste“c˜he“risc˜hiano“di“en˜trare“in“conitto.‘´2Sono“demoni“pGerc˜h€é“spGesso“€è“pi€ù“facileŽ¡scrivš¸èere–ׄun“programma“c˜he“gira“costan˜temen˜te“e“viene“a“conoscenza“di“tutte“le“ric˜hieste“piuttosto“c˜he“cercareŽ¡di–@žassicurarsi“cš¸èhe“un“gruppGo“di“copie“(c˜he“girano“tutte“con˜tempGoraneamen˜te,‘D¸con“ciascuna“c˜he“proGcessa“unaŽ¡ricš¸èhiesta)–.non“si“ostacolino“a“vicenda.‘ëLa“particolare“serie“di“demoni“c˜he“il“v˜ostro“sistema“fa“partire“pu€òŽ¡v‘ÿqÐariare,‘ôma–‚–quasi“certamenš¸ète“include“uno“sp•Go“oler–‚–di“stampa“(un“demone“c˜he“fa“da“`pšGortinaio'“p˜er“la“v¸èostraŽ¡stampan¸ète).Ž¦Una–’Žvš¸èolta“c˜he“tutti“i“demoni“sono“a˜vviati“ci“tro˜viamo“al“Ärun–Ì4level“2‘Zð¹.‘)ÊIl–’Žprossimo“passo“€è“prepararsi“pGer“gliŽ¡uten•¸èti.‘XMInit› †a“vvia˜una˜copia˜di˜un˜programma˜c“hiamato˜ºgetty˜¹pGer˜con“trollare˜la˜v“ostra˜console˜(e˜forse˜altreŽŽŽŒ‹A Û_2 ý ~?Ÿ„€ÕÁGŽÁ5.‘ñ8Che–Õcosa“accade“con“il“log“in?’(‹À¹5ŽŽ ÕÁ ýV¯copie–ÆÿpšGer“con¸ètrollare“le“p˜orte“seriali“dial-in).‘ÇQuesto“programma“€è“quello“c¸èhe“emette“il“prompt“ºlogin“¹allaŽ¤ ®vš¸èostra–U console.‘q€Siamo“ora“al“Ärun–“°level“3‘Zð¹,–U pron˜ti“pGer“fare“il“log“in“e“lanciare“i“programmi.ŽŸ(ÀœÀ5Ž‘ÁChe–G\cosa“accade“con“il“log“in?ŽŸ¿:¹Quando–¸ofate“il“log“in“(date“un“nome“e“la“passwš¸èord)“vi“iden˜ticate“a“ºgetty“¹e“al“computer.‘›mP˜arte“allora“unŽ¡altro–Äåprogramma“cš¸èhiamato“(o˜vviamen˜te)“ºlogin¹,‘àÖc˜he“con˜trolla“se“siete“autorizzati“a“usare“quella“macc˜hina.Ž¡Se– enon“lo“siete,›ñil“ten•¸ètativ“o– edi“log“in“viene“riutato.‘YBSe“lo“siete,˜login“compie“qualc¸èhe“opGerazione“di“servizio“eŽ¡pGoi–{fa“partire“un“in¸èterprete“di“comandi,›„{la“Äshel‘‚Ðl‘w¹.‘ã'(S€ì,˜ºgetty“¹e“ºlogin“¹p•Gotrebb“ero–{essere“un“solo“programma.Ž¡Sono–U separati“pšGer“motivi“storici“c¸èhe“qui“non“v‘ÿqÐale“la“p˜ena“approfondire.)Ž©ؼEcco–Çppi€ù“in“dettaglio“cš¸èhe“cosa“accade“prima“c˜he“compaia“la“shell;‘™sar€à“necessario“comprenderlo“pi€ù“a˜v‘ÿqÐan˜tiŽ¡quando–º‹parleremo“di“autorizzazioni“dei“le.‘¡ÁSi“viene“idenš¸èticati“con“un“nome“di“login“e“passw˜ord.‘¡ÁQuestoŽ¡nome–M*di“login“viene“cercato“in“un“le“cš¸èhiamato“/etc/passw˜ord,‘NÂcostituito“da“una“sequenza“di“righe“ciascunaŽ¡delle–U quali“descrivš¸èe“un“accoun˜t“uten˜te.Ž¦Uno–£ di“questi“campi“€è“una“vš¸èersione“cifrata“della“passw˜ord“dell'accoun˜t.‘[>Quello“c˜he“inserite“come“passw˜ordŽ¡viene–Á®cifrato“esattamenš¸ète“allo“stesso“moGdo“e“il“programma“ºlogin“¹con˜trolla“se“corrispGondono.‘·+La“sicurezzaŽ¡di–;questo“metošGdo“dip˜ende“dal“fatto“c•¸èhe,‘?men“tre–;€è“facile“passare“da“una“passwš¸èord“in“c˜hiaro“a“una“cifrata,Ž¡l'in•¸èv“erso–ˆ5€è“molto“dicile.‘ ¾Pš¸èer“cui,‘”úse“qualcuno“riesce“a“v˜edere“la“v˜ersione“cifrata“della“v˜ostra“passw˜ord“nonŽ¡pu€ò–comš¸èunque“usare“il“v˜ostro“accoun˜t.‘[x(Signica“anc˜he“c˜he“se“dimen˜ticate“la“v˜ostra“passw˜ord,‘ @non“c'€è“moGdoŽ¡di–U recupGerarla,“ma“solamenš¸ète“di“cam˜biarla“in“un'altra“di“v˜ostra“scelta.)Ž¦Una–‡vš¸èolta“eettuato“il“log“in“con“successo,‘, otterrete“tutti“i“privilegi“assoGciati“al“singolo“accoun˜t“c˜he“stateŽ¡utilizzando.‘ŒP•¸èotreste›Š$anc“he˜essere˜riconosciuti˜come˜appartenen“ti˜a˜un˜Ägr‘ÿ}/oup‘¡Ž¹.‘ŒUn˜gruppGo˜€è˜un˜insiemeŽ¡di–úÓuten¸èti“impšGostato“dall'amministratore“e“a“cui“€è“asso˜ciato“un“nome.‘ b˜I‘úfgruppi“p˜ossono“a•¸èv“ere‘úÓprivilegiŽ¡indipGenden•¸ètemen“te–ÜSdai“privilegi“dei“loro“memš¸èbri.‘Un“uten˜te“pu€ò“appartenere“a“pi€ù“gruppi.‘(P˜er“maggioriŽ¡dettagli–U sul“funzionamenš¸èto“dei“privilegi“in“Unix“si“v˜eda“la“sezione“su“11.5“().)Ž¦(Si–aÝnoti“cš¸èhe,‘¥ sebbGene“si“fa“normalmen˜te“riferimen˜to“agli“uten˜ti“e“ai“gruppi“pGer“nome,‘¥ essi“sono“in“realt€àŽ¡memorizzati›B=in•¸èternamen“te˜come˜ID‘Bn“umerici.‘8ØIl˜le˜passw“ord˜assoGcia˜il˜v“ostro˜nome˜di˜accoun“t˜a˜un˜IDŽ¡uten¸ète;‘tˆil–jle“º/etc/group“¹assošGcia“i“nomi“di“grupp˜o“agli“ID›j n¸èumerici“dei“gruppi.‘°OI˜comandi“cš¸èhe“hanno“a“c˜heŽ¡fare–U con“accounš¸èt“e“gruppi“eettuano“automaticamen˜te“la“con˜v˜ersione.)Ž¦La–9nvš¸èostra“registrazione“di“accoun˜t“con˜tiene“anc˜he“la“v˜ostra“Ähome‘z5dir–ÿ}/e“ctory‘ân¹,‘>øil–9npGosto“nel“le“system“Unix“c˜heŽ¡conš¸ètiene–;ši“v˜ostri“le“pGersonali.‘$ïInne,‘u9la“registrazione“dell'accoun˜t“impGosta“anc˜he“la“Äshel‘‚Ðl‘w¹,‘u9l'in˜terprete“diŽ¡comandi–U cš¸èhe“ºlogin“¹a˜vvier€à“pGer“accettare“i“v˜ostri“comandi.ŽŸ(ÀœÀ6Ž‘ÁCosa–G\succede“quando“si“eseguono“i“programmi“dalla“shell?ŽŸ¿:¹La–¡£shell“normale“vi“presenš¸èta“il“prompt“'$'“c˜he“v˜edete“dopGo“il“login“(a“meno“c˜he“non“lo“abbiate“pGersonalizzato).Ž¡Non–+tparleremo“della“sinš¸ètassi“della“shell“e“delle“cose“semplici“c˜he“pGotete“v˜edere“da“soli“sullo“sc˜hermo;‘9XdaremoŽ¡piuttosto–U uno“sguardo“dietro“le“quinš¸ète“a“quello“c˜he“succede“dal“pun˜to“di“vista“del“computer.Ž¦DopGo–Zàla“fase“di“aš¸èvvio,‘œPe“prima“c˜he“sia“eseguito“un“programma,‘œPpšGotete“p˜ensare“al“v¸èostro“computer“comeŽ¡a–EÈun“con¸ètenitore“di“un“repšGertorio“di“pro˜cessi“c¸èhe“stanno“tutti“asp˜ettando“qualcosa“da“fare.‘CxStanno“tuttiŽ¡aspGettando–™¤degli“Äeventi‘ɹ.‘? Un“ev•¸èen“to–™¤pu€ò“essere“vš¸èoi“c˜he“premete“un“tasto“o“m˜uo˜v˜ete“il“mouse.‘? Oppure,‘ªÅse“ilŽ¡vš¸èostro–æcomputer“€è“collegato“a“una“rete,‘ èun“ev˜en˜to“pu€ò“essere“un“pacc˜hetto“di“dati“c˜he“arriv‘ÿqÐa“lungo“quellaŽ¡rete.Ž¦Il–ŸŸk¸èernel“€è“uno“di“questi“prošGcessi.‘Pþ€È‘ŸŒuno“sp˜eciale,‘²?p˜ercš¸èh€é“con˜trolla“quando“gli“altri“Äpr–ÿ}/o“c“essi‘Ø9utente‘_î¹pGossonoŽ¡girare–»£ed“€è“normalmenš¸ète“l'unico“proGcesso“con“accesso“diretto“all'hardw˜are“del“computer.‘¥Infatti,‘ÕCi“proGcessiŽ¡uten•¸ète›˜~dev“ono˜fare˜ric“hiesta˜al˜k“ernel˜quando˜v“ogliono˜ottenere˜un˜input˜dalla˜tastiera,‘¾8scriv“ere˜sullo˜sc“hermo,ŽŽŽŒ‹X* Û_2 ý ~?Ÿ„€ÕÁGŽÁ7.‘ñ8Come–Õfunzionano“i“dispQÂositivi“di“input“e“gli“in®>terrupt?’­z3¹6ŽŽ ÕÁ ýV¯leggere–ƒo“scrivš¸èere“su“disco“o“fare“qualsiasi“altra“cosa“c˜he“non“sia“macinare“bit“in“memoria.‘ûeQueste“ric˜hiesteŽ¤ ®sono–U note“come“Ächiamate–“°di“sistema‘ÄU¹.Ž©ؼNormalmenš¸ète–v;tutto“l'I/O‘vpassa“attra˜v˜erso“il“k˜ernel,‘¢Ïcos€ì“quest'ultimo“pu€ò“organizzare“le“opšGerazioni“e“imp˜edireŽ¡c¸èhe–.…i“prošGcessi“si“ostacolino“a“vicenda.‘d¢Alcuni“pro˜cessi“uten¸ète“sp˜eciali“hanno“il“p˜ermesso“di“aggirare“il“k¸èernel,Ž¡di–.‹solito“pšGer“ottenere“accesso“diretto“alle“p˜orte“I/O.“I›.‚serv¸èer“X˜(i“programmi“cš¸èhe“gestiscono“le“ric˜hieste“degliŽ¡altri–«„programmi“di“generare“graca“sullo“sc¸èhermo,‘Ásulla“maggior“parte“dei“computer“Unix)“sono“gli“esempiŽ¡pi€ù–xcomš¸èuni“al“riguardo.‘ÚVMa“non“siamo“ancora“arriv‘ÿqÐati“a“un“serv˜er“X;“state“guardando“il“prompt“della“shellŽ¡su–U una“console“a“caratteri.Ž¦La–FÞshell“€è“solo“un“proGcesso“utenš¸ète,‘|ëe“neppure“uno“tan˜to“spGeciale.‘kA˜ttende“c˜he“v˜oi“digitiate“qualcosa,‘|ëascoltandoŽ¡(attra•¸èv“erso–Áil“kš¸èernel)“sulle“pGorte“I/O‘Àªdella“tastiera.‘µ7Come“il“k˜ernel“v˜ede“c˜he“a˜v˜ete“digitato“qualcosa“loŽ¡visualizza–Ísullo“scš¸èhermo“e“pGoi“lo“passa“alla“shell.‘ÙXQuando“il“k˜ernel“v˜ede“un“`In˜vio'“passa“la“v˜ostra“linea“diŽ¡testo–U alla“shell.‘q€La“shell“tenš¸èta“di“in˜terpretare“questo“testo“come“se“si“trattasse“di“comandi.Ž¦Diciamo–ôDcš¸èhe“digitate“`ls'“e“In˜vio“pGer“in˜v˜oGcare“il“programma“Unix“c˜he“elenca“le“directory‘ÿ*¸.‘NìLa“shell“applicaŽ¡le–Æÿsue“regole“incorpšGorate“p˜er“indoš¸èvinare“c˜he“v˜olete“lanciare“il“comando“eseguibile“nel“le“`/bin/ls'.‘ÇF‘ÿ*¸a“unaŽ¡cš¸èhiamata–Žídi“sistema“c˜hiedendo“al“k˜ernel“di“far“partire“/bin/ls“come“un“n˜uo˜v˜o“proGcesso“Äglio‘0{¹e“di“dargli“accessoŽ¡allo–U scš¸èhermo“e“alla“tastiera“attra˜v˜erso“il“k˜ernel.‘q€P˜oi“la“shell“v‘ÿqÐa“a“dormire,“aspGettando“c˜he“ls“nisca.Ž¦Quando–cí/bin/ls“ha“nito“dice“al“kš¸èernel“c˜he“ha“terminato“emettendo“una“c˜hiamata“di“sistema“Äexit‘òɹ.‘èIl“k˜ernelŽ¡allora–Ãýsvš¸èeglia“la“shell“e“le“dice“c˜he“pu€ò“riprendere“a“girare.‘ALa“shell“emette“un“altro“prompt“e“attende“un'altraŽ¡linea–U di“input.Ž¦T‘ÿ*¸uttaš¸èvia–IS(suppGoniamo“c˜he“stiate“elencando“una“directory“molto“lunga)“p•Gotrebb“ero–ISsuccedere“altre“cose“men˜treŽ¡`ls'–{?€è“in“esecuzione.‘ãÞP¸èotreste“passare“su“un'altra“console“virtuale,‘„Çfare“il“log“in“di“l€à“e“iniziare“una“partita“aŽ¡Quakš¸èe,‘=pGer–7esempio.‘g|Oppure“immaginate“di“essere“collegati“a“In˜ternet.‘g|Il“v˜ostro“computer“p•Gotrebb“e‘7sp“edireŽ¡o–U ricevš¸èere“pGosta“men˜tre“/bin/ls“€è“in“esecuzione.ŽŸ(šSÀ7Ž‘ÁCome–G\funzionano“i“disppœositivi“di“input“e“gli“incterrupt?ŽŸ¿:¹La–‚tastiera“€è“un“dispšGositiv¸èo“di“input“molto“semplice:‘ËAsemplice“p˜ercš¸èh€é“genera“piccole“quan˜tit€à“di“dati“moltoŽ¡len•¸ètamen“te–;y(pGer“gli“standard“di“un“computer).‘$‹Quando“premete“o“rilasciate“un“tasto,‘uil“v‘ÿqÐalore“di“questoŽ¡ev•¸èen“to–U viene“segnalato“attra•¸èv“erso–U il“ca•¸èv“o–U della“tastiera“pGer“far“scattare“un“Äinterrupt‘“°har–ÿ}/dwar“e‘ÀO¹.Ž¦€È‘^öcompito–^ødel“sistema“opGerativš¸èo“stare“atten˜to“a“questi“in˜terrupt.‘ P˜er“ogni“pšGossibile“tip˜o“di“in¸èterrupt“c'€è“unŽ¡Ägestor‘ÿ}/e‘%ªdel‘‚Ðl'interrupt‘òɹ,‘õtuna–݉parte“del“sistema“opGerativš¸èo“c˜he“immagazzina“i“dati“a“esso“assoGciati“(come“il“v‘ÿqÐaloreŽ¡del–U vš¸èostro“premere/rilasciare“il“tasto)“nc˜h€é“pu€ò“essere“proGcessato.Ž¦Quello–~øcš¸èhe“eettiv‘ÿqÐamen˜te“fa“il“gestore“dell'in˜terrupt“della“v˜ostra“tastiera“€è“mettere“il“v‘ÿqÐalore“del“tasto“inŽ¡un'area–q¯di“sistema“vicino“al“fondo“della“memoria.‘Ç.L€à“rimane“a“dispšGosizione“p˜er“isp˜ezione“quando“il“sistemaŽ¡opGerativš¸èo–U passa“il“con˜trollo“al“programma“c˜he“ritiene“stia“attualmen˜te“leggendo“dalla“tastiera.Ž¦DispGositivi–Ãerse“cose“con˜tempQÂoraneamen˜te?’ƒEº¹7ŽŽ ÕÁ ýV¯Ecco–Zola“spiegazione.‘ðIRš¸èQ‘Z/€è“l'abbreviazione“di“In˜terrupt“Request‘/·(ric˜hiesta“di“in˜terrupt).‘ðIl“sistema“opGerativ˜oŽ¤ ®ha–ÈŽbisogno“di“sapGere“al“momenš¸èto“dell'a˜vvio“quali“in˜terrupt“n˜umerati“v˜erranno“usati“da“ciascun“dispGositiv˜oŽ¡hardw¸èare,‘žin–¾mošGdo“da“p˜oter“asso˜ciare“a“ciascuno“il“gestore“appropriato.‘Z`Se“due“disp˜ositivi“div¸èersi“cercano“diŽ¡usare–2ölo“stesso“IRš¸èQ‘2ía“v˜olte“gli“in˜terrupt“v˜erranno“noticati“al“gestore“sbagliato.‘fQuesto“di“solito“pro˜v˜oGc˜her€àŽ¡quan¸ètomeno–ÏÛil“blošGcco“del“disp˜ositivš¸èo,‘ê‚ma“pu€ò“a“v˜olte“confondere“il“SO‘Ϲa“tal“pun˜to“da“farlo“div˜en˜tare“instabileŽ¡oppure–U mandarlo“in“crash.ŽŸ(ÀœÀ8Ž‘ÁCome–G\fa“il“computer“a“fare“divšcerse“cose“con˜temppœoraneamen˜te?ŽŸ¿:¹Non–lålo“fa,‘rÖin“realt€à.‘¸ÏI‘lßcomputer“pGossono“svš¸èolgere“soltan˜to“un“task“(o“Äpr–ÿ}/o“c“esso‘¡Ž¹)–låalla“v˜olta.‘¸ÏMa“un“computerŽ¡pu€ò–ª‘camš¸èbiare“task“molto“rapidamen˜te“e“indurre“i“len˜ti“esseri“umani“a“pGensare“c˜he“sta“facendo“div˜erse“coseŽ¡con•¸ètempšGoraneamen“te.‘q€Questo–U viene“c¸èhiamato“Ätimesharing‘7Ž¹(condivisione“di“temp˜o).Ž©ؼUno–Fidei“compiti“del“kš¸èernel“€è“gestire“il“timesharing.‘E[Ha“una“parte“c˜hiamata“Äsche‘ÿ}/duler‘Yæ¹(pianicatore)“c˜heŽ¡conš¸ètiene–0tinformazioni“relativ˜e“a“tutti“gli“altri“proGcessi“(a“parte“il“k˜ernel)“del“v˜ostro“repGertorio.‘|Ogni“ses-Ž¡sanš¸ètesimo–÷Bdi“secondo“nel“k˜ernel“fa“scattare“un“timer“e“viene“generato“un“cloGc˜k“di“in˜terrupt.‘WçLo“sc˜hedulerŽ¡ferma–4qualunque“prošGcesso“sia“attualmen¸ète“in“esecuzione,‘"Élo“sosp˜ende“sul“p˜osto“e“passa“il“con¸ètrollo“a“un“altroŽ¡proGcesso.Ž¦Un–Y`sessanš¸ètesimo“di“secondo“pu€ò“non“sem˜brare“una“grande“quan˜tit€à“di“tempšGo.‘~?Ma“p˜er“i“micropro˜cessoriŽ¡ošGdierni– C€è“sucien¸ète“p˜er“eseguire“decine“di“migliaia“di“istruzioni“macc•¸èhina,‘8Ëc“he– Csi“p˜ossono“tradurre“in“unaŽ¡gran–³ímole“di“la•¸èv“oro.‘;ÅQuindi›³íanc“he˜se˜ci˜sono˜molti˜pro•Gcessi˜ciascuno˜di˜essi˜pu€ò˜fare˜molte˜cose˜nella˜p“orzioneŽ¡di–U tempšGo“a“sua“disp˜osizione.Ž¦In–Qpratica“non“sempre“un“programma“ottiene“la“sua“in¸ètera“pšGorzione“di“temp˜o.‘pPSe“scatta“un“in¸èterrupt“da“unŽ¡dispGositivš¸èo–ÕòI/O‘ÕÑil“k˜ernel“ferma“eettiv‘ÿqÐamen˜te“il“task“corren˜te,‘ö'esegue“il“gestore“dell'in˜terrupt“e“pGoi“ritornaŽ¡al–Âgtask“correnš¸ète.‘¹VUna“tempGesta“di“in˜terrupt“ad“alta“priorit€à“pu€ò“scom˜binare“il“normale“funzionamen˜to“deiŽ¡prošGcessi;‘ÐÏquesto–R?fenomeno“viene“c¸èhiamato“Äthr‘ÿ}/ashing‘4­¹e“p˜er“fortuna“€è“molto“dicile“da“indurre“negli“UnixŽ¡moGderni.Ž¦Infatti–q6la“vš¸èeloGcit€à“dei“programmi“solo“molto“di“rado“€è“limitata“dalla“quan˜tit€à“di“tempGo“macc˜hina“a“loroŽ¡dispGosizione–š(ci“sono“alcune“eccezioni“a“questa“regola,‘«Qquali“il“suono“o“la“generazione“di“graca“3D).“MoltoŽ¡pi€ù–÷„spGesso“dei“ritardi“si“generano“quando“il“programma“dev¸èe“attendere“dei“dati“da“un“disco“o“da“unaŽ¡connessione–U di“rete.Ž¦Un–e2sistema“opGerativš¸èo“c˜he“pu€ò“di“norma“gestire“pi€ù“proGcessi“sim˜ultaneamen˜te“€è“detto“m˜ultitasking.‘¡·LaŽ¡famiglia–ïdi“sistemi“opšGerativi“Unix“€è“stata“progettata“n“dall'inizio“p˜er“il“m¸èultitasking“e“lo“fa“molto“b˜ene,Ž¡in–lmošGdo“molto“pi€ù“ecace“risp˜etto“a“Windoš¸èws“o“al“Mac“OS‘kÔai“quali“il“m˜ultitasking“€è“stato“appiccicatoŽ¡a–ÉœpšGosteriori“in“seguito“a“un“rip˜ensamen¸èto“e“lo“fanno“in“mo˜do“piuttosto“p˜o•¸èv“ero.‘ÎôIl›Éœm“ultitasking˜ecien“te˜eŽ¡adabile–©acostituisce“buona“parte“di“ci€ò“cš¸èhe“rende“Lin˜ux“supšGeriore“p˜er“le“applicazioni“di“rete,‘˺le“com¸èunicazioniŽ¡e–U i“servizi“W‘ÿ*¸eb.ŽŸ(ÀœÀ9Ž‘ÁCome–:ùfa“il“computer“a“evitare“cšche“i“propœcessi“si“in˜tralcino“tra“loro?ŽŸ¿:¹Lo–Â]scš¸èheduler“del“k˜ernel“si“prende“cura“di“dividere“il“tempšGo“tra“i“pro˜cessi.‘¹7Il“v¸èostro“sistema“op˜erativš¸èo“dev˜eŽ¡dividere–‘Ætra“i“prošGcessi“anc¸èhe“lo“spazio,‘àðp˜er“evitare“c¸èhe“non“sconnino“oltre“la“p˜orzione“di“memoria“loroŽ¡assegnata.‘ZmLe–çopšGerazioni“compiute“dal“sistema“op˜erativ¸èo“p˜er“risolvš¸èere“questo“problema“si“c˜hiamano“ÄgestioneŽ¡del‘‚Ðla‘“°memoria‘ÄU¹.Ž¦Ogni–>†prošGcesso“del“v¸èostro“rep˜ertorio“ha“la“propria“area“di“memoria“core,‘xßcome“luogo“dal“quale“eseguire“ilŽ¡proprio–)9cošGdice“e“do•¸èv“e–)9immagazzinare“le“v‘ÿqÐariabili“e“i“risultati.‘bÞP¸èotete“p˜ensare“a“questo“insieme“come“formatoŽ¡da–Ÿïun“Äse–ÿ}/gmento‘؃c“o“dic“e‘ÀO¹,‘²£di–Ÿïsola“lettura“(cš¸èhe“con˜tiene“le“istruzioni“del“proGcesso),‘²£e“da“un“Äse‘ÿ}/gmento‘؃dati‘¤¸¹(c˜heŽŽŽŒ‹€ž Û_2 ý ~?Ÿ„€ÕÁGŽÁ10.‘ñ8Come–Õfa“il“computer“a“immagazzinare“le“cose“in“memoria?’’s[¹8ŽŽ ÕÁ ýV¯conš¸ètiene–‚ktutte“le“v‘ÿqÐariabili“immagazzinate“dal“proGcesso).‘ùbIl“segmen˜to“dati“€è“sempre“unico“pšGer“ogni“pro˜cesso,Ž¤ ®men¸ètre–Ñ;nel“caso“due“prošGcessi“usino“lo“stesso“co˜dice“Unix“automaticamen¸ète“fa“in“mo˜do“c¸èhe“condividano“unŽ¡unico–U segmen¸èto“coGdice,“come“misura“di“ecienza.Ž©ؼL'ecienza–Jð€è“imp•Gortanš¸ète,‘Lùp“erc˜h€é–Jðla“memoria“core“€è“costosa.‘nA‘Jív˜olte“non“ne“a˜v˜ete“abbastanza“pGer“con˜tenereŽ¡pGer–Iinš¸ètero“tutti“i“programmi“c˜he“il“computer“sta“eseguendo,‘†spGecialmen˜te“se“usate“un“grosso“programmaŽ¡quale–~@un“servš¸èer“X.“P˜er“o˜vviare“a“questo“problema“Unix“usa“una“strategia“c˜hiamata“Ämemoria‘¹†virtuale‘ÀO¹.‘ìáNonŽ¡cerca–Ñdi“tenere“in“core“tutti“i“dati“e“il“cošGdice“di“un“pro˜cesso.‘åLTiene“piuttosto“caricato“solo“un“Äworking‘´setŽ¡¹relativ‘ÿqÐamen¸ète–´Îpiccolo;‘ä¦il“resto“dello“stato“del“prošGcesso“viene“lasciato“in“uno“sp˜eciale“Äsp‘ÿ}/azio‘ë·swap‘V\¹sul“v¸èostroŽ¡disco‘U sso.Ž¦Come–†Ši“proGcessi“sono“in“esecuzione“Unix“tenš¸èta“di“an˜ticipare“i“cam˜biamen˜ti“del“w˜orking“set“pGer“a˜v˜ere“inŽ¡memoria–#solo“le“parti“cš¸èhe“serv˜ono“da˜vv˜ero.‘]Riuscirci“in“mošGdo“ecace“€è“ingegnoso“e“complesso,‘%#p˜ertan¸èto“nonŽ¡cercš¸èher€ò–Kdi“descriv˜erlo“tutto“qui,‘Üma“si“basa“sul“fatto“c˜he“il“coGdice“e“i“riferimen˜ti“ai“dati“tendono“a“comparireŽ¡a–agruppi,‘îed“€è“probabile“cš¸èhe“un“n˜uo˜v˜o“gruppGo“si“colleghi“a“luoghi“vicini“a“quelli“di“uno“preceden˜te.‘UëQuindi“seŽ¡Unix–‘Otiene“caricati“i“dati“e“il“coGdice“usati“pi€ù“di“frequenš¸ète“(o“di“recen˜te)“di“solito“riuscir€à“a“risparmiare“delŽ¡tempGo.Ž¦Notate–£)cš¸èhe“in“passato“quel“A‘£v˜olte‘xqdi“due“paragra“fa“era“un“Quasi“sempre,‘¶«pGerc˜h€é“la“dimensione“dellaŽ¡memoria–EPera“tipicamen¸ète“ridotta“rispGetto“alla“dimensione“dei“programmi“in“esecuzione,‘Hzquindi“il“ricorso“alloŽ¡swš¸èap–¾tera“frequen˜te.‘­|Oggi“la“memoria“€è“molto“meno“costosa“e“pGersino“i“computer“di“fascia“bassa“ne“hannoŽ¡pareccš¸èhia.‘‰wSui–]moGderni“computer“monouten˜te“con“64MB›\Ùdi“memoria“e“oltre“€è“pGossibile“eseguire“X˜e“unŽ¡insieme–U tipico“di“programmi“senza“neppure“ricorrere“allo“sw¸èap.Ž¦Ancš¸èhe–éRin“questa“felice“situazione“la“parte“del“sistema“opGerativ˜o“c˜hiamata“Ägestor‘ÿ}/e–del‘‚Ðla“memoria‘­§¹man˜tieneŽ¡un–J‰impGortanš¸ète“ruolo“da“sv˜olgere.‘Q¼Dev˜e“garan˜tire“c˜he“i“programmi“pšGossano“mo˜dicare“soltan¸èto“il“proprioŽ¡segmen•¸èto›.ždati;‘;tdev“e˜cio•G€è˜imp“edire˜c¸èhe˜del˜co“dice˜difettoso˜o˜malizioso˜in˜un˜programma˜ro¸èvini˜i˜dati˜di˜altriŽ¡programmi.‘GYA‘ÖŠquesto–ÖªscopšGo“tiene“una“tab˜ella“dei“segmen¸èti“dati“e“co˜dice.‘GYLa“tab˜ella“€è“aggiornata“non“app˜enaŽ¡un–prošGcesso“ric¸èhiede“pi€ù“memoria“oppure“lib˜era“memoria“(quest'ultimo“caso“si“v¸èerica“di“solito“all'uscita“dalŽ¡programma).Ž¦Questa–"ëtabšGella“€è“usata“p˜er“passare“comandi“a“una“parte“sp˜ecializzata“dell'hardwš¸èare“sottostan˜te“c˜hiamataŽ¡ÄMMU‘zþ¹o›׬Äunit€à– Êdi“gestione“del‘‚Ðla“memoria‘ÄU¹.‘ù#I‘׊pro•Gcessori˜mo“derni˜hanno˜MMU‘׊incorp“orate.‘ù#La˜MMU‘׊ha˜laŽ¡pšGeculiare–capacit€à“di“p˜orre“dei“delimitatori“attorno“alle“aree“di“memoria,‘C»in“mo˜do“cš¸èhe“un“riferimen˜to“c˜heŽ¡sconna–U vš¸èenga“riutato“e“faccia“scattare“uno“spGeciale“in˜terrupt.Ž¦Se›Höa•¸èv“ete˜mai˜visto˜un˜messaggio˜del˜tipGo˜Segmen“tation˜fault,–Kecore˜dumpGed‘>o˜qualcosa˜del˜genere,“questoŽ¡€è–7€esattamenš¸ète“quello“c˜he“€è“successo:‘6@un“ten˜tativ˜o“da“parte“del“programma“in“esecuzione“di“accedere“allaŽ¡memoria–îal“di“fuori“dal“proprio“segmenš¸èto“ha“fatto“scattare“un“in˜terrupt“fatale.‘ÅêQuesto“riv˜ela“un“bug“nelŽ¡coGdice–?Ídel“programma;‘œ>il“Äc–ÿ}/or“e‘”Œdump‘á[¹(scarico–?Ídella“memoria)“c¸èhe“lascia“dietro“di“s€é“costituisce“una“informazioneŽ¡diagnostica–U v¸èolta“ad“aiutare“il“programmatore“nell'individuazione“del“problema.Ž¦C'€è–ö3un“altro“aspšGetto“c¸èhe“protegge“i“pro˜cessi“l'uno“dall'altro,‘^woltre“alla“limitazione“della“memoria“a“cuiŽ¡pšGossono–ëíaccedere.‘NoSi“vuole“anc¸èhe“p˜oter“con¸ètrollare“il“loro“accesso“ai“le“in“mo˜do“c¸èhe“un“programma“difettosoŽ¡o–"­malizioso“non“pGossa“roš¸èvinare“parti“critic˜he“del“sistema.‘Ú'€È‘"xpGer“questo“motiv˜o“c˜he“Unix“pGossiede“le“11.5Ž¡(autorizzazioni–U sui“le)“cš¸èhe“v˜edremo“in“dettaglio“pi€ù“a˜v‘ÿqÐan˜ti.ŽŸ(ÀœÀ10Ž‘¬%Come–G\fa“il“computer“a“immagazzinare“le“cose“in“memoria?ŽŸ¿:¹Probabilmenš¸ète–Ùsaprete“c˜he“ogni“cosa“in“un“computer“viene“memorizzata“come“stringa“di“bit“(binary“digit;Ž¡pGossiamo–_³immaginarli“come“molti“piccoli“inš¸èterruttori).‘‘9Ora“v˜edremo“come“questi“bit“v˜engano“impiegati“pGerŽ¡rappresenš¸ètare–U le“lettere“e“i“n˜umeri“c˜he“il“computer“manipGola.Ž¦Prima–gòdi“pGoter“aronš¸ètare“questo“argomen˜to,‘l¦€è“necessario“comprendere“la“Ädimensione–¥di“p–ÿ}/ar“ola‘,G¹del‘gòcomput-ŽŽŽŒ‹ “I Û_2 ý ~?Ÿ„€ÕÁGŽÁ10.‘ñ8Come–Õfa“il“computer“a“immagazzinare“le“cose“in“memoria?’’s[¹9ŽŽ ÕÁ ýV¯er.‘‡°Si–\…tratta“della“dimensione“preferita“dal“computer“pšGer“sp˜ostare“unit€à“di“informazioni;‘à8tecnicamen¸ète“€èŽ¤ ®l'ampiezza–è“dei“Är–ÿ}/e“gistri‘í\¹dei›è“proGcessore,‘ po•¸èvv“ero˜le˜aree˜c“he˜il˜pro•Gcessore˜utilizza˜p“er˜compiere˜calcoli˜logici˜eŽ¡aritmetici.‘Ó¿Quando–uàleggiamo“c¸èhe“i“computer“hanno“dimensione“in“bit“(pGer“esempio“32-bit‘K(o“64-bit)“eccoŽ¡cš¸èhe–U cosa“si“in˜tende.Ž©ؼLa–â‹maggior“parte“dei“computer“(compresi“i“PC›ân386,–ùv486,“P•¸èen“tium–â‹e“P•¸èen“tium–â‹IGI)˜ha“una“dimensione“di“parolaŽ¡di–xs32“bit.‘ÛyLe“v•¸èecc“hie›xsmacc“hine˜286˜la“v“ora“v‘ÿqÐano˜a˜16.‘ÛyMainframe˜v“ecc“hio˜stile˜spGesso˜hanno˜parole˜di˜36˜bit.Ž¡P•¸èošGc“hi–‡Qpro˜cessori“(come“Alpha“di“quella“c¸èhe“prima“era“la“DEC‘‡De“ora“€è“Compaq)“hanno“parole“di“64“bit.‘LaŽ¡parola–ydi“64“bit“divš¸èerr€à“pi€ù“com˜une“nei“prossimi“cinque“anni;‘+[In˜tel“sta“progettando“di“sostiuire“il“P˜en˜tium“IGIŽ¡con–U un“cš¸èhip“a“64“bit“c˜hiamato“`Merced'.Ž¦Il–±.computer“vš¸èede“la“memoria“core“come“sequenza“di“parole“n˜umerate“da“zero“in“a˜v‘ÿqÐan˜ti,‘È2no“a“v‘ÿqÐalori“moltoŽ¡grandi–„‡a“seconda“della“dimensione“della“memoria.‘+øT‘ÿ*¸ale“v‘ÿqÐalore“€è“limitato“dalla“dimensione“della“parola,‘®?motiv¸èoŽ¡pGer–écui“le“v•¸èecc“hie›émacc“hine˜come˜i˜286˜do“v“ev‘ÿqÐano˜sv“olgere˜complicati˜con“torsionismi˜pGer˜indirizzare˜grandiŽ¡quanš¸ètit€à–U di“memoria.‘q€Non“li“descriv˜er€ò“qui;“proGcurano“ancora“degli“incubi“ai“v˜ecc˜hi“programmatori.ŽŸ#ÃÃ10.1Ž‘%}¨NumeriŽŸMª¹I‘)anš¸èumeri–)Úsono“rappresen˜tati“come“parole“o“coppie“di“parole,‘Ÿ a“seconda“della“dimensione“di“parola“delŽ¡proGcessore.‘q€Su–U maccš¸èhine“a“32“bit,“la“parola“€è“la“dimensione“pi€ù“com˜une.Ž¦L'aritmetica–®Ogni“settore“(o“Äblo–ÿ}/c“c“o–™del“disc‘ÿ}/o‘¡Ž¹)–º®ha“la“stessa“dimensione,‘Ù‘c˜he“sui“moGderni“Unix“€è“generalmen˜teŽ¡pari–Ͼa“1K‘ÏŸbinario“(1024“parole“da“8“bit).‘á[Ogni“blošGcco“€è“individuato“da“un“indirizzo“univ¸èo˜co,‘îfil“Änumer‘ÿ}/o‘diŽ¡blo–ÿ}/c“c“o–“°del“disc‘ÿ}/o‘¡Ž¹.Ž¦Unix–±€divide“il“disco“in“Äp›ÿ}/artizioni–è¬del“disc˜o‘¡Ž¹.‘† Ogni–±€partizione“€è“formata“da“una“serie“con•¸ètin“ua–±€di“bloGccš¸èhi“c˜heŽ¡vš¸èengono–cDusati“separatamen˜te“da“quelli“delle“altre“partizioni,‘fÍcome“le“system“oppure“come“spazio“sw˜ap.‘›ìLaŽ¡partizione–ã con“n¸èumero“pi€ù“basso“viene“spšGesso“trattata“in“mo˜do“sp˜eciale,‘ùÜcome“Äp‘ÿ}/artizione–*¼di“avvio‘„š¹do•¸èv“e–ã si“pu€òŽ¡mettere–U un“k¸èernel“da“far“partire.Ž¦Ogni–› partizione“€è“alternativ‘ÿqÐamenš¸ète“uno“Äsp‘ÿ}/azio‘Ôswap‘¡Ž¹,‘¬‡usato“pGer“implemen˜tare“9“(memoria“virtuale),‘¬‡oppureŽ¡un–ætÄle‘-Þsystem‘ÄU¹,‘ü–usato“pGer“conš¸ètenere“i“le.‘LœLe“partizioni“sw˜ap“sono“trattate“proprio“come“una“sequenza“lineareŽ¡di–,bloGccš¸èhi.‘÷¢I‘,Ile“system,–bYin˜v˜ece,“hanno–,bisogno“di“un“mošGdo“p˜er“asso˜ciare“i“nomi“dei“le“alle“sequenze“diŽ¡bloGccš¸èhi–Qjdisco.‘pCDal“momen˜to“c˜he“la“dimensione“dei“le“aumen˜ta,–R(dimin˜uisce,“si–QjmošGdica“nel“temp˜o,‘R(i“blo˜cc¸èhiŽ¡dati–¦cdi“un“le“non“saranno“una“sequenza“lineare“ma“pGotranno“essere“disseminati“su“tutta“la“sua“partizioneŽ¡(dipšGende–U da“do•¸èv“e–U il“sistema“op˜erativš¸èo“riesce“a“tro˜v‘ÿqÐare“un“blošGcco“lib˜ero“quando“gliene“serv¸èe“uno).ŽŽŽŒ‹ ºô Û_2 ý ~?Ÿ„€ÕÁGŽÁ11.‘ñ8Come–Õfa“il“computer“a“immagazzinare“le“cose“su“disco?’žÕm¹11ŽŽ ÕÁ ýV¯Ã11.2Ž‘%}¨Nomi–¸dei“le“e“delle“directoryŽŸMª¹All'in¸èterno–‰di“ciascun“le“system“la“corrispšGondenza“tra“i“nomi“e“i“blo˜cc¸èhi“viene“assicurata“da“una“strutturaŽ¤ ®cš¸èhiamata–ƒRÄi-no‘ÿ}/de‘ÀO¹.‘üC'€è“un“gruppGo“di“questi“elemen˜ti“vicino“al“fondo‘Xš(i“bloGcc˜hi“a“n˜umerazione“pi€ù“bassa)“diŽ¡ciascun–‚ole“system“(quelli“pi€ù“bassi“in“assoluto“sono“usati“a“ni“di“manš¸èutenzione“e“di“etic˜hettatura,‘Ãnon“neŽ¡parleremo–U qui).›q€Ogni“i-noGde“individua“un“le.˜I“bloGccš¸èhi“dati“dei“le“si“tro˜v‘ÿqÐano“sotto“gli“i-noGde.Ž©ؼCiascun–$éi-noGde“conš¸ètiene“una“lista“dei“n˜umeri“di“bloGcco“disco“relativi“al“le“c˜he“individua.‘àÚ(Questa“€è“unaŽ¡mezza–¤Öv¸èerit€à,›Ècorretta“solo“pGer“i“le“piccoli,˜ma“il“resto“dei“dettagli“non“€è“impGortanš¸ète“qui.)‘6½Notate“c˜he“l'i-noGdeŽ¡Änon‘u¹con¸ètiene–U il“nome“del“le.Ž¦I‘«Ynomi–«„dei“le“si“tro¸èv‘ÿqÐano“nelle“Ästruttur›ÿ}/e–÷¥del‘‚Ðle“dir˜e˜ctory‘ân¹.‘8÷Una–«„struttura“della“directory“assoGcia“i“nomi“ai“n¸èumeriŽ¡i-no•Gde.‘BEcco›Û¶p“erc¸èh€é,–ý[su˜Unix,“un˜le˜pu€ò˜a•¸èv“ere˜pi€ù˜nomi˜reali˜(o˜Ähar‘ÿ}/d‘link‘}¹);‘sono˜soltan“to˜div“erse˜v“oGci˜diŽ¡directory–U cš¸èhe“pun˜tano“allo“stesso“i-noGde.ŽŸ#ÃÃ11.3Ž‘%}¨Moun• t‘¸p_úoin“tŽŸMª¹Nel–(«caso“pi€ù“semplice,‘]Žtutto“il“vš¸èostro“le“system“Unix“si“tro˜v‘ÿqÐa“su“di“una“sola“partizione“disco.‘ì"Anc˜he“seŽ¡questa–³8situazione“si“ritroš¸èv‘ÿqÐa“in“qualc˜he“piccolo“sistema“Unix“pGersonale,‘ʾ€è“in˜usuale.‘‹ÉPi€ù“generalmen˜te“esso“€èŽ¡suddiviso– Ytra“pi€ù“partizioni“disco,‘6gmagari“su“divš¸èersi“disc˜hi“sici.‘Ž*Cos€ì,›6gpGer“esempio,˜il“v¸èostro“sistema“pu€òŽ¡a•¸èv“ere–Ĩuna“piccola“partizione“do•¸èv“e–Ĩalloggia“il“kš¸èernel,‘à‹una“un“pGo'“pi€ù“grande“do˜v˜e“si“tro˜v‘ÿqÐano“i“programmi“diŽ¡utilit€à–U del“SO“e“una“molto“pi€ù“grande“do•¸èv“e–U ci“sono“le“directory“pGersonali“degli“uten¸èti.Ž¦La–L4sola“partizione“alla“quale“aš¸èvrete“accesso“subito“dopGo“l'a˜vvio“del“sistema“€è“la“Äp–ÿ}/artizione‘‹{r“o“ot‘òɹ,‘Mýc˜he–L4€è“(quasiŽ¡sempre)–“quella“dalla“quale“a•¸èv“ete–“fatto“il“b•Go“ot.‘0ÐEssa–“con¸ètiene“la“rošGot“directory“del“le“system,‘¹ßil“no˜do“sup˜erioreŽ¡dal–U quale“dipGende“tutto“il“resto.Ž¦Le–·altre“partizioni“del“sistema“devš¸èono“collegarsi“a“questa“roGot“anc˜h€é“tutto“il“v˜ostro“le“system“m˜ultipar-Ž¡tizione– “sia“accessibile.‘X§Circa“a“met€à“del“proGcesso“di“aš¸èvvio,‘|il“v˜ostro“Unix“render€à“accessibili“queste“partizioniŽ¡non–U rošGot.‘q€Do¸èvr€à“Ämontar‘ÿ}/e‘o¹ciascuna“di“esse“su“una“directory“della“partizione“ro˜ot.Ž¦Pš¸èer–QQesempio,‘^se“a˜v˜ete“una“directory“c˜hiamata“`/usr',‘^si“tratta“probabilmen˜te“di“un“moun˜t“pGoin˜t“pGer“unaŽ¡partizione–øÌcš¸èhe“con˜tiene“molti“programmi“c˜he“fanno“parte“della“distribuzione“standard“del“v˜ostro“Unix“maŽ¡cš¸èhe–U non“sono“necessari“duran˜te“l'a˜vvio“iniziale.ŽŸ#ÃÃ11.4Ž‘%}¨Come–¸viene“cercato“un“leŽŸMª¹Ora–…@pGossiamo“guardare“al“le“system“dall'alto“al“basso.‘àEcco“cosa“succede“quando“aprite“un“le“(quale,‘‘HadŽ¡esempio,‘U º/home/esr/WWW/ldp/fundamentals.sgml¹):Ž¦Il–þkš¸èernel“parte“dalla“radice“del“v˜ostro“le“system“Unix“(dalla“partizione“roGot).‘]uCerca“una“directory“c˜hiamataŽ¡`home'.‘CïDi–Ìksolito“`home'“€è“un“mounš¸èt“pGoin˜t“pGer“una“grande“partizione“uten˜te“da“qualc˜he“altra“parte,‘çÂcos€ì“v‘ÿqÐa“diŽ¡l€à.‘n5Nella–K@struttura“della“directory“di“livš¸èello“pi€ù“alto“di“quella“partizione“uten˜te“cerca“pGoi“una“v˜oGce“c˜hiamataŽ¡`esr'–ÎSe“ne“estrae“un“n¸èumero“di“i-nošGde.‘ÝV‘ÿ*¸a“a“quell'i-no˜de,‘ìŸvš¸èede“c˜he“si“tratta“di“una“struttura“di“directory“eŽ¡cerca–¤†`WWW'.“Estraendo“Äquel‘‚Ðl‘w¹'i-nošGde,‘¸_v‘ÿqÐa“alla“corrisp˜onden¸ète“sotto˜directory“e“cerca“`ldp'.‘_±Questo“lo“p˜ortaŽ¡a–³un“altro“i-noGde“di“directory“ancora.‘È8Aprendolo,‘N—troš¸èv‘ÿqÐa“il“n˜umero“i-noGde“di“`fundamen˜tals.sgml'.‘È8QuestoŽ¡i-noGde–U non“€è“una“directory‘ÿ*¸,“ma“conš¸ètiene“in˜v˜ece“l'elenco“dei“bloGcc˜hi“disco“assoGciati“al“le.ŽŸ#ÃÃ11.5Ž‘%}¨Proprietari–¸dei“le,“autorizzazioni“e“sicurezzaŽŸMª¹Pš¸èer–vÌimpGedire“ai“programmi“di“in˜terv˜enire“acciden˜talmen˜te“o“maliziosamen˜te“su“dati“su“cui“non“do˜vrebbGero,Ž¡Unix––Õusa“le“Äautorizzazioni‘ɹ.‘6 Queste“vš¸èennero“originariamen˜te“pšGensate“p˜er“supp˜ortare“il“timesharing,‘çCpro-ŽŽŽŒ‹ ÎÒ Û_2 ý ~?Ÿ„€ÕÁGŽÁ11.‘ñ8Come–Õfa“il“computer“a“immagazzinare“le“cose“su“disco?’žÕm¹12ŽŽ ÕÁ ýV¯teggendo–I‘gli“uni“dagli“altri“utenš¸èti“div˜ersi“sulla“stessa“macc˜hina,‘Káquando“ancora“Unix“v˜eniv‘ÿqÐa“usato“su“costosiŽ¤ ®minicomputer‘U condivisi.Ž©ؼPš¸èer–’comprendere“le“autorizzazioni“sui“le,‘HoGccorre“ric˜hiamare“la“descrizione“di“uten˜ti“e“gruppi“nella“sezione“5Ž¡(Che–Ícosa“accade“con“il“log“in?).›+Ciascun“le“ha“un“uten¸ète“proprietario“e“un“gruppGo“proprietario.˜Inizialmen¸èteŽ¡sono–U quelli“del“creatore“del“le;“pšGossono“p˜oi“essere“mo˜dicati“con“i“programmi“c•¸èho“wn(1)–U e“c¸èhgrp(1).Ž¦Le–…$autorizzazioni“fondamenš¸ètali“c˜he“pšGossono“essere“asso˜ciate“a“un“le“sono“`read'“(autorizzazione“a“leggere“iŽ¡dati›OÕcon•¸èten“uti),‘„`write'˜(autorizzazione˜a˜moGdicarli)˜e˜`execute'˜(autorizzazione˜a˜eseguirli˜come˜programma).Ž¡Ciascun–ò¨le“ha“tre“set“di“autorizzazioni;‘Aluno“pšGer“l'uten¸ète“proprietario,‘ uno“p˜er“tutti“gli“uten¸èti“nel“grupp˜oŽ¡proprietario–’‚e“uno“pGer“tutti“gli“altri.‘)§I‘’r`privilegi'“cš¸èhe“si“ottengono“al“momen˜to“del“log“in“sono“la“pGossibilit€àŽ¡di–,leggere,‘ömoGdicare“ed“eseguire“quei“le“i“cui“bit“di“autorizzazione“coincidono“la“propria“ID‘uten¸ète“o“quellaŽ¡di–U un“gruppGo“a“cui“si“appartiene.Ž¦P•¸èer›Uªv“edere˜come˜queste˜pGossono˜in“teragire˜e˜come˜le˜visualizza˜Unix,‘UÍosserviamo˜alcuni˜elenc“hi˜di˜le˜su˜unŽ¡sistema–U Unix“ipGotetico.‘q€Ecco“un“esempio:ŽŸÂÁ‘óqLË ectt0900Æsnark:~$–¹Nls“-l“notesŽŸ Š=‘-rw-r--r--‘+ê1–¹Nesr‘WÔusers‘*ƒ¾2993“Jun“17“11:00“notesŽŸ昹Si–GÑtratta“di“un“le“di“dati“ordinario.‘mIl“listato“ci“dice“cš¸èhe“il“proprietario“€è“l'uten˜te“`esr',‘Jzcreato“con“il“gruppGoŽ¡proprietario–`ì`users'.‘ Probabilmenš¸ète“la“macc˜hina“su“cui“si“tro˜v‘ÿqÐa“mette“pGer“denizione“tutti“gli“uten˜ti“ordinari“inŽ¡questo–ÒgruppGo;‘ìaltri“gruppi“cš¸èhe“si“v˜edranno“com˜unemen˜te“su“macc˜hine“con“timesharing“sono“`sta‘Ç',‘®`admin',Ž¡o–Á'`wheel'“(pšGer“o¸èvvie“ragioni,‘Ü)i“gruppi“non“sono“molto“imp˜ortanš¸èti“su“w˜orkstation“a“singolo“uten˜te“o“PC).“IlŽ¡vš¸èostro–U Unix“p•Gotrebb“e–U usare“un“gruppGo“di“default“dieren˜te,“magari“deriv‘ÿqÐato“dal“v˜ostro“nome“uten˜te.Ž¦La–Á±stringa“`-rw-rr'“rappresen¸èta“i“bit“di“autorizzazione“pšGer“il“le.‘·2Il“primo“trattino“€è“la“p˜osizione“delŽ¡bit–Ý$directory;‘¡&se“il“le“fosse“stato“una“directory“il“bit“sarebbšGe“stato“`d'.‘ ŒDop˜o“di“questo,‘?%le“prime“treŽ¡pGosizioni–6]successivš¸èe“sono“le“autorizzazioni“uten˜te,‘<„le“seconde“tre“le“autorizzazioni“del“gruppGo“e“le“terze“tre“leŽ¡autorizzazioni–RÿpšGer“gli“altri“(sp˜esso“cš¸èhiamate“autorizzazioni“`w˜orld').‘pÊSu“questo“le“l'uten˜te“proprietario“`esr'Ž¡pu€ò–¡ýleggere“e“mošGdicare“il“le,‘µ4gli“altri“appartenen¸èti“al“grupp˜o“`users'“p˜ossono“leggerlo“e“cos€ì“tutti“gli“altriŽ¡utenš¸èti.‘q€Si–U tratta“di“un“set“di“autorizzazioni“piuttosto“tipic˜he“pGer“un“le“di“dati“ordinario.Ž¦Ora–U osserviamo“un“le“con“autorizzazioni“molto“div¸èerse.‘q€T‘ÿ*¸ale“le“€è“GCC,“il“compilatore“C“GNU.ŽŸÂÁ‘Æsnark:~$–¹Nls“-l“/usr/bin/gccŽŸ Š=‘-rwxr-xr-x‘+ê3–¹Nroot‘ž†bin‘*ƒ¾64796“Mar“21“16:41“/usr/bin/gccŽŸ昹Questo–ø±le“appartiene“a“un“utenš¸ète“c˜hiamato“`rošGot'“e“ad“un“grupp˜o“c¸èhiamato“`bin';‘pu€ò“essere“mo˜dicato“soloŽ¡da–sBrošGot,‘zËma“letto“ed“eseguito“da“tutti.‘ËçSi“tratta“di“un“proprietario“e“un“set“di“autorizzazioni“tipic¸èhe“p˜er“unŽ¡comando–ÂJdi“sistema“pre-installato.‘@ŽIl“gruppšGo“`bin'“esiste“su“alcuni“Unix“p˜er“raggruppare“i“comandi“di“sistemaŽ¡(il–›Ánome“€è“una“reliquia“storica,‘­jabbreviazione“di“`binary').‘EdIl“vš¸èostro“Unix“p•Gotrebb“e–›Áusare“in˜v˜ece“un“gruppGoŽ¡`roGot'–U (non“esattamenš¸ète“la“stessa“cosa“dell'uten˜te“`roGot'‘`!).Ž¦L'utenš¸ète–ÏU`roGot'“€è“il“nome“con˜v˜enzionale“pGer“l'ID‘Ï5uten˜te“con“n˜umero“0,‘íâun“accoun˜t“spGeciale“privilegiato“c˜heŽ¡pu€ò–}Hsca¸èv‘ÿqÐalcare“tutti“i“privilegi.‘é÷L'accesso“rošGot“€è“utile“ma“p˜ericoloso;‘[un“errore“di“battitura“quando“si“€èŽ¡collegati–„scome“rošGot“p˜otrebb˜e“roš¸èvinare“le“critici“del“sistema,‘ÐGcosa“c˜he“non“pu€ò“a˜vv˜enire“con“un“accoun˜tŽ¡uten¸ète‘U ordinario.Ž¦P•¸èoic“h€é›­£l'accoun“t˜ro•Got˜€è˜cos€ì˜p“oten•¸ète,‘ÃÃil˜suo˜accesso˜do“vrebbGe˜essere˜sorv“egliato˜atten“tamen“te.‘{La˜passw“ordŽ¡di–QrošGot“€è“il“comp˜onenš¸ète“pi€ù“critico“nelle“informazioni“di“sicurezza“del“sistema,‘QØe“sar€à“quello“c˜he“cerc˜herannoŽ¡di–U ottenere“tutti“i“crac•¸èk“er–U e“gli“inš¸ètrusi“c˜he“v˜erranno“dopGo“di“v˜oi.Ž¦(P•¸èer›T[quan“to˜riguarda˜le˜passw“ord:‘oönon˜scriv“etele˜su˜carta˜˜e˜non˜scegliete˜passw“ord˜c“he˜pGossano˜essereŽ¡indo•¸èvinate›Œ©facilmen“te,‘šŒcome˜il˜nome˜della/o˜v“ostra/o˜ragazza/o.‘€È‘Œ›una˜pratica˜sorprenden“temen“te˜com“uneŽ¡cš¸èhe–U aiuta“con˜tin˜uamen˜te“i“crac˜k˜er...)ŽŽŽŒ‹ à® Û_2 ý ~?Ÿ„€ÕÁGŽÁ11.‘ñ8Come–Õfa“il“computer“a“immagazzinare“le“cose“su“disco?’žÕm¹13ŽŽ ÕÁ ýV¯Osserviamo–U ora“un“terzo“caso:ŽŸ矑Æsnark:~$–¹Nls“-ld“~Ž¤ Š=‘drwxr-xr-x‘ rœ89–¹Nesr‘WÔusers‘/= 9216“Jun“27“11:29“/home2/esrŽ¡‘snark:~$ŽŸ v¹Questo–¦œle“€è“una“directory“(osserviamo“la“`d'“in“prima“pšGosizione).‘eõV‘ÿ*¸ediamo“c¸èhe“pu€ò“essere“mo˜dicata“soloŽ¤ ®da–müesr,‘t3ma“letta“ed“eseguita“da“tutti“gli“altri.‘¼Le“autorizzazioni“vš¸èengono“in˜terpretate“in“mošGdo“sp˜eciale“sulleŽ¡directory;–U esse“conš¸ètrollano“l'accesso“ai“le“con˜ten˜uti“all'in˜terno“della“directory‘ÿ*¸.Ž©ؼAutorizzazione–O in“lettura“su“una“directory“€è“semplice;‘¦Ësignica“semplicemenš¸ète“c˜he“pGotete“esplorare“la“directoryŽ¡e–‹aprire“i“le“e“le“directory“cš¸èhe“con˜tiene.‘L'autorizzazione“in“scrittura“(mošGdica)“da“la“p˜ossibilit€à“di“creareŽ¡e–ôcancellare“le“nella“directory‘ÿ*¸.‘KýAutorizzazione“di“esecuzione“consen¸ète“di“eettuare“Äric–ÿ}/er“che‘^C¹nella‘ôdirectoryŽ¡›¹qo•¸èvv“ero˜elencare˜il˜suo˜con“ten“uto˜e˜v“edere˜i˜nomi˜dei˜le˜e˜delle˜directory˜c“he˜con“tiene.‘žtA‘¹Xv“olte˜tro“v“ereteŽ¡directory–å¢cš¸èhe“sono“leggibili“da“tutti“ma“non“eseguibili;‘ Ìquesto“signica“c˜he“un“uten˜te“qualunque“pu€ò“accedereŽ¡a–U le“e“directory“al“suo“inš¸èterno,“ma“solamen˜te“se“ne“conosce“il“nome“esatto.Ž¦Inne,–U osserviamo“le“autorizzazioni“del“programma“login“stesso.ŽŸ矑Æsnark:~$–¹Nls“-l“/bin/loginŽŸ Š=‘-rwsr-xr-x‘+ê1–¹Nroot‘ž†bin‘*ƒ¾20164“Apr“17“12:57“/bin/loginŽŸ v¹Pš¸èossiede–95le“autorizzazioni“c˜he“ci“aspšGetteremmo“p˜er“un“comando“di“sistema““tranne“la“`s'“do•¸èv“e‘95do“vrebb˜eŽ¡esserci–q±il“bit“pGer“l'autorizzazione“in“esecuzione“del“proprietario.‘Ç3Si“tratta“della“manifestazione“visibile“di“unŽ¡tip•Go›U sp“eciale˜di˜autorizzazione˜c¸èhiamata˜`set-user-id'˜o˜Äbit‘“°setuid‘w¹.Ž¦Il–"±bit“setuid“€è“normalmenš¸ète“legato“a“programmi“c˜he“hanno“la“necessit€à“di“dare“agli“uten˜ti“ordinari“i“privilegiŽ¡di–lMrošGot,‘rma“in“mo˜do“con¸ètrollato.‘·Quando“€è“imp˜ostato“su“un“programma“eseguibile,‘rsi“acquistano“i“privilegiŽ¡del–U proprietario“di“quel“le“ncš¸èh€é“si“esegue“quel“programma,“sia“c˜he“essi“coincidano“con“i“nostri“oppure“no.Ž¦Come–"‰l'accoun¸èt“rošGot“stesso,‘,§i“programmi“setuid“sono“utili“ma“p˜ericolosi.‘`£Chiunque“sia“in“grado“di“so•¸èvv“ertireŽ¡o–vÆmošGdicare“un“programma“setuid“c¸èhe“ha“ro˜ot“come“proprietario,‘¿/pu€ò“utilizzarlo“p˜er“accedere“alla“shellŽ¡con–Èprivilegi“di“roGot.‘ÊkP¸èer“questa“ragione“sulla“maggior“parte“dei“sistemi“Unix,‘ä×aprendo“un“le“in“scritturaŽ¡automaticamenš¸ète–òil“suo“bit“setuid“viene“disattiv‘ÿqÐato.‘P|Molti“attacc˜hi“alla“sicurezza“su“Unix“ten˜tano“di“scoprireŽ¡bug–Vnei“programmi“setuid,‘VQcon“lo“scopGo“di“so•¸èvv“ertirli.‘t[Amministratori–Vdi“sistema“atten¸èti“alla“sicurezza“sonoŽ¡quindi–U molto“prudenš¸èti“con“questi“programmi“e“riluttan˜ti“alla“installazione“di“n˜uo˜vi.Ž¦Ci–.hsono“un“paio“di“impGortati“dettagli“cš¸èhe“abbiamo“sorv˜olato“duran˜te“la“discussione“preceden˜te“sulle“autoriz-Ž¡zazioni;‘s in–i particolare,‘n come“vš¸èengono“assegnati“l'uten˜te“e“il“gruppGo“proprietario“quando“viene“creato“un“leŽ¡pšGer–°„la“prima“v¸èolta.‘ƒ«Il“grupp˜o“€è“imp˜ortan¸ète“p˜oicš¸èh€é“gli“uten˜ti“pGossono“essere“mem˜bri“di“pi€ù“gruppi,‘Ç]ma“unoŽ¡di–È.essi“(spšGecicato“nella“v¸èo˜ce“dell'utenš¸ète“in“º/etc/passwd¹)“€è“il“Ägrupp‘ÿ}/o–ý‰di“default‘º÷¹dell'uten˜te–È.e“normalmen˜teŽ¡pGossieder€à–U i“le“creati“dall'uten¸ète.Ž¦P•¸èer›µÓquan“to˜riguarda˜i˜bit˜iniziali˜di˜autorizzazione,‘Õ¯la˜faccenda˜€è˜leggermen“te˜pi€ù˜complicata.‘ßquesto“tipGo“di“ev˜en˜tualit€à“€è“div˜en˜uto“abbastanza“infrequen˜te“pGerc˜h€é“l'hardw˜are“dei“disc˜hi“€èŽ¡pi€ù–/8adabile.‘dÞT‘ÿ*¸uttaš¸èvia,‘6Íquesto“compGorta“c˜he“il“v˜ostro“Unix“v˜oglia“con˜trollare“p•Gerio“dicamen˜te–/8l'in˜tegrit€à“delŽ¡le–†rsystem“pGer“assicurarsi“cš¸èhe“non“ci“sia“n˜ulla“fuori“pšGosto.‘vGli“Unix“mo˜derni“compiono“un“rapido“con¸ètrolloŽ¡dell'inš¸ètegrit€à–uødi“ciascuna“partizione“nella“fase“di“a˜vvio,‘~.giusto“prima“di“mon˜tarle.‘ÔOgni“tot“ria˜vvii“fanno“unŽ¡conš¸ètrollo–U molto“pi€ù“approfondito“c˜he“impiega“qualc˜he“min˜uto“in“pi€ù.Ž¦Se–ßtutto“questo“pu€ò“far“semš¸èbrare“c˜he“Unix“sia“terribilmen˜te“complesso“e“incline“a“malfunzionamen˜ti,‘…pu€ò“es-Ž¡sere–Yhrassicuranš¸ète“sapGere“c˜he“questi“con˜trolli“nella“fase“d'a˜vvio“tipicamen˜te“in˜tercettano“e“correggono“i“problemiŽ¡normali–hHÄprima‘,¹cš¸èhe“div˜en˜tino“v˜eramen˜te“disastrosi.‘ªùAltri“sistemi“opGerativi“non“hanno“questi“strumen˜ti,‘mcosaŽ¡c•¸èhe›8Ïv“elo•Gcizza˜un˜p“o'˜l'a¸èvvio˜ma˜pu€ò˜mettervi˜molto˜di˜pi€ù˜nei˜pasticci˜quando˜cercate˜di˜fare˜un˜salv‘ÿqÐataggioŽ¡a–U mano“(e“sempre“assumendo“cš¸èhe“abbiate“una“copia“delle“Norton“Utilities“o“simili,“tan˜to“pGer“cominciare...).ŽŸ(ÀœÀ12Ž‘¬%Come–G\funzionano“i“linguaggi“ppœer“computer?ŽŸ¿:¹Abbiamo–Kgi€à“visto“6“(come“vš¸èengono“eseguiti“i“programmi).‘Ogni“programma“in“denitiv‘ÿqÐa“dev˜e“eseguire“unŽ¡usso––edi“bš¸èyte“c˜he“sono“istruzioni“nel“Älinguaggio‘ϼmac‘ÿ}/china‘Zº¹del“v˜ostro“computer.‘5NMa“gli“esseri“umani“non“seŽ¡la–šÝcaš¸èv‘ÿqÐano“molto“bGene“con“il“linguaggio“macc˜hina;‘½¼riuscirci“€è“div˜en˜uta“un'arte“rara,‘¬Muna“magia“nera“pGersinoŽ¡tra–U gli“hac•¸èk“er.Ž¦Quasi–Û¾tutto“il“cošGdice“Unix,‘ôad“eccezione“di“una“piccola“p˜orzione“relativ‘ÿqÐa“all'inš¸èterfaccia“diretta“con“l'hardw˜areŽ¡nel–¬kš¸èernel,‘*]viene“oggi“scritto“in“un“Älinguaggio–bƒdi“alto“livel‘‚Ðlo‘¡Ž¹.‘_¯(`Alto–¬liv˜ello'“in“questa“espressione“€è“un“residuoŽ¡storico–Õvš¸èolto“a“distinguerlo“dai“Älinguaggi‘ôßassembler‘胹di“`basso“liv˜ello',‘4ÿc˜he“sono“fondamen˜talmen˜te“sottiliŽ¡in•¸èv“olucri–U attorno“al“coGdice“macc¸èhina.)Ž¦Ci–Apsono“divš¸èersi“tipi“di“linguaggi“di“alto“liv˜ello.‘6oP˜er“aron˜tare“l'argomen˜to“tro˜v˜erete“utile“tenere“a“men˜teŽ¡cš¸èhe–{il“Äc–ÿ}/o“dic“e‘¶¤sor“gente‘;m¹di–{un“programma“(la“v˜ersione“creata“dall'uomo,‘„editabile)“dev˜e“passare“attra˜v˜erso“unŽ¡qualc¸èhe–U tipšGo“di“traduzione“in“co˜dice“maccš¸èhina“c˜he“il“computer“pu€ò“eettiv‘ÿqÐamen˜te“eseguire.ŽŸ#ÃÃ12.1Ž‘%}¨Linguaggi‘¸compilatiŽŸMª¹Il–ÎûtipGo“pi€ù“con•¸èv“enzionale–Îûdi“linguaggio“€è“il“Älinguaggio‘Ëc‘ÿ}/ompilato‘¡Ž¹.‘ßI‘ÎÛlinguaggi“compilati“v¸èengono“tradotti“inŽ¡le– "eseguibili“di“cošGdice“macc¸èhina“binario“da“uno“sp˜eciale“programma“cš¸èhiamato“(o˜vviamen˜te)“Äc–ÿ}/ompilator“e‘ÀO¹.Ž¡Una–°vš¸èolta“c˜he“il“cošGdice“binario“€è“stato“generato“p˜otete“eseguirlo“direttamen¸ète“senza“pi€ù“guardare“al“co˜diceŽ¡sorgenš¸ète.‘Lü(La–ç’maggior“parte“del“soft˜w˜are“€è“fornita“come“binari“compilati“a“partire“da“coGdice“c˜he“non“v˜edete.)Ž¦I‘Á~linguaggi–Á¤compilati“tendono“a“dare“prestazioni“eccellen¸èti“e“hanno“il“pi€ù“completo“accesso“al“SO,“ma“tendonoŽ¡anc¸èhe–U a“essere“dicili“da“programmare.Ž¦C,–Cuil“linguaggio“in“cui“Unix“stesso“€è“scritto,‘Fþ€è“di“gran“lunga“il“pi€ù“impGortanš¸ète“tra“questi“(con“la“sua“v‘ÿqÐarian˜teŽ¡C++).‘LèFš¸èOR‘ÿ*¸TRAN‘ç:€è–çVun“altro“linguaggio“ancora“usato“tra“gli“ingegneri“e“gli“scienziati“ma“di“anni“pi€ù“v˜ecc˜hioŽ¡e–e–molto“pi€ù“primitivš¸èo.‘¢âNel“mondo“Unix“nessun“altro“linguaggio“compilato“€è“nell'uso“dominan˜te.‘¢âAl“di“fuoriŽ¡di–U esso,“il“COBOL“€è“molto“usato“pGer“il“soft•¸èw“are–U nanziario“e“commerciale.Ž¦C'erano– Ómolti“altri“linguaggi“compilati,‘8?ma“la“maggior“parte“di“essi“si“sono“estinš¸èti“oppure“sono“strumen˜tiŽ¡strettamenš¸ète–õ9di“ricerca.‘QÌSe“siete“n˜uo˜vi“sviluppatori“Unix“e“usate“un“linguaggio“compilato“€è“estremamen˜teŽ¡probabile–U c¸èhe“questo“sia“il“C“o“il“C++.ŽŽŽŒ‹ Û_2 ý ~?Ÿ„€ÕÁGŽÁ13.‘ñ8Come–Õfunziona“In®>ternet?’6Ç©¹15ŽŽ ÕÁ ýV¯Ã12.2Ž‘%}¨Linguaggi‘¸in terpretatiŽŸMª¹Un–;Älinguaggio‘g>interpr‘ÿ}/etato‘Ü¢¹dipGende“da“un“programma“inš¸èterprete“c˜he“legge“il“coGdice“sorgen˜te“e“lo“traduceŽ¤ ®al–cvš¸èolo“in“calcoli“e“c˜hiamate“di“sistema.‘›'Il“sorgen˜te“dev˜e“essere“rein˜terpretato“(e“l'in˜terprete“dev˜e“essereŽ¡presenš¸ète)–U ogni“v˜olta“c˜he“il“coGdice“viene“eseguito.Ž©ؼI‘f"linguaggi–f&inš¸èterpretati“tendono“a“essere“pi€ù“len˜ti“dei“linguaggi“compilati“e“spGesso“hanno“accesso“limitato“alŽ¡sistema–d“opGerativš¸èo“e“all'hardw˜are“sottostan˜ti.‘ŸØD'altra“parte,‘hoessi“tendono“a“essere“pi€ù“facili“da“programmareŽ¡e–U pi€ù“propšGensi“a“p˜erdonare“gli“errori“di“co˜dica“risp˜etto“ai“linguaggi“compilati.Ž¦Molti–’xprogrammi“di“utilit€à“di“Unix,›¡Íinclusa“la“shell,˜bGc(1),˜sed(1)“e“a¸èwk(1),˜sono“in“eetti“piccoli“linguaggiŽ¡inš¸èterpretati.‘D”I–Î8BASIC“sono–ÎZdi“solito“in˜terpretati.›D”Cos€ì“pure“il“T‘ÿ*¸cl.˜Storicamenš¸ète,‘éNil“pi€ù“impGortan˜te“linguaggioŽ¡inš¸èterpretato–÷û€è“stato“il“LISP‘÷Ñ(un“grande“miglioramen˜to“rispGetto“ai“suoi“predecessori).‘ZOggi“il“P˜erl“€è“moltoŽ¡usato–U ed“in“costan¸ète“crescita“di“p•Gop“olarit€à.ŽŸ#ÃÃ12.3Ž‘%}¨Linguaggi–¸a“co_údice“PŽŸMª¹Dal–º 1990“€è“andato“assumendo“impšGortanza“crescen¸ète“un“tip˜o“di“linguaggi“ibridi“c¸èhe“usa“sia“la“compilazioneŽ¡c•¸èhe›l'in“terpretazione.‘I–Œñlinguaggi˜a˜coGdice˜P“sono˜come˜i˜linguaggi˜compilati˜nel˜senso˜c•¸èhe˜il˜sorgen“te˜vieneŽ¡tradotto–¿,in“una“forma“binaria“compatta“cš¸èhe“€è“ci€ò“c˜he“viene“realmen˜te“eseguito,‘Ù¯ma“c˜he“non“€è“esattamen˜teŽ¡coGdice–Vˆmaccš¸èhina.‘u¹Si“tratta“in˜v˜ece“di“Äpseudo–ÿ}/c“o“dic“e‘×¹(o›VˆÄc“o“dic“e‘”ûP‘¹)˜c•¸èhe˜€è˜solitamen“te˜molto˜pi€ù˜semplice˜ma˜pi€ùŽ¡pGotenš¸ète–U di“un“v˜ero“linguaggio“macc˜hina.‘q€Quando“eseguite“il“programma,“in˜terpretate“il“coGdice“P‘ÿ*¸.Ž¦Il–0ËcošGdice“P‘0’pu€ò“girare“v•¸èelo˜cemen“te–0Ëquasi“quanš¸èto“un“binario“compilato“(gli“in˜terpreti“di“cošGdice“P‘0’p˜ossonoŽ¡essere–Dabbastanza“semplici,‘G|leggeri“e“rapidi).‘kÑMa“i“linguaggi“a“coGdice“P‘Driescono“a“man¸ètenere“la“essibilit€à“eŽ¡la–U pGotenza“di“un“buon“in¸èterprete.Ž¦ImpšGortan¸èti–U linguaggi“a“co˜dice“P“includono“Python“e“Ja¸èv‘ÿqÐa.ŽŸ(ÀœÀ13Ž‘¬%Come–G\funziona“Incternet?ŽŸ¿:¹Pš¸èer–Útaiutarvi“a“capire“come“funziona“In˜ternet“daremo“un'oGcc˜hiata“alle“cose“c˜he“succedono“quando“fate“unaŽ¡tipica–ÃopGerazione“di“Inš¸èternet:‘Meindirizzate“un“bro˜wser“alla“prima“pagina“di“questo“doGcumen˜to,‘Þsul“sito“W‘ÿ*¸ebŽ¡del–U Linš¸èux“DoGcumen˜tation“Pro‘Ž0ject.‘q€L'indirizzo“di“questo“doGcumen˜to“€èŽ¤ؼºhttp://metalab.unc.edu/LDP/HOWTO/Fundamentals.htmlŽ¡¹cš¸èhe–5!signica“c˜he“si“tro˜v‘ÿqÐa“nel“le“LDP/HO˜WTO/F‘ÿ*¸undamen˜tals.h˜tml“sotto“la“w˜eb“directory“dell'hostŽ¤ ®metalab.unc.edu.ŽŸ#ÃÃ13.1Ž‘%}¨Nomi–¸e“lo_úcazioniŽŸMª¹La–Oprima“cosa“cš¸èhe“il“v˜ostro“bro˜wser“dev˜e“fare“€è“stabilire“una“connessione“remota“al“computer“do˜v˜e“si“tro˜v‘ÿqÐaŽ¡il–!ÔdoGcumenš¸èto.‘`gA‘!Çtal“ne“dev˜e“prima“tro˜v‘ÿqÐare“la“loGcazione“remota“dell'Ähost‘¹metalab.unc.edu“(`host'“€è“la“formaŽ¡brev¸èe–edi“`computer“host'“o“`host“remoto';‘µmetalab.unc.edu“€è“un“tipico“Ähostname‘ÀO¹).‘!}La“lošGcazione“corrisp˜onden¸èteŽ¡€è–U in“realt€à“un“nš¸èumero“c˜hiamato“Äindirizzo‘“°IP‘[¡¹(spiegheremo“pi€ù“a˜v‘ÿqÐan˜ti“la“parte“`IP'“di“questa“espressione).Ž¦A‘À2questo–ÀXscopGo“il“vš¸èostro“bro˜wser“in˜terroga“un“programma“c˜hiamato“Äname‘ Ïserver‘}¹.‘?èIl“name“serv˜er“pu€ò“tro˜v‘ÿqÐarsiŽ¡sul–ž{vš¸èostro“computer,‘°Òma“€è“pi€ù“probabile“c˜he“giri“su“un“computer“del“fornitore“col“quale“il“v˜ostro“computerŽ¡dialoga.‘=æQuando–ºPvi“collegate“a“un“ISP‘º)una“parte“della“proGcedura“consiste“quasi“sicuramenš¸ète“nel“dire“al“v˜ostroŽ¡soft•¸èw“are–U pGer“Inš¸èternet“qual“€è“l'indirizzo“IP“di“un“name“serv˜er“sulla“rete“dell'ISP‘ÿ*¸.ŽŽŽŒ‹5 Û_2 ý ~?Ÿ„€ÕÁGŽÁ13.‘ñ8Come–Õfunziona“In®>ternet?’6Ç©¹16ŽŽ ÕÁ ýV¯I‘&mname–&yservš¸èer“sui“v‘ÿqÐari“computer“si“parlano“tra“loro,‘/Íscam˜biandosi“e“tenendo“aggiornate“tutte“le“informazioniŽ¤ ®necessarie–ßpšGer“risolv¸èere“i“nomi“degli“host“(p˜er“metterli“in“corrisp˜ondenza“con“gli“indirizzi“IP).“Il“v¸èostro“nameŽ¡servš¸èer–CDpu€ò“in˜terrogare“tre“o“quattro“div˜ersi“siti“sulla“rete“nel“proGcesso“di“risoluzione“di“metalab.unc.edu,‘FÖmaŽ¡di–U solito“questo“si“vš¸èerica“molto“rapidamen˜te“(tipGo“in“meno“di“un“secondo).Ž©ؼIl–ï½name“servš¸èer“dir€à“al“v˜ostro“bro˜wser“c˜he“l'indirizzo“IP‘ï•di“Metalab“€è“152.2.22.81;‘= a“questo“pun˜to“il“v˜ostroŽ¡computer–U sar€à“in“grado“di“scamš¸èbiare“direttamen˜te“bit“con“metalab.ŽŸ#ÃÃ13.2Ž‘%}¨P• acc“hetti–¸e“routerŽŸMª¹Quello–U cš¸èhe“il“bro˜wser“vuole“€è“mandare“al“serv˜er“W‘ÿ*¸eb“su“Metalab“un“comando“come“questo:Ž¤ؼºGET–?¬/LDP/HOWTO/Fundamentals.html“HTTP/1.0Ž¡¹Ecco–•æcosa“succede.‘3ÓDal“comando“si“costruisce“un“Äp–ÿ}/ac“chetto‘¡Ž¹,‘¦ciošG€è–•æun“blo˜cco“di“bit“come“un“telegramma“c¸èheŽ¤ ®€è–`impaccš¸èhettato'“con“tre“cose“impGortan˜ti:‘{l'Äindirizzo–K­di“pr‘ÿ}/ovenienza‘ás¹(l'indirizzo–IP‘êdel“v˜ostro“computer),Ž¡l'Äindirizzo–°™di“destinazione‘4ܹ(152.2.22.81),‘|he–tun“Änumer›ÿ}/o–°™di“servizio‘¹o‘tÄnumer˜o“di“p˜orta‘8â¹(in–tquesto“caso“80)“c¸èheŽ¡indica–U cš¸èhe“si“tratta“di“una“ric˜hiesta“W›ÿ*¸orld“Wide“W˜eb.Ž¦Il–MCvš¸èostro“computer“spGedisce“allora“il“pacc˜hetto“lungo“il“ca˜v˜o“(la“connessione“moGdem“al“v˜ostro“ISP‘Mo“reteŽ¡lošGcale)–ÒÒnc¸èh€é“arriv‘ÿqÐa“a“un“computer“sp˜ecializzato“c¸èhiamato“Är‘ÿ}/outer‘}¹.‘FIl“router“ha“nella“sua“memoria“una“mappaŽ¡di– àIn¸èternet,›:Ðnon“sempre“una“completa,˜ma“una“cš¸èhe“descriv˜e“completamen˜te“il“v˜ostro“vicinato“di“rete“e“saŽ¡come–U raggiungere“i“router“pGer“altri“circondari“di“In¸èternet.Ž¦Il–:Øvš¸èostro“pacc˜hetto“p•Gotrebb“e–:Øpassare“attra˜v˜erso“sv‘ÿqÐariati“router“lungo“la“strada“pGer“la“sua“destinazione.‘"©IŽ¡router– ternet?’6Ç©¹17ŽŽ ÕÁ ýV¯L'IP‘4Ü€è–4åvš¸èeloGce“ed“economico,‘;Wcom˜unque.‘fÂA‘4Üv˜olte“v˜elošGce,‘;Weconomico“e“inadabile“v‘ÿqÐa“b˜ene.‘fÂQuando“gio˜cate“inŽ¤ ®rete–Ƥa“DoGom“o“Quakš¸èe,‘ã#ogni“pallottola“€è“rappresen˜tata“da“un“pacc˜hetto“IP‘ÿ*¸.“Se“alcune“v˜engono“pGerse,‘ã#pazienza.Ž©ؼIl–è³livš¸èello“supGeriore,‘þbÄTCP‘ï¹(T‘ÿ*¸ransmission“Con˜trol“ProtoGcol),‘þbvi“d€à“adabilit€à.‘M\Questi“due“computer“negozianoŽ¡una–÷ñconnessione“TCP‘÷Ç(cosa“cš¸èhe“fanno“usando“l'IP);“il“ricev˜en˜te“sa“c˜he“dev˜e“spGedire“al“mitten˜te“un“a˜vvisoŽ¡di– ¹ricevuta“dei“paccš¸èhetti“c˜he“legge.‘›KSe“il“mitten˜te“non“v˜ede“un“a˜vviso“di“ricevuta“pGer“un“pacc˜hetto“en˜troŽ¡un–wvcerto“p•Gerio“do–wvdi“tempšGo“(timeout)“allora“risp˜edisce“quel“paccš¸èhetto.‘ØInoltre,‘€ il“mitten˜te“attribuisce“a“ogniŽ¡paccš¸èhetto–ˆ\TCP‘ˆOun“n˜umero“di“sequenza,‘•+c˜he“il“ricev˜en˜te“pu€ò“usare“pGer“riassem˜blare“i“pacc˜hetti“nel“caso“c˜heŽ¡risultino–^in“disordine.‘:(Cosa“cš¸èhe“si“v˜erica“se“un“collegamen˜to“della“rete“viene“attiv‘ÿqÐato“o“cade“duran˜te“unaŽ¡connessione.)Ž¦I–ª…paccš¸èhetti‘ª›TCP/IP“con˜tengono–ª›anc˜he“un“c˜hec˜ksum“pGer“consen˜tire“l'individuazione“di“dati“ro˜vinati“da“col-Ž¡legamenš¸èti–êºdifettosi.‘2MCos€ì,‘ dal“pun˜to“di“vista“di“c˜hiunque“usi“il“TCP/IP‘ê“e“i“name“serv˜er,‘ sem˜bra“adabileŽ¡passare–•ùussi“di“bš¸èyte“in“coppie“hostname/n˜umero“di“servizio.‘4 Chi“scriv˜e“i“protoGcolli“di“rete“non“dev˜e“quasiŽ¡mai–-pšGensare“agli“asp˜etti“di“basso“livš¸èello“relativi“alla“pacc˜hettizzazione,‘bûal“riassem˜blaggio“dei“pacc˜hetti,‘bûalŽ¡conš¸ètrollo–U degli“errori,“al“c˜hec˜ksum“e“alla“ritrasmissione.ŽŸ#ÃÃ13.4Ž‘%}¨HTTP‘þà,–¸un“proto_úcollo“applicativ oŽŸMª¹T‘ÿ*¸orniamo–òÊora“al“nostro“esempio.‘JI‘ò¢broš¸èwser“e“i“serv˜er“W‘ÿ*¸eb“dialogano“usando“un“Äpr–ÿ}/oto“c“ol‘‚Ðlo‘$½applic“ativo‘”X¹c˜heŽ¡si–·appšGoggia“al“TCP/IP‘ÿ*¸,“usandolo“semplicemen¸ète“come“un“mo˜do“p˜er“passare“stringhe“di“bš¸èyte“a˜v‘ÿqÐan˜ti“e“indi-Ž¡etro.‘ åQuesto–ˆ—protošGcollo“€è“c¸èhiamato“ÄHTTP‘ ¹(Hyp˜er-T›ÿ*¸ext“T˜rasfer“Proto•Gcol,‘•uproto“collo›ˆ—p“er˜il˜trasferimen¸èto˜diŽ¡ipGertesti)–U e“abbiamo“gi€à“visto“un“suo“comando:‘q€il“GET“mostrato“sopra.Ž¦Quando–Óil“comando“GET‘Òýarriv‘ÿqÐa“al“servš¸èer“W‘ÿ*¸eb“metalab.unc.edu“con“n˜umero“di“servizio“80“v˜err€à“noticatoŽ¡al–>ñÄdemone‘Gserver‘Rn¹cš¸èhe“€è“in“attesa“sulla“pGorta“80.‘jLa“maggior“parte“dei“servizi“In˜ternet“sono“implemen˜tati“daŽ¡demoni–U servš¸èer“c˜he“si“limitano“ad“ascoltare“sulle“pGorte,“attendono“ed“eseguono“i“comandi“in“arriv˜o.Ž¦Se–-êil“disegno“di“Inš¸èternet“ha“una“regola“generale,‘5Áquesta“€è“c˜he“tutte“le“parti“do˜vrebbšGero“essere“il“pi€ù“p˜ossibileŽ¡semplici–²ie“accessibili“pGer“gli“esseri“umani.‘‰\L'HTTP›ÿ*¸,“e“i“suoi“simili“(come“il“Simple“Mail“T˜ransfer“ProtoGcol,Ž¡ÄSMTP‘¹,–õ c¸èhe“viene“usato“pšGer“trasferire“la“p˜osta“elettronica“tra“gli“host)“tende“a“usare“comandi“in“sempliceŽ¡testo–U stampabile“c¸èhe“terminano“con“un“coGdice“di“carriage“return/line“feed.Ž¦Questo–J0€è“marginalmenš¸ète“inecien˜te:‘lin“qualc˜he“circostanza“pGotreste“ottenere“una“v˜eloGcit€à“maggiore“usandoŽ¡un–ÙyprotošGcollo“binario“di“stretta“co˜dica.‘HIMa“l'esp˜erienza“ha“dimostrato“cš¸èhe“i“v‘ÿqÐan˜taggi“di“a˜v˜ere“comandi“faciliŽ¡da–"descriv¸èere“e“comprendere“pšGer“gli“esseri“umani“sup˜era“qualsiasi“guadagno“marginale“di“ecienza“c¸èhe“siŽ¡pGossa–U ottenere“al“prezzo“di“rendere“le“cose“oscure“e“complicate.Ž¦Di–‘bconseguenza,‘¸ˆquello“cš¸èhe“il“demone“serv˜er“vi“rispGedisce“via“TCP/IP‘‘1€è“anc˜h'esso“testo.‘0AL'inizio“della“rispGostaŽ¡assomiglier€à–U in“qualc¸èhe“moGdo“a“questa“(alcuni“header“sono“stati“omessi):Ž©ؼºHTTP/1.1–?¬200“OKŽ¡Date:–?¬Sat,“10“Oct“1998“18:43:35“GMTŽ¡Server:–?¬Apache/1.2.6“Red“HatŽ¡Last-Modified:–?¬Thu,“27“Aug“1998“17:55:15“GMTŽ¡Content-Length:‘?¬2982Ž¡Content-Type:‘?¬text/htmlŽ¦¹Questi–þŽheader“saranno“seguiti“da“una“linea“vuota“e“dal“testo“della“pagina“W‘ÿ*¸eb“(dop•Go“dic¸èh€é–þŽla“connessioneŽ¡viene–ºglasciata“cadere).‘=íIl“vš¸èostro“bro˜wser“si“limita“a“visualizzare“quella“pagina.‘=íGli“header“serv˜ono“a“spiegargliŽ¡come–U (in“particolare,“l'header“Con•¸èten“t-T“ypGe–U gli“dice“cš¸èhe“i“dati“restituiti“sono“v˜eramen˜te“HTML).ŽŽŽŒø<ƒ’À;èÛ_2ÕÁGóqLË ectt0900ó½HЃ ecti1000ó¥!¢N ecbx1200ó]fŒ ecbx1000ó&Lt$ffffecbx1440óø8‹ ecsi1000óŒ6 ecss1000óþÖëI½q½qecss2074óqLË ectt1000ó 1ê± ecrm1000ùMŠßßßßßßß