PDF de programación - Lección 1: introducción al sistema operativo Linux

Imágen de pdf Lección 1: introducción al sistema operativo Linux

Lección 1: introducción al sistema operativo Linuxgráfica de visualizaciones

Publicado el 4 de Febrero del 2021
354 visualizaciones desde el 4 de Febrero del 2021
119,4 KB
20 paginas
Creado hace 14a (14/05/2009)
LECCIÓN 1: INTRODUCCIÓN AL SISTEMA OPERATIVO
LINUX

LECCIÓN 1: INTRODUCCIÓN AL SISTEMA OPERATIVO LINUX



......................................................................

1

LECCIÓN 1: INTRODUCCIÓN AL SISTEMA OPERATIVO LINUX



......................................................................

1

1.1 Génesis

.......................................................................................................................................................................

1



1.2 Arquitectura del núcleo

..............................................................................................................................................

2


1.3 Anatomia del núcleo


..................................................................................................................................................

4


7

1.4 Recorrido por el directorio de los fuentes de Linux

..................................................................................................



11


1.5 Utilización de una función del sistema operativo por un usuario

..........................................................................



Llamada al sistema: open


...............................................................................................................................................

11



Introducción Linux

LECCIÓN 1: INTRODUCCIÓN AL SISTEMA OPERATIVO
LINUX

1.1 Génesis

El sistema operativo Linux se genera inspirándose en dos sistemas operativos, el
sistema abierto UNIX creado en 1969 por Ken Thompson y Dennis Ritchie en los
laboratorios de Bell. De este sistema se toman sus características, especificaciones
y funcionamiento. Mas el sistema educativo Minix creado en 1987 por Andrew S.
Tanenbaum del cual se toma la estructura y código del núcleo. Con todo esto en
1991 Linus Torvalds crea Linus’s Unix = Linux Kernel, esto es crea solo el núcleo
del sistema sin la capa de servidores, manejadores, aplicaciones graficas, etc que
serán creadas posteriormente por otros autores. El código del núcleo lo podemos
encontrar en la dirección (www.kernel.org). El núcleo actual tiene aproximadamente
1,5 millones de líneas de código, y representa menos del 50 por ciento de todo el
código del sistema.

En la comunidad de programadores se crea el proyecto GNU (Gnu’s Not Unix),
proyecto para generar software libre, donde se generan editores Emacs,
compiladores gcc, interprete de comandos bsh, sistema operativo Hurd,
aplicaciones, etc., bajo la licencia publica general GPL (General Public License),
usar, copiar, distribuir y modificar (con las mismas condiciones). Se conserva la firma
del autor. Se puede cobrar.

Linux se crea con esta filosofía de libre distribución y el sistema operativo completo
que se construye con este núcleo también. A todo el sistema se le da el nombre de
GNU/Linux (distribución completa del sistema operativo con Linux), que contiene el
núcleo (1,5 millones de líneas de código) mas las otras capas del sistema operativo
y utilidades. Si bien muchas veces se denomina a todo el sistema simplemente
LINUX.



CARACTERISTICAS DEL NÚCLEO

- Su código es de libre uso.
- Escrito en lenguaje C, compilado con gcc, primera capa en ensamblador.
- Ejecutable en varias plataformas hardware.
- Se ejecuta en máquinas con arquitectura de 32 bits y 64 bits.
- Estaciones de trabajo y servidores.
- Código y funcionamiento escrito bajo la familia de estándares POSIX

(Portable Operating System Interface).

- Soporta CPU’s con uno o varios microprocesadores (SMP) symmetric

multiprocessing.

- Multitarea.
- Multiusuario.
- Gestión y protección de memoria.

Universidad de Las Palmas de Gran Canaria

1-1

Introducción Linux

Librerías compartidas y dinámicas.

- Memoria virtual.
- Varios sistemas de ficheros.
- Comunicación entre procesos (señales, pipes, IPC, sockets).
-
- Permite trabajar en red TCP/IP.
- Soporte grafico para interfase con el usuario.
- Estable, veloz, completo y rendimiento aceptable.
-
- Mas de 100.000 usuarios.
- Actualizado, mejorado, mantenido y ampliado por la comunidad de usuarios

Funcionalmente es muy parecido a UNIX.

(modelo “bazar”, contrapuesto al modelo “catedral”).

1.2 Arquitectura del núcleo

Veamos los objetivos mas importantes que se han tenido en cuenta a la hora de
diseñar el núcleo, basados en claridad, compatibilidad, portabilidad, robusto, seguro
y veloz.

CLARO
Claridad y velocidad son dos objetivos normalmente contrapuestos. Los diseñadores
suelen sacrificar claridad por velocidad. La claridad complementa la robustez del
sistema y facilita la realización de cambios y mejoras. Podemos encontrar reglas de
estilo en el fichero /usr/src/Documentation/CodingStyle.

COMPATIBLE
Diseñado bajo la normativa POSIX. Soporta ejecutar ficheros Java. Ejecuta
aplicaciones DOS, con el emulador DOSEMU. Ejecuta algunas aplicaciones
Windows a través del proyecto WINE. Se mantiene compatibilidad con ficheros
Windows a través de los servicios SAMBA. Soporta varios sistemas de ficheros
ext2 y ext3 (sistemas de ficheros nativos),ISO-9660 usado sobre los CDROMs,
MSDOS, NFS (Network File System), etc. Soporta protocolo de redes TCP/IP,
soporta protocolo de AppleTalk (Macintosh), también protocolos de Novell IPX
(Internetwork Packet Exange), SPX (Sequenced Packet Exange), NCP (NetWare
Core Protocol), y IPv6 la nueva versión de IP. Mantiene compatibilidad con una
variedad de dispositivos hardware.

MODULAR
El núcleo define una interfaz abstracta a los subsistemas de ficheros denominada
VFS (Virtual File System Interface), que permite integrar en el sistema varios
sistemas de ficheros reales. También mantiene una interfase abstracta para
manejadores binarios, y permite soportar nuevos formatos de ficheros ejecutables
como Java.

PORTABLE
Mantiene una separación entre código fuente dependiente de la arquitectura y
código fuente independiente de la arquitectura, que le permite ejecutar Linux en
diversas plataformas como Intel, Alpha, Motorola, Mips, PowerPC, Sparc,

Universidad de Las Palmas de Gran Canaria

1-2

Introducción Linux

Macintoshes, Sun, etc. Existen versiones del núcleo especificas para portatiles, y
PAD’s.

ROBUSTO Y SEGURO
El disponer de los fuentes, permite a la comunidad de usuarios modificar los errores
detectados y mantener el sistema constantemente actualizado. Dispone de
mecanismos de protección para separar y proteger los programas del sistema de los
programas de los usuarios. Soporta cortafuego para protección de intrusos.

VELOZ
Este es el objetivo mas demandado por los usuarios, si bien no suele ser un objetivo
crucial. El código está optimizado así encontramos la primera capa del núcleo escrita
en ensamblador.


VISTA MODULAR DEL NÚCLEO

Una primera división del núcleo podemos establecerla atendiendo a:





código dependiente del hardware; primera capa, (ficheros: arch/i386/…,
include/asm-i386/…); manejadores.

código independiente del hardware (fs, mm, …).

La interfase entre los usuarios y el núcleo se establece a través de la librería del
sistema libc, contiene los procedimientos y utilidades que permiten a los programas
de usuarios comunicarse con el s.o. por medio de las llamadas al sistema (system
call).

librería del sistema libc:
forma usual de comunicarse los programas de
usuarios con el s.o. a través de las llamadas al sistema
(system call).

código independiente del hardware (fs, mm, …)

Aplicaciones de usuario

Librería del S.O. libc, libm

modo
usuario

Módulos del núcleo
independientes del

hardware

código dependiente del hardware; primera capa, (ficheros:
arch/i386/…, include/asm-i386/…); manejadores

Módulos del núcleo
dependientes del hardware

modo
núcleo

Controladores

Hardware

Universidad de Las Palmas de Gran Canaria

1-3

Introducción Linux

1.3 Anatomia del núcleo

A nivel funcional

Aplicaciones de usuario

Librería del S.O. libc, libm

modo
usuario

Inicio

Sistema

Interfase de Llamadas al Sistema

Manejador
Memoria

Sistema
Ficheros

Sistema
de Red

Manejadores
Dispositivos

Comunicación

Procesos

Gestion
CPU

modo
núcleo

Controladores

Hardware

La interacción o solicitud de un servicio por parte de un programa de usario, sigue
los siguientes pasos:

1. El usuario en su programa solicita una función de la librería libc.

2.

la función de libc, hace una llamada al núcleo a través de una llamada
(syscall).

3. el núcleo recibe esa llamada mediante una función (system call).

4. el núcleo redirige esta llamada a los módulos implicados que a su vez llaman

a otros hasta llegar al hardware y realizar la solicitud del usuario.

5. el núcleo hace llegar a la aplicación del usuario el resultado de su solicitud.

Univers
  • Links de descarga
http://lwp-l.com/pdf18814

Comentarios de: Lección 1: introducción al sistema operativo Linux (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad