O que significa exatamente a programação do Unix? [fechadas]

10

Eu entendi o que o termo programação Unix significava, mas agora, depois de ler sobre isso em um contexto de programação do kernel / C, eu sinto que preciso esclarecer o significado desse termo.

Não está claro para mim se isso significa:

  1. Programação da shell
  2. Ferramentas de programação Unix,
  3. um modo / padrão particular de programação de ferramentas de linha de comando Unix (por exemplo, para concordar com o modo pipeline de "programação de shell Unix"), ou
  4. outra coisa.
por Brandt 31.07.2014 / 17:58

1 resposta

14

"Programação Unix" refere-se à programação explicitamente para um ambiente unix. Isso incluiria a programação de shells que estejam em conformidade com um padrão relevante (como POSIX ). No entanto, também incluiria a programação em qualquer idioma, ao mesmo tempo em que faz uso explícito de interfaces de sistema e recursos que são padronizados de forma semelhante, presumindo que sejam específicos do mundo * nix.

Por exemplo, a programação de rede sem uma biblioteca de terceiros em C ou C ++ não é portátil, porque nenhum padrão diz nada sobre isso. O funcionamento em rede em C / C ++ é implementado utilizando uma interface ditada pelo sistema operativo e, enquanto em sistemas * nix-ish isto é mais ou menos universal, não pode portar esse código inalterado para (por exemplo) Windows e vice-versa. Portanto, fazer coisas de rede em C ou C ++ significa usar uma biblioteca portátil, ou direcionar uma plataforma, e o Unix é uma possibilidade no último caso, portanto, é "programação unix" (e programação C ou C ++ e programação de rede). sup> 1

No entanto, a programação em rede em muitas linguagens de nível superior, como perl ou python, ou java é portátil; Essas linguagens são geralmente implementadas em C, mas enquanto os detalhes da implementação diferem de plataforma para plataforma, a interface não. Portanto, você pode escrever código de rede no perl que deve ser executado em qualquer sistema no qual o perl é executado; em um sistema Unix, isso é traduzido pela implementação do interpretador nas chamadas nativas apropriadas e, em um sistema Windows, ele será traduzido de forma diferente. Como o seu código perl real não é específico para nada além de perl, não é programação unix. É programação de rede e programação perl, mas não programação unix.

1. Por causa do íntimo relacionamento histórico entre C e Unix, o fato de C ter sido a linguagem mais usada para escrever sistemas operacionais em geral, e a natureza do que é um "sistema operacional", há muitas coisas na categoria Programação C "- outro exemplo cotidiano, além da rede, é o material orientado ao sistema de arquivos, como a criação de arquivos e a leitura de diretórios. Portanto, existem vários livros do tipo "Unix Programming in C", porque a programação básica em C envolve inevitavelmente muitos elementos específicos do SO. Este não é o caso de linguagens mais portáveis, como perl ou java; neste caso, o assunto do livro provavelmente será " Sistemas programando em Perl", ou mais provavelmente, simplesmente "Programação com Perl".

    
por 31.07.2014 / 18:15