¿Qué significa exactamente la programación de Unix? [cerrado]


10

Pensé que entendía lo que significaba el término programación Unix , pero ahora, después de leerlo en un contexto de programación kernel / C, siento que necesito aclarar el significado de este término.

No me queda claro si significa:

  1. Programación de Shell,
  2. Herramientas de programación Unix,
  3. una forma / patrón particular de programación de herramientas de línea de comandos de Unix (por ejemplo, para estar de acuerdo con la forma de canalización de "programación de shell Unix"), o
  4. algo más.

2
Tendrás que dar un poco de contexto. ¿Dónde leíste esta expresión? Fuera de contexto, diría que significa programar para un sistema operativo Unix.
lgeorget

66
Esta pregunta parece estar fuera de tema porque se trata de inglés básico.
Gilles 'SO- deja de ser malvado'

1
@Gilles Oh, así que es un delimitador de ahora: P
goldilocks

@Igeorget, Taoup.
Pacerier

@goldilocks, ¿qué significa?
Pacerier

Respuestas:


14

La "programación de Unix" se refiere a la programación explícita para un entorno de Unix. Esto incluiría la programación de shells que se ajusten a un estándar relevante (como POSIX ). Sin embargo, también incluiría la programación en cualquier lenguaje mientras se hace uso explícito de las interfaces y recursos del sistema que están estandarizados de manera similar, suponiendo que estos sean específicos del mundo * nix.

Por ejemplo, la programación de red sin una biblioteca de terceros en C o C ++ no es portátil, porque ninguno de los estándares dice nada al respecto. Las redes en C / C ++ se implementan utilizando una interfaz dictada por el sistema operativo, y activada mientras que en los sistemas * nix-ish esto es más o menos universal, no puede portar ese código sin cambios a (por ejemplo) Windows, y viceversa. Por lo tanto, hacer cosas de red en C o C ++ significa usar una biblioteca portátil o apuntar a una plataforma, y ​​Unix es una posibilidad en el caso posterior, por lo tanto, eso es "programación de Unix" (y programación de C o C ++ y programación de red). 1

Sin embargo, la programación de redes en muchos lenguajes de nivel superior como perl o python o java es portátil; estos lenguajes generalmente se implementan en C, pero aunque los detalles de la implementación difieren de una plataforma a otra, la interfaz no. Por lo tanto, puede escribir código de red en perl que debería ejecutarse en cualquier sistema en el que se ejecute perl; en un sistema Unix, esto se traduce por la implementación del intérprete en las llamadas nativas apropiadas, y en un sistema Windows, se traducirá de manera diferente. Dado que su código perl real no es específico de otra cosa que no sea perl, no es programación unix. Es programación en red y programación perl, pero no programación unix.


1. Debido a la relación histórica íntima entre C y Unix, el hecho de que C ha sido el lenguaje más utilizado para escribir sistemas operativos en general, y la naturaleza de lo que es un "sistema operativo", hay muchas cosas en la categoría " Programación C específica del sistema operativo ": otro ejemplo cotidiano además de las redes es el material orientado al sistema de archivos, como los archivos de estadísticas y la lectura de directorios. Por lo tanto, hay varios libros de tipo "Programación Unix en C", porque la programación básica en C inevitablemente involucra muchos elementos específicos del sistema operativo. Este no es el caso con lenguajes más portátiles como perl o java; en este caso, el tema del libro probablemente será " Programación de sistemas en Perl", o más probablemente, simplemente "Programación con Perl".


1
Prof Goldilocks ataca de nuevo!
mikeserv

@goldilocks, dado que Linux ha matado a Unix, ¿quiere decir que casi nadie hace "programación en Unix" ahora?
Pacerier

1
Solaris y BSD están en uso generalizado (incluso si el consumidor promedio de PC no tiene idea de lo que son), y técnicamente OSX está oficialmente aprobado como compatible con UNIX (parece que el nombre ha vuelto a "macOS", así que tendré que en desacuerdo con su premisa.
gOLDILOCKS
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.