Discussão:Unix/Arquivo/1

O conteúdo da página não é suportado noutras línguas.
Origem: Wikipédia, a enciclopédia livre.

Diagrama de níveis[editar código-fonte]

Na verdade é bastante comum de se encontrar esse diagrama em livros sobre Unix e Linux. A diferença as vezes ocorre nos níveis que eles abordam: alguns livros trazem os níveis hardware, kernel, shell; outros trazem os níveis kernel, shell, usuário; e também existem alguns que trazem os níveis kernel, shell, utilitários.
Eu particularmente não vejo problemas no fato de o shell encontrar-se acima do kernel no diagrama. Acontece que o hardware é controlado pelo kernel e por isso encontra-se abaixo dele. Já o shell se aproveita dos recursos do kernel e por isso vem acima deste. O diagrama mostra o nível de proximidade com o usuário. O hardware é o mais distante; o kernel controla o hardware pois sem ele o computador seria inútil; e o shell fornece a interface entre o kernel e o usuário para que este possa se aproveitar dor recursos daquele.
Se ainda assim achar estranho, sinta-se avontade para modificar o tópico.

Petrosmalk - 08:46, 22 Março 2007

Um diagrama em camadas correto deve incluir, entre o kernel e as aplicações (e o shell é uma aplicação), o conjunto de bibliotecas de procedimentos C (libc). E o shell deve estar no mesmo nível, p.ex., do servidor X. Angeloshimabuko 12:58, 22 Março 2007 (UTC)
Concordo plenamente. Luís Felipe Braga Msg 13:53, 22 Março 2007 (UTC)
Na verdade o diagrama serve apenas para ilustrar a diferença entre o kernel e o shell. Demonstra que o kernel controla o hardware enquanto o shell se aproveita dos recursos do kernel. Não vejo necessidade de se preocupar com estes detalhes até porque o diagrama não tem a intenção de ser completo.

Alterei a parte que fala sobre os utilitários e troquei a imagem do diagrama. Petrosmalk - 11:28, 22 Março 2007



Tendo em vista o desentendimento entre eu e os demais editores deste artigo no que diz repeito à estrutura do Unix, pois ainda não me conformei com a inclusão das Bibliotecas C dentro dos programas de sistema, eu proponho a seguinte organização do tópico:

Estrutura

Um sistema Unix consiste, basicamente, de três partes:

  • Conjunto de Bibliotecas C
  • Programas de sistema - são aplicações, que executam em espaços de memória não privilegiados, e que fazem a interface entre o usuário e o kernel. Consistem, principalmente de:
  • shell
  • Ambiente gráfico
  • Outras Aplicações
Caso não concordem, podemos usar a atual organização separando em tópicos diferentes os diversos programas do sistema para que possamos detalhar cada um deles:

Estrutura

Um sistema Unix consiste, basicamente, de duas partes:

  • Programas de sistema - são aplicações, que executam em espaços de memória não privilegiados, e que fazem a interface entre o usuário e o kernel. Consistem, principalmente de:
  • Conjunto de Bibliotecas C
  • shell
  • Ambiente gráfico
  • Outras Aplicações
Também proponho a inclusão do presente diagrama. O que acham dele? Petrosmalk Msg 16:50, 30 Março 2007 (UTC)

Acima eu disse que concordava com um novo diagrama mas não dei muita importância para a questão da libc. Eu também acho estranho esse arranjo, pois a libc é uma interface para o Kernel e não uma camada acima do mesmo. No máximo ela é parte de uma camada de serviços de Kernel como colocado neste artigo sobre o kernel do Linux [1]. Luís Felipe Braga Msg 18:16, 30 Março 2007 (UTC)

E se não houvesse a libc entre o kernel e as outras aplicações? Petrosmalk Msg 21:05, 30 Março 2007 (UTC)
Citando Bach (v. Referências): "The system call and library interface represent the border between user programs and the kernel ... Assembly language programs may invoke systems calls directly without a system call library, howerver". Portanto, um diagrama correto, com poucos detalhes, deveria mostrar a conexão entre o kernel e os programas de usuário por meios das bibliotecas C, mas existindo uma ligação direta para programas escritos em linguagem montadora. O livro traz uma figura excelente, mas além de não poder copiá-la, sou péssimo para desenhar. Estou tentando fazer um diagrama, com base nessa figura e em outra de um livro sobre o FreeBSD. E eu concordo com o Luís a respeito da posição dessas bibliotecas - as bibliotecas e os programas executam no espaço do usuário, enquanto o kernel e as chamadas de sistema executam no espaço do kernel. Angeloshimabuko 22:44, 30 Março 2007 (UTC).
Tudo bem. Mas border é diferente de layer que é o que o desenho em discussão sugere. Na minha opinião, a omissão da libc não é algo tão grave no contexto de uma enciclopédia leiga. Isso poderia ser esclarecido no texto da imagem. Luís Felipe Braga Msg 00:01, 31 Março 2007 (UTC)
Concordo, até porque, como também consta do texto citado, a libc não é uma camada no sentido estrito, pois existem programas que comunicam-se "diretamente" com o kernel. O que eu já disse anteriormente é que a "camada" de software entre o kernel e o usuário comum consiste de um conjunto de programas e bibliotecas: libc, shell, programas de sistema (fdisk, fsck, utilitários de rede ...), servidor X, gerenciadores de janela, GTK+, Qt, etc. Como nenhum desses softwares é estritamente necessário para todos os outros, não faz sentido colocar uma hierarquia rígida entre eles. Eu, pessoalmente, prefiro um diagrama de blocos, com o hardware em baixo, o kernel logo acima, um bloco (talvez dividido em sub-blocos) entre o kernel e o último bloco, este para os programas comuns dos usuários (editores, navegadores, etc.). Angeloshimabuko 21:08, 31 Março 2007 (UTC).
Acho que, enquanto não encontramos um diagrama ideal, poderíamos usar este diagrama excluindo a camada das bibliotecas C. O diagrama seria composto do kernel ao centro e o shell, servidor X e as demais aplicações ao seu redor. O que acham? Petrosmalk Msg 01:34, 2 Abril 2007 (UTC) o comentário precedente não foi assinado por 200.181.93.48 (discussão • contrib.) Luís Felipe Braga Msg 04:11, 2 Abril 2007 (UTC)
Eu concordo. Angeloshimabuko 10:35, 2 Abril 2007 (UTC).
Eu também. Luís Felipe Braga Msg 13:07, 2 Abril 2007 (UTC)
Sobrescrevi a imagem do diagrama e a incluí no artigo. Deixo o comentário da imagem por conta de vocês. Também separei os diversos programas de sistema em tópicos diferentes para que possamos detalhar cada um deles. O que acharam? Petrosmalk Msg 17:06, 2 Abril 2007 (UTC)

Últimas alterações[editar código-fonte]

Na minha opinião, as últimas alterações (melhor seria falar em exclusões) feitas no artigo reduziram significativamente a sua qualidade. Achei absolutamente desnecessárias, sem fundamento, desmotivadas (já que se quer colocaram o assunto em discussão) as exclusões feitas no tópido que fala sobre MULTI-USUÁRIOS e das imagens anexas. A divisão estrutural do Unix em Kernel e Programas do sistema é ao meu ver no mínimo muito inferior a que havia antes. Não vejo problema algum na inclusão do conjunto de bibliotecas C dentro da estrutura do Unix mas estas são programas? Bibliotecas são programas? São executáveis? Por que se forem, eu desisto de contribuir para este artigo e o deixo inteiramente em vossas mãos. Petrosmalk 14:10, 26 Março 2007 (UTC)

Eu também acho que qualquer alteração importante deve ser colocada em discussão. Mas lembre-se, foi você que começou . Acho melhor discutir cada ponto e tentar fechar um consenso. Este artigo é importante demais e deveria ter uma qualidade muito maior que tem hoje. Vou abrir um tópico sobre a questão Luís Felipe Braga Msg 14:20, 26 Março 2007 (UTC)

Só excluí conteúdo por mim mesmo redigido e foi em função das críticas que colocaram na discussão. Foi única e exclusivamente na intenção de agradar aqueles que criticaram e discutiram o artigo. Ainda assim você me fala que fui eu que comecei? Eu excluí conteúdo do artigo? Aponte-me qual. Petrosmalk Msg 15:57, 26 Março 2007 (UTC) o comentário precedente não foi assinado por 200.193.225.131 (discussão • contrib.) Luís Felipe Braga Msg 17:21, 26 Março 2007 (UTC)

Respondi na sua página de usuário. Luís Felipe Braga Msg 17:21, 26 Março 2007 (UTC)

Desculpem pela forma como efetuei as alterações. Concordo que deveria ter discutido o assunto primeiro. Minha única, e reconheço, frágil justificativa, é que eu incluí algumas dessas alterações no bojo de outras - eu comecei convertendo as referências a UNIX para Unix, e, lendo o texto, acabei me empolgando e alterando algumas coisas que deveriam ter sido discutidas primeiro. A única alteração que já havia sido discutida foi sobre a estrutura. E pareceu-me que o Petrosmalk tinha concordado em mudanças, além de considerar uma questão menor. Angeloshimabuko 02:41, 27 Março 2007 (UTC).

Sistema multi-usuário[editar código-fonte]

Acho que a característica de sistema multi-usuário é importante e deveria ser tratada neste artigo. Nós temos alguma coisa que se perdeu no histórico (após a última edição, principalmente) e que deveria ser discutida. Aproveito para pedir a todos os editores que discutam aqui antes de qualquer grande alteração. Luís Felipe Braga Msg 14:20, 26 Março 2007 (UTC)

Em relação à forma como procedi as alterações sobre o texto referente ao Unix ser multiusuário, reconheci minha falta acima. Quanto ao conteúdo, quero explicar (defender) os pontos a seguir. (i) Apenas retirei uma imagem, referente ao Linux - este é um texto sobre Unix - a outra imagem está(va) com algum problema (v. alterações anteriores) e não fui eu que retirei. (ii) A primeira grande alteração no texto refere-se à parte que trata de referência a quantidades - "30 ou mais pessoas|usuários" é uma expressão citada duas vezes, de forma arbitrária - a quantidade de usuários não caracteriza o recurso multiusuário; na verdade um grande nũmero de processos de usuários relaciona-se à capacidade de multitarefa e não exige multiprocessamento - já trabalhei com um sistema Unix com mais de 20 terminais conectados a um computador com um único processador 486; finalmente a referência a 60000 processadores está fora do contexto, pois também não tem a ver com multiusuários, mas com a flexibilidade de sistemas Unix-like - neste caso, a capacidade de trabalhar com diversos níveis de acoplamento e comunicação inter-processos. (iii) Parte do texto retirado/modificado refere-se a prioridades em processos, relacionando com arquivos e filas de impressão o que não faz sentido. (iv) A última parte retirada é apenas um exemplo, o qual pode ser utilizado com outros sistemas operacionais, incluindo o Windows (NT, 2000 ou 2003), que não é derivado do Unix (apesar de ser parcialmente compatível com Posix). Angeloshimabuko 02:41, 27 Março 2007 (UTC).
De acordo. Petrosmalk Msg 22:10, 29 Março 2007 (UTC)
Achei boa a última edição do tópico multiusuário Petrosmalk Msg 00:20, 1 Abril 2007 (UTC)

Futuro do artigo Unix[editar código-fonte]

O Unix, junto com Linux, C e C++, é um dos assuntos que mais me interessam no ramo da computação. Eu realmente gostaria de ver este artigo enriquecido com diversos tópicos que se relacionem com o tema Unix. É claro que tal enriquecimento do artigo seria inviável sem que haja uma colaboração mútua de todos os interessados no assunto. Alguns na Wikipédia acreditam que uma enciclopédia não pode adentrar demais em um assunto, acreditam que enciclopédias não possuem a pretensão de abordar com a mesma qualidade que bons livros específicos tratam de um assunto. Bem, quando eu era criança sonhava em ter uma Barsa na estante. Meus pais nunca me deram. O argumento deles é de que enciclopédias não ensinam com a qualidade devida. No lugar de um enciclopédia, me deram bons livros. São livros e não enciclopédias que formam cientistas, engenheiros, médicos, advogados etc. Já imaginou se todo bacharelando estudasse em uma Barsa? Se formariam com o mais baixo nível de conhecimento.

Eu acredito que a Wikipédia possa ser diferente. Acredito que aqui seja um ambiente adequado para o surgimento de artigos com verdadeiro valor acadêmico. No entanto a maioria dos membros da wikipédia não concordam com este ponto de vista, julgam que certas coisas não são adequadas para uma enciclopédia ou não possuem valor enciclopédico, em certos casos até com razão. (O que diabos aquele artigo sobre a marca de xampu Seda faz na Wikipédia? Parece até uso de uma enciclopédia para fazer propaganda). Ao meu ver a Wikipédia possui sim espaço para um artigo muito mais abrangente e enriquecido sobre o Unix, embora não precise ser algo como o Guia Foca GNU Linux (que realmente é um livro de conteúdo acadêmico), por exemplo. Gostaria de saber a opinião de todos aqueles que vem contribuindo ou querem começar a contribuir com o artigo Unix. A questão é:

O que falta no artigo Unix? Quais são os pontos importantes que este artigo deveria abordar? Com que profundidade o artigo deve abordar os diversos temas relacionados a Unix? Este artigo deve ou não ser mais profundo?

Por favor, respondam dentro deste tópico indentando as respostas para uma melhor legibilidade da discussão. petrosmalk Msg. 01:52, 27 Março 2007 (UTC)

Acho que podemos continuar aqui, sem criarmos novos tópicos, indentando as respostas. Quanto ao que falta, acho que o seguinte: (i) melhorar a parte histórica (a disputa sobre propriedade entre a AT&T e Berkeley, p.ex.); (ii) um melhor tratamento das estruturas do kernel (gerenciamento de memória, principalmente a inclusão da paginação sob demanda, a partir do BSD; algoritmos de agendamento de processo e substituição de páginas; VFS; journaling de sistemas de arquivos, atributos estendidos, criptografia); (iii) segurança; (iv) falta explicitar um dos paradigmas do Unix, que é a utilização de ferramentas pequenas para tarefas específicas, combinando essas ferramentas para tarefas complexas (KISS); (v) uma figura que mostre a herança do Unix, como a que está na Wiki anglófona. A profundidade poderia ser de nível intermediário - colocar conceitos e definições - evitando-se (como orienta a política) opiniões. Angeloshimabuko 03:01, 27 Março 2007 (UTC).
Por onde começamos? Alegre Luís Felipe Braga Msg 03:48, 27 Março 2007 (UTC)
Estou trabalhando no tópico "estrutura"; além da parte de processos (não terminei ainda), pretendo escrever sobre o gerenciamento de memória e sistema de arquivos, incluindo algo sobre VFS. Tentarei colocar, ainda, um diagrama sobre os níveis do Unix (hardware -> kernel -> programas de sistema -> programas de usuário). Angeloshimabuko 13:41, 27 Março 2007 (UTC).
Vocês parecem estar empolgados! Ótimo. Eu sugiro que comecemos pela parte histórica para depois adentrarmos nas diversas peculiaridades do Unix. Apesar da parte histórica já estar boa, eu acho que pode ficar ainda melhor. O que acham? Recuperei o texto do tópico Sistema multiutilizador procurando aproveitar as modificações que haviam sido feitas. O que acharam? Ainda precisa de mudanças? Por favor, comentem. Petrosmalk Msg 14:51, 27 Março 2007 (UTC)
O primeiro período do segundo parágrafo do tópico "... multiutilizador" é redundante - repete o que já estava escrito no primeiro parágrafo. A referência a prioridades na segunda parte do primeiro período do terceiro parágrafo está errada. A concorrência em acesso a arquivo é tratada, geralmente, com locking e não com prioridade. O uso compartilhado de uma impressora é resolvido com fila de impressão (FIFO - primeiro a chegar, primeiro a sair). Prioridade é um método usado, principalmente, no agendamento de processos - e não é o único. O último parágrafo, na minha opinião (como já escrevi anteriormente), é desnecessário, pois descreve uma situação que é atendida por vários sistemas operacionais. Angeloshimabuko 05:06, 29 Março 2007 (UTC).
Ok! Você me convenceu. Por favor, faça as alterações que julgar necessárias que depois eu comento. Petrosmalk Msg 22:05, 29 Março 2007 (UTC)

O correto não seria ipconfig? Silent (Contact) 14h19min de 17 de dezembro de 2010 (UTC)