Читать книгу Sistema operativo GNU Linux - ManuelGuillermo Flórez - Страница 7
ОглавлениеPrefacio
El sistema operativo (SO) es el principal componente del software de un computador y se encarga de administrar los recursos del hardware de la máquina. Está compuesto por el núcleo (conocido como kernel en inglés) del sistema operativo, que contiene los módulos que administran el procesador, la memoria, los dispositivos de entrada/salida, el sistema de archivos y el software de red. Linux se originó del sistema operativo MINIX (versión de UNIX para PC), y fue creado por el finlandés Linus TORVALDS en 1991, con licencia GPL. Linux fue seleccionado como el kernel del proyecto GNU, liderado por Richard STALLMAN, y aunque su nombre es GNU/Linux, en la práctica se conoce como Linux.
Han existido diversas versiones del kernel Linux. La primera versión oficial 0.02 se lanzó en octubre de 1991. Otra como la 2.6.28 se lanzó en diciembre de 2008 y la última versión estable 4.10.12 se lanzó en abril de 2017. Esto confirma que es un software que evoluciona constantemente y con gran rapidez, mantenido por una comunidad mundial; entre los principales contribuyentes a este kernel se encuentran Google, Intel, Samsung, Red Hat y otros.
Linux se utiliza principalmente como el sistema operativo de máquinas servidores con gran confiabilidad y rendimiento, pero según la distro (distribución Linux) seleccionada puede servir para portátiles, tabletas, celulares, multimedia, entretenimiento, etc. Con este kernel se han desarrollado varias distribuciones. Entre las principales se encuentran la Debian, RedHat, CentOS, Fedora, Ubuntu, OpenSuse, Arch Linux (Rolling Release), Manjaro, Slackware, etc. Algunas tienen soporte comercial como Fedora (Red Hat) y Ubuntu (Canonical Ltda.); otras como Debian y Gentoo, son mantenidas por la comunidad mundial.
Las distribuciones contienen, además del kernel, el sistema de ventanas, el administrador de ventanas, el entorno gráfico de escritorio (Gnome o KDE), librerías, documentación, un sistema de empaquetamiento propio como DEB para Debian o RPM de Red Hat. La mayoría es software libre y dispone del lenguaje fuente, aunque hay algunas distribuciones que incluyen una parte de software privativo.
Objetivos
El propósito de este libro es presentar un material didáctico que incluya los principales temas del sistema operativo Linux, con énfasis en la parte práctica y pedagógica. Asimismo, se incluyen fundamentos teóricos que faciliten el aprendizaje, los cuales se han organizado en apartados de teoría, objetivos, autoevaluación, práctica y ejercicios; además, se refuerzan las temáticas con una amplia documentación en línea. Es un libro práctico de ayuda rápida para el aprendizaje, uso y administración del sistema operativo Linux.
¿A quiénes está dirigido?
El libro, cuya finalidad es facilitar el aprendizaje del sistema operativo Linux, es apropiado para estudiantes, docentes, administradores de servidores, ingenieros, profesionales y técnicos de la informática. En general, está dirigido a toda la comunidad que utiliza las TIC y que está interesada en aprender Linux
Organización
Este recurso didáctico está compuesto por catorce capítulos, cada uno de los cuales contiene una temática de Linux organizada en cinco partes: introducción y teoría del capitulo, objetivos, autoevaluación, práctica, ejercicios, anexos.
Las prácticas han sido probadas en su correcto funcionamiento con el uso de los últimos kernels sobre una distribución Debian. Las temáticas incluidas son:
I. Editores
Estudio del editor vim, prácticas con las principales funcionalidades, comandos, archivo de configuración, ejercicios, preguntas de evaluación; también se realizan ejemplos y ejercicios con el editor nano.
II. Entornos gráficos
Apartado orientado al entorno gráfico de Gnome, que es el estándar para la interfaz gráfica de los sistemas operativos Linux. Específicamente, se estudia Gnome 3.14, la vista de actividades, menús, ventanas, áreas de trabajo, barra de estado, múltiples entornos y la agilidad del uso del entorno mediante teclas rápidas shortcuts.
III. Máquinas virtuales
La virtualización es uno de los temas ineludibles en el área de la informática y uno de los componentes fundamentales en las arquitecturas de computación en la nube (cloud computing). Se presenta un enfoque teórico de los tipos de virtualización, además se realizan prácticas y ejercicios de instalación y configuración mediante el uso del monitor de máquinas virtuales VirtualBox.
IV. Instalación de Linux
Para su estudio en detalle se requiere de un curso completo, en este libro, el tema se enfoca en la instalación de una distribución Debian. Además, se hace énfasis en la configuración manual de las particiones del disco y en su organización como volúmenes lógicos o LVM (logical volume managment).
V. Comandos
Para los administradores es muy práctico usar comandos desde una terminal de caracteres, ya sea local o remota, por razones de velocidad, seguridad y agilidad para realizar tareas administrativas. Este capítulo se enfoca en la práctica de los principales comandos, tanto para usuarios como para administradores, entre los que se encuentran cd, mkdir, touch, ls, tar, chmod, chown, ps, psw, which, cron, find, adduser, vmstat, etc.
VI. Inicio del sistema y servicios
Aborda los diferentes niveles de ejecución, desde el "single" o monousuario hasta el multiusuario y el modo de ejecución por defecto. También trata la estructura, el encendido y apagado de los diferentes servicios en cada nivel e incluye una simulación de la implementación de un servicio.
VII. Gestión e instalación de aplicaciones
Incluye el estudio de repositorios para acceder a las aplicaciones precompiladas y con código fuente, así como las herramientas para la manipulación de la instalación, mantenimiento y eliminación. Se realizan prácticas con las principales herramientas para las distribuciones Debian: apt, dpkg, aptitude. Asimismo, se practica con la instalación de aplicaciones desde el código fuente mediante el uso de la herramienta make.
VIII. Procesos
Los procesos son los programas en ejecución que consumen recursos del computador. Las prácticas usan las herramientas ps y top para administrar y conocer los atributos de un proceso, el porcentaje de RAM que ocupa, el porcentaje de CPU que consume, la carga total del sistema o el grado de ociosidad de la CPU, la eliminación de procesos que ralentizan el sistema, etc.
IX. Compilación de programas, automatización de proyectos
Incluye prácticas de compilación y enlace del código fuente mediante el uso del compilador gcc, así como la construcción de librerías estáticas y librerías dinámicas para organizar el código ejecutable. Igualmente, se estudia la automatización del proceso de compilación y enlace a través de la herramienta make.
X. Compilación del kernel
Se plantean las estrategias para compilar un kernel y el procedimiento que se lleva a cabo para conseguir la fuente del kernel, y se revisa su configuración de acuerdo con las necesidades e implementación.
XI. Shell parte I.
Se presenta la historia del Shell y sus principales características como intérprete de comandos y como lenguaje de programación. Además, se elaboran los primeros scripts con las sentencias básicas del lenguaje y sentencias condicionales, se definen variables globales y locales, las variables del entorno y las variables del Shell. Igualmente, se trata el uso de los diferentes tipos de entrecomillado.
XII. Shell parte II.
Los ejercicios utilizan sentencias iterativas o bucles y los parámetros posicionales. Se elaboran guiones con estructuras cíclicas y manejo de la recursividad.
XIII. Shell parte III
Uso de la estructura Case, arreglos y funciones. También se estudia la herramienta gawk con ejemplos prácticos.
XIV. Llamadas al sistema
Las llamadas al sistema permiten la comunicación del usuario programador con el sistema operacional desde un lenguaje de programación. Se presenta el menú de llamadas, desde el lenguaje C, agrupadas por procesos, tiempo, archivos, entre otros, con su respectivo código fuente.
Capítulos
Los nombres de los capítulos indican al lector de manera intuitiva sobre su contenido; sin embargo, algunos temas tienen un grado de extensión y profundización mayor que otros, y por su importancia y su relativa complejidad requieren de mayor tiempo de estudio y práctica. En temas como máquinas virtuales, instalación de Linux, instalación de aplicaciones, Shell y, en general, en todos los capítulos, el texto está reforzado con las principales referencias a los sitios web encargados de su publicación y mantenimiento. Además, para el uso de comandos se dan las instrucciones precisas de consulta en el manual de referencia incorporado en el sistema. Cada tema es tan amplio que podría convertirse en un nuevo texto, por lo cual el enfoque del libro consiste en extraer y sintetizar de este mar de conocimientos los aspectos fundamentales que faciliten el aprendizaje, de tal manera que, al finalizar el curso, el estudiante sienta la experiencia con el sistema operativo Linux y disponga de una bibliografía para profundizar sus conocimientos.
Lo que no se incluye
No hace parte de este libro el estudio de las aplicaciones de la distribución Debian, pero se hace referencia a la página que contiene los manuales, su uso y documentación. Tampoco se incluye la interpretación del software fuente del sistema operativo, de los módulos y bibliotecas. En algunos temas como instalación de Linux e instalación de aplicaciones, las practicas están enfocadas a Debian. Los temas que son independientes del distro, tales como el Shell, Gnome, comandos, procesos, editores y máquinas virtuales, son funcionales en cualquier distribución.
Cláusula de no garantía
Todas las prácticas y demás ejercicios han sido probados en su correcto funcionamiento en el entorno Linux Debian; sin embargo, no se asume responsabilidad por cualquier tipo de daño ocasionado en su aplicación.
Convenciones tipográficas
<enter> | Oprimir la tecla <enter> ↵ |
| Tecla de retroceso o backspace |
X Y Z | Secuencia de comandos o secuencia de opciones de menú |
Ctrl+F2 | Oprimir las dos teclas en mención simultáneamente, nomenclatura insensible a mayúsculas o minúsculas |
Ctrl+Alt+F1 | Oprimir las tres teclas simultáneamente, nomenclatura insensible a mayúsculas o minúsculas |
// | El texto después de los dos slash se interpreta como comentarios del autor |
Negrita | Para hacer referencia a nombres de comandos, menús, nombres de aplicaciones, etc. Por ejemplo:Archivo Guardar // secuencia de comandos de menú |
Negrita monoespacio | Un texto escrito en negrita monoespaciado indica un comando que se ingresará por la terminal o también significa la combinación de dos o más teclasEjemplo: ls //escriba ls y después pulse la tecla <enter>Ejemplo: Ctrl+Alt+F1 //simultáneamente oprimir las teclas mencionadas |
Cursiva | Palabras que no se escriben tal cual está redactado, el usuario introduce un valor personalizado de acuerdo con las circunstancias, por ejemplo: less archivoarchivo se debe reemplazar por un nombre real de archivo del usuario |
Cursivas-negrita monoespaciado | Palabras que no se escriben tal cual está redactado, son variables que cambian de acuerdo con las circunstanciasPor ejemplo: estructura de una dirección de e_mail: nombre@proveedor |
Uso de corchetes [ ] | [ opción 1 | opción 2 | …. ]: para seleccionar una de varias opciones separadas por el símbolo | |
Uso de llaves { } | El contenido entre las llaves es opcional |
Uso de , o ; | Puntuación usada en algunos casos para delimitar la terminación de un comando, pero que no forma parte de este |
Nota o aclaración del tema | |
Ejercicio propuesto antes de la sección general de ejercicios | |
Usar el teclado |