; TeX output 2005.05.25:1110_2 ~?ՁZݺIqqecss2074FwmromfPowerUpTfKoBashPrompt cG 1 ecrm1000GregU O'Keefe,qL ectt1000gcokeefe@postoffice.utas.edu.auJv0.9,NovembGerU 2000&6 ecss1000QuestanunabrevedescrizionediquellochesuccedeinunsistemaLinux, Adalmomentoincuiaccendeteilcomputer,aquelloincuiviaccreditatesulsistemaevivienepresentatoilpromptdellashellbash.fCapirlovisardigrandeaiutoquandodovreterisolveredeiproblemi,jocongurareilvostrosistema.T*raduzionediLucabFerraro(lferraro@NOSPAM.caspur.it,ɳDicembre2004).GRevisionediAntonio"bGombadur"Bracaglia(bombadur@slacky.it,U Febbraio2005).(&Lt$ffffecbx1440Indice]f ecbx10001In>troQduzione32L'Hardw>aref3ؼ2.1%Congurazione.荍...........................................w42.2%Esercizi;O.荍...............................................w42.3%MaggioriU Informazioni.荍.......................................w43Lilo53.1%Congurazione.荍...........................................w53.2%Esercizi;O.荍...............................................w53.3%MaggioriU Informazioni.荍.......................................w64IlKernelLin>uxsJ64.1%Congurazione.荍...........................................w64.2%Esercizi;O.荍...............................................w74.3%MaggioriU Informazioni.荍.......................................w75LalibreriaGNUCa85.1%Congurazione.荍...........................................w85.2%Esercizi;O.荍...............................................w85.3%MaggioriU Informazioni.荍.......................................w96Init96.1%Congurazione.荍...........................................x?106.2%Esercizi;O.荍...............................................x?106.3%MaggioriU Informazioni.荍.......................................x?107IlFilesystemzE107.1%Congurazione.荍...........................................x?11*_2 ~?GINDICE]!2ՁV7.2%Esercizi;O.荍...............................................x?11ؼ7.3%MaggioriU Informazioni.荍.......................................x?128IDemonidelKernelS128.1%Congurazione.荍...........................................x?138.2%Esercizi;O.荍...............................................x?138.3%MaggioriU Informazioni.荍.......................................x?139IlLoggerdiSistemaUp149.1%Congurazione.荍...........................................x?149.2%Esercizi;O.荍...............................................x?149.3%MaggioriU Informazioni.荍.......................................x?1410Gett>yeLoginuU1410.1%Congurazione.荍...........................................x?1410.2%Esercizi;O.荍...............................................x?1511BashX1511.1%Congurazione.荍...........................................x?1511.2%Esercizi;O.荍...............................................x?1611.3%AltreU Informazioni_.荍.........................................x?1612Comandi41613Conclusioni1614Amministrativ\|al1614.1%Copyright탍.荍..............................................x?1614.2%HomepageJ.荍..............................................x?1714.3%Segnalazioniu.荍.............................................x?1714.4%RingraziamentiX.荍...........................................x?1714.5%StoricoU dellemoGdiche3.荍.......................................x?18%14.5.1E0.8U - b> cmmi10>0.9(NovembreU 2000) w.荍................................x?18%14.5.2E0.7U ->0.8(Settembre2000)G.荍................................x?18%14.5.3E0.6U ->0.7Xۍ.荍..........................................x?18%14.5.4E0.5U ->0.6Xۍ.荍..........................................x?1814.6%DAU FAREJ.荍..............................................x?19"_2 ~?G1.8In>troQduzione~3ՁV1Inctropduzione:T*rovoWlfrustrantecheall'internodellamiamacchinaLinuxavvenganodellecosechenoncomprendo.xdSe, comeBxme,F3voleteveramenteconoscereilvostrosistemainvecedisapGerlosolamenteusare,F3questodoGcumentodovrebbGe+ essereunbuonpuntodipartenza.cyQuestotipGodiconoscenzedibassolivellonecessariosevoletediventareU deiveriespGertinelrisolvereiproblemidiLinux.ؼDar\opGerscontatocheabbiateunsistemaLinuxfunzionanteeunaconoscenzabasilarediUnixedell'hardwarediQunPC.Secosnonfosse,QundoGcumentoeccellentepGeriniziareadimpararequellodiEricS.Raymond,HЃ ecti1000ThefmUnixandInternetF;undamentalsHOWTOhttp://www.linuxdoc.org/HOWTO/Unix-and-Internet-Fundamentals-HOWTO.htmlȖU breve,facilmentecomprensibile,ecopretuttelebasi.L'argomento7+principalediquestodoGcumentocomefaLinuxadavviarsi.Macercaanchediessereunarisorsapigeneralediapprendimento.^{Perciascunasezionehoinseritodegliesercizi.Senefaretequalcuno,imparereteU moltopidiquantofarestesolamenteleggendo.SpGerochealcunilettorisicimenterannonell'eserciziomigliorecheioconoscapGerLinux, ossiaquellodicostruirsi\unsistemaapartiredalcoGdicesorgente.VGiambattista\Vico,^losofoitaliano(1668-1744),disseverumZsipsumfactum,chesignicalacomprensionevieneattraversoleazioni.xRingrazioAlex(vedi14.4(Acknowledgements))U pGerquestacitazione.Sevoletefarvelodasoli(NdT:l'espressioneoriginaleingleseerarollyourown,$HcomelesigarettearrotolateaU mano),dovresteleggervil'HOWTOdiGerardBeekmans,LinuxF;r}/omScratchHOWTOU http://www.linuxfromscratch.org(LFS). LFS contieneistruzionidettagliatesullacotruzionediunsistemaopGerativoLinuxusabileecompletoa&CpartiredalcoGdicesorgente.SulsitodiLFS& trovereteancheunamailinglistpGerlepersonechestannocreandoUilpropriosistemaopGerativoinquestomodo.LeistruzioniariguardochefacevqanopartediquestodoGcumento{sitrovqanoorainundoGcumentoseparatoBuildingaMinimalLinuxSystemfromSourceCoGde,cheU pGotetetrovqaresuF;r}/omPowerUptoBashPrompthomepageºhttp://www.netspace.net.au/~gok/power2bash/.cgSpieganocomeU gioGcare*hconilsistema,puramenteascopoeducativo.I-pacchetti-vengonopresentatinell'ordineincuicompaionoduranteilproGcessodiavviodelsistema.d)Questosignicacheseinstallateipacchettiinquestoordine,%pGotreteriavviaredopGociascunainstallazione,%evederecomeognivoltailsistemasiavvicinasemprepialpromptnaledellashell.]OT*rovounrassicurantesensodiavqanzamentoU inquesto.Vipconsigliodileggereprimailtestoprincipalediognisezione,usaltandolapartedeglieserciziedeiriferimenti.SuccessivqamenteLsceglieteaqualeprofonditdicomprensionevoletearrivqare,N?equantisforzisietedispGostiafare.xQuindiesricominciatealeggeredall'inizio,ieseguendogliesercizieleggendoidoGcumentiaggiuntivimanmanoU cheproGcedete.(2L'Hardwcare:Quandojaccendeteilcomputer,$questoesegueunasortadiauto-vericapGercontrollarechetuttofunzionicorrettamente.:Questa{fasevienechiamataauto-vericadiaccensione(dall'inglesePoweronselftest).:Aquestotpunto,JunprogrammachiamatobGootstraptloader,JcherisiedenellamemoriaROMOdelBIOS,cercaunsettorediavvio(bGootsector).NDIlsettorediavvioilprimosettorediundisco,checontieneunpiccoloprogrammacapacediavviareunsistemaopGerativo.QgIsettoridiavviovengonomarcaticonilnumeromagicoO_2 ~?G2.8L'Hardw>arey4ՁV0xAA55=43603albyte0x1FE=510.B7QuestocorrispGondeagliultimiduebytedelsettore.B7ȑinquesto moGdoU chel'hardwareingradodiriconoscereseunsettorediavviooppureno.ؼIlz!bGootstraploaderhaunalistadiluoghiincuicercareipossibilisettoridiavvio.Ilmiovecchiocomputercercafnelprimooppydriveequindinell'harddiskprimario.RIIcomputerpimoGdernipossonocercareunsettorecdiavvioanchesulCD-ROMb(NdT:recentementeanchetramitereteodispGositiviesternicomememorycardsmopGenneUSB).Setrovqaunsettorediavvio,{locaricainmemoriaepassailcontrolloalprogrammainessoQcontenuto,]cheasuavoltacaricailsistemaopGerativo.InuntipicosistemaLinux,]questoprogrammacorrispGonde^probabilmenteallaprimapartedelbootloaderLILOL(NdT:odiGRUB).EsistonodiversimoGdidikcongurarel'avviodelvostrosistema.DateunosguardoaldoGcumentoLILOUser'sGuide,"pGermaggioridettagli,U eallasezione3.3(LILO)pGerdeirimandisull'argomento.OvviamentecisarebbGemoltoaltrodadiresuquellochefal'hardwarediunPC.MaquestononilpGostoadattoU pGerdirlo.qLeggetevimagariunodeinumerosilibrisull'hardwaredeiPC.#Í!N ecbx12002.1CongurazioneMIlXcomputerimmagazzinaalcuneinformazionisusestessonellasuaCMOS.Questeinformazionicomprendonoad+esempioiltipGodiharddiskediRAM presentinelsistema.H/IlBIOSdelcomputercontieneunprogrammachePpGermettedimodicarequesteimpostazioni. IPercapirecomeaccedervi,Ycontrollateimessaggichecompaionosulloschermoquandoaccendeteilcomputer.`Sulmiocomputer,bisognapremereiltastoCancprimaU cheiniziadavviarsiilsistemaopGerativo.2.2EserciziMUnottimomoGdoperimparareaconoscerel'hardwarediunPCquellodicostruirsiunamacchinadasolicondeipGezzidisecondamano.Procurateviunprocessore,?almenoun386,cosdapGoterpoieseguireunsistemaLinuxagevolmente.ilvostrosistemaattivoeinuso,lseeseguiteilcomandolilo,quellochedifattomandateinesecu-zionebl'installatoredimappa(NdT:mapinstaller).Questoleggeilledicongurazione/etc/lilo.confeU scrivesull'harddiskilbGootU loadereleinformazionisuisistemiopGerativichepGossonovenireavviati.EsistonomoltimoGdidiversidicongurarel'avviodelvostrosistema.8QuellochevihoappGenaillustrato莡ilpiovvioenormale,`senonaltropGeruncomputerilcuisistemaoperativoprincipaleLinux.LaGuidaUtentediLILO(NdT:LILOUsers'Guide)trattavqariesempidiavvio.zSarebbGebeneleggerlieprovqarnealcuni.#Í3.1CongurazioneMIlledicongurazionedililo蓺/etc/lilo.conf.JC'unapaginadimanualepGerquestole:7\digitatemanlilo.conf inunashellpGerleggerlo.$DLaparteprincipaledellelilo.confconsisteinunavoceperognisistema}chelilodeveavviare.UnavoGceperLinuxdeveincluderelapGosizionedelkernel,equalepartizionedelldiscodeveesseremontatacomelesystemradice.DDPerglialtrisistemiopGerativi,l'informazioneprincipaleU lapartizionedacuieseguirel'avvio.3.2EserciziMA;TTENZIONE: fatewmoltaattenzioneconquestiesercizi.ȑwpiuttostofacilechequalcosavqadastortoechevenga]compromessoilvostromasterbGoot]record,rendendoilvostrosistemainutilizzabile.8AssicuratevidiavereJundiscodirecupGerofunzionante,edisaperecomeutilizzarloperrimetterelecoseaposto.6V*edetesottoCpGerunlinkatomsrtbt,Gildiscodirecuperocheusoeviraccomando.kLamiglioreprecauzionequelladiU utilizzareunamacchinadicuinonviimpGortamolto.ؼInstallateulilosuundischetto.NonimpGortaseneloppycisarsoloilkernel-incorrereteinunkernelpanic*hquandoU ilkerneltenterdiavviareinit,maalmenosapretechelilostafunzionando.Sej`vipiace,opGoteteprovqareadandareavqantiastiparvidelmateriale,oevederequantodelsistemaopGerativoriuscite#mametteresuloppy*.gQuestasicuramentelasecondamigliormanierapGerimpararequalcosasuLinux.V*edeteφilBoGotdiskHOWTO%(l'urlripGortatapisotto),. etomsrtbt(urlpisotto)peralcunisuggerimentiU utili.pܠ_2 ~?G4.8IlKernelLin>uxq'6ՁVProvqate\OacongurarelilopGeravviareunios(vedetelasezione2.2(hardwareexercises)).Comeulteriore esercizio,U provqateafarlodaundischetto.ؼCreate+unciclodibGoot+(NdT:bGoot-loop):\congurate+lilonelmasterbGoot+recordinmoGdotalecheavviililodaYunodeisettoridibGootYdellepartizioniprimarie,econguratequest'ultimoinmoGdotaledaavviarequellonelmasterbGootrecord...LOppureusateilmasterbGootrecordetutteequattrolepartizioniprimariepGercreareU uncicloacinquepunti.qDivertente!"㍍3.3MaggioriInformazioniMLaU paginamandililo.fZIlpacchettoLILOv(liloftp://lrcftp.epfl.ch/pub/linux/local/lilo/),# contienelaLILOvUser'sGuideylilo-u-21.ps.gzP(osupGeriore).6PotrestegiaverequestodoGcumentoinstallato.6Controllatein/usr/doc/lilo,uoojcomunqueinquellazonadellesystem.^LaversionepGostscriptmigliorediquellainU testosemplice,pGerchcontienediagrammietabGelle.tomsrtbtB http://www.toms.net/rbilmiglioroppyLinuxesistente.UnpGotentestrumentodirecupGero.TheBo}/otdiskHOWTOU http://www.linuxdoc.org/HOWTO/Bootdisk-HOWTO/(4IlG\KernelLincux:IlFkernelassumemolticompiti.lCredocheunmoGdosempliceperriassumerlisiaquellodidirecheessofainmoGdoU chel'hardwaresoGddistuttelerichiestedeiprogrammi,inmoGdosempliceedeciente.ؼIlproGcessorepueseguiresoloun'istruzioneallavolta,kmaisistemiLinuxsembranofargiraremoltecosecontempGoraneamente.#Il;CkernelriesceafarequestopassandomoltoveloGcementedauntaskadunaltro.RiesceMafareilmigliorusodelproGcessore,OtenendotracciadeiprocessichesonoprontipGeressereeseguiti,Oedi(quelliinvece(chesonoinattesadiqualcosa,comeunrecorddaunlesull'harddiskodiuninputdallatastiera.qQuestaU attivitdelkernelchiamatascheduling.Seunprogrammanonstafacendonulla,4alloranonnecessariocherisiedanellaRAM.Ancheseunprogram-mastafacendoqualcosa,ypGotrebbeaveredellepartichenonstannofacendonulla.#LospaziodegliindirizzidimemoriadiciascunproGcessovienedivisoinpagine.ϜIlkerneltienetracciadellepaginedicuiiprocessistannofacendomaggioreuso.uLepaginechenonvengonoutilizzateconfrequenzapGossonovenirespGostatenella\partizionediswap.IQuandosarannonuovqamentenecessarie,un'altrapaginanonutilizzatapGotresserespGostataU perfarelospazio.qQuestalagestionedellamemoriavirtuale.SeK0avetecompilatoqualchevoltailvostrokernel,M,avretenotatocheesistonomoltissimeopzionipGerspecicidispGositivi.,IlYkernelcontieneunagrandequantitdicoGdicespecicopercomunicarecondiversetipGologiediU hardware,epresentarleaiprogrammiapplicativiinmoGdosempliceeuniforme.IlTSkernelinoltregestisceillesystem,lecomunicazionitraiproGcessiediversomaterialeriguardanteililnetworking.Unauxq'7ՁVilclesystemradice,fildispGositivodiswap,feladimensionedeldiscoRAM,tramiteilcomandordev.g(NdT: dalla#versione0.95delkernelLinuxilcomandordev?-spGerl'indicazionedellepartizionidiswapnonpivqalido,8in1quantol'attivazionedelloswapvieneeettuatotramitelachiamatadisistemaswapon()).eQuestiparametri|(ealtriancorapGossonoesserepassatialkernelattraversolilo.Potetefornirealiloiparametridapassare*alkernelodalledicongurazionelilo.conf,`Sodirettamentedalpromptdililo.Peresempio,`SsevolesteU utilizzarehda3comelesystemradicealpGostodihda2,potrestedigitareilcomandoؼ)`LILO:?linuxroot=/dev/hda3Sestatecostruendounsistemadaisorgenti,pGoteterendervilavitamoltopisemplicesecreateunkernel monolitico.QOssiaJsenzamoGduli.AJFquestopuntononavretebisognodicopiareimoGdulidelkernelsulsistemaU pGercuistatocompilato.ؼNOT*A:illeSystem.mapvieneutilizzatodalloggerdelkernelpGerdeterminareinomideimodulichegeneranoDmessaggi.Ancheilprogrammatoputilizzaquesteinformazioni.QuandocopiateilkernelsulnuovoU sistema,copiateancheilleSystem.map.#Í4.2EserciziMRiettetessuquesto:'/dev/hda3unlespGecialechedescriveunapartizionedell'harddisk.SzMarisiedesuunlesystem,?propriocometuttiglialtrile.(IlkernelvuolesapGerequalepartizionedevemontarecomelesystemzradice-maquestanonhaancoraunlesystem.Allora,comepuleggere/dev/hda3pGersaperequaleU partizionemontare?SeWnonloaveteWancorafatto:uycompilateviunkernel.wvLeggetetuttaladoGcumentazionediaiutopGerciascunaopzione.V*edetequantopiccoloriusciteacompilareunkernelcheancorafunzioni.:UPotreteimpararemoltoselasceretefuoriU lecosesbagliate!LeggeteATheLinuxKernel(vedil'indirizzoURLApisotto)e,|mentreloleggete,|individuatelepartidicoGdice*sorgenteacuifariferimento.Illibro(comehodetto)siriferisceallaversione2.0.33delkernel,checypiuttostovecchia.PotrebbGecyesserepisemplicedaseguiresescaricastequestavecchiacyversionedelkerneled4esaminastequelcoGdicesorgente.fT*rovo4siaentusiasmante4trovqarepGezzidicodiceC4chiamatiprocesso epagina.Hack!qV*edeteU seriusciteafarvisputarefuoriqualchemessaggioextraocosesimili.#Í4.3MaggioriInformazioni#/usr/src/linux/README`edicontenutidi/usr/src/linux/Documentation/(QuestipGotrebberotrovqarsiU daqualchealtrapartesulvostrosistema).TheKernelHOWTOU http://mirror.aarnet.edu.au/linux/LDP/HOWTO/Kernel-HOWTO.htmlLe*espiegazionidiaiutodispGonibiliquandocongurateilkerneltramitemake?menuconfigomake xconfigTheLinuxKernel(andotherLDPGuides)U http://mirror.aarnet.edu.au/linux/LDP/LDP/ilU coGdicesorgente,vedeteBuildingaMinimalLinuxSystemfr}/omSourceCodeIhttp://www.netspace.net.au/~gok/power2bashpGerU ilink.)_2 ~?G5.8LalibreriaGNUC_cX8ՁV5LaG\libreriaGNUC:Ilpassosuccessivoall'accensionedelcomputerconsistenelcaricamentoenellaesecuzionediinit.7Comunque, init,U comelamaggiorpartedeiprogrammi,utilizzadellefunzionidilibreria.ؼPotresteU avergivistounesempiodiprogrammaCcomequesto:ؼ)`main()?{Sprintf("Hello?World!\n");)`}Ilrprogrammanoncontienenessunadenizionedellafunzioneprintf,equindidadovesaltafuori?1wQue-staprovienedallelibreriestandardCche,F0suunsistemaGNU/Linux,F0sichiamanoglibGc.SecompilateilprogrammasottoVisualC++,ValloraquellafunzionevienedaunaimplementazioneMicrosoftdellestessefunzioni+Gstandard.Esistonomilionidiquestefunzionistandard,`pGermatematica,stringhe,alloGcazionedimemoria zpGerdataeora,+ecosvia._QualsiasicosainUnix(inclusoLinux)statascrittascrittainC,perci򎡍ogniU applicazioneutilizzaquestefunzioni.ؼSe4guardatenelladirectory/libdelvostrosistemaLinuxtroveretemoltilechiamatilibqualcosa.soolibqualcosa.a,_ecc.%Sono*Wlelibreriediquestefunzioni.GlibGcesattamentel'implementazioneGNU* diquesteU funzioni.CiJsonoduemoGdiincuiiprogrammipossonoutilizzarequestelefunzionidilibreria.<9Selinkqateilprogrammain^moGdostatic}/o,aGquestefunzionidilibreriaverrannocopiatedentrol'eseguibilechevienecreato.Lelibrerielibqualcosa.a+Lservonoaquesto.cSeinvecelinkqateilprogrammainmoGdodinamic}/oڹ(equestalamodalitpredenita),}quandoilprogrammasarinesecuzioneeavrbisognodelcoGdicedellalibreria,questoverrchiamatoU dallelibqualcosa.so.IlcomandolddfaralcasovostroquandovorretesapGerequalilibreriesononecessarieadunparticolareprogramma.qPerU esempio,eccolelibrerieutilizzatedabash:ؼ)`[greg@Curry?power2bash]$ldd/bin/bashSlibtermcap.so.2?=>/lib/libtermcap.so.2(0x40019000)Slibc.so.6?=>/lib/libc.so.6(0x4001d000)S/lib/ld-linux.so.2?=>/lib/ld-linux.so.2(0x40000000)#Í5.1CongurazioneMAlcuneJwfunzionidellelibreriedipGendonodalpostoincuivivete.mPerJwesempio,LinAustraliascriviamoledatenelWformatodd/mm/yy(NdT:giorno/mese/anno,McomeinItalia),mainAmericavieneusatoilformatomm/dd/yy*.}Esistesunprogrammachevienefornitoconleglibc,tchiamatolocaledef,tcheconsentedicongurareU leloGcalizzazioni.5.2EserciziMUsateU lddpGerscoprirequalilibrerieutilizzanolevostreapplicazionipreferite.ؼUsateU lddpGerscoprirequalilibreriesonoutilizzatedainit.CreateviiunalibreriagioGcattolo,o'conunaoduefunzioni.Percrearlautilizzateilprogrammaar.Lapagina dimanualediarpuessereunbuonpuntodiiniziopGercapirecomefare.$wScrivete,compilateelinkqateunprogrammaU chefacciausodiquestavostralibreria. Ƞ_2 ~?G6.8Initu9ՁV5.3MaggioriInformazioni#ilU coGdicesorgente,vedeteBuildingaMinimalLinuxSystemfr}/omSourceCodeIhttp://www.netspace.net.au/~gok/power2bashpGerU ulteriorilink(6Init:ParlersolamentedellostileSystemVdiinit,‚utilizzatodallamaggiorpartedeisistemiLinux.xEsistono anchealtrealternative.KInfatti,pGotetemetterequalsiasiprogrammavogliatein/sbin/init,eilkernelloeseguirU nonappGenaavrterminatolasuafasedicaricamento.ؼȑcompitodiinitmandareinesecuzionequalsiasicosanelmoGdocorretto.einitvericacheilesystemsianoMapGostoelimonta.\Avviaidemoniperregistrareimessaggidisistema,#gestiscelefunzionalitdirete,rende4dispGonibililepagineweb,:gestisceilvostromouse,:ecosvia.=AvviaancheiproGcessigettychefannocomparireU ilpromptdiloginsuivostriterminalivirtuali.Dovrei,ancheparlarediunafaccendapiuttostocomplessariguardoalpassaggiotraivqarirun-levels,4malasalterU quasideltuttoeviparlerpiuttostodicomesiavviailsistema.Init leggeille/etc/inittabcheglidicecosafare.4Laprimacosachedisolitovienerichiestaquelladi 8eseguireunoscriptdiinizializzazione.Ilprogrammacheesegue(ointerpreta)questoscript蓺bash,6>lostessoNprogrammachevifornisceunpromptdeicomandi. NeisistemiDebian,Zloscriptdiinizializzazione&/etc/init.d/rcS,mentreinRedHat,Z_蓺/etc/rc.d/rc.sysinit.}Inquestoscriptvengonovericatiemontatiilesystem,#vieneimpGostatol'orologiodisistema,abilitatolospaziodiswap,ilnomedell'host,ecc.Successivqamente,PvienechiamatounaltroscriptchecipGortaalrun-levelpredenito.ͨQuestosignicaungruppGo6disottosistemidaavviare.gaEsistonounaseriedidirectory/etc/rc.d/rc0.d,<ֺ/etc/rc.d/rc1.d,...,/etc/rc.d/rc6.d inRedHat,6o/etc/rc0.d,/etc/rc1.d,...,/etc/rc6.dinDebian,checorrispGondonoaiyevqarirun-level.OSestiamoentrandonelrun-level3diunsistemaDebian,valloraloscripteseguirtuttigliscriptzpresentinelladirectory/etc/rc3.dicuinomiinizinopGer`S'l(Sstazperstart).^Questiscriptinrealtsono/soltantodeilinksimbGoliciadegliscriptchesitrovqanoinun'altradirectory*,fgeneralmentechiamatainit.d.Quindi,F5ilBznostroscriptdirun-levelstatochiamatodainiteorastacercandoall'internodiunadirectorytuttiftgliscriptchecomincianopGer`S'.PotrebbGetrovqareS10syslogpGerprimo.|Ilnumerodicealloscriptdirun-levelqOinqualeordinequestidevonovenireeseguiti. Perciinquestocaso,xZdalmomentochenoncisonoaltriEscriptchecomincianopGerS00...17S09,׺S10syslogvieneeseguitoperprimo.17MaS10sysloginrealtunlink4a/etc/init.d/syslog,;&unoscriptpGeravviareofermareilloggerdisistema.fDatocheillinkcominciapGerF`S',loscriptdirun-levelsachedovreseguireloscriptsyslogconilparametrostart.l|EsistonoancheicorrispGettivilinkchecomincianoper`K'կ(Kstaperkill),chespecicanoqualiservizifermareeinqualeordine,U quandovienelasciatouncertorun-level.Perdsceglierequalisottosistemi(servizi)farpartireinmoGdopredenito,dovreteimpGostarequesticollegamentinellaU directoryrcN.d,doveU pGerNsiintendeilrunlevelpredenito,conguratonelvostroinittab.L'ultimaFcosaimpGortantechefainitfarpartirealcunesessionidelprogrammagetty.lQuestisonoditipGorespawned,cheGsignicachesesifermano,initlifapartirenuovqamente.LaGmaggiorpartedelledistri-buzionipvengonocongurateconseiterminalivirtuali.qPotrestevolernedimenopGerrisparmiarememoria,o\dipiinmoGdodamandareinesecuzionepicose,^epassarerapidamentedaunaall'altraasecondadellevostrenecessit.\PotresteanchevolereseguiregettypGerunterminaletestualeoperunmodem.\IntalcasodovreteU moGdicareilleinittab. _2 ~?G7.8IlFilesystemy"͹10ՁV6.1CongurazioneMIlU le/etc/inittabrappresentailverticedellacongurazionediinit.ؼLeU directoryrcN.d,doveU N=0,1,...,6determinanoqualisottosistemivengonoavviati.Daqualcheparte,inunodegliscriptrichiamatidainit,verrdatoilcomandomount?-a.`Questosignica montareltuttiilesystemchesisuppGonedebbanoveniremontati.-Ille/etc/fstabdeniscequalilesystemilsistemadevemontare.SevoletemoGdicarequellochevienemontatoquandoililsistemavieneavviato,questoU illechedovreteeditare.qEsisteancheunapaginadimanualepGerfstab.#Í6.2EserciziIndividuateladirectoryrcN.ddelrun-levelpredenitodelvostrosistemaedeseguiteunls?-lpGervedereaU cosapuntanolinkinessapresenti.ؼCambiateU ilnumerodisessionigettychevengonoeseguitesulvostrosistema.EliminateU ogniserviziodicuinonaveteU bisognodalvostrorun-levelpredenito.ProvqateU avericareilnumerominimodiserviziconcuiriusciteapartire.Createxundischettoconlilo,unkerneleunprogrammaciaomondo!compilatostaticamente,chiamato /sbin/initU eosservqatesesiavviaedemetteilmessaggiodisaluto.Osservqateattentamentel'avviodelvostrosistema,;eprendetenotadituttocichesistavericando.@aOppurestampatewunapGorzionedelledilogdisistema/var/log/messagesdalmomentodell'avvio.'Aw\questopunto,partendon\dainittab,tseguitetuttigliscriptecercatedicapireognipartedelcoGdice,echecosafa.3PoteteancheU inseriredeimessaggiextra,comeadesempioؼ)`echo?"Ciao,iosonoilfilerc.sysinit"Questo6unbuoneserciziopGerimparareancheillinguaggiodiscriptingdellashellBash,\00??SW07:370:00(kflushd)root/= 3 X0.00.0>\00??SW07:370:00(kupdate)root/= 4 X0.00.0>\00??SW07:370:00(kpiod)root/= 5 X0.00.0>\00??SW07:370:00(kswapd)root)`52 X0.0?10.71552716?S07:380:01syslogd-m0root)`54 X0.07.11276480??S07:380:00klogdroot)`56 X0.3?17.3223211561S07:380:13-bashroot)`57 X0.07.112724802?S07:380:01/sbin/agetty38400ttroot)`64 X0.17.21272484S1?S08:160:01/sbin/agetty-LttyS1root)`70 X0.0?10.614727081RSep110:01psauxQuestaunalistadeiproGcessiinesecuzionesulsistema.="Leinformazioniprovengonodallesystem/proccheU hodescrittonellasezioneprecedente.ؼNotateFcheinitilproGcessonumerouno.lIFproGcess2,I3,4Fe5sonokushd,Ikupdate,kpiodFekswapd.lC'莡tuttaviaOqualcosadistrano:notatecheinentrambGelecolonnedelVirtualStorageSize(SIZE)+edelRealStorageU Size(RSS),questiproGcessihannovqalorinulli.qComepuunprocessononutilizzarememoria?Questi proGcessisonoidemonidelkernel..?LamaggiorpartedeikernelnonmostraaattounalistadeiproGcessiattivi,[epotetecapirequantamemoriaquestistannoutilizzandosolamentesottraendolamemoria _2 ~?G8.8IDemonidelKernelRM 13ՁVdispGonibiledaquellatotaledelsistema.OSI~demonidelkernelvengonoavviatidopGoinit,equindiprendonoun numero|diproGcessocomefannotuttiglialtriprocessi.MaillorocodiceedilorodatirisiedononellapartediU memoriariservqataalkernel.ؼIntornoallevoGcidellacolonnadeicomandicisonoleparentesipGerchillesystem/procnoncontieneinformazioniU sullalineadicomandopGerquestiprocessi.Maalloraacosaservonoquestidemonidelkernel?V*ersioniprecedentidiquestodoGcumentoripGortavqanounarichiestadiaiutopGerquestoparagrafo,ЇdalmomentochenonsapGevomoltosuidemonidelkernel.LastoriaparzialecheseguestatarealizzatacombinandolediverserispGosteaquestarichiesta,pGerlequalisonoveramenteU grato.qMaggioriinformazioni,riferimentiecorrezionisonobGenvenute!L'inputRel'outputvienerealizzatotramiteibuerϹinmemoria.2QuestoconsentedifareseguirelecosepiveloGcemente.JQuello\cheiprogrammiscrivonopuesseretenutoinmemoria,inunbuer,equindiscrittosubloGcchiCdidiscoinmodomoltopieciente.k{IC demonikflushdekupdatehannoquestocompito:hxkupdatevieneeseguitopGeriodicamente(5secondi?)E)pGervericaresevisianodeibuerutilizzati.E)Secisono,richiamakflushdU pGerriversarlisuldisco.SpGessogiprocessinonhannonulladafare,Aespesso,AquelliinesecuzionenonhannobisognoditenereinmemoriaTntuttoillorocoGdiceedilorodati.ojQuestosignicachepossiamofareunutilizzomiglioredellamemoria,3spGostandoleporzioniinutilizzatedeiprogrammisulla(e)partizione(i)diswapdell'harddisk.0Iltrasferimento2}diquestidatidaeversolamemoriaasecondadellanecessitvienegestitodidemonikpiodekswapd.^Ognisecondocirca,gkswapdsiattivqaevericalostatodellamemoriae,sequalcosacheerastatopGortatosuldiscodiventanecessarioallamemoria,Qosenonc'memorialiberaasucienza,Qvieneattivqatokpiod.Sul4vostrosistemapGotrebbe4essereinesecuzioneancheildemonekapmd,"seaveteconguratoilkernelconlagestioneU automaticadell'energia.#Í8.1CongurazioneMIlprogrammaupdateviconsentedicongurarekflushdekswapd.?Provqateilcomandoupdate?-hpGeraveremaggioriU informazioni.Lospaziodiswapvieneattivqatodaswapon,edisattivatodaswapoff.Loscriptdiinit(/etc/rc.sysinitoppure˺/etc/rc.d/rc.sysinit)generalmentefaunachiamataaswaponquandoilsistemasiavvia.Mi莡statoU dettocheswapoffcomoGdoperilrisparmioenergeticosuiportatili.#Í8.2EserciziMEseguite Uunupdate?-d(NdT:almomentodellatraduzione,S#l'opzione-dnonvienecontemplatadalpro-gramma=źudate,wenotatecosavieneblateratonell'ultimarigariguardoalthresholdforbuerfratricide(NdT:U puntolimitepGerunfratricidiotrabuer).qEccounargomentointrigante,provqateadinvestigare!EntrateEnelladirectory/proc/sys/vmevisualizzateconcatileivicontenuti.|V*edetecosariusciteascoprire.#Í8.3MaggioriInformazioniMIl4doGcumentoTheLinuxKernel|suLinuxDoGcumentationPro0ject(LDP)(vedetelasessione4.3(TheLinuxKernel)U pGerlaURL)IlcoGdicesorgentedelkernelLinux,Wsesieteabbastanzacoraggiosi!ZIlcoGdicedikswapdinlinux/mm/vmscan.c,U quellodikflushdedikupdatesonoinlinux/fs/buffer.c._2 ~?G9.8IlLoggerdiSistemaT 14ՁV9IlG\LoggerdiSistema:InitEavviaidemonisyslogdeklogd.|Questiscrivonodeimessaggineilog.|I.messaggidelkernelvengono gestiti'daklogd,\"mentresyslogdgestisceimessaggidilogdeglialtriproGcessi.Illedilogprincipale莡/var/log/messages.9Questo?unbuonpGostoincuiinvestigare?sec'qualcosachenonvqanelvostrosistema.SpGessoU potrestetrovqarvidegliindiziimportanti.#Í9.1CongurazioneMIlXle/etc/syslog.confistruisceilprogrammachegestisceilogsuimessaggidagestire,YedoveripGortarli.I}messaggivengonoidenticatitramiteilserviziodacuiprovengono,edallorolivellodipriorit.TQQuestoledicongurazioneconsistediunaseriedirighesucuivieneindicatocheimessaggiprovenientidalserviziox,conQpriority*,R9devonovenireinviatisuz,R9dovezpuessereunle,R9unatty*,R9unastampante,R9unhostremotooU altro.ؼNOT*A:vildemoneSyslogrichiedecheille/etc/servicessiapresentesulsistema.֕IlleservicesassegnalecpGorte.JNonsonosicurosesyslognecessitidiunaportaassegnataperpotergestireiloginremoto,toselaG3stessagestioneloGcaledeilogvengafattatramiteunaporta,oseutilizza/etc/servicessoltantoperconvertireU inomideiservizicheaveteimpGostatoin/etc/syslog.confinnumeridipGorta.9.2EserciziMOsservqateOivostrilogdisistema. Cercateunmessaggiochenoncomprendete,Nesforzatevidicapirecosasignichi.ؼMandateU tuttiivostrimessaggidilogsuunatty*.q(pGoireimpostatelialmodopredenito)9.3MaggioriInformazioniMAustralianU sysklogdMirr}/orhttp://mirror.aarnet.edu.au/pub/linux/metalab/system/daemons/(10%GettcyG\eLogin:GettyNilprogrammachevipGermettediautenticarviattraversoundispGositivoseriale,Pcomeadesempiounterminalesicoovirtuale,(^oppuretramiteunmoGdem.lzGettyvisualizzailpromptdiautenticazione.lzUnavolta) inseritoilvostronomeutente,1gettylopassaalogin,1ilqualevichiederunapassword,1controllerlasuaU vqalidit,evifornirunashell.ؼEsistonodiverseversionidispGonibilidigetty*.Alcunedistribuzioni,compresaRedHat,neusanounamoltopiccolaU chiamatamingetty,chefunzionasolamenteconiterminalivirtuali.IlLprogrammaloginfapartedelpacchettoutil-linux,Cchecontieneasuavoltaunaversionedigettychiamataagetty,{echefunzionamoltobGene.-Questopacchettocontieneanchemkswap,{fdisk,passwd,kill,setterm,mount,U swapon,rdev,renice,moreemoltialtriancora.#Í10.1%}CongurazioneMIlmessaggiochevienevisualizzatosullapartealtadelvostroschermoassiemealpromptdilogin,+provienedaE/etc/issue.lTIngenereleistanzediGettyvengonoavviateda/etc/inittab.lTLoginvericaidatidiunutenteU contenutiin/etc/passwd,oin/etc/shadowseusateloshadowdellepassword.,_2 ~?G11.8Basho<15ՁV10.2%}EserciziMCreateunle/etc/passwdamano.PoteteancheimpGostaredellepasswordvuote,emoGdicarleconil comando$passwdunavoltaeseguitoillogin.9,LeggetelapaginadimanualecorrispGondentetramiteilcomandoman?5passwd,U pGeravereU ilmanualedellepiuttostochequellodelprogrammapasswd.(֍11%Bash:Sefornitealoginunacombinazionediusernameepasswordvqalida,&\questoverichernelle/etc/passwdqualeshelldevemetterviadispGosizione.-NellamaggiorpartedeicasiperunsistemaLinux,Iquestasarlashellbash.8SpGettaabashleggereedinterpretareivostricomandi.8PuesserevistacontempGoraneamentecomeU un'interfacciautente,ecomeuninterpretedilinguaggiodiprogrammazione.ؼComeinterfacciautenteleggeivostricomandie,=sesonodeicomandiinterni comecdliesegueessastessa,altrimenti/cercaedesegueunprogrammasesonodeicomandiesterni,fscomecpostartx.{BashsvolgeancheHaltricompitidiversi,comeilmantenimentodellostoricodeicomandiedilcompletamentoautomaticodeiU nomi.AbbiamoXdgivistobashinazionecomeinterpretedilinguaggiodiprogrammazione.{LGliscriptchevengonoeseguitidainitpGeravviareilsistemasolitamentesonodegliscriptdishell,Izevengonoeseguitidabash.Avere^GadispGosizioneunveroepropriolinguaggiodiprogrammazioneaancoaiprogrammidiutilitmessia2dispGosizionedallalineadicomando,. ^ContieneunalistacompletaedaggiornatadeipacchettichevengonoinstallatiinunsistemaLinux,haelEmeryhPerU avermiricordatodiUnios.TimLittlePerU alcunibuonisuggerimentisu/etc/passwdsP>aKrsu#linuxdiefnetChemihafattonotarecomesyslogdnecessitidi/etc/services,Bechemihafattoconoscere l'espressione rollingyourowninriferimentoallacostruzionediunsistemaapartiredalcoGdicesorgente.AlexAitkinhPeravermifattoconoscereVicoeilsuoverumipsumfactumG(lacomprensionevieneattraversoleazioni).DennisScotthPerU avercorrettolamiaaritmeticaesadecimale.jddPerU avermisegnalatoalcunierroridibattitura.Da>vidLeadbQeaterPerU avercontribuitoachiarirealcunidubbisuidemonidelkernel.Dominiquev\|andenBroQec>kPerU avertradottoquestodoGcumentoinF*rancese.&Y_2 ~?G14.8Amministrativ\|ae{18ՁVMatthieuP>eetersPerU alcuneprezioseinformazionisuidemonidelkernel.JohnF remlinPerU alcuneprezioseinformazionisuidemonidelkernel.Y ujiSendaPerU latraduzioneinGiappGonesedeldocumento.An>toniusdeRozariPer,BavercontribuitoallarealizzazionediunaversioneassemblerGNU, diUNIOS(vedetelasezione risorse*hnellaU miahomepage)#Í14.5%}Storicodellemo_dicheM14.5.1(0.8->0.9(No>vembre2000)#IncorpGoratealcuneinformazionidaMatthieuPeeterseJohnF*remlinsuidemonidelkernelesullesystemU /proc. 14.5.2(0.7->0.8(Settem>bre2000)Rimosse? leistruzionisucomecostruireunsistema,CtepGosteinundocumentoseparato.j#Correttialcunilink.MoGdicataU lahomepagedale}/arning@T;asLUGhttp://learning.taslug.org.au/power2bashaU myownwebsp}/acehttp://www.netspace.net.au/~gok/power2bash.Completamenteofallitoiltentativodiinseriremoltobuonmateriale,Cfornitodaicontributidisvqariate pGersone.qF*orseU sarperunaprossimavolta:( 14.5.3(0.6->0.7maggioreenfasisullaparteteorica,>WminoresulmetoGdodicostruzionediunsistema;lleinformazionisullafcostruzioneriuniteinunasezioneseparata,jeriordinatoilsistemacompilato;o7indirizzatiilettoriversoU ildoGcumentodiLinuxF*romScratch*hdiGerardBeekmanspGerunacompilazionepicompletaaggiunteU alcunedivqagazionisuggeritedaDavidLeadbGeatercorretteU unpaiodiurl,aggiuntoillinkaldownloaddiuniosalearning.taslug.org.au/resourcesvericatiU ecorrettiilinkriscritturaU generale,riordinamento 14.5.4(0.5->0.6aggiuntoU lostoricodellemoGdicheaggiunteU alcunevoGciallalistaDAFARE/_2 ~?G14.8Amministrativ\|ae{19ՁV14.6%}DAFARE#spiegareU imoGdulidelkernel,icomandidepmod,modprobe,insmodesimili(devoprimaprovqarli!)menzionareU illesystem/proGc,possonovenirepropostiesercizisudiessoconvertireU adoGcbookU sgmlaggiungere_altriesercizi,magariunainterasezionededicataadesercizipicomplessi,comeadesempio lacreazionediunlesystemminimale, Nunleallavolta,attraversol'installazionediunadistribuzione.aggiungereU miglioramentialmakeledicompilazionedibash.90;_2G!N ecbx1200HЃ ecti1000]f ecbx1000&Lt$ffffecbx14406 ecss1000Iqqecss2074qL ectt1000 1 ecrm1000 !", cmsy10 b> cmmi10<\