Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
Puede solicitar gratuitamente las soluciones a todas las actividades en el email [email protected] Capacidades que se adquieren con este Manual: - Analizar las especificaciones técnicas proporcionadas para el desarrollo a realizar, comprobando su validez y optimización. - Desarrollar elementos software destinados a la gestión de los recursos del sistema, mediante herramientas y lenguajes de programación de sistemas.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 170
Veröffentlichungsjahr: 2025
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
Desarrollo y optimización de componentes software para tareas administrativas. UF1286.
Autora: Beatriz Coronado García.
© EDITORIAL TUTOR FORMACIÓN
C/ San Millán, 7, bajo 10
26004 Logroño (La Rioja)
Tlf. 610687276
Email: [email protected]
Web: https://tutorformacion.es o https://editorial.tutorformacion.es
Edición: 2025
ISBN: 979-13-87566-22-7
Depósito legal: LR 24-2025
Reservados todos los derechos de publicación en cualquier idioma.
Según el código penal vigente ninguna parte de este o cualquier otro libro puede ser reproducida, grabada en alguno de los sistemas de almacenamiento existentes o transmitida por cualquier procedimiento, ya sea electrónico, mecánico, reprográfico, magnético o cualquier otro, sin autorización previa y por escrito de D. Miguel Ángel Ladrón Jiménez; su contenido está protegido por la ley vigente que establece penas de prisión y/o multas a quienes intencionadamente reprodujeren o plagiaren, en todo o en parte, una obra literaria, artística o científica.
Portada diseñada por FreePik
Contenido
Introducción
Descripción de los servicios, estructura y administración de Sistemas Operativos.
1.Definición y conceptos básicos sobre Sistemas Operativos.
1.1.Descripción de los servicios básicos ofrecidos por un Sistema Operativo.
1.2.Gestión de memoria. Memoria virtual.
1.3.Ejecución de programas y gestión de procesos.
1.4.Gestión del almacenamiento. Sistemas de Archivos.
1.5.Gestión de dispositivos de entrada/salida.
1.6.Gestión de red.
1.7.Gestión de errores.
1.8.Gestión de la seguridad.
1.9.Auditoría (logs del sistema).
1.10.Procesos de arranque (boot) y finalización del sistema (shutdown).
2.Características estructurales de los Sistemas Operativos.
2.1.Sistemas monolíticos.
2.2.Microkernels.
2.3.Sistemas modulares y por capas.
2.4.Máquinas virtuales.
2.5.Sistemas distribuidos.
3.Herramientas administrativas de uso común en Sistemas Operativos.
3.1.Interfaces de usuario gráficos.
3.2.Intérpretes de comandos.
4.Prueba de autoevaluación
Programación de sistemas operativos. Lenguajes y librerías de uso común.
1.Las llamadas al sistema (System Calls).
1.1.Definición.
1.2.Uso directo y mediante Application Programming Interfaces (APIs).
1.3.Principales tipos de llamadas al sistema.
1.4.Descripción y uso de las APIs estándar de uso común para llamadas a sistema.
2.Programas de utilidades y comandos del sistema.
2.1.Principales tipos.
2.2.Uso de utilidades y comandos mediante lenguajes de script de uso común.
3.Prueba de autoevaluación.
El ciclo de vida del software de gestión de sistemas
1.Modelos del ciclo de vida del software.
1.1.En cascada (waterfall).
1.2.Iterativo.
1.3.Incremental.
1.4.En V.
1.5.Basado en componentes (CBSE).
1.6.Desarrollo rápido (RAD).
1.7.Ventajas e inconvenientes. Pautas para la selección de la metodología más adecuada.
2.Descripción de las fases en el ciclo de vida del software.
2.1.Análisis y especificación de requisitos.
2.2.Diseño.
2.3.Implementación. Conceptos generales de desarrollo de software.
2.4.Validación, verificación y pruebas.
3.Calidad del software.
3.1.Principios de calidad del software.
3.2.Métricas y calidad del software.
3.3.Estándares para la descripción de los factores de calidad.
4.Prueba de autoevaluación.
Desarrollo del software de gestión de sistemas
1.Análisis de especificaciones para el desarrollo de software de gestión de sistemas.
1.1.Identificación de los componentes necesarios según las especificaciones.
1.2.Análisis de los componentes reutilizables.
1.3.Análisis de la integración de los componentes en la arquitectura del sistema.
1.4.Identificación de los modelos funcionales y de datos de los componentes.
2.Técnicas de programación presentes en lenguajes de uso común aplicables al desarrollo de software de gestión de sistemas.
2.1.Programación estructurada.
2.2.Programación orientada a objetos.
3.Técnicas de programación de software de gestión de sistemas.
3.1.Reutilización de código.
3.2.Técnicas específicas aplicables a los servicios básicos del sistema.
3.3.Técnicas de optimización.
4.Control de calidad del desarrollo del software de gestión de sistemas.
4.1.Métricas aplicables.
4.2.Verificación de requisitos.
4.3.Proceso de mejora continua.
5.Herramientas de uso común para el desarrollo de software de sistemas.
5.1.Editores orientados a lenguajes de programación.
5.2.Compiladores y enlazadores.
5.3.Generadores de programas.
5.4.Depuradores.
5.5.De prueba y validación de software.
5.6.Optimizadores de código.
5.7.Empaquetadores.
5.8.Generadores de documentación de software.
5.9.Despliegue de software.
5.10.De control de versiones.
5.11.Entornos integrados de desarrollo (IDE) de uso común.
6.Prueba de autoevaluación.
Resumen
Prueba de evaluación final
Este manual está diseñado para proporcionar una comprensión detallada y práctica sobre el desarrollo y optimización de componentes software destinados a la gestión administrativa de sistemas. A través de un enfoque estructurado, se abordan los fundamentos teóricos y prácticos necesarios para diseñar, implementar y mantener herramientas que soporten las tareas administrativas, garantizando eficiencia, fiabilidad y escalabilidad en entornos empresariales modernos.
En primer lugar, se explorarán los servicios básicos que ofrecen los sistemas operativos, fundamentales para comprender cómo interactúan con el software administrativo. Se describirán conceptos clave como la gestión de memoria, la ejecución de procesos, la gestión de almacenamiento y la administración de dispositivos de entrada/salida. También se analizará la importancia de la seguridad, la auditoría de sistemas y los procesos de arranque y apagado.
A continuación, se profundizará en las estructuras internas de los sistemas operativos, abordando modelos como los sistemas monolíticos, microkernels y distribuidos. Asimismo, se explicarán las herramientas administrativas más comunes, como los intérpretes de comandos y las interfaces gráficas, que son esenciales para la gestión eficiente de tareas.
El manual incluirá una sección dedicada a la programación para sistemas operativos, destacando el uso de llamadas al sistema y las APIs más relevantes (Win32, POSIX y Java API), así como las técnicas de scripting en entornos Windows y Linux/Unix. Estas habilidades permitirán a los lectores desarrollar software especializado que interactúe directamente con el sistema operativo.
Por último, se presentarán las mejores prácticas para el ciclo de vida del software administrativo, desde el análisis de requisitos y diseño hasta la implementación, pruebas y mantenimiento. Se explicará cómo aplicar técnicas de programación estructurada y orientada a objetos, optimizar el rendimiento de los sistemas y garantizar la calidad del software a través de métricas y estándares internacionales.
Este contenido está orientado a profesionales y estudiantes que desean adquirir competencias en el desarrollo de soluciones software para la administración de sistemas. Combinando teoría y práctica, los lectores estarán preparados para afrontar los retos actuales de la gestión de sistemas, alineándose con las normativas vigentes y las demandas tecnológicas de 2025.
A continuación, se presenta un glosario de términos clave relacionados:
ACL (Listas de Control de Acceso): Conjunto de reglas que determinan quién tiene acceso a qué recursos en un sistema.Administrador de tareas: Herramienta para supervisar y gestionar procesos y recursos en ejecución en un sistema operativo.Administrador del sistema (sysadmin): Persona encargada de instalar, configurar, mantener y supervisar los sistemas informáticos y servidores en una organización.Algoritmo de encriptación: Conjunto de reglas matemáticas usadas para cifrar y descifrar datos.Análisis de logs: Proceso de revisión y extracción de información valiosa de los registros del sistema.Análisis de rendimiento: Evaluación del uso de recursos de un sistema para optimizar su eficiencia.Ansible: Herramienta de automatización para configurar sistemas y desplegar software.API (Interfaz de Programación de Aplicaciones): Conjunto de herramientas y definiciones que permite a aplicaciones interactuar entre sí.Auditoría de sistemas: Proceso de registro y análisis de eventos y actividades en un sistema para garantizar la seguridad y el cumplimiento de normas.Backup (copia de seguridad): Proceso de duplicar datos para protegerlos frente a fallos del sistema o pérdida.Balanceo de carga: Técnica para distribuir equitativamente la carga de trabajo entre varios servidores.Balanceo de red: Método para distribuir tráfico entre varias conexiones o interfaces de red.Base de datos relacional: Sistema de almacenamiento que organiza datos en tablas con relaciones predefinidas.Bash: Intérprete de comandos para sistemas Unix/Linux.BIOS (Sistema Básico de Entrada/Salida): Firmware que inicia el hardware de un ordenador antes de cargar el sistema operativo.BIOS POST (Power-On Self-Test): Prueba inicial realizada por el BIOS al encender el sistema para verificar el hardware.BIOS UEFI: Interfaz moderna que reemplaza el BIOS tradicional, con soporte para sistemas más avanzados.Broker de mensajes: Componente intermedio que facilita el intercambio de mensajes entre aplicaciones.Bucle infinito: Condición en un programa que no permite su finalización debido a una lógica incorrecta.Buffer: Espacio en memoria utilizado para almacenar temporalmente datos durante su transferencia entre procesos.Caché: Memoria de alta velocidad que almacena datos frecuentemente utilizados para acelerar el acceso.Capacidad de procesamiento: Habilidad de un sistema para manejar datos y operaciones simultáneas.Certificado digital: Documento electrónico que autentica la identidad de una entidad y permite comunicaciones seguras.Cheksum (suma de verificación): Valor calculado para verificar la integridad de los datos.Ciclo de vida del software: Serie de fases en el desarrollo de software, desde su concepción hasta su retirada.CLI (Interfaz de Línea de Comandos): Medio para interactuar con sistemas operativos mediante texto.CLI Pipeline: Uso de tuberías para redirigir la salida de un comando como entrada a otro en la CLI.Cliente-servidor: Modelo de red en el que un cliente solicita servicios a un servidor.Cloud Computing: Modelo de entrega de recursos informáticos a través de internet.Cluster: Conjunto de computadoras interconectadas que trabajan como un único sistema.Compilador: Herramienta que convierte código fuente en código ejecutable.Concurrencia: Capacidad de un sistema para ejecutar múltiples procesos simultáneamente.Configuración basada en roles: Gestión de permisos asignados según las funciones de los usuarios.Configuración: Proceso de establecer parámetros para que un sistema funcione correctamente.Conmutación por error (failover): Mecanismo para cambiar automáticamente a un sistema de respaldo en caso de fallo.Contenedores: Tecnología de virtualización ligera para empaquetar y ejecutar aplicaciones.Control de acceso: Restricción de acceso a sistemas o datos según privilegios definidos.Control de versiones distribuido: Sistema de gestión de versiones en el que cada usuario tiene una copia completa del repositorio.Controlador de dominio: Servidor que gestiona autenticación y permisos en una red Windows.CPU (Unidad Central de Procesamiento): Componente principal del ordenador encargado de ejecutar instrucciones.Criptografía asimétrica: Método de cifrado que utiliza claves públicas y privadas para asegurar la comunicación.Criptografía simétrica: Método de cifrado en el que se utiliza la misma clave para cifrar y descifrar datos.Crontab: Archivo donde se definen tareas programadas en sistemas Unix/Linux.Daemon: Proceso que se ejecuta en segundo plano para realizar tareas específicas en sistemas Unix/Linux.Daemonset: Controlador en Kubernetes que asegura que cada nodo ejecuta una copia específica de un pod.Datos volátiles: Información almacenada temporalmente y que se pierde al apagar el sistema.Debugging (depuración): Proceso de identificación y corrección de errores en software.Dependencias: Conjunto de bibliotecas o recursos necesarios para que un software funcione.Desfragmentación: Proceso de reorganizar datos en un disco para optimizar el acceso.Despliegue continuo: Práctica de implementar cambios en software de manera automatizada y frecuente.DevOps: Conjunto de prácticas que combinan desarrollo de software y operaciones de TI para acortar ciclos de desarrollo.Directorio activo (Active Directory): Servicio de Microsoft para gestionar usuarios, permisos y recursos en redes empresariales.Directorio raíz: Punto inicial del sistema de archivos en un sistema operativo.DNS (Sistema de Nombres de Dominio): Servicio que traduce nombres de dominio en direcciones IP.Docker Compose: Herramienta para definir y gestionar aplicaciones con múltiples contenedores Docker.Docker: Plataforma para desarrollar, enviar y ejecutar aplicaciones dentro de contenedores.E/S sin bloqueo: Operaciones de entrada/salida que no detienen la ejecución de un programa mientras se procesan.Eficiencia computacional: Medida del rendimiento de un sistema respecto a los recursos utilizados.Endpoint: Punto de conexión para acceder a un recurso o servicio en red.Enrutador (router): Dispositivo que dirige el tráfico de datos entre redes.Entorno de desarrollo integrado (IDE): Software que combina herramientas de desarrollo en una sola interfaz.Entorno de pruebas: Configuración controlada para validar el funcionamiento de software.Escalabilidad: Capacidad de un sistema para manejar incrementos en la carga de trabajo.Especificaciones del sistema: Detalles técnicos que describen las capacidades del hardware y software.Esquema de particionamiento: Organización del espacio de almacenamiento en secciones lógicas.Estado de conexión: Información mantenida sobre el estado actual de una conexión de red.Firewall: Sistema que controla el tráfico de red basado en reglas de seguridad.Firewalld: Herramienta para gestionar cortafuegos dinámicos en sistemas Linux.Fragmentación de memoria: Ineficiencia en el uso de memoria debido a la distribución desordenada de bloques.FS (Sistema de Archivos): Estructura que organiza y almacena datos en un dispositivo de almacenamiento.Gestión de dependencias: Proceso de asegurar que todas las librerías necesarias están presentes y actualizadas.Gestión de memoria: Proceso de asignación y control del uso de memoria por los programas.Gestión de procesos: Supervisión y control de programas en ejecución en un sistema operativo.Gestión de tareas cron: Sistema en Unix/Linux para programar tareas automatizadas.Gestor de paquetes: Herramienta para instalar, actualizar y eliminar software en un sistema.Git: Sistema de control de versiones para gestionar proyectos de desarrollo de software.GNU/Linux: Familia de sistemas operativos basados en el kernel Linux y software GNU.Grupo de afinidad: Configuración en sistemas virtuales para optimizar la ubicación de máquinas virtuales en nodos físicos.Hardware: Componentes físicos de un sistema informático.Hash: Valor único generado a partir de datos para verificar su integridad.HDFS (Hadoop Distributed File System): Sistema de archivos distribuido diseñado para grandes volúmenes de datos.Heap: Segmento de memoria usado para la asignación dinámica en tiempo de ejecución.Hilo de ejecución (thread): Unidad de procesamiento más pequeña que un proceso.Hipervisor: Software que permite crear y gestionar máquinas virtuales.HTTP Keep-Alive: Técnica que reutiliza conexiones para múltiples solicitudes HTTP.HTTPS: Protocolo seguro para transferir datos en la web mediante cifrado.I/O (Entrada/Salida): Operaciones de transferencia de datos entre un sistema y su entorno.Integridad de datos: Garantía de que los datos son precisos, consistentes y no han sido alterados.Interfaz gráfica de usuario (GUI): Método para interactuar con sistemas operativos mediante gráficos e iconos.IP privada: Dirección IP utilizada dentro de redes internas no accesibles desde internet.IP pública: Dirección IP accesible desde cualquier lugar en internet.ISO/IEC 25000 (SQuaRE): Conjunto de estándares internacionales para evaluar la calidad del software.JSON Web Token (JWT): Formato de token compacto y seguro para autenticar y compartir información.Kernel: Núcleo del sistema operativo encargado de interactuar con el hardware.Kubernetes: Plataforma para automatizar la gestión de contenedores en clústeres.LAN (Red de Área Local): Red que conecta dispositivos en un área limitada, como una oficina.Latencia de red: Tiempo que tarda un paquete de datos en viajar de origen a destino.Latency (latencia): Retraso en la transferencia de datos en una red.Logs: Registros de eventos y actividades en un sistema.Loopback: Dirección de red utilizada para pruebas locales (127.0.0.1).Machine Learning: Rama de la inteligencia artificial que permite a los sistemas aprender de los datos.Memoria intermedia: Espacio temporal para almacenar datos en tránsito entre dos componentes.Memoria virtual: Técnica que permite usar espacio en disco como memoria adicional.Microkernel: Arquitectura de sistema operativo con funciones básicas minimizadas.Middleware: Software que actúa como intermediario entre aplicaciones o sistemas.Monitor de red: Herramienta para supervisar la actividad y el tráfico de una red.Monitorización de logs: Seguimiento continuo de registros de eventos para identificar problemas.Montaje de sistema de archivos: Proceso de conectar un sistema de archivos al árbol de directorios.Multitarea: Capacidad de un sistema para ejecutar múltiples procesos a la vez.Multiusuario: Característica de un sistema operativo que permite a múltiples usuarios operar simultáneamente.Mutex (exclusión mutua): Herramienta para prevenir accesos simultáneos a un recurso compartido.Mutex: Objeto usado para gestionar acceso exclusivo a recursos compartidos en sistemas concurrentes.Namespace: Espacio aislado que separa recursos en sistemas Linux y Kubernetes.NAT (Traducción de Direcciones de Red): Técnica que permite usar direcciones IP privadas para comunicarse con redes externas.NFS (Sistema de Archivos de Red): Protocolo para compartir archivos entre sistemas en red.NIC (Tarjeta de Red): Dispositivo que conecta un sistema a una red.Nodo: Unidad dentro de una red o clúster que realiza tareas específicas.Nube híbrida: Infraestructura que combina recursos de nube pública y privada.Operaciones atómicas: Acciones indivisibles que se completan completamente o no se realizan en absoluto.Optimización de consultas: Proceso de mejorar el rendimiento de una base de datos al ejecutar solicitudes.OS (Sistema Operativo): Software que gestiona el hardware y proporciona servicios a las aplicaciones.Overhead: Recursos adicionales requeridos por un sistema para realizar operaciones.Paginación: Técnica de gestión de memoria que divide la memoria en bloques de tamaño fijo.Parche de seguridad: Actualización de software diseñada para corregir vulnerabilidades.Patrón de diseño: Solución reutilizable a problemas comunes en el desarrollo de software.Permisos de usuario: Reglas que determinan el nivel de acceso de cada usuario a recursos del sistema.Persistencia de datos: Mecanismo para asegurar que los datos permanezcan disponibles después de un reinicio.PID (ID de Proceso): Número único asignado a cada proceso en ejecución.Pila TCP/IP: Conjunto de protocolos que permite la comunicación en redes.Pipeline: Serie de pasos o tareas encadenadas en un flujo de trabajo.Pipelining: Técnica que permite realizar múltiples solicitudes HTTP antes de recibir una respuesta.Política de contraseña: Reglas establecidas para definir la complejidad y validez de contraseñas en un sistema.POSIX: Conjunto de estándares que garantizan la compatibilidad entre sistemas Unix.Privilegios mínimos: Principio de seguridad que restringe los permisos al nivel más bajo necesario.Proceso: Programa en ejecución que interactúa con el sistema operativo.Protocolo: Conjunto de reglas que define cómo se comunican los sistemas en red.Puertos de red: Identificadores que permiten la comunicación entre dispositivos en una red.QoS (Calidad de Servicio): Medida del rendimiento de una red o sistema.QoS (Calidad del Servicio): Mecanismos para priorizar ciertos tipos de tráfico en una red.RAID: Tecnología que combina múltiples discos para mejorar el rendimiento o la redundancia.RAM (Memoria de Acceso Aleatorio): Memoria temporal utilizada para ejecutar procesos.RAM compartida: Memoria utilizada simultáneamente por múltiples procesos.Redundancia: Duplicación de recursos para aumentar la disponibilidad y fiabilidad.Registros de auditoría: Documentación de actividades realizadas en un sistema para fines de seguridad y análisis.Regla iptables: Conjunto de configuraciones para controlar el tráfico en un cortafuegos de Linux.Reinicio caliente: Reinicio de un sistema sin apagarlo completamente.Repositorio Git: Espacio de almacenamiento donde se guardan las versiones del código fuente.Repositorio: Almacén centralizado de código o datos.SaaS (Software como Servicio): Modelo en el que el software se entrega a través de internet y se paga por uso.Scripting: Creación de scripts o programas pequeños para automatizar tareas.Segmentación: Técnica de gestión de memoria que divide el espacio en segmentos lógicos.Segmento de red: Parte de una red separada físicamente o por configuraciones lógicas.Servidor: Sistema que proporciona servicios a otros sistemas o usuarios.Shell: Intérprete que permite al usuario interactuar con el sistema operativo.SMTP: Protocolo para enviar correos electrónicos.Snapshot (instantánea): Copia de un sistema o conjunto de datos en un estado particular en el tiempo.SNMP: Protocolo para gestionar y supervisar dispositivos en una red.Socket: Punto de conexión para la comunicación entre procesos.SSH (Secure Shell): Protocolo para acceder de forma segura a sistemas remotos.SSL/TLS: Protocolos de cifrado para la comunicación segura en redes.Swap: Espacio en disco utilizado como memoria adicional cuando se agota la RAM.Swapping: Intercambio de procesos entre la memoria y el disco.Syscall (Llamada al sistema): Solicitud de un programa al sistema operativo para realizar una operación.Tabla de enrutamiento: Conjunto de reglas que determinan cómo se dirigen los paquetes de red hacia su destino.TCP/IP: Conjunto de protocolos para la comunicación en redes.Thread (Hilo): Unidad básica de ejecución dentro de un proceso.UML (Lenguaje Unificado de Modelado): Lenguaje estándar para modelar sistemas.Usuario root: Usuario con privilegios administrativos en un sistema Unix/Linux.Virtual host: Configuración que permite alojar múltiples dominios en un solo servidor.Virtual LAN (VLAN): Segmentación lógica de una red para separar tráfico entre dispositivos sin depender de la ubicación física.Virtualización: Tecnología que permite ejecutar múltiples sistemas operativos en un único hardware.VM (Máquina Virtual): Entorno emulado que opera como un sistema independiente.VPN (Red Privada Virtual): Tecnología que permite conexiones seguras y privadas a través de redes públicas.Watchdog: Mecanismo que supervisa procesos y reinicia sistemas en caso de fallo.Zona de pruebas (sandbox): Entorno aislado para probar software o procesos sin afectar el sistema principal.