El revolucionario CPU Intel 80386
(xtof.info)- El Intel 80386 fue mucho más que el primer CPU de 32 bits de x86: también ofreció memoria plana de 4 GiB junto con compatibilidad con el x86 existente, sentando la base de los sistemas operativos modernos para PC
- Al principio, Intel daba más prioridad a otras arquitecturas como iAPX 432 y P7, pero por el crecimiento del mercado de PC y la compatibilidad de software x86, terminó poniendo como máxima prioridad completar el 386
- Con el 386, Intel no permitió la producción como second source por parte de IBM y AMD, y se convirtió en el único proveedor; además, la Compaq Deskpro 386 sacudió la corriente de estándares de PC centrada en IBM
- El rendimiento no superaba de forma aplastante al de los chips RISC de la época, pero la MMU incluida en todos los modelos 386 y el modo Virtual 8086 se volvieron claves para la transición hacia UNIX, OS/2, Windows, NT y Linux
- A medida que las PC basadas en 386 se produjeron en masa, la MMU se extendió incluso a las PC para usuarios comunes, y la popularización de Windows y el nacimiento de Linux también quedaron fuertemente ligados a la difusión del 386
El x86 de 32 bits que Intel no quería
- El Intel 80386 fue el primer CPU de 32 bits de la familia x86, pero no formaba parte del plan principal inicial de Intel
- A fines de los años 70, el proyecto más importante de Intel era el iAPX 432, pensado como el diseño principal de la compañía para los años 80
- El iAPX 432 era un CPU ambicioso que buscaba ofrecer en hardware programación orientada a objetos y asignación de almacenamiento, adaptado a lenguajes de alto nivel como ADA
- Como parecía que el diseño tardaría mucho en madurar, Intel inició el 8086 en 1976 como un diseño temporal
- La familia 8086 consiguió el contrato del IBM PC, y aunque el iAPX 432 apareció tarde en 1981, su rendimiento fue decepcionante
- En benchmarks, rendía apenas cerca de una cuarta parte de la velocidad de un 80286 mucho más barato a la misma frecuencia
- Incluso en 1982, Intel todavía no reconocía del todo la importancia de la plataforma PC y de la compatibilidad binaria del software, y el 80286 también era casi otro CPU temporal
- Después de reconocer el fracaso de la familia 432, los ingenieros de Intel empezaron a preparar una nueva arquitectura RISC de 32 bits llamada P7
Se define la dirección de diseño del 80386
- Bob Childs, uno de los diseñadores del 286, organizó de manera informal ideas para una extensión de 32 bits del 286
- Unos seis meses después, Intel concluyó que hacía falta otra iteración de la familia x86 antes de que P7 estuviera listo, y aprobó el desarrollo del 386
- El equipo inicial era pequeño y el presupuesto también era limitado
- Al investigar lo que pedían los clientes de x86, encontraron un descontento generalizado con el esquema de memoria segmentada del 8086, y quedó la sensación de que el 80286 tampoco había logrado eliminar ese problema
- A medida que UNIX ganaba importancia en estaciones de trabajo más baratas, el equipo del 386 apuntó a crear un CPU adecuado para UNIX
- El requisito más importante era el direccionamiento de memoria plana
- Para mantener la compatibilidad con el x86 existente, el 386 también conservó la estructura de segmentos
- Como cada segmento pasó a poder llegar hasta 4 GiB, la presencia práctica de los segmentos se redujo enormemente
- También en esta etapa se decidió incorporar paginación y memoria virtual
- Se amplió a 32 bits el conjunto de instrucciones y los registros existentes para mantener la compatibilidad binaria
- No se eligió el enfoque de poner un conjunto de instrucciones completamente distinto detrás de un “mode header” separado
- En cambio, no fue posible aumentar la escasa cantidad de registros, una de las debilidades históricas de x86
- En algún momento también se evaluó usar un nuevo bus para P7, pero se descartó porque era demasiado distinto del bus del 286 y habría obligado a rediseñar motherboard y chips de soporte
- Se eligió un enfoque menos ambicioso: extender el bus existente a 32 bits
- Hacia 1984, con el crecimiento del mercado de PC, Intel entendió la importancia de la familia x86, y completar el 80386 se convirtió en la máxima prioridad
- El proyecto P7 continuó después como el i960 en 1988, pero su objetivo pasó al mercado embebido para evitar canibalizar las ventas del 386
La estrategia de Intel como único proveedor del 386
- El 80386 fue anunciado en octubre de 1985
- En ese momento, era común que empresas diseñadoras de chips como Intel otorgaran licencias para que otras compañías también fabricaran el CPU como second source
- Así, los clientes podían evitar la escasez de CPU aunque el proveedor principal tuviera problemas de rendimiento de producción
- Intel y AMD mantenían una larga relación de cooperación desde la época del 8085, y se licenciaban productos mutuamente
- IBM también tenía desde 1983 una licencia para fabricar directamente el 808x y el 80286
- Con el 80386, esa práctica cambió
- Intel consideró importante convertirse en proveedor único para controlar directamente el CPU, la pieza más valiosa dentro de la PC
- IBM estaba más interesada en invertir fuertemente en el 286 que en el futuro 386
- El acuerdo entre Intel e IBM se renegoció para satisfacer a IBM respecto al 286, pero IBM no podía fabricar el 386
- AMD tampoco tenía gran interés en producir el 386, y el acuerdo de second source con AMD no se extendió al 386
- Casi al mismo tiempo, en el caso NEC contra Intel, se dictaminó que el microcódigo podía estar protegido por copyright y no podía copiarse sin una licencia específica de Intel
- Aunque NEC hubiera podido hacer ingeniería inversa del microcódigo del 8086, el 386 era considerado prácticamente imposible de replicar por su complejidad
- A partir de esta tendencia, Intel quedó en posición de controlar junto con Microsoft el futuro del mercado de PC
La Compaq Deskpro 386 y la victoria de las PC clónicas
- El IBM PC usó componentes ya existentes para llegar rápido al mercado, y como resultado otras compañías también podían comprar las mismas piezas y fabricar compatibles
- La empresa clónica más exitosa y ambiciosa fue Compaq
- En ese momento, Compaq fue la compañía que más rápido alcanzó 100 millones de dólares en ingresos
- Compaq anunció la Deskpro 386 en septiembre de 1986, casi un año después de que Intel lanzara el 80386
- La Deskpro 386 fue la primera computadora 386
- También fue la primera PC que no siguió la línea con la que IBM intentaba recuperar el control del mercado usando la PC/AT basada en 286
- Bill Gates dijo que IBM no confiaba en el 386, y que Microsoft animó a Compaq a construir una máquina 386
- Este hecho marcó un punto de inflexión al mostrar que no solo IBM podía definir estándares, sino que compañías como Compaq e Intel también podían hacer cosas nuevas
- La Compaq Deskpro 386 fue muy cara al principio, pero sus ventas fueron razonables y mostró que IBM ya no estaba al frente
- IBM tardó casi otro año en lanzar su primera computadora 386, la PS/2 model 80
- La línea PS/2 intentó recuperar el control introduciendo un bus propietario muy avanzado para la época
- Sin embargo, IBM ya no estaba en posición de imponer su forma de hacer las cosas, y la línea PS/2 no logró esa misión
El entorno competitivo y el rendimiento del 386
- En 1985, el principal competidor de la familia x86 de Intel era la familia 680x0 de Motorola
- Muchas personas consideraban que el 68000 era un chip muy superior al 8086, y que el 80286 había desperdiciado la oportunidad de evolucionar hacia una arquitectura más limpia
- El 68020 era la evolución natural a 32 bits del CPU de Motorola
- Con el 80386, Intel tuvo por primera vez un competidor serio
- Gracias a la MMU integrada y al espacio de direcciones plano de 4 GiB, también podía apuntar al rentable mercado de estaciones de trabajo
- En el mercado de estaciones de trabajo, muchas empresas estaban adoptando diseños RISC
- RISC resultaba atractivo porque podía fabricarse más rápido y más barato
- El 386 era un diseño CISC que dependía de un microcódigo pesado para manejar el complejo conjunto de instrucciones x86 y los modos de direccionamiento del 80286
- En benchmarks, el 386 mostró un rendimiento promedio
- El Intel 80386 a 16 MHz alcanzaba 4 MIPS, y a 25 MHz, 6 MIPS
- El Motorola 68030 a 25 MHz también alcanzaba 6 MIPS
- El Mips R2000 a 16 MHz llegaba a 16 MIPS, el Motorola 88000 a 16 MHz a 17 MIPS, y el Intel i960CA a 33 MHz a 66 MIPS
- Aunque el rendimiento no era revolucionario, sí tenía las funciones necesarias para competir
El 386SX y la expansión del software de 32 bits
- Después de comprometerse por completo con el 386, Intel introdujo el 386SX en 1988
- El 386SX era internamente idéntico al 386 original, y el 386 original pasó a llamarse 386DX
- El bus de datos externo era de 16 bits
- Se ofrecía en un encapsulado plástico más barato
- Podía instalarse en motherboards económicas de 16 bits
- El objetivo principal del 386SX era reemplazar al 286 en rangos de precio similares
- El 286 todavía tenía proveedores second source
- A comienzos de los años 90, la base instalada del 386 ya era lo bastante grande como para que más empresas de software pudieran aprovechar funciones de 32 bits y capacidades modernas
- Fue decisivo que todos los modelos 386, incluidos los económicos, incorporaran una MMU integrada
Cómo la MMU cambió la gestión de memoria
- MMU significa Memory Management Unit, un hardware que traduce automáticamente direcciones virtuales en direcciones físicas
- Los primeros programas podían ver todo el espacio de direcciones de la máquina
- Cuando ese espacio era pequeño, era manejable, pero al ejecutarse varios programas al mismo tiempo y dejar de ser posible que el sistema operativo permaneciera en ROM, el problema del aislamiento creció
- Una de las primeras soluciones fue la segmentación
- El registro de segmento actúa como dirección base
- Cuando un programa accede a una dirección, se suma un valor de 16 bits del registro de segmento para producir la dirección física
- Si se supera el límite de tamaño del segmento, se produce un fault, lo que permite aislar programas entre sí
- El 8086 usaba este esquema segmentado para los accesos a memoria
- El 80286 tenía una MMU segmentada más compleja y rica en funciones, capaz de soportar una gestión de memoria más avanzada y acceder hasta a 16 MiB de memoria
- OS/2 1.x aprovechó esta MMU para ofrecer una experiencia más moderna
- Para los programadores de PC, la memoria segmentada era muy restrictiva y difícil de manejar
- Un diseño de MMU más moderno se centra en la paginación
- La MMU divide el espacio de direcciones virtual en páginas de tamaño fijo
- Al acceder a una página, lee un descriptor de página para obtener la información de traducción a dirección física
- Como los descriptores de página normalmente están en memoria, se usa una caché TLB con descriptores accedidos recientemente para mejorar el rendimiento
- Muchos sistemas operativos modernos, en especial los ports de UNIX, encajaban mejor con la paginación
- Algunas estaciones de trabajo basadas en 68000 usaban su propia MMU externa con paginación en lugar de la MC68451
- Motorola introdujo la 68851 como MMU externa para el 68020
La estructura de la MMU del 80386 y sus diferencias
- El 386 debía ser apto para sistemas operativos modernos y, al mismo tiempo, compatible con el 8086, el 80286 y el software x86 existente
- Para lograrlo, la MMU del 386 estaba compuesta casi como dos dispositivos separados
- Uno para el modo segmentado
- Otro para el modo de paginación
- Ambos dispositivos funcionaban en cadena
- La dirección lógica pasa primero por la unidad de segmentación para calcular una dirección lineal
- Si la paginación está desactivada, esa dirección lineal se convierte directamente en la dirección física
- Si la paginación está activada, se obtienen descriptores de página desde la TLB o desde memoria para generar la dirección física real
- La unidad de segmentación no puede desactivarse, pero puede usarse como memoria plana representando todo el espacio con segmentos de 4 GiB que empiezan en la dirección 0
- La unidad de paginación divide los segmentos en páginas de 4 KiB
- El 80386 introdujo cuatro niveles de privilegio, llamados rings
- Se usan para proteger memoria privilegiada frente a lecturas y escrituras sin privilegios
- Fueron uno de los elementos básicos en los que se apoyaron los sistemas operativos modernos con protección
- La MMU también participa en el modo Virtual 8086
- Los programas 8086 se ejecutan como si controlaran un 8086 completo con hasta 1 MiB de memoria
- Pueden funcionar varias máquinas virtuales V86 al mismo tiempo
- Operaciones como acceder a recursos protegidos generan interrupciones que son manejadas por software privilegiado
- La MMU del 386 fue diseñada como una parte integrada y ordenada del CPU
- En condiciones ideales, no afectaba el rendimiento del acceso a memoria
- La MC68851 siempre agregaba al menos un ciclo de demora
- En la familia 68000, la MMU no siempre estaba presente
- El 68020 requería una MMU externa
- Las versiones EC de bajo costo del 68030 y 68040 no tenían MMU integrada
- En el 80386, todos los modelos, incluso el 386SX económico, incluían MMU
- Los programas que aprovechaban la MMU y los modos avanzados podían ejecutarse en cualquier 386
La transición de sistemas operativos que abrió el 386
- El verdadero impacto del 386 no estuvo en el rendimiento bruto, sino en hacer posibles los sistemas operativos modernos en PC
-
Xenix
- Xenix fue uno de los primeros ports de UNIX para microcomputadoras, surgido de la colaboración entre Microsoft y SCO
- En 1980 se anunció un port para 8086, pero al no tener una MMU real, no era posible la protección de memoria ni la separación entre espacio de usuario y espacio de kernel
- La versión para 286 aprovechó el modo protegido y se acercó más al UNIX de estaciones de trabajo
- El port para 386 en 1987 redujo la brecha usando paginación y se convirtió en el primer sistema operativo moderno de 32 bits que corría sobre x86
-
OS/2
- OS/2 fue inicialmente un desarrollo conjunto de Microsoft e IBM, del que luego Microsoft se retiró para concentrarse en Windows
- Salió en 1987, pero sus primeras versiones apuntaban al 286
- Esto se debía a que gran parte de la línea IBM PS/2 usaba 286
- Aprovechaba bien el modo protegido y era considerado un sistema operativo avanzado para la época
- OS/2 se volvió un sistema operativo de 32 bits a partir de la versión 2.0 de 1992
- Hasta entonces, por el esquema de memoria segmentada y la ausencia del modo Virtual 8086, su soporte para aplicaciones DOS era deficiente y quedaba detrás de Windows/386
- OS/2 2.0 fue el primer sistema operativo de 32 bits ampliamente usado en computadoras personales
-
Windows
- Windows ofreció desde Windows/386 de 1987 un entorno operativo dedicado al 80386
- Windows/386 seguía siendo un sistema operativo de 16 bits y no exponía un espacio de memoria plana de 32 bits
- En cambio, usaba funciones del 386 para virtualizar sesiones DOS en modo Virtual 8086
- Varias sesiones DOS podían ejecutarse en paralelo sin interferir entre sí
- Esto fue importante para muchas empresas que dependían del software DOS
- Gracias a la MMU, también se ofrecía memoria expandida mediante drivers en modo protegido que emulaban EMS
- Esta línea mejoró en Windows 3.0 y Windows 3.1, y Windows 3.1 tuvo un gran éxito
- Windows for Workgroups 3.11 de 1993 dejó de dar soporte a CPUs inferiores al 386, y el acceso a archivos y muchos drivers pasaron a ser de 32 bits
- Windows 95 aprovechó de lleno la MMU del 386
- Exponía un espacio de memoria plana
- Usaba paginación y memoria virtual
- Parte del código seguía siendo de 16 bits, pero DOS quedó reducido casi al papel de bootloader
-
Windows NT
- El primer Windows NT se lanzó en julio de 1993
- A diferencia de Windows 95, que evolucionó desde Windows 3.11 manteniendo parte del código heredado de 16 bits, NT fue desarrollado desde cero con el objetivo de ser un Windows “puro” de 32 bits
- Una de sus características principales era la independencia de hardware, pero su port más importante era el del 80386
- Usaba de lleno paginación, supervisor mode y protección de memoria
- NT compartía casi la misma API que Windows 95, por lo que podía ejecutar muchas aplicaciones Win32
- NT4 empezó a impactar el mercado de UNIX para estaciones de trabajo a mediados de los años 90
- Windows 11 es un descendiente directo del kernel NT
-
Linux
- El sistema operativo más estrechamente ligado al 386 es Linux
- Linus Torvalds compró una nueva PC 386 alrededor de enero de 1991
- Aunque Linus, como purista informático formado con el 68008, no apreciaba las PC, dijo que con la llegada del 386 las PC empezaron a parecerle atractivas
- El 386 podía hacer lo que hacía el 68020
- En 1990, se había vuelto mucho más barato gracias a la producción en masa y a la llegada de clones económicos
- Esa PC 386 era ideal para ejecutar Minix, un pequeño clon de UNIX pensado para enseñar internals de sistemas operativos
- Como Linus no estaba satisfecho con el emulador de terminal de Minix, empezó a escribir uno él mismo
- Tener una buena terminal era importante para conectarse a las computadoras de la universidad
- Lo escribió bare metal para aprender el hardware del 386
- Implementó entrada por teclado y salida en pantalla
- Al diseñarlo alrededor de dos hilos independientes, escribió un pequeño task switcher
- Para descargar programas necesitaba un driver de disco donde guardarlos, y al ir sumando funciones una por una fue tomando forma el sistema operativo que terminaría conociéndose como Linux
- A mediados de 1991, Linus pidió una copia de la especificación POSIX y el 25 de agosto de 1991 anunció en el grupo de noticias comp.os.minix que estaba trabajando en un nuevo sistema operativo
- En ese momento lo describió como “just a hobby, won’t be big and professional like gnu”
El impacto de largo plazo del 80386
- El 80386 es considerado el CPU más importante de la familia x86
- Técnicamente, el 80386 era un buen chip, pero en rendimiento no fue revolucionario y quedaba por detrás de los chips RISC contemporáneos
- La clave estuvo en su MMU moderna y rápida, junto con varios modos de operación
- Permitía acceder a 4 GiB de memoria plana
- Mantenía compatibilidad con el software x86 existente
- Hacía posible que Windows se modernizara de forma gradual
- La capacidad de manejo de memoria del 386 fue lo suficientemente buena como para que los CPUs posteriores se hicieran más potentes, pero casi no añadieran grandes cambios en esta área durante casi 20 años
- Linux mainline recién abandonó el soporte para i386 en 2013
- También en lo comercial, la importancia del 386 fue enorme
- Al principio Intel no creía en la demanda por x86 de 32 bits, pero terminó entendiendo que x86 era el futuro
- Ese cambio envió al mercado la señal de que x86 seguiría vigente
- La adopción del 386 por parte de los principales fabricantes de clones desplazó a IBM y mostró que existía una alternativa abierta y confiable
- Intel se convirtió en el único proveedor del CPU x86 más poderoso, dando un paso clave hacia su dominio del mercado de CPUs
- A medida que las máquinas basadas en 386 se produjeron en masa, sus precios bajaron rápido y el acceso a la MMU se masificó
- Windows introdujo la computación moderna a millones de personas
- El kernel NT demostró que un sistema operativo robusto podía ejecutarse incluso en PCs baratas “beige”
- Linux quedó tan fuertemente ligado al 386 que casi puede decirse que no habría existido sin él
1 comentarios
Opiniones de Hacker News
Creo que el diseño final del 80386 le debe mucho al Motorola 68000 y al posterior m68020.
Si Motorola no hubiera sacado un CPU de 32 bits de verdad y sin concesiones, es posible que Intel hubiera lanzado otro parche temporal después del 80286. El 80286 en sí tampoco estaba pensado como un sucesor adecuado del 8086/8088.
Incluso el 80386 real tenía muchas concesiones. No tenía nada de caché salvo una cola de prelectura de instrucciones de 16 bytes, mientras que el m68020 tenía una caché de instrucciones de 256 bytes. Tampoco tenía instrucciones atómicas, y como
LOCKno servía de mucho para eso, hoy muchos OS soportan el 80486 pero no el 80386. Por la compatibilidad con el 8086 se necesitaban el modo real o VM86, así que pasó bastante tiempo antes de que el software aprovechara las nuevas funciones del 80386.Aun así, fue un chip importante y también mostró señales tempranas de patrones que luego se volverían familiares en Intel: intentos de crear otros mercados sin competir con x86 o sacrificando x86 (iAPX 432, y 20 años después Itanic), funciones añadidas de prisa como las del 80286 y que después hubo que arrastrar para siempre como soporte legado, y ponerse al día tarde cuando otros ya tenían la función que todos querían (soporte plano de 32 bits en aquel entonces, soporte de 64 bits 20 años después).
En ese momento Intel estaba en una crisis enorme, y toda la empresa dependía de que este chip saliera excelente.
Podría haber descarrilado fácilmente como Data General, Honeywell, CDC, AST, Tandy, Olivetti, Xerox, DEC Rainbow, AT&T Hobbit, Wang 2200 o Unisys. Hay un fuerte sesgo de supervivencia en esto. La mayoría de los gigantes de antaño, como SDS, SDC y Fairchild, hoy están casi olvidados.
La historia de Intel, originalmente, se parecía más a la de un fabricante de memoria. Incluso ahora podría decirse que está en una posición complicada parecida. Su participación en móviles y electrónica de consumo es prácticamente 0%, y hasta en sus bastiones principales restantes NVIDIA, AMD y ARM están avanzando como si saquearan el castillo. Espero que también esta vez logren salir adelante.
“El éxito de una empresa contiene las semillas de su propia destrucción. El éxito engendra complacencia, y la complacencia engendra fracaso. Solo los paranoicos sobreviven”.
La dirección de Intel en la década de 2010 no le prestó suficiente atención a esa frase.
DEC debió haber empaquetado el LSI-11 como máquina de consumo. Ya tenía todo el software, y además era de muy alto nivel. Yo tenía una H-11 y era una máquina excelente.
Que la Switch todavía use chipsets Tegra de alrededor de 2015 probablemente se deba a que ni siquiera una empresa tan grande como Nintendo pudo presionar a NVIDIA para sacar un diseño nuevo. ARM no fabrica CPU de servidor que el público pueda comprar ampliamente, y los productos que existen se los llevan todos los proveedores de nube. Fuera de la Mac, tampoco hay CPU ARM de escritorio o laptop que valgan la pena. Qualcomm arruinó ese mercado durante años.
Mientras ARM no ofrezca una solución capaz de competir con Rosetta, y Qualcomm no abandone esa mentalidad de “si apenas corre, se lanza”, que quizá funcione con fabricantes de smartphones pero no encaja en el mercado de PC/escritorio, se ve difícil que ARM sea adoptado en ese mercado.
Al final, la única amenaza que le queda a Intel es AMD, pero AMD no tiene suficiente capacidad de fabricación en fabs como para amenazar de verdad el foso de Intel. Esto puede ser, o no, muy frustrante para el estado de la competencia en la computación de propósito general.
Me gustaría que se dejara de superponerle al 386 esa interpretación posterior de “32 bits planos”. Ese no era claramente el objetivo; más bien estaba cerca de adoptar funciones importantes de arquitectura basada en capacidades, que en ese momento se veían como el futuro
Es el contexto previo a que ideas como Unix/C/RISC/el modelo de supervisor único desplazaran, en áreas como la seguridad, las investigaciones de los 30 años anteriores sobre SO de mainframes y minicomputadoras
Lo que este artículo no deja del todo claro es que los registros de segmento pasaron a ser básicamente índices selectores de una tabla con campos de dirección base + longitud (en páginas o bytes) y control de permisos de ejecución. Y esos selectores y GDT/LDT/IDT/TSS/puertas de llamada/puertas de tarea, etc., estaban todos diseñados para soportar una jerarquía de 4 niveles de privilegio, por ejemplo usuario/biblioteca/controlador/kernel
Al pasar selectores de acceso de un lado a otro, también se podían imponer cosas como límites de tamaño en las estructuras de datos, y para eso se agregaron FS/GS, de modo que cada registro de propósito general pudiera tener su propia máscara de permisos
Si lo piensas un momento, un puntero (capacidad, es decir, selector) podía tener no solo una dirección base, sino también límites impuestos por hardware, y el modelo de permisos podía hacer que funciones como
strcpy()no pudieran escribir en memoria que no fuera el búfer de destino o su propio espacio de trabajo. El lenguaje y el SO podían impedir que una función llamada escribiera en la pila de quien la llamó, o incluso obligarla a ejecutarse en una pila completamente separada. Y eso era solo el comienzoCasi 40 años después, la industria todavía está tratando de recuperarse del error de diseñar SO y lenguajes de programación alrededor de un modelo de memoria plana y un modelo simple de privilegios usuario/supervisor. El 386 ofrecía soporte de hardware para escribir funciones de SO que aún hoy no son comunes. Basta ver CHERI, por ejemplo
https://forums.grsecurity.net/viewtopic.php?f=7&t=3046
https://pax.grsecurity.net/docs/PaXTeam-H2HC12-PaX-kernel-se...
Quiero destacar lo importante que fue el 386SX. Mi padre quería una PC para mí y le pidió a un amigo que armara un clon de 286, pero ese amigo nos dio un 386SX en su lugar
Dijo: “cuesta casi lo mismo que un 286, pero lo que están recibiendo ahora es definitivamente una CPU de 32 bits”, y tenía razón. Con eso pude correr Win 3.11. Una CPU de 32 bits que se podía comprar al precio de un 286, bastante accesible: fue un producto genial
También estaría bien darle algo de crédito al 286 aquí. El 286 era un chip bastante subestimado porque tenía un rendimiento de instrucciones por ciclo mucho mejor que la generación anterior, y eso se convirtió en una de las principales desventajas del 386
Al ejecutar código existente de 16 bits, el rendimiento de instrucciones por ciclo del 386 era básicamente igual al del 286, y sus frecuencias iniciales de 12 MHz eran bastante poco emocionantes. Hasta que las frecuencias empezaron a subir en serio y la gente comenzó a usar las funciones de 32 bits, no significaba mucho más que un competidor DOS/286 caro
Poco después de que saliera el 386, siendo adolescente compré mi primera computadora. En ese momento había PCs 286 y 386 en el mercado, pero el 386 tenía un sobreprecio importante
En ese entonces no entendía bien la diferencia, así que compré un sistema 286, y en pocos años, cuando entendí la diferencia, me arrepentí mucho de no haber ahorrado más para comprar un 386. Poco después empecé a escribir ensamblador de bajo nivel, como bootstrap de sistema para SO de juguete, pero no podía usar el modo protegido de 32 bits. Además, en algún momento empezaron a salir juegos exclusivos para 386, así que me sentí bastante excluido hasta que compré mi primer 486
Intel llevó la línea x86 más allá del 386 hasta el Pentium Pro y amd64; me pregunto por qué Motorola no hizo lo mismo con 68k
He visto discusiones que tratan casi como premisa que 68k se volvió anticuado y debía ser reemplazado por PowerPC, pero me parece una conjetura. No he visto argumentos técnicos, y 68k parece una arquitectura más limpia de llevar hacia adelante que x86 después del 286
Intel también intentó al menos dos veces pasarse al i860 o a Itanic, pero fracasó. Así que mejorar x86 terminó siendo la opción ganadora
https://news.ycombinator.com/item?id=37796469
Fue un intento de crear un bus basado en estándares que funcionara entre varios fabricantes y también encajara con CPUs 88k. No fue un éxito enorme, pero sí tuvo cierto éxito
La expresión “el más importante” suena como si tuviera algo de interpretación posterior. Si el 8086/8088 no se hubiera popularizado por accidente a través de la IBM PC, probablemente no habría existido el 80386, ni siquiera el 80286
Aun así, el 386 fue un logro de ingeniería que cambió el mundo. Creo que, en una línea temporal más justa y equitativa, el 68030 habría dominado el mundo, pero no se puede menospreciar lo que Intel logró
El 386 fue el primero de esa familia en soportar memoria virtual con paginación bajo demanda, y eso abrió enormemente lo que un SO podía hacer. Personalmente, creo que esa fue la función más importante que ofreció el 386
Mi segunda PC fue un 386 que corría SCO UNIX. Mi primera PC fue una Heathkit H-8 basada en 8080 que corría CP/M
Me sorprende la parte donde Bob Childs fue uno de los diseñadores del 286 y, de manera informal, estuvo ideando durante unos seis meses la idea de una extensión de 32 bits para el 286.
¿Cómo es posible algo así? En 30 años de trabajo, nunca tuve un empleo donde no hubiera alguien presionándome cada pocos días para entregar algún resultado visible.