Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió...

62
GIE/ICE Introducció a Linux Filosofia Josep Vilaplana UPC/GIE Introducció a Linux. Filosofia. Josep Vilaplana – p. 1

Transcript of Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió...

Page 1: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Introducció a Linux

Filosofia

Josep Vilaplana

UPC/GIE

Introducció a Linux. Filosofia. Josep Vilaplana – p. 1

Page 2: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Nivells del sistema operatiu

HARDWARE

NÚCLI

SISTEMA OPERATIU

EINES

APLICACIONS

INTERFÍCIES (GRÀFIQUES)

Introducció a Linux. Filosofia. Josep Vilaplana – p. 2

Page 3: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Nivells del sistema operatiu

HARDWARE

NÚCLI

SISTEMA OPERATIU

EINES

APLICACIONS

INTERFÍCIES (GRÀFIQUES)

shells

Introducció a Linux. Filosofia. Josep Vilaplana – p. 2

Page 4: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Característiques bàsiques d’Unix/Linux

• Maximitzar els recursos disponibles de l’ordinador:

• Processador: Utilitzant processos (programes en execució) de formaconcurrent. Evita que cada programa usi el processador per esperar elsrecursos que necessita. El processador atén a altres programes quenecessiten feines més útils. És un sistema operatiu multi-tasca.

• Memòria: Evita repeticions de fragments de codi, l’organitza per sercompartida per la resta de processos i/o usuaris existents, i quans’exhaureix la memòria principal, usa la la memòria secundària(memòria virtual ).

• Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 3

Page 5: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Característiques bàsiques d’Unix/Linux

• Maximitzar els recursos disponibles de l’ordinador:

• Processador: Utilitzant processos (programes en execució) de formaconcurrent. Evita que cada programa usi el processador per esperar elsrecursos que necessita. El processador atén a altres programes quenecessiten feines més útils. És un sistema operatiu multi-tasca.

• Memòria: Evita repeticions de fragments de codi, l’organitza per sercompartida per la resta de processos i/o usuaris existents, i quans’exhaureix la memòria principal, usa la la memòria secundària(memòria virtual ).

• Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics.

• Gestionar que el sistema sigui compartit per més d’un usuari (multi-usuari ).

Introducció a Linux. Filosofia. Josep Vilaplana – p. 3

Page 6: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Característiques bàsiques d’Unix/Linux

• Maximitzar els recursos disponibles de l’ordinador:

• Processador: Utilitzant processos (programes en execució) de formaconcurrent. Evita que cada programa usi el processador per esperar elsrecursos que necessita. El processador atén a altres programes quenecessiten feines més útils. És un sistema operatiu multi-tasca.

• Memòria: Evita repeticions de fragments de codi, l’organitza per sercompartida per la resta de processos i/o usuaris existents, i quans’exhaureix la memòria principal, usa la la memòria secundària(memòria virtual ).

• Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics.

• Gestionar que el sistema sigui compartit per més d’un usuari (multi-usuari ).• Gestionar aspectes de seguretat entre usuaris aportant mecanismes de

protecció.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 3

Page 7: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Característiques bàsiques d’Unix/Linux

• Maximitzar els recursos disponibles de l’ordinador:

• Processador: Utilitzant processos (programes en execució) de formaconcurrent. Evita que cada programa usi el processador per esperar elsrecursos que necessita. El processador atén a altres programes quenecessiten feines més útils. És un sistema operatiu multi-tasca.

• Memòria: Evita repeticions de fragments de codi, l’organitza per sercompartida per la resta de processos i/o usuaris existents, i quans’exhaureix la memòria principal, usa la la memòria secundària(memòria virtual ).

• Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics.

• Gestionar que el sistema sigui compartit per més d’un usuari (multi-usuari ).• Gestionar aspectes de seguretat entre usuaris aportant mecanismes de

protecció.

• Independència del hardwaresobre el que hagi de recòrrer. El dissenyd’Unix/Linux ha demostrat estar preparat per assolir les possiblesinnovacions que puguin sorgir.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 3

Page 8: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Característiques bàsiques d’Unix/Linux

• Maximitzar els recursos disponibles de l’ordinador:

• Processador: Utilitzant processos (programes en execució) de formaconcurrent. Evita que cada programa usi el processador per esperar elsrecursos que necessita. El processador atén a altres programes quenecessiten feines més útils. És un sistema operatiu multi-tasca.

• Memòria: Evita repeticions de fragments de codi, l’organitza per sercompartida per la resta de processos i/o usuaris existents, i quans’exhaureix la memòria principal, usa la la memòria secundària(memòria virtual ).

• Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics.

• Gestionar que el sistema sigui compartit per més d’un usuari (multi-usuari ).• Gestionar aspectes de seguretat entre usuaris aportant mecanismes de

protecció.

• Independència del hardwaresobre el que hagi de recòrrer. El dissenyd’Unix/Linux ha demostrat estar preparat per assolir les possiblesinnovacions que puguin sorgir.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 3

Page 9: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Característiques bàsiques d’Unix/Linux

• Maximitzar els recursos disponibles de l’ordinador:

• Processador: Utilitzant processos (programes en execució) de formaconcurrent. Evita que cada programa usi el processador per esperar elsrecursos que necessita. El processador atén a altres programes quenecessiten feines més útils. És un sistema operatiu multi-tasca.

• Memòria: Evita repeticions de fragments de codi, l’organitza per sercompartida per la resta de processos i/o usuaris existents, i quans’exhaureix la memòria principal, usa la la memòria secundària(memòria virtual ).

• Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics.

• Gestionar que el sistema sigui compartit per més d’un usuari (multi-usuari ).• Gestionar aspectes de seguretat entre usuaris aportant mecanismes de

protecció.

• Independència del hardwaresobre el que hagi de recòrrer. El dissenyd’Unix/Linux ha demostrat estar preparat per assolir les possiblesinnovacions que puguin sorgir.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 3

Page 10: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Característiques bàsiques d’Unix/Linux

• Maximitzar els recursos disponibles de l’ordinador:

• Processador: Utilitzant processos (programes en execució) de formaconcurrent. Evita que cada programa usi el processador per esperar elsrecursos que necessita. El processador atén a altres programes quenecessiten feines més útils. És un sistema operatiu multi-tasca.

• Memòria: Evita repeticions de fragments de codi, l’organitza per sercompartida per la resta de processos i/o usuaris existents, i quans’exhaureix la memòria principal, usa la la memòria secundària(memòria virtual ).

• Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics.

• Gestionar que el sistema sigui compartit per més d’un usuari (multi-usuari ).• Gestionar aspectes de seguretat entre usuaris aportant mecanismes de

protecció.

• Independència del hardwaresobre el que hagi de recòrrer. El dissenyd’Unix/Linux ha demostrat estar preparat per assolir les possiblesinnovacions que puguin sorgir.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 3

Page 11: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Conceptes bàsics d’Unix/Linux

Unix/Linux promou simplicitat i “elegància” en:

• Disseny de programes amb objectius senzills ben definits, exactes i clars.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 4

Page 12: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Conceptes bàsics d’Unix/Linux

Unix/Linux promou simplicitat i “elegància” en:

• Disseny de programes amb objectius senzills ben definits, exactes i clars.• Projectes senzills requereixen menys temps de desenvolupament i

verificacions (tests) més senzilles.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 4

Page 13: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Conceptes bàsics d’Unix/Linux

Unix/Linux promou simplicitat i “elegància” en:

• Disseny de programes amb objectius senzills ben definits, exactes i clars.• Projectes senzills requereixen menys temps de desenvolupament i

verificacions (tests) més senzilles.• Independència del projecte a requisits més complexes com pot ser el

llenguatge de programació, API’s i altres vinculacions pròpies d’undesenvolupament.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 4

Page 14: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Conceptes bàsics d’Unix/Linux

Unix/Linux promou simplicitat i “elegància” en:Per cada context d’aplicació, disposar de

• Biblioteques de subprogrames pel llenguatge de programació decidit.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 5

Page 15: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Conceptes bàsics d’Unix/Linux

Unix/Linux promou simplicitat i “elegància” en:Per cada context d’aplicació, disposar de

• Biblioteques de subprogrames pel llenguatge de programació decidit.• Llenguatges de guions que permetin fer sistemes més complexes a partir

d’altres programes o guions més senzills i així aprofitar el que ja està fet.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 5

Page 16: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Conceptes bàsics d’Unix/Linux

Unix/Linux promou simplicitat i “elegància” en:Per cada context d’aplicació, disposar de

• Biblioteques de subprogrames pel llenguatge de programació decidit.• Llenguatges de guions que permetin fer sistemes més complexes a partir

d’altres programes o guions més senzills i així aprofitar el que ja està fet.

• Ús obert i flexible dels programes.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 5

Page 17: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Conceptes bàsics d’Unix/Linux

Unix/Linux promou simplicitat i “elegància” en:Per cada context d’aplicació, disposar de

• Biblioteques de subprogrames pel llenguatge de programació decidit.• Llenguatges de guions que permetin fer sistemes més complexes a partir

d’altres programes o guions més senzills i així aprofitar el que ja està fet.

• Ús obert i flexible dels programes.• Màxim ús de les possibilitats del sistema operatiu.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 5

Page 18: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Conceptes bàsics d’Unix/Linux

Unix/Linux promou simplicitat i “elegància” en:Per cada context d’aplicació, disposar de

• Biblioteques de subprogrames pel llenguatge de programació decidit.• Llenguatges de guions que permetin fer sistemes més complexes a partir

d’altres programes o guions més senzills i així aprofitar el que ja està fet.

• Ús obert i flexible dels programes.• Màxim ús de les possibilitats del sistema operatiu.• Unificació i Màxim aprofitament d’una eina. La funcionalitat d’una

comanda/programa serveix per qualsevol dispositiu de hardware.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 5

Page 19: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Conceptes bàsics d’Unix/Linux

Unix/Linux promou simplicitat i “elegància” en:Per cada context d’aplicació, disposar de

• Biblioteques de subprogrames pel llenguatge de programació decidit.• Llenguatges de guions que permetin fer sistemes més complexes a partir

d’altres programes o guions més senzills i així aprofitar el que ja està fet.

• Ús obert i flexible dels programes.• Màxim ús de les possibilitats del sistema operatiu.• Unificació i Màxim aprofitament d’una eina. La funcionalitat d’una

comanda/programa serveix per qualsevol dispositiu de hardware.• Competitivitat i consens

Introducció a Linux. Filosofia. Josep Vilaplana – p. 5

Page 20: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Conceptes bàsics d’Unix/Linux

Unix/Linux promou simplicitat i “elegància” en:Per cada context d’aplicació, disposar de

• Biblioteques de subprogrames pel llenguatge de programació decidit.• Llenguatges de guions que permetin fer sistemes més complexes a partir

d’altres programes o guions més senzills i així aprofitar el que ja està fet.

• Ús obert i flexible dels programes.• Màxim ús de les possibilitats del sistema operatiu.• Unificació i Màxim aprofitament d’una eina. La funcionalitat d’una

comanda/programa serveix per qualsevol dispositiu de hardware.• Competitivitat i consens• Inconvenient agradable? pel programador/usuari: moltes eines a decidir per

qualsevol objectiu.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 5

Page 21: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 6

Page 22: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

• X aporta mecanismes no pas principis o normes: Desplaça les decisionssobre les eines i la presentació (normes) a nivell d’aplicació. Els programesd’Unix aporten moltes opcions de comportament i preferències.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 7

Page 23: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• X aporta mecanismes no pas principis o normes: Desplaça les decisionssobre les eines i la presentació (normes) a nivell d’aplicació. Els programesd’Unix aporten moltes opcions de comportament i preferències.

• “it is better to solve the right problem the wrong way than the wrong problemthe right way” Dick Hamming

Introducció a Linux. Filosofia. Josep Vilaplana – p. 7

Page 24: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• X aporta mecanismes no pas principis o normes: Desplaça les decisionssobre les eines i la presentació (normes) a nivell d’aplicació. Els programesd’Unix aporten moltes opcions de comportament i preferències.

• “it is better to solve the right problem the wrong way than the wrong problemthe right way” Dick Hamming

• Usuaris no tècnics s’atabalen amb tantes opcions i estils, que prefereixenaquells sistemes que com a mínim ofereixen simplicitat.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 7

Page 25: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Doug McIlroy 78:Fes que cada programa faci una cosa bé. Per fer un nou treball, construeixquelcom fresc en comptes de complicar un programa vell afegint-li novescaracterístiques.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 8

Page 26: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Doug McIlroy 78:Fes que cada programa faci una cosa bé. Per fer un nou treball, construeixquelcom fresc en comptes de complicar un programa vell afegint-li novescaracterístiques.

• Compta amb que la sortida d’un programa pot esdevenir l’entrada a un altreprograma encara per conèixer. No facis sortides confoses amb informacióestranya. Evita formats d’entrada binaris. No insisteixis sobre entradesinteractives.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 8

Page 27: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Doug McIlroy 78:Fes que cada programa faci una cosa bé. Per fer un nou treball, construeixquelcom fresc en comptes de complicar un programa vell afegint-li novescaracterístiques.

• Compta amb que la sortida d’un programa pot esdevenir l’entrada a un altreprograma encara per conèixer. No facis sortides confoses amb informacióestranya. Evita formats d’entrada binaris. No insisteixis sobre entradesinteractives.

• Dissenya i construeix programari, inclòs sistemes operatius, per ser provatsaviat, idealment en setmanes. No t’amoïnis per llençar parts conflictives ireconstruir-les.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 8

Page 28: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Usa preferentment eines que ajudin a alleugerir la tasca de programació,inclòs si cal, construir-les per després llençar-les un cop s’ha acabat.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 9

Page 29: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Usa preferentment eines que ajudin a alleugerir la tasca de programació,inclòs si cal, construir-les per després llençar-les un cop s’ha acabat.

• La filosofia d’Unix és: Escriu programes que facin una cosa i la facin bé.Escriu programes que puguin treballar junts. Escriu programes que gestioninfluxos de text, ja que és una interfície universal.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 9

Page 30: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Regla de la Modularitat: Escriu parts senzilles connectades per interfíciesclares.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 10

Page 31: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Regla de la Modularitat: Escriu parts senzilles connectades per interfíciesclares.

• Regla de la Claredat: Millor ser clar que enginyós.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 10

Page 32: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Regla de la Modularitat: Escriu parts senzilles connectades per interfíciesclares.

• Regla de la Claredat: Millor ser clar que enginyós.• Regla de la Composició: Dissenya programes per ser connectats a altres

programes.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 10

Page 33: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Regla de la Modularitat: Escriu parts senzilles connectades per interfíciesclares.

• Regla de la Claredat: Millor ser clar que enginyós.• Regla de la Composició: Dissenya programes per ser connectats a altres

programes.• Regla de la Separació: Separa normes del mecanisme; separa interfícies

dels motors.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 10

Page 34: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Regla de la Simplicitat: Dissenya per a la simplicitat; afegeix complexitatnomés on calgui.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 11

Page 35: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Regla de la Simplicitat: Dissenya per a la simplicitat; afegeix complexitatnomés on calgui.

• Regla de la Parsimònia: Escriu un programa gran només quan està bendemostrat que no hi cap altra manera de fer-ho.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 11

Page 36: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Regla de la Simplicitat: Dissenya per a la simplicitat; afegeix complexitatnomés on calgui.

• Regla de la Parsimònia: Escriu un programa gran només quan està bendemostrat que no hi cap altra manera de fer-ho.

• Regla de la Transparència: Dissenya per a la visibilitat per fer la inspecció iseguiment i trobada d’errors més fàcil.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 11

Page 37: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Regla de la Simplicitat: Dissenya per a la simplicitat; afegeix complexitatnomés on calgui.

• Regla de la Parsimònia: Escriu un programa gran només quan està bendemostrat que no hi cap altra manera de fer-ho.

• Regla de la Transparència: Dissenya per a la visibilitat per fer la inspecció iseguiment i trobada d’errors més fàcil.

• Regla de la Robustesa: La robustesa és el fill de la transparència i lasimplicitat.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 11

Page 38: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Regla de la Representació: Recull el coneixement en dades de forma que elprograma sigui estúpid i robust.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 12

Page 39: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Regla de la Representació: Recull el coneixement en dades de forma que elprograma sigui estúpid i robust.

• Regla de la Mínima Sorpresa: En disseny d’interfícies, sempre fer la cosamenys sorprenent.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 12

Page 40: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Regla de la Representació: Recull el coneixement en dades de forma que elprograma sigui estúpid i robust.

• Regla de la Mínima Sorpresa: En disseny d’interfícies, sempre fer la cosamenys sorprenent.

• Regla del Silenci: Quan un programa sorprenentement no té res a dir, nohauria de dir res.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 12

Page 41: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Regla de la Representació: Recull el coneixement en dades de forma que elprograma sigui estúpid i robust.

• Regla de la Mínima Sorpresa: En disseny d’interfícies, sempre fer la cosamenys sorprenent.

• Regla del Silenci: Quan un programa sorprenentement no té res a dir, nohauria de dir res.

• Regla de Reparació: Quan hagi de fallar, que falli sorollosament, i tant aviatcom sigui possible.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 12

Page 42: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Regla d’Economia: El temps del programador és car; conserva’l enpreferència al temps de màquina.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 13

Page 43: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Regla d’Economia: El temps del programador és car; conserva’l enpreferència al temps de màquina.

• Regla de Generació: Evita hand-hacking; quan puguis escriu programes perescriure programes.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 13

Page 44: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Regla d’Economia: El temps del programador és car; conserva’l enpreferència al temps de màquina.

• Regla de Generació: Evita hand-hacking; quan puguis escriu programes perescriure programes.

• Regla de Optimització: Prototipa abans de polir. Fes que treballi abansd’optimitzar.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 13

Page 45: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Regla d’Economia: El temps del programador és car; conserva’l enpreferència al temps de màquina.

• Regla de Generació: Evita hand-hacking; quan puguis escriu programes perescriure programes.

• Regla de Optimització: Prototipa abans de polir. Fes que treballi abansd’optimitzar.

• Regla de Diversitat: Desconfia de totes les pretensions d”’un únic camíveritable”.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 13

Page 46: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

• Regla d’Extensibilitat: Dissenya pel futur, ja que esdevindrà més aviat delque penses.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 14

Page 47: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Filosofia UNIX.

En una sola frase:

K.I.S.S.

Keep it Simple Stupid

Introducció a Linux. Filosofia. Josep Vilaplana – p. 15

Page 48: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

• El Filtre (grep, tr, ...)Prescripció de Postel: Sigues generós amb el que acceptes i rigorós amb elque emets.Quan filtris no llencis la informació que no necessites.Quan filtris no afegeixis soroll.

stdin stdout

−−−−−→ −−−−−→

Introducció a Linux. Filosofia. Josep Vilaplana – p. 16

Page 49: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Patrons de disseny d’interfícies d’UNIX.

• El Filtre (grep, tr, ...)Prescripció de Postel: Sigues generós amb el que acceptes i rigorós amb elque emets.Quan filtris no llencis la informació que no necessites.Quan filtris no afegeixis soroll.

stdin stdout

−−−−−→ −−−−−→

• El “cantrip” (rm,. touch, startx)cap entrada, cap sortida. Nomes un status numèric.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 16

Page 50: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Patrons de disseny d’interfícies d’UNIX.

• La font (ls, ps, who)cap entrada, emet sortida controlada per les condicions d’inici.

−−−−−→

Introducció a Linux. Filosofia. Josep Vilaplana – p. 17

Page 51: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Patrons de disseny d’interfícies d’UNIX.

• La font (ls, ps, who)cap entrada, emet sortida controlada per les condicions d’inici.

−−−−−→

• El Clavegueró (lpr, mail)consumeix entrada, cap sortida.

−−−−−→

Introducció a Linux. Filosofia. Josep Vilaplana – p. 17

Page 52: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Patrons de disseny d’interfícies d’UNIX.

• Esponja consumeix tota l’entrada, abans de fer la sortida (sort)

−−−−−→

Introducció a Linux. Filosofia. Josep Vilaplana – p. 18

Page 53: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Patrons de disseny d’interfícies d’UNIX.

• Esponja consumeix tota l’entrada, abans de fer la sortida (sort)

−−−−−→

• Compilador (gcc, gif2png, gzip)cap entrada, cap sortida. Emet en el canal d’errors els errors. Transformafitxers

Introducció a Linux. Filosofia. Josep Vilaplana – p. 18

Page 54: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Patrons de disseny d’interfícies d’UNIX.

• Esponja consumeix tota l’entrada, abans de fer la sortida (sort)

−−−−−→

• Compilador (gcc, gif2png, gzip)cap entrada, cap sortida. Emet en el canal d’errors els errors. Transformafitxers

• ed

Introducció a Linux. Filosofia. Josep Vilaplana – p. 18

Page 55: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Patrons de disseny d’interfícies d’UNIX.

• Esponja consumeix tota l’entrada, abans de fer la sortida (sort)

−−−−−→

• Compilador (gcc, gif2png, gzip)cap entrada, cap sortida. Emet en el canal d’errors els errors. Transformafitxers

• ed• roguelike visualització a traves dels caràcters del terminal, interfície gràfica.

Introducció a Linux. Filosofia. Josep Vilaplana – p. 18

Page 56: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Patrons de disseny d’interfícies d’UNIX.

Joc original de Rogue:

a) some food

b) +1 ring mail [4] being worn

----------------------- ########## c) a +1,+2 mace in hand

| +############### d) a +1,+0 short bow

| | e) 28 +0,+0 arrows

---------------+------- f) a short bow

# i) a magnesium wand

# g) a magnesium wand

### ---------------- j) a potion of detect things

--------+---------- | l) a scroll of teleportation

| | #+ --press space to continue--

| | #| | #

| +#######| | ##

| | | +##############

--------+---------- ------------------- #

###### #

------+---------- ######

|...........@..!| #

|...........%...| ---------------- #

|...............| #+ | #######

Introducció a Linux. Filosofia. Josep Vilaplana – p. 19

Page 57: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

• motor i interfície separat model-view-controller

Introducció a Linux. Filosofia. Josep Vilaplana – p. 20

Page 58: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Patrons de disseny d’interfícies d’UNIX.

• motor i interfície separat model-view-controller• parella configurador/actor fetchmail/fetchmailconf

Introducció a Linux. Filosofia. Josep Vilaplana – p. 20

Page 59: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Patrons de disseny d’interfícies d’UNIX.

• motor i interfície separat model-view-controller• parella configurador/actor fetchmail/fetchmailconf• una variant de parella configurador/actor: parella spooler/dimoni

accés serialitzat a un recurs compartit mitjançant lots. lpr/lpd at/atdsendmail i qmail

Introducció a Linux. Filosofia. Josep Vilaplana – p. 20

Page 60: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Patrons de disseny d’interfícies d’UNIX.

• parella controlador (conductor)/motorper ex. gv o ghostscript (interfícies gr.) i gs (interpret postscript) xcdroastamb mkisofs i cdrecord

Introducció a Linux. Filosofia. Josep Vilaplana – p. 21

Page 61: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Patrons de disseny d’interfícies d’UNIX.

• parella client/servidor és com la parella controlador (conductor)/motor però lapart del motor és un dimoni sense interfície d’usuari, normalment es peraccedir a un recurs compartit (base de dades, flux de transaccions, hardwarecom pla placa de so.) Essent un dimoni s’estalvia costos d’inicialització.Ec: ftp/ftpd navegador/portal psql,

Introducció a Linux. Filosofia. Josep Vilaplana – p. 22

Page 62: Josep Vilaplana UPC/GIEjosep/PaginaWebECSO/ecso1.pdf · • Perifèrics: Maximitza la gestió d’entrades i sortides entre perifèrics. • Gestionar que el sistema sigui compartit

GIE

/ICE

Patrons de disseny d’interfícies d’UNIX.

• parella client/servidor és com la parella controlador (conductor)/motor però lapart del motor és un dimoni sense interfície d’usuari, normalment es peraccedir a un recurs compartit (base de dades, flux de transaccions, hardwarecom pla placa de so.) Essent un dimoni s’estalvia costos d’inicialització.Ec: ftp/ftpd navegador/portal psql,

• servidor CLI (Command line interpreter)interfície basada en (mini)llenguatge de comandes (shells, bc, dc)llenguatges de guió encastrats (emacs, gimp (script-fu))

Introducció a Linux. Filosofia. Josep Vilaplana – p. 22