Está en la página 1de 39

Tema 2

¿Qué es un Sistema Operativo?

Informática
Grado en Ingeniería Electrónica Industrial y
Automática

Definición

Clasificación y funciones

Evolución, interfaz gráfica y línea de comandos

Sistema Operativo GNU/Linux
Sistema Operativo
deioc
Conjunto de programas que hacen posible el uso eficiente
del ordenador, facilitando la interacción del usuario con la
máquina.
Para ello proporciona una máquina virtual capaz de
controlar los recursos hardware: CPU, memoria principal y
periféricos.

Usuarios
Programas
Sistema Operativo
Hardware
Sistema Operativo. Funciones
deioc


Gestionar los recursos del computador:
procesador(es), memoria(s) y periféricos

Gestionar la información almacenada: su acceso y
organización.

Controlar la ejecución de aplicaciones

Facilitar la interacción con el usuario
Conceptos
deioc

Programa: Conjunto de instrucciones codificadas en algún lenguaje de
programación para la resolución de un problema. Estático. Almacenado en
disco.

Proceso: Programa en ejecución. Está formado básicamente por el código
ejecutable y los datos asociados. Se encuentra en memoria y es dinámico.

Thread/hilo/hebra: Un proceso, en los S.O. multiprogramación modernos,
puede descomponerse en distintas tareas diferentes e independientes,
denominadas hebras, que pueden ejecutarse concurrentemente e incluso
con las de otros procesos.

Intérprete de órdenes o shell: Es el programa perteneciente al sistema
operativo que acepta las órdenes de los usuarios.
Conceptos
deioc

Archivo:
Conjunto de información relacionada. Gestión de manera eficiente.
Agrupados en directorios. Estructura jerárquica en árbol.
Camino o ruta de acceso.

Script: Un script es un guión o conjunto de instrucciones. Permite la automatizacion de tareas
creando pequeñas utilidades. Es muy utilizado para la administración de sistemas UNIX. Son
ejecutados por un intérprete de línea de comandos. Usualmente son archivos de texto.
#!/bin/bash
pin="1234"
echo "Introduzca su pin"
read -s clave
if test "$clave" = "$pin"
then
echo "Pin correcto"
echo "Acceso permitido"
else
echo "Pin incorrecto"
fi
Conceptos
deioc

Kernel o núcleo: Parte del S.O. que interactúa con el
hardware.

Funciones:

control de accesos,

mantenimiento del sistema de archivos,

manejo de errores,

gestión de servicios de entrada y salida

asignación de recursos.
Algunos tipos de S.O.
deioc

Nivel de especialización

Propósito general

Dedicados

Modos de procesamiento:

Multiprogramación: Es capaz de asignar recursos (procesador) a diferentes
procesos alternativamente, sin necesidad de que finalice uno completamente para
ejecutar el otro. Cuentan con técnicas de protección de memoria y control de
concurrencia.

Multiusuario: Sistema multiprogramación que permite el uso concurrente de
recursos por parte de varios usuarios teniendo implementadas políticas de control
de acceso robustas.

Tiempo compartido: Sistema multiprogramación y multiusuario cuyo objetivo es
optimizar el tiempo de respuesta obtenido por los usuarios, para conseguirlo debe
usar un algoritmo de planificación de tareas eficiente.

Tiempo real: Las respuestas del S.O. se deben dar dentro de un intervalo de tiempo
preestablecido.

Sistemas multiprocesamiento: Diseñados para gestionar dos o más procesadores
trabajando simultáneamente.
Sistema Operativo. Evolución
deioc

1ª Generación: S.O. básicos. Controlar y secuenciar la
ejecución de los programas y sus datos (tarjetas perforadas)


2ª Generación: Aumentan el rendimiento, sobre todo en la
comunicación con los periféricos gracias al uso de
almacenamiento intermedio.


3ª Generación: Ejecución concurrente de varios programas:
multiprogramación.


4ª Generación: Ordenadores personales. Aparición de los
sistemas operativos en red, y la idea de sistemas operativos
que controlan procesos distribuidos.
Otros sistemas operativos
deioc

Android: es un sistema operativo y una plataforma


software, basado en Linux para dispositivos móviles.
Android permite programar en un entorno de trabajo
(framework) de Java, aplicaciones sobre una máquina
virtual Dalvik (una variación de la máquina de Java
con compilación en tiempo de ejecución).
Antecedentes Linux
deioc

1964: Laboratorios Bell Telephone de la AT&T y el MIT se
plantean desarrollar un nuevo SO en tiempo compartido

1969: Ken Thompson y Denis Ritchie crean un nuevo SO
multitarea llamado UNICS

1970: Versión para dos usuarios

1973: Se reescribe el SO en el lenguaje C para conseguir
mayor portabilidad

1976: Primera versión de UNIX fuera de los laboratorios Bell

1991: Desarrollo de Linux por Linus Torvalds siendo
estudiante en la Universidad de Helsinki.

A partir de entonces se desarrolla gracias a un gran número de
programadores que desarrollan voluntariamente el sistema.

Hoy en día también es utilizado por empresas.
LINUX
deioc

Versión del sistema operativo Unix para PC

Gratuito y de libre distribución

Potente, flexible, versátil, estable y portable

Multitarea y multiusuario

Ideal para trabajar en red, navegar o programar

Más información en www.linux.org
Distribuciones de Linux
deioc

Las más conocidas: Ubuntu, Debian, Slackware, SuSE, RedHat, Corel
Linux, OpenLinux, Mandrake, Slackware, etc.

Incluyen compiladores de C/C++, de Pascal, editores de texto, juegos,
programas para acceso a Internet, entorno gráfico:XWindow

En los laboratorios de la Escuela usaremos BARDINUX

http://bardinux.ull.es/download
Entorno de trabajo: Shell y X Window
deioc

Entrada al sistema: Login y password

Salida del sistema en modo texto: shutdown o Ctrl-Alt-
Del

Shell: Programa intérprete de comandos

Lenguaje de programación ($ sh ficheroscript)

Hay varios: Bourne, C, T, Korn, bash, etc

X Window: Interfaz gráfica de usuario
X Window
deioc

Más poderosa que Windows

No fija aspecto y funcionamiento específicos

Gestores de ventanas más usados: KDE, GNOME,
Motif, OpenLook
Inicio de sesión
deioc

Nombre de ususario y contraseña:

Definidos por el administrador.

Asociado a cada usuario

login:

password:
Comandos Básicos
deioc

Una vez iniciada la sesión aparece el prompt o indicador que
espera a que el usuario introduzca una orden que será procesada
por el shell una vez pulsada la tecla return.

[cande@nefer.cande]$

Algunos comandos se ejecutan directamente, otros necesitan
argumentos y además se pueden especificar opciones.
$date

mar oct 26 10:53:33 WEST 2004



$cat tutorias.txt
Tutorías:
Martes, Jueves y Viernes: 9:30-11:30
$ls -l tutorias2c.doc
-rw-rw-r-- 1 cande cande 100864 mar 16 2010 tutorias2c.doc
Comandos Básicos
deioc

Passwd: Cambio de contraseña:

$passwd
Changing password for user nombre_usuario.
(current) UNIX password:
New UNIX password:
Re-enter new password:

Obtener ayuda:

man: muestra las páginas del manual acerca de un comando
$man ls
Comandos básicos
deioc

Está dividido en las siguientes secciones:


1. Órdenes y programas de aplicación
2. Llamadas al sistema
3. Biblioteca de funciones estándar de C
4. Dispositivos
5. Formatos de archivo
6. Juegos
7. Miscelánea
8. Procedimeintos de mantenimiento y administración
Comandos básicos
deioc
$man clear
clear(1)
NAME
clear - clear the terminal screen
SYNOPSIS
clear
DESCRIPTION
clear clears your screen if this is possible. It looks in the environment for the terminal
type and then in the terminfo database to figure out how to clear the screen.
SEE ALSO
tput(1), terminfo(5)
Whatis: explicación resumida de lo que hace un comando concreto
$whatis cal
Comandos Básicos
deioc
apropos: toda la información relacionada con el comando especificado
$apropos cal

Revisión del sistema e interacción con otros usuarios


who: Se obtiene una línea de salida para cada usuario conectado al sistema
$who
USER LINE LOGIN-TIME FROM
alu1524 pts/0 Oct 26 11:05
Comandos Básicos
deioc

ps: muestra el estado de los procesos en UNIX. Se muestra un listado de
todos los procesos activos que se encuentran en ejecución.
$ps
PID TTY TIME CMD
2773 pts/1 00:00:00 bash
10890 pts/1 00:00:01 mozilla-bin
10964 pts/1 00:00:00 ark
10966 pts/1 00:00:00 ps
Comandos generales:

Date: muestra la fecha y hora actuales, consultando para ello el reloj
hardware del sistema. Se puede modificar el formato de salida.
$date '+ Son las %r del %d de %m de %y'
Son las 10:53:53 del 27 de 10 de 04
Comandos Básicos
deioc
Algunas opciones del comando date:
r: Hora en formato AM-PM d: día del mes m: mes
y: año w: día de la sermana H: hora
M: minuto S: segundo
echo: Muestra por pantalla la cadena de caracteres que se le pasa.
$echo repite esta cadena

cal: muestra el calendario del año que se le pasa. Si no se le da ningún argumento


muestra el mes del año en curso.
$cal 1 2004
enero de 2004
do lu ma mi ju vi sá
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Comandos Básicos
deioc
uname: muestra información relacionada con el sistema.
Algunas opciones de uname:
-a: todo acerca de la máquina -m: tipo de hardware
-r: actualización del SO -s: nombre del sistema
-v: versión del SO
$uname -a
Linux localhost 2.4.20-8 #1 Thu Mar 13 17:18:24 EST 2003 i686 athlon i386
GNU/Linux
lpr: envía a la impresora por defecto el archivo especificado.
$lpr -m -#2 practica.c
script: almacena en un archivo todo lo que el usuario escriba a partir de la
invocación de dicho comando. Para terminar de debe teclear exit. Si no se le
especifica ningún archivo volcará el contenido a un fichero denominado
typescript.
$script sesion
Comandos básicos
deioc
du: muestra el espacio ocupado en el disco por un determinado directorio y todos los
subdirectorios que cuelgan de él.
$du -s
Find: busca el fichero/s que se le pasa como argumento en la estructura de directorios especificada
$find . -name oracion.txt –print
grep: Localiza una palabra o frase en un conjunto de directorios, indicando en cuáles de ellos se
ha encontrado
$grep ‘informatica’ fichero1 fichero2
Comandos básicos
deioc
tar: Agrupa varios fichero o una estructura de directorio en un solo fichero
tar –cvf nombrearchivo.tar fichero1 fichero2
c: crea un nuevo fichero; v: muestra la lista de archivos procesados; f: especifica el nombre del
fichero resultante
tar -xpvf nombre_archivo.tar
p: mantiene los permisos al recuperar los ficheros; x: extraer los archivos contenidos en el fichero
tar especificado
gzip: Comprime los ficheros. Generalmente se usan combinando los dos comandos de manera
consecutiva
tar -czvf paquete.tar.gz informatica/ Comprime lo que contiene el directorio informatica en el
fichero paquete.tar.gz
tar -xf paquete.tar: descomprime el contenido del fichero
Comandos Básicos
deioc

Finalización de sesión y apagado

exit

Shutdown
Archivos y el árbol de directorios
deioc
Ordinarios, Vínculos, Especiales y Directorios
Vínculos: para acceder a un fichero usando distintos nombres
Especiales: dispositivos (introducir información equivale a enviarla)
Directorios en estructura de árbol con una única raíz /

/home: de trabajo para los distintos /usr: programas de uso común:


usuarios Xwindows, compiladores, etc.
/bin: archivos binarios del sistema /tmp: de trabajo temporal
/boot: para arrancar el sistema /lib: librerías de los programas del
/dev: dispositivos instalados, sistema,
/etc: configuración del sistema, /proc: archivos especiales
/root: de trabajo para el relacionados con el kernel,
superusuario /var: información temporal de los
/sbin: programas accesibles para el programas
superusuario,
Manejo de archivos y directorios
deioc
Algunas opciones del comando ls:
- l: Escribe (en una sola columna) los permisos del fichero, el número de
enlaces que tiene, el nombre del propietario, el del grupo al que pertenece, el
tamaño (en bytes), una marca de tiempo, y el nombre del fichero.
$ ls -l
total 4868 Número de Bloques ocupados
-rwxr-xr-x 1 cande cande 2644 feb 25 2003 tutorias.txt
•- archivo ordinario; d directorio; c dispositivo modo caracter; b dispositivo modo
bloque
•- d: muestra información de un directorio y no de su contenido
•- a: muestra los ficheros ocultos
Manejo de archivos y directorios
deioc
• pwd: Muestra el directorio de trabajo actual.

$pwd

/home/cande
• Para que se muestre el directorio actual en el prompt durante la sesión comenzada
$PS1='$PWD>'

• cd: Permite cambiarnos de directorio.


.. representa al directorio padre del actual
. representa al directorio actual
• cat: muestra en pantalla el archivo especificado. También se
puede usar para crear un fichero con el contenido especificado.
• $cat > tutorias.txt
• Tutorías:
• Lunes, Viernes: 9:30-11:30 y miércoles 15:30-17:30 CRTL+d (para terminar de
editar)

Para detener la salida por pantalla se pulsa CTRL + S y para continuarla CTRL
+ Q.
Manejo de archivos y directorios
deioc
• mv: mueve archivos de un origen a un destino. También se
puede usar para renombrar un archivo
• ln: crea un enlace a un archivo pérmitiendo que éste aparezca
con diferentes nombres. Realmente no hace una copia del
archivo.

ln programa.c prodMatrices.c
• rm: se utiliza para borrar archivos. Algunas de sus opciones
son:

-i pide confirmar antes de borrar

-f borra los ficheros incluso si están protegidos contra escritura siempre
que el comando lo ejecute el propietarios de los mismos

-r Borra los archivos de un directorio de manera recursiva
Otros comandos
deioc
• nohup: Permite que el programa se continúe ejecutando incluso cuando el usuario a
terminado su sesión. Ojo: este comando hace que la prioridad de la ejecución disminuye.
$ nohup program
• Time: Este comando precediendo a cualquier otro muestra información sobre el tiempo
total empleada en la ejecución
• Top: permite manipular la ejecución de programas de forma interactiva.
u: muestra los procesos que pertenecen a un determinado usuario
k: equivale al comando kill
Manejo de archivos y directorios
deioc

• Comodines: Son elementos utilizados en la shell para


abreviar el nombre de los archivos, permitiendo
especificar uno o más archivos.

* equivale a cualquier cadena de caracteres

? equivale a un único caracter
• ls: Lista el contenido del directorio actual o del que se
le pase como parámetro.
Redirección de la Entrada/Salida
deioc

• Es posible variar la entrada/salida estándar,


redirigiéndolas a un fichero, de la siguiente manera:

Con el operador > el shell envía la salida del comando al
fichero especificado.

$ ls > temp.txt

Con el operador >> el shell añade los datos especificados
sin eliminar los que ya existen

Para redirigir la entrada se utiliza el símbolo <, de manera
que el shell utiliza como entrada el archivo que se le pasa
como argumento

$ cat < archivo
Manejo de archivos y directorios
deioc
• head y tail muestran respectivamente las N primera y últimas líneas del
fichero (N parámetro que se le pasa) facilitado como argumento.
• more: pagina la salida de los archivos, mostrando una pantalla cada vez.
• mkdir: crea un directorio asignándole como nombre el que le pasemos
como argumento. si no se le pasa argumento nos llevará a nuestro
directorio home.

$mkdir informatica
• rmdir: elimina el directorio que se pase como argumento. Si el directorio
no está vacío no podremos eliminarlo de esta manera, para ello habría que
utilizar rm -r nombre_directorio
• cp: copia archivos de un origen a un destino

$cp programa.c /home/cande/crc/diferente.c
Manejo de archivos y directorios
deioc
• chmod: permite modificar los permisos asociados a los
ficheros. Para poder ejecutar este comando deberemos ser los
propietarios de los ficheros en cuestión. Existen diferentes
maneras de cambiar los permisos.
Primera alternativa
P1: Convertir los campos de protección a digitos binarios, usando 1 si se
desea activar dicho campo y 0 en caso contrario.
rwxr-xr-- es equivalente a 111101100
P2: Dividir la cadena obtenido en tres grupos de tres bits
111101100
P3: Convertir cada grupo al sistema octal
754
P4: El número obtenido es el argumento que se le pasa al comando
$ chmod 754 tutorias.txt
Manejo de archivos y directorios
deioc
Segunda altenativa: Se asigna a cada permiso de lectura, escritura y ejecución
de cada usuario, grupo y otros, un número de terminado, y se obtiene el
resultado del argumento final sumando dichos números.

Derecho de lectura del usuario: 400

Derecho de escritura del usuario: 200

Derecho de ejecución del usuario: 100

Derecho de lectura del grupo: 40

Derecho de escritura del grupo: 20

Derecho de ejecución del grupo: 10

Derecho de lectura de otros: 4

Derecho de escritura de otros: 2

Derecho de ejecución de otros: 1
Para obtener rwxr-xr-- tendríamos que sumar 400+200+100+
40+10 +4 = 754
Manejo de archivos y directorios
deioc
Tercera alternativa: Usar los símbolos + (activa) y – (desactiva) para cada
permiso especificando para quién se quiere cambiar el permiso, cómo se
quiere cambiar y cuál se quiere cambiar: ugo+/-rwx
$chmod u-w tutorias.txt
• Chown: cambia el propietario de un fichero
$chown propietario fichero
• Chgrp: cambia el grupo de un fichero
Otros comnados
deioc
• alias: permite definir abreviaciones para los comandos más utilizados.
$ alias lsa='ls -a #incluye los ficheros ocultos en el listado'
• mount: monta un sistema de archivos de manera que esté accesible para los usuarios.
$mount -t type device dir
• Umount
$umount dir device
• ps: Muestra los procesos en ejecución.
$ps -ucande
• &: manda el proceso especificado a ejecutarse en background, es decir se ejcuta en segundo
plano .
$ mozilla &
[1] 22377
• Kill: Detiene la ejecución del proceso que tiene como identificador el número que se pasa
como argumento
$ kill 22377
[cande@localhost cande]$
[1]+ Exit 15 mozilla
El editor de textos vi
deioc

Modo de comandos

Modo de inserción

Modo de última línea

También podría gustarte