91
El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaría en la Facultadde Ciencias, UNAM Antonio Carrillo Ledesma y Karla Ivonne González Rosas http://www.mmc.geofisica.unam.mx/acl/ [email protected] November 11, 2016

El Uso de Programas de Cómputo en los Cursos de la Carrera de

Embed Size (px)

Citation preview

Page 1: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en losCursos de la Carrera de Actuaría en la

Facultad de Ciencias, UNAM

Antonio Carrillo Ledesma y Karla Ivonne González Rosashttp://www.mmc.geofisica.unam.mx/acl/

[email protected]

November 11, 2016

Page 2: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

Índice

1 Introducción 31.1 Software Propietario y Libre . . . . . . . . . . . . . . . . . . . 3

1.1.1 Software Propietario . . . . . . . . . . . . . . . . . . . 41.1.2 Software Libre . . . . . . . . . . . . . . . . . . . . . . . 5

1.2 El Cómputo en la Carrera de Actuaría . . . . . . . . . . . . . 71.2.1 Cursos que Usan Cómputo . . . . . . . . . . . . . . . . 10

1.3 Paquetes de Cómputo de Uso Común . . . . . . . . . . . . . . 131.3.1 Programas de Cálculo Numérico . . . . . . . . . . . . . 161.3.2 Programas de Estadística . . . . . . . . . . . . . . . . 161.3.3 Programas Ofimáticos . . . . . . . . . . . . . . . . . . 171.3.4 Otros Programas . . . . . . . . . . . . . . . . . . . . . 18

2 Paquetes de Cálculo Numérico 192.1 MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.2 Octave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.3 FreeMat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.4 Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.5 Scipy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.6 Ventajas, Desventajas y Carencias . . . . . . . . . . . . . . . . 27

3 Paquetes Estadísticos 303.1 SPSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.2 R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.3 SAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.4 Ventajas, Desventajas y Carencias . . . . . . . . . . . . . . . . 34

4 Paquetes Ofimáticos 364.1 Procesamiento de textos . . . . . . . . . . . . . . . . . . . . . 364.2 Hojas de Cálculo . . . . . . . . . . . . . . . . . . . . . . . . . 384.3 Bases de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . 404.4 Herramientas de Presentación y Multimedia . . . . . . . . . . 414.5 Integración en la Carrera de Actuaría . . . . . . . . . . . . . . 42

5 Consideraciones Finales y Conclusiones 445.1 Ventajas, Desventajas y Carencias del Software Libre . . . . . 45

[email protected] 1 Antonio Carrillo Ledesma

Page 3: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

5.2 Integración del Software Libre y Propietario en la Carrera deActuaría . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

5.3 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

A Consideraciones Sobre Instalación yMantenimiento de Equiposde Cómputo de Uso Común para Estudiantes 49

B Software Libre y Propietario 52B.1 Software Libre . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

B.1.1 Tipos de Licencias . . . . . . . . . . . . . . . . . . . . 55B.2 Software Propietario . . . . . . . . . . . . . . . . . . . . . . . 57B.3 Implicaciones Económico-Políticas . . . . . . . . . . . . . . . . 58

C Máquinas Virtuales 63C.1 Tipos de Máquinas Virtuales . . . . . . . . . . . . . . . . . . . 63C.2 Aplicaciones de las Máquinas Virtuales de Sistema . . . . . . . 64C.3 Técnicas de Virtualización . . . . . . . . . . . . . . . . . . . . 65C.4 ¿Qué Necesito para Usar una Máquina Virtual? . . . . . . . . 66C.5 ¿Cómo Funciona una Máquina Virtual? . . . . . . . . . . . . . 67C.6 Ventajas y Desventajas . . . . . . . . . . . . . . . . . . . . . . 67

C.6.1 Ventajas . . . . . . . . . . . . . . . . . . . . . . . . . . 69C.6.2 Desventajas . . . . . . . . . . . . . . . . . . . . . . . . 71

C.7 Uso de Máquinas Virtuales . . . . . . . . . . . . . . . . . . . . 72

D Bibliografía 86

[email protected] 2 Antonio Carrillo Ledesma

Page 4: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

1 Introducción

La Carrera de Actuaría prepara a actuarios (véase [1]), estos son profe-sionistas que estudian, plantean, formulan y aplican modelos de contenidomatemático, con el fin de proveer información para la planeación, previsión yla toma de decisiones, para resolver problemas económicos y sociales que in-volucran riesgos. Los egresados están capacitados para intervenir en ámbitosque van desde el demográfico y financiero hasta el ecológico y administrativopara interactuar con los profesionistas que ahí se desempeñen. Su campo detrabajo está en los sectores públicos o de la administración pública descentra-lizada, así como en el sector privado en compañías aseguradoras, despachosde consultoría actuarial y estadística, de cómputo e informática y de finanzas.Por lo anterior, un eje fundamental de desarrollo, es el que se refiere a la

formación en cómputo, hoy día, ante los retos que el vertiginoso y dinámicocambio que enfrenta el mundo global en que vivimos, ante las exigencias dela sociedad de la información se requiere el manejo de las Tecnologías de laInformación y de la Comunicación (TIC) por ello, el modelo educativo decualquier Carrera Universitaria y en particular la Carrera de Actuaría en laFacultad de Ciencias de la UNAM, tiene la necesidad imperiosa atender unaformación computacional como parte integral de una formación omnilateralde los educandos; por ello, la Facultad de Ciencias cuenta, para lograr esteobjetivo, con asignaturas, Aulas y Talleres de cómputo para ponerse al día enel manejo de esta importante herramienta. Las Aulas y Talleres de cómputodel Tlahuizcalpan cuentan con equipo y programas actualizados que permitenestar a la vanguardia y que facilitan el trabajo académico en las materias quecursan los estudiantes.

1.1 Software Propietario y Libre

Con el constante aumento de la comercialización de las computadoras y surelativo bajo costo, las computadoras se han convertido en un objeto om-nipresente, 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 es el que realmente genera las solucionesal interaccionar 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

[email protected] 3 Antonio Carrillo Ledesma

Page 5: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

integre el del sistema operativo, aplicaciones ofimáticas y de antivirus, seanestos usados por el usuario o no; y en la mayoría de los casos no es posiblesolicitar que no sean incluidos en el costo de la computadora.Por otro lado, el Software comercial suele quedar obsoleto muy rápido, ya

que constantemente se le agregan nuevas funcionalidades al mismo y estas engeneral son vendidas como versiones independientes de la adquirida original-mente. Esto obliga al usuario –si quiere hacer uso de ellas– a comprar lasnuevas versiones del Software para satisfacer sus crecientes necesidades infor-máticas. Por lo anterior y dada la creciente complejidad de los paquetes decómputo y el alto costo de desarrollo de aplicaciones innovadoras, en muchoscasos, el costo total del Software que comúnmente los usuarios instalan –yque no necesariamente usan las capacidades avanzadas del programa, por lascuales el Software tiene un alto costo comercial– en su computadora, sueleser más caro que el propio equipo en el que corren.

1.1.1 Software Propietario

En entornos comerciales, es posible por parte de la empresa, adquirir y man-tener actualizado el Software necesario para sus actividades comerciales, puesel costo del mismo se traslada al consumidor final del bien o servicio que laempresa proporcione. En entornos educativos, de instituciones sin fines lu-crativos e incluso, el sector gubernamental, no se cuenta con los recursosnecesarios para adquirir y mantener actualizado el Software necesario paratodas y cada una de las aplicaciones usadas en las computadoras, ya queen general, las licencias de uso del Software propietario son asignadas enforma individual a cada computadora y no es fácilmente transferible a otracomputadora.Dado que existe una gran demanda de programas de cómputo tanto de

uso común como especializado por nuestras crecientes necesidades informáti-cas, y por la gran cantidad de recursos económicos involucrados, existen unagran cantidad de empresas que tratan de satisfacer dichas necesidades, paragenerar y comercializar, además de proveer la adecuada documentación yopciones de capacitación que permita a las empresas contratar recursos hu-manos capacitados.Por otro lado, generalmente se deja la investigación y desarrollo de pro-

ductos computacionales nuevos o innovadores a grandes empresas o Universi-dades –que cuenten con la infraestructura y el capital humano, que muchasveces es de alto riesgo– con la capacidad de analizar, diseñar y programar

[email protected] 4 Antonio Carrillo Ledesma

Page 6: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

las herramientas que requieran para sus procesos de investigación, enseñanzao desarrollo.Existe hoy en día, una gran cantidad de paquetes y sistemas operativos

comerciales de Software propietario (véase apéndice B.2) que mediante unpago oneroso, permiten a los usuarios de los mismos ser productivos en todasy cada una de las ramas comerciales que involucra nuestra vida globalizada,pero el licenciamiento del uso de los programas comerciales es en extremorestrictivo en su uso y más en su distribución.

1.1.2 Software Libre

El Software libre (véase apéndice B.1) son programas de cómputo –el sis-tema operativo, paquetes de uso común y especializados–, desarrollados porusuarios y para usuarios que, entre otras cosas, comparten el código fuente,el programa ejecutable y dan libertades para estudiar, adaptar y redistribuira quien así lo requiera el programa y todos sus derivados.El Software libre es desarrollado por una creciente y pujante comunidad

de programadores y usuarios que tratan de poner la mayor cantidad de pro-gramas a disposición de todos los interesados, tal que, le permitan al usuariopromedio sacar el mayor provecho de la computadora que use.

¿Que es el Software libre? La definición exacta y sus diversas variantesse plasman en el apéndice B, pero podemos entender el espíritu a través delos documentos de la fundación para el Software libre (véase [11], [12], [4],[5], [3] y [7]). El Software libre concierne a la libertad de los usuarios paraejecutar, copiar, distribuir, cambiar y mejorar el Software:

1. Libertad para ejecutar el programa.

2. Libertad para estudiar cómo funciona el programa y adaptarlo a lasnecesidades propias.

3. Libertad de distribuir copias.

4. Libertad de mejorar el programa, pudiendo redistribuir estas mejoraspara que todo el mundo pueda beneficiarse.

La lista de proyectos de este tipo es realmente impresionante (véase [11],[10] y [8]). Algunos han conseguido un uso y alta calidad, por ejemplo el

[email protected] 5 Antonio Carrillo Ledesma

Page 7: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

compilador GCC (véase [13]), el Kernel de Linux (véase [14]) y el sistemaoperativo GNU Linux Debian (véase [15]) y Android (véase [16]). Mientrasque otro proyectos han caído en el olvido, pero en la gran mayoría, se tienencopia del código fuente que permitirían a quienes estén interesados en dichoproyecto, el poder revivirlo y en su caso ampliarlo.La característica más importante que aparece típicamente en un proyecto

de este tipo, es que un conjunto de personas separadas a gran distancia,sean capaces, a través de la Web, de los e-mail y de foros, de aunar susesfuerzos para crear, mejorar, distribuir un producto, de forma que todosellos se benefician unos de otros. Evidentemente, la mayor parte del pesorecae en los desarrolladores, pero también es necesaria una difusión para quelos usuarios documenten, encuentren errores, hagan foros de discusión, etc.

¿Por que se Interesan los Autores, Profesores Universitarios, en elSoftware Libre? Porque bajo el Software libre subyace la idea de compar-tir conocimiento y favorecer la existencia de nuevas ideas; y ¿que es investigary enseñar sino crear conocimiento y procurar que los alumnos aprendan e in-cluso vayan más allá de lo aprendido? Se comparte la idea, que el espíritu delSoftware libre es similar al que debería reinar en las instituciones educativas.Concretando estas ideas, profesores e investigadores necesitan herramien-

tas para la investigación y docencia, y estas deben de tener una calidadmínima y ser fácilmente distribuibles entre los alumnos. En muchos casoslas compañías desarrolladoras y distribuidoras de programas de cómputo nohan sabido ofrecer sus productos con la flexibilidad adecuada para las laboresdocentes o, en otros casos, los productos desarrollados no tienen la calidadesperada.El Software libre es aún joven, pese a las decenas de miles de proyectos

actuales (véase [8] y [9]) –en los que se trabaja constantemente en mejorar laparte computacional de los algoritmos involucrados en el proyecto, haciendoy puliendo interfaces gráficas, generando ayuda en línea así como la docu-mentación necesaria para que usuarios noveles y avanzados usen la mayorcantidad de opciones programadas en los proyectos– existen muchas otrasnecesidades profesionales y de investigación que requieren el desarrollo in-novador de programas de cómputo para automatizarlas y hacerlas eficientes.Esto queda plasmado en las decenas de proyectos que a diario son registradosen las páginas especializadas en busca de difusión y apoyo para su proyecto(véase [8] y [9]).

[email protected] 6 Antonio Carrillo Ledesma

Page 8: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

En los últimos años, muchos proyectos han pasados de ser simples progra-mas en línea de comandos a complejas aplicaciones multiplataforma –correnen distintos sistemas operativos como son Windows, Linux, Unix y Mac–con ambientes gráficos multimedia que en muchos casos han superado a suscontrapartes comerciales –por ejemplo los navegadores Web–. Para mues-tra de este maravilloso avance, tomemos el proyecto del sistema operativoAndroid, que actualmente corre en millones de equipos –como celulares,tabletas, electrodomésticos, etc– y en los cuales se pueden descargar milesde aplicaciones y está soportado por una gran cantidad de usuarios y empre-sas comerciales como Google e IBM. Este ha logrado desplazar a muchos desus competidores por sus múltiples bondades y bajo costo de desarrollo, alrehusar miles de aplicaciones ya existentes que usan Software libre y permitirdesarrollar otro tanto de aplicaciones bajo una plataforma que corre en losmás diversos procesadores.Además, el uso de Software libre y su posibilidad de ampliarlo y/o es-

pecializarlo según sea necesario, ha permitido crear de forma cada vez másrápida y confiable; Y poner a disposición de un gran público programas deuso común, así como especializado que satisfagan las nuevas necesidades delos usuarios.

1.2 El Cómputo en la Carrera de Actuaría

Existe una gran variedad de programas de cómputo que permite automatizar,la cada vez más creciente cantidad de tareas inherentes al desarrollo de lasactividades profesionales y de investigación; y en particular en la Carrera deActuaría.Es común que las grandes y pequeñas empresas compren programas de

cómputo especializados –algunos con un alto costo comercial– para inver-tir lo menos posible en el desarrollo de herramientas computacionales quesatisfagan sus necesidades. Donde es común que una empresa desarrolle másde una versión del programa, donde al menos una versión es libre y ge-neralmente usada como versión de desarrollo y prueba; y las demás versionessean propietarias y sean comercializadas, dando como servicios adicionalesel soporte y capacitación del mismo. La capacitación en el uso de dichosprogramas es cada vez más, delegada a las formadoras de recursos humanos,entre las que destacan las Universidades.La capacitación de capital humano especializado en uno o más paquetes

de cómputo, requiere por un lado el conocimiento teórico que sustente el

[email protected] 7 Antonio Carrillo Ledesma

Page 9: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

funcionamiento del paquete y por otro lado contar con la plataforma com-putacional adecuada –Hardware y Software– para correr dicho paquete.El creciente costo monetario de la licencia de uso de un paquete de cómputo–y no necesariamente incluye las versiones siguientes del mismo– implicaun gasto no justificable para la gran mayoría de las Universidades a nivelmundial.En las Universidades, no se busca enseñar el uso de uno o más paquetes

de cómputo per se, la enseñanza de herramientas de cómputo, es un procesoinherente a la adquisición de conocimiento de las diferentes materias que esnecesario cursar para egresar de una carrera universitaria. Así, medianteel uso de uno o más paquetes similares de bajo o nulo costo se le puedeenseñar los conocimientos necesarios que le permitirán al educando conoceren poco tiempo las peculiaridades de los paquetes especializados y de altocosto usados en las empresas.

El Software libre tiene miles de proyectos actualmente activos (véase [8]y [9]), estos tratan de satisfacer la gran mayoría de las necesidades de losusuarios noveles y avanzados; y por el uso de dicho Software no es necesariopagar grandes cantidades de dinero. Además, todas las actualizaciones ynuevas versiones de los paquetes por lo general son puestas en la red paraque se puedan descargar y ser usadas por cualquier usuario, sin recurrir agastos onerosos.Esto queda de manifiesto en uno de los proyectos insignia del Software

libre, el Kernel Linux (véase [14]), que en su versión 3.10 cuenta con másde quince millones de líneas de código, que ha sido creado desde 1990 hastala fecha por miles de programadores distribuidos por todo el mundo e in-tercomunicados casi exclusivamente por Internet. Este proyecto es la basede diversas distribuciones de sistemas operativos –entre ellos de Android,Ubuntu y Linux Debian entre otras cientos de distribuciones– que corren enaparatos tan heterogéneos como electrodomésticos, teléfonos celulares, table-tas, computadoras portátiles y de escritorio, así como en la mayoría de lassupercomputadoras. Además, estos sistemas operativos corren en una grangama de procesadores, tanto de última generación como en los ya clásicos80386.Basándose en los proyectos de Software libre, existen diversas distribu-

ciones de sistemas operativos como GNU LINUX Debian (véase [15]) queintegra más de cuarenta mil aplicaciones todas ellas de Software libre quepermite correr todos los programas de cómputo de uso común –dado que

[email protected] 8 Antonio Carrillo Ledesma

Page 10: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

también soportan la virtualización (véase [38], [39], [37] y [36]), es posiblecorrer otros sistemas operativos como Windows dentro del propio sistemaoperativo de Software libre–.En el caso de Software comercial o propietario como MATLAB (véase

[25]), SAS (véase [31]), SPSS (véase [32]), Microsoft Office (véase [18]) entreotros, se ha invertido una gran cantidad de trabajo y recursos económicospara generar interfaces de usuario pulidas y perfectamente integradas, asícomo, una gran cantidad de ayuda y en algunos casos con un asistente vir-tual en el mismo paquete para que guíen al usuario en su uso. La docu-mentación integrada del paquete, se complementa con una gran cantidad deayuda en línea, libros, artículos y páginas blancas –en algunos casos en másde 80 idiomas– que detallan como usar el Software para solucionar una grangama de problemas de diversos grupos de usuarios, tanto usuarios ocasionalescomo especializados. En el caso de que el Software sea usado en ambientesuniversitarios, estos cuentan con guías, tutoriales o centros de entrenamientoque capacitan en cada uno de los tópicos necesarios para dominar el paquetehasta llegar dominar las opciones avanzadas del mismo.En contraste, en el Software libre, es común que en muchos proyectos

incipientes, la documentación, ayuda en línea e interfase gráfica es un aspectopoco logrado. En muchos casos, los entornos de trabajo (IDEs) son dejadosa otros proyectos. De tal forma que los creadores –programadores– delpaquete se centren en el desarrollo computacional de la infraestructura basedel paquete, delegando a otros, las partes que tienen que ver con el usuariofinal y la documentación del mismo. Por ejemplo el paquete de GNUPlot quese encarga de la visualización de gráficas en dos y tres dimensiones es usadopor decenas de paquetes en línea de comandos –por ejemplo Python, Perl, Cy C++– que cuando requieren hacer gráficas se la solicitan a dicho paquete,de esta forma se reutiliza lo ya creado y se simplifica con mucho el desarrollodel paquete, permitiendo a los desarrolladores centrarse en las característicasque necesitan programar para innovar y satisfacer las crecientes necesidadesde los usuarios.Por el incipiente desarrollo de las aplicaciones de Software libre que com-

piten con el Software privativo o comercial que estamos tan acostumbra-dos a usar –programas para cálculo numérico y simbólico, estadístico y deofimática, entre otros, comúnmente usados para la enseñanza y resoluciónde problemas actuariales–, al menos en un corto plazo, el Software libreparece no ser una opción viable de reemplazo. Pero ya son lo suficientementemaduras para ser tomadas en cuenta, en un, cada vez más competitivo am-

[email protected] 9 Antonio Carrillo Ledesma

Page 11: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

biente de trabajo multiplataforma, en donde es necesario que el usuario –estudiante y eventual profesionista– tenga acceso todos y cada uno de lospaquetes de cómputo que se le muestran en clase, así como en las prácticasprofesionales, que le permitan adquirir soltura y expertes en el uso de losmismos.

1.2.1 Cursos que Usan Cómputo

En la Facultad de Ciencias, cada semestre, se imparten decenas de cursos–algunos compartidos por otras carreras y otros específicos de la carrerade Actuaría de sus diferentes planes de estudios vigentes 2000 y 2006–ydesde hace varios años, crece semestre a semestre el número de cursos1 quesolicitan hacer uso de equipos de cómputo y tener acceso a múltiples versionesde paquetería especializada (véase apéndice A), algunos de estos cursos son(véase [2]):Primer Semestre

• Cálculo Diferencial e Integral I

• Geometría Analítica I

• Problemas Socio-Económicos de México

Segundo Semestre

• Cálculo Diferencial e Integral II

• Geometría Analítica II

• Matemáticas Financieras

• Programación I

Tercer Semestre

• Cálculo Diferencial e Integral III

• Probabilidad I

1Los cursos solicitan, desde el uso de un equipo de cómputo y cañón para proyectar,hasta la asignación de una máquina por estudiante que tenga instalado múltiples progra-mas especializados corriendo en más de un sistema operativo.

[email protected] 10 Antonio Carrillo Ledesma

Page 12: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

• Programación II

Cuarto Semestre

• Cálculo Diferencial e Integral IV

• Finanzas I

• Matemáticas Actuariales del Seguro de Personas I

• Probabilidad II

Quinto Semestre

• Estadística I

• Finanzas II

• Investigación de Operaciones

• Matemáticas Actuariales del Seguro de Personas II

Sexto Semestre

• Economía I

• Estadística II

• Matemáticas Actuariales del Seguro de Daños

• Procesos Estocásticos

Séptimo Semestre

• Análisis Numérico

• Demografía I

• Estadística III

• Seguridad Social

Octavo Semestre

[email protected] 11 Antonio Carrillo Ledesma

Page 13: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

• Pensiones Privadas

• Teoría del Riesgo

Optativas

• Administración de Riesgos

• Administración de Riesgos Financieros

• Análisis de Regresión

• Análisis Multivariado

• Bases de Datos

• Carteras de Inversión

• Demografía II

• Econometría I

• Econometría II

• Estadística Bayesiana

• Fianzas

• Inteligencia Artificial

• Muestreo

• Planeación Estratégica

• Productos Financieros Derivados I

• Productos Financieros Derivados II

• Reaseguro

• Redes de Computadoras

• Seminario de Aplicaciones Actuariales

• Seminario de Matemáticas Actuariales Aplicadas

[email protected] 12 Antonio Carrillo Ledesma

Page 14: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

• Teoría de Gráficas

• Teoría de Juegos en Economía

• Valuación de Opciones

1.3 Paquetes de Cómputo de Uso Común

Dada la diversidad de cursos en la carrera de Actuaría y la gran cantidadde profesores y ayudantes de los mismos, el abanico de paquetes de cómputosolicitados es grande (véase apéndice A), entre los que destacan (véase [2]):

• Java JRE y JDK

• CodeBlocks IDE

• NetBeans IDE

• Drjava IDE

• IntelliJ IDE

• BlueJ IDE

• Scite

• Jet Brains IDE

• SharpDevelop 3.2 IDE

• Alice

• DFD

• Turbo C IDE

• Developer Studio-Fortran IDE

• Microsoft Viasual Studio 2008, 2009

• Microsoft Windows SDK 6.0A

• Compacq Visual Fortran 6

[email protected] 13 Antonio Carrillo Ledesma

Page 15: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

• Microsoft Office 2003, 2007 y 2010

• Libre Office

• OpenOfice

• MathType 6.0

• Scientific WorkPlace 5.0, 5.5

• Microsoft SQL Server 2005 y 2008

• PostgreSQL 9.1

• SPSS 13.0, 20

• PSPP

• SAS 9.1

• Vensim PLE

• Statgraphics

• GPower 3.1

• EViews 7

• Systat 10

• Stata

• Statistica

• ITSM200

• R

• Tinn-R

• RStudio

• Gretl

• MATLAB 5.3, 7.0.4, R2008a, R2008b, R2009a

[email protected] 14 Antonio Carrillo Ledesma

Page 16: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

• Scilab

• Octave

• FreeMat

• Maple 13

• Mathematica 8

• NetLogo

• GeoGebra

• Compresores y descompresores de archivos Winzip, WinRAR, 7-zip

• SSH Secure File Transfer

• PDFCreator

• Adobe Reader

• Navegador de páginas Web Internet Explorer, Google Chrome, Konquerror,Mozilla

Estos paquetes pueden ser clasificados de forma burda en:

• Programas de Cálculo Numérico

• Programas de Estadística

• Programas Ofimáticos

• Otros Programas

En el presente trabajo, me centraré en los tres primeros rubros, pero eltipo de programas usados, las plataformas de ejecución soportada y las dife-rentes versiones de un mismo paquete que solicitan los profesores y ayudantes,crecen constantemente, así mismo, su complejidad y en su caso, el costomonetario de las licencias de uso también se incrementa de manera onerosa.

[email protected] 15 Antonio Carrillo Ledesma

Page 17: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

1.3.1 Programas de Cálculo Numérico

Los paquetes de cálculo numérico, son programas matemáticos que ofrecenun entorno de desarrollo integrado (IDE) con un lenguaje de programaciónpropio. Entre sus prestaciones básicas se hallan:

• Manejo de números reales y complejos

• La manipulación de vectores y matrices tanto reales como complejas

• Manejo de funciones elementales y especiales

• Resolución de problemas de álgebra lineal

• Resolución de ecuaciones no lineales

• La representación de datos y funciones

• La implementación de algoritmos

• Integración de funciones

• Máximos y mínimos de funciones

• Manipulación de polinomios

• Integración de ecuaciones diferenciales

• Graficación de funciones en 2D y 3D

• La comunicación con programas en otros lenguajes y con otros dispositivosHardware

1.3.2 Programas de Estadística

Los paquetes estadísticos, son programas matemáticos que ofrecen un entornode desarrollo integrado (IDE) con un lenguaje de programación propio. Entresus prestaciones básicas destacan:

• Análisis de datos mediante operadores para cálculos sobre arreglos, matricesy/o Tablas

• Tablas Cruzadas

[email protected] 16 Antonio Carrillo Ledesma

Page 18: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

• Reordenamiento de Datos

• Análisis de la Varianza (ANOVA)

• Frecuencias

• Estadística Descriptiva

• Estadística lineal

• Estadística no lineal

• Estadística Biestadística

• Pruebas Estadísticas Clásicas

• Análisis de Serie de Temporales

• Modelos de Regresión

• Clasificación

• Fiabilidad

• Categorías

• Clustering

• Validación de Datos

• Tendencias

• Gráficos y Diagramas

1.3.3 Programas Ofimáticos

En la actualidad, los llamados paquetes ofimáticos, no son otra cosa queprogramas de cómputo integrado, que permiten automatizar multiples ta-reas que permiten idear, crear, manipular, transmitir, almacenar informaciónnecesaria en una oficina. Entre sus prestaciones básicas destacan:

• Procesamiento de Textos –con formato enriquecido y notación científica–

• Hojas de Cálculo

[email protected] 17 Antonio Carrillo Ledesma

Page 19: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

• Bases de Datos

• Herramientas de Presentación y Multimedia

1.3.4 Otros Programas

Dentro del abanico de programas que son usados en la carrera de Actuaría,y que no tienen cabida en los rubros anteriores, destacan:

• Lenguajes de Programación

• Entornos de Desarrollo Integrados y editores para Programación

• Cálculo Simbólico

• Manipulación de Gráficos

• Navegadores Web, compresores y descompresores de archivos, etc.

[email protected] 18 Antonio Carrillo Ledesma

Page 20: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

2 Paquetes de Cálculo Numérico

Los paquetes de cálculo numérico, son programas matemáticos que ofrecenun entorno de desarrollo integrado (IDE) con un lenguaje de programaciónpropio con un amplio abanico de herramientas numéricas para la lectura,manipulación, análisis y graficación de datos. Entre sus prestaciones básicasse hallan:

• Manejo de números reales y complejos

• La manipulación de vectores y matrices tanto reales como complejas

• Manejo de funciones elementales y especiales

• Resolución de problemas de álgebra lineal

• Resolución de ecuaciones no lineales

• La representación de datos y funciones

• La implementación de algoritmos

• Integración de funciones

• Máximos y mínimos de funciones

• Manipulación de polinomios

• Integración de ecuaciones diferenciales

• Graficación de funciones en 2D y 3D

• La comunicación con programas en otros lenguajes de programación ycon otros dispositivos Hardware.

El programa comercial líder para el cálculo numérico es MATLAB (véase[25]) de la compañía MathWorks, este paquete salió a la venta en el año de1984 con la versión 1.0 y casi año con año, ha generado nuevas versiones de supaquete y múltiples sistemas de licenciamiento. Actualmente se comercializala versión 7.14 (R2012a) del año 2012 con más de 8 tipos de licenciamiento.Esta empresa cuenta con más de mil empleados y oficinas en más de docepaíses alrededor del mundo.

[email protected] 19 Antonio Carrillo Ledesma

Page 21: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

La idea detrás de paquetes como MATLAB es la de emplear grupos desubrutinas escritas en principio en el lenguaje de programación FORTRANcomo son las librerías LINPACK (véase [40]) y EISPACK (véase [41]) paramanipular matrices y vectores y proporcionar un sencillo acceso a dicho Soft-ware y así, ser usado en los cursos de álgebra lineal y análisis numérico, sinnecesidad de escribir programas en lenguajes de bajo nivel.Estos paquetes, pueden disponer de herramientas adicionales que ex-

panden sus prestaciones, como son el diseño y simulación de sistemas decontrol. Además, se pueden ampliar las capacidades base de dichos progra-mas con las cajas de herramientas y con los paquetes de bloques. Además, enalgunos casos existen versiones para cómputo secuencial y paralelo –tantoen memoria compartida como distribuida, también para usar los múltiplesCores gráficos CUDA (GPUs) de las tarjetas NVIDIA–.Los paquetes de cómputo para el Cálculo Numérico más usados actual-

mente son:

• MATLAB (véase [25]) (abreviatura de MATrix LABoratory, "labora-torio de matrices") es un Software matemático que ofrece un entornode desarrollo integrado (IDE) con un lenguaje de programación pro-pio (lenguaje M). Entre sus prestaciones básicas se hallan: la manip-ulación de matrices, la representación de datos y funciones, la imple-mentación de algoritmos, la creación de interfaces de usuario (GUI) yla comunicación con programas en otros lenguajes y con otros dispos-itivos Hardware. El paquete MATLAB dispone de dos herramientasadicionales que expanden sus prestaciones, a saber, plataforma de si-mulación multidominio Simulink (véase [43]) y editor de interfaces deusuario GUIDE. Además, se pueden ampliar las capacidades de MAT-LAB con las cajas de herramientas y las de Simulink con los paquetesde bloques.

• Octave (véase [28]) es un programa de cálculo numérico de licenciaGNU (véase [7]), conocido por buscar una sintaxis similar a la de MAT-LAB, existiendo una gran compatibilidad en las funciones de cálculonumérico.

• FreeMat (véase [27]) es un programa de cálculo numérico de licenciaGPL (véase [7]) que proporciona un ambiente libre para el rápido de-sarrollo de prototipos para la Ciencia y la Ingeniería, además del proce-samiento de datos. Es similar a MATLAB y Octave, pero cuenta con

[email protected] 20 Antonio Carrillo Ledesma

Page 22: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

una interfaz externa de código en los lenguajes de programación enC, C++ y Fortran, incluso distribuye el desarrollo de algoritmos enparalelo con la interfaz de paso de mensajes llamada MPI.

• Scilab (véase [26]) es un programa de cálculo numérico de licencia Ce-CILL compatible con GPL (véase [7]), desarrollado principalmente enFrancia, que incluye su propia librería para gráficos. Es similar a MAT-LAB, pero no busca una compatibilidad total, como lo puede hacerFreeMat y Octave. Scilab tiene una herramienta para el diseño y si-mulación de sistemas de control Scicos (véase [42]) similar a Simulink(véase [43]) de MATLAB.

• Scipy (véase [29]) es una librería de herramientas numéricas para Python(véase [30]) con licencia Open Source (véase [7]). En su filosofía no hatratado de imitar a ninguno de los paquetes anteriores y tiene detrás elrespaldo de un auténtico lenguaje de programación orientado a objetose interpretado que también puede ser compilado para ganar velocidaden la ejecución. Este hecho le confiere una gran potencia y la capacidadde beneficiarse de las mejoras del lenguaje base.

Existen otros paquetes que pueden ser usados en el cálculo numérico–estos poseen características que enriquecen las opciones clásicas de los pa-quetes de cálculo numérico–:

• R (véase [35])

• Maple (véase [59])

• Mathematica (véase [60])

• Maxima (véase [61])

2.1 MATLAB

El paquete MATLAB (véase [25]) tiene cientos de características, tan vari-adas como el segmento de usuarios al que dicho Software esta dirigido. Al serun paquete tan completo, es difícil que un usuario promedio use las carac-terísticas avanzadas de dicho paquete; esto repercute en que el usuario prome-dio pague un alto costo por el valor de las licencias de uso sin usar dichas

[email protected] 21 Antonio Carrillo Ledesma

Page 23: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

características; y esto contrasta con un vertiginoso desarrollo de nuevas ca-racterísticas, que permite a la compañía lanzar una o más versiones por año,cada una con múltiples opciones de licenciamiento, según las necesidades delsegmento al que están dirigidas.Las múltiples características y los miles de usuarios, han creado una comu-

nidad robusta, la que ha logrado una gran cantidad de funciones optimizadas,que han permitido la publicación de decenas libros, cientos de artículos ymiles de páginas Web en los cuales se muestra como resolver diversos pro-blemas de concomitantes en Ciencias e Ingenierías usando dicho paquete yla interacción con otros lenguajes como son C/C++, Fortran o Java.Entre las principales aplicaciones de MATLAB incluyen la de métodos

secuenciales y paralelos para resolver problemas de álgebra lineal con matri-ces (ralas, dispersas y densas), estadística, análisis de Fourier, optimización,integración numérica, resolución de ecuaciones diferenciales ordinarias y par-ciales, creación de gráficos y visualización de datos. Además de opciones parahacer interpolación y regresión de datos, cálculo de Eigen-valores y valoressingulares, etc.

Entornos de Programación Uno de los aspectos más agradables deMAT-LAB es su entorno de programación, que permite centralizar la informaciónen un entorno de ventanas. El depurador está también incorporado en eleditor. Desgraciadamente, estas facilidades no se encuentran del todo de-sarrolladas en las otras herramientas -Octave, FreeMat, Scilab, Scipy-, peroes posible obtener la misma efectividad para las opciones básicas usando lalínea de comandos.

2.2 Octave

El paquete Octave (véase [28]), al mantener una sintaxis similar a la deMATLAB, la gran mayoría de funcionalidades básicas son compatibles, perono así, en el entorno de programación, este no tiene un ambiente propio dedesarrollo y mucho menos un sistema de depuración. Existen proyectos deterceros que tratan de suplir dichas limitantes como en el ambiente de progra-mación KOctave (véase [44]) y QtOctave (véase [45]). Pero desgraciadamenteninguno de ellos tiene el grado de avance esperado.

[email protected] 22 Antonio Carrillo Ledesma

Page 24: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

2.3 FreeMat

El paquete FreeMat (véase [27]) es un programa de cálculo numérico de li-cencia GPL (véase [7]) que proporciona un ambiente libre para el rápidodesarrollo de prototipos para la Ciencia y la Ingeniería, además del proce-samiento de datos, además cuenta con una interfaz externa de código en loslenguajes de programación en C, C++ y Fortran, incluso distribuye el desa-rrollo de algoritmos en paralelo con la interfaz de paso de mensajes llamadaMPI.Es similar a MATLAB, pero según sus desarrolladores es casi 95% com-

patible con MATLAB, actualmente trabaja en Windows, Linux, MAC yalgunas versiones de UNIX, las características soportadas son:

• Manipulación de arreglos N-dimensionales (N esta limitado a 6)

• Soporta enteros de 8, 16 y 32 bits y números de punto flotante de 32 y64 bits y tipo complejos de 64 y 128 bits

• Soporta la aritmética de todos los tipos de datos soportados

• Resolución de sistemas de ecuaciones

• Descomposición de Eigen valores y valores singulares

• Arreglos heterogéneos

• Soporte completo para la estructura de arreglos dinámicos

• Soporte para FFT

• Paso por referencia

• Interfase para código externo C/C++/Fortran

• Soporte nativo para matrices dispersas

• Clases y sobrecarga de operadores

• Visualización de gráficos en dos y tres dimensiones

Algunas diferencias básicas son:

• Soporte parcial para construcción de Widgets/GUI

[email protected] 23 Antonio Carrillo Ledesma

Page 25: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

• FreeMat a MEX interfase para portar archivos de MEX de MATLAB

• No implementación de GUI/Widgets

En cuanto al ambiente de desarrollo, FreeMat instala todo lo necesariopara un trabajo cómodo y funcional. Ya que permite abrir el editor de textoen el cual podemos hacer la depuración del mismo, ejecutar los programas dedemostración, acceder a las ventanas gráficas, controlar la ejecución en curso,abrir ficheros y ejecutarlos, observar el estado de las variables definidas, entreotras cosas.

2.4 Scilab

El paquete Scilab(véase [26]) tiene una licencia compatible con la de GPL,que por su madurez y la gran cantidad de usuarios, Universidades y Centrosde Investigación que lo usan y dan retroalimentación del paquete, ha logradoser un Software que permite hacer todas las opciones básicas de MATLABy algunas avanzadas también, es similar a MATLAB y permite cómputosecuencial y paralelo, pero no busca una compatibilidad total, por ello haydiferencias entre ambos paquetes. Scilab provee una forma para tratar deimportar código de MATLAB y generar su equivalente en Scilab.Algunas diferencias básicas son:

• Funciones: Las funciones en Scilab no son consideradas como archivospor separado –como archivos con extensión M en MATLAB–, unao más funciones pueden ser definidas en un solo archivo y el nom-bre de archivo no necesariamente tiene que estar relacionado con elnombre de las funciones. También, la(s) función(es) no se cargaránautomáticamente en Scilab, como lo es en MATLAB, después de quesu nombre es invocado. Por lo general, se tiene que ejecutar el co-mando GETF(“funcion_name”) antes de ser capaz de utilizar la fun-ción. Las funciones también se pueden definir en línea con el comandodeff, además en Scilab para ejecutar un archivo de comandos se debe deusar exec(“archivo”), en MATLAB solo es necesario escribir el nombredel archivo.

• Comentarios: En MATLAB los comentarios inician con %, en Scilablos comentarios inician con //

[email protected] 24 Antonio Carrillo Ledesma

Page 26: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

• Variables: En Scilab las variables predefinidas usualmente tienen el pre-fijo % (%i, %inf, etc) estas son protegidas y no pueden ser redefinidas.MATLAB predefine a las variables i y j como la unidad imaginaria ypueden ocasionar problemas si se tratan de usar estas en índices dearreglos, esto no pasa en Scilab.

• Variables Booleanas: En Scilab las variables booleanas son %T, %F y0, 1 en MATLAB, ellas corresponden con los conceptos de verdadero yfalso respectivamente. Haciendo uso de las variables booleanas puedenno producir el mismo valor en MATLAB como en Scilab. Por ejemplox=[1,2]; x([1,1]) [which is NOT x([%T,%T])] retorna [1,1] en SCILABy [1,2] en MATLAB. También si x es una matriz x(1:n,1)=[] or x(:)=[]no son validas en MATLAB.

• Polinomios: En Scilab los polinomios y las matrices polinomiales sondefinidas por la función poly, ellas son consideradas como vectores decoeficientes en MATLAB.

• Graficación: Excepto para los gráficos simples plot y mesh en MATLABy plot3D en Scilab, estos no son compatibles y no siempre es posibleobtener gráficos con la calidad de MATLAB.

• En Scilab existe un tipo de dato distinto, las listas, que en la prácticapermiten definir una nueva clase. Aunque hay también celdas y estruc-turas como en MATLAB, Scilab en sus últimas versiones recomiendausar las listas.

Estas y otras diferencias hacen que no sean compatibles los programasde MATLAB en Scilab, pero si se usa como una plataforma en la cual se leenseñe a los alumnos la sintaxis del paquete, Scilab proporciona todas lascapacidades básicas de MATLAB.Por otro lado, Scilab tiene una interfaz para integrar funciones escritas

en C o Fortran de manera relativamente sencilla, al menos para los tipos dedatos habituales. También, puede ser llamado desde un programa en Fortran,C, C++ o Java las rutinas de Scilab, o incluso traducir un programa de Scilaba Fortran.En cuanto al ambiente de desarrollo, Scilab instala todo lo necesario para

un trabajo cómodo y funcional. Ya que permite abrir el editor de texto enel cual podemos hacer la depuración del mismo, ejecutar los programas de

[email protected] 25 Antonio Carrillo Ledesma

Page 27: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

demostración, acceder a las ventanas gráficas, controlar la ejecución en curso,abrir ficheros y ejecutarlos, observar el estado de las variables definidas, entreotras cosas.

2.5 Scipy

El paquete Scipy (véase [29]) es imposible condensar en unas pocas páginastodas las posibilidades de un lenguaje de propósito general como Python(véase [30]). Al ser este un lenguaje interpretado, puede teclearse línea alínea desde la entrada de comandos, pero también es posible usar ficheros,estos por claridad suelen tener la extensión .py, éste podría ser ejecutado conla orden python nombre_fichero.py. En este sentido es similar a MATLAB.Ya que en su filosofía no ha tratado de imitar a ningún otro paquete y

tiene detrás el respaldo de un auténtico lenguaje de programación orientadoa objetos e interpretado que también puede ser compilado para ganar veloci-dad en la ejecución. Este hecho le confiere una gran potencia y la capacidadde beneficiarse de las mejoras del lenguaje base y posee herramientas secuen-ciales y paralelas –en memoria compartida y distribuida además de usar losCores gráficos CUDA (GPUs) de las tarjetas NVIDIA–.Algunas diferencias básicas son:

• La sintaxis para introducir arreglos debe de incluir comas entre loselementos. Además, debe haber tantos símbolos “[” como dimensionesdel arreglo –y sus correspondientes cierres–.

• Los índices en los arreglos empiezan en 0.

• Es posible indicar el tipo de dato de cada elemento del arreglo en sucreación.

• Existen verdaderas operaciones entre enteros, como en C.

• Salvo los tipos de datos muy simples, todos los demás objetos se pasande una función lo hacen por referencia.

• En los arreglos de dos dimensiones las operaciones * y / se realizanelemento a elemento. La multiplicación de matrices y la multiplicaciónpor la inversa deben hacerse con dot e inv. Pero también se puede usarel tipo matrix en lugar de un arreglo, donde se recupera una sintaxissimilar a MATLAB.

[email protected] 26 Antonio Carrillo Ledesma

Page 28: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

En cuanto al entorno de programación por omisión se tiene acceso a IDLE(véase [46]) es el entorno de desarrollo típico de Python. Permite compati-bilizar una ventana interactiva con la edición de los programas. La ventanainteractiva es similar a una consola normal de IPython (véase [47]), peropermite ver de forma gráfica los módulos accesibles, las clases y sus méto-dos, y sobre todo, una ventana de depuración que puede ser de gran ayuda.Existen otros entornos de programación como son Pydev (véase [48]), el cuales un programa que permite desarrollar código dentro del entorno de pro-gramación ECLIPSE (véase [49]). Otra opción es usar The Eric PythonIDE (véase [50]), es cual es un auténtico entorno de desarrollo y gestión deproyectos de Python, este permite trabajar varias ventanas e incorpora eldepurador.

2.6 Ventajas, Desventajas y Carencias

Notemos que el tener múltiples herramientas para realizar operaciones e-lementales y avanzadas de cálculo numérico, es en sí misma una gran ventaja.Para los centros universitarios y usuarios ocasionales, las herramientas deSoftware libre son una herramienta invaluable. En el caso de empresas ousuarios avanzados que requieren usar opciones especializadas o generadaspor terceros, MATLAB destaca como la mejor herramienta de trabajo.Pero hay que hacer notar que:

• Funcionalidades básicas: Todos los paquetes implementan las funciona-lidades básicas, ya que todos llevan años desarrollándose.

• Funcionalidades especializadas: Por mucho, MATLAB tiene implemen-tadas cientos de funciones especializadas que pueden ser muy útiles parausuarios avanzados, pero rara vez son usados por los usuarios noveleso cotidianos.

• Gráficos e imágenes: Todos los paquetes permiten hacer gráficos en 2Dy 3D y controlar las marcas, poner títulos, etc. Pero los que mejoresprestaciones tienen para los usuarios finales son MATLAB, FreeMat yScilab.

• Potencia del lenguaje de programación: En este caso Scipy destaca porsu modularidad, por tener una orientación a objetos más convencional,por su mayor precisión en los tipos de datos y porqué Python posee

[email protected] 27 Antonio Carrillo Ledesma

Page 29: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

muchos módulos que permiten integrar otras tareas típicas de progra-mación con el cálculo numérico.

• Fiabilidad: En los paquetes en desarrollo son comunes las caídas delprograma, pero MATLAB destaca por ser más fiable que los demás.

• Información: MATLAB es el paquete con una abundante bibliografíay la propia ayuda del programa. FreeMat y Octave también tienemanuales aceptables y mucha información en Internet, aunque la ayudaes escasa. La documentación de Scipy es algo escasa, pero se estatrabajando en ella. Scilab tiene menos difusión y al final casi toda ladocumentación proviene de su página Web oficial, pero la ayuda delprograma es buena.

• Facilidad de Manejo: Ninguno de los programas presenta grandes difi-cultades a la hora de su utilización. MATLAB destaca por su entornointegrado, por las facilidades gráficas y por la opción de realizar ac-ciones desde sus menús. Pero en menor o mayor medida, todos lospaquetes presentan entornos de desarrollo funcional, pero perfectible.

• Costo: El costo de las diversas versiones de MATLAB supera los dos milpesos por licencia estudiantil, en el caso del Software libre, los paquetesse pueden descargar de la red sin más costo que el acceso a Internet.

Así, es posible resumir sus características de los paquetes libres como:

• FreeMat y Octave son programas con una sintaxis muy similar a MAT-LAB. Su uso no debe de suponer problemas para aquellos usuarioshabituados a usar MATLAB. En el caso de Octave quizás echará demenos algunas funciones, pero las que posee cubren un gran espectrode aplicaciones, y a partir de ellas se pueden implementar fácilmentelas que falten, por otro lado, ambos proyectos son jóvenes y con granempuje por parte de la comunidad GNU, lo cual, en algunos años per-mitirá tener productos maduros y de gran calidad, pero por el momentoel desarrollo de la interfaz de usuario es algo limitada, al igual que sudocumentación, pero permiten hacer uso de los cada vez más comunesmultiCores en los equipos de cómputo mediante el cómputo en paralelo.

[email protected] 28 Antonio Carrillo Ledesma

Page 30: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

• Scilab es también parecido a MATLAB, pero dado que no busca teneruna sintaxis similar, los nombres de las funciones pueden cambiar. Hayguías de paso de una herramienta a otra (véase [51]). Además, existela utilidad de conversión directa de un fichero de MATLAB a uno deScilab. El comando se llama mfile2sci, aunque esta herramienta no esperfecta, es sin duda muy interesante contar con esta posibilidad.

• En cuanto a Scipy, es el más diferente de MATLAB, pero es un lenguajerico en funcionalidades, también permite usar herramientas secuen-ciales y paralelas –en memoria compartida y distribuida además deusar los Cores gráficos CUDA (GPUs) de las tarjetas NVIDIA–. Apesar de que al principio puede parecer algo más pesado escribir conScipy, pronto se comprueba la elegancia del lenguaje de programacióny su lógica. Ser estrictos permite, a la larga, evitar errores y organi-zar mejor las ideas del programador. Además, hay que destacar losnumerosos módulos de Python para tareas distintas a la del cálculonumérico: transmisión de datos por Internet, e-mail, manejo de basesde datos, creación de interfaces gráficas, etc.

[email protected] 29 Antonio Carrillo Ledesma

Page 31: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

3 Paquetes Estadísticos

Los paquetes estadísticos, son programas matemáticos que ofrecen un en-torno de desarrollo integrado (IDE) con un lenguaje de programación propiocon un amplio abanico de herramientas la lectura, manipulación, análisis ygraficación de datos estadísticos. Entre sus prestaciones básicas destacan:

• Análisis de datos mediante operadores para cálculos sobre arreglos,matrices y/o Tablas

• Tablas Cruzadas

• Reordenamiento de Datos

• Análisis de la Varianza (ANOVA)

• Frecuencias

• Estadística Descriptiva

• Estadística Lineal

• Estadística no Lineal

• Estadística Biestadística

• Pruebas Estadísticas Clásicas

• Análisis de Serie de Temporales

• Modelos de Regresión

• Clasificación

• Fiabilidad

• Categorías

• Clustering

• Validación de Datos

• Tendencias

[email protected] 30 Antonio Carrillo Ledesma

Page 32: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

• Gráficos y Diagramas

Actualmente, los paquetes estadísticos usados en la carrera de Actuaríaen la Facultad de Ciencias son (véase [2]):

• SPSS (véase [32])

• R (véase [35])

• SAS (véase [31])

• PSPP (véase [33])

• EViews (véase [52])

• Gretel (véase [53])

• Stata (véase [51])

• Statgraphics (véase [55])

• Statistica (véase [56])

• Systat (véase [57])

• Vensim (véase [58])

• Maple (véase [59])

• Mathematica (véase [60])

• MATLAB (véase [25])

• FreeMat (véase [27])

• Octave (véase [28])

• Maxima (véase [61])

• Scipy (véase [29])

En el presente trabajo nos centraremos en los tres primeros paquetes,pero el resto de los paquetes son muy usados ya sea por sus características,facilidad de uso o la accesibilidad del paquete para los estudiantes. Ya que lospaquetes de SPSS y SAS en cualquiera de sus versiones, es difícil conseguirversiones académicas de costo reducido para instituciones educativas.

[email protected] 31 Antonio Carrillo Ledesma

Page 33: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

3.1 SPSS

El paquete SPSS (véase [32]) es un programa estadístico informático muyusado en las ciencias sociales y las empresas de investigación de mercado.Originalmente SPSS fue creado como el acrónimo de Statistical Package forthe Social Sciences aunque también se ha referido como "Statistical Productand Service Solutions". Sin embargo, en la actualidad la parte SPSS delnombre completo del Software (IBM SPSS) no es acrónimo de nada.Es uno de los programas estadísticos más conocidos teniendo en cuenta

su capacidad para trabajar con grandes bases de datos y un sencillo interfacepara la mayoría de los análisis. En las últimas versiones de SPSS se podíanrealizar análisis con millones de registros y miles de variables. El programaconsiste en un módulo base y módulos anexos que se han ido actualizandoconstantemente con nuevos procedimientos estadísticos. Cada uno de estosmódulos se compra por separado. SPSS soporta hacer interface con lenguajesde programación como Python, R, C, C++, Visual Basic, .NET

Existe una versión incipiente que pretende ser un reemplazo libre paraSPSS, se llama PSPP (véase [33]) con una interfaz llamada PSPPire (véase[34]), esta es aplicación de Software libre para el análisis de datos multi-plataforma, se presenta en modo gráfico y está escrita en el lenguaje de pro-gramación C. Usa la biblioteca científica GNU para sus rutinas matemáticas,y plotutils para la generación de gráficos. PSPP puede importar formatos de:Gnumeric, OpenDocument, hojas de Excel, bases de datos Postgres, valoresseparados por coma y archivos ASCII. Puede exportar archivos en formatoSPSS y archivos ASCII. Algunas de las bibliotecas usadas por PSPP puedenser accedidas vía programación.

3.2 R

El paquete R (véase [35]) es un lenguaje y entorno de programación paraanálisis estadístico y gráfico. Se trata de un proyecto de Software libre,resultado de la implementación GNU del premiado lenguaje S. SPSS, R yS-Plus –versión comercial de S– son, probablemente, los tres lenguajes másutilizados en investigación por la comunidad estadística, siendo además muypopulares en el campo de la investigación biomédica, la bioinformática y lasmatemáticas financieras. A esto contribuye la posibilidad de cargar diferentesbibliotecas o paquetes con finalidades específicas de cálculo o gráfico.

[email protected] 32 Antonio Carrillo Ledesma

Page 34: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

Además, R puede integrarse con distintas bases de datos y existen bi-bliotecas que facilitan su utilización desde lenguajes de programación inter-pretados como Perl y Python. R soporta hacer interface con lenguajes deprogramación como C, C++ y Fortran.Otra de las características de R es su capacidad gráfica, que permite

generar gráficos con alta calidad. R posee su propio formato para la do-cumentación basado en LaTeX (véase [24]). R también puede usarse comoherramienta de cálculo numérico, campo en el que puede ser tan eficaz comootras herramientas específicas tales como FreeMat, GNU Octave y su equi-valente comercial, MATLAB. Se ha desarrollado una interfaz, RWeka parainteractuar con Weka (véase [62]) que permite leer y escribir ficheros en elformato arff y enriquecer R con los algoritmos de minería de datos de dichaplataforma.Los ambientes de desarrollo integrado para R existen como proyectos

externos, como pueden ser editores–que sólo soportan la sintaxis–, los IDEs(Integrate Development Envairoments) y los GUI (Graphical User Interfaces)–permiten editar, correr y depurar código desarrollado para R–. Hay másde 20 proyectos activos, dos de los más conocidos son Tinn-R (véase [63]) yRStudio (véase [64]).

3.3 SAS

SAS Institute es uno de los principales fabricantes de business intelligenceSoftware (véase [65]). Su nombre es el acrónimo de statistical analysis sys-tems («sistemas de análisis estadístico») aunque, posteriormente, al extendersu oferta de productos más allá de los meramente dedicados al análisis es-tadístico, pasó a utilizarlo como nombre propio. El primer producto de SASInstitute fue el SAS Software package (véase [31]), un lenguaje de progra-mación para el análisis estadístico de datos en mainframes de IBM.Actualmente, este lenguaje de programación, llamado SAS base, es el

motor de una serie de herramientas para la dirección estratégica de empresas,la gestión del riesgo financiero, el desarrollo de modelos de minería de datos,etc.El lenguaje SAS opera principalmente sobre tablas de datos: puede leer-

las, transformarlas, combinarlas, resumirlas, crear informes a partir de ellas,etc. El núcleo del lenguaje (conocido habitualmente como SAS Base) incluye:

• Pasos data que permiten realizar operaciones sobre las filas de un con-

[email protected] 33 Antonio Carrillo Ledesma

Page 35: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

junto de datos.

• Procedimientos de manipulación de datos que permiten ordenar tablas,enlazarlas, etc.

• Un intérprete de SQL.

• Un super lenguaje de macros.

SAS Institute comercializa paquetes de procedimientos adicionales parael análisis estadístico de los datos, tales como:

• SAS/IML, módulo que implementa un lenguaje alternativo similar aOctave, MATLAB o R.

• SAS/STAT, un módulo con procedimientos para realizar determinadosanálisis estadísticos (regresiones, etc.)

• SAS/ETS para el análisis estadístico de series temporales

• SAS/OR para la resolución de problemas de investigación operativa

• SAS/GRAPH para generar gráficos

Además, SAS Institute ha desarrollado aplicaciones, denominadas inter-faces, tales como SAS Enterprise Guide, SAS Data Integration Studio, SASEnterprise Miner y otras que generan código SAS para aplicaciones específi-cas: ETL, minería de datos, etc.

3.4 Ventajas, Desventajas y Carencias

Las organizaciones actuales, manejan una gran cantidad de información,la cual puede o no estar dispersa en sus múltiples sistemas operacionales.Además, en un mercado tan competitivo como el actual, las organizacionesfocalizan sus recursos en las estrategias más adecuadas para conducir a lacompañía hacia el éxito. Los paquetes estadísticos pueden ayudar a conseguireste objetivo, completando la inversión ya realizada en sistemas operacionalesy el hecho de usar paquetes estadísticos que tengan integrado el manejo delas grandes bases de datos ofrece beneficios adicionales.De los paquetes mencionados, SAS ofrece soluciones en forma de una suite

completa para la de gestión de datos y Software analítico para encontrar el

[email protected] 34 Antonio Carrillo Ledesma

Page 36: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

llamado poder del conocimiento, pero el costo de las versiones completas esprohibitivo para la gran mayoría de las instituciones educativas, en particularpara la UNAM. En general, los paquetes estadísticos proveen un ambienteintegrado de análisis de datos, de la gran cantidad de Software existente, ladeterminación de cual usar en un caso particular, depende de la cantidad dedatos y la forma de acceder a ellos.Por ello, el resto de los paquetes estadísticos propietarios y libres ofrecen

una ventaja competitiva, al permitirle al profesor y sus estudiantes contarcon versiones completas y funcionales en las que pueden ser aplicados losconocimientos adquiridos en los diversos cursos de la carrera de Actuaría,dejando el manejo especializado de paquetes como SAS a cursos avanzados opara cuando el educando realice sus prácticas profesionales. De esta forma sepueden preparar a los estudiantes para aplicar sus conocimientos al egresar endiversas áreas de la carrera de Actuaría y con pocos conocimientos técnicosadicionales puedan laborar en pequeñas, medianas y grandes empresas.

[email protected] 35 Antonio Carrillo Ledesma

Page 37: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

4 Paquetes Ofimáticos

En la actualidad, los llamados paquetes ofimáticos, no son otra cosa queprogramas de cómputo integrado, que permiten automatizar multiples ta-reas que permiten idear, crear, manipular, transmitir, almacenar informaciónnecesaria en una oficina. Entre sus prestaciones básicas destacan:

• Procesamiento de Textos

• Hojas de Cálculo

• Bases de Datos

• Herramientas de Presentación y Multimedia

Existe una gran cantidad de paquetes ofimáticos, que van, desde los ins-talados en el equipo hasta los asequible a través de la Web, entre los máscomunes son:

• Microsoft Office (véase [18])

• Libre Office (véase [20])

• OpenOffice (véase [19])

• Calligra (véase [22])

• Google Docs (véase [21])

• Lotus Symphony (véase [23])

4.1 Procesamiento de textos

Existe una gran cantidad de usos para los programas de edición de texto,pero en las carreras de la Facultad de Ciencias y en particular para la ca-rrera de Actuaría, la edición de textos con tipografía científica es común. Espor ello que la gran mayoría de los procesadores de textos no proporcionanlas herramientas necesarias para incluir en el texto fórmulas y/o notaciónmatemática. En caso se proveer dichas herramientas, muchas de ellas son detedioso uso, pues están diseñadas para uso ocasional.

[email protected] 36 Antonio Carrillo Ledesma

Page 38: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

Para subsanar este hecho, existen herramientas y editores hechos a ex-profeso, para permitir la edición de textos científicos en los cuales numerarecuaciones, usar tipografía matemática, manipular bibliografía y referenciascruzadas es una tarea sencilla de realizar.Existe una gran variedad de paquetes para la edición de textos científicos

–los cuales existen tanto en las plataformas de Windows, Linux, Mac–,entre los que destacan:

• Editor de ecuaciones integrado en Word en Microsoft Office (véase [18])

• MathType para Word en Microsoft Office para Windows (véase [66])

• Scientific WorkPlace LaTex para Windows (véase [67])

• Gummi LaTeX (véase [68])

• Kile LaTeX (véase [69])

• LED LaTeX (véase [70])

• LyX LaTeX (véase [71])

• Texmaker LaTeX (véase [72])

• TeXnicCenter LaTeX (véase [73])

• TextPad LaTeX (véase [74])

• TeXstudio LaTeX (véase [75])

• WinEdt LaTeX (véase [76])

• Formula de Libre Office (véase [20])

• Math de OpenOffice (véase [19])

• Formula de Calligra (véase [22])

Salvo para los productos de Microsoft Office, el resto de los paquetestienen una curva de aprendizaje de media a alta, pero en contraste permitendesarrollar textos y gráficos con tipografía cientifica de alta calidad. Enla Facultad de Ciencias, desde hace ya varios años, semestre a semestre seimparten cursos a estudiantes, tesistas y profesores de LaTeX y el manejo de

[email protected] 37 Antonio Carrillo Ledesma

Page 39: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

uno o mas editores que lo soportan; una cantidad importante de ellos se hanimpartido en las Aulas y Talleres del Departamento de Matemáticas en elTlahuizcalpan, además de contar con el repositorio oficial de LaTeX (véase[83]) dentro de la Facultad.

4.2 Hojas de Cálculo

Las Hojas de cálculo, es un Software a través del cual se pueden usar datosnuméricos y realizar cálculos automáticos de números que están en una tabla.También es posible automatizar cálculos complejos al utilizar una gran can-tidad de parámetros y al crear tablas llamadas hojas de Trabajo.Las hojas de cálculo permiten a los usuarios elaborar tablas y formatos

que incluyan cálculos matemáticos mediante fórmulas, las cuales pueden usaroperadores matemáticos como son: + (suma), - (resta), * (multiplicación)./ (división), y ^(exponenciación); además de poder utilizar elementos de-nominados funciones como por ejemplo: Suma(), Promedio(), BuscarV(),etc.Así mismo las hojas de cálculo son útiles para gestionar "Listas" o "Bases

de Datos"; es decir Ordenar y Filtrar la información. Por lo tanto, la hojade cálculo es una herramienta multiuso que sirve tanto para actividades deoficina, que implican la organización de grandes cantidades de datos, comopara niveles estratégicos y de toma de decisiones al crear representacionesgráficas de la información sintetizada.Existen una gran variedad de paquetes para el manejo hojas de cálculo

–los cuales existen tanto en las plataformas de Windows, Linux, Mac–,entre los que destacan:

• Excel: Paquete de Microsoft Office (véase [18])

• Calc: Paquete Libre Office (véase [20])

• OpenCalc: Paquete OpenOffice (véase [19])

• Spread Sheet: Google Docs (véase [21])

• Sheets: Paquete Calligra (véase [22])

Por otro lado, Microsoft VBA (Visual Basic for Applications) es el lenguajede macros de Microsoft Visual Basic que se utiliza para programar aplica-ciones Windows y que se incluye en varias aplicaciones Microsoft. VBA per-mite a usuarios y programadores ampliar la funcionalidad de programas de

[email protected] 38 Antonio Carrillo Ledesma

Page 40: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

la suite Microsoft Office. Visual Basic para Aplicaciones es un subconjuntocasi completo de Visual Basic 5.0 y 6.0.Microsoft VBA viene integrado en aplicaciones de Microsoft Office, como

Word, Excel, Access y PowerPoint. Prácticamente cualquier cosa que sepueda programar en Visual Basic 5.0 o 6.0 se puede hacer también dentrode un documento de Office, con la sola limitación que el producto final no sepuede compilar separadamente del documento, hoja o base de datos en quefue creado; es decir, se convierte en una macro (o más bien súper macro).Esta macro puede instalarse o distribuirse con sólo copiar el documento,presentación o base de datos.Su utilidad principal es automatizar tareas cotidianas, así como crear

aplicaciones y servicios de bases de datos para el escritorio. Permite accedera las funcionalidades de un lenguaje orientado a eventos con acceso a la APIde Windows.Al provenir de un lenguaje basado en Basic tiene similitudes con lenguajes

incluidos en otros productos de ofimática como Libre Office y Openoffice, perono hay compatibilidad entre productos.Así también, es común que en los cursos de la carrera de Actuaría, se

requiera hacer el análisis estadísticos de datos, esto se realizan mediante eluso de complementos de Excel –Herramientas para análisis y Solver–. Endonde al usar estas herramientas, se proporciona los datos y parámetros paracada análisis y la herramienta utilizará las funciones de macros estadísticas otécnicas correspondientes para realizar los cálculos y mostrar los resultadosen una tabla de resultados. Algunas herramientas generan gráficos ademásde tablas de resultados.Entre las herramientas para análisis se incluyen:

• Análisis de Fourier

• Correlación

• Covarianza

• Estadística descriptiva

• Generación de números aleatorios

• Histograma

• Jerarquía y percentil

[email protected] 39 Antonio Carrillo Ledesma

Page 41: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

• Media móvil

• Muestreo

• Prueba t

• Prueba t para varianzas de dos muestras

• Prueba z

• Regresión

• Suavización exponencial

• Varianza

El acceso a tablas de Excel usando Visual Basic for Applications, ademásdel uso de los complementos de Excel –Herramientas para análisis y Solver–para manejo de datos, ha generalizado el uso de los paquetes de MicrosoftOffice, esto redunda en el uso de dicha suite en una importante cantidad decursos dentro de la carrera de Actuaría de la Facultad de Ciencias.

4.3 Bases de Datos

Una parte importante de la Modelación Matemática es trabajar con datosde prueba, lo más cercano posible a la realidad. Ello implica que, es nece-sario contar con mecanismos para almacenar, editar y consultar una cantidadgrande de datos, esto se logra usando las bases de datos.Existen una gran variedad de paquetes para el manejo de base de datos

–los cuales corren en las plataformas de Windows, Linux, Mac–, entre losque destacan:

• Access en Microsoft Office para Windows (véase [18])

• Microsoft SQL Server (véase [78])

• PostgreSQL (véase [79])

• MySQL (véase [80])

• MongoBD (véase [81])

[email protected] 40 Antonio Carrillo Ledesma

Page 42: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

En donde, entendemos a un Sistema de Gestión de Bases de Datos (SGBD)como un conjunto de programas que permiten el almacenamiento, modifi-cación y extracción de la información en una base de datos, además de pro-porcionar herramientas para añadir, borrar modificar y analizar los datos.Los usuarios pueden acceder a la información usando herramientas específi-cas de interrogación y de generación de informes, o bien mediante aplicacionesal efecto.Los SGBD también proporcionan métodos para mantener la integridad

de los datos, para administrar el acceso de usuarios a los datos y recuperarla información si el sistema se corrompe. Permite presentar la informaciónde la base de datos en variados formatos. La mayoría de los SGBD incluyenun generador de informes. También puede incluir un módulo gráfico quepermita presentar la información con gráficos y diagramas.Hay muchos tipos de SGBD distintos según manejen los datos y muchos

tamaños distintos según funcionen sobre ordenadores personales y con pocamemoria a grandes sistemas que funcionan en mainframes con sistemas dealmacenamiento especiales.Generalmente se accede a los datos mediante lenguajes de interrogación,

lenguajes de alto nivel que simplifican la tarea de construir las aplicaciones.También simplifican la interrogación y la presentación de la información.Un SGDB permite controlar el acceso a los datos, asegurar su integridad,gestionar el acceso concurrente a ellos, recuperar los datos tras un fallo delsistema y hacer copias de seguridad.El uso generalizado de los paquetes de Microsoft Office, en particular el

acceso a el paquete Access mediante tablas de Excel usando Visual Basicfor Applications, además del uso de los complementos de Excel para manejode datos, hace que sean propicios para que un importante número de cur-sos dentro de la carrera de Actuaría de la Facultad de Ciencias hagan usoextensivo de dicha suite.

4.4 Herramientas de Presentación y Multimedia

El programa líder del mercado es Microsoft PowerPoint (véase [18]), estees un programa de presentación desarrollado por la empresa Microsoft parasistemas operativos Microsoft Windows y Mac OS, ampliamente usado endistintos campos como la enseñanza, negocios, etc. Pero todos los paquetesofimáticos tienen una herramienta pera realizar presentaciones, en algunoscasos son altamente compatibles con la desarrollada por Microsoft.

[email protected] 41 Antonio Carrillo Ledesma

Page 43: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

Estos programas se han diseñado para hacer presentaciones con textoesquematizado, animaciones de texto e imágenes prediseñadas o importadasdesde imágenes de la computadora. Se le pueden aplicar distintos diseñosde fuente, plantilla y animación. Este tipo de presentaciones suelen ser másprácticas que las de los paquetes de edición de textos.Las herramientas de Presentación vienen integrados en los paquetes ofimá-

ticos como un elemento más, que puede aprovechar las ventajas que le ofrecenlos demás componentes del paquete para obtener un resultado óptimo.En el caso de PowerPoint, se puede usar como complemento para la edi-

ción de texto científico a MathType (véase [66]) para Microsoft Office, este esun paquete adicional pero es uno de los más usados en cuanto a la tipografíamatemática.Por otro lado, esta ganando terreno en la Facultad de Ciencias el uso

de Beamer (véase [77]), el cual es una clase de LaTeX (véase [24]) parala creación de presentaciones. Este funciona con pdflatex, dvips, LyX entreotros. Al estar basado en LaTeX, Beamer es especialmente útil para prepararpresentaciones en las que es necesario mostrar gran cantidad de expresionesmatemáticas. En los últimos semestres se ha hecho una amplia difusión a lospaquetes que usan a LaTeX como base, pues son ampliamente usados por lacomunidad científica mundial.

4.5 Integración en la Carrera de Actuaría

El uso de herramientas de ofimática esta integrado a la carrera de Actuaríadesde ya hace mucho tiempo, pero la gran mayoría se realiza con productosde Microsoft Office, lo cual no representa ningún problema técnico, pero si unproblema para la institución y estudiantes, ya que las versiones actualmenteusadas, no son del todo compatibles entre sí, ello implica que se requiere otener la última versión del producto o diferentes versiones del mismo paratrabajos cotidianos.Para la Facultad de Ciencias, el contar con las licencias necesarias para

que cada máquina a la que los alumnos tienen acceso cuente con una, es enextremo prohibitivo por el costo. Esto mismo sucede en el caso de los estudi-antes, pues el costo de las licencias para uso académicos superan los mil pesosen las versiones que tengan todas las características usadas comúnmente enlos cursos de la Facultad.Es por ello que el uso de herramientas de Software libre se visualiza como

un reemplazo natural a los paquetes de Microsoft Office, pero la realidad

[email protected] 42 Antonio Carrillo Ledesma

Page 44: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

dista de ser tan simple. Ya que, actualmente no es posible obtener las carac-terísticas mínimas en Software libre para que puedan ser un reemplazo realde los paquetes de Microsoft Office. Este hecho ha ocasionado que existe unuso cada vez más generalizado entre profesores y alumnos a usar Softwaresin la licencia respectiva (véase apéndice B.3).

[email protected] 43 Antonio Carrillo Ledesma

Page 45: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

5 Consideraciones Finales y Conclusiones

Los paquetes comerciales –de Software privativo– en general proveen unambiente integrado de trabajo que pueden ser usados en la preparación deestudiantes para aplicar sus conocimientos al egresar en las diversas áreas delas carreras que imparte la UNAM–en particular de la carrera de Actuaría–esto les permite laborar en empresas pequeñas, medianas y grandes con unmínimo de capacitación técnica adicional.Además, en un mercado tan competitivo como el actual, las organiza-

ciones actuales focalizan sus recursos en las estrategias más adecuadas paraconducir a la compañía hacia el éxito. Los paquetes propietarios y los inci-pientes paquetes de Software libre pueden ayudar a conseguir este objetivo,completando la inversión ya realizada en sistemas operacionales.Pero el hecho de que las organizaciones actuales, manejan una gran can-

tidad de información, la cual puede o no estar dispersa en sus múltiplessistemas operacionales, requiere usar paquetes propietarios que tengan inte-grado el manejo de las grandes bases de datos distribuidas o centralizadas,esta integración ofrece beneficios adicionales.

Por otro lado, notemos que, una vez que un producto de Software libreha empezado a circular, rápidamente está disponible a un costo muy bajo.Al mismo tiempo, su utilidad no decrece. El Software, en general, podríaser considerado un bien de uso inagotable, tomando en cuenta que su costomarginal es pequeño y que no es un bien sujeto a rivalidad (la posesión delbien por un agente económico no impide que otro lo posea).Puesto que el Software libre permite el libre uso, modificación y redis-

tribución, a menudo encuentra un hogar entre usuarios para los cuales elcoste del Software no libre es a veces prohibitivo, o como alternativa a lapiratería (véase apéndice B.3). También es sencillo modificarlo localmente,lo que permite que sean posibles los esfuerzos de traducción a idiomas queno son necesariamente rentables comercialmente.La mayoría del Software libre se produce por equipos internacionales que

cooperan a través de la libre asociación. Los equipos están típicamente com-puestos por individuos con una amplia variedad de motivaciones, y puedenprovenir tanto del sector privado, del sector voluntario o del sector público.En México el Software Libre nació en las Universidades y los Centros de

Investigación. Es por eso que, desde hace tres décadas, los estudiantes y losprofesores usan Software libre para fines didácticos y de investigación. Las

[email protected] 44 Antonio Carrillo Ledesma

Page 46: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

universidades suelen optar por el uso de Software libre en vez de utilizarSoftware privativo porque satisface de una mejor manera sus necesidades decómputo, dada su naturaleza de apertura del código y la libertad de compartirlos resultados obtenidos. De forma colateral, no se tienen gastos adicionalesderivados del pago de licenciamientos.

5.1 Ventajas, Desventajas y Carencias del Software Li-bre

Notemos que la ventaja de tener múltiples herramientas para realizar opera-ciones elementales y avanzadas de paquetes de cálculo numérico, simbólico,estadístico y ofimático es en sí misma una gran ventaja. Para los centrosuniversitarios y usuarios ocasionales, las herramientas de Software libre sonuna herramienta invaluable, en el caso de empresas que requieren usar op-ciones avanzadas o generadas por terceros, los paquetes propietarios destacancomo herramientas de trabajo óptimas. Pero para todos los casos, hay quedestacar que:

• Funcionalidades básicas: Todos los paquetes implementan las funciona-lidades básicas, ya que todos los paquetes llevan años desarrollándose.

• Funcionalidades avanzadas: Por mucho, los paquetes propietarios tieneimplementadas cientos de funciones avanzadas que pueden ser muyútiles para usuarios avanzados, pero rara vez son usados por los usua-rios noveles o cotidianos.

• Fiabilidad: En los paquetes en desarrollo son comunes las caídas delprograma, pero en los Software propietarios destaca por ser más fiableque los demás.

• Información: El Software propietario son paquetes con una abundantebibliografía y la propia ayuda del programa.

• Facilidad de Manejo: Ninguno de los programas presenta grandes difi-cultades a la hora de su utilización. Pero en menor o mayor medida,todos los paquetes del Software libre presentan entornos de desarrollofuncional, pero perfectible.

• Costo: El costo de las diversas versiones de Software propietario sueleser prohibitivo para instituciones educativas y usuarios ocasionales, en

[email protected] 45 Antonio Carrillo Ledesma

Page 47: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

el caso del Software libre, los paquetes se pueden descargar de la red sinmás costo que el acceso a Internet y los medios de instalación cuandoson requeridos.

El Software libre es aun joven, en los miles de proyectos actuales se estatrabajando a diario en mejorar la parte computacional de los algoritmosinvolucrados en el paquete, haciendo y puliendo interfaces gráficas, generandoayuda en línea así como la documentación necesaria para que usuarios novelesy avanzados usen la mayor cantidad de opciones programadas en los paquetes.Para muestra de este maravilloso avance, tomemos el proyecto del ker-

nel de Linux y su uso en los sistemas operativos Android, Ubuntu, LinuxDebian, que actualmente corren en millones de equipos y contiene miles deaplicaciones y estan soportados por una gran cantidad de usuarios y empre-sas comerciales. Estos han logrado desplazar a muchos de sus competidorespor sus múltiples bondades y bajo costo de desarrollo, al rehusar miles deaplicaciones ya existentes que usan Software libre y permitir desarrollar otrotanto de aplicaciones bajo una plataforma que corre en los más diversosprocesadores.Así también, en los últimos años, muchos proyectos han pasados de se

simples programas en línea de comandos a complejas aplicaciones multi-plataformas –corren en distintos sistemas operativos como son Windows,Linux y Mac– con ambientes gráficos multimedia que en muchos casos hansuperado a sus contrapartes comerciales, por ejemplo los navegadores Webtipo FireFox y las suite ofimática tipo Libre Office, entre muchos otros

5.2 Integración del Software Libre y Propietario en laCarrera de Actuaría

El uso de programas de cómputo de Software libre esta cada día más in-tegrado al uso cotidiano que hacen profesores, ayudantes y estudiantes enla Facultad de Ciencias, pero todavía el Sistema Operativo Windows (véase[17]), así como paquetes de uso común, no ha sido posible encontrar unadecuado reemplazo, los más comunes son MATLAB, Mathematica, Maple,SPSS, SAS y Microsoft Office.Por otro lado, el uso de herramientas de ofimática también esta integrado

a la carrera de Actuaría desde hace mucho tiempo, pero la gran mayoríase realiza con productos de Microsoft Office, lo cual no representa ningúnproblema técnico, pero si un problema para la institución y estudiantes, ya

[email protected] 46 Antonio Carrillo Ledesma

Page 48: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

que las versiones actualmente usadas, no son del todo compatibles entre sí,ello implica que se requiere o tener la última versión del producto o diferentesversiones del mismo.Para la Facultad de Ciencias, el contar con las licencias necesarias para

que cada máquina a la que los alumnos tienen acceso cuente con una, es enextremo prohibitivo por el costo. Esto mismo sucede en el caso de los estudi-antes, pues el costo de las licencias para uso académicos superan los mil pesosen las versiones que tengan todas las características usadas comúnmente enlos cursos de la Facultad.Por lo anterior, el uso de herramientas de Software libre se visualizan

como un reemplazo natural a los paquetes comerciales como Microsoft Office,pero la realidad dista de ser tan simple. Ya que, actualmente no es posibleobtener las características mínimas en Software libre para que puedan serun reemplazo real de los paquetes comerciales. Este hecho ha ocasionado,que exista un uso cada vez más generalizado entre profesores, ayudantes yalumnos a usar Software sin la licencia respectiva (véase apéndice B.3).

5.3 Conclusiones

A diferencia de otros paquetes, SPSS, SAS, Microsoft Office, etc ofrecensoluciones en forma de una suite completa para la gestión de información paraencontrar el llamado poder del conocimiento, pero el costo de las versionescompletas y aún las educativas es prohibitivo para la gran mayoría de lasinstituciones educativas, en particular para la UNAM. Por ello, el resto de lospaquetes propietarios y libres ofrecen una ventaja competitiva, al permitirleal profesor y sus estudiantes contar con versiones completas y funcionalesen las que pueden ser aplicados los conocimientos adquiridos en los diversoscursos de la carrera.Por otro lado, para reforzar la apropiación del Software libre por parte

de la comunidad de la Facultad de Ciencias de la UNAM, es necesario pro-porcionar a la comunidad demostraciones y cursos cortos de las herramientasde Software libre, iniciando con mostrar el uso de sistemas operativos libresbasados en Linux. Ello es posible haciendo uso de los sistemas llamados"Live", ya que cada alumno puede probar y usar el sistema operativo en con-junto de cientos de herramientas libres, sin la necesidad de instalar Softwareen la máquina que utilice para practicar. Cuando el alumno se sienta cómodocon el sistema, es posible ayudarlo a instalar mediante tutoriales en línea ypresénciales el sistema en su equipo de cómputo.

[email protected] 47 Antonio Carrillo Ledesma

Page 49: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

Lo mismo es posible hacer, al preparar demostraciones del Software quepuede remplazar paquetes muy difundidos en la comunidad como son: MAT-LAB, Mathematica, Maple, SPSS, SAS y Microsoft Office. Estos cursos nonecesariamente se centrarían en las similitudes o diferencias entre paque-tes libres y propietarios, más bien, para cautivar a usuarios noveles y fu-turos ayudantes dar cursos completos de las herramientas libres mostrandosu aplicabilidad en diferentes ramas de las matemáticas aplicadas.Para realizar dichos cursos, se cuenta con todos los recursos necesarios.

Por un lado, se dispone de las aulas y talleres con Software libre instaladoen los equipos de cómputo, además, se pueden usar los sistemas "Live" quepueden ser proporcionados en DVDs o en unidades flash USB. Estas últimas,proporcionan mejor rendimiento, pueden ser actualizadas y reutilizados tan-tas veces como sea necesario para conocer uno o más sistemas operativos.Estos sistemas "Live" pueden ser generados por el propio usuario, usando lasdecenas de paquetes disponibles en Windows o Linux que generan sistemas"Live" a partir de las imágenes ISO bajadas de la red –de por ejemplo, desistemas operativos como Knoppix (véase [82])–.De esta forma, se puede cuadyvar a que alumnos, ayudantes y profesores

conozcan el mundo del Software libre, para que con el tiempo se adoptesu uso, sin dejar de lado, el proporcionar cuando sea necesario, cursos deSoftware privativo pero siempre teniendo en cuenta que se puede –en lamedida de lo posible– trabajar con paquetes alternativos, como los queproporciona Software libre.Además, el Software libre ofrecen una ventaja competitiva, al permitirle

al profesor y sus estudiantes contar con versiones completas y funcionales enlas que pueden ser aplicados los conocimientos adquiridos en los diversos cur-sos de la carrera de Actuaría, dejando el manejo especializado de paquetesa cursos avanzados o para cuando el educando realice sus prácticas profe-sionales. De esta forma se pueden preparar a los estudiantes para aplicarsus conocimientos al egresar en diversas áreas de la carrera de Actuaría ycon pocos conocimientos técnicos adicionales puedan laborar en pequeñas,medianas y grandes empresas.

[email protected] 48 Antonio Carrillo Ledesma

Page 50: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

A Consideraciones Sobre Instalación y Man-tenimiento de Equipos de Cómputo de UsoComún para Estudiantes

Primeramente notemos que, en cuanto a la instalación del Software en lascomputadoras de la Facultad de Ciencias para acceso común a estudiantes,ayudantes y profesores de tiempo completo y por horas, la instalación, man-tenimiento y actualización de equipos con sistema operativo Windows esrealizada por personal de la Coordinación de Cómputo de la Facultad deCiencias. Para ello, es necesario proporcionarles el Software y hacer unapetición para que se instale en uno o más equipos y en la mayoría de loscasos, la instalación sólo es posible hacer antes del inicio del semestre o fueradel horario laboral.Tomando esto en cuenta, es viable tener una cantidad adecuada de pa-

quetes de cómputo, que permitieran satisfacer las necesidades especializadasde la gran mayoría de los cursos y estos estar instalados en aquellos espa-cios en los cuales se asignarían los cursos además de las áreas comunes decómputo en la que los estudiantes requiriesen hacer uso de dichos paquetes.Además, de proporcionar un mecanismo para que los profesores y ayudantesque requieran enseñar algo con alguna versión privativa que no se disponga,sea implementada –en la medida de lo posible– en los paquetes disponibles.Pero hay que hacer notar, que no todas aquellas funciones que hace una

versión particular de un paquete, es posible hacerlas con otras versiones o pa-quetes alternativos. Esto es muy común con ciertas actividades especializadas–al hacer cálculo simbólico, cálculo numérico, manejo de datos y trabajar enentornos de desarrollo–. Ello implicaría, por un lado el restringir el softwareinstalado en los equipos de cómputo o por el otro instalar todos y cada unode los Softwares solicitados.El restringir el Software instalado, impediría al profesor –que así lo re-

quiera por la libertad de cátedra– el enseñar aquello que considera es nece-sario –en particular el manejo de uno o más paquetes especializados decómputo– para proporcionar las herramientas básicas a sus alumnos y queestos deben de dominar para aprobar su curso.En el caso de dar la flexibilidad, para que cada profesor solicite la insta-

lación del paquete o los paquetes que requiera para sus cursos, ello implicaque el Software solicitado puede o no contar con licencia adecuada de uso.Así, se estaría permitiendo que se tenga instalado Software del que se viola

[email protected] 49 Antonio Carrillo Ledesma

Page 51: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

la licencia de uso (véase apéndice B.3).En cuanto a tener la lista de Software que usaran todos los profesores

o ayudantes, en los más de cien cursos semestrales (véase [2]) es imposibleantes del inicio del curso por la forma de asignación de estos en las aulas ytalleres de Matemáticas en el Tlahuizcalpan. En cuanto a la solicitud parahacer la instalación correspondiente por parte de nosotros –los TécnicosAcadémicos– se requiere tener certeza de en que espacio de las 20 aulas ytalleres del Departamento de Matemáticas en el Tlhuizcalpan serán asignadostodos y cada uno de los cursos.De tal forma que, cuando se tienen equipos con sistema operativo Win-

dows, es necesario esperar a que las asignaciones de los cursos y sus res-pectivas peticiones de uso de paquetes de cómputo estén completas –estonunca es posible antes de la tercera o cuarta semana de clases–, entonceses posible proceder a realizar las solicitudes respectivas a los Técnicos de laCoordinación de Cómputo, esperando que en el transcurso de las siguientesdos o tres semana se inicie la respectiva instalación.Nótese que, por lo general, los cursos requieren el uso de los equipos de

cómputo y el Software solicitado en las primeras dos o tres semanas, esperarlas seis o más semana para tener acceso al Software no es una opción viable.

Por ello se han buscado opciones –no siempre las más adecuadas o lícitas(véase apéndice B.3)– para que sin importar en que espacio sea asignadoel curso –siempre y cuando el equipo de cómputo lo soporte– se tengadesde los primeros días de uso del espacio el paquete solicitado y en casosexcepcionales el tiempo de espera sea menor a una semana sin importar laplataforma –Windows o Linux– o el tipo de Software solicitado –libre oprivativo, en este último caso el profesor lo proporciona–.Para tener la flexibilidad anteriormente comentada, es necesario poder

contar con distintas versiones de sistemas operativos, de cada una de las ver-siones, tener independientemente los Service Pack. De tal forma que sea posi-ble instalar cada versión de Software solicitada en la plataforma adecuada,teniendo en cuenta que muchas versiones del Software son mutuamente ex-cluyentes para ser instaladas en una misma versión del sistema operativosimultáneamente.

Por todo lo anterior, el uso de máquinas virtuales (véase apéndice C)–que permiten tener múltiples versiones de sistemas operativos independi-entemente, así como de una versión particular tener por separado a cada una

[email protected] 50 Antonio Carrillo Ledesma

Page 52: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

de ellas con los respectivos Service Pack– es una opción viable para pro-porcionar el servicio de instalación centralizada de los diversos paquetes decómputo solicitados por los profesores de las diversas carreras de la Facultadde Ciencias. Esta opción minimiza los tiempos de espera para la instalaciónde un paquete en particular y agiliza las prestaciones que pueden dar losTécnicos Académicos a todos y cada uno de los más de cien grupos que seatienden semestralmente en las Aulas y Talleres del Tlahuizcalpan (véase[2]).

[email protected] 51 Antonio Carrillo Ledesma

Page 53: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

B Software Libre y Propietario

Hoy en día los usuarios disponemos de una gran variedad de opciones encuanto a Software se refiere. Por un lado, podemos emplear programas co-merciales que en general nos venden licencias para el uso del Software, la cual,es restrictiva y restringe su uso a una sola máquina o conjunto determinadode ellas.Por otro lado, existe el Software libre, desarrollados por usuarios y para

usuarios que, entre otras cosas, comparten los códigos fuente, el programaejecutable y dan libertades para estudiar, adaptar y redistribuir a quien asílo requiera el programa y todos sus derivados.

B.1 Software Libre

La definición de Software libre (véase [11], [12], [4], [5], [3] y [7]) estipula loscriterios que se tienen que cumplir para que un programa sea consideradolibre. De vez en cuando se modifica esta definición para clarificarla o pararesolver problemas sobre cuestiones delicadas. «Software libre» significa queel Software respeta la libertad de los usuarios y la comunidad. En térmi-nos generales, los usuarios tienen la libertad de copiar, distribuir, estudiar,modificar y mejorar el Software. Con estas libertades, los usuarios –tantoindividualmente como en forma colectiva– controlan el programa y lo quehace.Cuando los usuarios no controlan el programa, el programa controla a

los usuarios. El programador controla el programa y, a través del programa,controla a los usuarios. Un programa que no es libre, llamado «privativo opropietario», y es considerado por muchos como un instrumento de poderinjusto.El Software libre es la denominación del Software que respeta la liber-

tad de todos los usuarios que adquirieron el producto y, por tanto, una vezobtenido el mismo puede ser usado, copiado, estudiado, modificado, y re-distribuido libremente de varias formas. Según la Free Software Foundation(véase [11]), el Software libre se refiere a la libertad de los usuarios para eje-cutar, copiar, distribuir, y estudiar el mismo, e incluso modificar el Softwarey distribuirlo modificado.Un programa es Software libre si los usuarios tienen las cuatro libertades

esenciales:

[email protected] 52 Antonio Carrillo Ledesma

Page 54: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

0. La libertad de usar el programa, con cualquier propósito.

1. La libertad de estudiar cómo funciona el programa y modificarlo, adap-tándolo a tus necesidades.

2. La libertad de distribuir copias del programa, con lo cual puedes ayudara tu prójimo.

3. La libertad de mejorar el programa y hacer públicas esas mejoras a losdemás, de modo que toda la comunidad se beneficie.

Un programa es Software libre si los usuarios tienen todas esas liber-tades. Por tanto, el usuario debe ser libre de redistribuir copias, tanto concomo sin modificaciones, ya sea gratuitamente o cobrando una tarifa por ladistribución, a cualquiera en cualquier parte. El ser libre de hacer estas cosassignifica, entre otras cosas, que no tiene que pedir ni pagar el permiso.También debe tener la libertad de hacer modificaciones y usarlas en pri-

vado para su propio trabajo o pasatiempo, sin siquiera mencionar que exis-ten. Si publica sus cambios, no debe estar obligado a notificarlo a nadie enparticular, ni de ninguna manera en particular.La libertad de ejecutar el programa significa que cualquier tipo de persona

u organización es libre de usarlo en cualquier tipo de sistema de computación,para cualquier tipo de trabajo y finalidad, sin que exista obligación algunade comunicarlo al programador ni a ninguna otra entidad específica. Enesta libertad, lo que importa es el propósito de los usuarios, no el de losprogramadores. El usuario es libre de ejecutar el programa para alcanzarsus propósitos, y si lo distribuye a otra persona, también esa persona serálibre de ejecutarlo para lo que necesite; nadie tiene derecho a imponerle suspropios objetivos.La libertad de redistribuir copias debe incluir las formas binarias o eje-

cutables del programa, así como el código fuente, tanto para las versionesmodificadas como para las no lo estén. Distribuir programas en forma deejecutables es necesario para que los sistemas operativos libres se puedaninstalar fácilmente. Resulta aceptable si no existe un modo de producir unformato binario o ejecutable para un programa específico, dado que algunoslenguajes no incorporan esa característica, pero debe tener la libertad de re-distribuir dichos formatos si encontrara o programara una forma de hacerlo.Para que la libertad 1 y 3 de realizar cambios y publicar las versiones

modificadas tengan sentido, el usuario debe tener acceso al código fuente

[email protected] 53 Antonio Carrillo Ledesma

Page 55: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

del programa. Por consiguiente, el acceso al código fuente es una condiciónnecesaria para el Software libre. El «código fuente» ofuscado no es códigofuente real, y no cuenta como código fuente.La libertad 1 incluye la libertad de usar su versión modificada en lugar

de la original. Si el programa se entrega con un producto diseñado para eje-cutar versiones modificadas de terceros, pero rechaza ejecutar las suyas, unapráctica conocida como «tivoización» o «arranque seguro» [«lockdown»] lalibertad 1 se convierte más en una ficción teórica que en una libertad prác-tica. Esto no es suficiente. En otras palabras, estos binarios no son Softwarelibre, incluso si se compilaron desde un código fuente que es libre.Una manera importante de modificar el programa es agregándole subruti-

nas y módulos libres ya disponibles. Si la licencia del programa específica queno se pueden añadir módulos que ya existen y que están bajo una licenciaapropiada, por ejemplo si requiere que usted sea el titular de los derechos deautor del código que desea añadir, entonces se trata de una licencia demasi-ado restrictiva como para considerarla libre.La libertad 3 incluye la libertad de publicar sus versiones modificadas

como Software libre. Una licencia libre también puede permitir otras formasde publicarlas; en otras palabras, no tiene que ser una licencia de copyleft.No obstante, una licencia que requiera que las versiones modificadas no seanlibres, no se puede considerar libre.«Software libre» no significa que «no es comercial». Un programa libre

debe estar disponible para el uso comercial, la programación comercial y ladistribución comercial. La programación comercial de Software libre ya no esinusual; tal Software libre comercial es muy importante. Puede haber pagadodinero para obtener copias de Software libre, o puede haber obtenido copiassin costo. Pero sin tener en cuenta cómo obtuvo sus copias, siempre tiene lalibertad de copiar y modificar el Software, incluso de vender copias.El término Software no libre se emplea para referirse al Software dis-

tribuido bajo una licencia de Software más restrictiva que no garantiza estascuatro libertades. Las leyes de la propiedad intelectual reservan la mayoría delos derechos de modificación, duplicación y redistribución para el dueño delcopyright; el Software dispuesto bajo una licencia de Software libre rescindeespecíficamente la mayoría de estos derechos reservados.Los manuales de Software deben ser libres por las mismas razones que

el Software debe ser libre, y porque de hecho los manuales son parte delSoftware. También tiene sentido aplicar los mismos argumentos a otros tiposde obras de uso práctico; es decir, obras que incorporen conocimiento útil, tal

[email protected] 54 Antonio Carrillo Ledesma

Page 56: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

como publicaciones educativas y de referencia. La Wikipedia es el ejemplomás conocido.Tanto la Open Source Initiative como la Free Software Foundation mantie-

nen en sus páginasWeb (véase [11], [12], y [7]) oficiales listados de las licenciasde Software libre que aprueban.

B.1.1 Tipos de Licencias

Una licencia es aquella autorización formal con carácter contractual que unautor de un Software da a un interesado para ejercer "actos de explotaciónlegales". Pueden existir tantas licencias como acuerdos concretos se den entreel autor y el licenciatario. Desde el punto de vista del Software libre, existendistintas variantes del concepto o grupos de licencias:

Licencias GPL Una de las más utilizadas es la Licencia Pública Generalde GNU (GNU GPL). El autor conserva los derechos de autor (copyright),y permite la redistribución y modificación bajo términos diseñados para ase-gurarse de que todas las versiones modificadas del Software permanecen bajolos términos más restrictivos de la propia GNU GPL. Esto hace que sea im-posible crear un producto con partes no licenciadas GPL: el conjunto tieneque ser GPL.En la práctica esto hace que las licencias de Software libre se dividan en

dos grandes grupos, aquellas que pueden ser mezcladas con código licenciadobajo GNU GPL (y que inevitablemente desaparecerán en el proceso, al serel código resultante licenciado bajo GNU GPL) y las que no lo permiten alincluir mayores u otros requisitos que no contemplan ni admiten la GNUGPL y que por lo tanto no pueden ser enlazadas ni mezcladas con códigogobernado por la licencia GNU GPL.

Licencias estilo BSD Llamadas así porque se utilizan en gran cantidad deSoftware distribuido junto a los sistemas operativos BSD. El autor, bajo taleslicencias, mantiene la protección de copyright únicamente para la renunciade garantía y para requerir la adecuada atribución de la autoría en traba-jos derivados, pero permite la libre redistribución y modificación, incluso sidichos trabajos tienen propietario. Son muy permisivas, tanto que son fácil-mente absorbidas al ser mezcladas con la licencia GNU GPL con quienes soncompatibles. Puede argumentarse que esta licencia asegura "verdadero" Soft-

[email protected] 55 Antonio Carrillo Ledesma

Page 57: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

ware libre, en el sentido que el usuario tiene libertad ilimitada con respectoal Software, y que puede decidir incluso redistribuirlo como no libre.

Copyleft Hay que hacer constar que el titular de los derechos de autor(copyright) de un Software bajo licencia copyleft puede también realizar unaversión modificada bajo su copyright original, y venderla bajo cualquier licen-cia que desee, además de distribuir la versión original como Software libre.Esta técnica ha sido usada como un modelo de negocio por una serie deempresas que realizan Software libre (por ejemplo MySQL); esta prácticano restringe ninguno de los derechos otorgados a los usuarios de la versióncopyleft.

Comparación con el Software de código abierto Aunque en la prác-tica el Software de código abierto y el Software libre comparten muchas de suslicencias, la Free Software Foundation opina que el movimiento del Softwarede código abierto es filosóficamente diferente del movimiento del Softwarelibre. Los defensores del término "código abierto", en inglés open source,afirman que éste evita la ambigüedad del término en ese idioma que es freeen free Software.Mucha gente reconoce el beneficio cualitativo del proceso de desarrollo de

Software cuando los desarrolladores pueden usar, modificar y redistribuir elcódigo fuente de un programa. El movimiento del Software libre hace especialénfasis en los aspectos morales o éticos del Software, viendo la excelenciatécnica como un producto secundario de su estándar ético. El movimientode código abierto ve la excelencia técnica como el objetivo prioritario, siendola compartición del código fuente un medio para dicho fin. Por dicho motivo,la FSF se distancia tanto del movimiento de código abierto como del término"Código Abierto" (en inglés Open Source).Puesto que la OSI sólo aprueba las licencias que se ajustan a la Open

Source Definition (definición de código abierto), la mayoría de la gente lo in-terpreta como un esquema de distribución, e intercambia libremente "códigoabierto" con "Software libre". Aún cuando existen importantes diferenciasfilosóficas entre ambos términos, especialmente en términos de las motiva-ciones para el desarrollo y el uso de tal Software, raramente suelen tenerimpacto en el proceso de colaboración.Aunque el término "código abierto" elimina la ambigüedad de libertad

frente a precio (en el caso del inglés), introduce una nueva: entre los progra-

[email protected] 56 Antonio Carrillo Ledesma

Page 58: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

mas que se ajustan a la definición de código abierto, que dan a los usuariosla libertad de mejorarlos, y los programas que simplemente tiene el códigofuente disponible, posiblemente con fuertes restricciones sobre el uso de dichocódigo fuente. Mucha gente cree que cualquier Software que tenga el códigofuente disponible es de código abierto, puesto que lo pueden manipular. Sinembargo, mucho de este Software no da a sus usuarios la libertad de dis-tribuir sus modificaciones, restringe el uso comercial, o en general restringelos derechos de los usuarios.

B.2 Software Propietario

No existe consenso sobre el término a utilizar para referirse al opuesto delSoftware libre. La expresión Software propietario (véase [6]) proviene deltérmino en inglés "proprietary Software". En la lengua anglosajona, "pro-prietary" significa «poseído o controlado privadamente» («privately ownedand controlled»), que destaca la manutención de la reserva de derechos so-bre el uso, modificación o redistribución del Software. Inicialmente utilizado,pero con el inconveniente que la acepción proviene de una traducción literaldel inglés, no correspondiendo su uso como adjetivo en el español, de maneraque puede ser considerado como un barbarismo.El término "propietario" en español resultaría inadecuado, pues significa

que «tiene derecho de propiedad sobre una cosa», por lo que no podría califi-carse de "propietario" al Software, porque éste no tiene propiedad sobre nada(es decir, no es dueño de nada) y, además, no podría serlo (porque es una cosay no una persona). Así mismo, la expresión "Software propietario" podríaser interpretada como "Software sujeto a propiedad" (derechos o titularidad)y su opuesto, el Software libre, también está sujeto al derecho de autor. Otrainterpretación es que contrariamente al uso popular del término, se puedeafirmar de que "todo Software es propietario", por lo que la forma correctade referirse al Software con restricciones de uso, estudio, copia o mejora esla de Software privativo, según esta interpretación el término "propietario"podría aplicarse tanto para Software libre como Software privativo, ya quela diferencia entre uno y otro está en que el dueño del Software privativo lolicencia como propiedad privada y el de Software libre como propiedad social.Con la intención de corregir el defecto de la expresión "Software propi-

etario" aparece el llamado "Software con propietario", sin embargo se ar-gumenta contra del término "con propietario" justamente su similitud conproprietary en inglés, que sólo haría referencia a un aspecto del Software que

[email protected] 57 Antonio Carrillo Ledesma

Page 59: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

no es libre, manteniendo una de las principales críticas a éste (de "Softwaresujeto a derechos" o "propiedad"). Adicionalmente, si "propietario" refiere altitular de los derechos de autor (y está claro que no puede referir al usuario,en tanto éste es simplemente un cesionario), no resuelve la contradicción:todo el Software libre tiene también titulares de derechos de autor.La expresión Software no libre (en inglés non-free Software) es usado por

la FSF para agrupar todo el Software que no es libre, es decir, incluye alllamado en inglés "semi-free Software" (Software semilibre) y al "propietarySoftware". Asimismo, es frecuentemente utilizado para referirse al Softwareque no cumple con las Directrices de Software libre de Debian, las cualessiguen la misma idea básica de libertad en el Software, propugnada por laFSF, y sobre las cuales está basada la definición de código abierto de la OpenSource Initiative.Adicionalmente el Software de código cerrado nace como antónimo de

Software de código abierto y por lo tanto se centra más en el aspecto deausencia de acceso al código que en los derechos sobre el mismo. Éste serefiere sólo a la ausencia de una sola libertad por lo que su uso debe enfocarsesólo a este tipo de Software y aunque siempre signifique que es un Softwareque no es libre, no tiene que ser Software de código cerrado.La expresión Software privado es usada por la relación entre los conceptos

de tener y ser privado. Este término sería inadecuado debido a que, en una desus acepciones, la palabra "privado" se entiende como antónimo de "público",es decir, que «no es de propiedad pública o estatal, sino que pertenece a par-ticulares», provocando que esta categoría se interpretara como no referenteal Estado, lo que produciría la exclusión del Software no libre generado porel aparato estatal. Además, el "Software público" se asocia generalmente conSoftware de dominio público.

B.3 Implicaciones Económico-Políticas

Una vez que un producto de Software libre ha empezado a circular, rápida-mente está disponible a un costo muy bajo. Al mismo tiempo, su utilidadno decrece. El Software, en general, podría ser considerado un bien de usoinagotable, tomando en cuenta que su costo marginal es pequeñísimo y queno es un bien sujeto a rivalidad (la posesión del bien por un agente económicono impide que otro lo posea).Puesto que el Software libre permite el libre uso, modificación y redis-

tribución, a menudo encuentra un hogar entre usuarios para los cuales el

[email protected] 58 Antonio Carrillo Ledesma

Page 60: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

coste del Software no libre es a veces prohibitivo, o como alternativa a la pi-ratería. También es sencillo modificarlo localmente, lo que permite que seanposibles los esfuerzos de traducción a idiomas que no son necesariamenterentables comercialmente.La mayoría del Software libre se produce por equipos internacionales que

cooperan a través de la libre asociación. Los equipos están típicamente com-puestos por individuos con una amplia variedad de motivaciones, y puedenprovenir tanto del sector privado, del sector voluntario o del sector público.En México el Software Libre nació en las Universidades y los Centros de

Investigación. Es por eso que, desde hace tres décadas, los estudiantes y losprofesores usan Software libre para fines didácticos y de investigación. Lasuniversidades suelen optar por el uso de Software libre en vez de utilizarSoftware privativo porque satisface de una mejor manera sus necesidades decómputo, dada su naturaleza de apertura del código y la libertad de compartirlos resultados obtenidos. De forma colateral, no se tienen gastos adicionalesderivados del pago de licenciamientos.Computólogos, Físicos, Químicos, Matemáticos, Actuarios y otros pro-

fesionistas y científicos utilizan Software libre como herramienta de investi-gación y creación. Un claro ejemplo de ello es la llamada Delta Metropoli-tana, que es una red de supercomputadoras que están en varios puntos de laCiudad de México, en el CINESTAV, el IPN, la UAM y la UNAM. Esa redde supercómputo utiliza Software libre para consolidar sus recursos, hacerinvestigación y generar conocimiento.

Por otro lado, dadas las características del Software de código cerrado, unusuario común ignora absolutamente el contenido del mismo y por tanto siexiste dentro de las líneas del código alguna amenaza contra su equipo o suinformación, además el usuario no sólo tiene prohibido el intentar eliminar ocambiar esa parte del código sino que puede ser perseguido por la ley por elhecho de intentar conocer si existe tal amenaza en dicho Software.Además, en una sociedad de la información, el Software se ha convertido

en una herramienta importante de productividad, y una licencia de Softwareprivativo constituye un acuerdo o contrato entre dos sujetos jurídicos que vo-luntariamente acuerdan las condiciones de uso de un programa, pero el costoeconómico de dicha licencia es cada vez más alto y en el caso de institucioneseducativas, gubernamentales y sociedades civiles es en la mayoría de los casos–por decir lo menos— prohibitivo.

[email protected] 59 Antonio Carrillo Ledesma

Page 61: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

Por otro lado, hace unos días se anunció en varios periódicos de circulaciónnacional (véase [84]) que:

El Instituto Mexicano de la Propiedad Industrial (IMPI) anuncióque en las próximas semanas dará inicio una serie de clausuras anegocios que utilicen Software licenciado de manera ilegal; estocomo parte del acuerdo que tiene la dependencia con The SoftwareAlliance (BSA) desde el 2002, el cual busca fomentar el uso deprogramas informáticos legales y disminuir el índice de pirateríaen el país.

De acuerdo a la BSA, el porcentaje de Software ilegal utilizadoen el territorio aún se ubica en un 56 por ciento, cifra considera-blemente menor a lo visto en el 2005, cuando el número ascendíaa más del 65 por ciento. Sin embargo, México continúa siendouno de los mayores compradores de piratería a nivel mundial, ylo que se busca con este tipo de acciones en el 2013 es disminuir,al menos, un punto porcentual.

"Si como consecuencia de una visita de inspección completa seencuentra la existencia de Software ilegal, se procede a la sanción.En el 2012 incrementaron hasta un 200% las sanciones por eluso ilegal de Software", dijo Kiyoshi Tsuru, director general enMéxico de la BSA.

Aquí es donde algunos se preguntarán, ¿y qué autoridad tieneThe Software Alliance para ejecutar estas determinaciones? Pesea que cuenta con el apoyo de empresas como Microsoft, Apple,Autodesk, Adobe, Aveva, AVG, CISCO, Dell, Hewlett Packard,IBM, SAP y Symntec, lo cierto es que la BSA no puede clausurarlegalmente ningún negocio. La verdadera autoridad llega en suacuerdo con el IMPI, el cual sí tiene las facultades para aplicarsanciones.

Además, la UNAM, dede junio 9 del 2009 firmo un acuerdo (véase [85]):

Con el objetivo de fomentar la cultura de la legalidad en lo quese refiere al uso del Software entre los estudiantes, la UniversidadNacional Autónoma de México y la Business Software Alliance(BSA) firmaron un convenio general de colaboración.

[email protected] 60 Antonio Carrillo Ledesma

Page 62: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

Mediante este acuerdo, se promoverá el uso ético de las tec-nologías de la información y comunicación, y se compartirán cono-cimientos en materia de propiedad intelectual y Software, a finde apoyar el desarrollo y explotación de bienes digitales en laUNAM, así como definir programas para contribuir al avance deun mundo digital seguro, informaron ambas organizaciones en uncomunicado.

El secretario general de la máxima casa de estudios, Sergio M.Alcocer Martínez de Castro, reconoció que la UNAM necesitahacer un esfuerzo en el ámbito institucional y en cada una delas entidades que la conforman, para brindar educación a susalumnos, profesores y trabajadores en este campo.

“Se pretende”, destacó, “que el convenio sea operativo y que sedesarrolle en cada una de las entidades con la impartición decursos y capacitación y en una rendición de cuentas para que elSoftware que se utilice sea legal”.

El funcionario reconoció a los miembros de Business SoftwareAllianceen Latinoamérica, y apuntó que la Universidad Nacionalhará lo necesario para facilitar el uso responsable, ético y segurodel Software.

Informó también que ambas partes se reunirán seis meses des-pués del inicio de este convenio de colaboración para analizar losavances.

En tanto, el director General de BSA-México, Kiyoshi Tsuru Al-berú, resaltó que con la firma de este convenio podrán impulsarun plan conjunto relacionado con alta tecnología, ética y legalidad“Estamos seguros que en el mediano plazo se tendrán resultadosimportantes y se podrá hacer la diferencia”, señaló.

Por su parte, el abogado general, Luis Raúl González Pérez, co-mentó que la UNAM busca difundir estos valores entre su co-munidad, y llegar especialmente a los estudiantes que inician elbachillerato, porque desde edad temprana es importante fomentarla cultura de la legalidad.

Ante este escenario, una alternativa viable podría ser optar por el Soft-ware Libre, aunque, pese a su incipiente desarrollo es seguro que en un futuro

[email protected] 61 Antonio Carrillo Ledesma

Page 63: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

podría alcanzar a suplir todas las necesidades básicas de los usuarios, dejandola adquisición de paquetes especializados sólo para los cursos avanzados quejustifique el uso de Software privativo.

[email protected] 62 Antonio Carrillo Ledesma

Page 64: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

C Máquinas Virtuales

Entendamos por una máquina virtual a un Software (véase [38], [39], [37] y[36]) que simula a una computadora y puede instalar y usar otros sistemasoperativos de forma simultanea como si fuese una computadora real sobrenuestro sistema operativo2.Una característica esencial de las máquinas virtuales es que los procesos

que ejecutan están limitados por los recursos y abstracciones proporcionadospor ellas. Estos procesos no pueden escaparse de esta "computadora vir-tual". Uno de los usos domésticos más extendidos de las máquinas virtualeses ejecutar sistemas operativos para "probarlos". De esta forma podemosejecutar un sistema operativo que queramos probar (GNU/Linux, por ejem-plo) desde nuestro sistema operativo habitual (Windows 7 por ejemplo) sinnecesidad de instalarlo directamente en nuestra computadora y sin miedo aque se desconfigure el sistema operativo primario.

C.1 Tipos de Máquinas Virtuales

Las máquinas virtuales se pueden clasificar en dos grandes categorías segúnsu funcionalidad y su grado de equivalencia a una verdadera máquina:

• Máquinas virtuales de sistema (en inglés System Virtual Machine).También llamadas máquinas virtuales de Hardware, permiten a la má-quina física subyacente multiplicarse entre varias máquinas virtuales,cada una ejecutando su propio sistema operativo. A la capa de Softwareque permite la virtualización se la llama monitor de máquina virtual ohypervisor. Un monitor de máquina virtual puede ejecutarse o bien di-rectamente sobre el Hardware o bien sobre un sistema operativo ("hostoperating system").

• Máquinas virtuales de proceso (en inglés Process Virtual Machine).A veces llamada "máquina virtual de aplicación", se ejecuta como unproceso normal dentro de un sistema operativo y soporta un solo pro-ceso. La máquina se inicia automáticamente cuando se lanza el procesoque se desea ejecutar y se detiene para cuando éste finaliza. Su obje-tivo es el de proporcionar un entorno de ejecución independiente de

2Tal y como puede verse reflejado en la definición de máquina virtual, en este texto nosestamos focalizando en las maquinas virtuales de sistema. Existen otro tipo de máquinasvirtuales, como por ejemplo las máquinas virtuales de proceso o los emuladores.

[email protected] 63 Antonio Carrillo Ledesma

Page 65: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

la plataforma de Hardware y del sistema operativo, que oculte los de-talles de la plataforma subyacente y permita que un programa se ejecutesiempre de la misma forma sobre cualquier plataforma.

C.2 Aplicaciones de las Máquinas Virtuales de Sistema

Varios sistemas operativos distintos pueden coexistir sobre la misma com-putadora, en sólido aislamiento el uno del otro, por ejemplo para probarun sistema operativo nuevo sin necesidad de instalarlo directamente. Lamáquina virtual puede proporcionar una arquitectura de instrucciones quesea algo distinta de la verdadera máquina. Es decir, podemos simular Hard-ware.Varias máquinas virtuales –cada una con su propio sistema operativo lla-

mado sistema operativo "invitado" o "guest"–, pueden ser utilizadas paraconsolidar servidores. Esto permite que servicios que normalmente se tenganque ejecutar en computadoras distintas para evitar interferencias, se puedanejecutar en la misma máquina de manera completamente aislada y compar-tiendo los recursos de una única computadora. La consolidación de servidoresa menudo contribuye a reducir el coste total de las instalaciones necesariaspara mantener los servicios, dado que permiten ahorrar en Hardware.La virtualización es una excelente opción hoy día, ya que las máquinas

actuales –Laptops, desktops, servidores– en la mayoría de los casos estánsiendo "subutilizados"–gran capacidad de disco duro, memoria RAM, etc.–, llegando a un uso de entre 30% a 60% de su capacidad. Al virtualizar,la necesidad de nuevas máquinas en una ya existente permite un ahorroconsiderable de los costos asociados –energía, mantenimiento, espacio, etc–.La gran mayoría de máquinas virtuales, como por ejemplo KVM, Virtual-

box o VMWare, permiten instalar prácticamente cualquier sistema operativocomo por ejemplo Linux, Android, Mac OS X, Windows, Chrome OS, etc.Sin embargo existen otras máquinas virtuales, como por ejemplo Virtual PC,Hiper-V o Parallels, que están principalmente destinadas a virtualizar Win-dows.Cada uno de los sistemas operativos que virtualizamos es completamente

independiente de los otros sistemas operativos. De este modo en el caso queuna de las máquinas virtuales deje de funcionar, el resto seguirá funcionandosin ningún tipo de problema. Una vez instalado un sistema operativo enla máquina virtual, tenemos que usar el sistema operativo virtualizado del

[email protected] 64 Antonio Carrillo Ledesma

Page 66: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

mismo modo que lo usaríamos si lo hubiéramos instalado en nuestro orde-nador. Una máquina virtual dispone de todos los elementos de que dispone unordenador real. Dispone de disco duro, memoria RAM, unidad de CDROM,tarjeta de red, tarjeta de vídeo, etc, pero a diferencia de un ordenador realestos elementos en vez de ser físicos son virtuales.Todos los elementos de una máquina virtual se encapsulan en un conjunto

de archivos. Esto permite que podamos copiar un sistema operativo virtualde un ordenador a otro o que podemos realizar copias de seguridad sin ningúntipo de problema, de forma fácil y rápida.

C.3 Técnicas de Virtualización

Básicamente se reconocen tres tipos de virtualización, algunas de las cualesson usadas actualmente en la gran mayoría de los sistemas operativos, ge-neralmente sin que el usuario este consiente de que usa virtualización, elejemplo más común y omnipresente es la máquina virtual del lenguaje deprogramación de JAVA.

Emulación del Hardware subyacente (ejecución nativa) Esta técnicase suele llamar virtualización completa –full virtualization– del Hardware,y se puede implementar usando un hypervisor de Tipo 1 o de Tipo 2:

1. Monitor de tipo I, se ejecuta directamente sobre el Hardware.

2. Monitor de tipo II, se ejecuta sobre otro sistema operativo.

Cada máquina virtual puede ejecutar cualquier sistema operativo sopor-tado por el Hardware subyacente. Así los usuarios pueden ejecutar dos o mássistemas operativos distintos simultáneamente en computadoras "privadas"virtuales. Actualmente tanto Intel como AMD han introducido prestacionesa sus procesadores x86_64 para permitir la virtualización de Hardware.

Emulación de un sistema no nativo Las máquinas virtuales tambiénpueden actuar como emuladores de Hardware, permitiendo que aplicacionesy sistemas operativos concebidos para otras arquitecturas de procesador sepuedan ejecutar sobre un Hardware que en teoría no soportan. Esta técnicapermite que cualquier computadora pueda ejecutar Software escrito para lamáquina virtual. Sólo la máquina virtual en sí misma debe ser portada acada una de las plataformas de Hardware.

[email protected] 65 Antonio Carrillo Ledesma

Page 67: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

Virtualización a nivel de sistema operativo Esta técnica consiste endividir una computadora en varios compartimentos independientes de maneraque en cada compartimento podamos instalar un servidor. A estos comparti-mentos se los llama "entornos virtuales". Desde el punto de vista del usuario,el sistema en su conjunto actúa como si realmente existiesen varios servidoresejecutándose en varias máquinas distintas.

C.4 ¿Qué Necesito para Usar una Máquina Virtual?

Actualmente la virtualización de un sistema operativo o servidor se puedeimplementar por Software o por Hardware. Como en este texto me focalizoen la virtualización por software, lo único que precisamos para poder usar unamáquina virtual es un ordenador medianamente actual e instalar y configurarel software de la máquina virtual.Cuanto más potente y actual sea el ordenador que tengamos, mejor expe-

riencia obtendremos trabajando con sistemas operativos virtualizados. Al-gunos de los puntos importantes para obtener un rendimiento óptimo delsistema operativo virtualizado son los siguientes:

• Disponer de un procesador rápido y que disponga de capacidad de vir-tualización por Hardware (Intel VTx/AMD-v). Cuanto mayor sea lacapacidad del procesador mejor experiencia de virtualización obten-dremos. Cualquier ordenador actual dispone de un procesador aptopara virtualizar sistemas operativos.

• Disponer de espacio suficiente en el disco duro. Además es interesantedisponer de un disco duro con una buena la velocidad de lectura yescritura como por ejemplo un disco SSD.

• Necesitamos disponer de memoria RAM suficiente y adecuada. Cuantamás cantidad de memoria RAM y cuanto más rápida sea, mejores resul-tados de virtualización obtendremos. Así por lo tanto, es mejor tener4GB de RAM que 2GB, y del mismo modo es mejor disponer de unamemoria RAM del tipo DDR4 que DDR3. La cantidad de memoriaRAM ideal dependerá del sistema operativo que queremos virtualizary del número de sistemas operativos que queramos virtualizar de formasimultanea. Si tan solo queremos virtualizar un sistema operativo con2 o 3 GB de RAM debería ser suficiente.

[email protected] 66 Antonio Carrillo Ledesma

Page 68: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

• Sin duda el hecho de tener una buena GPU también ayudará a disponerde una mejor experiencia de virtualización. Por lo tanto es recomend-able disponer de una buena tarjeta gráfica con aceleración gráfica.

C.5 ¿Cómo Funciona una Máquina Virtual?

Explicar el funcionamiento en detalle de una máquina virtual es algo suma-mente complicado y engorroso. No obstante a grandes rasgos podemos decirque una máquina virtual es un software que mediante una capa de virtu-alización se comunica con el hardware que tenemos disponible en nuestroordenador consiguiendo de este modo emular la totalidad de componentes deun ordenador real. De este modo la máquina virtual será capaz de emularun disco duro, una memoria RAM,una tarjeta de red, un procesador, etc.Una vez que sabemos esto, cuando abrimos una máquina virtual, como

por ejemplo Virtualbox, nos encontramos con un entorno gráfico que nospermitirá configurar y asignar recursos a cada uno de los componentes físicosque emula la máquina virtual. Así por ejemplo en prácticamente la totalidadde máquinas virtuales deberemos definir detalles del siguiente tipo:

• Espacio que queramos asignar a nuestro disco duro.

• Memoria RAM que queremos asignar a la máquina virtual.

• La memoria de nuestra tarjeta gráfica.

• La configuración de red que queremos.

• etc.

Una vez configurados estos parámetros habremos creado una máquinavirtual para instalar un sistema operativo, de este modo tan solo tendremosque abrir la máquina virtual que se acaba de crear e instalar el sistemaoperativo tal y como si se tratará de un ordenador real normal y corriente.

C.6 Ventajas y Desventajas

Como toda nueva tecnología, la virtualización tiene ventajas y desventajas,las cuales deben de ser sopesadas en cada ámbito de implementación. Lo quees un hecho que permite en un mismo equipo de cómputo correr más de unsistema operativo o distintas versiones del mismo.

[email protected] 67 Antonio Carrillo Ledesma

Page 69: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

Pero queda claro que uno de los inconvenientes de las máquinas virtuales,es que agregan gran complejidad al sistema en tiempo de ejecución. Esto tienecomo efecto la ralentización del sistema, es decir, el programa no alcanzará lamisma velocidad de ejecución que si se instalase directamente en el sistemaoperativo "anfitrión" (host) o directamente sobre la plataforma de Hardware.Sin embargo, a menudo la flexibilidad que ofrecen compensa esta pérdida deeficiencia. Si la virtualización es por Hardware, la velocidad de ejecución esmás que aceptable para la mayoría de los casos.

¿Qué Utilidades nos Proporcionan las Máquinas Virtuales? Lasutilidades y beneficios que podemos sacar de una máquina virtual son nu-merosos. Algunos de los usos que podemos dar a las máquinas virtuales sonlos siguientes:

• Para probar sistemas operativos. Además el proceso de una instalaciónen la máquina virtual es sumamente fácil ya que no nos tendremos quepreocupar de crear particiones adicionales en nuestro disco duro, etc.

• Para usar un software que no está disponible en nuestro sistema op-erativo. Así por ejemplo si somos usuarios de Linux y queremos usarPhotoshop, lo podemos hacer a través de una máquina virtual.

• En ocasiones tenemos que usar software que únicamente se puede eje-cutar en sistemas operativos que son obsoletos. Así, por lo tanto sitenemos un programa que solo se puede usar en Windows 98, podemoscrear una máquina virtual con Windows 98 y ejecutar y usar el softwaresin ningún tipo de problema.

• Podemos experimentar en el sistema operativo que corre dentro de lamáquina virtual haciendo cosas que no nos atreveríamos a realizar connuestro sistema operativo, como por ejemplo aplicar una actualizaciónde software, navegar de forma segura en una página web que consider-amos sospechosa, etc.

• Podemos usar las máquinas virtuales como sandbox con el fin de porejemplo ejecutar aplicaciones maliciosas o abrir correos sospechosos enun ambiente controlado y seguro.

• Podemos crear/simular una red de ordenadores con tan solo un orde-nador. Esta red de ordenadores virtualizados la podemos usar con fines

[email protected] 68 Antonio Carrillo Ledesma

Page 70: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

formativos y de este modo adquirir conocimientos sobre administraciónde redes.

• Si eres un desarrollador de software puedes checar si el programa queestás desarrollando funciona correctamente en varios sistemas opera-tivos.

• Para probar versiones alfa, Beta y Release candidate de ciertos progra-mas y sistemas operativos.

• Para montar un servidor web, un servidor VPN, un servidor de correoo cualquier otro tipo de servidor.

• Para probar multitud de programas en Windows y evitar que se en-sucie el registro mediante las instalaciones y desinstalaciones de losprogramas.

C.6.1 Ventajas

Además de permitir correr múltiples sistemas operativos, diferentes versionesde un mismo sistema pero con diferente Software que en principio puede serincompatible entre sí.Para usuarios de Windows, el hecho en sí, de no tener por que lidiar con

problemas derivados de virus en Windows le confiere una gran ventaja desdeel punto de vista administrativo y del usuario final. Además de, permitiruna administración centralizada y que todas las máquinas virtuales tendríanla misma configuración y paquetes sin importar el Hardware subyacente enlas que se ejecute el sistema operativo huésped.En el caso de instituciones educativas y en particular en las Aulas y

Talleres del Departamento de Matemáticas de la Facultad de Ciencias de laUNAM, es común que en un mismo equipo de cómputo sea necesario correrpor un lado diferentes versiones de sistemas operativos –por ejemplo Linux,Windows XP, Windows 7, etc– y por otro lado, en un sistema operativo,correr diferentes versiones de un mismo paquete –generalmente no se puedentener instalados simultáneamente más de una versión–.En este y en otros caso, las máquinas virtuales son una verdadera opción

para coexistir simultáneamente diferentes versiones de sistemas operativos yen un mismo sistema máquinas virtuales corriendo las diversas versiones deun mismo Software, además se pueden configurar para que al momento de

[email protected] 69 Antonio Carrillo Ledesma

Page 71: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

iniciarlas siempre corran a partir de una configuración e instalación base, detal forma que al ser lanzadas, el usuario pueda instalar, configurar e inclusivedañar la máquina virtual, pero al reiniciarse esta en una nueva sesión, todoquede igual a la versión base, de esta forma no hay posibilidad de infecciónde virus entre diversos lanzamientos de sesiones de la máquina virtual, laactualización es centralizada y se puede hacer por red, sin intervención delusuario.Por ello, es una opción viable y común tener en una máquina un sistema

huésped como Linux Debian Estable y dentro de el, un grupo de máquinasvirtuales de Windows –Windows XP, Windows 7, etc–, en los que cadamáquinas virtual tenga instalado un grupo de Software agrupados por lascaracterísticas del sistema operativo necesario para correr a todas las apli-caciones seleccionadas –por ejemplo agrupados por la versión de ServicePack–.Por otro lado, si se desconfigura un servidor o un sistema operativo vir-

tualizado es sumamente fácil de restaurar si lo comparamos con un máquinareal. Si tomamos las precauciones necesarias podemos restaurar el estadoque tenia un sistema operativo virtualizado, o un servidor, de forma fácil yrápida.Si hablamos del entorno empresarial, la virtualización de sistemas opera-

tivos y de servidores supone un ahorro económico y de espacio considerable.Mediante el uso de la virtualización evitamos la inversión en multitud deequipos físicos ahorrando dinero y espacio.Como acabamos de ver, el uso de máquinas virtual implica disponer de

menos equipos físicos. Por lo tanto el hecho de virtualizar servidores o sis-temas operativos puede suponer un ahorro importante en mantenimiento yen consumo energético.Por otro lado, mediante la virtualización y el balanceo dinámico podemos

incrementar las tasas de servicio de un servidor del siguiente modo. Sidisponemos de un servidor WEB podemos asignar recursos adicionales alservidor, como por ejemplo memoria RAM y CPU, en los picos de cargapara evitar que el servidor se caiga y de este modo incrementar la tasa deservicio. Una vez finalizado el pico de carga podemos desviar los recursosaplicados al servidor WEB a otra necesidad que tengamos. Por lo tantoaparte de mejorar la tasa de servicio se pueden optimizar mejor los recursos.Si estamos usando una máquina virtual en un entorno de producción,

podemos ampliar los recursos de un sistema operativo o servidor de una formamuy sencilla. Tan solo tenemos que acceder al software de virtualización y

[email protected] 70 Antonio Carrillo Ledesma

Page 72: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

asignar más recursos de forma muy sencilla.Es sumamente fácil crear un entorno para realizar pruebas de todo tipo.

Así de este modo obtendremos fácilmente un entorno de pruebas completa-mente aislado del resto de sistemas.Las máquinas virtuales y la virtualización permiten usar un solo servicio

por servidor virtualizado de forma fácil y sencilla. De este modo aunque secaiga uno de los servidores virtualizado el otro seguirá funcionando.

C.6.2 Desventajas

Entre la principal desventajas de virtualizar sistemas propietarios como Win-dows –no así los sistemas libres como GNU Linux Debian (véase apéndiceB.1)– es que se puede violar el sistema de licenciamiento(véase apéndice B.3)del Software instalado en las máquinas virtuales, esto es especialmente im-portante cuando se usa en más de una máquina, pues la licencia usada parala instalación es violada cuando se tiene más de una copia de la máquinavirtual o se ejecutan múltiples instancias de la máquina virtual.En el caso de Windows XP Home, no se infringe la licencia mientras se

cuente con número de licencias igual al máximo número de máquinas vir-tuales lanzadas simultáneamente. Para otras versiones del sistema operativoWindows como es Windows XP Profesional, la virtualización se maneja conlicencias adicionales a la del sistema operativo original y se debe de contar contantas licencias como el máximo número de máquinas virtuales lanzadas si-multáneamente. Además, es necesario contar con el tipo de licencia adecuadapara virtualizar a todos y cada uno de los paquetes de cómputo instaladosen cada máquina virtual y en las instancias para el número de máquinasvirtuales lanzadas simultáneamente en uno o más equipos.Para usar una máquina virtual en condiciones favorables, necesitamos un

ordenador potente. Tenemos que tener en cuenta que si usamos 2 sistemas op-erativos de forma simultanea estamos empleando hasta el doble de recursos.No obstante cualquier ordenador doméstico medianamente actual dispone delos recursos suficientes para usar una máquina virtual no dedicada.Los sistemas operativos y los programas se ejecutaran con mayor lenti-

tud en las máquinas virtuales. Esto es debido a que las máquinas virtualesno pueden sacar un rendimiento ideal del hardware que tenemos en nue-stro equipo. Cuanto más potente sea nuestro ordenador menos se notará lapérdida de rendimiento.Si tenemos un problema en el ordenador que aloja el sistema operativo

[email protected] 71 Antonio Carrillo Ledesma

Page 73: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

anfitrión puede caerse el servicio en la totalidad de máquina virtuales. Porlo tanto el ordenador que hace funcionar la máquina virtual es una partecrítica.

A pesar de los inconvenientes que se citan en este apartado, bajo mipunto de vista la virtualización y las máquinas virtuales proporcionan unasventajas y una flexibilidad que compensan claramente los inconvenientes queacabamos de citar.

C.7 Uso de Máquinas Virtuales

¿Qué Manejadores de Máquinas Virtuales Podemos Instalar? Hoyen día tenemos a nuestra disposición varios menejadores de maquinas vir-tuales. Algunas de ellos son las siguientes:3

• Virtualbox: Software desarrollado por Oracle. Se trata de un softwaremultiplataforma capaz de virtualizar prácticamente la totalidad de sis-temas operativos con arquitectura x86/amd64. Es la máquina virtualmultiplataforma, la base de este software dispone de una la licenciaGPL2, mientras que el pack de extensiones que añaden funcionalidadesestán bajo licencia privativa. Virtualbox es gratuito para un uso nocomercial.

• Vmware Workstation Player: Software privativo multiplataforma de-sarrollado por EMC corporation y que es utilizado ampliamente enel entorno profesional en las áreas del cloud computing entre muchasotras. Al igual que Virtualbox, esta máquina virtual nos permite vir-tualizar una gran diversidad de sistemas operativos. Vmware disponede muchas soluciones de virtualización y prácticamente todas son depago, no obstante Vmware Workstation Player es totalmente gratuitapara un uso no comercial.

• Parallels: Aunque se trata de una máquina virtual multiplataforma,acostumbra a ser usado por los usuarios del sistema operativo OS Xde Apple que desean virtualizar el sistema operativo Windows. Estamáquina virtual es de pago y únicamente puede virtualizar los sistemasoperativos Windows y Mac OS.

3Aparte de las máquinas virtuales citadas existen muchas otras más.

[email protected] 72 Antonio Carrillo Ledesma

Page 74: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

• Windows Virtual PC: Software gratuito y privativo propiedad de Mi-crosoft que se puede usar tanto en Windows como en Mac OS. VirtualPC está destinado únicamente a Virtualizar sistemas operativos Win-dows. Este software se puede usar y descargar gratuitamente a travésdel siguiente enlace.

• QEMU/KVM: Software libre multiplataforma que dispone de licenciaGPL 2. QEMU permite virtualizar un gran número de sistemas opera-tivos y además soporta varios tipos de arquitectura como por ejemploX86, x86-64, MIPS, Arm, PowerPC, etc. El rendimiento que ofreceQEMU es igual o superior a las opciones que hemos mensionado con an-terioridad. Una gran ventaja de QEMU que permite usar una máquinavirtual sin necesidad de tener privilegios root.

En esta sección mostraremos como trabajar con las máquinas virtualesmediante KVM/QEMU en Linux Debian para probar imagenes ISO descar-gadas de la red, instalar y usar máquinas virtuales para Windows y Linuxentre otros.Para ello, primeramente es necesario saber si nuestro equipo soporta la

virtualización por Hardware o Software, supondremos que tenemos acceso auna máquina en la cual inicializamos usando una versión "Live" de CDROM,DVD o USB para arrancar la computadora.

Revisión del tipo de virtualización soportado por la máquina Prime-ramente hay que revisar si hay soporte en Hardware para la virtualización,usando:

$ egrep "vmx|svm" /proc/cpuinfo

si se soporta la virtualización por Hardware aparecerá la bandera

Procesadores INTEL: vmxProcesadores AMD: svm

Instalar y Usar máquinas virtuales Por omisión los equipos de tec-nología de bajo desempeño no soportan la virtualización a nivel de Hardware,pero siempre es posible su emulación mediante QEMU.

[email protected] 73 Antonio Carrillo Ledesma

Page 75: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

Si la computadora soporta virtualización a nivel de Hardware es posibleusar KVM (o en QEMU la bandera -enable-kvm). Según la versión de Linux,KVM puede existir como un paquete real o como uno virtual, si es virtual,al instalar KVM lo que realmente se instala es QEMU y al correr KVM porejemplo

$ kvm

es remplazado por

$ qemu-system-x86_64 -enable-kvm

Estos tienen la misma sintaxis de uso, y para nuestros ejemplos sólo esnecesario remplazar qemu-system-x86_64 por kvm y en ambos siempre seusará qemu-img para manipular las imágenes.Instalación de KVM (recomendado para virtualización por Hardware)

# aptitude install kvm

Instalación de QEMU (permite emular diversas arquitecturas de Hard-ware)

# aptitude install qemu

Observación 1 El desempeño de la emulación versus virtualización por Hard-

ware es de varios ordenes de magnitud menor, pero una imagen creada con

cualquiera de ellos es usable con los otros virtualizadores. KVM sólo soporta

virtualizar arquitecturas X86 y 64 de INTEL y AMD, QEMU emula diver-

sas arquitecturas, como son ALPHA, ARM, M68K, MIPS, S390, SPARC,

M68K, XTENSA.

Algunos problemas con KVM Si se detectan las banderas para virtu-alización por Hardware y al tratarlo de usar KVM marca:

> open /dev/kvm: Permission denied> Could not initialize KVM, will disable KVM support

[email protected] 74 Antonio Carrillo Ledesma

Page 76: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

Sólo hay que agregar, el login del usuario al grupo kvm en el archivo/etc/group

Si marca:

> open /dev/kvm: No such file or directory> Could not initialize KVM, will disable KVM support

Sólo hay que activar en el BIOS la virtualización por Hardware

Usando un USB/CD live como una máquina virtual En el caso detener un USB/CD live y se quiera correr su contenido desde una máquinavirtual con QEMU o KVM solo es necesario montar el USB/CD, conocer eldispositivo mediante

$ df

y usar ese dispositivo en

$ kvm -m 512 -usb /dev/sddx

Usando un archivo ISO como una máquina virtual En el caso detener un archivo ISO y se quiera correr su contenido desde una máquinavirtual con QEMU o KVM solo es necesario (si el archivo es ubuntu-11.10-desktop-i386.iso)

$ kvm -m 512 -cdrom ubuntu-11.10-desktop-i386.iso

[email protected] 75 Antonio Carrillo Ledesma

Page 77: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

Ejemplos de uso Un ejemplo completo de instalación y uso de unamáquinavirtual para Debian estable a partir del archivo ISO bajado de la red, nece-sitamos hacer lo siguienteGenerar un disco virtual, por ejemplo de 10 GB

$ qemu-img create -f qcow2 debianStable.img 10G

Instalar la imagen de Debian estable en un disco virtual

$ kvm -no-reboot -boot d -cdrom debian-802-i386-netinst.iso-hda debianStable.img -m 300

Después de la instalación, es conveniente compactar y desfragmentar laimagen usando

$ qemu-img convert -c debianStable.img -O qcow2 debian.img

Usar Debian estable

$ kvm -hda debian.img -m 400

Otro ejemplo completo de instalación y uso de una máquina virtual paraWindows XP, en este caso necesitamosCrear la disco virtual, por ejemplo de 10 GB

$ qemu-img create -f qcow2 WindowsXP.img 10G

Hacer la instalación básica de Windows XP a partir, por ejemplo del ISO

$ kvm -no-reboot -boot d -hda WindowsXP.img -m 400 -localtime -cdrom es_winxp_pro_with_sp2.iso

Concluir la instalación de Windows XP

$ kvm -no-reboot -boot c -hda WindowsXP.img -m 400 -localtime -cdrom es_winxp_pro_with_sp2.iso

Después de la instalación, es conveniente compactar y desfragmentar laimagen usando

[email protected] 76 Antonio Carrillo Ledesma

Page 78: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

$ qemu-img convert -cWindowsXP.img -O qcow2Windows.img

Uso de máquina virtual de Windows XP

$ kvm -boot c -hda Windows.img -m 400 -localtime

Una vez que se cuenta con una imagen de Windows, podemos instalarpor ejemplo OfficeInstalar Windows Office 2003, aquí suponemos que tenemos un ISO de

Office

$ kvm -localtime -m 300 -boot c -hda Windows.img -cdromOffice-2003.iso

Si se tiene el CDROM, entonces podemos usar

$ kvm -localtime -m 300 -boot c -hda Windows.img -cdrom/dev/cdrom/

Observación 2 En el caso de Windows hay que usar el mismo Hardware

siempre, en caso contrario marca que es necesario registrar el sistema opera-

tivo nuevamente al correrlo en otra arquitectura, para ello se usa la bandera

-cpu, al momento de crearlo y usarlo, por ejemplo:

Usar máquina virtual de Windows en QEMU y KVM usando el mismoHardware

$ kvm -localtime -m 400 -boot c -hda Windows.img -cpuqemu32$ qemu-system-x86_64 -localtime -m 400 -boot c -hda Win-

dows.img -cpu qemu32$ qemu-system-x86_64 -enable-kvm -localtime -m 400 -boot

c -hda Windows.img -cpu qemu32

Para conocer los CPUs soportados usar

$ kvm -cpu ?

[email protected] 77 Antonio Carrillo Ledesma

Page 79: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

Para conocer las máquinas soportadas usar

$ kvm -machines ?

Otro ejemplo completo de instalación y uso de una máquina virtual paraWindows 7, en este caso necesitamosCrear la disco virtual, por ejemplo de 15 GB

$ qemu-img create -f qcow2 Windows7.img 15G

Hacer la instalación básica de Windows 7 a partir, por ejemplo del DVD

$ kvm -no-reboot -cdrom /dev/cdrom -boot d -hdaWindows7.img-m 500 -localtime

Concluir la instalación de Windows 7

$ kvm -no-reboot -boot c -hdaWindows7.img -cdrom /dev/cdrom-m 500 -localtime

Después de la instalación, es conveniente compactar y desfragmentar laimagen usando

$ qemu-img convert -c Windows7.img -O qcow2 Windows.img

Uso de máquina virtual de Windows 7

$ kvm -boot c -hda Windows.img -m 500 -localtime

[email protected] 78 Antonio Carrillo Ledesma

Page 80: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

Manipulación del estado de la máquina virtual La virtualización per-mite manipular el estado de una maquina en ejecución, por ejemplo, una vezque se esta corriendo una máquina virtual

$ kvm -boot c -hda .img -m 400 -localtime

es posible manipular el estado de la misma en algún punto de su ejecuciónal usar la combinación de teclas:

[Ctrl] + [Alt] + [2]

ya en ella, podemos detener y grabar el estado de la máquina virtual:

savevm test.vmquit

para que en otro momento, podamos restaurar la máquina virtual talcomo estaba cuando esta se detuvo:

$ kvm -boot c -hda .img -m 400 -localtime -loadvm test.vm

Optimización de imágenes Las imágenes de disco de KVM/QEMU de-spués de generarlas (al instalar algún sistema operativo) estas, tienen muchosarchivos dispersos, para optimizar su rendimiento es recomendable convertirla imagen dispersa en una que no tenga esta propiedad, mediante

$ qemu-img convert disk-sparse.img -O qcow2 disk.img

o puede ser compactada, mediante

$ qemu-img convert -c disk-sparse.img -O qcow2 disk.img

la cual decrecerá el tamaño. Para descompactar una imagen e incrementarla velocidad de uso, mediante:

$ qemu-img convert disk-compact.img -O qcow2 disk.img

[email protected] 79 Antonio Carrillo Ledesma

Page 81: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

Trabajar con una imagen virtual sin que se altere esta Es muydeseable al trabajar con una máquina virtual, el dejar la información de lamáquina virtual base intacta y guardar los cambios que se requieran en otroarchivo, una forma es hacer una copia y trabajar con la copia de esta o crearun archivo que almacene por separado los cambios a la imagen, para estoúltimo usar:

$ qemu-img create -b debianStable.img -f qcow2 debian.img

y trabajar con la imagen que resultante (para este ejemplo debian.img)

Algunos problemas comunes con la red Por lo general las máquinasvirtuales detectan correctamente la red, pero en el caso de Windows esto nosiempre pasa, por ello es común emular una tarjeta de red lo más genéricaposible, esta puede ser RTl8139, para ello es necesario que al lanzar lamáquina virtual se indique -net nic,model=rtl8139 -net user, por ejemplo:

$ kvm -boot c -hda WindowsXP.img -m 400 -localtime -netnic,model=rtl8139 -net user

algunas de las otras opciones para la red son: NE2000 PCI, RTL8139,PCNET y NE2000 ISA.

Aumento de desempeño La virtualización normalmente es rápida, peroen algunas circunstancias se hace lenta generalmente esto es ajeno a KVM/QEMUy generalmente es por la constante grabación de pequeños paquetes de datosal disco duro por parte de la máquina virtual.Por optimizar el desempeño de la máquina virtual es posible pedirle a

KVM/QEMU que trate de usar un cache y baje lo menos posible a discola información, esto aumentara notablemente el desempeño de la máquinavirtual.Para aumentar el desempeño, en lugar de usar

$ kvm -boot c -hda WindowsXP.img -m 400

Usar

[email protected] 80 Antonio Carrillo Ledesma

Page 82: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

$ kvm -drive file=WindowsXP.img,cache=writeback,media=disk-m 400

En el caso de usar un archivo ISO, usar

$ kvm -m 512 -drive file=fedora.iso,cache=writeback,media=cdrom

Otro ejemplo completo de instalación y uso de una máquina virtual (porejemplo para UBUNTU 11.10) usando el cache, en este caso necesitamosGenerar un disco virtual, por ejemplo de 10 GB

$ qemu-img create -f qcow2 disco.img 10G

Instalar la imagen de UBUNTU en un disco virtual

$ kvm -no-reboot -boot d -drive file=ubuntu-11.10-desktop-i386.iso,cache=writeback,media=cdrom -drive file=disco.img,cache=writeback,media=disk -m 500

Después de la instalación, es conveniente compactar y desfragmentar laimagen usando

$ qemu-img convert -c disco.img -O qcow2 Ubuntu.img

Usar Debian estable (aquí, se usa el cache para acelerar el desempeño deKVM)

$ kvm -drive file=Ubuntu.img,cache=writeback,media=disk-m 500

Mejorando el desempeño del vídeo de la máquina virtual Por omisiónse tiene un tarjeta gráfica de pobre desempeño en la máquina virtual, si senecesita mayor resolución en la salida gráfica, una opción es usar la opción-VGA, donde dos de sus posibilidades es STD o VMWARE usándose como:

$ kvm -vga std -m 512 -drive file=fedora.iso,cache=writeback,media=cdrom

o

$ kvm -vga vmware -m 512 -drive file=fedora.iso,cache=writeback,media=cdrom

[email protected] 81 Antonio Carrillo Ledesma

Page 83: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

Uso de tarjeta de sonido dentro de KVM/QEMU Por omisión eluso de la tarjeta de audio no esta habilitada, para habilitarla usar en la lineade comandos: -soundhw sb16, es1370, adlib, por ejemplo:

$ kvm -boot c -hda Windows.img -m 400 -localtime -soundhwsb16,es1370,adlib

Uso de la virtualización dentro de una virtualización Algunas veceses necesario tener activa la virtualización dentro de otra virtualización, estose logra mediante, por ejemplo, para un procesador AMD

$ kvm -m 128 -cdromTinyCore-current.iso -cpu phenom,+svm

Uso de VNC como salida gráfica de la virtualización Si se deseausar VNC como visualizador de la salida gráfica de KVM, primero se debeinstalar un cliente de VNC, por ejemplo vncviewer, usando

# aptitude install vncviewer

Entonces, para correr la maquina virtual usamos

$ kvm -m 128 -cdrom TinyCore-current.iso -cpu kvm64 -vnc:0

Y para ver la salida gráfica usamos

$ vncviewer 0

[email protected] 82 Antonio Carrillo Ledesma

Page 84: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

Interacción de VirtualBox en KVM/QEMU Algunas veces es nece-sario montar y extraer el contenido de un disco virtual, supongamos quetenemos una maquina virtual de VirtualBox y queremos ver su contenido,para ello usamos

$ qemu-img convert diskname.vmdk -O qcow2 diskname.qcow2

o para raw

$ qemu-img convert diskname.vmdk -O raw diskname.raw

Instalar nbd-client

# apt-get install nbd-client

Después

# qemu-nbd —connect=/dev/nbd0 /mnt/kvm/diskname.qcow2# fdisk /dev/nbd0 -l# sudo mount /dev/nbd0p1 /mnt/somepoint/# umount /mnt/somepoint/

Algunos otras opciones Lanzar KVM con dos procesadores, 1536 MBde RAM, dispositivo de red e1000, MAC addres 52:54:00:12:34:50, iniciandoel DHCP en la dirección 10.0.2.40 y reenviando la salida del puerto 22 de lamaquina virtual al 5555 del equipo huésped, mediante

$ kvm -smp 2 -drive file=debianStableTmp.img,cache=writeback,media=disk -m 1536 -device e1000,netdev=user.0,mac=52:54:00:12:34:50 -netdev user,id=user.0,dhcpstart=10.0.2.40,hostfwd=tcp::5555-:22 &

o lanzar kvm con dos procesadores, 1536 MB de RAM, dispositivo de rede1000 y reenviando la salida del puerto 22 de la maquina virtual al 5555 delequipo huésped

$ kvm -smp 2 -drive file=debianStableTmp.img,cache=writeback,media=disk -m 1536 -device e1000,netdev=user.0 -netdev user,id=user.0,hostfwd=tcp::5555-:22 &

una vez lanzada, es posible hacer copia del equipo huésped a la maquinavirtual mediante

$ scp -P 5555 file.txt usr@localhost:/tmp

[email protected] 83 Antonio Carrillo Ledesma

Page 85: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

Direcciones de Red Usadas en QEMU o KVM

Gateway/DHCP/TFTP Server: 10.0.2.2

DNS Server: 10.0.2.3

Samba Server: 10.0.2.4

Netmask: 255.255.255.0

Guest IP: any address above 10.0.2.15

Comunicación entre la máquina virtual y el sistema anfitrión Quehacer para tener comunicación entre la máquina virtual y el sistema anfitrión,hay varias maneras de hacer esto:1) Lo mas sencillo es que la máquina virtual se conecte a un servidor

en red del tipo samba, este puede ser una máquina Windows que compartauna impresora y/o disco o la máquina anfitrión tenga instalado SAMBA ycomparta uno o mas servicios como son discos o impresoras.2) Conectarse a un servidor de SSH mediante los programas SSH Server,

así la máquina virtual puede acceder mediante SFTP a los archivos en elservidor. Es posible instalar el servidor de SSH en la máquina anfitrión y asipoder prestar el servicio de SSH y FTP a la máquina virtual.3) Leer un dispositivo USB montado en el sistema anfitrión desde la

máquina virtual, para ello el dispositivo USB deberá estar conectado en lamáquina anfitrión y deberá ser accesado directamente en la máquina virtual.QEMU necesita parámetros adicionales, el parámetro -usb activa el soporteen la máquina virtual de dispositivos USB. La emulación de Intel SB82371UHCI-Controller tiene 8-puertos en el USB hub. Si se busca tener acceso auno de los dispositivos físicos, se requiere encontrar los parámetros Vendor-ID and Product-ID. Esta información se obtiene examinando la salida delcomando:

# /sbin/lsusb

o

$ cat /proc/bus/usb/devices

Entonces es posible decirle a QEMU los datos de VendorID y ProductIDa través de la línea de comandos

[email protected] 84 Antonio Carrillo Ledesma

Page 86: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

$ qemu -usb -usbdevice host:<VendorID>:<ProductID><otrosparámetros>

o iniciar QEMU con soporte para dispositivos USB activados mediante

$ qemu -usb <otros parámetros>

después de iniciar la máquina virtual, cambiar al sistema de monitoreode la máquina virtual presionando:

[Ctrl]+[Alt]+[2] e introducir el siguiente comandousb_add host:<VendorID>:<ProductID>

cuando se retorne al ambiente gráfico al teclear [Ctrl]+[Alt]+[1] se vera elmensaje de reconocimiento del dispositivo USB. Por ejemplo si se tiene unaimpresora HP Scanjet 3300C conectada en el puerto USB de la computadora,la salida del comando lsub es:

# lsusbBus 003 Device 002: ID 03f0:0205 ScanJet 3300C

así, el comando en QEMU para dejar accesible el dispositivo es:

$ qemu -usb -usbdevice host:03f0:0205 <otros parametros>

4) Usar la impresora conectada en el puerto paralelo, pera ello al invocarla ejecución de la máquina virtual usar:

$ qemu -parallel /dev/parport0 <otros parámetros>

5) Montar el contenido de un disco virtual y poder intercambiar infor-mación entre la máquina virtual y la huésped, primero convertir el disco aformato accesible a Linux:

$ qemu-img convert disco.img -O raw tmp.img

montar la imagen en Linux como root

# mkdir disk# mount -o loop,offset=32256 tmp.img disk

trabajar con la imagen montada y al terminar desmontar esta

# umount ./disk

y puede ser regresada al formato original mediante

$ qemu-img convert -c tmp.img -O qcow2 disco.img

[email protected] 85 Antonio Carrillo Ledesma

Page 87: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

D Bibliografía

Referencias

[1] Carrera de Actuaría, Facultad de Ciencias, UNAM,http://www.fciencias.unam.mx/licenciatura/resumen/101

[2] Aulas y Talleres en el Tlahuizcalpan de las Carrerasde Matemáticas de la Facultad de Ciencias, UNAM,http://www.matematicas.unam.mx/tlahuiz/

[3] http://www.gnu.org/philosophy/free-sw.es.html

[4] http://es.wikipedia.org/wiki/Software_libre

[5] http://www.hispalinux.es/SoftwareLibre

[6] http://es.wikipedia.org/wiki/Software_propietario

[7] Diferentes Tipos de Licencias para el Software,http://www.gnu.org/licenses/license-list.html

[8] Proyectos de Software Sourceforge, http://sourceforge.net/

[9] Google Code, http://code.google.com

[10] Software proyecto GNU, http://www.gnu.org/Software/Software.es.html

[11] FSF, Free Software Fundation, http://www.fsf.org/

[12] GNU Operating System, http://www.gnu.org/

[13] GCC, the GNU Compiler Collection, http://gcc.gnu.org/

[14] The Linux Kernel Archives, http://www.kernel.org/

[15] Debian el Sistema Operativo Universal, http://www.debian.org

[16] Android, http://www.android.com/

[17] Microsoft Windows, http://windows.microsoft.com

[18] Microsoft Office, http://office.microsoft.com/

[email protected] 86 Antonio Carrillo Ledesma

Page 88: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

[19] OPEN OFFICE, Apache OpenOffice, http://www.openoffice.org

[20] LibreOffice the Document Foundation, http://www.libreoffice.org

[21] Google Docs, http://docs.google.com/

[22] CALLIGRA The Integrated Work Applications Suit,http://www.calligra.org/

[23] Lotus Sympony, http://www-03.ibm.com/Software/lotus/symphony/ho-me.nsf/home

[24] LaTeX, A Document Preparation System, http://www.latex-project.org/

[25] MATLAB, MathWorks, http://www.mathworks.com/products/matlab/

[26] SCILAB, Scilab Open Source for Numerical Computation,http://www.scilab.org/

[27] FreeMat, FreeMat Opén Source for rapid engineering and scientific pro-totyping and data processing, http://freemat.sourceforget.net/

[28] OCTAVE, GNU Octave, http://www.gnu.org/Software/octave/

[29] SCIPY Open Source Library of Scientific Tools, http://www.scipy.org/

[30] Python Programming Language, http://www.python.org/

[31] SAS, Business Analytics and Business Intelligence Software,http://www.sas.com/

[32] IBM SPSS Software, http://www-01.ibm.com/Software/analytics/spss/

[33] GNU PSPP, http://www.gnu.org/Software/pspp/

[34] PSPPIREData Editor for PSPP, http://www.softpedia.com/get/Office-tools/Other-Office-Tools/PSPP.shtml

[35] The R Proyect for Statistical Computing, http://www.r-project.or/

[36] QEMU, http://wiki.qemu.org/Main_Page

[37] KVM, http://www.linux-kvm.org/page/Main_Page

[email protected] 87 Antonio Carrillo Ledesma

Page 89: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

[38] máquinas Virtuales, http://es.wikipedia.org/wiki/M%C3%A1quina_vir-tual

[39] Algunos usos de máquinas Virtuales,http://www.configurarequipos.com/doc747.html

[40] LINPACK, http://www.netlib.org/linpack/

[41] EISPACK, http://www.netlib.org/eispack/

[42] Scicos Block Diagram Modeler/Simulator, http://www.scicos.org/

[43] Simulink Simulation and Model-Based Design,http://www.mathworks.com/products/simulink/

[44] KOctave, http://sourceforge.net/projects/koctave/

[45] QTOctave, http://www.ohloh.net/p/qtoctave

[46] IDLE is the Python IDE, http://docs.python.org/2/library/idle.html

[47] IPython Interactive Computing, http://ipython.org/

[48] Appcelerator PyDEV, http://pydev.org/

[49] Eclipse, http://www.eclipse.org/

[50] The Eric Python IDE, http://eric-ide.python-projects.org/

[51] MATLAB to Scilab conversion tips,http://help.scilab.org/docs/5.4.0/en_-US/m2sci_doc.html

[52] EViews, http://www.eviews.com/home.html

[53] Gretel, http://gretl.sourceforge.net/

[54] Stata, http://www.stata.com/

[55] Statgraphics, http://statgraphics.softonic.com/

[56] Statistica, http://www.statsoft.com/support/download/statistica-Software-updates/

[57] Systat, http://www.systat.com/

[email protected] 88 Antonio Carrillo Ledesma

Page 90: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

[58] Vensim, http://vensim.com/vensim-Software/

[59] Maple, http://www.maplesoft.com/

[60] Mathematica, http://www.wolfram.com/mathematica/

[61] Maxima, http://maxima.sourceforge.net

[62] RWeka, http://cran.r-project.org/web/packages/RWeka/index.html

[63] Tinn-R Edit code and run it in R, http://www.sciviews.org/Tinn-R/

[64] RStudio Software, Education, and Services for the R community,http://www.rstudio.com/

[65] SAS grows analytics market share, http://www.bizjournals.com/triangle-/news/2011/06/13/sas-grows-analytics-market-share.html

[66] Mathtype, http://www.dessci.com/en/products/mathtype/

[67] Scientific WorkPlace, http://www.mackichan.com/

[68] Gummi LaTeX Editor, http://dev.midnightcoding.org/projects/gummi

[69] Kile LaTeX Editor, http://kile.sourceforge.net/

[70] Led LaTex Editor, http://www.latexeditor.org/

[71] Lyx LaTeX Editor, http://www.lyx.org/

[72] Texmaker LaTeX Editor, http://www.xm1math.net/texmaker/

[73] TeXnicCenter LaTeX Editor, http://www.texniccenter.org/

[74] TextPad LaTeX Editor, http://www.textpad.com/

[75] TeXstudio LaTeX Editor, http://texstudio.sourceforge.net/

[76] WinEdt LaTeX Editor, http://www.winedt.com/

[77] LaTeXBeamer Class, https://bitbucket.org/rivanvx/beamer/wiki/Home

[78] Microsoft SQL Server, http://www.microsoft.com/en-us/sqlserver/default.aspx

[email protected] 89 Antonio Carrillo Ledesma

Page 91: El Uso de Programas de Cómputo en los Cursos de la Carrera de

El Uso de Programas de Cómputo en los Cursos de la Carrera de Actuaríaen la Facultad de Ciencias, UNAM

[79] PostgreSQL, http://www.postgresql.org/

[80] MySQL Oracle, http://www.mysql.com/

[81] MongoDB, http://www.mongodb.org/

[82] Knoppix is a Live CD/ DVD based on Debian GNU/Linux,http://knoppix.net

[83] Repositorio de LaTeX en la Facultad de Ciencias, UNAM,http://tezcatl.fciencias.unam.mx/tex-archive/

[84] El economista, http://eleconomista.com.mx/tecnociencia/2013/01/22/clausuraran-negocios-mexico-uso-ilegal-Software

[85] PCworld, http://www.pcworld.com.mx/Articulos/4627.htm

[email protected] 90 Antonio Carrillo Ledesma