class: center, middle, inverse, title-slide .title[ # Linux, Google Earth Engine y aplicaciones de análisis espacial con Python y R, nivel básico ] .subtitle[ ## Tema 1. Linux o GNU/Linux: kernel, filosofía, distros, terminal, estructura ] .author[ ### José Martínez ] .institute[ ### Universidad Autónoma de Santo Domingo (UASD) ] .date[ ### Actualizado: 2025-07-21 ] --- class: center, middle background-image: url(img/fondo.jpg) # Linux, Google Earth Engine y aplicaciones de análisis espacial con Python y R, nivel básico ## Tema 1. Linux o GNU/Linux: kernel, filosofía, distros, terminal, estructura ### *José Martínez* --- # Objetivos - Entender qué es GNU/Linux y su filosofía de software libre - Conocer la diferencia entre el kernel Linux y las distribuciones completas, así como la importancia del software libre en la comunidad de desarrollo. - Conocer la estructura básica de un sistema GNU/Linux, incluyendo el kernel y la shell. - Diferenciar entre el kernel Linux y las distribuciones completas (distros). - Explorar las principales distribuciones de Linux y sus características. - Evaluar las diferentes estrategias para usar Linux desde Windows, considerando las necesidades del curso. --- - **¿Qué es GNU/Linux?** - Introducción al sistema operativo GNU/Linux como una combinación del kernel Linux con las herramientas del proyecto GNU. - Distinción entre Linux (núcleo) y distribuciones completas (distros). - Enfoque en su naturaleza libre y de código abierto. --- - **Filosofía del software libre y código abierto** - Las 4 libertades del software libre (usar, estudiar, modificar, redistribuir). - Contraste con software propietario. - Importancia de la comunidad en el desarrollo de Linux. --- - **¿Por qué usar Linux en ciencia y análisis espacial?** - Estabilidad, seguridad, reproducibilidad, trazabilidad, automatización, compatibilidad con herramientas geoespaciales de alto nivel (R, Python, GDAL, QGIS, GEE API, etc.). --- - **Kernel y shell** - Breve introducción a la estructura de un sistema GNU/Linux: el kernel (núcleo) como gestor de recursos, y la shell (ej. bash, zsh) como interfaz de usuario. - Diferencia entre interfaz gráfica y terminal. --- # Estructura básica del sistema de archivos - Linux organiza los archivos en una estructura jerárquica con una única raíz: `/` - Directorios principales: - `/home`: archivos personales de los usuarios - `/etc`: configuración del sistema - `/bin`, `/sbin`: comandos y utilidades esenciales - `/usr`: aplicaciones y librerías de usuario - `/var`: archivos que cambian constantemente (logs, caché, etc.) - `/tmp`: archivos temporales - `/dev`: dispositivos del sistema - Todo es tratado como archivo: incluso discos, procesos y dispositivos. --- # Terminal: puerta de entrada al control total - La **terminal** es una interfaz de texto para comunicarse con el sistema. - Se accede a través de una **shell**, típicamente `bash`. - Ventajas frente a la interfaz gráfica: - Permite automatizar tareas - Proporciona acceso completo al sistema - Es más ligera y rápida - Es el entorno natural para R, Python, GEE CLI y scripts - Ejemplos básicos de comandos: ``` bash pwd # Mostrar ruta actual ls # Listar archivos cd # Cambiar de directorio nano # Editor de texto simple sudo apt update # Actualizar lista de paquetes ``` --- - **Distribuciones de Linux** - Presentación de las distribuciones más comunes (Ubuntu, Debian, Fedora, Arch, Linux Mint, etc.). - Mención especial a distros ligeras para equipos modestos (Lubuntu, Xubuntu). - Diferencias entre entornos de escritorio (GNOME, KDE, XFCE). --- - **Estrategias para usar Linux desde Windows** Tabla comparativa de opciones (WSL2, máquina virtual, USB booteable, Colab, Docker, servidor remoto) ya desarrollada. Se discute cómo elegir una opción adecuada según el tipo de equipo, recursos disponibles y objetivos del curso. --- <div style="margin-left:-2em; margin-right:-2em; font-size:85%"> ## Opciones para crear un entorno Linux en Windows (1) | Opción | Nombre | Descripción | Requisitos | Ventajas | Desventajas | |--------|--------|-------------|------------|----------|-------------| | 1 | WSL2 (Windows Subsystem for Linux) | Instalación de Linux dentro de Windows con integración directa | Windows 10/11 (2004+), virtualización activada, acceso de administrador | Rápido, liviano, buena integración con Windows, permite usar Bash, Conda, R, Python, GEE CLI | Requiere configuración previa, no soporta GUI completa como QGIS | | 2 | Máquina virtual con VirtualBox | Imagen de Ubuntu o similar preconfigurada para ejecutar en VirtualBox | VirtualBox instalado, mínimo 4 GB de RAM, 20 GB de espacio | Entorno uniforme para todos, se puede incluir RStudio, Python, GEE | Pesado, requiere descarga de imagen (~4–8 GB), rendimiento menor en equipos lentos | | 3 | USB booteable con Linux persistente | Sistema Linux completo en una memoria USB con persistencia de datos | Pendrive ≥16 GB, BIOS que permita boot desde USB | Portabilidad total, no afecta Windows, entorno preinstalado | Puede requerir desactivar Secure Boot, arranque variable según el equipo | --- <div style="margin-left:-2em; margin-right:-2em; font-size:85%"> ## Opciones para crear un entorno Linux en Windows (2) | Opción | Nombre | Descripción | Requisitos | Ventajas | Desventajas | |--------|--------|-------------|------------|----------|-------------| | 4 | Google Colab + RStudio Cloud | Entornos Linux basados en la nube accesibles por navegador | Conexión a internet estable, cuenta de Google | Sin instalación, acceso inmediato, ideal para GEE y Python, también soporta R | Dependencia total de internet, sin soporte de interfaz gráfica (e.g. QGIS) | | 5 | Servidor JupyterHub o RStudio Server | Acceso web a un servidor con entorno Linux centralizado | Red local o servidor en la nube, configuración previa del servidor | Control total del entorno, consistente para todos, ideal para prácticas dirigidas | Necesita configuración técnica, requiere red funcional para acceso | | 6 | Docker | Contenedores que simulan entornos Linux aislados dentro de Windows | Windows 10/11, Docker Desktop instalado, WSL2 habilitado | Portabilidad de entornos, reproducibilidad, fácil compartir imágenes preconfiguradas (e.g. WebODM) | Curva de aprendizaje, requiere recursos del sistema, no siempre apto para usuarios sin experiencia | --- - **Casos de uso reales** Ejemplos en investigación ambiental, educación, cartografía, análisis espacial reproducible, estaciones meteorológicas DIY, etc.