Herramientas Computacionales en Linux Antonio Carrillo Ledesma y Karla Ivonne González Rosas Facultad de Ciencias, UNAM http://academicos.fciencias.unam.mx/antoniocarrillo Una copia de este trabajo se puede descargar de la página: http://132.248.182.159/acl/hcl/ http://132.248.182.159/acl/Textos/ Con…namiento 2020, Versión 1.0 1 1El presente trabajo está licenciado bajo un esquema Creative Commons Atribución CompartirIgual (CC-BY-SA) 4.0 Internacional. Los textos que compo- nen el presente trabajo se publican bajo formas de licenciamiento que permiten la copia, la redistribución y la realización de obras derivadas siempre y cuando éstas se distribuyan bajo las mismas licencias libres y se cite la fuente. ¡Copiaeste libro! ... Compartir no es delito. Herramientas Computacionales en Linux Índice 1 Introducción 5 2 Sistemas Operativos 12 2.1 Windows .............................. 14 2.2 Mac OS .............................. 15 2.3 Android .............................. 17 2.4 Linux ............................... 20 2.5 Chrome OS y las Chromebook .................. 27 2.6 Otros ................................ 30 3 Trabajando con Debian GNU/Linux y sus Derivados 32 3.1 Sistema de Archivos y Estructura de Directorios ........ 32 3.2 Trabajando en Línea de Comandos ............... 37 3.3 Cómo buscar archivos ....................... 59 3.4 Monitorear el Desempeño .................... 66 3.5 Compresores y Descompresores de Archivos .......... 69 3.6 Copiar Archivos entre Equipos .................. 75 3.7 Interprete de Órdenes de Consola BASH ............ 78 3.8 Desde la Nube ........................... 86 4 Otras Herramientas en Línea de Comandos 91 4.1 Prompt de la Línea de Comandos ................ 91 4.2 Historia de Comados ....................... 96 4.3 Alias a Comandos ......................... 97 4.4 Ayuda de Comandos y Tipo de Archivos ............ 99 4.5 GNU Parallel ........................... 102 4.6 Convertir Archivos de Imágenes ................. 103 4.7 Manipulación de Archivos PDFs ................. 105 4.8 ¿Qué hacer para que mi GNU/Linux sea más seguro? ..... 115 4.9 Instalar, Actualizar y Borrar Paquetes ............. 119 4.10 Instalación de los Paquetes más Usados ............. 126 5 Lenguajes de Programación y Entornos de Desarrollo 137 5.1 Entornos de Desarrollo ...................... 137 5.1.1 Instalación de Java e IDEs en Debian GNU/Linux ... 140 5.1.2 Instalación de C y C++ e IDEs en Debian GNU/Linux 140 [email protected] 1 Antonio Carrillo Ledesma, Et alii Herramientas Computacionales en Linux 5.1.3 Instalación de Python e IDEs en Debian GNU/Linux . 141 5.2 Herramientas de Programación ................. 143 5.2.1 ¿Qué es eso de ASCII, ISO-8859-1 y UTF-8? ..... 145 5.2.2 Uso de Espacios o Tabuladores en Fuentes ....... 149 5.2.3 Comparar Contenido de Fuentes ............. 150 5.2.4 Astyle ........................... 151 5.2.5 Compilación y la Optimización del Ejecutable ..... 152 5.2.6 Análisis de Rendimiento ................. 153 5.2.7 Mejora del Rendimiento en Python ........... 156 5.2.8 Git ............................. 161 5.3 Programando Desde la Nube ................... 170 6 El Cómputo en Paralelo 174 6.1 Arquitecturas de Software y Hardware ............. 174 6.1.1 Clasi…cación de Flynn .................. 174 6.2 Categorías de Computadoras Paralelas ............. 178 6.2.1 Equipo Paralelo de Memoria Compartida ........ 178 6.2.2 Equipo Paralelo de Memoria Distribuida ........ 181 6.2.3 Equipo Paralelo de Memoria Compartida-Distribuida . 182 6.2.4 Cómputo Paralelo en Multihilos ............. 186 6.2.5 Cómputo Paralelo en CUDA ............... 187 6.3 Escalabilidad ........................... 192 6.4 Métricas de Desempeño ...................... 196 6.5 Programación de Cómputo de Alto Rendimiento ........ 200 6.5.1 Programando con OpenMP para Memoria Compartida 202 6.5.2 Programando con MPI para Memoria Distribuida ... 206 6.5.3 Esquema de Paralelización Maestro-Esclavo ...... 211 6.5.4 Opciones de Paralelización Híbridas ........... 213 7 Escritorios Remotos y Virtuales 215 7.1 Escritorio Remoto ......................... 215 7.1.1 Escritorio Remoto de Chrome .............. 216 7.2 Escritorio Virtual ......................... 219 7.2.1 Escritorios y Máquinas Virtuales con VNC ....... 220 8 Máquinas Virtuales 228 8.1 Tipos de Máquinas Virtuales ................... 229 8.2 Técnicas de Virtualización .................... 229 [email protected] 2 Antonio Carrillo Ledesma, Et alii Herramientas Computacionales en Linux 8.3 ¿Qué Necesito para Crear y Usar una Máquina Virtual? .... 230 8.4 ¿Cómo Funciona una Máquina Virtual? ............. 231 8.5 Aplicaciones de las Máquinas Virtuales de Sistema ....... 235 8.6 Ventajas y Desventajas ...................... 236 8.6.1 Ventajas .......................... 237 8.6.2 Desventajas ........................ 239 8.6.3 Consideraciones Técnicas y Legales de la Virtualización 240 8.7 Máquinas Virtuales en la Educación, Ciencias e Ingeniería .. 241 9 Creación, Uso y Optimización de Máquinas Virtuales Usando QEMU/KVM 244 9.1 Tipo de Virtualización Soportado por la Máquina Huésped .. 247 9.2 Salida Grá…ca de la Virtualización Usando VNC ........ 251 9.3 Usando un Sistema Operativo Live como una Máquina Virtual 253 9.4 Usando un Archivo ISO como una Máquina Virtual ...... 254 9.5 Creación de Máquinas Virtuales ................. 254 9.6 Uso de Virtualización Dentro de Otra Virtualización ...... 258 9.7 Manipulación del Estado de la Máquina Virtual ........ 259 9.8 Optimización de Imágenes .................... 259 9.8.1 Trabajar con una Imagen Virtual sin que se Altere .. 260 9.8.2 Aumento de Desempeño ................. 260 9.9 Uso de Máquinas Virtuales de VirtualBox en KVM/QEMU .. 264 9.10 Conversión de Máquinas Virtuales a KVM/QEMU ...... 265 9.11 Comunicación de las Máquinas Virtuales con el Sistema An- …trión e Internet ......................... 269 9.12 Signi…cado de las Banderas de /proc/cpuinfo .......... 273 10 Consideraciones y Comentarios Finales 279 10.1 Integración del Cómputo en las Carreras de Ciencias ..... 280 10.2 Ventajas, Desventajas y Carencias del Software Libre ..... 281 10.3 Comentarios Finales ....................... 282 11 Apéndice A: El Cómputo en Instituciones Educativas 285 12 Apéndice B: Software Libre y Propietario 289 12.1 Software Libre ........................... 289 12.1.1 Tipos de Licencias .................... 292 12.2 Software Propietario ....................... 294 [email protected] 3 Antonio Carrillo Ledesma, Et alii Herramientas Computacionales en Linux 12.3 Implicaciones Económico-Políticas ................ 296 13 Bibliografía 300 [email protected] 4 Antonio Carrillo Ledesma, Et alii Herramientas Computacionales en Linux 1 Introducción La Facultad de Ciencias de la Universidad Nacional Autónoma de México es una institución de educación superior que tiene como misión formar cientí…cos en las áreas de biología, física y matemáticas; realizar investigación y su difusión; hacer la divulgación que permita elevar sustancialmente la cultura cientí…ca del país; y propiciar la vinculación con los sectores de la sociedad. El Departamento de Matemáticas de la Facultad de Ciencias atiende a las carreras de Actuaría, Ciencias de la Computación, Matemáticas, Matemáti- cas Aplicadas y los cursos de Matemáticas de las demás carreras de la Fa- cultad (véase [1]), preparando alumnos que estudian, plantean, formulan y aplican modelos de contenido matemático, con el …n de proveer información para la planeación, previsión y la toma de decisiones, para resolver problemas Económicos, Sociales y de Ciencias e Ingenierías. Por lo anterior, un eje fundamental de desarrollo, es el que se re…ere a la formación en cómputo. Ante los retos que el vertiginoso y dinámico cambio enfrenta el mundo global en que vivimos, ante las exigencias de la sociedad de la información se requiere el manejo de las Tecnologías de la Información y de la Comunicación (TIC) por ello, el modelo educativo de cualquier ca- rrera universitaria y en particular las carreras en la Facultad de Ciencias de la UNAM, tiene la necesidad imperiosa de atender una formación computa- cional como parte integral de una formación omnilateral de los educandos; por ello, la Facultad de Ciencias cuenta, para lograr este objetivo, con asig- naturas que hacen uso de Laboratorios y Talleres de cómputo para ponerse al día en el manejo de esta importante herramienta. Los Laboratorios y Talleres de cómputo de los Edi…cios Tlahuizcalpan, Yelizcalli, Amoxcalli y en el Nuevo Edi…cio cuentan con el equipo y programas de cómputo que permiten estar a la vanguardia y que facilitan el trabajo académico en las materias que cursan los estudiantes. Software Propietario y Libre Con el constante aumento de la comer- cialización de las computadoras y su relativo bajo costo, las computadoras se han convertido en un objeto omnipresente, ya que estas se encuentran en las actividades cotidianas de mi-llones de usuarios, en formas tan diversas como teléfonos celulares, tabletas, computadoras portátiles y de escritorio, etc. Las computadoras por si solas no resuelven los problemas para los que los usuarios las compran. El Software — Sistema operativo y los programas de aplicaciones— son los que realmente generan las soluciones al interactuar [email protected] 5 Antonio Carrillo Ledesma, Et alii Herramientas Computacionales en Linux uno o más paquetes informáticos con los datos del usuario. También, es común que al comprar una computadora, en el costo total, se
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages309 Page
-
File Size-