• Introducción al sistema operativo LINUX
Linux es un sistema
operativo gratuito y de libre distribución inspirado en el sistema Unix,
escrito por Linus Torvalds con la ayuda de miles de programadores en Internet.
Unix es un sistema operativo desarrollado en 1970, una de cuyas mayores ventajas
es que es fácilmente portable a diferentes tipos de ordenadores, por lo que
existen versiones de Unix para casi todos los tipos de ordenadores, desde PC y
Mac hasta estaciones de trabajo y superordenadores. Al contrario que otros
sistemas operativos, como por ejemplo MacOS (Sistema operativo de los Apple
Macintosh), Unix no está pensado para ser fácil de emplear, sino para ser
sumamente flexible. Por lo tanto Linux no es en general tan sencillo de emplear
como otros sistemas operativos, aunque, se están realizando grandes esfuerzos
para facilitar su uso. Pese a todo la enorme flexibilidad de Linux y su gran
estabilidad ( y el bajo coste) han hecho de este sistema operativo una opción
muy a tener en cuenta por aquellos usuarios que se dediquen a trabajar a través
de redes, naveguen por Internet, o se dediquen a la programación. Además el
futuro de Linux es brillante y cada vez más y más gente y más y más empresas
(entre otras IBM, Intel, Corel) están apoyando este proyecto, con lo que el
sistema será cada vez más sencillo de emplear y los programas serán cada vez
mejores.
¿Qué
son las distribuciones?
Una de los primeros
conceptos que aparecen al iniciarse en Linux es el concepto de distribución. Una
distribución es un agrupamiento del núcleo del sistema operativo Linux (la
parte desarrollada por Linus Torvalds) y otra serie de aplicaciones de uso
general o no tan general. En principio las empresas que desarrollan las
distribuciones de Linux están en su derecho al cobrar una cierta cantidad por
el software que ofrecen, aunque en la mayor parte de las ocasiones se pueden
conseguir estas distribuciones desde Internet, de revistas o de amigos, siendo
todas estas formas gratuitas y legales.
Las distribuciones más
conocidas son RedHat, Debian, Slackware, SuSE y Corel Linux, todas ellas
incluyen el software más reciente y empleado lo cual incluye compiladores de
C/C++, editores de texto, juegos, programas para el acceso a Internet, así como
el entorno gráfico de Linux: X Window.
A lo largo de este manual
se considerará la distribución de Linux más extendida en la actualidad: RedHat
6.0. Aunque la mayor parte de la información debe ser válida para el resto de
las distribuciones, existen determinadas opciones que están sujetas a cambio
como el sistema de instalación del sistema operativo.
Entorno
de trabajo: el shell y X Window
Al contrario que otros
sistemas operativos, por defecto el trabajo con Linux no se realiza de una forma
gráfica, sino introduciendo comandos de forma manual. Linux dispone de varios
programas que se encargan de interpretar los comandos que introduce el usuario
y realiza las acciones oportunas en respuesta. Estos programas denominados
shell son el modo típico de comunicación en todos los sistemas Unix incluido
Linux. Para muchas personas el hecho de tener que introducir los comandos de
forma manual les puede parecer intimidante y dificultoso, aunque como se verá
más adelante los comandos de Linux son relativamente simples y muy poderosos.
No obstante, casi todas las
distribuciones más recientes incluyen el sistema X Window (no X Windows), el
cual es el encargado de controlar y manejar la interfaz de usuario. Como se
verá más adelante X Window es mucho más poderoso que otros entornos similares
como Microsoft Windows, puesto que permite que el usuario tenga un control
absoluto de la representación de los elementos gráficos.
Usuarios
y grupos
Linux es un sistema
operativo multitarea y multiusuario. Esto quiere decir que es capaz de ejecutar
varios programas (o tareas) de forma simultánea y albergar a varios usuarios de
forma simultánea.
Por lo tanto, todos los
usuarios de Linux deben tener una cuenta de usuario en el sistema que establezca
los privilegios del mismo. A su vez Linux organiza a los usuarios en grupos de
forma que se puedan establecer privilegios a un determinado grupo de trabajo,
para el acceso a determinados archivos o servicios del sistema.
La base del sistema de
archivos de Linux, es obviamente el archivo, que no es otra cosa que la estructura
empleada por el sistema operativo para almacenar información en un dispositivo
físico como un disco duro, un disquete, un CD-ROM o un DVD. Como es natural un
archivo puede contener cualquier tipo de información, desde una imagen en
formato PNG o JPEG a un texto o una página WEB en formato HTML. El sistema de
archivos es la estructura que permite que Linux maneje los archivos que
contiene.
Todos los archivos de Linux
tienen un nombre, el cual debe cumplir unas ciertas reglas:
·
Un nombre de archivo puede tener entre 1 y 255
caracteres.
·
Se puede utilizar cualquier carácter excepto la
barra inclinada / y no es recomendable emplear los caracteres con significado
especial en Linux, que son los siguientes: = \ ^ ~ ' " ` * ; - ? [ ] ( ) !
& ~ < >. Para emplear ficheros con estos caracteres o espacios hay
que introducir el nombre del fichero entre comillas.
·
Se pueden utilizar números exclusivamente si así se
desea. Las letras mayúsculas y minúsculas se consideran diferentes, y por lo
tanto no es lo mismo carta.txt que Carta.txt ó carta.Txt
Como en Windows, se puede
emplear un cierto criterio de "tipo" para marcar las distintas clases
de ficheros empleando una serie de caracteres al final del nombre que indiquen
el tipo de fichero del que se trata. Así, los ficheros de texto, HTML, las
imágenes PNG o JPEG tienen extensiones .txt, .htm (o .html), .png y .jpg (o
.jpeg) respectivamente.
Pese a esto Linux sólo
distingue tres tipos de archivos:
·
Archivos o ficheros ordinarios, son los mencionados
anteriormente.
·
Directorios (o carpetas), es un archivo especial
que agrupa otros ficheros de una forma estructurada.
·
Archivos especiales, son la base sobre la que se
asienta Linux, puesto que representan los dispositivos conectados a un
ordenador, como puede ser una impresora. De esta forma introducir información
en ese archivo equivale a enviar información a la impresora. Para el usuario estos
dispositivos tienen el mismo aspecto y uso que los archivos ordinarios.
Enlaces
Los enlaces son un tipo de
archivo ordinario cuyo objetivo es crear un nuevo nombre para un archivo
determinado. Una vez creado el enlace simbólico éste permite acceder al fichero
que enlaza de igual modo que si se hubiera copiado el contenido del mismo a
otro fichero, con la ventaja de que este realmente no se ha copiado. Los
enlaces simbólicos son especialmente útiles cuando se quiere que un grupo de
personas trabajen sobre un mismo fichero, puesto que permiten compartir el fichero
pero centralizan las modificaciones.
Como ejemplo se puede
suponer la existencia de un fichero llamado balance.1999.txt, al que se crea un
enlace simbólico balance.txt. Cualquier acceso a balance.txt es traducido por
el sistema de forma que se accede al contenido de balance.1999.txt.
El
camino o Path
En cualquier sistema
operativo moderno la estructura de archivos es jerárquica y depende de los directorios.
En general la estructura del sistema de archivos se asemeja a una estructura de
árbol, estando compuesto cada nudo por un directorio o carpeta, que contiene
otros directorios o archivos.
En Windows cada unidad de
disco se identifica como una carpeta básica que sirve de raíz a otras, y cuyo
nombre es especial a:, c:, d: etc. En los sistemas Unix, y por lo tanto en
Linux, existe una única raíz llamada / de la que cuelgan todos los ficheros y
directorios, y que es independiente de qué dispositivos estén conectados al
ordenador.
El camino o path de un
fichero o directorio es la secuencia de directorios que se ha de recorrer para acceder
a un determinado fichero separados por /. Supongamos la estructura de archivos
de la siguiente figura:
Existen dos formas del path
o camino:
·
el camino absoluto que muestra toda la ruta a un
fichero, /home/luis/Carta.txt.
·
el path relativo a un determinado directorio, por
ejemplo si no encontramos en el directorio /home, el path relativo al fichero Carta.txt
es luis/Carta.txt Para complicar aún más las cosas, todos los directorios
contienen dos directorios especiales:
·
El directorio actual, representado por el punto
·
El directorio padre representado por dos puntos .. Estando
en el directorio /home/pedro se puede acceder a Carta.txt con /home/luis/Carta.txt
(path absoluto) o bien ../luis/Carta.txt (path relativo). En luis como
./Carta.txt o simplemente Carta.txt.
Estructura
del sistema de archivos de Linux
El sistema de archivo de
Linux sigue todas las convenciones de Unix, lo cual significa que tiene una
estructura determinada, compatible y homogénea con el resto de los sistemas
Unix. Al contrario que en Windows o MS-DOS el sistema de archivos en cualquier
sistema Unix no está ligado de una forma directa con la estructura del
hardware, esto es, no depende de si un determinado ordenador tiene 1, 2 o 7
discos duros para crear las unidades c:\, d:\ o m:\.
Todos el sistema de
archivos de Unix tiene un origen único la raíz o root representada por /. Bajo este
directorio se encuentran todos los ficheros a los que puede acceder el sistema
operativo. Estos ficheros se organizan en distintos directorios cuya misión y
nombre son estándar para todos los sistema Unix.
- / Raíz del sistema de archivos.
- /dev Contiene ficheros del sistema representando los dispositivos que estén físicamente instalados en el ordenador.
- /etc Este directorio está reservado para los ficheros de configuración del sistema. En este directorio no debe aparecer ningún fichero binario (programas). Bajo este deben aparecer otros dos subdirectorios:
- /etc/X11 Ficheros de configuración de X Window
- /etc/skel Ficheros de configuración básica que son copiados al directorio del usuario cuando se crea uno nuevo.
- /lib Contiene las librerías necesarias para que se ejecuten los programas que residen en /bin (no las librerías de los programas de los usuarios).
- /proc Contiene ficheros especiales que o bien reciben o envían información al kernel del sistema (Se recomienda no modificar el contenido de este directorio y sus ficheros).
- /sbin Contiene programas que son únicamente accesibles al superusuario o root.
- /usr Este es uno de los directorios más importantes del sistema puesto que contiene los programas de uso común para todos los usuarios. Su estructura suele ser similar a la siguiente:
- /usr/X11R6 Contiene los programas para ejecutar X Window.
- /usr/bin Programas de uso general, lo que incluye el compilador de C/C++.
- /usr/doc Documentación general del sistema.
- /usr/etc Ficheros de configuración generales.
- /usr/include Ficheros de cabecera de C/C++ (.h).
- /usr/info Ficheros de información de GNU.
- /usr/lib Librerías generales de los programas.
- /usr/man Manuales accesibles con el comando man (ver más adelante).
- /usr/sbin Programas de administración del sistema.
- /usr/src Código fuente de programas.
Existen además de los
anteriores otros directorios que se suelen localizar en el directorio /usr,
como por ejemplo las carpetas de los programas que se instalen en el sistema.
/var Este directorio
contiene información temporal de los programas (lo cual no implica que se pueda
borrar su contenido, de hecho, no se debe hacer)
Acceso
a los diferentes sistemas de archivos
Como se ha visto
anteriormente el sistema de archivos de Linux sólo tiene una raíz y su
estructura es independiente de los dispositivos de almacenamiento existentes.
Esto implica que el procedimiento a emplear para acceder a la información
almacenada en los distintos sistemas de almacenamiento de un ordenador no es
tan sencilla como en Windows, y requiere un proceso llamado “montado”, que se verá
más adelante. Cuando se ha terminado de trabajar con un determinado dispositivo
hay que “desmontarlo” (No físicamente).
Por ejemplo el proceso para
leer un disquete sería el siguiente:
1.
Introducir el disquete en la disquetera.
2.
Montar el sistema de archivos del mismo.
3.
Leer, grabar, y manipular el contenido del
disquete.
4.
Desmontar el sistema de archivos del disquete.
5.
Extraer el disquete de la disquetera.
El proceso puede parecer
complejo pero es el precio a pagar por la seguridad, puesto que de esta forma
se garantiza que no exista ninguna aplicación que esté usando el disquete
cuando se extraiga. (En el caso de los CD-ROM Linux impide su extracción hasta
que se desmonta).
Para complicar más las
cosas sólo el administrador o root tiene permiso para montar y desmontar un sistema
de archivos (por motivos de seguridad), aunque esto puede ser arreglado.
Permisos
Linux, al igual que todos
los sistemas Unix, mantiene un sistema de permisos de acceso a los ficheros muy
estricto, a fin de controlar qué es lo que se puede hacer con ellos, y quien lo
puede hacer. Estos permisos se identifican con letras y son:
·
r permiso de lectura el fichero
·
w permiso de escritura en el fichero
·
x permiso de ejecución del fichero
·
s permiso para cambiar el propietario del fichero
Al contrario que en Windows
o MS-DOS los programas ejecutables de Linux no están marcados por una
determinada extensión (.exe) sino por un atributo, el permiso de ejecución x.
Si se elimina este atributo a un programa, Linux no será capaz de ejecutarlo.
A su vez cada uno de estos
permisos se aplica: al dueño del fichero (u), al grupo de usuarios al que pertenece
el dueño (g), ó al resto de usuarios (a). Así un fichero determinado puede
tener permiso para ser leído, escrito y ejecutado por su dueño, leído y
ejecutado por el grupo al que pertenece y no tener ningún tipo de acceso para
los demás usuarios. Como se puede entender este tipo de mecanismo es
especialmente útil cuando se trabaja en grupo en un determinado proyecto.
laik si bienes del conalepxdd
ResponderEliminar