Todo comenzó a mediados de la década de 1980 con un Apple ][c que compraron mis padres para nuestra familia. Aunque disfrutaba jugando, rápidamente me fascinó la programación BÁSICA y lo útil que podía ser para el trabajo y la diversión. Esta fue una era en la que las computadoras se consideraban poco más que máquinas de escribir, por lo que las personas con "habilidades informáticas avanzadas" podían usarlas fácilmente para su beneficio.
Un ejemplo fue usar BASIC y una impresora de matriz de puntos para generar automáticamente asignaciones de castigo. Cuando me asignaron escribir 200 veces algunas declaraciones de disculpa, le pregunté a mi maestro si podía escribirlas. En la confirmación, escribí un programa BASIC de 5 líneas para generarlo por mí. Otro ejemplo de engaño sutil fue el uso de procesadores de texto no WYSIWYG, como AppleWorks para la micromanipulación de fuentes, espacios entre líneas y márgenes para "estirar" los trabajos finales hasta la longitud requerida.
Mi obsesión por las computadoras me condujo rápidamente a un Apple ][gs con una tarjeta de memoria RAM y una tarjeta de coprocesador de PC x86. Los módems y los BBS se estaban calentando, y tener un sistema de hardware dual como este me dio todo tipo de opciones de software. Sin embargo, las velocidades de módem de 2400 bps dificultan la obtención de algo más que unos pocos KB de descargas divertidas por día. Me quedé con Apple como pasatiempo durante algún tiempo, pero eso pronto cambiaría.
Aventurándose en Unix
Mi programa de pregrado fue BS en Sistemas de Información Informática (CIS) y mi título de posgrado fue MS en Ciencias de la Computación. Mi programa de educación de pregrado me puso principalmente en PC y un poco en mainframes de tiempo compartido. La verdadera diversión comenzó en mis programas de posgrado, donde el acceso telefónico a máquinas Unix con conexión a Internet abrió un mundo completamente nuevo de exploración. Aunque todavía usaba mi ][gs de doble procesador para trabajar con módem y escribir e imprimir documentos, los sistemas Unix realmente me llamaron la atención con sus juegos basados en Telnet de acceso general, archivos FTP, correo electrónico en línea y programación en C. Gopher era popular y estaba creciendo entre personas como yo que estaban vinculadas a interfaces de terminales simples.
Mi programa de posgrado dio un giro fatídico para mejor cuando me asignaron al departamento de informática académica, que estaba a cargo de administrar los servicios informáticos de la escuela. Los estudiantes tuvieron acceso a sistemas basados en Ultrix con terminales X Window. La mayoría eran en escala de grises, ya que el procesamiento del color era entonces una tarea intensiva de la CPU y realmente afectaba el rendimiento del sistema. Los pocos sistemas de color eran agradables, pero esas máquinas simplemente se arrastraban.
Este fue un momento muy divertido para mí, ya que me dieron acceso de root a los sistemas y me asignaron el mantenimiento del sistema y la red. Tuve algunos mentores excelentes, y esto influyó mucho en mi decisión de dedicarme a la administración de sistemas en lugar de a la programación (aunque todavía me encanta programar hasta el día de hoy).
De Unix a Linux
La escasez es la madre de la invención, y los estudiantes muchas veces nos volvimos creativos cuando teníamos que compartir los escasos recursos de los sistemas informáticos de la escuela. Teníamos de tres a cinco veces más estudiantes que estaciones de trabajo Ultrix, por lo que encontrar recursos (especialmente en el momento de la entrega del proyecto) a menudo era un desafío. Había un banco de módems PPP de 56k disponible para el acceso remoto al sistema cuando no se necesitaban pantallas gráficas. Sin embargo, encontrar una máquina con recursos de repuesto y compartir el sistema para compilar el código fuente a menudo resultaba en un progreso lento. Como la mayoría, descubrí que trabajar de noche a menudo ayudaba, pero necesitaba algo más que me permitiera iterar más rápido.
Luego, uno de los administradores de sistemas de la escuela me sugirió que comprobara un sistema Unix que estaba disponible gratuitamente. Esto era Linux, disponible como imágenes de disquete de 3,5". Dada la ultrarrápida línea T1 de nuestra escuela, fue fácil para mí buscar grupos de noticias y otras fuentes para aprender cómo descargarlo. Todo estaba basado en Intel PC de 32 bits, un clase de equipo que no poseía.
Afortunadamente, mi trabajo en la escuela me dio acceso a montones de chatarra de computadoras viejas, por lo que las ruedas comenzaron a girar.
Más recursos de Linux
- Hoja de trucos de los comandos de Linux
- Hoja de trucos de comandos avanzados de Linux
- Curso en línea gratuito:Descripción general técnica de RHEL
- Hoja de trucos de red de Linux
- Hoja de trucos de SELinux
- Hoja de trucos de los comandos comunes de Linux
- ¿Qué son los contenedores de Linux?
- Nuestros últimos artículos sobre Linux
Encontré suficientes PC descartadas para construir una PC 80386 sólida con algo de RAM decente (estoy seguro de que menos de 1 GB), una pantalla gráfica viable, una tarjeta Ethernet de red delgada (coaxial) y un disco duro. Las imágenes que tenía eran del kernel de Linux 0.98, y no recuerdo que fuera parte de una distribución oficial (podría haber sido SLS). Lo que sí recuerdo es que venía en una serie de imágenes de disquete:la primera iniciaba el kernel y un instalador mínimo, luego formateaba la unidad y luego solicitaba cada imagen de disquete sucesiva para instalar las utilidades principales de GNU. Después de instalar el núcleo y arrancar el sistema, descargaría e instalaría otras imágenes de paquetes, como compiladores y demás.
Esto fue una gran ayuda para mí en mi carrera académica. Sin una pantalla de servidor X Window en ejecución, esta PC superó con creces a las estaciones de trabajo Ultrix a las que tenía acceso en la escuela. Se me permitió conectar esta máquina a la red académica, montar los recursos compartidos del sistema de archivos de red (NFS) de los estudiantes de la escuela y acceder a Internet directamente. Dado que mi programa de posgrado usaba GCC (ya veces Perl 4) para la mayoría del trabajo de los estudiantes, podía hacer mi trabajo de desarrollo localmente. Esto me dio acceso exclusivo a un recurso clave que me permitió iterar más rápidamente en mis proyectos.
Sin embargo, no todo fue perfecto. El hardware era un poco inestable (probablemente por eso fue descartado), pero podía lidiar con eso. Lo que realmente me atrapó fue cuánto diferían Linux y Ultrix en el sistema operativo y el nivel de biblioteca del sistema. Empecé a apreciar lo que significaba portar software a otras plataformas; Era libre de desarrollar donde quisiera, pero tenía que entregar mis proyectos como archivos binarios compilados por Ultrix. El código C que funcionaba perfectamente en una plataforma fallaba en la otra. Esto fue muy frustrante, pero probablemente mi despertar más rudo fue el manejo temprano de Linux de la desreferenciación de puntero nulo. Linux parecía feliz de pasar por alto estos como un no-op virtual, pero Ultrix descargó rápidamente el núcleo en SIGSEGV. ¡Fue algo increíble descubrirlo cuando mi primer puerto a la plataforma de destino ocurrió días antes de la fecha de vencimiento de mi proyecto! Esto también hizo que mi exploración de C++ fuera bastante desafiante, ya que mi uso descuidado de malloc()/free() junto con el procesamiento automático de constructores y destructores salpicaron mis proyectos con bombas de puntero nulo por todas partes.
Hacia el final de mi programa de posgrado, actualicé a una bestia completa de una estación de trabajo:una Intel 486DX2 de 66 MHz con discos duros SCSI, una unidad de CD-ROM, un monitor RGB de 1024x768 y una tarjeta serial UART 16550 perfectamente adaptada a mi nuevo EE. UU. Módem Robotics V.Everything. Podría iniciar Windows y Linux de forma dual, pero lo que es más importante, la tarjeta gráfica y el procesador permitieron un entorno de desarrollo mucho más agradable (y más rápido). El viejo 386 todavía estaba en servicio en la escuela, pero la mayor parte de mi trabajo pesado y piratería ahora se realizaba en casa.
Similar a la historia de Mike Harris sobre Linux en los años 90, realmente me metí en esos paquetes de CD que eran populares en ese momento. Había una nueva tienda de computadoras Micro Center cerca de donde yo vivía, y era una mina de oro de partes de PC para pasatiempos, libros técnicos fenomenales y todos los archivos de CD de Linux (y Unix gratis) imaginables. Recuerdo que Yggdrasil y Slackware son algunas de mis distribuciones favoritas. Lo que fue realmente increíble fue el enorme tamaño de almacenamiento de CD:¡650 MB! Este era un recurso esencial para obtener acceso al software. Sí, podía descargar los bits a 56k, pero eso era bastante limitante. Sin mencionar el hecho de que la mayoría de las personas no pueden permitirse el lujo de archivar tantos datos inactivos para su posterior lectura.
Y hasta hoy
Esto fue lo que inició mis más de 25 años de diversión en la administración de sistemas y el software de código abierto. Linux ha sido una parte importante tanto de mi carrera como de mi desarrollo personal. Hoy en día, todavía estoy muy interesado en Linux (principalmente CentOS, RedHat y Ubuntu), pero a menudo me divierto con FreeBSD y otras ofertas geniales de código abierto.
Mis incursiones en Linux me llevaron a Opensource.com, donde espero retribuir un poco y ayudar a impulsar nuevas generaciones de diversión práctica con la computadora.