El tamaño de la grupa de un caballo hace dos milenios determinó el tamaño de los motores de los cohetes en la actualidad.
¿Te has preguntado alguna vez cómo cada una de nuestras decisiones determina el futuro? A veces no durante un año, decenas, cientos, miles de años. ¿Por qué no podemos hacer más grandes los motores de los cohetes? ¿Por qué un byte tiene exactamente 8 bits y no 7 o 16, o incluso 48? ¡Pero antes era igual a estos números! ¿Por qué la terminal virtual de Linux todavía tiene velocidad de puerto de conexión? Hablemos de cómo una decisión en el pasado determina nuestro presente y cómo podemos influir en nuestro futuro.
Transbordador espacial y ancho de grupa de caballos
Esta es una bicicleta bastante conocida que se ha extendido por Internet. ¿Por qué cree que el tamaño del vehículo de lanzamiento unido a los lados del tanque de combustible principal es tan pequeño? Estos son impulsores de cohetes sólidos (impulsores laterales del transbordador espacial MTKK (English Solid Rocket Booster, SRB)) , que se fabricaron en una planta en Utah. Desde el punto de vista de la ingeniería, sería mucho mejor hacer este motor un poco más grueso, pero tenían que ser transportados en tren desde la fábrica hasta el lugar de lanzamiento. Y el ferrocarril pasa por un túnel en las montañas.
En consecuencia, estos aceleradores tuvieron que pasar por este túnel. El túnel en sí es un poco más ancho que la vía del tren. El ancho de riel estándar de EE. UU. (Espacio entre rieles) es 4 pies 8 ½ pulgadas (1435 mm).
¿De dónde vino este número? Estados Unidos heredó este estándar de los primeros ferrocarriles de Inglaterra. Los ferrocarriles en Inglaterra se construyeron con los mismos estándares que los tranvías previos al ferrocarril, llamados tranvías para caballos, y también usaban un ancho de 4 pies 8 ½ "(1435 mm).
Se eligió tal distancia entre las ruedas del automóvil para que caigan en el surco en las carreteras inglesas, para que las ruedas se desgasten menos, y la distancia entre las pistas en Inglaterra sea exactamente de 4 pies y 8.5 pulgadas. Pero ¿por qué es esto así? ¿Por qué exactamente este número?
Inglaterra fue una vez parte del Imperio Romano, y dado que los primeros carros de guerra fueron fabricados por la Roma Imperial, todos tenían el mismo ancho entre las ruedas.
Seguimiento en el paso de peatones de la calzada romana en Pompeya.
Otro ejemplo de surco en una antigua calzada romana.
Se eligió este ancho porque coincidía con el tamaño de un carro de guerra romano de dos caballos.
Un ejemplo del tamaño de un carro romano.
Es sorprendente que el pináculo del progreso, la astronáutica incluso hoy en día, esté estrechamente relacionado con el tamaño de dos grandes grutas de caballos, como hace dos mil años.
Debe entenderse que en realidad se trata de una bicicleta . Aquí hay una buena desacreditación, recomiendo leerlo. Pero el tamaño del ancho de la plataforma del ferrocarril determina el ancho del carril. Y determina el tamaño máximo de carga que se puede transportar por ferrocarril.
Tamaño de byte y códigos ASCII
Hoy en día, mucha gente de la escuela todavía sabe cuál es el tamaño de un byte, y para nosotros esto es obvio: 8 bits. Pero, ¿alguna vez te has preguntado por qué se eligió este tamaño? ¿Con qué está conectado?
Probablemente se sorprenda, ¡pero un byte no siempre tiene un tamaño de ocho bits! ¡Anteriormente, un byte podía ser de 4 a 60 bits! Por ejemplo, las computadoras BESM usaban caracteres de 6 bits en palabras de máquina de 48 o 60 bits.
Pero, ¿por qué exactamente 8 bits? Una de las razones es el sistema de codificación binaria, ya que lo más conveniente para procesar son los números que son múltiplos de potencias de dos. Bueno, bueno, les digo, ¿por qué no 4, 16 o 32 entonces? Y tendrás razón.
También debe recordarse que en 1963 se adoptó el Código Estándar Americano para el Intercambio de Información, o ASCII para abreviar. Este estándar se desarrolló a partir del código telegráfico y su primer uso comercial fue como un código de teletipo de siete bits para enviar mensajes telegráficos. Originalmente basado en el alfabeto inglés, ASCII codifica 128 caracteres dados en enteros de siete bits. Se pueden imprimir noventa y cinco caracteres codificados: incluyen números del 0 al 9, letras minúsculas de la A a la Z, letras mayúsculas de la A a la Z y signos de puntuación. Además, la especificación ASCII original incluía 33 códigos de control no imprimibles que se generaron mediante teletipos; la mayoría de ellos ya están desactualizados, aunque algunos de ellos todavía se utilizan ampliamente,por ejemplo, retorno de carro, salto de línea y código de tabulación.
Tabla ASCII de siete bits del manual de la impresora antes de 1972.
Aquí se cruzan dos ramas a la vez, la historia del telégrafo, que influyó en el desarrollo de la industria informática. Hablaremos de esto en el próximo capítulo y, de hecho, de la representación misma del byte.
En la década de 1960, IBM, que también participó en la estandarización ASCII, introdujo un Código de intercambio decimal codificado en binario extendido (EBCDIC) de ocho bits para su línea de computadoras System / 360. Por favor, comprenda que EBCDIC y ASCII son diferentes. La importancia de la computadora IBM System / 360 llevó a la adopción generalizada del byte de ocho bits.
El desarrollo de microprocesadores de ocho bits en la década de 1970 popularizó este tamaño de memoria. Los microprocesadores como Intel 8008, un predecesor directo de los 8080 y 8086 utilizados en las primeras computadoras personales, también podían realizar una pequeña cantidad de operaciones con pares de bytes de cuatro bits.
Volvamos al estándar ASCII, que ahora usamos en un grado u otro todos los días, incluso este texto de alguna manera incluye este estándar.
El Código Estándar Estadounidense para el Intercambio de Información (ASCII) fue desarrollado bajo los auspicios del comité X3 de la Asociación Estadounidense de Estándares (ASA), su subcomité X3.2 (más tarde X3L2) y más tarde X3 de ese subcomité. 2.4 grupo de trabajo (ahora INCITS). ASA se convirtió en el Instituto de Normas de los Estados Unidos de América (USASI) y, finalmente, en el Instituto Nacional de Normas de los Estados Unidos (ANSI).
El Subcomité X3.2 desarrolló ASCII basado en sistemas de codificación de teletipo anteriores. Antes de que se desarrollara ASCII, las codificaciones utilizadas incluían 26 caracteres de letras, 10 números y de 11 a 25 caracteres gráficos especiales. Se requirieron más de 64 códigos ASCII para codificar todos estos datos, así como los caracteres de control que cumplen con los Estándares del Alfabeto Telegráfico Internacional (ITA2) de 1924. ITA2, a su vez, se basó en el código telegráfico de 5 bits que Emile Baudot inventó en 1870 y patentó en 1874.
¿Sientes esta conexión entre generaciones, que de una forma u otra, aún hoy usamos el legado del código telegráfico, que fue inventado hace 150 años?
El comité discutió la posibilidad de usar una función de desplazamiento (como en ITA2) que representaría más de 64 códigos en un código de seis bits. En un código desplazado, algunos códigos de caracteres determinan la elección entre opciones para los siguientes códigos de caracteres. Esto permite una codificación compacta, pero es menos confiable para la transmisión de datos, ya que un error en la transmisión del código de cambio generalmente hace ilegible una gran parte de la transmisión. El comité de estándares renunció a la transición y, por lo tanto, ASCII requería al menos un código de siete bits.
El comité consideró un código de ocho bits ya que ocho bits (octetos) permitirían que dos patrones de cuatro bits codificaran eficientemente dos dígitos usando un número decimal binario. Sin embargo, al transmitir todos los datos, se requieren ocho bits cuando siete son suficientes. El comité votó por usar un código de 7 bits para minimizar los costos de transferencia de datos. Dado que en ese momento la cinta perforada podía grabar ocho bits en una posición, el bit de paridad podría usarse para verificar errores si se desea.
Tabla ASCII moderna de 8 bits.
Por lo tanto, varios factores convergieron a la vez a favor de hacer que el byte tuviera un tamaño de 8 bits. Pero, en mi opinión, el principal es la capacidad de codificar y almacenar información de texto en el mínimo de un byte y la capacidad de almacenar dígitos decimales en cada nibble.
Dispositivo terminal Linux
En su sistema doméstico, abre una terminal virtual de Linux, que generalmente se ejecuta en una ventana y tiene una representación completamente virtual. Pero sigue siendo compatible con terminales antiguos.
Puede abrir una terminal e ingresar stty, luego puede encontrar que este programa tiene una velocidad de conexión, como el puerto COM. Y, en general, tiene un montón de configuraciones de termios para el puerto COM.
Ya me detuve con suficiente detalle en mis artículos sobre el trabajo del puerto COM en el artículo " UART y con qué se come " y allí se decía lo siguiente:
UART (Universal asynchronous receiver/transmitter) , -, ( ) — . UART RS-232 ( – COM-, ). , , . .
, , ( ). . , ASCII, . 60- 8- ASCII, , .
1971 , , PDP Western Digital UART WD1402A. 80- National Semiconductor 8520. 90- , . , , .
Tenga en cuenta que un antiguo telégrafo vuelve a hacer funcionar la consola Linux. ¿Y por qué? Todo es lo suficientemente simple como para que para E / S solían usar lo que tenían a mano, es decir, teletipos, que le permitían ingresar texto desde el teclado y enviarlo escribiendo en papel.
Teletipo, que se conecta a través de UART y se puede utilizar para introducir y enviar información.
Como resultado, la E / S en Linux es el control real del TTY. Incluso los estándares de terminales más modernos son compatibles con este tipo de teleimpresora. Además, puedo decirle con confianza que si conecta este teletipo a una computadora moderna y configura la salida del terminal a un puerto COM físico, funcionará sin alteraciones de software (se necesitará hardware, ya que hay estándares de voltaje ligeramente diferentes, pero insignificantes).
Se pueden encontrar más detalles sobre cómo trabajar con el puerto COM y configurar el dispositivo de archivo de terminal en mi artículo " Trabajar con el puerto COM en C en Linux " y / o ver mis videos al final del artículo.
conclusiones
Tenía ganas de dar muchos más ejemplos, referencias al pasado. Por ejemplo, sobre la distribución del teclado, que es de los días desgreñados de las máquinas de escribir, o referencias a la forma de los teléfonos móviles modernos. Sin embargo, el artículo ya se ha convertido en una hoja loca y aún así logré expresar la idea.
El diseño QWERTY, inventado en 1888 para máquinas de escribir, todavía se usa hoy.
La idea de mi artículo es bastante simple: incluso las cosas más pequeñas que implementes hoy pueden tener el mayor impacto en nuestro futuro.