stringtranslate.com

Programación de sistemas

La programación de sistemas , o programación de sistemas , es la actividad de programar [1] software de sistemas informáticos . La principal característica distintiva de la programación de sistemas en comparación con la programación de aplicaciones es que la programación de aplicaciones tiene como objetivo producir software que proporcione servicios al usuario directamente (por ejemplo, procesador de textos ), mientras que la programación de sistemas tiene como objetivo producir software y plataformas de software que proporcionen servicios a otro software. tienen un rendimiento limitado, o ambos (por ejemplo , sistemas operativos , aplicaciones de ciencia computacional , motores de juegos , automatización industrial y aplicaciones de software como servicio ). [1]

La programación de sistemas requiere un alto grado de conocimiento del hardware. Su objetivo es lograr un uso eficiente de los recursos disponibles, ya sea porque el software en sí es crítico para el rendimiento o porque incluso pequeñas mejoras de eficiencia se transforman directamente en importantes ahorros de tiempo o dinero.

Descripción general

Los siguientes atributos caracterizan la programación de sistemas:

La programación de sistemas es lo suficientemente diferente de la programación de aplicaciones que los programadores tienden a especializarse en una u otra. [ cita necesaria ]

En la programación de sistemas, a menudo se dispone de facilidades de programación limitadas. El uso de la recolección automática de basura no es común y, a veces, la depuración es difícil de realizar. La biblioteca en tiempo de ejecución , si está disponible, suele ser mucho menos potente y realiza menos comprobaciones de errores. Debido a esas limitaciones, a menudo se utilizan el monitoreo y el registro ; Los sistemas operativos pueden tener subsistemas de registro extremadamente elaborados.

La implementación de ciertas partes en sistemas operativos y redes requiere programación de sistemas, por ejemplo, implementar paginación ( memoria virtual ) o un controlador de dispositivo para un sistema operativo.

Historia

Originalmente, los programadores de sistemas escribían invariablemente en lenguaje ensamblador . Los experimentos con soporte de hardware en lenguajes de alto nivel a finales de la década de 1960 llevaron a lenguajes como PL/S , BLISS , BCPL y ALGOL extendido para los grandes sistemas de Burroughs . Forth también tiene aplicaciones como lenguaje de sistemas. En la década de 1970, C se generalizó, ayudado por el crecimiento de Unix . Más recientemente, un subconjunto de C++ llamado Embedded C++ ha tenido algún uso, por ejemplo, se usa en los controladores del kit de E/S de macOS . [2] En 2015 salió Rust , un lenguaje de programación de propósito general que se utiliza a menudo en la programación de sistemas. Rust fue diseñado teniendo en cuenta la seguridad de la memoria y para tener el mismo rendimiento que C y C++.

Significado alternativo

Por razones históricas, algunas organizaciones utilizan el término programador de sistemas para describir una función laboral que sería más exactamente denominada administrador de sistemas . Esto es particularmente cierto en organizaciones cuyos recursos informáticos han estado históricamente dominados por mainframes , aunque el término incluso se utiliza para describir funciones laborales que no involucran mainframes. Este uso surgió porque la administración de los mainframes de IBM a menudo implicaba la escritura de código ensamblador personalizado ( lenguaje ensamblador básico (BAL) de IBM), que se integraba con el sistema operativo como OS/MVS , DOS/VSE o VM/CMS . De hecho, algunos productos de software de IBM contaron con contribuciones sustanciales de código por parte del personal de programación del cliente. Este tipo de programación es cada vez menos común y se realiza cada vez más en C en lugar de en ensamblador, pero el término programador de sistemas todavía se utiliza como el título de trabajo de facto para el personal que administra mainframes IBM, incluso en los casos en los que no participan regularmente en la programación de sistemas. actividades.

Ver también

Referencias

  1. ^ ab "Panel: Programación de sistemas en 2014 y más allá". Microsoft . Consultado el 4 de diciembre de 2015 .
  2. ^ Apple Inc (14 de agosto de 2009). "Pautas de diseño del controlador de dispositivo del kit de E/S". desarrollador.apple.com . Apple Inc . Consultado el 16 de septiembre de 2014 .

Otras lecturas