Aplicaciones de FreeBSD en Ingeniería Mecánica Pedro F. Giffuni Ing. Mecánico Universidad Nacional de Colombia Octubre de 1999 ABSTRACT En años recientes los avances en comunicaciones, y específicamente la red Internet, han traído diversos avances en la forma de trabajo moderna y la posibilidad de compartir tecnologías que antes no estaban disponibles localmente. FreeBSD es un sistema operativo basado en la misma tecnología que dio a la luz la red mundial Internet y esta disponible gratuitamente para cualquier fin académico o comercial. En el articulo se hace un breve recuento histórico del FreeBSD y se presentan algunas aplicaciones que pueden ser de gran ayuda para el ingeniero mecánico interesado en las nuevas tecnologías. 1. Que es FreeBSD ? FreeBSD es un sistema operativo gratuito que se consigue en la red Internet o a través de distribuciones comerciales en CD ROM. Este sistema operativo esta basado en el sistema operativo UNIX y corre una variedad de aplicaciones que van desde herramientas de edición de texto hasta servidores de red de alta confiabilidad. FreeBSD corre en equipos PC con procesadores compatibles con Intel 386 pero desde la versión 3.0 en adelante se ha producido una versión capaz de correr en equipos Alpha de Digital. 2. Historia del BSD Ken Thompson y Dennis Ritchie, de los laboratorios Bell, presentaron el primer documento sobre el sistema operativo UNIX en Noviembre de 1973 en la Universidad de Purdue. El Profesor Bob Fabry, de la Universidad de Berkeley en California, se interesó inmediatamente en adquirir una copia de este sistema operativo para experimentar con él en Berkeley. Un año después1, los departamentos de Ciencias de Cómputo, Matemáticas y Estadística unieron sus presupuestos para adquirir el primer equipo capaz de correr UNIX en Berkeley: un PDP 11/45 que además se convirtió en el primer equipo UNIX con dos discos en el mismo controlador. El primer equipo con UNIX en Berkeley era compartido por varios grupos de trabajo, y no todos querían usar el mismo sistema operativo, por este motivo se establecieron horarios estrictos de ocho horas después de las cuales se reiniciaba el equipo con otro sistema operativo. Pese a esta limitación, el sistema operativo fue recibido con gran entusiasmo por los estudiantes. En los años posteriores, Berkeley estuvo en constante colaboración con los laboratorios Bell. Eventualmente la Universidad de Berkeley hizo tantas mejoras, e incluyo tantas utilidades nuevas al sistema operativo que fue necesario organizar una distribución para diversas universidades y empresas que estaban interesadas. La Universidad de Berkeley en California produjo una seria de cintas magnéticas que venían rotuladas Berkeley Source Distributions o simplemente BSD. 1 McKusick Marshall Kirk, Twenty Years of Berkeley Unix, En: Open Sources: Voices from the Open Source Revolution, Editorial O'Reilly, 1999 1 Si bien las contribuciones de Berkeley eran muchas y muy valiosas, el avance más importante que se logró, probablemente, fue el contrato con el Departamento de Defensa de los Estados Unidos para implementar el protocolo de ARPANET, posteriormente conocido como TCP/IP, base de la actual red Internet. Berkeley distribuía su código fuente de todos sus desarrollos pero como los cambios estaban atados inevitablemente al UNIX comercial, la cinta con la distribución se distribuía únicamente a quienes tuvieran licencia de UNIX. Cuando Berkeley terminó la implementación de TCP/IP, fue necesario crear una distribución que no contuviera código de UNIX ya que otros sistemas operativos estaban interesados en el código. De esta forma nació la distribución Net Release 1. En Junio de 1991 se lanzó la versión Net/2 de BSD, que incluía mucho más código del que se había distribuido en la primera versión. En esta nueva versión, redistribuida sin licencia previa de AT&T, tenia casi todo lo que se requería para tener un sistema operativo completo. Seis meses después del lanzamiento de BSD Net/2, Bill Jolitz escribió las partes que faltaban para tener un sistema operativo completo y lo compiló en un PC produciendo lo que se denominó 386/BSD. El 386/BSD tuvo una vida corta, Bill Jolitz debió abandonar el proyecto por motivos personales, pero sirvió para el nacimiento de tres vertientes distintas que aun sobreviven: BSD/OS2. NetBSD3, y FreeBSD4: • NetBSD fue creado por un grupo de voluntarios que quería continuar contribuyendo con Berkeley y deseaban correr la distribución de BSD en un gran número de plataformas. • FreeBSD tenia como objetivo continuar el trabajo de Jolitz, mejorando la calidad del sistema para el PC. • Algunos estudiantes de Berkeley tomaron el código de 386/BSD y fundaron su propia empresa, Berkeley Software Design Inc. para comercializar su propio producto denominado BSD/OS. En 1992, AT&T consideró que BSDI estaba fragmentando su mercado de UNIX por lo que presentó acción legal contra la empresa recién formada El resultado de esta demanda fue la suspensión inmediata de los tres proyectos que acababan de nacer. 2 http://www.BSDI.com/ 3 http://www.NetBSD.org/ 4 http://www.FreeBSD.org/ 2 El litigio fue resuelto dos años después con una negociación en la cual Berkeley se comprometió a retirar código que los dueños de UNIX consideraran violatorio de sus derechos. Una vez definido el juicio, los tres proyectos volvieron a nacer con el lanzamiento de BSD4.4 lite. En este tiempo también surgió otro sistema operativo gratuito denominado Linux que, aunque tenia menor calidad, no tenia los impedimentos que el código BSD presentó durante el litigio El código producido por Berkeley se distribuía bajo una licencia muy flexible que permitió su integración, total o parcial, en otros productos. El código de BSD es hoy parte integral, en mayor o menor grado, de los todas versiones comerciales de UNIX que adoptaron, entre otras cosas, el soporte de red TCP/IP y el sistema de archivos FFS. De los tres sistemas operativos derivados de BSD Net/2, el más popular es FreeBSD, que es además el motor fundamental de diversos sitios en Internet como Yahoo y Hotmail.. 3. Como es FreeBSD Todo usuario de UNIX tendrá una sensación familiar al usar FreeBSD. La forma más usual de interactuar con FreeBSD, y con UNIX en general, es a través de un interpretador de comandos o shell. El DOS, que tomó este concepto de UNIX, tenia un shell denominado COMMAND.COM, sin embargo en UNIX es posible escoger entre muchos shells distintos, siendo los más comunes el Korn Shell, ksh, y el C Shell, csh. Con la llegada de los sistemas operativos "amigables", una de las críticas más frecuentes contra toda versión de UNIX es la dificultad de su manejo: si bien es cierto que UNIX es más complicado que muchos otros sistemas operativos, también es muy flexible y es más poderoso: siempre ha sido un sistema operativo multiusuario, multitarea y ha servido para el desarrollo de productos como el navegador Netscape y el lenguaje de programación Java. El ambiente gráfico estándar en todos los sistemas UNIX fue creado por MIT y se llama XWindows, o simplemente X. Si bien X es similar a diversos productos comerciales, se caracteriza por permitir un trabajo orientado a la red: es posible ejecutar aplicaciones gráficas que están ubicadas en plataformas distintas. Así como la terminal de texto se maneja por un shell, el ambiente gráfico tiene un administrador de ventanas que puede seleccionarse según las preferencias del usuario. La figura 1 nos muestra como se vería una pantalla típica después de instalar X bajo FreeBSD y utilizar el administrador de ventanas KWM5. Hay otros administradores de ventanas com 5 Esta utilidad forma parte del sistema KDE http://www.kde.org/. 3 OLWM, FVWM, y MWM. Es posible poner un papel tapiz, en este caso un reloj, utilizar diversas herramientas del escritorio virtual, en este caso una calculadora, y ejecutar aplicaciones adicionales del sistema como XFractint. Figura 1. Escritorio típico en ambiente XWindows 4. Aplicaciones Científicas Por supuesto, el sistema operativo, por sí solo, no nos sirve para realizar labores de ingeniería. FreeBSD permite emular muchas aplicaciones comerciales escritas para otros sistemas operativos como BSDI, SCO UNIX, Unixware, Linux, y en algunos casos DOS y Windows. Algunas aplicaciones que se han reportado como exitosas en las listas de correo electrónico son: Matlab, Mathematica, Maple, Applixware, StarOffice y Oracle. 4 Pos supuesto, en la red es posible encontrar muchas aplicaciones científicas gratuitas. Afortunadamente para nosotros, los desarrolladores de FreeBSD se han inventado un sistema de distribución de programas denominado Ports6. Este sistema nos presenta una colección completa de utilidades: basta escoger uno de estos títulos, y el sistema puede encargarse de bajar los archivos de la red, bien sea ftp o http, aplicar los cambios necesarios, compilar la aplicación e instalarla en un solo paso. A continuación veremos algunos de los ports más populares. 4.1 Yorick ftp://ftp-icf.llnl.gov/pub/Yorick/yorick.html Yorick es un lenguaje de programación matemática, similar en su funcionamiento a Matlab pero con una gramática similar al del lenguaje C. Este paquete viene con una serie de librerías matemáticas que permiten cálculos matriciales y la construcción de animaciones, La figura muestra uno de los ejemplos en que se simula la vibración de un tambor. Figura 2.Vibraciones en un tambor con Yorick 6 http://www.FreeBSD.org/ports/ 5 4.2 POVRAY http://www.povray.org/ Permite construir imágenes fotorealísticas a partir de comandos o descripciones escritas en un archivo. Permite hacer "Rendering" sofisticado. El papel tapiz con el reloj en la figura 1 fue realizado con POVRAY. La imagen de la figura 3 también se creó con POVRay. Figura 3. Imagen virtual creada por POVRay 4.3 OpenDX http://www.OpenDX.org/ OpenDX es un procesador desarrollado por IBM. El programa permite la visualización de datos complejos y ha sido utilizado con éxito para modelar choques entre vehículos y 6 condiciones de flujo en el transbordador espacial (como el de la figura 1). La figura a continuación presenta algunos un análisis de diversas variables en los diversos Estados de los Estados Unidos. Figura 4. Información Estadística visualizada con OpenDX. 4.4 BRL-CAD http://ftp.arl.mil/brlcad/ El sistema de dibujo desarrollado en Ballistic Research Laboratory del ejercito norteamericano. El uso de este software es restringido por el gobierno de los Estados Unidos: antes de instalarlo es necesario firmar una licencia especificando los datos personales para conseguir una clave de acceso. Una vez se tenga la clave, no hay necesidad de compilar el programa ya que el ejecutable esta disponible en la red. La aplicacion es bastante grande. 7 Figura 5. Imagen creada con BRL-CAD 4.5 FEMLAB http://www.math.chalmers.se/Math/Research//Femlab/ Femlab es un paquete académico de origen sueco que permite solucionar problemas de ecuaciones diferenciales bidimensionales por métodos de elementos finitos. La figura 6 presenta un modelo del flujo alrededor del ala de un avión. También es posible usar este paquete para modelar condiciones eléctricas y mecánicas en diversos ambientes. 8 Figura 6. Cálculos de convección en un ala generados con Femlab. 4.6 FElt http://www-cse.ucsd.edu/users/atkinson/FElt/ FElt es un programa para llevar a cabo Análisis pon Elementos Finitos FEA, para casos de dos dimensiones. Existe una lista de correo patrocinada por la ASME y un sitio en la red donde se presentan casos de problemas resueltos. Si bien el paquete tiene sus limitaciones y no es comparable con las aplicaciones comerciales, es un avance importante y una herramienta de aprendizaje excepcional. La figura presenta una llave de tuercas sometida a condiciones de trabajo y es posible observar las deflexiones que sufrirá. 9 Figura 7. Análisis sobre una llave de tuercas realizada con FElt. 5.0 Observaciones Adicionales Existen muchas otras aplicaciones útiles en ingeniería disponibles en la red y en la distribución de FreeBSD. Salvo por BRL-CAD, todas las aplicaciones que hemos presentado están incluidas en FreeBSD y vienen con el código fuente usado para construirlas. El hecho de tener estas aplicaciones disponibles nos abre oportunidad de hacer uso de esta tecnología y asimilar mas rápido los conceptos clásicos, y también nos da la oportunidad de construir nuevas herramientas con las experiencias de los demás. Estos tipo de desarrollos permiten, efectivamente, disminuir la brecha entre los países desarrollados y los subdesarrollados. 10 Referencias Bibliográficas 1. McKusick Marshall Kirk, Twenty Years of Berkeley Unix, En: Open Sources: Voices from the Open Source Revolution, Editorial O'Reilly, 1999 2. Bostic Keith, y McKusick Kirk, The Design and Implementation of the 4.4BSD Operating System, Addison Wesley, 1996. 3. Lehey, Greg, The Complete FreeBSD, Walnut Creek CDROM, Tercera Edición, 1999. 11