universidad de la sierra juárez

Anuncio
UNIVERSIDAD DE LA SIERRA JUÁREZ
XEGLO “LA VOZ DE LA SIERRA JUÁREZ”
PROGRAMA RADIOFÓNICO
NATURALEZA, CIENCIA, ARMONÍA
HORARIO DE TRANSMISIÓN: 17:00-17:30 HRS.
Tema: Historia del nacimiento del sistema operativo GNU/Linux
Locutor: M. C. José Guillermo Valdez Besares
Profesor-Investigador
Instituto de Estudios Ambientales
Fecha: 08 de Octubre de 2014
Introducción
Una computadora moderna consta de uno o más procesadores , una memoria principal , discos, impresoras, teclado, ratón,
una pantalla o monitor, interfaces de red y otros dispositivos de entrada/salida. En general es un sistema complejo. Si todos
los programadores de aplicaciones tuvieran que comprender el funcionamiento de todas estas partes , no escribirían código
alguno. Es más : el trabajo de administrar todos estos componentes y utilizarlos de manera óptima es una tarea muy
desafiante. Por esta razó n, las computadoras están equipadas con una capa de software llamada sistema operativo, cuyo
trabajo es proporcionar a los programas de usuario un modelo de computadora mejor
, más simple y pulcro , así como
encargarse de la administración de todos los
recursos antes mencionados. Los sistemas operativos pero en especial el
sistema operativo GNU/Linux son el tema de este programa de radio Naturaleza, Ciencia, Armonía del día 8 de Octubre de
2014.
La mayoriá de los radioescuchas que hayan tenido la oportunidad de tener una computadora habrán tenido cierta experiencia
con un sistema operativo como Windows , Linux, FreeBSD o Mac OS X , pero las apariencias pueden ser engañosas . El
software con el que los usuarios generalmente interactúan se denomina
shell, cuando está basado en texto , y GUI
(Graphical User Interface; Interfaz gráfica de usuario ) cuando utiliza elementos gráficos o iconos . En realidad no forma
parte del sistema operativo, aunque lo utiliza para llevar a cabo su trabajo.
En una computadora se cuenta con componentes hardware (HW) que consiste en circuitos electrónicos integrados (chips),
tarjetas, discos, teclado, monitor, por mencionar los más usados. Por encima de dicho HW se encuentra el software (SW).
La mayoriá de las computadoras tien en dos modos de operación del SW : modo kernel y modo usuario. El sistema
operativo es la pieza fundamental del software y se ejecuta en modo kernel (también conocido como modo supervisor). En
este modo, el sistema operativo tiene acceso completo a todo el hardware y puede ejecutar cualquier instrucción que la
máquina sea capaz de ejecutar , por lo tanto controla la forma en que se guarda, modifica o elimina la información de un
disco ya sea disco duro, disco de estado sólido, cd o dvd por mencionar un ejemplo de lo que se encarga el kernel. El resto
del software se ejecuta en modo usuario, en el cual sólo un subconjunto de las instrucciones de máquina es permitido . En
particular, las instrucciones que afectan el control de la máquina o que se encargan
de la E /S (entrada/salida) están
prohibidas para los programas en modo usuario.
El software de interfaz de usuario , shell o GUI, es el nivel más bajo del software en modo usuario y permite la ejecución de
otros programas, como un navegador Web, lector de correo electrónico o reproductor de música . Estos programas también
utilizan en forma intensiva el sistema operativo.
Una distinción importante entre el sistema operativo y el software que se ejecuta en modo usuario es que , si a un usuario no
le gusta, por ejemplo, su lector de correo electrónico , es libre de conseguir otro o incluso escribir el propio si así lo desea ;
sin embargo, no es libre de escribir su propio manejador de interrupciones de reloj , que forma parte del sistema operativo y
está protegido por el hardware contra cualquier intento de modificación por parte de los usuarios.
En muchos sistemas hay programas que se ejecutan en modo de usuario, pero ayudan al sistema operativo o realizan
funciones privilegiadas. Por ejemplo, a menudo hay un programa que permite a los usuarios cambiar su contraseña . Este
programa no forma parte del sistema operativo y no se ejecuta en modo kernel, pero sin duda lleva a cabo una función
UNIVERSIDAD DE LA SIERRA JUÁREZ
XEGLO “LA VOZ DE LA SIERRA JUÁREZ”
PROGRAMA RADIOFÓNICO
NATURALEZA, CIENCIA, ARMONÍA
HORARIO DE TRANSMISIÓN: 17:00-17:30 HRS.
delicada y tiene que protegerse de una manera especial. En ciertos sistemas, la idea se lleva hasta el extremo y partes de lo
que tradicionalmente se considera el sistema operativo (por ejemplo, el sistema de archivos) se ejecutan en el espacio del
usuario. En dichos sistemas es difić il trazar un lim
́ ite claro. Todo lo que se ejecuta en modo kernel forma, sin duda, parte del
sistema operativo, pero podriá decirse que algunos programas que se ejecutan fuera de este modo también forman parte del
mismo sistema, o por lo menos están estrechamente asociados a él.
Los sistemas operativos difieren de los programas de usuario (es decir, de aplicación) en varias cuestiones además del lugar
en el que residen. En particular, son enormes, complejos y de larga duración. El código fuente de un sistema operativo como
Linux o Windows contiene cerca de cinco millones de lin
. Para tener una idea de lo que esto significa
,
́ eas de código
considere el trabajo de imprimir cinco millones de lin
eas
en
un
formato
de
libro
:
con
50
líneas
por
página
y
1000
páginas
́
por volumen , se requeririá n 100 volúmenes para listar un sistema operativo de este tamaño
; es decir, todo un librero.
Imagine usted que tiene un trabajo como encargado de dar mantenimiento a un sistema operativo y que en su primer día su
jefe le presenta un librero con el código y le dice : “Apréndase todo esto” . Y ésta sólo sería la parte que se ejecuta en el
kernel. Los programas de usuario como la interfaz gráfica , las bibliotecas y el software de aplicación b ásico (como el
Explorador de Windows) pueden abarcar fácilmente de 10 a 20 veces esa cantidad.
Historia de los sistemas operativos
Los sistemas operativos han ido evolucionando a través de los años . A continuación mencionaremos algunas de las cosas
que a mi parecer son importantes mencionar en nuestro programa de radio . La progresión que se mencionará es en gran
parte cronológica aunque el desarrollo ha sido un tanto accidentado . Cada fase surgió sin esperar a que la anterior terminara
completamente. Hubo muchos traslapes , sin mencionar muchos falsos inicios y callejones sin salida . El radio escucha debe
tomar esto como guiá , no como la última palabra.
La primera generación (1945 a 1955): tubos al vacío
Después de los esfuerzos infructuosos de Charles Babbage (de 1792 a 1871), no hubo muchos progresos en la construcción
de computadoras digitales sino hasta la Segunda Guerra Mundial , que estimuló una explosión de esta actividad . En estos
primeros días, un solo grupo de personas (generalmente ingenieros) diseñaban, construían, programaban, operaban y daban
mantenimiento a cada máquina . Toda la programación se realizaba exclusivamente en lenguaje máquina o
, peor aún ,
creando circuitos eléctricos mediante la conexión de miles de cables a tableros de conexiones (plugboards) para controlar
las funciones básicas de la máquina . Los lenguajes de programación eran desconocidos (incluso se desconociá el lenguaje
ensamblador). Los sistemas operativos también se desconociá n. El modo usual de operación consistía en que el programador
trabajaba un periodo dado , registrándose en una hoja de firmas , y después entraba al cuarto de máquinas , insertaba su
tablero de conexiones en la computadora e invertía varias horas esperando que ninguno de l os cerca de 20,000 bulbos se
quemara durante la ejecución . Prácticamente todos los problemas eran cálculos numéricos bastante simples , como obtener
tablas de senos, cosenos y logaritmos.
A principios de la década de 1950, la rutina había mejorado un poco con la introducción de las tarjetas perforadas. Entonces
fue posible escribir programas en tarjetas y leerlas en vez de usar tableros de conexiones; aparte de esto, el procedimiento
era el mismo.
La segunda generación (1955 a 1965): transistores y sistemas de procesamiento por lotes
La introducción del transistor a mediados de la década de 1950 cambió radicalmente el panorama . Las computadoras se
volvieron lo bastante confiables como para poder fabricarlas y venderlas a clientes dispuestos a pagar por ellas , con la
expectativa de que seguiriá n funcionando el tiempo suficiente como para poder llevar a cabo una cantidad útil de trabajo .
Por primera vez habiá una clara separación entre los diseñadores , constructores, operadores, programadores y el personal de
mantenimiento.
Estas máquinas , ahora conocidas como mainframes, estaban encerradas en cuartos especiales con aire acondicionado y
grupos de operadores profesionales para manejarlas . Sólo las empresas grandes , universidades o agencias gubernamentales
importantes podiá n financiar el costo multimillonario de operar estas máquinas
. Para ejecutar un trabajo (es decir , un
programa o conjunto de programas ), el programador primero escribía el programa en papel
(en FORTRAN o en
ensamblador) y después lo pasaba a tarjetas perforadas. Luego llevaba el conjunto de tarjetas al cuarto de entrada de datos y
lo entregaba a uno de los operadores; después se iba a tomar un café a esperar a que los resultados estuvieran listos.
Los sistemas operativos tí picos eran FMS (Fortran Monitor System) e IBSYS, el sistema operativo de IBM para la
computadora 7094.
UNIVERSIDAD DE LA SIERRA JUÁREZ
XEGLO “LA VOZ DE LA SIERRA JUÁREZ”
PROGRAMA RADIOFÓNICO
NATURALEZA, CIENCIA, ARMONÍA
HORARIO DE TRANSMISIÓN: 17:00-17:30 HRS.
La tercera generación (1965 a 1980): circuitos integrados y multiprogramación
IBM intentó resolver el problema de tener diferentes tipos de computado ras (científicas/comerciales) introduciendo la línea
de computadoras System/360. La 360 era una serie de máquinas compatibles con el software, que variaban desde un tamaño
similar a la 1401 hasta algunas que eran más potentes que la 7094. Las máquinas sólo diferían en el precio y rendimiento
(máxima memoria , velocidad del procesador , número de dispositivos de E /S permitidos , etcétera). Fue la primera línea
importante de computadoras en utilizar circuitos integrados (ICs) ( a pequeña escala ), con lo cual se pudo ofrecer una
mayor ventaja de precio/rendimiento en comparación con las máquinas de segunda generación , las cuales fueron construidas
a partir de transistores individuales.
La mayor fortaleza de la idea de “una sola familia” fue al mismo tiempo su mayor debilidad . La intención era que todo el
software, incluyendo al sistema operativo OS/360, funcionara en todos los modelos . Por lo tanto , debería ser bueno y
compatible con sistemas con pocos dispositivos periféricos y en sistemas con much
os. Tenía que funcionar en ambos
entornos comerciales y cientif́ icos y en esa época no habiá forma en que IBM (o cualquier otra) pudiera escribir una pieza
de software que cumpliera con todos estos requerimientos en conflicto. El resultado fue un enorme y extraordinariamente
complejo sistema operativo llamado OS /360 que posiblemente una de las mayores aportaciones y que estaban ausentes en
los sistemas operativos de segunda generación fue la multiprogramación.
Otra caracteriś tica importante de los sistemas operativos de tercera generación fue la capacidad para leer trabajos en tarjetas
y colocarlos en el disco tan pronto como se llevaban al cuarto de computadoras . Así, cada vez que terminaba un trabajo en
ejecución, el sistema operativo podía cargar un nuevo trabajo del disco en la partición que entonces estaba vacía y lo
ejecutaba. A esta técnica se le conoce como spooling (de Simultaneous Peripheral Operation On Line, operación periférica
simultánea en línea) y también se utilizó para las operaciones de salida.
Con los sistemas de tercera generación , el tiempo que transcurriá entre enviar un trabajo y recibir de vuelta la salida era
comúnmente de varias horas , por lo que una sola coma mal colocada podiá ocasionar que fallara la compilación
, y el
programador desperdiciara la mitad del día . Este deseo de obtener un tiempo rápido de respuesta allanó el camino para el
tiempo compartido (timesharing), una variante de la multiprogramación donde cada usuario tenía una terminal en línea . En
un sistema de tiempo compartido, si 20 usuarios están conectados y 17 de ellos están pensando en dar un paseo o tomar café,
la CPU se puede asignar por turno a los tres trabajos que desean ser atendidos.
Después el M .I.T., Bell Labs y General Electric (que en ese entonces era un importante fabricante de computadoras )
decidieron emprender el desarrollo de una “utilería para computadora” , una máquina capaz de servir a varios cientos de
usuarios simultáneos de tiempo compartido dando como resultado un sistema conocido como
MULTICS (MULTiplexed
Information and Computing Service; Servicio de Información y Cómputo MULTiplexado ) que fue un éxito parcial . Se
diseñó para dar soporte a cientos de usuarios en una máquina que era sólo un poco más potente que una PC basada en
el
Intel 386, aunque teniá mucho más capacidad de E/S.
Para resumir esta larga historia , MULTICS introdujo muchas ideas seminales en la literatura de las computadoras
, pero
convertirlas en un producto serio y con éxito comercial importante era algo mucho más difícil de lo que cualquiera hubiera
esperado. Bell Labs se retiró del proyecto y General Electric dejó el negocio de las computadoras por completo
. Sin
embargo, el M .I.T. persistió y logró hacer en un momento dado que MULTICS funcionara
. Al final , la compañiá que
compró el negocio de computadoras de GE (Honeywell) lo vendió como un producto comercial y fue instalado por cerca de
80 compañías y universidades importantes a nivel mundial . Aunque en número pequeño , los usuarios de MULTICS eran
muy leales . Por ejemplo, General Motors, Ford y la Agencia de Seguridad Nacional de los Estados Unidos desconectaron
sus sistemas MULTICS sólo hasta finales de la década de 1990, 30 años después de su presentación en el mercado y de
tratar durante años de hacer que Honeywell actualizara el hardware.
Otro desarrollo importante durante la tercera generación fue el increib
́ le crecimiento de las minicomputadoras y Ken
Thompson, uno de los científicos de cómputo en Bell Labs que trabajó en el p royecto MULTICS, encontró una pequeña
minicomputadora PDP -7 que nadie estaba usando y se dispuso a escribir una versión simple de MULTICS para un solo
usuario y en esta tarea contó con la ayuda de Dennis Ritchie. Más adelante, este trabajo se convirtió en el sistema operativo
UNIX®.
El hito más importante en la historia de Unix fue su completa reescritura en lenguaje C . Las primeras versiones se habían
programado en lenguaje ensamblador para cada máquina . Con la conversión a C , UNIX pudo ejecutarse en cualquier
máquina que tuviese un compilador de C . Unix fue el primer sistema operativo portable entre diferentes arquitecturas.
Esto ocurrió en 1972 y fue la causa por la que se hizo popular en el mundo académico
, las agencias gubernamentales y
muchas compañiá s, pero debido a que el código fuente estaba disponible ampliamente, varias organizaciones desarrollaron
UNIVERSIDAD DE LA SIERRA JUÁREZ
XEGLO “LA VOZ DE LA SIERRA JUÁREZ”
PROGRAMA RADIOFÓNICO
NATURALEZA, CIENCIA, ARMONÍA
HORARIO DE TRANSMISIÓN: 17:00-17:30 HRS.
sus propias versiones (incompatibles entre sí), lo cual produjo un caos.
Se desarrollaron dos versiones principales: System V de AT/T y BSD (Berkeley Software Distribution, Distribución de
Software de Berkeley) de la Universidad de California en Berkeley . Estas versiones teniá n también variantes menores . Para
que fuera posible escribir programas que pudieran ejecutarse en cualquier sistema UNIX , el IEEE desarrolló un estándar
para UNIX conocido como POSIX, con el que la mayoría de las versiones de UNIX actuales cumplen . POSIX define una
interfaz mínima de llamadas al sistema a la que los sistemas UNIX deben conformarse
. De hecho, algunos de los otros
sistemas operativos también admiten ahora la interfaz POSIX.
Como agregado, vale la pena mencionar que en 1987 el autor liberó un pequeño clon de UNIX conocido como MINIX, con
fines educativos. En cuanto a su funcionalidad, MINIX es muy similar a UNIX , incluyendo el soporte para POSIX . Desde
esa época, la versión original ha evolucionado en MINIX 3, que es altamente modular y está enfocada a presentar una muy
alta confiabilidad . El sistema MINIX 3 está disponible en forma gratui ta (incluyendo todo el código fuente ) a través de
Internet, en www.minix3.org.
El sistema operativo GNU/Linux
Un tiempo después AT /T anunció que no realizariá más ediciones de Unix . En ese momento , Unix era ya el sistema de
elección de muchas empresas e instituciones . Las compañiá s de software comercial vieron la posibilidad de hacer negocio y
lanzaron sus propias versiones del sistema Unix (derivadas de BSD o de System V ). Así nacieron las diferentes variantes de
Unix que existen hoy en día . Algunas de estas variantes son: AIX de IBM, HP/UX de HewlettPackard, IRIX de Silicon
Graphics, SunOS y Solaris de Sun Microsystems, SCO UNIX de SCO, Ultrix, Xenix de Microsoft.
En 1985, las perspectivas de los usuarios de Unix habiá n empeorado bastante . Sólo compañías comerciales fabricaban y
mantenían los sistemas operativos y programas que las computadoras nece
sitaban. Estas compañías obligaban a los
usuarios a firmar contratos de licencia en los que éstos se comprometían a no modificar sus programas para poder
usarlos a su gusto, a no compartirlos con sus colegas, y a no ver el código de aquello que estaban usando.
Esto era intolerable para muchos usuarios. Tradicionalmente, en el mundo de los programadores había existido una
filosofía de compartir que posibilitaba un rápido avance de la técnica . La gente escribiá programas y los compartiá con
los demás. A su vez, estas personas mejoraban como creiá n los programas de otros y también compartiá n estas mejoras con
la comunidad en general. Este espíritu de colaboración estaba siendo roto por las abusivas licencias de software que las
compañías pretendían imponer.
Fue Richard Stallman, del laboratorio de Inteligencia Artificial del M .I.T. (Instituto Tecnológico de Massachusett), el que
se decidió a cambiar las cosas. A principios de los ochenta, empezó a escribir un sistema operativo libre. Este sistema podría
ser copiado y modificado por todo el que quisiera hacerlo
. Stallman se basó en Unix para su sistema , pero intentando
mejorarlo donde esto fuese posible. El nombre elegido para el sistema trata de recalcar la diferencia entre el Unix existente
en aquella época (que era mayoritariamente comercial) y el nuevo sistema (que es libre). Este sistema se llamó GNU, que es
un acrónimo que significa GNU's Not Unix (de hecho, fue el primer acrónimo recursivo ampliamente conocido).
A finales de los '80, el proyecto GNU había desarrollado casi todas las herramientas que necesita un ordenador
: había
compiladores, editores, procesadores. Otros proyectos de software libre habían fabricado productos tales como el
sistema X Window de ventanas, el procesador de textos TeX, las herramientas de Internet, etc.
Sólo faltaba la pieza central del sistema operativo : el núcleo. La FSF (Fundación de Software Libre ) trabajaba en un núcleo
denominado Hurd, pero estaba aún muy lejos de ser un producto terminado . De manera que los usuarios de software libre
debían limitarse a utilizar las utilidades GNU en sistemas comerciales , puesto que no podían tener un núcleo enteramente
libre.
Uno de los núcleos más conocidos en aquel momento entre los aficionados a Unix
era Minix. Minix era una versión
reducida del núcleo de Unix escrita por el profesor Andrew Tanenbaum de la Universidad de Amsterdam . Ésta era una
versión académica incluida en el libro de Tanenbaum sobre sistemas operativos
. No era libre, puesto que no se podía
modificar ni redistribuir, pero para mucha gente era la mejor forma de aprender como estaba hecho el corazón de un sistema
operativo.
El deseo de una versión de producción (en vez de educativa ) gratuita de MINIX llevó a un estudiante finla ndés, llamado
Linus Torvalds, a escribir Linux. Este sistema estaba inspirado por MINIX , además de que fue desarrollado en este sistema
y originalmente ofrecía soporte para varias características de MINIX (por ejemplo, el sistema de archivos de MINIX).
UNIVERSIDAD DE LA SIERRA JUÁREZ
XEGLO “LA VOZ DE LA SIERRA JUÁREZ”
PROGRAMA RADIOFÓNICO
NATURALEZA, CIENCIA, ARMONÍA
HORARIO DE TRANSMISIÓN: 17:00-17:30 HRS.
El objetivo último de Linus era implementar un sistema operativo POSIX en su ordenador
, pero empezó realizando un
sistema extremadamente sencillo . Linus decidió hacer su sistema libre y accesible a todos a través de Internet
. Esto
posibilitó que mucha gente probara el sistema y reparara fallos . La primera versión pública de Linux fue la 0.02, en octubre
de 1991.
Pronto gran cantidad de colaboradores empezaron a escribir código del núcleo de Linux. Debido a la mucha gente que probó
Linux en diferentes configuraciones, el sistema se mostró como extremadamente estable y seguro.
Gran parte del éxito de Linux es debida a la red Internet . La red posibilitó que cientos de desarrolladores de todas partes
del mundo trabajaran conjuntamente para crear un gran trabajo de programación como es Linux . Ciertamente, no es una
casualidad que la explosión de la Web y de Linux se produjeran casi simultáneamente
, en 1995. Tanto Linux como
Internet son éxitos de la colaboración abierta y de la cooperación de muchas personas con un objetivo común.
Linux es usado por multitud de empresas y organismos por su reconocida estabilidad y escalabilidad
. Es el sistema
operativo más usado en servidores de Internet , y por sus grandes ventajas en red, es usado como servidor central en redes
mixtas de muchas empresas.
El futuro se presenta prometedor para Linux . Cada vez más empresas y particulares confiá n en él como sistema operativo .
En los últimos tiempos ha ido ganando terreno en las computadoras de escritorio par a aplicaciones personales. También está
siendo cada diá más utilizado como plataforma de ocio. La orientación de Linux hacia aplicaciones de escritorio no le ha
hecho perder su estabilidad y capacidad para aplicaciones críticas.
Mucha gente considera que Linux será el sistema operativo dominante en los próximos años.
Referencias
TANENBAUM, ANDREW S. “Sistemas operativos modernos” . Tercera edición. Ed. PEARSON EDUCACIÓN , México,
2009. ISBN: 978-607-442-046-3
“Qué es el software libre”. www.casanas.com.ar Parte B Página 1/6.
La XEGLO “LA VOZ DE LA SIERRA JUÁREZ” forma parte del Sistema de Radiodifusoras Culturales Indigenistas
de la Comisión Nacional para el Desarrollo de los Pueblos Indígenas (CDI), y transmite en el 780 AM/10000
watts desde su dirección en Domicilio Conocido; Guelatao de Juárez, Oaxaca. C.P. 68778.
Teléfono y fax: 01 (951) 553 60 11
Transmite también a través del Sistema de Radio Intercultural en Internet: http://ecos.cdi.gob.mx/
UNIVERSIDAD DE LA SIERRA JUÁREZ
XEGLO “LA VOZ DE LA SIERRA JUÁREZ”
PROGRAMA RADIOFÓNICO
NATURALEZA, CIENCIA, ARMONÍA
HORARIO DE TRANSMISIÓN: 17:00-17:30 HRS.
CALENDARIO DE PARTICIPACIONES
Fecha
15 de Octubre
22 de Octubre
29 de Octubre
05 de Noviembre
12 de Noviembre
19 de Noviembre
26 de Noviembre
03 de Diciembre
10 de Diciembre
17 de Diciembre
24 de Diciembre
31 de Diciembre
07 de Enero
14 de Enero
21 de Enero
28 de Enero
04 de Febrero
11 de Febrero
18 de Febrero
25 de Febrero
04 de Marzo
Locutor
Dr. Víctor Aguirre Hidalgo
M. C. Oscar Francisco Mijangos Ricardez
Dr. José Arturo Casasola González
Dr. Jaime López Luna
Lic. Pedro Ronel Vásquez Díaz
M.P.O. Abel Cipriano Martínez
M.C. Mauricio García Johnson
M. C. David Sarmiento Bustos
M.C. Armando Ronquillo Jorge
M.T.I. Leobardo Santiago Paz
M.A.D. Mireya López Luna
M.C. Alejandra Acosta Ramos
División de Estudios de Postgrado
Jefatura de Carrera de Ciencias Ambientales
Lic. Arlette del Carmen Pérez González
Jefatura de Carrera de Ingeniería Forestal
Vicerectoría Académica
Lic. Arlette del Carmen Pérez González
Jefatura de Carrera de Informática
Jefatura de Carrera de Biología
Jefatura de Carrera de Tecnología de la Madera
Coordinadora del Programa: M. C. María Magdalena Mendoza Díaz
e-mail: [email protected]
Visita: http://www.unsij.edu.mx/
Descargar