Ciencias, UNAM
1
Otoño 2018, Versión 1.0
Índice
1 Introducción 4
1.1 Software Propietario y Libre . . . . . . . . . . . . . . . . . . . 4
1.1.1 Software Propietario . . . . . . . . . . . . . . . . . . . 5
1.1.2 Software Libre . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 El Cómputo en las Carreras de Ciencias . . . . . . . . . . . . 8
1.2.1 Algunos Cursos que Usan Cómputo . . . . . . . . . . . 11
1.3 Paquetes de Cómputo de Uso Común . . . . . . . . . . . . . . 14
1.3.1 Sistemas Operativos . . . . . . . . . . . . . . . . . . . 18
1.3.2 Paquetes de Cálculo Numérico . . . . . . . . . . . . . . 18
1.3.3 Paquetes de Cálculo Simbólico . . . . . . . . . . . . . . 19
1.3.4 Paquetes Estadísticos . . . . . . . . . . . . . . . . . . . 20
1.3.5 Paquetes O…máticos . . . . . . . . . . . . . . . . . . . 21
1.3.6 Lenguajes de Programación y Entornos de Desarrollo . 21
1.3.7 Otros Programas de Cómputo . . . . . . . . . . . . . . 21
2 Sistemas Operativos 23
2.1 Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2 Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3 Mac OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.4 Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.5 Otros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5 Paquetes Estadísticos 72
5.1 SPSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2 R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.3 SAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.4 Ventajas, Desventajas y Carencias . . . . . . . . . . . . . . . . 77
5.5 Desde la Nube . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6 Paquetes O…máticos 79
6.1 Hojas de Cálculo . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.2 Bases de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.3 Herramientas de Presentación y Multimedia . . . . . . . . . . 84
6.4 Procesamiento de Imágenes . . . . . . . . . . . . . . . . . . . 85
6.5 Procesamiento de Textos . . . . . . . . . . . . . . . . . . . . . 86
6.6 Desde la Nube . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
14 Bibliografía 200
1 Introducción
La Facultad de Ciencias de la Universidad Nacional Autónoma de México es
una institución de educación superior que tiene como misión formar cientí…cos
en las áreas de biología, física y matemáticas; realizar investigación y su
difusión; hacer la divulgación que permita elevar sustancialmente la cultura
cientí…ca del país; y propiciar la vinculación con los sectores de la sociedad.
El Departamento de Matemáticas de la Facultad de Ciencias atiende a las
carreras de Actuaría, Ciencias de la Computación, Matemáticas, Matemáti-
cas Aplicadas y los cursos de Matemáticas de las demás carreras de la Fa-
cultad (véase [1]), preparando alumnos que estudian, plantean, formulan y
aplican modelos de contenido matemático, con el …n de proveer información
para la planeación, previsión y la toma de decisiones, para resolver problemas
Económicos, Sociales y de Ciencias e Ingenierías.
Por lo anterior, un eje fundamental de desarrollo, es el que se re…ere a la
formación en cómputo. Ante los retos que el vertiginoso y dinámico cambio
enfrenta el mundo global en que vivimos, ante las exigencias de la sociedad
de la información se requiere el manejo de las Tecnologías de la Información
y de la Comunicación (TIC) por ello, el modelo educativo de cualquier ca-
rrera universitaria y en particular las carreras en la Facultad de Ciencias de
la UNAM, tiene la necesidad imperiosa de atender una formación computa-
cional como parte integral de una formación omnilateral de los educandos;
por ello, la Facultad de Ciencias cuenta, para lograr este objetivo, con asig-
naturas que hacen uso de Laboratorios y Talleres de cómputo para ponerse
al día en el manejo de esta importante herramienta. Los Laboratorios y
Talleres de cómputo de los Edi…cios Tlahuizcalpan, Yelizcalli, Amoxcalli y
en el Nuevo Edi…cio cuentan con el equipo y programas de cómputo que
permiten estar a la vanguardia y que facilitan el trabajo académico en las
materias que cursan los estudiantes.
de los usuarios.
Por el incipiente desarrollo de las aplicaciones de Software libre que com-
piten con el Software privativo o comercial al que estamos tan acostumbra-
dos a usar — programas para cálculo numérico y simbólico, estadístico y de
o…mática, entre otros, comúnmente usados para la enseñanza y resolución
de problemas cientí…cos y técnicos— , al menos en un corto plazo, el Soft-
ware libre parece no ser una opción viable de reemplazo. Pero ya son lo
su…cientemente maduras para ser tomadas en cuenta, en un ambiente de tra-
bajo multiplataforma cada vez más competitivo, en donde es necesario que el
usuario — estudiante y eventual profesionista— tenga acceso a todos y cada
uno de los paquetes de cómputo que se le muestran en clase, así como en las
prácticas profesionales, que le permitan adquirir soltura y pericia en el uso
de los mismos.
Geometría Analítica I
Geometría Analítica II
1
Los cursos solicitan, desde el uso de un equipo de cómputo y un proyector, hasta
la asignación de una máquina por estudiante que tenga instalado múltiples programas
especializados corriendo en más de un sistema operativo.
Matemáticas Financieras
Programación
Probabilidad I
Programación II
Manejo de Datos
Taller de Modelación I
Finanzas I
Probabilidad II
Estadística I
Finanzas II
Investigación de Operaciones
Taller de Modelación II
Economía I
Estadística II
Procesos Estocásticos
Análisis Numérico
Demografía I
Demografía Avanzada
Estadística III
Seguridad Social
Pensiones Privadas
Administración de Riesgos
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
Diseño de Experimentos
Fianzas
Inteligencia Arti…cial
Muestreo
Planeación Estratégica
Optimización Numérica
Reaseguro
Redes de Computadoras
Simulación Estocástica
Teoría de Grá…cas
Valuación de Opciones
NetBeans IDE
DrJava IDE
IntelliJ IDEA
BlueJ IDE
SciTE
JetBrains IDE
SharpDevelop IDE
Alice
DFD
Turbo C IDE
Microsoft O¢ ce
Libre O¢ ce
OpenO¢ ce
MathType
Scienti…c WorkPlace
PostgreSQL
SPSS
PSPP
SAS
Vensim PLE
Statgraphics
GPower
EViews
Systat
Stata
Statistica
ITSM2000
Tinn-R
RStudio
Gretl
MATLAB
Scilab
Octave
FreeMat
Maple
Mathematica
NetLogo
GeoGebra
PDFCreator
Adobe Reader
Sistemas Operativos
Programas de Estadística
Programas O…máticos
Windows
Linux
Mac OS
Android
UNIX
La implementación de algoritmos
Integración de funciones
Manipulación de polinomios
Gra…cación de funciones en 2D y 3D
Simpli…car expresiones
Manejo de polinomios
Ecuaciones e inecuaciones
Factorización
Computación matemática
Teoría de números
Análisis de datos
Computación geométrica
Manipulación algebraica
Tablas cruzadas
Reordenamiento de datos
Frecuencias
Estadística descriptiva
Estadística lineal
Estadística no lineal
Estadística biestadística
Modelos de regresión
Clasi…cación
Fiabilidad
Categorías
Clustering
Validación de datos
Tendencias
Grá…cos y diagramas
Hojas de cálculo
Bases de datos
Depuradores
Formateadores de código
Manejadores de versiones
Generadores de documentanción
Virtualización
2 Sistemas Operativos
El conjunto de programas informáticos que permiten la administración e…caz
de los recursos de una computadora es conocido como sistema operativo o
Software de sistema. Estos programas comienzan a trabajar apenas se en-
ciende el equipo, ya que gestionan el Hardware desde los niveles más básicos
y permiten además la interacción con el usuario. Cabe destacar que los sis-
temas operativos no funcionan sólo en las computadoras. Por el contrario,
este tipo de sistemas se encuentran en la mayoría de los dispositivos electróni-
cos que utilizan microprocesadores: el Software de sistema posibilita que el
dispositivo cumpla con sus funciones (por ejemplo, un teléfono móvil o un
reproductor de DVD).
La administración de recursos
La administración de archivos
La administración de tareas
2.1 Windows
Microsoft Windows (véase [3]), conocido generalmente como Windows o MS
Windows es el nombre de una familia de Software propietario (véase apéndice
Seguridad Una de las principales críticas que reciben los sistemas opera-
tivos Windows es la debilidad del sistema en lo que a seguridad se re…ere y
el alto índice de vulnerabilidades críticas. El propio Bill Gates, fundador de
Microsoft, ha asegurado en repetidas ocasiones que la seguridad es objetivo
primordial para su empresa.
Partiendo de la base de que no existe un sistema completamente libre de
errores, las críticas se centran en la lentitud con la que la empresa reacciona
ante un problema de seguridad que pueden llegar a meses o incluso años de
diferencia desde que se avisa de la vulnerabilidad hasta que se publica la
actualización que corrija dicha vulnerabilidad (parche). En algunos casos la
falta de respuesta por parte de Microsoft ha provocado que se desarrollen
parches que arreglan problemas de seguridad hechos por terceros.
Uno de los pilares en que se basa la seguridad de los productos Windows es
la seguridad por ocultación, en general, un aspecto característico del Software
propietario que sin embargo parece ser uno de los responsables de la debi-
lidad de este sistema operativo ya que, la propia seguridad por ocultación,
constituye una infracción del principio de Kerckho¤, el cual a…rma que la
seguridad de un sistema reside en su diseño y no en una supuesta ignorancia
del diseño por parte del atacante.
2.2 Linux
GNU/Linux (véase [4]) también conocido como Linux, es un sistema ope-
rativo libre (véase apéndice 11.1) tipo Unix; multiplataforma, multiusuario
y multitarea. El sistema es la combinación de varios proyectos, entre los
cuales destacan GNU (encabezado por Richard Stallman y la Free Software
Foundation) y el núcleo Linux (encabezado por Linus Torvalds). Su desa-
rrollo es uno de los ejemplos más prominentes de Software libre: todo su
código fuente puede ser utilizado, modi…cado y redistribuido libremente por
cualquiera, bajo los términos de la GPL (Licencia Pública General de GNU)
y otra serie de licencias libres.
A pesar de que «Linux» denomina en la jerga cotidiana al sistema ope-
rativo, este es en realidad solo el Kernel (núcleo) del sistema. La idea de
hacer un sistema completo se remonta a mediados de la década de 1980 con
el proyecto GNU, así como una gran cantidad de los componentes que se usan
hoy en día (además del núcleo), que van desde los compiladores de GNU hasta
entornos de escritorio. Sin embargo, tras la aparición de Linux en la década
de 1990 una parte signi…cativa de los medios generales y especializados han
utilizado el término «Linux» para referirse al todo. Esto ha sido motivo de
polémicas.
Cabe señalar que existen derivados de Linux que no tienen componentes
GNU (por ejemplo Android), así como distribuciones de GNU donde Linux
esta ausente (por ejemplo Debian GNU/Hurd).
Linux "Seguros" Para muchos, Linux y Mac OS son dos sistemas opera-
tivos más seguros que Windows de Microsoft, pero con todo, hay algunas dis-
tribuciones especia-lizadas de Linux que satisfacen las necesidades de temas
relacionados con la seguridad, estos sistemas operativos intentan preservar
la privacidad y el anonimato, ayudan a utilizar internet de forma anónima
y evitar la censura en practicamente cualquier lugar y cualquier ordenador,
pero sin dejar rastro a menos que lo solicites explícitamente.
Algunos son sistemas operativos Live diseñados para ser usados desde
una memoria USB o un DVD independientemente del sistema operativo
original de la computadora. Además, mediante el uso de tecnologías como
Tails (https://tails.boum.org/)
Para muchos esta es la primera opción a la hora de buscar una solución
de seguridad en Linux. También conocida como «The Amnesic Incognito
Live System» , esta es una distribución basada en Debian. Es un proyecto de
código abierto que se publicó por primera vez hace 8 años y que redirige todo
el trá…co web a través de Tor logrando la privacidad a través del anonimato.
Además, almacena todo en la RAM y evita el uso del disco duro, por lo que
borra todo una vez se apaga. La imagen tiene un tamaño menor de 1.2 GB
3
Tor es una red abierta y distribuida que te ayuda a defenderte de una forma de
vigilancia en la red que amenaza tu libertad y privacidad, tus actividades comerciales
con…denciales y relaciones, además de la seguridad gubernamental. Además, te protege
redirigiendo tus comunicaciones alrededor de una red distribuida de retransmisores rea-
lizados por voluntarios alrededor del mundo: lo cual previene que alguien observe tus
comunicaciones a partir de los sitios que visitas, también evita que los sitios que navegas
obtengan tu ubicación física.
4
Sandbox es un mecanismo para ejecutar programas con seguridad y de manera sepa-
rada. A menudo se utiliza para ejecutar código nuevo, o Software de dudosa con…abilidad
proveniente de terceros. Ese entorno aislado permite controlar de cerca los recursos pro-
porcionados a los programas cliente a ejecutarse, tales como espacio temporal en discos y
memoria. Habitualmente se restringen las capacidades de acceso a redes, la habilidad de
inspeccionar la máquina an…trión y dispositivos de entrada entre otros. En este sentido,
el aislamiento de procesos es un ejemplo especí…co de virtualización.
5
Un cortafuegos (Firewall) es una parte de un sistema o una red que está diseñada
para bloquear el acceso no autorizado, permitiendo al mismo tiempo comunicaciones au-
torizadas. Se trata de un dispositivo o conjunto de dispositivos con…gurados para permitir,
limitar, cifrar o descifrar el trá…co entre los diferentes ámbitos sobre la base de un conjunto
de normas y otros criterios. Los cortafuegos se utilizan con frecuencia para evitar que los
usuarios de Internet no autorizados tengan acceso a redes privadas conectadas a Internet,
especialmente intranets.
6
El surgimiento de redes de comunicación, en particular de Internet, ha abierto nuevas
posibilidades para el intercambio de información. Al mismo tiempo, son cada vez mayores
las amenazas a la seguridad de la información que se transmite. Es necesario entonces,
crear diferentes mecanismos, dirigidos a garantizar la con…dencialidad y autenticidad de
los documentos electrónicos, todo ello es parte de la Criptografía.
Whonix (https://www.whonix.org/)
Es una distribución que se basa en Debian y consta de dos máquinas
virtuales, una es Tor Gateway que se ejecuta en Debian, mientras que la
otra es una Workstation. Whonix se instala en un sistema operativo host
proporcionado por el usuario que puede ser Linux, Windows, MacOS o Qubes
OS. Así al utilizar la red abierta y distribuida de transmisión de Tor, Whonix
echa abajo las posibilidades de vigilancia de la Red. Además, y por motivos
de seguridad, hace todo lo posible para ocultar nuestra dirección IP real.
Qubes OS (https://www.qubes-os.org/)
Se conoce como uno de los sistemas operativos más seguros del mundo
y se basa en realizar la virtualización mediante el «hipervisor Xen» — un
hipervisor imita el Hardware y permite ejecutar varias máquinas virtuales
simultáneamente— . El entorno de usuario de Qubes OS podría ser Fedora,
Debian, Whoix o Windows y, al igual que Tails. Así mismo utiliza diferentes
dominios para separar los niveles de con…anza, por ejemplo, un dominio de
trabajo, un dominio para el ocio, etc.; los cuales se ejecutan en diferentes
máquinas virtuales, esta versión requiere un mínimo de 16 GB de RAM.
Subgraph OS (https://subgraph.com/)
Nos encontramos con un sistema operativo seguro basado en Debian que
promete proporcionar una experiencia digital anónima. Ha sido diseñado
para evitar diferentes ataques de malware, es capaz de ser una plataforma
de comunicación segura además de proporcionar una interfaz de usuario muy
sencilla.
Kodachi (https://www.digi77.com/linux-kodachi/)
Es un sistema operativo centrado en la seguridad y basado en Debian
cuyo objetivo es proporcionar una experiencia informática segura. Ponerlo
en marcha es muy sencillo y no necesita demasiado tiempo, ya que permite
la opción de arrancar desde el Hardware del PC, o desde una unidad USB
externa para mayor seguridad. Hace uso de elementos tales como una cone-
xión VPN activa, el servicio TOR y DNScrypt con el que garantiza un buen
nivel de privacidad. Además, todo el sistema operativo se ejecuta desde la
memoria RAM del equipo, por lo que después de apagado no queda ningún
rastro de actividad.
Tens (https://www.spi.dod.mil/lipose.htm)
También conocido como Trusted End Node Security, este sistema es
distribuido y desarrollado por el Departamento de Defensa de los Estados
Unidos. Se basa en Arch Linux y puede ejecutarse en cualquier equipo con
tecnología Intel. Sólo arranca desde la RAM y viene cargado con un asis-
tente de encriptación, un Software de encriptación simple y potente para la
protección de nuestra información con…dencial.
IprediaOS (https://www.ipredia.org/os/)
Para empezar diremos que I2P es una capa de comunicación P2P anónima
que se crea utilizando herramientas de código abierto, algo en lo que se basa
IprediaOS, ya que orienta todo su trá…co a través de I2P y se asegura de que
toda su actividad on-line no pueda ser interceptada por terceros. Así hace
uso de múltiples capas de cifrado y cabe mencionar que la red I2P es una red
dinámica y distribuida.
¿Qué hacer para que mi Linux sea más seguro? La mejor opción,
es elegir una distribución de Linux que nos permita mantener el sistema
actualizado, instalar sólo los paquetes que necesitamos y que estos proven-
gan de una fuente con…able, además de encriptar las particiones del sistema
operativo y de datos del usuario. Varias versiones de Linux satisfacen los
requerimientos anteriores, nosotros preferimos usar Linux/GNU Debian en
su versión estable.
También, podemos tratar de mantener nuestros datos fuera de miradas
indiscretas usando encfs (Encrypted Virtual Filesystem) en nuestra máquina
o en las que tengamos acceso7 , incluso del super usuario (root). Además,
7
Que soporten la misma versión del programa encfs mediante el uso de afuse a nivel
usuario.
# modprobe fuse
# ls -al /dev/fuse
$ fusermount -u ~/desencriptados
https://livecdlist.com
http://mmc.geo…sica.unam.mx/Replicas/knoppix/
y usar mediante:
10
Una imagen ISO es un archivo informático donde se almacena una copia exacta de un
sistema de archivos y de esta se puede generar una imagen para CDROM, DVD o USB.
https://www.osboxes.org
https://virtualboxes.org/images/
A rch m a n , A rch S trike , A rc o L inu x , A rtix L inu x , A rya L inu x , AV L inu x , B a ck B ox L inu x , B ig L inu x , B io -L inu x , B la ck A rch ,
11
Cuando se trabaja desde la Web es recomendable usar el modo Privado o Incógnito
para no guardar el historial de navegación, información introducida en los formularios y
borrar al cerrar el navegador los datos de los sitios visitados. Pero recuerda que los sitios
Web que visitamos sí guardan información de nuestra visita, nuestro proveedor de internet
también guarda constancia de nuestra visita y si descargamos algo, esto no se borra al igual
que el historial de descargas, además de las marcas de páginas o favoritos se conservarán
al cerrar el navegador.
12
Estos servicios son conocidos como computación en la nube (Cloud Computing).
K n o p p ix , K o d a ch i, K o lib riO S , K o ro ra , K u b u ntu , K w o rt, L inu x L ite , L inu x M int, L ive R a iz o , L M D E , L u b u ntu , L X L E
Trisq u e l, Tru e O S , Tu rn K e y L inu x , U b u ntu , U b u ntu B u d g ie , U b u ntu S tu d io , U b u ntu K y lin , U ru k , Ve c to rL inu x , V in e L inu x ,
https://www.tutorialspoint.com/execute_bash_online.php
http://www.webminal.org/
https://bellard.org/jslinux/
https://codeanywhere.com/
https://copy.sh/v86/
https://www.masswerk.at/jsuix/
https://linuxcontainers.org/lxd/try-it/
http://cb.vu/
https://www.learnshell.org/
https://www.tutorialspoint.com/execute_bash_online.php
https://paiza.io/en/projects/new?language=bash
https://www.jdoodle.com/test-bash-shell-script-online
http://rextester.com/l/bash_online_compiler
http://mmc.geo…sica.unam.mx/acl/Herramientas/
SistemasOperativos/Linux
http://mmc.geo…sica.unam.mx/Replicas/debianInstall
http://mmc.geo…sica.unam.mx/Replicas/debian
13
Una lista de las distribuciones de Linux y su árbol de vida puede verse en la página
Web http://futurist.se/gldt/
14
Algunas de las razones para instalar GNU/Linux Debian están detalladas en su página
Web https://www.debian.org/intro/why_debian.es.html
2.3 Mac OS
Mac OS (véase [5]) — del inglés Macintosh Operating System, en español
Sistema Operativo de Macintosh— es el nombre del sistema operativo propie-
tario (véase apéndice 11.2) creado por Apple para su línea de computadoras
Macintosh, también aplicado retroactivamente a las versiones anteriores a
System 7.6, y que apareció por primera vez en System 7.5.1. Es conocido
por haber sido uno de los primeros sistemas dirigidos al gran público en
contar con una interfaz grá…ca compuesta por la interacción del mouse con
ventanas, íconos y menús.
Deliberada a la existencia del sistema operativo en los primeros años de
su línea Macintosh en favor de que la máquina resultara más agradable al
usuario, diferenciándolo de otros sistemas contemporáneos, como MS-DOS,
que eran un desafío técnico. El equipo de desarrollo del Mac OS original
incluía a Bill Atkinson, Jef Raskin y Andy Hertzfeld.
Este fue el comienzo del Mac OS clásico, desarrollado íntegramente por
Apple, cuya primera versión vio la luz en 1985. Su desarrollo se extendería
hasta la versión 9 del sistema, lanzada en 1999. A partir de la versión 10
(Mac OS X), el sistema cambió su arquitectura totalmente y pasó a basarse
en Unix, sin embargo su interfaz grá…ca mantiene muchos elementos de las
versiones anteriores.
Hay una gran variedad de versiones sobre cómo fue desarrollado el Mac
OS original y dónde se originaron las ideas subyacentes. Pese a esto, docu-
mentos históricos prueban la existencia de una relación, en sus inicios, entre
el proyecto Macintosh y el proyecto Alto de Xerox PARC. Las contribuciones
iniciales del Sketchpad de Ivan Sutherland y el On-Line System de Doug En-
gelbart también fueron signi…cativas.
2.4 Android
Android (véase [6]) es un sistema operativo basado en el núcleo Linux (véase
apéndice 11.1). Fue diseñado principalmente para dispositivos móviles con
pantalla táctil, como teléfonos inteligentes, tabletas y también para relojes
inteligentes, televisores y automóviles. Inicialmente fue desarrollado por An-
droid Inc., empresa que Google respaldó económicamente y más tarde, en
2005, compró. Android fue presentado en 2007 junto la fundación del Open
Handset Alliance (un consorcio de compañías de Hardware, Software y tele-
comunicaciones) para avanzar en los estandares abiertos de los dispositivos
móviles. El primer móvil con el sistema operativo Android fue el HTC Dream
y se vendió en octubre de 2008. Android es el sistema operativo móvil más
utilizado del mundo, con una cuota de mercado superior al 80% al año 2017,
muy por encima de IOS.
El éxito del sistema operativo lo ha convertido en objeto de litigios sobre
patentes en el marco de las llamadas guerras de patentes entre las empresas de
teléfonos inteligentes. Según los documentos secretos …ltrados en 2013 y 2014,
el sistema operativo es uno de los objetivos de las agencias de inteligencia
internacionales.
La versión básica de Android es conocida como Android Open Source
Project (AOSP). El 25 de junio de 2014 en la Conferencia de Desarrolladores
Núcleo Linux: Android depende de Linux para los servicios base del
sistema como seguridad, gestión de memoria, gestión de procesos, pila de
red y modelo de controladores. El núcleo también actúa como una capa de
abstracción entre el Hardware y el resto de la pila de Software.
anunció que estaba reconsiderando sus relaciones con las distintas platafor-
mas publicitarias y exhortó a la industria en general a hacer lo mismo.
Las informaciones revelaron que las agencias realizan un esfuerzo adi-
cional para interceptar búsquedas en Google Maps desde Android y otros
teléfonos inteligentes para recopilar ubicaciones de forma masiva. La NSA
y el GCHQ insistieron en que estas actividades cumplen con las leyes na-
cionales e internacionales, aunque The Guardian a…rmó que «las últimas
revelaciones podrían sumarse a la creciente preocupación pública acerca de
cómo se acumula y utiliza la información, especialmente para aquellos fuera
de los EE.UU. que gozan de menos protección en temas de privacidad que
los estadounidenses» .
2.5 Otros
Sistemas Operativos para PC
La implementación de algoritmos
Integración de funciones
Manipulación de polinomios
Gra…cación de funciones en 2D y 3D
R (véase [46])
3.1 MATLAB
El paquete MATLAB (véase [35]) tiene cientos de características, tan varia-
das como el segmento de usuarios al que dicho Software esta dirigido. Al ser
un 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
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 del
segmento al que estan 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 y
miles de páginas Web en los cuales se muestra como resolver diversos pro-
blemas concomitantes en Ciencias e Ingenierías usando dicho paquete y la
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á…cos y visualización de datos. Además de opciones para
hacer interpolación y regresión de datos, cálculo de eigen-valores y valores
singulares, etc.
3.2 Octave
El paquete Octave (véase [39]), al mantener una sintaxis similar a la de
MATLAB, la gran mayoría de funcionalidades básicas son compatibles. Las
múltiples características y los miles de usuarios, han creado una comunidad
robusta, la que ha logrado una gran cantidad de funciones optimizadas, que
han permitido la publicación de decenas libros, cientos de artículos y miles
de páginas Web en los cuales se muestra como resolver diversos problemas
concomitantes en Ciencias e Ingenierías usando dicho paquete y la interacción
con otros lenguajes como son C/C++, Fortran o Java.
Entre las principales aplicaciones de Octave/MATLAB incluyen la de
métodos secuenciales y paralelos para resolver problemas de álgebra lineal
con matrices (ralas, dispersas y densas), estadística, análisis de Fourier, op-
timización, integración numérica, resolución de ecuaciones diferenciales or-
dinarias y parciales, creación de grá…cos y visualización de datos. Además
de opciones para hacer interpolación y regresión de datos, cálculo de eigen-
valores y valores singulares, etc.
Uno de los aspectos más agradables de Octave/MATLAB es su entorno
de programación, que permite centralizar la información en un entorno de
ventanas. El depurador esta también incorporado en el editor.
3.3 FreeMat
El paquete FreeMat (véase [38]) es un programa de cálculo numérico de li-
cencia GPL (véase [15]) que proporciona un ambiente libre para el rápido
desarrollo 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 los
lenguajes de programación en C, C++ y Fortran, incluso distribuye el desa-
rrollo de algoritmos en paralelo con la interfaz de paso de mensajes llamada
MPI.
Es similar a MATLAB, pero según sus desarrolladores es casi 95% com-
patible con MATLAB, actualmente trabaja en Windows, Linux, MAC y
algunas versiones de UNIX, las características soportadas son:
Arreglos heterogéneos
No implementación de GUI/Widgets
3.4 Scilab
El paquete Scilab(véase [36]) tiene una licencia compatible con la de GPL,
que por su madurez y la gran cantidad de usuarios, Universidades y Centros
de Investigación que lo usan y dan retroalimentación del paquete, ha logrado
ser un Software que permite hacer todas las opciones básicas de MATLAB
y algunas avanzadas también, es similar a MATLAB y permite cómputo
secuencial y paralelo, pero no busca una compatibilidad total, por ello hay
diferencias entre ambos paquetes. Scilab provee una forma para tratar de
importar código de MATLAB y generar su equivalente en Scilab.
Algunas diferencias básicas son:
3.5 Julia
Julia (véase [37]) es un lenguaje de programación homoicónico, multiplatafor-
ma y multiparadigma — soporta programación orientada a objetos, por pro-
cedimientos, funcional y meta además de multietapas— de tipado dinámico
de alto nivel y alto desempeño para la computación genérica, técnica y cientí-
…ca, con una sintaxis similar a la de otros entornos de computación similares,
con licencia MIT (véase apéndice 11.1).
Los tipos de…nidos por el usuario son tan rápidos y compactos como
los tipos estandar integrados.
3.6 Scipy
El paquete Scipy (véase [40]) es parte de Python (véase [41]) y es imposible
condensar en unas pocas páginas todas las posibilidades de un lenguaje de
propósito general como Python. Al ser este un lenguaje interpretado, puede
teclearse línea a línea desde la entrada de comandos, pero también es posible
usar …cheros, estos por claridad suelen tener la extensión .py, este podría ser
ejecutado con la orden python nombre_…chero.py. En este sentido es similar
a MATLAB.
Ya que en su …losofí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 orientado
a objetos e interpretado que también puede ser compilado para ganar veloci-
dad en la ejecución. Este hecho le con…ere una gran potencia y la capacidad
de bene…ciarse de las mejoras del lenguaje base y posee herramientas secuen-
ciales y paralelas — en memoria compartida y distribuida además de usar los
Cores grá…cos CUDA (GPUs) de las tarjetas NVIDIA— .
Algunas diferencias básicas son:
Salvo los tipos de datos muy simples, todos los demás objetos que se
pasan de una función lo hacen por referencia.
Costo: El costo de las diversas versiones de MATLAB supera los dos mil
pesos por licencia estudiantil, en el caso del Software libre, los paquetes
se pueden descargar de la red sin más costo que el acceso a Internet.
Por otro lado existe Anaconda, una Suite de código abierto que abarca
una serie de aplicaciones, librerías y conceptos diseñados para el desarrollo
Álgebra diferencial
4.1 Mathematica
Mathematica (véase [76]) es un programa utilizado en áreas cientí…cas, de in-
geniería, matemática y áreas computacionales. Originalmente fue concebido
por Stephen Wolfram, quien continúa siendo el líder del grupo de matemáti-
cos y programadores que desarrollan el producto en Wolfram Research, com-
pañía ubicada en Champaign, Illinois. Comúnmente considerado como un
sistema de álgebra computacional, Mathematica es también un poderoso
lenguaje de programación de propósito general.
Los atributos de Mathematica incluyen:
4.2 Maple
Maple (véase [75]) es un programa orientado a la resolución de problemas
matemáticos, capaz de realizar cálculos simbólicos, algebraicos y de álgebra
computacional. Fue desarrollado originalmente en 1981 por el Grupo de Cál-
culo Simbólico en la Universidad de Waterloo en Waterloo, Ontario, Canadá.
Desde 1988 ha sido mejorado y vendido comercialmente por Waterloo Maple
Inc. (también conocida como Maplesoft), compañía canadiense con sede en
la misma localidad. La última versión es Maple 2018.
Maple se basa en un pequeño núcleo escrito en C, que proporciona el
lenguaje Maple. Maple es un lenguaje de programación interpretado. Las
expresiones simbólicas son almacenadas en memoria como grafos dirigidos
sin ciclos. La mayoría de funcionalidades son proporcionadas por librerías:
unas escritas en lenguaje Maple, con acceso a su código fuente; pero también
hace uso de otras librerías bien conocidas como las NAG, ATLAS o GMP.
Estas son algunas de las características mas relevantes del Software:
Bases Groebner
Álgebra diferencial
4.3 Maxima
El sistema de álgebra computacional Maxima (véase [77]) es un motor de
cálculo simbólico escrito en lenguaje Lisp publicado bajo licencia GNU GPL
(véase apéndice 11.1). Cuenta con un amplio conjunto de funciones para
hacer manipulación simbólica de polinomios, matrices, funciones racionales,
integración, derivación, manejo de grá…cos en 2D y 3D, manejo de números
de coma ‡otante muy grandes, expansión en series de potencias y de Fourier,
entre otras funcionalidades. Además tiene un depurador a nivel fuente para
el código de Maxima.
Maxima esta basado en el sistema original de Macsyma desarrollado por
MIT en los años 70. Es bastante …able, tiene un buen recolector de basura,
por lo que no desperdicia memoria. Viene con cientos de auto pruebas (test-
suite). Maxima funciona en modo consola, sin embargo incluye las intefaces
grá…cas xMaxima y wxMaxima para facilitar su uso.
El editor de texto cientí…co GNU TeXmacs también puede ser usado para
facilitar una interfaz grá…ca de usuario para Maxima. Otras opciones son,
imaxima, y el modo interactivo de Emacs. También puede hacer uso de la in-
terfaz grá…ca de SageMath, que facilita su integración con otras herramientas
CASE.
Como esta escrito en Common Lisp, es fácilmente accesible para la pro-
gramación, desde la capa inferior de Lisp puede llamarse a Maxima.
Como la mayoría de sistemas algebraicos, Maxima se especializa en ope-
raciones simbólicas. También ofrece capacidades numéricas especiales, como
son los números enteros y racionales, los cuales pueden crecer en tamaño sólo
limitado por la memoria de la máquina; y números reales en coma ‡otante,
cuya precisión puede ser arbitrariamente larga (b‡oat). Permite el manejo
de expresiones simbólicas y numéricas, y además produce resultados con una
alta precisión.
Para cálculos intensivos en reales de coma ‡otante, Maxima ofrece la posi-
bilidad de generar código en otros lenguajes de programación, como Fortran,
que quizá se ejecuten de manera más e…ciente.
Números
Transformaciones algebraicas
Resolución de ecuaciones
Conjuntos
Vectores y campos
Grá…cos
Ecuaciones diferenciales
Interpolación numérica
Inecuaciones racionales
Series de potencias
Transformada de Laplace
Ecuaciones recurrentes
Programación en Maxima
http://www.wolframalpha.com/
http://www.quickmath.com/
http://maxima-online.org
16
Cuando se trabaja desde la Web es recomendable usar el modo Privado o Incógnito
para no guardar el historial de navegación, información introducida en los formularios y
borrar al cerrar el navegador los datos de los sitios visitados. Pero recuerda que los sitios
Web que visitamos sí guardan información de nuestra visita, nuestro proveedor de internet
también guarda constancia de nuestra visita y si descargamos algo, esto no se borra al igual
que el historial de descargas, además de las marcas de páginas o favoritos se conservarán
al cerrar el navegador.
5 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 propio
con un amplio abanico de herramientas la lectura, manipulación, análisis y
gra…cación de datos estadísticos. Entre sus prestaciones básicas destacan:
Tablas Cruzadas
Reordenamiento de Datos
Frecuencias
Estadística Descriptiva
Estadística Lineal
Estadística no Lineal
Estadística Biestadística
Modelos de Regresión
Clasi…cación
Fiabilidad
Categorías
Clustering
Validación de Datos
Tendencias
Grá…cos y Diagramas
R (véase [46])
5.1 SPSS
El paquete SPSS (véase [43]) es un programa estadístico informático muy
usado en las ciencias sociales y las empresas de investigación de mercado.
Originalmente SPSS fue creado como el acrónimo de «Statistical Package
for the Social Sciences» aunque también se ha referido como «Statistical
Product and Service Solutions» . Sin embargo, en la actualidad la parte SPSS
del nombre completo del paquete es IBM SPSS17 el cual 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 una sencilla interfaz
para la mayoría de los análisis. En las últimas versiones de SPSS se podían
realizar análisis con millones de registros y miles de variables. El programa
consiste en un módulo base y módulos anexos que se han ido actualizando
constantemente con nuevos procedimientos estadísticos. Cada uno de estos
módulos se compra por separado. SPSS soporta hacer interfase con lenguajes
de programación como Python, R, C, C++, Visual Basic, .NET
Existe una versión incipiente que pretende ser un reemplazo libre para
SPSS, se llama PSPP (véase [44]) con una interfaz llamada PSPPire (véase
[45]), esta es aplicación de Software libre para el análisis de datos multi-
plataforma, se presenta en modo grá…co y esta escrita en el lenguaje de pro-
gramación C. Usa la biblioteca cientí…ca GNU para sus rutinas matemáticas,
y plotutils para la generación de grá…cos. PSPP puede importar formatos de:
Gnumeric, OpenDocument, hojas de Excel, bases de datos Postgres, valores
separados por coma y archivos ASCII. Puede exportar archivos en formato
SPSS y archivos ASCII. Algunas de las bibliotecas usadas por PSPP pueden
ser accedidas vía programación.
17
Existe una versión gratuita del paquete IBM SPSS para todo aquel que desee conocer
el producto y puede ser descargada de su página Web.
5.2 R
El paquete R (véase [46]) es un lenguaje y entorno de programación para
análisis estadístico y grá…co. Se trata de un proyecto de Software libre,
resultado de la implementación GNU del premiado lenguaje S. SPSS, R y
S-Plus — versión comercial de S— son, probablemente, los tres lenguajes más
utilizados en investigación por la comunidad estadística, siendo además muy
populares en el campo de la investigación biomédica, la bioinformática y las
matemáticas …nancieras. A esto contribuye la posibilidad de cargar diferentes
bibliotecas o paquetes con …nalidades especí…cas de cálculo o grá…co.
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 interfase con lenguajes de
programación como C, C++ y Fortran.
Otra de las características de R es su capacidad grá…ca, que permite
generar grá…cos con alta calidad. R posee su propio formato para la do-
cumentación basado en LaTeX (véase [34]). R también puede usarse como
herramienta de cálculo numérico, campo en el que puede ser tan e…caz como
otras herramientas especí…cas tales como FreeMat, GNU Octave y su equi-
valente comercial, MATLAB. Se ha desarrollado una interfaz RWeka para
interactuar con Weka (véase [78]) que permite leer y escribir …cheros en el
formato ar¤ y enriquecer R con los algoritmos de minería de datos de dicha
plataforma.
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 Environments) y los GUI (Graphical User Interfaces)
— permiten editar, ejecutar y depurar código desarrollado para R— . Hay más
de 20 proyectos activos, dos de los más conocidos son Tinn-R (véase [79]) y
RStudio (véase [80]).
5.3 SAS
SAS Institute es uno de los principales fabricantes de Business Intelligence
Software (véase [81]). Su nombre es el acrónimo de «Statistical Analysis Sys-
tems» (sistemas de análisis estadístico) aunque, posteriormente, al extender
su 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 SAS
Institute fue el SAS Software Package (véase [42]), un lenguaje de progra-
Pasos data que permiten realizar operaciones sobre las …las de un con-
junto de datos.
Un intérprete de SQL.
Por otro lado existe Anaconda, una Suite de código abierto que abarca
una serie de aplicaciones, librerías y conceptos diseñados para el desarrollo
de la Ciencia de datos con Python. En líneas generales Anaconda Distrib-
ution es una distribucción de Python que funciona como un gestor de en-
torno, un gestor de paquetes y que posee una colección de más de 720 pa-
quetes de código abierto. Anaconda Distribu-tion se agrupa en 4 sectores
o soluciones tecnológicas, Anaconda Navigator, Anaconda Project, Las li-
brerías de Ciencia de datos y Conda. Todas estas se instalan de manera
automática y en un procedimiento muy sencillo. Para más información ver:
https://www.anaconda.com/.
También esta SageMath, una Suite de código abierto bajo la licencia GPL
de Software matemático como: NumPy, SciPy, matplotlib, Sympy, Maxi-
ma, GAP, FLINT, R, entre otros. Además combina acceso a una poderosa
combinación del lenguaje basada en Python o directamente vía interfaces
o Wrappers. La misión del proyecto es crear una alternativa de Software
libre a Magma, Maple, Mathematica y Matlab. Para más información ver:
http://www.sagemath.org/.
Para R https://nclab.com/free-portal/
Para R https://cdn.datacamp.com/dcl-react-prod/example.html
20
Cuando se trabaja desde la Web es recomendable usar el modo Privado o Incógnito
para no guardar el historial de navegación, información introducida en los formularios y
borrar al cerrar el navegador los datos de los sitios visitados. Pero recuerda que los sitios
Web que visitamos sí guardan información de nuestra visita, nuestro proveedor de internet
también guarda constancia de nuestra visita y si descargamos algo, esto no se borra al igual
que el historial de descargas, además de las marcas de páginas o favoritos se conservarán
al cerrar el navegador.
6 Paquetes O…máticos
En la actualidad, los llamados paquetes o…máticos, no son otra cosa que
programas de cómputo integrado, que permiten automatizar multiples ta-
reas que ayudan a idear, crear, manipular, transmitir, almacenar información
necesaria en una o…cina. Entre sus prestaciones básicas destacan:
Hojas de Cálculo
Bases de Datos
Procesamiento de Imágenes
Procesamiento de Textos
Existe una gran cantidad de paquetes o…máticos, que van, desde los ins-
talados hasta los asequibles a través de la Web, entre los más comunes ten-
emos:
Por otro lado, Microsoft VBA (Visual Basic for Applications) es el lenguaje
de 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
la suite Microsoft O¢ ce. Visual Basic para Aplicaciones es un subconjunto
casi completo de Visual Basic 5.0 y 6.0.
Microsoft VBA viene integrado en aplicaciones de Microsoft O¢ ce, como
Word, Excel, Access y PowerPoint. Prácticamente cualquier cosa que se
pueda programar en Visual Basic 5.0 o 6.0 se puede hacer también dentro
Análisis de Fourier
Correlación
Covarianza
Estadística descriptiva
Histograma
Jerarquía y percentil
Media móvil
Muestreo
Prueba t
Prueba z
Regresión
Suavización exponencial
Varianza
Adobe InDesign
Scribus
Inkscape
Gravit
Vectr
Libre O¢ ce Draw
SK1
Maya
Blender
Gimp
22
Una imagen vectorial es una imagen digital formada por objetos geométricos depen-
dientes, cada uno de ellos de…nido por atributos matemáticos de forma, posición, etc. Y
son completamente diferentes a las imágenes de mapa de bits. El interés principal de los
grá…cos vectoriales es poder ampliar el tamaño de la imagen a voluntad sin sufrir perdida
de calidad que sufren los mapas de bits. Pero todos los ordenadores traducen los grá…cos
vectoriales a mapas de bits para poderlos representar en la pantalla, impresora, etc.
Corel Photo-Paint
Adobe Photoshop
CorelDRAW
Adobe illustrator
Photoshop
http://mmc.geo…sica.unam.mx/acl/Herramientas/
O…mática/Latex/
23
Cuando se trabaja desde la Web es recomendable usar el modo Privado o Incógnito
para no guardar el historial de navegación, información introducida en los formularios y
borrar al cerrar el navegador los datos de los sitios visitados. Pero recuerda que los sitios
Web que visitamos sí guardan información de nuestra visita, nuestro proveedor de internet
también guarda constancia de nuestra visita y si descargamos algo, esto no se borra al igual
que el historial de descargas, además de las marcas de páginas o favoritos se conservarán
al cerrar al navegador.
7.1 Java
Java (véase [7]) es un lenguaje de programación de propósito general, con-
currente, orientado a objetos, que fue diseñado especí…camente para tener
tan pocas dependencias de implementación como fuera posible. Su inten-
ción es permitir que los desarrolladores de aplicaciones «escriban el pro-
grama una vez y lo ejecuten en cualquier dispositivo (Write Once, Run Any-
where» o WORA)» , lo que quiere decir que el código que es ejecutado en
una plataforma no tiene que ser recompilado para ejecutarse en otra.
El lenguaje de programación Java fue originalmente desarrollado por
James Gosling, de Sun Microsystems (constituida en 1982 y posteriormente
adquirida el 27 de enero de 2010 por la compañía Oracle), y publicado en 1995
como un componente fundamental de la plataforma Java de Sun Microsys-
tems. Su sintaxis deriva en gran medida de C y C++, pero tiene menos
utilidades de bajo nivel que cualquiera de ellos. Las aplicaciones de Java
son compiladas a bytecode (clase Java), que puede ejecutarse en cualquier
máquina virtual Java (JVM) sin importar la arquitectura de la computadora
subyacente.
La compañía Sun desarrolló la implementación de referencia original para
los compiladores de Java, máquinas virtuales y librerías de clases en 1991, y
las publicó por primera vez en 1995. A partir de mayo de 2007, en cumpli-
miento de las especi…caciones del Proceso de la Comunidad Java, Sun volvió
# update-java-alternatives -s java-1.8.0-openjdk-amd64
http://mmc.geo…sica.unam.mx/acl/Herramientas/
Lenguajes/Java/
7.2 C y C++
C (véase [9]) es un lenguaje de programación originalmente desarrollado por
Dennis Ritchie entre 1969 y 1972 en los Laboratorios Bell, como evolución
del lenguaje anterior B, a su vez basado en BCPL. Es un lenguaje orientado
a la implementación de Sistemas operativos, concretamente Unix, Linux y el
Kernel de Linux. C es apreciado por la e…ciencia del código que produce y
es el lenguaje de programación más popular para crear Software de sistemas,
aunque también se utiliza para crear aplicaciones.
Se trata de un lenguaje de tipos de datos estaticos, débilmente tipi…cado,
de medio nivel, ya que dispone de las estructuras típicas de los lenguajes de
alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten
un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones
al lenguaje que posibilitan mezclar código en ensamblador con código C o
acceder directamente a memoria o dispositivos periféricos.
Filosofía Uno de los objetivos de diseño del lenguaje C es que sólo sean
necesarias unas pocas instrucciones en lenguaje máquina para traducir cada
elemento del lenguaje, sin que haga falta un soporte intenso en tiempo de
ejecución. Es muy posible escribir C a bajo nivel de abstracción; de hecho,
C se usó como intermediario entre diferentes lenguajes.
En parte, a causa de ser relativamente de bajo nivel y tener un modesto
conjunto de características, se pueden desarrollar compiladores de C fácil-
mente. En consecuencia, el lenguaje C esta disponible en un amplio abanico
de plataformas (más que cualquier otro lenguaje). Además, a pesar de su
naturaleza de bajo nivel, el lenguaje se desarrolló para incentivar la progra-
mación independiente de la máquina. Un programa escrito cumpliendo los
estandares e intentando que sea portátil puede compilarse en muchos com-
putadores.
C se desarrolló originalmente (conjuntamente con el sistema operativo
Unix, con el que ha estado asociado mucho tiempo) por programadores para
programadores. Sin embargo, ha alcanzado una popularidad enorme, y se ha
usado en contextos muy alejados de la programación de Software de sistemas,
para la que se diseñó originalmente.
con múltiples estilos. Uno de los más empleados es el estructurado "no lle-
vado al extremo", entre sus principales propiedades destacan:
perfectamente el lenguaje. Por esta razón es muy importante que los re-
cién iniciados adopten buenas prácticas a la hora de escribir en C y manejar
la memoria, como por ejemplo un uso intensivo de indentación y conocer a
fondo todo lo que implica el manejo de punteros y direcciones de memoria.
http://mmc.geo…sica.unam.mx/acl/Herramientas/
Lenguajes/CyC++/
ddd: interfaz grá…co para los depuradores gdb o dbx, además existen
otros depuradores según el ambiente grá…co usado, por ejemplo para
KDE existe kgdb
7.3 Python
Python (véase [8]) es un lenguaje de programación interpretado cuya …losofía
hace hincapié en una sintaxis que favorezca un código legible. Se trata de un
lenguaje de programación multiparadigma, ya que soporta orientación a ob-
jetos, programación imperativa y, en menor medida, programación funcional.
Es un lenguaje interpretado, usa tipado dinámico y es multiplataforma.
Es administrado por la Python Software Foundation. Posee una licencia
de código abierto, denominada Python Software Foundation License, que es
compatible con la Licencia pública general de GNU a partir de la versión
2.1.1, e incompatible en ciertas versiones anteriores (véase apéndice 11.1).
Python fue creado a …nales de los ochenta por Guido van Rossum en
el Centro para las Matemáticas y la Informática (CWI, Centrum Wiskunde
& Informatica), en los Países Bajos, como un sucesor del lenguaje de pro-
gramación ABC, capaz de manejar excepciones e interactuar con el sistema
operativo Amoeba. Van Rossum es el principal autor de Python, y su con-
tinuo rol central en decidir la dirección de Python es reconocido, re…riéndose
a él como Benevolente Dictador Vitalicio (en inglés: Benevolent Dictator for
Life, BDFL).
Elementos del lenguaje Python fue diseñado para ser leído con facilidad.
Una de sus características es el uso de palabras donde otros lenguajes uti-
lizarían símbolos. Por ejemplo, los operadores lógicos: !, jj y &&, en Python
se escriben; not, or y and, respectivamente. Curiosamente el lenguaje Pascal
es junto con COBOL uno de los lenguajes con muy clara sintaxis y ambos
son de la década de los 70. La idea del código claro y legible no es algo nuevo.
El contenido de los bloques de código (bucles, funciones, clases, etc.)
es delimitado mediante espacios o tabuladores, conocidos como indentación,
antes de cada línea de órdenes pertenecientes al bloque. Python se diferen-
cia así de otros lenguajes de programación que mantienen como costumbre
declarar los bloques mediante un conjunto de caracteres, normalmente entre
llaves {}. Se pueden utilizar tanto espacios como tabuladores para indentar
el código, pero se recomienda no mezclarlos.
Debido al signi…cado sintáctico de la indentación, cada instrucción debe
Hug tiene como objetivo hacer que el desarrollar APIs impulsadas por
Python sea lo más simple posible, pero no más simple. Como resultado,
simpli…ca drásticamente el desarrollo de la API de Python.
de solicitud. Con Zappa, puede actualizar su código en una sola línea con
Zappa.
Por otro lado existe Anaconda, una Suite de código abierto que abarca
una serie de aplicaciones, librerías y conceptos diseñados para el desarrollo
de la Ciencia de datos con Python. En líneas generales Anaconda Distrib-
ution es una distribucción de Python que funciona como un gestor de en-
torno, un gestor de paquetes y que posee una colección de más de 720 pa-
quetes de código abierto. Anaconda Distribu-tion se agrupa en 4 sectores
o soluciones tecnológicas, Anaconda Navigator, Anaconda Project, Las li-
brerías de Ciencia de datos y Conda. Todas estas se instalan de manera
automática y en un procedimiento muy sencillo. Para más información ver:
https://www.anaconda.com/.
También esta SageMath, una Suite de código abierto bajo la licencia GPL
de Software matemático como: NumPy, SciPy, matplotlib, Sympy, Maxi-
ma, GAP, FLINT, R, entre otros. Además combina acceso a una poderosa
combinación del lenguaje basada en Python o directamente vía interfaces
o Wrappers. La misión del proyecto es crear una alternativa de Software
libre a Magma, Maple, Mathematica y Matlab. Para más información ver:
http://www.sagemath.org/.
http://mmc.geo…sica.unam.mx/acl/Herramientas/
Lenguajes/Python/
Diakonos
Jet
Joe
LE
Mined
Nano
Pico
Setedit
Vim
Fte
Gedit
SciTE
JEdit
NEdit
MEdit
KScope
Editra
Kate
KWrite
Leafpad
Mousepad
Anjunta
TEA
Pluma
GVim
Emacs
Atom
Blue…sh
BlueGri¤on
Brackets
Geany
Glade
KompoZer
Light Table
Notepadqq
Scribes
Sublime Text
Aptana
Arduino IDE
Android Studio
CodeLite
Code::Blocks
Eclipse
Gambas
JetBrains Suite
NetBeans
Ninja-IDE
Python IDLE
PyDev
Postman
Qt Creator
Simply Fortran
Spyder
PyCharm
Jupyter
Eric
Android SDK
Java JDK
KDi¤3
Meld
Di¤use
DirDi¤
kompare
Numdi¤
colordi¤
wdi¤
xxdi¤
tkdi¤
Ndi¤
Otras Herramientas
Alleyoop
C2HTML
Java2HTML
Code2HTML
c2html
AutoDia
txt2html
html2text
Bazaar
CVS
LibreSource
Monotone
SmartGit
GitKraken
Git Cola
https://www.jdoodle.com
25
Cuando se trabaja desde la Web es recomendable usar el modo Privado o Incógnito
para no guardar el historial de navegación, información introducida en los formularios y
borrar al cerrar el navegador los datos de los sitios visitados. Pero recuerda que los sitios
Web que visitamos sí guardan información de nuestra visita, nuestro proveedor de internet
también guarda constancia de nuestra visita y si descargamos algo, esto no se borra al igual
que el historial de descargas, además de las marcas de páginas o favoritos se conservarán
al cerrar el navegador.
https://try.jupyter.org/
http://browxy.com
https://www.compilejava.net
http://repl.it
http://codepad.org/
https://code.hackerearth.com/
https://www.remoteinterview.io/online-c-compiler
http://ideone.com
https://hackide.herokuapp.com/
https://www.codechef.com/ide
http://cpp.sh/
https://codebunk.com/
https://codebunk.com/
http://rextester.com/
https://www.tutorialspoint.com/codingground.htm
https://www.compileonline.com
http://python…ddle.com/
https://trinket.io/python
https://www.pythonanywhere.com/try-ipython/
https://www.rollapp.com/
Virtualización
Xabacus
Euler
Geogebra
Gretl
Lybniz
Mathomatic
Pari/GP
qliss3d
RKWard
XaoS
Yacas
BLISS
Mumpstest test
nauty
Netgen
Eukleides
Genius
PSPP
Pdl
Yorick
Gnuplot
FreeMat
mathomatic-primes
OpenAxiom
Julia
SageMath
Cabri-Geometer
GeoGebra
Sketchpad
Cindirella
RyC
Geup
GlassFish
NetLogo
Gpaint
GIMP
Inkscape
Umbrello
ImageMagick
Dia
X…g
Scribus
Blender
Calibre
Kdenlive
Kazam
Pinta
Krita
Pencil2D
Graphviz
TextDraw
Calligra
feh
Chromium
Firefox
Chimera
Conkeror
Dillo
Edbrowse
Epiphany-browser
Iceweasel
Konqueror
Midori
Netrik
NetSurf
netsurf-fb
netsurf-gtk
Surf
Uzbl
26
Cuando se trabaja desde la Web es recomendable usar el modo Privado o Incógnito
para no guardar el historial de navegación, información introducida en los formularios y
borrar al cerrar el navegador los datos de los sitios visitados. Pero recuerda que los sitios
Web que visitamos sí guardan información de nuestra visita, nuestro proveedor de internet
también guarda constancia de nuestra visita y si descargamos algo, esto no se borra al igual
que el historial de descargas, además de las marcas de páginas o favoritos se conservarán
al cerrar el navegador.
Firefox-ESR
QupZilla
Arora
Hv3
Tor27
gzip
unzip
zip
pbzip2
bzip2
lbzip2
arj
zoo
unrar
lhasa
ncompress
27
Tor es la sigla de The Onion Router (enrutador de cebolla), el cual es un proyecto
cuyo objetivo es el desarrollo de una red de comunicaciones distribuida de baja latencia y
sobrepuesta a Internet, en la que el encaminamiento de los mensajes intercambiados entre
los usuarios no revele su identidad y que además, mantiene la integridad y el secreto de la
información que vieja en ella. Se puede descargar el proyecto Tor listo para usar sin requerir
instalar nada en el equipo y este se puede descargar de: https://www.torproject.org
p7zip
p7zip-full
p7zip-rar
unace
unace-nonfree
zutils
cpio
pax
unp
lzma
xz-utils pxz
pixz kgb
rar
rarcrack
zpaq
bsdtar
dtrx
lzop
tar
8.5 Virtualización
Hoy en día tenemos a nuestra disposición varios manejadores de máquinas
virtuales (MV) que nos permiten crear, usar y optimizar máquinas virtuales
(véase apéndice 12). Algunos manejadores son los siguientes:
https://www.rollapp.com/apps/data%20analysis
https://www.rollapp.com/apps/development
https://www.rollapp.com/apps/graphics
https://www.rollapp.com/apps/o¢ ce
https://www.rollapp.com/apps/utilities
https://www.rollapp.com/apps/education
28
Cuando se trabaja desde la Web es recomendable usar el modo Privado o Incógnito
para no guardar el historial de navegación, información introducida en los formularios y
borrar al cerrar el navegador los datos de los sitios visitados. Pero recuerda que los sitios
Web que visitamos sí guardan información de nuestra visita, nuestro proveedor de Internet
también guarda constancia de nuestra visita y si descargamos algo, esto no se borra al igual
que el historial de descargas, además de las marcas de páginas o favoritos se conservarán
al cerrar el navegador.
Por otro lado, notemos que, una vez que un producto de Software libre
ha empezado a circular, rápidamente esta disponible a un costo muy bajo.
Al mismo tiempo, su utilidad no decrece. El Software, en general, podría
ser considerado un bien de uso inagotable, tomando en cuenta que su costo
marginal es pequeño y que no es un bien sujeto a rivalidad (la posesión del
bien por un agente económico no impide que otro lo posea).
Puesto que el Software libre permite el libre uso, modi…cación y redis-
tribución, a menudo encuentra un hogar entre usuarios para los cuales el
coste del Software no libre es a veces prohibitivo, o como alternativa a la
piratería (véase apéndice 11.3). También es sencillo modi…carlo localmente,
lo que permite que sean posibles los esfuerzos de traducción a idiomas que
no 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 estan típicamente com-
puestos por individuos con una amplia variedad de motivaciones, y pueden
provenir 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 los
profesores usan Software libre para …nes didácticos y de investigación. Las
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 herramientas
de Software libre, iniciando con mostrar el uso de sistemas operativos libres
basados en Linux. Ello es posible haciendo uso de los sistemas llamados
"Live", ya que cada alumno puede probar y usar el sistema operativo en
conjunto con cientos de herramientas libres, sin la necesidad de instalar Soft-
ware en la máquina que utilice para practicar. Cuando el alumno se sienta
cómodo con el sistema, es posible ayudarlo a instalar mediante tutoriales en
línea y/o presenciales el sistema en su equipo de cómputo.
Lo mismo es posible hacer, al preparar demostraciones del Software que
puede reemplazar paquetes muy difundidos en la comunidad como son: MAT-
LAB, Mathematica, Maple, SPSS, SAS y Microsoft O¢ ce. Estos cursos no
necesariamente se centrarían en las similitudes o diferencias entre paquetes
libres y propietarios, más bien, para cautivar a usuarios noveles y futuros
ayudantes a dar cursos completos de las herramientas libres mostrando su
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 laboratorios y talleres con Software libre instalado
en los equipos de cómputo, además, se pueden usar los sistemas "Live" que
pueden ser proporcionados en DVDs o en unidades ‡ash 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 las
decenas de paquetes disponibles en Windows o Linux que generan sistemas
"Live" a partir de las imágenes ISO bajadas de la red — por ejemplo, de
sistemas operativos como Knoppix (véase [98])— .
De esta forma, se puede cuadyvar a que alumnos, ayudantes y profesores
conozcan el mundo del Software libre, para que con el tiempo se adopte
su uso, sin dejar de lado, el proporcionar cuando sea necesario, cursos de
Software privativo pero siempre teniendo en cuenta que se puede — en la
medida de lo posible— trabajar con paquetes alternativos, como los que
proporciona Software libre.
Además, el Software libre ofrece una ventaja competitiva, al permitirle
al profesor y sus estudiantes contar con versiones completas y funcionales en
las que pueden ser aplicados los conocimientos adquiridos en los diversos cur-
sos de las carreras de Ciencias, dejando el manejo especializado de paquetes
a cursos avanzados o para cuando el educando realice sus prácticas profe-
La opción más viable, es una que conjugue las dos anteriores. Pero
además, podríamos emular Hardware del que no disponemos mediante
el uso de máquinas virtuales (véase apéndice 12) que nos permitirían
en un sólo equipo de cómputo usar simultáneamente diversos sistemas
operativos para distintas arquitecturas y sus respectivos programas que
ahora es posible instalar en las máquinas virtuales programas de cóm-
puto incompatibles de forma aislada unos de otros.
De tal forma que sea posible instalar cada versión de Software solicitada en la
plataforma adecuada, teniendo en cuenta que muchas versiones del Software
son mutuamente excluyentes para ser instaladas en una misma versión del
sistema operativo simultáneamente.
Por otro lado, existe el Software libre, desarrollados por usuarios y para
usuarios que, entre otras cosas, comparten los códigos fuente, el pro-
grama ejecutable y dan libertades para estudiar, adaptar y redistribuir
a quien así lo requiera el programa y todos sus derivados.
(véase [19]), el Software libre se re…ere a la libertad de los usuarios para eje-
cutar, copiar, distribuir, y estudiar el mismo, e incluso modi…car el Software
y distribuirlo modi…cado.
Un programa es Software libre si los usuarios tienen las cuatro libertades
esenciales:
Copyleft Hay que hacer constar que el titular de los derechos de autor
(Copyright) de un Software bajo licencia Copyleft puede también realizar
una versión modi…cada bajo su Copyright original, y venderla bajo cualquier
licencia 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
de empresas que realizan Software libre (por ejemplo MySQL); esta práctica
no restringe ninguno de los derechos otorgados a los usuarios de la versión
Copyleft.
podría aplicarse tanto para Software libre como Software privativo, ya que
la diferencia entre uno y otro esta en que el dueño del Software privativo lo
licencia como propiedad privada y el de Software libre como propiedad social.
Con la intención de corregir el defecto de la expresión "Software propie-
tario" aparece el llamado "Software con propietario", sin embargo se ar-
gumenta contra del término "con propietario" justamente su similitud con
Proprietary en inglés, que sólo haría referencia a un aspecto del Software
que no es libre, manteniendo una de las principales críticas a este (de "Soft-
ware sujeto a derechos" o "propiedad"). Adicionalmente, si "propietario"
se re…ere al titular de los derechos de autor (y esta claro que no se puede
referir al usuario, en tanto este 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 al
llamado en inglés "Semi-Free Software" (Software semilibre) y al "Propietary
Software". Asimismo, es frecuentemente utilizado para referirse al Software
que no cumple con las Directrices de Software libre de Linux/GNU Debian,
las cuales siguen la misma idea básica de libertad en el Software, propugnada
por la FSF, y sobre las cuales esta basada la de…nición de código abierto de
la Open Source 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 de
ausencia de acceso al código que en los derechos sobre el mismo. este se
re…ere sólo a la ausencia de una sola libertad por lo que su uso debe enfocarse
sólo a este tipo de Software y aunque siempre signi…que que es un Software
que 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 de
sus 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 interpretará como no referente
al Estado, lo que produciría la exclusión del Software no libre generado por
el aparato estatal. Además, el "Software público" se asocia generalmente con
Software de dominio público.
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
podría alcanzar a suplir todas las necesidades básicas de los usuarios, dejando
la adquisición de paquetes especializados sólo para los cursos avanzados que
justi…que el uso de Software privativo.
Sin duda el hecho de tener una buena tarjeta grá…ca también ayudará
a disponer de una mejor experiencia de virtualización.
Una vez que sabemos esto, cuando abrimos una máquina virtual, como
por ejemplo Virtualbox (véase [50]), nos encontramos con un entorno grá…co
que nos permitirá con…gurar y asignar recursos a cada uno de los compo-
nentes físicos que emula la máquina virtual. En prácticamente la totalidad
de máquinas virtuales debemos de…nir detalles del siguiente tipo:
La con…guración de red.
etc.
A rch m a n , A rch S trike , A rc o L inu x , A rtix L inu x , A rya L inu x , AV L inu x , B a ck B ox L inu x , B ig L inu x , B io -L inu x , B la ck A rch ,
K n o p p ix , K o d a ch i, K o lib riO S , K o ro ra , K u b u ntu , K w o rt, L inu x L ite , L inu x M int, L ive R a iz o , L M D E , L u b u ntu , L X L E
Trisq u e l, Tru e O S , Tu rn K e y L inu x , U b u ntu , U b u ntu B u d g ie , U b u ntu S tu d io , U b u ntu K y lin , U ru k , Ve c to rL inu x , V in e L inu x ,
https://www.osboxes.org
https://virtualboxes.org/images/
12.6.1 Ventajas
Además de permitir ejecutar múltiples sistemas operativos, diferentes ver-
siones de un mismo sistema pero con diferente Software que en principio
puede ser incompatible entre sí. Para usuarios de Windows, el hecho en sí,
de no tener porque lidiar con problemas derivados de virus y antivirus le con-
…ere una gran ventaja desde el punto de vista administrativo y del usuario
…nal. Además, permite una administración centralizada, ya que todas las
máquinas virtuales tendrían la misma con…guración y paquetes sin importar
el Hardware subyacente en las que se ejecute el sistema operativo huésped.
En el caso de instituciones educativas de cualquier nivel académico, es
común que en un mismo equipo de cómputo sea necesario ejecutar por un lado
diferentes versiones de sistemas operativos — por ejemplo Linux, Windows
XP, Windows 7, etc.— y por otro lado, en un sistema operativo, ejecutar
diferentes versiones de un mismo paquete — generalmente no se pueden tener
instalados simultáneamente más de una versión— .
Las máquinas virtuales son una verdadera opción para coexistir simultá-
neamente diferentes versiones de sistemas operativos y en un mismo sistema
máquinas virtuales ejecutando las diversas versiones de un mismo programa
de cómputo, además se pueden con…gurar para que al momento de iniciarlas
siempre se ejecuten a partir de una con…guración e instalación base, de tal
forma que al ser lanzadas, el usuario pueda instalar, con…gurar e inclusive
dañar la máquina virtual, pero al reiniciarse la máquina virtual en una nueva
sesión, se regresa a la con…guración de la versión base, de esta forma no hay
posibilidad de infección de virus entre diversos lanzamientos de sesiones de
la máquina virtual, la actualización es centralizada y se puede hacer por red,
sin intervención del usuario.
Por ello, es una opción viable y común tener en una máquina un sis-
tema huésped como Linux/GNU Debian Estable y dentro de el, un grupo
de máquinas virtuales de Windows — Windows XP, Windows 7, etc.— , en
los que cada máquina virtual tenga instalado Software agrupados por las
características del sistema operativo necesario para ejecutar a todas las apli-
caciones seleccionadas — por ejemplo agrupados por la versión de Service
Pack— .
Por otro lado, si se descon…gura un sistema operativo virtualizado es
sumamente fácil de restaurar si lo comparamos con un máquina real. Si
tomamos las precauciones necesarias podemos restaurar el estado que tenía
un sistema operativo virtualizado, de forma fácil y rápida. Si hablamos
del entorno empresarial, la virtualización de sistemas operativos supone un
ahorro económico y de espacio considerable. Ya que mediante el uso de la vir-
tualización evitamos la inversión en multitud de equipos físicos, esto supone
un ahorro importante en mantenimiento, en consumo energético, espacio y
procesos administrativos.
Por otro lado, mediante la virtualización y el balanceo dinámico podemos
incrementar las tasas de prestación de servicios de un servidor del siguiente
modo. Si disponemos de un servidor Web podemos asignar recursos adi-
cionales al servidor, como por ejemplo memoria RAM y CPU en los picos
de carga para evitar que el servidor se caiga y de este modo incrementar
la tasa e…ciencia. Una vez …nalizado el pico de carga podemos desviar los
recursos aplicados al servidor Web a otra necesidad que tengamos. Por lo
tanto, aparte de mejorar la tasa de servicio se pueden optimizar 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
forma muy sencilla, tan solo tenemos que acceder al Software de virtualiza-
ción y asignar más recursos. Además, es fácil crear un entorno para realizar
pruebas de todo tipo aislado del resto de sistema. Así, las máquinas virtuales
y la virtualización permiten usar un solo servicio por servidor virtualizado
de forma sencilla, de este modo aunque se caiga uno de los servidores virtua-
lizado los otros seguirán funcionando.
En resumen, la virtualización permite ofrecer un servicio más rápido,
sencillo a usuarios (académicos, estudiantes, clientes, etc.) y es un pilar que
debe ser considerado en una escuela, universidad o compañía en su proceso
de transformación o consolidación, permitiendo escalonar y ser creativos a
la hora de atender las necesidades crecientes y cambiantes de los usuarios; y
contar con servicios agregados, ágiles y adaptables a los constantes cambios
12.6.2 Desventajas
Entre las principales desventajas de virtualizar sistemas propietarios40 como
Windows (véase 11.2)— no así los sistemas libres como Linux/GNU Debian
(véase 11.1)— es que se puede violar el sistema de licencia-miento(véase
11.3) del Software instalado en las máquinas virtuales, esto es especialmente
importante cuando se usa en más de una máquina, pues la licencia usada
para la instalación es violada cuando se tiene más de una copia de la máquina
virtual 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 operativo
Windows como es Windows XP Profesional, la virtualización se maneja con
licencias adicionales a la del sistema operativo original y se debe de contar con
tantas 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 adecuada
para virtualizar a todos y cada uno de los paquetes de cómputo instalados
en cada máquina virtual y en las instancias para el número de máquinas
virtuales 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 dos
sistemas operativos de forma simultánea estamos empleando hasta el doble
de recursos. No obstante cualquier ordenador doméstico de gama baja actual
dispone de los recursos su…cientes para usar una o más máquinas virtuales.
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 virtuales
no pueden sacar un rendimiento ideal del Hardware que tenemos en nues-
tro equipo. Cuanto más potente sea nuestro ordenador menos se notará la
pérdida de rendimiento.
Si tenemos un problema — de Hardware o Software— en el ordenador que
aloja el sistema operativo an…trión puede caerse el servicio en la totalidad de
40
Según la Free Software Foundation (véase [19]), el « Software libre» se re…ere a la
libertad de los usuarios para ejecutar, copiar, distribuir, y estudiar el mismo, e incluso
modi…car el Software y distribuirlo modi…cado. Así, un Software que no es libre, es
llamado « Software privativo o propietario» .
$ kvm ...
es remplazado por
sólo hay que agregar, el login del usuario al grupo kvm en el archivo
/etc/group.
Si marca:
CPUID.01H:ECX.ssse3 [bit 9]
CPUID.01H:EDX.vme [bit 1]
$ df
55
Una imagen ISO es un archivo informático donde se almacena una copia exacta de un
sistema de archivos y de esta se puede generar una imagen para CDROM, DVD o USB.
56
Una imagen ISO es un archivo informático donde se almacena una copia exacta de un
sistema de archivos y de esta se puede generar una imagen para CDROM, DVD o USB.
Ejemplo 3 Una vez que se cuenta con una imagen de Windows, podemos
instalar por ejemplo Windows O¢ ce, donde tenemos dos opciones a saber:
1) Instalar Windows O¢ ce 2003 a partir del ISO de O¢ ce mediante:
$ kvm -localtime -m 300 -boot c -hda Windows.img n
-cdrom O¢ ce-2003.iso
2) Si se tiene el CD o DVD, entonces podemos usar:
$ kvm -localtime -m 300 -boot c -hda Windows.img n
-cdrom /dev/cdrom/
Usar:
hay otras opciones que permiten inclusive el uso de GPUs reales o vir-
tuales. Para ver detalles, favor de revisar el manual del usuario del proyecto
QEMU.
hay otras opciones, para ver estas, favor de revisar el manual del usuario
del proyecto QEMU.
$ vncviewer 0
$kvm [...]
-fsdev local,id=fs1,path=$HOME/code/linux,security_model=none
-device virtio-9p-pci,fsdev=fs1,mount_tag=host-code
$ mkdir -p /mnt/host
64
Samba es una implementación libre del protocolo de archivos compartidos de Microsoft
Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas
de tipo UNIX. De esta forma, es posible que computadoras con GNU/Linux, Mac OS X
o Unix en general se vean como servidores o actúen como clientes en redes de Windows.
65
El Network File System (Sistema de archivos de red), o NFS, es un protocolo de nivel
de aplicación, según el Modelo OSI. Es utilizado para sistemas de archivos distribuidos en
un entorno de red de computadoras de área local.
66
Secure SHell FileSystem (SSHFS) es un sistema de archivos para Linux (y otros sis-
temas operativos con una implementación FUSE, tal como en Mac OS X), que opera sobre
archivos en una computadora remota usando un entorno seguro de acceso. En la com-
putadora local donde se monta SSHFS, la implementación hace uso del módulo del kernel
FUSE.
# umount /mnt/host
# /sbin/lsusb
$ cat /proc/bus/usb/devices
# lsusb
Bus 003 Device 002: ID 03f0:0205 ScanJet 3300C
# mkdir disk
# mount -o loop,o¤set=32256 tmp.img disk
# umount ./disk
https : ==virtualboxes:org=images=lubuntu=
Instalar nbd-client:
después:
VMware ESXi
RHEL 5 Xen
SUSE Xen
Citrix Xen
Hyper-V
Ejemplos:
$ virt-v2v n
-i vmx -it ssh n
"ssh://root@esxi.example.com/vmfs/volumes/datastore1n
/guest/guest.vmx" -o local -os /var/tmp
Hay una gran variedad de banderas que informan sobre el Hardware del
que se dispone y las opciones que pueden usarse en KVM/QEMU que son so-
portadas por Hardware (como la virtualización dentro de una virtualización),
en esta sección veremos parte de ellas para poder usarlas si son necesarias
para un proyecto en particular.
14 Bibliografía
Este texto es una recopilación de múltiples fuentes, nues-
tra aportación — si es que podemos llamarla así— es
plasmarlo en este documento, en el que tratamos de dar
coherencia a nuestra visión de los temas desarrollados.
En la realización de este texto se han revisado — en
la mayoría de los casos indicamos la referencia, pero
pudimos omitir varias de ellas, por lo cual pedimos una
disculpa— múltiples páginas Web, artículos técnicos, li-
bros, entre otros materiales bibliográ…cos, los más repre-
sentativos y de libre acceso los ponemos a su disposición
en la siguiente liga:
http://mmc.geo…sica.unam.mx/acl/Herramientas/
Referencias
[1] Carreras en la Facultad de Ciencias, UNAM,
http://www.fciencias.unam.mx/licenciatura/resumen/ 4
[4] http://es.wikipedia.org/wiki/Linux 26
[5] http://es.wikipedia.org/wiki/Mac_OS 38
[6] http://es.wikipedia.org/wiki/Android 7, 39
[7] https://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%C3%B3n)
89
[9] https://es.wikipedia.org/wiki/C_(lenguaje_de_programaci%C3%B3n)
94
[10] https://es.wikipedia.org/wiki/C%2B%2B 98
[24] Microsoft O¢ ce, http://o¢ ce.microsoft.com/ 10, 79, 80, 82, 84, 86
[38] FreeMat, FreeMat Opén Source for rapid engineering and scienti…c
prototyping and data processing, http://freemat.sourceforget.net/ 46,
48, 73
[103] http://www.oracle.com/technetwork/java/javase/documentation/index-
jsp-135444.html 120
[107] https://www.ibm.com/us-en/marketplace/rational-Software-
architect-designer 120
[114] https://www.perforce.com/
119