dimecres, 18 d’octubre del 2017

La programació de sistemes

Sovint, els estudiants de informàtica veuen el món de la programació i el món dels sistemes informàtics (el maquinari, el sistema operatiu i les xarxes) com mons separats, creient que ser un tècnic en sistemes o en xarxes implica no tenir necessitat de escriure mai codi de programació. Aquesta creença està reforçada per les facilitats que els moderns sistemes operatius (SO) orientats a usuaris ofereixen per administrar els sistemes, amb entorns visuals on pràcticament no cal escriure res, només cal clicar objectes i menús.

No obstant, per un professional de la informàtica, aquesta separació entre administració de sistemes i programació és fictícia, si la mantenim, llavors com a administradors de sistemes estarem molt limitats a fer tasques no massa complexes. Veiem per què.

Programes configurables

Els programes estan dissenyats per fer una feina concreta d'una forma determinada, la que ha decidit el programador; no obstant, molts programes incorporen la possibilitat de personalitzar-los, modificant la seva configuració. 
Opcions de configuració d'un programa d'usuari
Quan configurem un programa, de fet estem canviant el seu comportament, és com si l'estiguéssim "re-programant", però sense usar codi si no finestres de propietats.

El sistema operatiu, que també és un programa, només que molt gran i complex, també és configurable, per tant podem re-programarlo fàcilment usant finestres i propietats.

Configuració de Windows
En el cas de sistemes operatius més professionals i oberts (això significa que són més configurables, però al mateix temps més difícils de configurar) moltes de les opcions de configuració ja no son visuals, si no textuals.

Configuració d'un servidor Samba en Linux, en mode text
Fixeu-vos que aquest tipus de configuració textual comença a semblar-se a un llenguatge de programació; de fet, no pots escriure qualsevol cosa: hi han uns comandaments vàlids, amb una sintaxi molt exacte, i si escrius malament alguna paraula resulta un error de configuració. L'avantatge d'aquesta configuració textual és que poden haver centenars d'opcions, cada una amb desenes de variants (per tant, centenars x desenes = milers d'opcions) que difícilment es poden representar amb finestres visuals, i si ho féssim, serien complicades i lentes d'utilitzar. En canvi un expert en el sistema operatiu és capaç de configurar el sistema molt ràpidament si coneix de memòria els comandaments que necessita.


La potència dels comandaments del sistema

Un altre àmbit on l'administració de sistemes si acosta molt a la programació és el dels comandaments del sistema.
Ajuda del comandament sftp de Windows, un client de transferència remota de fitxers amb encriptació
Els comandaments incorporats al sistema (en el cas de Linux hi han uns 500, veure aquesta llista, per exemple) permeten executar operacions i programes molt més ràpidament que no pas amb el procediment d'anar obrint finestres i clicar en les opcions. Un tècnic experimentat usant comandaments pot assolir una velocitat d'operació fins a 5 vegades o més superior que no utilitzant l'entorn gràfic. En aquest vídeo es pot veure com una operació simple com és (1) crear una carpeta, (2) copiar els fitxers del tipus pdf a la nova carpeta, es completa amb la meitat de temps usant comandaments. Si l'operació és més complexe, la diferència de velocitat augmenta. A més a més, hi han operacions que no es poden fer amb l'entorn gràfic i sí es poden fer amb comandaments.

Programació amb comandaments del sistema

Un programa d'administració que conté comandaments i variables del sistema

La següent possibilitat, en ordre de complexitat, consisteix en escriure seqüències de comandaments del sistema en un fitxer executable, de forma que tots els comandaments s'executen alhora quan obrim el fitxer. Això permet a l'administrador del sistema crear fitxers de control, com ara de creació d'usuaris, per cancel·lar la connexió a Internet, o per fer còpies de seguretat,  i no tenir que escriure totes les ordres cada cop que ho necessiti.

Els SO moderns han potenciat aquesta possibilitat, afegint variables i estructures de control algorísmic, de forma que ja no són simples seqüències de comandaments, si no autèntics programes de administració del sistema.

Personalització del SO

El fet de poder escriure programes d'administració permet de crear nous comandaments del sistema, personalitzant el SO. Per exemple, el següent codi Linux, guardat en un fitxer executable anomenat newers, es comporta com un nou comandament afegit al sistema, que fa un llistat de tots els fitxers que siguin més actuals que un altre que li donem:

#newers
 #mostra tots els fitxers més moderns que un que li passem com
a paràmetre
ls -t | sed '/^'$1'$/q'

Llavors podem usar el programa com a comandament:

[jordi@linux_laptop scripts]$ ./newers lscripts
newers
patro

Els fitxers newers i patro són més moderns que el fitxer lscripts.

Conclusió

Creure que l'administració de sistemes no utilitza la programació no només és incorrecte, si no que ens limita molt les nostres possibilitats professionals com a tècnics.

dijous, 5 d’octubre del 2017

Glossari de termes de sistemes operatius



Gestió de la memòria:  La gestió de memòria és una forma de gestió de recursos aplicada a la memòria de l'ordinador. El requisit essencial de la gestió de memòria és proporcionar maneres d'assignar dinàmicament parts de memòria als programes a la seva sol.licitud, i alliberar-la per a la seva reutilització quan ja no sigui necessari. Això és fonamental per a qualsevol sistema informàtic avançat on es pugui trobar més d'un procés en qualsevol moment.

Gestió de processos: La gestió de processos és part integrant de qualsevol sistema operatiu modern (SO). El SO ha d'assignar recursos als processos, permetre que els processos comparteixin i intercanviïn informació, protegeixin els recursos de cada procés d'altres processos i permetin la sincronització entre processos.

Sistema de fitxers: els sistemes de fitxers s'utilitzen per controlar com s'emmagatzemen i es recuperen les dades. Separen les dades en "trossos" que emmagatzemen de forma independent. Prenent Cada grup de dades s'anomena "fitxer". Les regles d'estructura i lògica utilitzades per gestionar els grups d'informació i els seus noms s'anomena "sistema de fitxers". El sistema de fitxers gestiona l'accés tant al contingut dels fitxers com a les metadades sobre aquests fitxers. És responsable d'organitzar espai d'emmagatzematge; la fiabilitat, l'eficiència i l'afinació pel que fa al mitjà d'emmagatzematge físic són importants consideracions de disseny.


Sistema operatiu: Un sistema operatiu (SO) és un programari que, després de ser carregat a l'ordinador mitjançant un programa inicial d'arrencada, gestiona els recursos d'una computadora, controlant el flux d'informació cap i des d'un processador principal. Els sistemes operatius realitzen tasques complexes, com ara la gestió de la memòria, el control de pantalles i altres dispositius perifèrics d'entrada / sortida, la gestió de xarxes i la gestió d'arxius, i altres funcions d'assignació de recursos entre el programari i els components del sistema. El SO proporciona la base sobre la qual funcionen les aplicacions, maquinari i altres components d'infraestructura. Un sistema operatiu sol proporcionar interfícies d'usuari, com la línia de comandaments i la interfície gràfica d'usuari, per a la interacció entre l'usuari i l'ordinador.

Gestió d'usuaris i grups en Linux

Usuaris i grups Linux  Els comptes de Linux són com els comptes de Windows o MacOS; però els detalls no, així que cal explicar alguns detall...