¿Cómo se programa el hardware de la computadora? ¿Qué lenguaje de programación utilizas si lo hay?

La programación de computadoras es la aplicación de habilidades analíticas, lógicas y creativas para resolver un problema técnico. Ese problema puede ser cómo equilibrar su chequera, o cómo reproducir un video en su dispositivo móvil, o cómo controlar un cajero automático.

Una vez que haya resuelto el problema, expresará su solución en código de computadora. Esto requiere un lenguaje de programación. La elección del idioma depende de muchos, muchos factores. Todos tienen su preferencia o favorito.

Mi lenguaje de programación favorito es Smalltalk: Smalltalk arruinó mi vida.

Mi lenguaje de programación menos favorito es JavaScript: JavaScript mató a mi perro.

También me gusta el lenguaje Python y Go. En el transcurso de mi carrera en TI, he usado muchos lenguajes diferentes, como FORTRAN, C, C #, Objective-C y Java. Tengo un punto débil para C porque ha sido mi idioma principal durante casi 15 años y ha pagado todas mis facturas (lo que me permitió retirarme en 2000 a la edad de 46 años).

Esa es una gran pregunta, me estoy graduando en ingeniería informática y la respuesta es nebulosa para mí, depende del hardware en realidad, pero tengo dos respuestas:

1: las memorias, los procesadores, los discos son hardware y funcionan de manera muy diferente: los procesadores, por ejemplo, no están programados explícitamente, son una mezcla de componentes eléctricos que, cuando se colocan juntos, tienen algunos resultados lógicos (por ejemplo, AND, OR, XOR) impulsos electricos. Puede alinear dichos componentes para hacer un circuito eléctrico que “sume” impulsos (1 Y 1 -> 2), y luego puede tener un procesador de computadora muy simple (el juego Minecraft le permite hacer circuitos como ese), alinear muchos circuitos y otro hardware y tienes un procesador real.

2 – Pero bueno, ¡evolucionamos bien! Imagina hacer esos circuitos a mano. Hoy en día tenemos “lenguajes de programación” que se compilan (transforman) en estos circuitos lógicos, un lenguaje que aprendí que la gente usa para hacer eso se llama VHDL. Después de programar un circuito lógico con ese lenguaje, puede probarlo en placas ALTERA y probablemente enviar el código y el boceto a algún tipo de impresora de circuitos, pero mi conocimiento no se extiende a esa parte.

Ahora las memorias, el disco, etc., son todos diferentes, una memoria puede ser un circuito que atrapa un estado eléctrico, lo que representaría un bit, representa 16 Giga * 8 de esos circuitos y tiene la RAM de su computadora.

Un disco puede ser algo así como un disco vinil (pistas mecánicas), algo así como un dvd (pistas grabadas) o un SSD (algo así como una memoria)

Espero haberte dado algo de luz. Es complicado, y dado que esto se resolvió más en la década de 1940-80, creo que la gente no tiende a enseñarlo tanto en los cursos de pregrado.

Me sigo preguntando cómo las nuevas empresas crean nuevos tableros como tartas de frambuesa, controladores de juegos, reproductores de DVD, qué tipo de tecnología utilizan, eso no es algo que se aprende a nivel universitario. Tal vez esos son específicos de una compañía a otra.

Es curioso, estamos tan avanzados en tecnología y, como personas, en su mayoría no tenemos idea de cómo se están construyendo las cosas a nuestro alrededor.

Gracias por A2A.

Me apartaré del enfoque basado en PC de otras respuestas porque en la mayoría de estos casos, estaría escribiendo código dentro del sistema operativo.

Si está buscando más en los elementos de nivel de hardware como PIC, PICAXE, Arduino, Propeller, etc., lo más probable es que escriba su código en una variación de C (o incluso BASIC) que incluirá ciertos comandos para hacer llamadas de hardware específicas.

Si bien se crean muchos elementos novedosos en torno a estos pequeños procesadores dedicados, son realmente buenos para aplicaciones industriales, como la conducción directa de equipos CNC y muchas otras tareas “mundanas” donde, a menudo, el control electrónico no es completamente necesario (por ejemplo, lavadoras, uWave hornos, etc.).

Al escribir código dentro de un sistema operativo como Windows, todo el trabajo de hardware se ha realizado por usted.

Si quisieras entrar en Linux, entonces sí, estarías mirando el control de hardware nuevamente, y la respuesta que ya se dio cubre adecuadamente esto.

Cuando dice hardware de computadora, seamos claros en dos tipos de hardware que se utilizan en cualquier computadora.

  1. Hardware similar a CPU o chips autónomos que no necesitan ser controlados ( en su mayor parte ) por ningún otro chip o pieza de hardware en la computadora. Éstos incluyen:
  1. GPU
  2. CPUs
  3. Chips CMOS (para BIOS)
  4. IC de control específicos de la aplicación, como cosas para Ethernet, HDMI, mouse / trackpad, teclado, USB, etc.
  • Hardware de tipo periférico, o chips / dispositivos que dependen de las Unidades de procesamiento para decirles qué hacer. Incluso:
    1. Monitores
    2. Ratones
    3. Teclados (los interruptores eléctricos)
    4. todos los LED
    5. la unidad de CD, etc.

    Para responder a su pregunta, estas cosas se pueden programar en una multitud de idiomas

    • El chip CMOS probablemente esté programado en algo básico, como secuencias lógicas booleanas frente a código real
    • Los circuitos integrados de control periférico se programan muchas veces en un entorno C / C ++, ya que es popular entre las MCU de nivel inferior. A veces se pueden controlar en Javascript o Python dependiendo de quién los creó.
    • Las GPU están preprogramadas antes de enviarse, por lo que no es probable que pueda cambiarlas de todos modos a menos que sea un fabricante. Si quieres saber, nuevamente es C / C ++. Al menos eso es para las GPU NVIDIA
    • Las CPU son probablemente la variable más grande. Si está utilizando un procesador ARM (no sé por qué, pero a veces están incluidos), espere C / C ++, pero también Python y, a veces, Assembly. El procesamiento también se utiliza.
    • Personalmente, no conozco los lenguajes de programación de los principales chips Intel y AMD, pero creo que ensamblar o una variante C.

    ¡Feliz de responder tu pregunta!

    Los dos idiomas principales utilizados en el diseño de hardware donde trabajo son VHDL y Verilog. Verilog parece haber engendrado un descendiente, System Verilog, que está ganando terreno.

    C / C ++ o alguna variante o ramificación del mismo.

    More Interesting

    ¿Cómo funciona el mecanismo de escala informática?

    Cómo combinar ingeniería informática y escritura

    Cómo prepararse para una entrevista IIM dentro de los 3 días (antecedentes en Ingeniería Informática)

    ¿Cuál es la principal diferencia entre un título en informática y ciencias de la computación y matemáticas?

    ¿Debo cambiar mi especialidad de Ingeniería en Computación a Ciencias de la Computación y Matemática Aplicada si quiero ingresar a la IA?

    ¿Puedes convertirte en ingeniero de software con un título en ingeniería informática?

    ¿Vale la pena aprender programación funcional para ingenieros informáticos?

    ¿Cuáles son las diferentes cosas relacionadas con la informática / ingeniería que puedo aprender durante las vacaciones de verano?

    ¿Cómo es el Dr. BR Ambedkar Institute of Technology en Bangalore para CSE, especialmente en términos de ubicaciones?

    ¿Cuál es el mejor podcast técnico para programadores?

    ¿La informática de 128 bits se convertirá alguna vez en la corriente principal?

    ¿Puede un programador experto en lenguaje ensamblador realizar los trabajos realizados por otros lenguajes de programación?

    ¿Cuáles son los exámenes (como GATE, CAT, etc.) que un estudiante graduado de CS puede tomar por varias razones en su último año?

    ¿Cuánta carga de trabajo más tengo si quiero duplicar la especialización en EE y CS que la especialización solo en Ingeniería de Computadores?

    ¿Cuál es el mejor sitio de resolución de problemas para desarrollar habilidades de programación múltiples y críticas y conceptos de resolución de problemas?