¿Hay alguna forma de crear hardware ‘suave’?

Respuesta corta: sí.

Regularmente uso emulaciones de software de hardware que es tan raro y costoso que nunca lo tendré, en forma de complementos VST dentro de mi software de producción musical. Busque Arturia y Native Instruments para ver solo dos excelentes ejemplos de compañías que están haciendo exactamente lo que usted menciona.

Algunos otros ejemplos: la corporación VMware, que permite a las empresas ejecutar múltiples servidores virtuales simultáneamente en un solo servidor físico. También hay una versión de escritorio que he usado con frecuencia para ejecutar sistemas operativos heredados, aunque no estoy seguro de hasta qué punto el hardware físico está “modelado”.

Hay una linda aplicación para iPhone que te permite emular el Commodore 64 original con BASIC.

Finalmente, la aplicación MAME modela consolas de videojuegos heredadas.

Sin embargo, mi primer ejemplo es el que más se acerca a las condiciones de su pregunta original. Estoy seguro de que te fascinará una vez que comiences a buscar en Google lo que están haciendo esas compañías.

Sí. Hay un programa llamado Logisim. En mi clase de programación de sistemas informáticos, diseñamos un procesador MIPS completo en Logisim desde literalmente solo puertas. Sin embargo, no diseñamos una computadora completa, ya que nos dieron un módulo RAM. Me imagino que no sería tan difícil de hacer, simplemente tedioso hacer todas esas conexiones a cada línea.

Puede escribir su programa en la RAM manualmente y luego simular todo el circuito. Inicializaría la PC y luego simplemente la dejaría rasgar.

Pero déjame decirte que esa mierda fue una pesadilla absoluta. El programa fue fácil de usar, pero ¿diseñó un procesador completo …? Mi compañero y yo pasamos varias noches enteras haciendo que esto funcionara, y al final todavía tenía errores. Será mejor que intentes hacer esto por una buena razón. Buena suerte.

Absolutamente.

Como mencionó Roy Leban, las máquinas virtuales han existido por mucho tiempo. Actualmente estoy escribiendo en una Mac. Por lo general, tengo algunas ventanas abiertas que ejecutan aplicaciones de Windows en una máquina virtual emulada de Windows, y a veces tengo varias distribuciones de Linux ejecutándose en otras máquinas virtuales. Dichas máquinas virtuales suelen emular el comportamiento del conjunto de instrucciones, no cómo funciona una máquina al nivel de puertas individuales.

Más allá de eso, es típico simular diseños electrónicos antes de construir hardware físico. Es prácticamente imposible (o tiene un costo prohibitivo) crear un prototipo de un chip de mil millones de puertas (digamos una CPU i7 de cuatro núcleos), sin primero probar y depurar una versión simulada. Al simular hardware, varias herramientas simularán no solo el comportamiento de la compuerta, sino también el comportamiento analógico (p. Ej., Propagación de señal en trazas de placa de circuito), consumo de energía, flujo de calor, etc.

Y luego hay varios tipos de dispositivos programables, desde ROM hasta matrices lógicas programables y varios tipos de microcontroladores, que combinan hardware y software (firmware). Una variedad de controladores industriales son básicamente simulaciones de lógica de relé, en software.

Se llama máquina virtual o VM. Las primeras máquinas virtuales se crearon en la década de 1960. Las máquinas virtuales generalmente simulan el procesador, no los transistores y las puertas dentro del procesador (este último solo es necesario cuando el objetivo es depurar hardware).

Hoy en día, hay una gran variedad de máquinas virtuales disponibles. Puede ejecutar Windows en una Mac, por ejemplo, con Parallels o vmware Fusion.

Si el objetivo es la emulación de software, hay muchas suites de simuladores de circuitos.

Simulador de circuito en línea y editor de esquemas – CircuitLab

Hay varios niveles de abstracción:

  • Circuitos electrónicos, esquemáticos. ESPECIA
  • Fichas, silicio integrado
  • Arquitectura, CPU, RAM, memoria, red.
  • Máquina virtual, SO virtual

Si la emulación de software es lenta, FPGA son pequeñas placas que pueden emular chips de hardware en tiempo real.

Por supuesto, esto ya se hace todo el tiempo, incluso en esta página que escribo en este momento.

Si realmente quisiera profundizar más, podría ir con programas como multisim, hay muchos softwares que emulan o simulan hardwares y hacen un gran trabajo al saber qué son y cómo funcionan es otra bola de cera. ¿Alguna vez has visto un módem suave? ¿O qué tal un VPS que has oído hablar de eso, qué hay de los emuladores de Android por ahí? ¡Es una locura la cantidad de hardware simulado que existe realmente!

Ya esta hecho.

Cree una computadora dentro de su computadora

Sí, esta es la definición misma de una máquina virtual.

Los programadores los utilizan para verificar la compatibilidad multiplataforma sin necesidad de comprar cada teléfono inteligente, computadora, dispositivo inteligente, etc.

No lo hagas

Si lo haces, serías el próximo Charles Babbage.

Seguro. Creo que eso es básicamente lo que hace qemu.