Mails para mi concuñado I – ¿Qué es un sistema operativo?

Mi concuñado es un tio majete. Y quiere aprender cosillas de informática. Como es médico (o MIR, o residente, o pokemon de agua, no se, no entiendo las diferencias) y chupa guardias, pues trastea con un portatilillo guarro que tiene, y no tiene miedo de nada. Como se lo curra y pregunta BIEN (algo que escasea), pues de vez en cuando le mando mails tocho con explicaciones muy bestias. Como creo que pueden servir a más gente, los comparto, y a ver que tal.

DISCLAIMER: se que técnicamente no estoy siendo preciso, y que incluso digo medias verdades, pero esto está escrito para gente NO técnica que no diferencia entre Ethernet y XBox, así que prefiero hacerlo divertido que exacto.

Ahí va el primer mail

Empecemos por el principio. Tienes que entender que es un Sistema Operativo (SO).
Un SO es el encargado de construir elementos abstractos que te permitan interactuar con el equipo. Por ejemplo, cuando hablamos de un fichero ¿de que hablamos exactamente? ¿de una entrada en la tabla de archivos del SO? ¿en un conjunto de bytes? ¿en unos sectores y pistas del disco? ¿en un conunto de partículas en la superficie de un disco que están cargados magneticamente con una carga positiva o negativa? ¿microsurcos en un dvd? pos eso, que no lo sabemos, el SO se encarga de crear un elemnto abstracto llamado fichero (que en realidad no existe).
Los SO pueden ser de más alto nivel (piensan más como la persona) o de más bajo nivel (piensan más como la máquina). Ser de alto o bajo nivel no es bueno ni malo, son formas diferentes de trabajar. Mac es de muy alto nivel, Windows algo menos (pero están ahí ahi), linux es de muy bajo nivel, pero implementa escritorios que suben mucho el nivel, y mac en el fondo, es un bsd (un unix) que a la que abres la terminal, bajas de nivel drásticamente.
Android, por ejemplo, es un linux al que se le ha puesto una capa por encima que sube MUCHO el nivel, de hecho, en los SO moviles apenas hay gestión de ficheros (desde el punto de vista del usuario estándar).
El tema este de capas es muy importante en la informática en general, todo se hace por capas, todo. Es imposible abarcar la complejidad de un proyecto de SW sin dividirlo en capas. Incluso yo cuando hago cosas para el movil, divido mis apps en capas.
Tener un SO u otro, también determina que apps podemos ejecutar. Por ejemplo, si coges un EXE de windows y lo intentas ejecutar en linux o mac, te dirà que tururu. SI intentas instalar un DMG en windows se te reirá en la cara. Por que cada SO entiende los programas de una manera determinada. Es verdad que hay formar de “saltarse” esto, por ejemplo, WINE, permite cargar apps de windows en linux.
Claro, a la hora de programar, esto es un coñazo, por que si tengo que hacer una aplicación que funcione en diferentes SO, tengo que hacerlo por cada uno de ellos, y esto se intenta evitar. El conocido DODM (Develop Once, Deploy Many). Ahí entran lo que se conocen como lenguajes interpretados. Por ejemplo, Java. Las apps de Java, se ejecutan sobre una JVM (máquina virtual de java), y es este jvm lo que cambia por cada SO (por eso hay que bajarse java para XX antes de ejecutar una app java). Lo mismo sucede con Python, que es un lenguaje interpretado. (Aquí los puristas me saltarian al cuello, pero para lo que quiero explicar, me sirve)
¿Y que tiene que ver este rollazo con los que has visto? pues mucho.
Por ejemplo, vas a descargar Sickbeard TPB y te sale esto: http://sickbeard.com/downloads.html
¿Ein? ¿como que Windows o Github o Python? Calma, todo tiene explicación
Los usuarios de Windows están “mal” acostumbraditos (y los de mac) a bajarse un instalador, siguiente, siguiente, siguiente y pa casa. Bueno, pues en el mundo *nix (linux, unix, xenix, etc) esto no es así. Lo normal es que te bajes el código fuente y lo compiles/ejecutes a mano, como los hombres (aunque con los años también se ha simplificado mucho).
Estos de sickbeard son majetes de decir “hola monguer de windows, te hemos hecho un instalable para que te puedas defender tu solito”
Ah, pos que bien ¿y que otras opciones tengo?
Pues instalarte python (en muchos linux ya viene), bajarte el código fuente y currartelo tú.
Github es un repositorio de apliaciones open source. Ahí la gente sube el código fuente de cosas (apps, librerias, modulos, etc) y cualquiera puede bajarlo. Incluso yo tengo código: https://github.com/sergiandreplace)
El problema que habrás tenido, es que el señor de TPB pasa de los de windows. El que quiera series, que se moje el culo.
Y ahí es donde entra la terminal. Los hombres con pelo en el pecho hacen las cosas a pelo, y las hacen metiendo comandos.
Tienes que entender que la terminal es un programa, igual que el escritorio, igual que xbmc e igual que todo. Tu en linux configuras que app quieres que aparezca al arrancar/iniciar sesión. Y puede ser cualquiera de ellos.
TRUCO DE MASTER 1:
Linux es multiusuario, quicir, que varios usuarios pueden trabajar a la vez, y para cambiar de usuario, cambias de “pantalla”. Eso se hace pulsando CTRL+ALT+F#
Las de F1 a F6 son de texto, la F7 a F9 son gráficas. Pulutant, para meter todo el churro de comando en una terminal, según como es más rápido pulsar CTRL+ALT+F1 y meterse en una sesión de terminal que abrir la app. Sobretodo en XBMCBUNTU que no tienes app de terminal. Luego pa volver, pues CTRL+ALT+F7 y listos.
Y ahora llegamos a la parte de los usuarios.
Linux es muy seguro, y es por ello que no deja que los usuarios toquen nada “by default”. Para tocar algo, hay que elevar la sesión. Esto MacOsX y Windows lo han acabado copiando (mejor o peor)
En linux, el usuario con más privilegios es root, por lo tanto, dirias, pos nada, hago login como root y fuera. NOOORL, eso caca, de hecho, muchas distribuciones ni te dicen el pwd del root.
Lo que tienes que hacer es convertirte en un sudoer. Normalmente tu usuario con el que has instalado en un sudoer.
Los sudoers pueden lanzar comandos como root.
Por eso estas todo el rato metiendo comandos sudo estos o sudo lo otro.
Ahí venía el chiste este:
Sandwich
si haces “shutdown 0” te dice que no
si haces “sudo shutdown 0” apaga la máquina en 0 segundos
Obviamente, para evitar que alguien pueda hacer sudos por que tu te dejes la máquina desatendida, el sudo pide password otra vez.
Ale, luego más

Leave a Reply