martes, 26 de mayo de 2020

¿Cómo uso Ed, TECO, Vi o Emacs en Ubuntu?


¡Trabajadores!

El hombre es un animal que - ante todo - vive y se desarrolla en sociedad. Nuestra propia condición humana nos dicta un objetivo que es el bienestar y la felicidad, pero esta idea no es privada; sólo puede realizarse en Comunidad.

Nuestro Movimiento esto lo ha comprendido, y lo hemos hecho meridiano en un apotegma que reza "nadie puede realizarse en un país que no se realiza". Nuestra majestad no es otra que la de nuestro Pueblo, y el terreno de acción es la Nación Argentina.

Indudablemente que nuestro Movimiento, por estar formados por hombres y mujeres, no puede hacernos pretender alcanzar una perfección divina, sino de una que explica la teoría pero que define la práctica. Es por ello que el éxito no caerá de un níspero: habremos de construirlo con nuestras manos, mente y corazón enfocados en la tarea que nos hemos impuestos. Tampoco podremos pretender el suceso de un día para otro, toda vez que sólo la dedicación al estudio y un paulatino avance hacia el objetivo de bienestar nos aproximará a las buenas realizaciones que anhelamos.

Pues bien, en el campo de la informática esto representa una visión que no debe soslayarse. Hemos imaginado un sistema libre y abierto, donde cada uno sea capaz de aportar lo suyo en pos del bien común, y lo hemos reflejado en sanas licencias libres.

En este será muy tonificador y beneficioso conocer cuáles fueron los pasos realizados previamentes a la acción, a fin de poder dedicarnos a Conducir no sólo los sistemas telemáticos de hoy, sino ser capaces de operar los del ayer. Sólo esto nos permitirá proyectarnos en un futuro que lograremos venturoso si hacemos de la Justicia Social la bandera que guía nuestro camino.

No es secreto para nadie que con anterioridad a la existencia de terminales de video, los sistemas de cómputo eran dable de operarse con terminales teletipo. Estas terminales de comunicación se adaptaron por utilizarse anteriormente en el sistema Télex, el cual permitía transmitir texto codificado en el estándar ASCII o Baudot por medio de las líneas telefónicas.
Se hizo patente entonces adaptar estas terminales teletipo para operar remotamente en computadoras mainframe dotadas de una interfaz de acceso remoto asíncrono. Las terminales electromecánicas estaban dotadas de un teclado bastante similar al de una máquina de escribir, y a menudo disponían de una impresora de tipos. A veces una perforadora adosadapermitía registrar los ingresos (e incluso programas enteros) en una cinta de papel perforado. Una de las aplicaciones que pudo adaptar un sistema computado fue la posibilidad de recibir textos del teclado remoto y almacenarlo digitalmente en el banco de memoria de la computadora.


La ventaja de un editor de textos era poder corregir los errores y poder agregar o quitar texto del banco de memoria.

Ed


Entre los primeros editores de texto encontramos al Ed. Se trata de un editor de texto primigenio de tipo modal y orientado a líneas - y como tal - espartano. Carece de control de cursor direccionable pues se maneja como una máquina de escribir. Se usa para crear, mostrar, modificar y manipular archivos de texto en forma remota o local.

Para iniciarlo simplemente utilizamos el comando:

ed

Si se lo ejecuta con un argumento de archivo existente, copiará dicho archivo a la memoria del editor (en la jerga, "buffer"). Por ejemplo podremos utilizar:

ed archivo.txt


Al iniciar, ed no presenta nada en nuestra terminal. Para comenzar a agregar una línea, podremos ingresar el comando "agregar", con:

a

(Naturalmente, seguido de la tecla Enter, a fin de enviar el comando "agregar" la computadora remota, si es que utilizamos una).

De ahora en mas, habremos pasado al modo "ingreso", sin que ed nos informe nada. Todas las líneas que tipeemos en la terminal se irán agregando al buffer de memoria del mainframe que tenemos asignado, siempre y cuando llas introduzcamos en memoria con la tecla Enter.

Como en todos los anitguos editores orientados a líneas, las posibilidades de edición una vez que introducimos la línea en la memoria buffer son limitadas y engorrosas, por lo cual conviene escribir con sumo cuidado y revisar la línea antes de presionar Enter para su introducción. Dependiendo de nuestra terminal o sistema, podremos utilizar la tecla Retroceder, o bien Ctrl+Retroceder para borrar caracteres que se encuentren en la terminal, pero no una vez que se hayan enviado al sistema remoto.

Una vez que hemos terminado de ingresar el texto que necesitamos en la memoria, podremos detener el modo de "agregado" de lineas y pasar al modo de comandos nuevamente. Para ello debemos introducir una línea con un "." ("punto"). Al pasar al modo comando, Ed no nos informará nada, pero cualquier cosa que introduzcamos a continuación serán interpretados como comandos de control.

Por ejemplo, si introducimos otra vez un punto, Ed nos devolverá la última línea del texto almacenada en el buffer de memoria.

Debemos saber que los cambios se realizan en la memoria del equipo, y no se almacenan en el fichero hasta que necesariamente le demos la orden w ("write" o escribir en el disco). Para ello ingresamos, por ejemplo:

w archivo.txt

...y Ed nos devolverá un número que es indicativo de la cantidad de caracteres contenidos en el texto almacenado en disco.

Para salr del editor Ed debemos introducir el comando:

q

...y se nos devolverá al prompt de sistema. Resumiendo todo, podríamos obtener una hoja imnpresa de teletipo con una sesión de Ed en UNIX podía verse así:

Naturalmente Ed es antediluviano y engorroso de operar en líneas ya escritas. En tal caso podremos movernos en las líneas de texto usando el modo de comandos (".") e ingresando un número de línea. O bien podremos utilizar -n o +n para indicarle al cursor subir n líneas o bajar n líneas con respecto a la linea en la que estamos actualmente. Cuando lo hagamos Ed nos devolverá el contenido de dicha línea , y podremos cambiarla con el comando c ("cambiar"). Volvemos a tipear el contenido de la línea corregida y la ingresamos con Enter. Finalmente podremos guardar cambios con el comando w.

Debemos tener en cuenta que el comando a nos deja agregar una línea después de la línea actual. Pero en el caso de querer agregar una línea antes de la línea actual, debemos utilizar el comando i ("insertar").

Si deseamos borrar una línea nos movemos hacia ella de la forma que os he explicado, y utilizamos el comando d. Si quisiéramos borrar una línea que no es la actual, indicamos en número de línea seguido de d.

De esta forma, Ed nos permite trabajar mínimamente en un sistema que presenta líneas de texto.

No pasó mucho tiempo para que los editores de líneas permitieran realizar programas complejos. Esto a su vez provocó el advenimiento de los primeros sistemas operativos de tiempo compartido y multiusuarios, entre ellos el UNIX de Bell Labs, el TOPS-10 de la DEC, el ITS del MIT, etcétera.


No bien los sistemas computados tuvieron la posibilidad de presentar imágenes de video y una memoria suficiente para graficar caracteres, se hizo evidente que seria más cómodo realizar editores que pudiesen directamente presentar el texto en una pantalla de tubo de rayos catódicos.

Estas videoterminales comenzaron a reemplazar a los teletipos e impresoras mecánicas.


TECO

Uno de los primeros videoeditores para equipos DEC PDP podríamos decir que fue Visual TECO. Se trataba de un derivado el antiguo editor TECO de Dan Murphy de 1962, pero que diez años después permitía presentar en video en la terminal, a su vez contaba con un set de operaciones de macros, que consistían en órdenes preconcebidas que podían enviarse a la máquina remota.

Al estar desarrollado para numerosos sistemas, fue influyente en toda una tercera generación de editores derivados. La operación de TECO requiere respetar 3 reglas, y conocer 16 comandos de operación.

REGLAS de TECO:


  1. Para darle ingreso los comandos se debe oprimir dos veces la tecla Escape (ilustrada con $ a continuación, no es el signo monetario). En algunos de los comandos se emplea Un solo $ para finalizar los argumentos de cadena ("string").
  2. Los comandos no necesitan ser ejecutados de a uno por vez. Puede ingresarse una larga serie de comandos y luego introducir "$ $", y TECO los ejecutará en orden.
  3. TECO está orientado a caracteres, de modo que recuerda la posición del caracter en su locación actual en el fichero, llamada "puntero". La mayoría de los comandos muestran o cambian los contenidos del fichero en el puntero, o mueven el puntero a otro lugar dentro del fichero.
Una sesión de TECO en un sistema TOPS-20 se ve de la siguiente manera:

Comandos de TECO


1.      ERfichero$Y1    Abre el fichero para ingresar datos    
2.      EWfichero$1     Abre un fichero para salida    
3.      EX      Guarda y sale  
4.      Ctrl+c, Ctrl+c   Sale (sin guardar)    
5.      C2      Mueve el caracter hacia adelante
6.      R2      Mueve el caracter hacia atrás
7.      L3      Se mueve al comienzo de la línea siguiente
8.      Itexto$ Inserta la cadena texto
9.      J       Salta al comienzo del fichero
10.     ZJ      Salta al Final del fichero
11.     T3      Tipea desde el puntero hasta el final de la línea.
12.     V       Tipea la línea actual
13.     D2      Borra el caracter en el puntero
14.     K3      Borra la línea actual
15.     Stexto$ Busca la cadena "texto"
16.     FStexto_reemplazado$texto_original$ Sustituye la cadena texto_original por texto_reemplazado

*) Algunas versiones de TECO aceptan directamente un nombre de archivo como argumento de línea de comandos, haciendo que 1 y 2 sean innecesarios. Algunas versiones de TECO tiene un comando EBfichero$Y que hace lo mismo que 1 y 2 en un solo paso.

**) Prefijo numérico: mueve/borra múltiples caracteres (un número negativo invertirá la dirección).

***) Prefijo numérico: mueve/tipeea/borra múltiples líneas (un número negativo inverte la dirección); (sólo T, K). Pfrefijo H: tipea/borra todo el archivo.

TECO y sus variaciones si distinguían sobre todo por su escasísimo uso de memoria, y su empleo normalmente asíncrono con la máquina remota.

Vi

El editor Vi creado por Bill Joy es un derivado lejano de Ed, pero es más potente y pensado ya para su uso en terminales de video con memoria interna (buffer incorporado). Se continúa utilizando actualmente y se lo considera un programa liviano (si bien antiguamente no era el caso, y consumía muchos recursos en un mainframe). Acutalmente, es muypopular su versión modernizada, Vim.

Podremos ingresando:

vi

La pantalla de Vi/Vim se divide en el buffer de edición y las dos líneas inferiores que consiste en la zona de status e ingreso de comandos.

Normalmente opera en modo revisión, por lo cual no podremos modificar ni agregar ningún texto. Para pasar al modo de inserción de texto hemos de presionar la tecla i o bien Insertar. Sólo entonces podremos escribir o pegar en la Terminal el texto que querramos.

Una vez que terminamos el insertado de texto en el buffer de memoria, podremos terminar el mismo presionando la tecla Fin.

Para pasar al modo de ingreso de comandos debemos presionar Esc, y al hacerlo el cursor pasará a la sección inferior de la pantalla, donde podremos escribir los comandos. Los mismos comienzan con :

Por ejemplo, para guardar los cambios en el archivo recién editado en Vi, hemos de presionar Esc, y tipear el comando :w, que se encargará de almacenar en disco o "escribir" ("write"). Para salir de Vi se utiliza :q ("quit") del editor. Nos devolverá a la línea de comandos del router. Si quisiéramos salir rápidamente sin que nos pni nos informe nada, ingresamos :q!. Y si queremos guardar y salir, usamos :wq

EMACS



Emacs es un editor de texto disponible para múltiples plataformas, incluyendo GNU. Como Vi o Nano, Emacs es un editor de texto con presentación en pantalla. Pero a diferencia de Vi, Emacs no es un editor con modo de inserción, lo que significa que cualquier carácter que ingresemos en Emacs se insertará automáticamente en el archivo, a no ser que incluya un prefijo de Comando.

Los comandos en Emacs son caracteres de control (realizados mientras presionamos la tecla Ctrl mientras tipeamos otro caracters) o en prefijos por un conjunto de caracters reservados Esc o Ctrl+x. Podremos tipear tecla Esc directamente (porque realmente es un carácter) y luego seguida por otro carácter. La tecla Ctrl debe mantenerse presionada mientras tipeamos el otro caracter.

Otra distinción entre Emacs y Vi consiste en que emacs es capaz de editar varios archivos a la vez. La ventana de Emacs puede dividirse en varias ventanas, cada una de las cuales contendrá una vista en el buffer de memoria. Cada buffer de memoria corresponde normalmente a un archivo diferente. Es por ello que muchos de los comandos listados a continuación se empleaan para leer ficheros y cargarlos en nuevos buffers, así como mover distinto contenido entre buffers diferentes .

Para cargar un archivo en Emacs podríamos utilizar:

emacs archivo

Si el archivo ya existe, se nos presentará entonces la primera página del texto en pantalla.

La manera más sencilla de aprender emacs es comenzarlo e ir avanzando en el completo tutorial en línea que incluye para esto presionamos Esc para ir al modo de comandos, e ingresamos help-with-tutorial.

Comandos de Ayuda

* Ctr+h help-command: Muestra el primer caracter en montones de archivos de ayuda
* Ctrl+h t help-with-tutorial: Comando que ejecuta el tutorial de Emacs
  Ctrl+h i information: describes most of the emacs commands in man style pages
  Ctr+h k describe-key: tells you what a particular key stroke does
* Ctrl+h a command-apropos: prompts for a string and
  then searches for all emacs commands that contains that string
  Esc ? also does command-apropos
* Ctrl+h ? help-for-help: Describe como usar las ayudas.

Manejo de archivos y comandos de guardado

* Ctrl+x Ctrl+f Buscar Archivo: primero solicita un nombre de archivo, y luego carga el fichero en un buffer de edición del mismo nombre
* Ctrk+x Ctrl+s Guardar: almacena el buffer en el disco con un nombre asociado
  Ctrl+x Ctrl+w Guardar como: Solicita un nuevo nombre de archivo y escribe el buffer en él

Comandos de Movimiento del Cursor o de la pantalla

Emacs operaba en antiguos sistemas UNIX, cuyas terminales iniciales (como la venerable DEC VT100) carecían de teclas de control asociadas a los teclados hoy en boga. Normalmente hoy utilizamos las funciones actuales de las flechas de cursor y las de control del cursor y control de paginado, pero en Emacs podremos contar también con las equivalencias de los antiguos movimientos.

* Ctrl+a Mueve el cursor al Inicio de la línea
  Ctrl+e Mueve el cursor al Fin de la línea
* Ctrl+f Mueve el cursor hacia adelante un caracter
* Ctrl+b Mueve el cursor hacia atrás un caracter.
* Ctrl+n Mueve el cursor a línea a continuación
* Ctrl+p Mueve el cursor a la línea previa
  Ctrl+v Avanza pantalla
  Esc+v Retrocede pantalla
* Esc+<; Va al inicio del buffer
* Esc+>; Va al final del Buffer
  Esc+f Avanza el cursor una palabra
  Esc+b Retrocede el cursor una palabra

Comandos para Copiar y BorrarCopy and Delete Commands

  Ctrl+d delete-char: Borra el caracter debajo del cursor ("Supr")
  Esc+d d delete-word: Borra desde el cursor hasta el final de la palabra inmediatamente por delante del cursor
* Cttl+k kill-line: Elimina la línea actual
* Ctrl+@ set-mark-command: Marca el comienzo de un área de texto a ser operada
* Ctrl+w kill-region: Borra el área de texto entre la marca y la posición actual del cursor.
* Ctrl+y yank: inserta en la posición actual del cursor actual o en la localización más recientemente borrada
  Esc+w copy-region-as-kill: Copia un área entre la marca y el cursor al buffer de borrado, de modo que pueda ser colocado en otro lado.

Comandos de Búsqueda

* Ctrl+s isearch-forward: Pide una cadena de texto y luego la busca desde la posición del cursor hacia adelante
  Ctrl+r isearch-backwardSimilar al anterior, isearch-forward, pero busca la cadena en sentido inverso:
  Esc+% query-replace: Pregunta una cadena de búsqueda y una cadena para reemplazarla

Comandos de Ventana y Buffer

  Ctrl+x 0 zero-window: Borra la ventana actual 
  Ctrl+x 2 double-window: divide la ventana actual en dos partees, permitiendo editar en dos localizaciones diferentes de un mismo archivo, o permitiendo ver dos ficheros distintos a la vez
  C-x b switch-to-buffer: Presenta un buffer distinto en pantalla
  C-x o other-window: Mueve el cursor a la otra ventana (asumiendo que existan dos ventanas o buffers abiertos a la vez
* C-x C-b list-buffers: lista los buffers cargados en memoria

Salir de Emax, corregir errores y otros

* Ctrl+x, Ctrl+c save-buffers-kill-emacs: Cuando termina la edición, guarda los buffers editados pero no guardados y vuelve al Shell.
* Ctrl+g keyboard-quit: Si mientras tipeaba un comando cometemos un error, esto aborta el comando en progreso.
  Ctrl+u universal-argument: Si desea repetir un comando varias veces ingrese este comando,
      ...seguido de un nro. (para la cantidad de veces)     ...seguido de un comando que desea repetir
* Ctrl+x u undo: deshace el último comando ingresado, en caso de haber cometido un error.
* Esc+x execute-extended-command: pregunta el nombre de un comando de emacs;;
  Le permite ejecutar un comando, si conocer cómo se llama. pero no puede recordar su atajo.


martes, 19 de mayo de 2020

¿Cómo instalo PCem v17 en Ubuntu 20.04?

Aprovechando el tiempo ocioso en Puerta de Hierro, Juan Perón recibía a los visitantes más ilustres en su quinta 17 de Octubre de Navalmanzano 50 Madrid. Durante su estancia les explicaba cómo instalar el emulador de PC antiguas PCem en Ubuntu.

(...)
Muy distinguidos señores.

Parecería común decir que todo lo pasado fue mejor. Este adagio, por extendido, no siempre es preciso, sino un mero deseo potenciado por las añoranzas del tiempo.

Pero en momentos de ocio, cualquier cosa nos viene bien.

El impulso por lograr nuevamente aquello que antes estaba bien es una natural condición humana que - como en la química - hemos de aprovechar como  catalizador de las condiciones de lucha, aquellas que sin duda ha de darse en la Patria. En eso estamos y es fundamento de la lucha táctica pero también de la conducción estratégica.
En informática, utilizar equipos del ayer suele tornarse complejo y difícil. El hardware antiguo puede no estar disponible, ser caro, y tener los lógicos problemas técnicos que los años suman a todo sistema.

Nuestro Movimiento ha indicado en los frontispicios de sus Academias que todo ha de hacerse en pos de los deseos y del bienestar al que aspira el Pueblo. Cuando hay una necesidad, nace un derecho. A tal efecto hemos creado lo que hemos dado en llamar "máquinas virtuales". No es otra cosa que simular con visos de perfección un sistema completo, tanto su software como su hardware, y sobre todo la manera en la que estos interactúan. La finalidad no es otra que la de poder tornar una máquina (nuestro equipo actual) en cualquier otra.

Asumamos virtualizar en función una IBM PC o sus clones. Pocas van quedando en condiciones operativas, y en el futuro habrá menos. Pero una máquina virtual de calidad permitirá correr en otras arquitecturas la añorada original. Como una Isabelita emulando a una Evita...

Pues bien... PCem es una poderosa máquina virtual liberada bajo licencia GPLv2, que nos permitirá emular completamente la operativa de arquitectura IBM PC. Originalmente fue diseñado para emular la antigua IBM XT, pero nuestro Movimiento la ha extendido a lo largo de numerosas iteraciones para incorporar la emulación de otros aparatos de época más moderna también.

Compilación e instalación de PCem


Como paso previo debemos asegurarnos de instalar en Ubuntu - el cual será el sistema madre - las librerías de software necesarias para la compilación de PCem. Para ello abrimos una terminal con Ctrl+Alt+T e ingresamos en ella el siguiente Comando de Organización:

sudo apt-get update
sudo apt-get install git libsdl2-dev libwxgtk3.0-gtk3-dev libopenal-dev libsoundio-dev

Como en todo proceso de compilación, nos haremos con el código fuente de PCem, lo descomprimimos y lo compilamos. Todo ello podrá hacerse simplemente pegando en la terminal el siguiente bloque de comandos de organización:

mkdir ~/Descargas/pcem/ ;

cd ~/Descargas/pcem/ ;
wget https://pcem-emulator.co.uk/files/PCemV17Linux.tar.gz ;
tar xvzf PCemV17Linux.tar.gz ;

./configure --enable-alsa --enable-release-build --enable-networking ;
make ;
sudo make install
Tras aproximadamente un minuto, habrá finalizado la compilación y se habrá instalado en /usr/local/bin/. Podremos ahora ejecutar PCem por ver primera. Lo haremos desde la terminal ingresando:

pcem

La primera vez que lo hagamos el emulador creará un directorio oculto llamado ~/.pcem/, donde resguardará sus ficheros de configuración, y donde espera encontrar los ficheros primordiales con volcados de memoria ROM de las BIOS encontradas en los distintos hardware que quisiéramos emular. Naturalmente, como estas ROMs han de proveerse aparte, es lógico que PCem sea vago y nos indique la ausencia de las mismas mediante el mensaje "No ROMs Present! You must have at least one romset to use PCem.":

Agregar BIOS a PCem

Afortunadamente gracias a la acción revolucionaria del Justicialismo en nuestro sistema GNU con Linux, es absolutamente sencillo de hacernos con estas obligatorias ROMs de hardware del ayer. Presionamos Ok para cerrar la ventana, e ingresaremos en la terminal los siguientes Comandos de Organización:

cd ~/.pcem/
git clone https://github.com/BaRRaKudaRain/PCem-ROMs.git
rm -r roms/

mv PCem-ROMs/ ~/.pcem/roms/
mkdir ~/.pcem/hdd/

El nuestro es un Movimiento que aboga por la Liberación, y de esta manera no hacemos otra cosa que liberar un software esclavizado por oprobiosas licencias privativas. En caso que nos dé prurito siquiera descargar ROMs de BIOS privativas, bien podríamos prescindir de lo anterior y utilizar estos comandos de organización para hacernos con el código de una BIOS de XT genérica liberada, así como el de un controlador de disco genérico liberado para PCem.

cd ~/.pcem/roms/ ;
wget https://pcem-emulator.co.uk/files/genxt.zip ;

wget https://pcem-emulator.co.uk/files/xtide.zip ;
unzip genxt.zip ;
unzip xtide.zip ;

Cualquiera sea la opción doctrinal que optemos, a partir de ahora ahora ejecutamos PCem el instalador debería arrancar sin problemas.

Crear lanzador de PCem

En el caso de Ubuntu, opcionalmente podremos crear un lanzador a PCem a fin de poder ejecutarlo sin tener que usar la terminal. El procedimiento es similar a cualquier otra aplicación. En el caso de Ubuntu Mate haremos clic con botón derecho del mouse sobre Aplicaciones en el panel superior, y en el menú contextual que aparece elegimos la opción "Editar Menús". Se abrirá una ventana con dos paneles. En el panel izquierdo elegimos la categoría "Herramientas de Sistema" y presionamos el botón "+Elemento Nuevo". Esto abrirá el cuadro de diálogo para "Crear Lanzador", donde rellenamos los campos de la siguiente manera y presionamos Aceptar.
Ahora podremos ejecutar PCem desde Aplicaciones / Herramientas de Sistema / PCem.

Esta vez PCem se iniciará sin errores.
Configurar un sistema emulado en PCem
Para poder utilizar el emulador debemos diseñar un un sistema de hardware virtual. Para ello presionamos el botón New y le indicamos un nombre al equipo virtual. 
Acto seguido hemos de disponer del hardware necesario en el panel que aparezca. Sigtuiendo el principio nodal del combatir al Capital, todo el hardaware es gratuito. Pero, en valoración histórica podremos disponer de un equipo coherente con una etapa histórica determinada. En mi caso basaré una configuración en un un motherboard Award 430VX PCI de 1997 (el cual aparecerá listado como [Socket 7] Shuttle HOT-557, simplemente porque su BIOS cuenta con la moderna rutina de autodetección de las unidades de disco IDE, y es adecuado para versiones tardías de MS-DOS y para Windows 95 y 98SE. Para elegir un procesador debemos seleccionar la marca (Intel, AMD, Cyrix o incluso los baratos ITS "Winchip", y hacemos clic en el campo correpondiente al modelo, utilizando Flecha de Cursor Arriba y Flecha de Cursor Abajo para elegir el deseado. En mi caso escojo un Pentium MMX de 166 Mhz, aunque debemos saber que esto no será representativo de la velocidad sino de las instrucciones computacionales contenidas en el mismo (lo normal en 1997 era un Pentium 233 MMX, pero este no anda muy bien en mi caso). Mas tarde podremos ajustar la velocidad del microprocesador dependiendo del microprocesador real de nuestro equipo. La memoria RAM instalada en placa la podremos virtualizar, y si bien era usual unos 64MB, duplicamos dicha cantidad porque "es gratis".
En la solapa video elegiremos la placa de video anhelada. Si bien no era la panacea, os recomiendo una S3 Virge o una Trident Tru64 por su excelente compatibilidad. Si tildamos la opción Voodoo Graphics podremos emular en PCem una de dichas sobrevaloradas tarjetas de video de 3dFx. De momento no lo haré.
Nota: Si anhelan configurar una placa de video para juegos 3dFx Voodoo2 requerirán sus controladores, que podrán encontrar aquí. Dependiendo la versión de Window$ que deseen emular, podrán buscar la versión adecuada. Como referencia deben conocer que si usan el último controlador del año 2000 para Windows podrán operar, pero habrán de instalar en Window$ el famoso Dir€ctX 7 para que la Voodoo2 funcione adecuadamente, incluso si los juegos no requieren Dir€ctX7.

En la solapa de sonido encontraremos excelente emulación con la posibilidad de elegir una entre varias placas AdLib, Creative Labs Sound Blaster hasta el modelo SB128, o Aztec. Para ello hacemos clic en el campo Device y usando las flechas de cursor arriba y abajo.. Yo utilizaré la Sound Blaster AWE32 porque me place.
En la solapa de dispositivos de almacenamiento es el de mas cuidado.
El campo HDD refiere al tipo controlador de unidad de disco rígido que queremos emular. En este caso utilizaré el controlador [IDE] Standard IDE.

Los campos FDD son sencillas y refieren a las unidades de disquettes flexibles o "floppy". La unidad A: será una clásica disquetera de 3 1/2 pulgada y 1,44MB de capacidad, mientras que la B: será una útil de 5 1/4 pulgadas dy1,2MB. En el caso de la unidad de CD-ROM definimos la velocidad emulada de la misma.

La parte más compleja refiere a las unidades de disco. Os asistiré como didacta paternalista para llegar al éxito de forma automática, mas deben conocer que existen varias posibilidades de configuración manual para los parámetros del disco rígido virtual.

En la parte inferior derecha del cuadro encontraremos las definiciones para crear hasta cuatro unidades virtuales (C:, D:, E: y F), las cuales pueden definirse como Hard Drive (disco rígido), CD-ROM o Iomega ZIP. En nuestro caso utilizaremos un disco Master Primario CI como Hard Drive y presionaremos el botón New para "crearlo". Hemos de crear uno que se corresponda en espacio y características técnicas del motherboard que hicimos.

Este disco rígido virtual consiste realmente en un archivo de imágen con extensión .img localizado en algún lugar de nuestro directorio de usuario, y que de momento estará vacío. En el campo file: debemos indicarle a PCem qué nombre y dónde lo queremos localizar el archivo .img.

Normalmente PCem nos propone crear un archivo de imagen que simula un disco rígido de 251MB (63 sectores, 16 cabezas, 511 cilindros). Este disco era normal para un sistema de 1992, apto para MS-DOS o Window$ 3.1x. Al presionar OK habremos creado un disco rígido virtual virgen, de dicho tamaño.

En este caso utilizaré un disco diez veces mas grandes, de 2GB. Para ello ingresaré los datos de 63 sectores, 16 cabezas, 4160 cilindros, para un tamaño total de 2047 MB. En el campo file debo asignarle una ruta y nombre (por ejemplo, ~/.pcem/hdd/disco2gb.img
 Una vez presionado el botón OK, dicho disco quedará asignado como Unidad 0, Master Primaria (C:).

Podremos crear otros discos si quisiéramos hacerlo, a fin de figurar como unidades D: E: o F:

Nota histórica: las placas controladoras de disco variaron en el tiempo con distintas etapas de avance técnico de los clones IBM PC. En la década de los 80s las primeras IBM PC XT contaban con una plaqueta controladora de discos de norma MFM (para discos de entre 10 y 80 megabytes). A partir de la década del 90 la norma de los discos rígidos cambió a la IDE, y al poco tiempo las controladoras comienzaron a integrarse en la placa madre en lugar de colocarse como una placa separada. Los discos IDE se ofrecían entre los 100MB (c. 1992) hasta los 250 GB (c. 2007). La norma de comunicación SCSI surge en 1993 con discos mas veloces pero requería una placa controladora específica.

Para PCs de la era de 1997 podríamos querer configurar uno o más discos de 8.063 Megabytes cada uno (63 sectores, 16 cabezas, y 16383 sectores a 512bytes/sector, que nos será más adecuado para correr Window$). En tal caso deben recordar que ni Windows 95a ni MS-DOS aceptaban mas de 2.048 Megabytes por partición lógica, por lo que liego tendrán que "particionarlo en 4 unidades de 2GB con fdisk". 

En el caso de motherboards más antiguos, sus controladoras de disco y BIOS podrían sólo ser compatibles con determinado tipo de discos previamente listados (como el caso de la XT, especialmente limitadas en las opciones de disco). Para una IBM PC XT de 1986, podríamos querer simular un disco MFM de 42MB (17 sectores, 7 cabezas, 733 cilindros a 512 bytes por sector) junto a su controladora MFM estándar de IBM.


Pues bienn, una vez que hayamos terminado, se nos presentará el nombre de la configuración. Para arrancarla hacemos doble clic en el nombre del equipo.

Esto dará inicio al proceso de arranque, tal cual la PC que inventamos. En este caso será un equipo con un clasico BIOS Award de finales de los 1997. Para que detecte el disco virtual era necesario configurarlo en la BIOS.
Durante el POST presionando repetidametne Del ingresaremos a la BIOS y configurar los parámetros tal como se hacía siempre. Ingresamos al apartado Standard CMOS Setup que se usa para configurar los parámetros de disco, hora y disqueteras.
En el caso del disco rígido, la controladora de disco XT-IDE (AT) permite autodetectar los parámetros del disco siempre y cuando el motherboard cuente también con la capacidad de hacerlo. Como la 430NV que hemos virtualizado dispone de tal facilidad, debemos poner los parámetros de discos primarios y secundarios en Auto ("Detección Automática"). Para ello usamos las flechas del cursor para movernos y las teclas AvPg o RePg para poner todo en Auto.


En el caso de las unidades de diskette A: y B: las indicamos con los parámetros que le elegimos al hardware virtual ya que las disketteras no se autodetectan.

Nota: en el caso de motherboards o controladores de discos anteriores a 1995 no era extraño tener que escoger a mano los discos contemplados, o bien especificar "a lo vikingo" el modo "user" e indicar los parámetros de cilindros, cabezas, sectores, y modo (normal, large o LBA). En el caso de este motherboard tambiñen contaremos con la función IDE HDD Auto Detection, una de las cosas.

 También podremos usar Esc para volver al menú principal y dirigirnos a BIOS Features Setup.

Allí podremos cambiar el orden de dispositivos de arranque usando AvPag o RePag.
Cuando hayamos configurado todo, volvemos al menú anterior de la BIOSy elegimos Save & EXIT.
La BIOS nos preguntará si estamos seguros de querer salir y guardar los cambios, a lo que decimos si presionando y.
Inmediatamente la "placa madre" arrancará. Debería detectar correctamente el "microprocesador" y contear la memoria instalada, a su vez que encontrar el disco IDE Master Primario, en este caso nomenclado como "PCemHD".
Rl disco virtual no tiene formato ni sistema operativo. A partir de ahora podremos arrancar la PC emulada ya sea desde el archivo img de un diskette de arranque de MS-DOS o de Windows, o bien podríamos introducir un CD-ROM de instalación en nuestra lectora de CD (o montarlo como un fichero .IMG como os he indicado).
 
Suponiendo el primer caso debemos utilizarse un diskette de arranque en formato .img de MS-DOS 6.22 en castellano que podrán encontrar aquí. Para colocar el diskette de arranque (el disco 1) en forma de archivo .img en el emulador PCem, hacemoc clic con botón derecho sobre su ventana, y aparecerá un menú contextual. Vamos a la opción Disc/Change drive A: y buscamos el fichero disk1.img.

Acto seguido reiniciamos el equipo virtual desde el menú System / Ctrl+Alt+Del. La máquina virtual se reseteará en caliente y booteará con el diskette arrancable virtualmente introducido en la diskettera A:.


Si usamos un disco de arranque de DOS se nos presentará el instalador, pero aún no tenemos el disco preparado. Salimos de la instalación y ejecutamos el comando a:fdisk. Para preparar la partición en formato FAT16 elegiremos "Crear una partición lógica" primero debemos elegir la opción c para "Compatibilidad con DOS". Luego creamos la partición con la opción "n" para "Nueva partición. Usaremos la opción "t" para cambiar el tipo de partición a la 6 (FAT16). Finalmente "w" para escribir los cambios" y salir al sistema. Para formatear el disco c: ingresamos format c: /s

 Nuevamente reiniciamos el equipo con el disquette 1 del sistema operativo (o bien, un CD-ROM de inicio) y lo instalamos.


Si el cursor del mouse quedó atrapado en la ventana del emulador y necesitamos poder utilizarlo fuera de su ventana en nuestro sistema Ubuntu, lo recuperamos con Ctrl+Fin.

Con esto podremos continuar cambiando los discos simplemente poniendo las imágenes IMG de diskettes no bien las necesitemos (por ejemplo, cuando lo solicite un instalador como el de un sistema operativo).
 Con esto podríamos instalar un sistema operativo en diskettes.


Montar una imagen .img

Los archivos de imagen IMG pueden montarse en Linux a través del Montador de Discos, pero si bien podremos leer dichos ficheros y hacer copias de su contenido en nuestro disco, normalmente no podremos grabar en ellos.

Desafortunadamente no se puede utilizar una carpeta compartida para utilizarla en PCem (lo cual facilitaría enormemente cargar programas en el disco virutal). Por tal motivo, en caso de querer agregarle contenido a una imagen a fin de innstalar software o cargarle otro tipo de contenido deberemos utilizar los archivos de imagen de unidades virtuales en forma de ficheros .img y montarlas en nuestro sistema de archivo. Para un buen resguardo técnico, es importante saber que es muy inconveniente hacer esto mientras PCem está en ejecución por lo que lo cerramos.

En el caso que les he descripto, como hemos creado una imagen con PCem, la buscaremos en ~/.pcem/hdd/. En nuestra terminal ingresaríamos:

cd ~/.pcem/hdd/

fdisk -l imagen.img

El programa fdisk nos listará las características del archivo img del disco virtual: el tamaño de cada sector, la cantidad de sectotres, y el sector de Comienzo "Comienzo". "Comienzo" informa en qué sector comienza el sistema de archivos, y depende de la imagen. Por ejemplo, si es una imagen de arranque de un sistema operativo.

Por ejemplo:


fdisk -l 2gb.img
Disco 2gb.img: 2 GiB, 2115993600 bytes, 4132800 sectores
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: dos
Identificador del disco: 0x00000000

Dispositivo Inicio Comienzo   Final Sectores Tamaño Id Tipo
2gb.img1    *            63 4120703  4120641     2G  6 FAT16


Si nuestro archivo de imagen tuviese múltiples particiones, se nos informarían con sus respectivos sectores de Comienzo. Tengamos presente que las llamadas particiones extendidas no son otra cosa que particiones lógicas estructuradas de una manera particular, que no podrán ser montadas. Sólo pueden montarse particiones a las cuales fdisk les identifica un Sistema de Archivos.

Pues bien señores, para montar esta partición tenemos que obtener el "Valor de Offset". El valor de Offset consiste en multiplicar el tamaño de sector por el comienzo del Dispositivo. En este ejemplo particular, la primer partición, el offset sería Tamaño de sector 512 x Comienzo 63 = 32256

Una vez identificado el Offset de 32256, ingresamos los comandos según la siguiente sintaxis:

sudo mkdir /media/usuario/directorio_de_montaje/

sudo mount  -o loop,offset=(valor de comienzoxtamaño de sector) archivo_de_imagen.img /media/usuario/directorio_de_montaje/

...en nuestro ejemplo sería:

sudo mkdir /media/usuario/discovirtual/
sudo mount -o loop,offset=32256 ~/.pcem/hdd/2gb.img /media/usuario/discovirtual/

Ya tendremos montado el disco virtual en el directorio /media/usuario/discovirutal. Acto seguido usando sudo para tener derechos de administrador, podremos proceder a copiar allí lo que querramos, mediante:

sudo cp -r directorio/ /media/usuario/discovirtual/


¡El valor de offset es esencial para montar la imagen correctamente!

Es importante saber que ejecutar PCem con un disco montado no funciona. Debemos montar el disco después de arrancar PCem. Si tuviésemos montado un disco previamente, debemos desmontarlo y salir de PCem antes de volver a montarlo.

Crear una imagen de disco rígido para MSDOS en Linux:

Lo primero es contar con un disco rígido con espacio libre para crear una partición específica para PCem.

Para ello ingresamos:

dd if=/dev/zero of=imagen_a_crear.img bs=1M count=MB_deseados

Debemos obtener las especificaciones de una unidad de disco rígido antigua. Podrán ejecutar PCem y revisar la bIOS para saber qué unidades de discos estaban soportadas en la computadora emulada. La mayoría de las BIOS tenían varios tipos de discos rígidos que aceptaban. Con tales datos nos será fácil crear una partición de disco empleando fdisk:

fdisk -C cilindros -H cabezas -S sectores nuestra_imagen.img

Finalmente formateamos la unidad virtual con el programa format de MS-DOS. Luego agregamos la imagen a PCem en Settings / BIOS.

miércoles, 6 de mayo de 2020

¿Cómo actualizo desde Ubuntu 18.04LTS a 20.04LTS hoy?

Ubuntu 20.04LTS "Focal Fossa) se lazó oficialmente el 23 de abril de 2020. Se trata de la última versión con Soporte a Largo Término (LTS) de Ubuntu, y cuenta con parches de seguridad y actualizaciones disponibles hasta 2025.

Naturalmente que si utilizamos una versión más antigua de Ubuntu, podríamos querer tirar un viejo por la ventana y estar interesados en realizar una Actualización Política y Doctrinaria para la toma del Poder y actualizar nuestro sistema.

Normalmente recomiendo instalar las versiones LTS de Ubuntu desde cero para lograr los mejores resultados, pero en ciertos casos podríamos querer actualizarlas sin tener que reinstalar el sistema de cero.

En este tutorial os indicaré cómo realizar el procedimiento de actualización desde Ubuntu 18.04LTS (Bionic Beaver), a la versión nueva 20.04LTS recién salida. Os explicaré varios métodos a través de los cuales podrán lograr esta delicada tarea de sistema con sapiencia Justicialista, incluyendo algunas ayudas avanzadas y trucos que podrían ayudarlo a personalziar aún más el procedimiento de actualización.

Antes de Actualizar…

Existen algunos predicamentos que debemos considerar antes de avanzar con esta actualización del Movimiento:
  • El procedimiento de actualización puede realizarse tanto usando el administrador de actualización gráfico de Ubuntu o desde la línea de comandos en la Terminal. El Administrador de actualización de Ubuntu comenzará presentándonos un imopertinente aviso de actualización a la versión 20.04, sólo una vez que se publique la primera versión corregida de 20.04 (ej, 20.04.1). Esto suele suceder normalmente transcurridos unos tres meses desde el lanzamiento oficial.
     
  • Conforme se haya habilitado esta funcionalidad, se nos presentará un aviso similar al siguiente:



Aún así podremos actualizar Ubuntu ahora, antes de que ello ocurra. Sin embargo, el proceso por el momento incluye usar la terminal, y por lo tanto algún nivel de conocimiento técnico y confianza. Si no están seguros en el uso de la terminal, podrían querer aguardar hasta finales de junio de 2020 hasta que se produzca el lanzamiento de la versión 20.04.1 y aparezca la propuesta del actualizador gráfico.
  • Si desea proceder con la actualización, podremos dar inicio al Asistente de Gráfico Actualización Guiada desde la terminal, o completar todo el proceso empleando la Terminal de Ubuntu. Os indicaré ambas opciones.
  • Un buen peronista se asegura siempre de respaldar sus datos. Normalmente la actualización es un procedimiento seguro, pero es un cambio serio y siempre hay posibilidad de que algo salga mal. Es crucial entonces resguardar nuestros archivos personales en un medio seguro y  adecuado, de modo de poder restaurarlas rápidamente si surge algún problema o complicación. Existen varias formas de hacer esto:
    • Ubuntu cuenta con su propia herramienta de respaldo, que puede activar.
    • Puede optar con copiar manualmente los archivos importantes a un dispositivo de almacenamiento diferente (un segundo disco rígido en la computadora, un disco rígido externo USB o pendrifve, o en otra computadora a través de una red, etc). Podrá copiar los archivos manualmente o bien utilizar una aplicación para respaldos y replicación de datos. Un ejemplo de herramientas cómodas y sencillas para este cometido son Timeshift o Grsync. Si desea utilizar la terminal puede recurrir a tar o rsync.



Interfaz de la herramienta de respaldos de Ubuntu.
  • Con muy poca experiencia y un disco rígido adicional podríamos jugar "la carta mas segura" y utilizar una aplicación de duplicación como CloneZilla para clonar nuestro sistema de archivos actual.
  • Si deseamos comprobar que el nuevo sistema funcionará correctamente bajo nuestro hardware, podremos descargar la imagen ISO de Ubuntu 20.04LTS, copiarla a una pendrive USB usando una aplicación de creación de pendrive arrancable como Ubootnetin, y luego iniciar su computadora en una sesión Live de Ubuntu 20.04LTS.
  • Asegúrese que su computadora tiene suficiente espacio de disco disponible. Para un mejor resultado, debería tener 25 GB de espacio libre para una instalación nueva de Ubuntu. En una actualización puede requerirse un poco menos de esto, pero la actualización tardará más tiempo.
  • El proceso de actualización puede llevar su tiempo. No podrá interrumpirlo o cancelarlo, de modo que si usa un dispositivo provisto de baterías (como una laptop o notebook), conéctela con su cargador a la red eléctrica.

Actualizar a 20.04 LTS – ussando el asistente gráfico

Como os he mencionado anteriormente, el Asistente de Actualización comenzará mostrando una notificación a los usuarios de Ubuntu aproximadamente unos tres meses después del lanzamiento oficial. Sin embargo es posible actualizar Ubuntu 18.04LTS sin tener que esperar. Esto implica actualizar un comando en la terminal, que luego lanzará el Asistente Gráfico de Actualización.

Si no está cómo con este camino, es mejor continuar ejecutando Ubuntu 18.04LTS hasta que esté disponible la actualización gráfica por medio del administrador de actualizaciones. La secuencia de acciones que os indicaré requieren familiaridad con el uso de la línea de comandos, de modo que es mejor dejar esto para personas que han operado con ella.

El comando para comenzar es do-release-upgrade, ejecutado con las opciones específicas. Para entender mejor qué sucederá, podremos revisar las opciones disponibles para do-release-update ejecutando el comando con el sufijo -h:

sudo do-release-upgrade -h

Y el sistema nos devolverá:
Uso: do-release-upgrade [octiones]

Opciones:
  -h, --help            Muestra este mensaje de ayuda y sale
  -V, --version         Mostrar la versión y salir
  -d, --devel-release   Si utiliza la última versión admitida, actualice a la
                        versión de desarrollo
  --data-dir=DATA_DIR   Directorio que contiene los archivos de datos
  -p, --proposed        Intente actualizar a la última versión usando el
                        actualizador de $distro-proposed
  -m MODE, --mode=MODE  Ejecutar en un modo especial de actualización.
                        Actualmente se permiten los modos «desktop» (para
                        actualizaciones normales de un sistema de escritorio)
                        y «server» (para servidores).
  -f FRONTEND, --frontend=FRONTEND
                        Ejecutar la interfaz especificada
  -c, --check-dist-upgrade-only
                        Comprueba únicamente si está disponible una nueva
                        versión de la distribución e informa del resultado
                        mediante un código de salida
  --allow-third-party   Try the upgrade with third party mirrors and
                        repositories enabled instead of commenting them out.
  -q, --quiet

 Las opciones importantes son:
  • -d: esta opción nos permite actualizar a la versión 20.04; normalmnete esta opción sería utilizada por desarrolladores quienes comprueban técnicamente Ubuntu. Nosotros la usaremos para adelantar la actualización. Si bien dice "desarrollo" ("development") no se preocupen, pues d ehecho estarán actualizando a la versión oficial y estable de Ubuntu, la 20.04LTS.
  • -f: esta opción lanzará el Asistente Gráfico de Actualización. Sin esta opción, la aplicación do-release-upgrade correría a través de la línea de comandos. El proceso es, sin embargo, idéntico.
Otra opción útil es -allow-third-party, en la que me extenderé en la sección "Opciones Avanzadas y Software de Terceros". Si su instalación actual de Ubuntu incluyese aplicaciones de fuentes diferentes a la de los repositorios de archivos estándares de Ubuntu, podríamos querer incluir esta opción para conservarlos y continuar así el uso de dichas aplicaciones de terceros.

Por lo tanto, para comenzar la actualización a Ubuntu 20.04LTS usando el actualizador gráfico, debemos abrir una Terminal con Ctrl+Alt+T y ejecutar en la Terminal el siguiente Comando: de Organización:

sudo do-release-upgrade -d -f DistUpgradeViewGtk3

...y si quisiéramos conservar las aplicaciones de terceros, usaríamos:

sudo do-release-upgrade -d -f -allow-thid-party DistUpgradeViewGtk3

Esto comenzará el proceso de instalación empleando una aplicación gráfica basada en Gtk3.



Puede ingnorar sin problemas el texto que afirma que es una versión de desarrollo. El indicador cambiará con la disponibilidad de lanzamiento de Ubuntu 20.04.1.
El Asistente nos realizará varias preguntas, a lo largo de varios pasos:



Primero nos solicitará que confirmemos la actualización.
El Asistente de Actualización nos notificará que la opción de bloqueo de pantalla se desactivará durante este proceso.
La aplicación descargará los ficheros de sistema y aplicaciones necesarias para realizar la actualización. Este proceso lleva su tiempo, de modo que hay que tener paciencia.
Podríamos recibir una o dos preguntas durante la actualización. Específicamente si deseamos retener las configuraciones existentes para ciertos archivos de sistema (como la configuración de zona horaria). Si no está seguro, puede proceder con la respuesta por defecto.

Luego de un tiempo, la actualización debería quedar completa, ¡y se debería encontrar logueado a su Escrutorio de Ubuntu 20.04LTS!




Opciones Avanzadas y Software de Terceros

Para la mayoría de los usuarios, los pasos descriptos arriba serán suficientes. Sin embargo,m podremos personalziar la instalación aún mas, lo cual es particularmente útil para aquellos que empleen software de terceros instalados desde canales de software diferentes a los repositorios de Ubuntu estándar. Por ejemplo, si tenemos instalado Google Chrome, Skype o software Virtualbox manualmente, las actualizaciones para dichas aplicaciones serán provistas a través de esos reposistorios de terceros.

Por defecto, el software que no es de los repositorios de Ubuntu será desactivado durante la actualización. Deberá activcarlos manualmente luego de completar la actualización de base.

Sin embargo alternativamente podremos instruir a la herramienta de actualización para permitir estos paquetes adicionales. Esto puede lograrse al ejecutar do-relase-upgrade con el sufijo -allow-third-party, como os mencioné anteriormente.

Opciones Alternativas para la actualización

Podríamos dar inicio al Asistente Guiado de Actualización Gráfico de varias maneras.

Al igual que la herramienta do-release-update, podremos ejecutar lo de arriba con el sufijo -d para recibir las versiones superiores a la 20.04.1 no bien estén disponibles más adelante

sudo update-manager -c
sudo update-manager -c -d

En la línea de comandos de la terminal, podría también ejecutar 
  /usr/lib/ubuntu-release-upgrader/check-new-release-gtk. Para ello ingresamos:

sudo /usr/lib/ubuntu-release-upgrader/check-new-release-gtk3

En general, podremos controlar qué actualizaciones de Ubuntu están disponibles, sin importar cuál de las herramientas empleemos para hacerlo. Esto podríamos realizarlo editando el fichero de configuración /etc/update-manager/release-upgrades:

 Aquí, podremos modificar la línea Prompt=XXXX, indicando:
  • never – nunca ofrecerá actualizaciones.
  • normal – ofrecerá las versiones soportadas que sucedan inmediatamente a la veersión que estamos utilizando actualmente.
  • lts – ofrecerá únicamente versiones LTS (con soporte a largo término).

Actualizar a 20.04 LTS desde la Terminal

El proceso de actualización desde la terminal es muy similar a la actualización con el asistente gráfico descripto anteriormente. La única diferencia es que no se ejecutará ninguna ventana gráfica, y en la terminal nos aparecerán las preguntas para que respondamos S/N (o Y/N).

Ingresamos el siguiente comando de organización:

sudo do-release-upgrade -d



La secuencia de pasos mostrada en la terminal es idéntica a la intetrfaz gráfica. El primer paso consiste en confirmar que deseamos continuar.
La imagen superior muestra la devolución del sistema durante el proceso de actualización.
Varios paquetes de sistemas se descargarán, descomprimirán y copiarán encima de las versiones anteriores, como parte del proceso de actualización.
El paso de limpieza removerá los paquetes que ya no son necesarios (o relevantes) en la versión nueva de Ubuntu. Esto también libera espacio en su disco.
Una vez completado, seremos logueados al escritorio de Ubuntu 20.04: