Vous êtes sur la page 1sur 8

Ncleo, Shell, estructura de directorios y permisos 2 60

Esta segunda entrega del curso de Linux en Espaol esta desarrollada para que puedas conocer y
familiarizarte con el sistema operativo Linux, de esta forma Linux ya no ser un desconocido para
ti, al contrario al conocer todas sus partes lograras el dominio sobre este gran sistema, si aun no le
has dado lectura al tema anterior puedes ir a Historia y filosofa, si ya lo has hecho acompanos en
esta gran aventura.

Para que puedas conocer a fondo el sistema Linux lo dividir en sus partes bsicas y explicar que
funcin cumple cada una de ellas, estas son las siguientes:
Ncleo de Linux
Shell de Linux
Directorios, estructuras de directorios
Sistemas de archivos

Ncleo de Linux
Linux es un ncleo de sistema operativo cuyo desarrollo comenz en 1991 en manos de Linux
Torvalds, tres aos despus y gracias a la ayuda de una gran comunidad de desarrolladores, se libero
la versin 1 del cdigo fuente. Esta versin 1 se libero bajo la licencia GPL de free software
foundation la cual es la cuna del proyecto GNU, que es una distribucin de software libre.

Que se puede hacer con la licencia GPL?


Se puede usar el software como quieras, adems lo puedes adaptar a tus propias necesidades,
adems de eso lo puedes copiar sin restriccin y lo puedes redistribuir cuando lo mejores y esos
cambios donarlos a la comunidad.
Despus de 1995 lo nico que ha hecho Linux en estos 20 aos a sido ir para arriba. Ahora es uno
de los sistemas operativos preferidos para ambientes de red e internet. Pero entonces tu dirs pero
si la mayor base instalada es Windows, Tienes razn, pero no caes en cuenta que probablemente
en tus bolsillos tengas un mvil corriendo Linux, que probablemente donde tengas tu blog o tu
pgina web el servidor este corriendo en Linux, tu router puede tener Linux hasta la BIOS de tu
computador. loco no.? Pero por eso hay que replantear eso de la mayor base instalada.

Kernel monoltico
Como ya hemos visto el kernel de Linux es un sistema monoltico es decir que todos sus
componentes estn en un solo paquete y este establece procedimiento de llamadas hacia el resto de
los procesos del sistema corriendo en un rea restringida el cual estos no pueden acceder
directamente.
El microkernel trabaja igual pero tiene sus diferencias. El microkernel minimiza la labor del kernel
y crea un sistema bsico de llamadas de entrada y salida, de manejo de memoria y hace que todos
los dems componentes corran como procesos del sistema. La discusin entre cual de los dos es
mejor pues.. eso lo veremos en otro video porque ahora lo que queremos es entender cuales son
las partes del ncleo de Linux.

Como se divide la arquitectura del ncleo de Linux?


El ncleo o Kernel de Linux lo dividiremos en las siguientes partes:

Geston de Procesos
La gestin de procesos esta centrada en la ejecucin de los procesos, en el kernel de linux son
llamados hilos y representan la visualizacin individual de cada procesador. Se suele utilizar el
termino proceso aunque la implementacin en linux no tiene concepto de hilos y procesos por
separado. El ncleo provee un API a travs de la SCI, con la que puede crear nuevos procesos con
fork y con exec, matar o salir del procesos como en el caso de kill o exit. La gestin de procesos
es necesaria para poder compartir hilos en la CPU, en el kernel el planificar opera en un tiempo
constante sin tener en cuenta el numero de procesos que compiten por la CPU por eso decimos que
opera bajo demanda, este se llama planificador 01, esto denota que el lleva la misma cantidad de
tiempo para la planificacin de un solo hilo o de varios , en el planificador 01 tambin se soporta el
multiproceso. sea es simtrico y multiproceso.

La memoria
Otro importante recurso que es controlado por el kernel es la memoria, debido a la eficiencia como
el hardware que maneja La Memoria Virtual esta es gestionada en paginas de 4 Kb en la mayora
de las arquitecturas, Linux incluye definiciones para manejar la memoria disponible y los
mecanismos para hacer el mapeo en el hardware de la memoria fsica y en la memoria virtual. Pero
la gestin de la memoria es mucho ms que bfer de 4Kb, Linux contiene abstraccin de bfer
que permiten ir mas haya, este esquema maneja memoria de bfer de 4Kb, como base pero adems
reserva estructura dentro de ellos y lleva la cuenta de las paginas que estn completas, parcialmente
usadas o totalmente vacas para que el esquema pueda crecer o disminuir como se necesite en el
momento.
Cuando hay varios usuarios haciendo uso de la memoria existen ocasiones en las cuales esta se
agota entonces por esta razn las paginas pueden ser escritas en el disco duro temporalmente y
luego vueltas a cargar en la memoria esto se llama SWAP o intercambio, ya que las paginas se
mueven de un lado para otro cuando se necesite.

Sistema Virtual de Archivos o VFS


VFS es una capa de abstraccin muy interesante que tiene el kernel y provee un interface para el
uso comn de sistemas de archivos sin importar cual sea. Se llama capa de atraccin porque no
importa cual sea la implementacin de file system (Sistema de archivo) que estemos utilizando el
tiene las funciones bsicas para poder acceder a cualquier sistema de archivos. Entonces el VFS
proporciona una capa de intercambio entre las SCI y los sistemas de archivos soportados por el
kernel.
En la parte mas alta del Virtual File System se encuentra un API comn con las funciones tales
como read , write, open, close y en la parte mas baja estn las abstracciones del sistema para
poder definir las atracciones mas altas, estas son aadidas a cada uno de los soportes de cada
sistema de archivos en el kernel son ms de 50, bajo la capa del sistema de archivos esta el cache
del bufer que proporciona un conjunto de funciones a la capa de archivos independientemente del
sistema de archivos que se este manejando, esa capa optimiza el acceso a los dispositivos fsicos
manteniendo brevemente la informacin arriesgndose a que esta tenga una lectura anticipada de
los datos para poderla mantener cuando haga falta. Es por eso que en la prctica cuando nosotros
leemos un sistema de archivos la primera vez es ms lento y cuando volvemos a leerlo es ms
rpido.
Por debajo del cache del bfer ya estn los controladores directamente, los dispositivos de
hardware que hacen interface con el sistema de archivos.

La pila de Red
La pila red o diseo sigue una arquitectura por capas modelada tras los protocolos en si,
recordemos que el IP que no es solamente una direccin o un numero sino que es el protocolo
principal de internet y a su vez el protocolo central bajo el que se sitan el protocolo de
transporte TCP/IP y sobre el protocolo de transporte TCP/IP esta la capa de socket que a su vez
llama a las SCI. La capa de socket es un API estndar para el subsistema del trabajo en red y
proporciona una interface a varios protocolos. Desde el acceso a las frames crudas hasta las
unidades de datos de IP llamadas PDU lo que nosotros vulgarmente conocemos como paquetes, el
protocolo TCP/IP y el protocolo de datagrama de usuario UDP. La capa de socket provee de esta
manera una forma estandarizada para poder manejar conexiones y mover datos de un lugar a otro.

Drivers de dispositivos
Lo siguiente en la lista son los controladores, la gran mayora del cdigo fuente de Linux son
controladores de dispositivos, Porque? Bueno es natural, los controladores son los que nos permite
reconocer el hardware que nosotros queremos hacer funcionar con el sistema operativo basado en
Linux. El rbol de cdigo fuente de Linux nos proporciona un subdirectorio llamado Drivers el cual
esta dividido en los diferentes dispositivos que queremos reconocer, en este cdigo fuente vamos a
encontrar directorios como Serial, Ethernet y todos los dispositivos para los que se ha
desarrollado soporte en Linux.

Arquitectura
Por ultimo esta el cdigo dependiente de la arquitectura, aunque Linux es independiente de la
arquitectura hay varios elementos que hay que tener en cuenta con las operaciones habituales de
eficiencia del sistema operativo, tenemos que Linux tambin en su rbol de desarrollo tiene un
apartado para lo que necesita especficamente cada una de las arquitecturas entonces tenemos
386, Spark, ARM, MIPS, cualquiera otra que sea soportada por el ncleo de Linux.
Hay otras caractersticas bsicas del sistema operativo que vale mencionar aparte de la estructura
que estamos estudiando en este momento.
Linux por ser un sistema operativo de produccin y tambin de cdigo abierto es un excelente
laboratorio para nuevas tecnologas en protocolos de red, por ejemplo las redes de alta velocidad
que superan al Eternet de 1/10Gb y tambin por ejemplo el TCP/IP, que nos permiten caractersticas
avanzadas de TCP/IP remplazndolo como capa de transporte.
Linux tambin es un kernel dinmico a pesar que es monoltico tambin es modular y permite
que los controladores que no son esenciales para el funcionamiento sean cargados como mdulos y
se permite la carga y la descarga de los mismos sin tener que afectar el funcionamiento o la
estabilidad de la plataforma.
Tambin esta la parte de la virtualizacin, Linux desde hace unos aos lleva soportando la
virtualizacin por medio de KVM Kernel-Based Virtual Machine, y esta modificacin al kernel
permiti que se pudieran correr instancias por ejemplo del sistema operativo Windows y del
sistema operativo Linux al mismo tiempo, la nica restriccin es que la plataforma de hardware que
se este utilizando tenga la opcin de virtualizacin.
Con eso damos fin a la explicacin de los que es el ncleo de Linux a grandes rasgos, Si
quisiramos profundizar que es el ncleo de Linux pues nunca terminamos.

La Shell
La Shell es interface de usuario tradicional en los sistemas operativos tipo Unix. Linux cuenta con
esta interface tambin. El nombre Shell viene por la traduccin del ingles de consola ya que las
computadoras de antao utilizaban una interface donde se colocaban un teclado y una pantalla para
poder acceder a este.
La Shell provee una interface para poder enviar y recibir el resultado de comando o de
aplicaciones que muestran su resultado en la pantalla en forma de texto, adems tambin provee
un lenguaje de programacin bsico para que los usuarios puedan utilizarlo, automatizar tareas y
procedimientos dentro del sistema y as poder facilitar su uso y administracin, a esto se le llama
Shell Scripting.

Estructura de Directorios
El siguiente punto es la estructura de directorios o jerarqua, al igual que todos los otros sistemas
operativos Linux tiene una jerarqua de archivos para poder organizar la estructura y tiene la
siguiente organizacin Teniendo en cuenta que el / o barra diagonal que nosotros conocemos es la
base o raz de toda la estructura entonces la vamos a llamar root ( raz en ingles), entonces de ah se
derivan los siguientes directorios:

/bin es el que contiene los binarios indispensables para que el sistema operativo funcione en su
parte mnima como ls, rm, mkdir, ps
/boot que contiene los archivos estticos de arranque de Linux como el kernel y el initrd
/dev contiene los archivos que representan los dispositivos tanto virtuales como de hardware que
hay en el sistema
/etc que es el directorio que contiene los archivos de configuracin de en formato de texto
/home el directorio que contiene los directorios donde estn los usuarios sea donde los usuarios
tienen sus datos por ejemplo /home/efox
/lib que es las libreras esenciales tambin del sistema operativo y los mdulos del kernel tambin
residen all
/media es la raz del punto de montaje de los dispositivos de bloque o removibles
/mnt es el punto de montaje de bloque temporal, que fue heredado de Unix es como media pero
pues ya no se utiliza tanto porque vena de Unix tradicional
/opt que es donde reside el software de aplicacin agregado o de terceros como ORACLE o como
cualquier otro fabricante
/sbin que provee los binarios del sistema que no son esenciales para hacer que el sistema operativo
funcione pero que son necesarios para llevar a cabo funciones ya mas complejas, como por
ejemplo la configuracin de la red, del filtrado ip, la programacin de tareas y toda las dems cosa
que hacen mas completo el del sistema operativo.
/tmp que es donde residen los archivos temporales ya sean los que nosotros generamos o los que
general las aplicaciones y procesos que manejan el sistema
/usr donde estn los binarios y las aplicaciones, este es el directorio que suele tener la cantidad de
espacio ocupado mas grande dentro del file system y provee una jerarqua tambin secundaria
donde hay un /bin, /etc, /lib, /sbin.
/var o archivos de tamao variable como la cola de correo, las colas de impresin, las datas de los
motores de bases de datos
/root es por as decirlo el home para el root porque antiguamente en el unix el home del root estaba
sobre la misma raz y esto generaba problemas de seguridad y organizacin
/proc que es un sistema de archivo virtual donde esta el estado del sistema, las condiciones y esto se
indica en archivos de texto

Permisos
Ahora esta el asunto de los permisos, me imagino que alguna vez has odo algo como no, no
tengo los privilegios en el sistema o no es que mi usuario no es privilegiado, se trata de esto
mismo.
En Linux aunque no lo creas solo hay 2 tipos de usuarios esto debido a la forma en la que trabaja el
ncleo, existe un usuario 0 que es llamado root, dios, admin, odin, thor o como lo quieras llamar y
todos los dems usuarios.
Bueno como es esto?
Realmente lo que importa son los permisos del file system, y esto no es de extraar porque ah es
que residen los datos que nosotros queremos restringir
Entonces como es esto de los privilegios?
La cosa va as, existen 3 roles distintos con 3 tipos de permisos cada uno, eso suena como tic tac
toe, triqui como nosotros lo llamamos y pues no es enredado pero el jueguito de triqui nos puede
ayudar a resolver un poquito como es esto de los permisos.
Entonces tenemos que en eje x esta el usuario propietario representado por la u propietario del
archivo, esta el grupo representado por la g que pertenece el usuario y todos los dems
representados por la letra o. En el eje y tenemos la r para lectura en ingles que es read, la w para
write que es escribir en ingles y la x para execute en ingles quiere decir ejecutar ahora los
permisos se otorgan por medio de numeros, el permiso para ejecutar es 1, el permiso para escribir
es 2 y el permiso para leer es 4, estos se suman para obtener el permiso que necesito para
determinado archivo.

En este caso colocaremos 4+2+1 da 7 sea todos los permisos, 4+0+1 osea el permiso de lectura y
ejecucin y el siguiente le vamos a colocar 0+0+0 que no nos da ningn permiso , entonces
tenemos que el usuario propietario tienen todos los permisos , el grupo donde se encuentra el
usuario propietario tiene permisos de lectura y ejecucin y y los dems usuarios en el sistema no
tiene permiso de hacer nada con el archivo al que le acabamos de colocar este permisos. Entonces
estos son los permisos de archivos y pues aqu hicimos la lnea del tic tac toe.
Les voy a mostrar algunos ejemplos de permisos, teniendo en cuenta vamos a hacer unos
ejemplos de los permisos en Linux. Tenemos unos archivos de ejemplo vamos a ver la aplicacin
de los bits de los permisos , tenemos que el primer tercio es el usuario, el segundo tercio es el
grupo y el tercer tercio es los otros, entonces vamos a hacer algunos ejemplos vamos a ser el
ejemplo que tenemos en el video
Chmod 750 ejemplo 1
All vemos que quedo con permisos de lectura, escritura y ejecucin para el usuario, lectura y
ejecucin para el grupo y ninguno para los todos los otros, ahora vamos a dar lectura y escritura a
todos, recordemos lectura es 4, escritura es 2 entonces lectura y escritura vendran a ser 6, para
otorgarle ese permiso a todos los usuarios vendra a ser 666. Ah esta lectura y escritura tanto para
propietario, grupo y todos los dems, ahora solo queremos lectura para todos entonces seria 444
ah esta lectura para el propietario, el grupo y todos los otros, por ejemplo queremos nada mas
lectura y ejecucin para el propietario y el grupo para todos los otros ninguno entonces seria que
lectura y ejecucin seria 4+1 seria 5
Chmod 555 ejemplo 4
Entonces tenemos lectura y ejecucin para el propietario y el grupo todos los otros no tienen
ningn permiso y queremos colocarle todos los permisos al archivo seria 4 del permiso de
lectura, 2 del permisos de escritura y 1 del permiso de ejecucin seria 7, con esto nos damos
cuenta como se asigna los permisos de Linux. No olviden que esto se va a ampliar para los
comando especficos mas adelante solamente es para mostrar lo explicado anteriormente.
SGUI/ SUID y Sticky bit
Tambin me parece importante explicarles o siguiente, existen 2 permisos excepcionales esta el de
SGUI/ SUID y esta STICKY BIT aqu es donde la cosa se pone buena.
Resulta que en Linux y en general a Unix hay un permiso de ejecucin que se le puede agregar a
una aplicacin, la cual hace que se ejecute como el usuario dueo y esto tambin incluye al
usuario root. Esto se llama SUID y se representa en el ejecutable con una S, en el caso del grupo
es lo mismo en el SGUI aparece tambin como una s en la parte de permiso de ejecucin, por otro
lado esta el STICKY BIT que es una medida de seguridad ya que solo el usuario propietario de ese
archivo puede modificarlo o eliminarlo, un ejemplo de esto es cuando colocamos archivos en el
/tmp.
El ejemplo consiste en lo siguiente, vamos a buscar una aplicacin, un conejillo de indias que nos
sirva para nuestro propsito, se me ocurre que top por lo es interactiva nos puede servir , entonces
copiamos la aplicacin para no modificar la del sistema a la carpeta donde estamos trabajando,
ahora vamos a asignarle el permiso de suid a esa aplicacin, se la aplicamos solamente al
propietario sea los permisos de U sea de usuario y ah ya vemos que nuestra aplicacin a
quedado con el bit s que nos dice que es suid, ahora vamos al otro usuario el usuario fox, que esta
trabajando en la misma carpeta vemos la aplicacin top y la ejecutamos para comprobar que esta
aplicacin esta corriendo como pedro hacemos ps xau que nos va a mostrar todos los procesos de
forma extendida junto con el usuario que los corre y vamos a filtrarlo por como se llama el
proceso, se llama top.
Ah ya podemos apreciar que aunque es fox el que inicio el proceso top, este esta corriendo a
nombre de pedro gracias a el bit de suid que lo permite.
Bueno el ejemplo de sticky bit va as:
Creamos una carpeta por ejemplo sticky , le agregamos todos los permisos ah ya comprobamos
luego le agregamos el bit de sticky bit en el rol de otros con la t y ah ya nos queda el directorio
con el sticky bit. En tramos, creamos un archivo le concedemos todos los permisos , nos
cercioramos de los permisos del archivo y que la carpeta efectivamente tenga el sticky bit.
Cambiamos de usuario, este es el usuario fox, entramos en la carpeta sticky, observamos que hay
un archivo del usuario pedro llamado hola, como tiene todos los permisos procedemos a borrarlo.
Pues no lo permite porque la carpeta que lo contiene que ese sticky tiene el sticky bit.
Al terminar esta segunda leccin ya estars familiarizado con el ambiente Linux y en la tercera
entrega de este curso, comenzaras a utilizar este magnifico sistema operativo atravez de los
comandos de Linux, as que no te lo pierdas.

Vous aimerez peut-être aussi