Вы находитесь на странице: 1из 16

Modulo 1

Para que puedas conocer a fondo el sistema Linux lo dividir


en sus partes bsicas y explicar qu 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.

Qu 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 t 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 cules son las partes del ncleo
de Linux.

Cmo se divide la arquitectura del ncleo


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

Gestin de Procesos
La gestin de procesos est 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 trmino 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
proceso 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 ms all, 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 uninterface 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 filesystem (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 archivossoportados 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 lasSCI. 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, Por qu? 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 est 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 ltimo est 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 abiertoes 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 est 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 est 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 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 ms
complejas, como por ejemplo la configuracin de la red, del
filtrado ip, la programacin de tareas y toda las dems cosa
que hacen ms 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 ms
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 est el
estado del sistema, las condiciones y esto se indica en
archivos de texto

Permisos
Ahora est 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, est
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
nmeros,
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 o sea 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 sera 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 comandos especficos ms adelante solamente es
para mostrar lo explicado anteriormente.
SGUI/ SUID y Sticky bit
Tambin me parece importante explicarles o siguiente, existen
2 permisos excepcionales est 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 est 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 est
trabajando en la misma carpeta vemos la aplicacin top y la
ejecutamos para comprobar que esta aplicacin est
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 est 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 magnfico sistema operativo a
travs de los comandos de Linux, as que no te lo pierdas

Вам также может понравиться