Logo Hardware.com.br
lockedEste tópico está fechado, você não pode enviar novas respostas.
klassik
klassik Super Participante Registrado
587 Mensagens 0 Curtidas
#4 Por klassik
31/10/2003 - 02:00
Eu estou postando essa msg pela segunda vez, pq a primeira nao apareceu. Se sair dobrado, por favor apaguem a primeira copia, ja q eu aproveitei q tinha q re-postar para adicionar algumas informacoes e links, e fazer algumas correcoes. Obrigado.

Artigo
o Linux tem microkernel


Errado. O Linux tem kernel monolitico.
Muitas pessoas acham q o fato de o Linux ter suporte a LKM's (modulos) o torna um micro-kernel. Isso nao eh verdade. Micro-kernel eh outra coisa. Micro-kernel eh quando as diversas partes do sistema operacional rodam em processos diferentes, com regioes de memorias distintas, se comunicando por IPC (Inter Process Communication), etc.

O fato do Linux ser monolitico, chegou a gerar um "acalorado" debate entre o Andrew S. Tannenbaum e o Linus Torvalds. O Tannenbaum eh o escritor de diversos livros, entre eles um livro sobre sistemas operacionais no qual ele oferece como exemplo o Minix, um sistema operacional Unix-Like, implementado na forma de micro-kernel. O Linus se baseou no minix para escrever o Linux. Quando Tannenbaum soube q alguem estava produzindo um kernel monolitico, ele postou uma mensagem para algum newsgroup (provavelmente um comp.os.unix.alguma_coisa) dizendo q kerneis monoliticos estavam ultrapassados, e q o mais correto seria produzir um micro-kernel.
Bom, se eles dois concordam q o Linux eh um sistema monolitico, acho dificil q isso esteja errado. smile.png

Se vc quiser uma copia do debate entre os dois, veja http://www.oreilly.com/catalog/opensources/book/appa.html


Artigo
Se alguma aplicação travar nós podemos simplesmente “matar” ela e iniciá-la novamente sem problemas .


Isso nao tem nenhuma relacao com o fato do kernel ser monolitico ou micro-kernel. Isso se relaciona com o fato de existir a separacao de privilegios, q nao permite q processos rodando com UID de um usuario mexa numa area de memoria q pertenca a outro usuario. Eh por isso q uma aplicacao q esteja com algum problema nunca vai conseguir travar o sistema operacional, jah q para isso seriam necessario escrever em areas de memoria do kernel, o q soh root poderia fazer.

Duas observacoes interessantes:

- O Windows eh um sistema micro-kernel, o linux eh monolitico. (o q nao tem grande impacto no funcionamento de nenhum dos dois. Isso eh meramente teorico.)

- No Linux, mesmo existindo separacao de privilegios, um processo q esteja rodando com UID 0 (ou seja, como root) pode travar o sistema todo, sendo necessario re-iniciar o computador. Um processo rodando como root pode sobre-escrever areas de memoria reservadas para o kernel, e causar algo semelhante a um erro GPF. A separacao de privilegios soh garante q um processo rodando como usuario nao vai conseguir fazer isso. Um processo rodando como root pode fazer TUDO, ateh travar o sistema.

- Os Windows mais recentes (2000, XP, 2003) tb tem separacao de privilegios, q funciona da mesma forma q no Linux. Um processo rodando como usuario NAO consegue travar o sistema. Se o sistema travar, eh pq alguma coisa rodando como administrador errou. (todos os drivers q lidam com hardware, por exemplo, rodam com poderes de administrador).

Por exemplo o ambiente gráfico , ele é embutido no kernel do Windows !


O q te leva a dizer isso? A unica coisa q vc sabe, eh q o kernel e o ambiente grafico do Windows sao feitos pela mesma empresa, e sao vendidos juntos.
Embora eu nao tenha acesso ao codigo-fonte para te provar, eu DUVIDO q eles sejam uma coisa soh. Uma coisa dessas seria impensavel. Ateh pq o Windows eh um micro-kernel, e seria completamente sem-sentido botar uma interface grafica dentro de um micro-kernel. Se fosse assim, nao seria mais um micro-kernel. Quando eu digo q eh sem-sentido, eu quero dizer: com certeza nao eh assim q funciona, mas eu nao tenho o codigo fonte pra te provar. smile.png

O q acontece, eh q no Windows vc nao tem outra opcao de interface, entao parece q aquilo esta dentro do kernel, mas nao eh assim.

Links interessantes, todos em ingles:

http://en.wikipedia.org/wiki/Kernel_(computers)
http://en.wikipedia.org/wiki/Linux_kernel
http://www.oreilly.com/catalog/opensources/book/appa.html

Eh isso.
Luis Louzada Ort
klassik [at] myrealbox [dot] com
MattMurdock
MattMurdock Veterano Registrado
2.2K Mensagens 0 Curtidas
#6 Por MattMurdock
31/10/2003 - 03:07
klassik
Eu estou postando essa msg pela segunda vez, pq a primeira nao apareceu. Se sair dobrado, por favor apaguem a primeir...


Ótima suas observações cara. Vi por ae que também rolou uma discurssão 'acalorada' entre o Torvalds e o Alan Cox (eu acho) em relação a questão do kernel do Linux ser monolítico ou não. O Cox defendia um outro tipo de kernel (me fugiu o nome, acho que baseado mesmo em micro kernel) e o Torvalds irredutível até se zangava quanto a isso :twisted:
jose_silva_neto
jose_silva_n... General de Pijama Registrado
4.6K Mensagens 98 Curtidas
#7 Por jose_silva_n...
31/10/2003 - 03:16
klassik
Eu estou postando essa msg pela segunda vez, pq a primeira nao apareceu. Se sair dobrado, por favor apaguem a primeir...


Boa Noite,

I'm so sorry...mas você cometeu alguns enganos também...

Vou citar e comentar:

1) "Errado. O Linux tem kernel monolitico."
&&& Errado também. Desde a versão 2.0 que o Kernel do Linux é modular, você pode incluir , remover módulos do kernel em tempo de execução ou fazer com que um novo módulo seja carregado durante o boot

2) "Bom, se eles dois concordam q o Linux eh um sistema monolitico, acho dificil q isso esteja errado. smile.png"
&&& Olhe a data dos e-mails : início de 1992...o linux era um nenezinho...e naquele momento o Kernel era realmente monolítico

3) " O Windows eh um sistema micro-kernel, o linux eh monolitico. (o q nao tem grande impacto no funcionamento de nenhum dos dois. Isso eh meramente teorico.)"
&&& Sim, há impacto no desempenho; não é algo que se possa descrever em algumas linhas; mas o fato do Stallman ter começado a desenvolver o Hurd com arquitetura microkernel não é por acaso. Precisaríamos de longos meses de construção técnica para mostrar esse fato.

4) "Por exemplo o ambiente gráfico , ele é embutido no kernel do Windows !
O q te leva a dizer isso?"
&&& Há uma alta integração entre Kernel e servidor gráfico...olhe o material do seguinte link:
http://olinux.uol.com.br/artigos/408/4.html

Té+

Kali
klassik
klassik Super Participante Registrado
587 Mensagens 0 Curtidas
#9 Por klassik
31/10/2003 - 13:53
kalicrates
Boa Noite,


Bom dia smile.png

1) "Desde a versão 2.0 que o Kernel do Linux é modular, você pode incluir , remover módulos do kernel em tempo de execução ou fazer com que um novo módulo seja carregado durante o boot


Concordo plenamente. Assino embaixo. O kernel do linux eh modular. E eu nunca disse q nao era. Eu disse q eh monolitico. Como eu disse, o fato de ser modular nao significa q ele deixe de ser monolitico, embora muitas pessoas se confundam com esse detalhe.

Esta na mensangem anterior, mas vou falar denovo. Por kernel Monolitico, entende-se q tudo q faz parte do sistema operacional roda sob o mesmo processo. Ou seja, todo o codigo esta rodando de uma forma unica. A principal consequencia, eh q nesse caso, tudo relativo ao sistema operacional divide a mesma regiao de memoria.

No Linux acontece isso. Quando vc carrega um modulo, ele passa a fazer parte do mesmo "processo" do resto do kernel. O kernel do Linux eh modular e monolitico. Esses conceitos nao sao antagonicos, embora eu admita q eles parecam ser, a primeira vista.

Continuando a repetir, num S.O. micro-kernel, o sistema operacional roda na forma de diversos processos distintos, sendo q no processo principal, soh se encontra basicamente as funcoes de agendamento de processo e IPC (Comunicacao Inter-Processo). Todo o resto, como gerenciamento de memoria, sistema de arquivos, etc, roda como processos diferentes.

No Linux vc pode ateh separar as coisas em modulos, mas quando um modulo eh carregao ele passa a fazer parte do mesmo processo q engloba todo o resto do S.O..

Isso causa tanta confusao, q chegou a ser criada uma nova denominacao para a arquitetura do kernel do Linux: Monolitico-hibrido. Isso nos da uma certeza:

- O kernel do linux NAO EH, EM HIPOTESE ALGUMA, um micro-kernel. Se fosse, ele seria chamado, de micro-kernel, e nao de monolitico-hibrido.

Mas de qualquer maneira, essa nomenclatura eh nao-oficial, criada sabe-se la por quem, sabe-se la quando. Na LKML (linux kernel mailing list), por exemplo, continua-se referindo a arquitetura do kernel do linux como monolitica. Em qualquer outro lugar q reuna desenvolvedores do kernel do linux, ou entao outras pessoas com experiencia em desenvolvimento de S.O. tb. Se os caras q desenvolvem o kernel chamam ela de monolitico (ateh hj, e nao soh em 1992), deve ser pq ela eh monolitica mesmo. Seria interessante q vc, ou o autor desse artigo q vc mandou enviasse uma msg para eles alertando-os para o fato de q eles estao todos enganados.


Olhe a data dos e-mails : início de 1992...o linux era um nenezinho...e naquele momento o Kernel era realmente monolítico

Hj o Linux eh um adolescente, e nada mudou (pelo menos no que diz respeito a arquitetura) smile.png

Sim, há impacto no desempenho; não é algo que se possa descrever em algumas linhas; mas o fato do Stallman ter começado a desenvolver o Hurd com arquitetura microkernel não é por acaso. Precisaríamos de longos meses de construção técnica para mostrar esse fato.


1o) Nao foi o Stallman q comecou a escrever o Hurd. Foi o projeto GNU. Eh um erro dar a uma pessoa todo o credito de centenas ou milhares de desenvolvedores.

2o) Bom, vc esta dizendo q existe um diferenca de perfomance, q nao da pra ser explicada em poucas linhas. O Tannenbaum tb disse isso, embora nao tenha oferecido nenhuma comparacao, nem pratica, nem teorica. Se vc tem tanta certeza dessa diferenca de perfomance, vc poderia me indicar um link, um paper, um livro, ou qualquer outra fonte de informacao , q tenha embasamento (ou seja, nao serve um link de um ze-ninguem q diz q uma arquitetura eh melhor q a outra sem oferecer explicacoes)? Se vc possuir tal fonte de informacao, eu gostaria de ler. Pq pelo o q eu saiba, muito se falou sobre essa diferenca de perfomance, mas nada foi constatado na pratica.


Last, but not least:
Há uma alta integração entre Kernel e servidor gráfico...olhe o material do seguinte link: www.o.grande.especialista.em.sistemas.operacionais.com.br


Era a sites como esse q eu me referia quando falei de um siste de um ze-ninguem. Nada contra o autor do artigo, ele pode ter grandes conhecimentos em diversas areas. Mas ele faz afirmacoes as quais ele nao da nenhuma prova. Nenhum link. Nada. Parece ateh vc quando falou q existe ganho de perfomance smile.png

A Web eh livre. Qualquer um pode publicar um site falando o q quiser. E o fato de um siste fazer uma afirmacao nao significa q essa afirmacao seja verdadeira.

Pense: se os windows da familia NT (NT, XP, 2000) sao micro-kerneis, e isso eh um fato mundialmente aceito, como q a interface grafica pode estar contida no kernel? Se fosse assim, nao seria micro-kernel, ja q este, por definicao, soh tem os codigos necessarios para manter os outros processos funcionando. Se fosse, assim, nao seria mundialmente aceito q o Windows eh um exemplo de micro-kernel.

Agora, se o Paulo Silva Filho tem embasamento para contrariar todos os outros desenvolvedores q dizem q o Windows eh um micro-kernel, ele q mostre suas provas. Fazer afirmacoes sem oferecer provas nao da, neh? Acreditar em afirmacoes sem provas tb nao.

Os arquivos q contem o codigo executavel do kernel, e da interface grafica, podem ser produzidos e vendidos pela mesma empresa. Podem vir no mesmo cd. Podem ficar no mesmo diretorio. Podem usar as mesmas bibliotecas. Podem fazer um monte de coisa juntos, mas isso nao significa q eles rodem juntos, como um unico processo.
Luis Louzada Ort
klassik [at] myrealbox [dot] com
klassik
klassik Super Participante Registrado
587 Mensagens 0 Curtidas
#10 Por klassik
31/10/2003 - 14:00
E soh para complementar, vejam o q esta no FAQ da linux-kernel mailing list:

Desenvolvedores do Linux
Why is the Linux kernel monolithic? Why don't we rewrite it as a microkernel?

* (REG) The short answer is why should we? The longer answer is that experience has shown that microkernels have poor performance compared to monolithic kernels. Microkernels have a fundamental design problem, where different components of the kernel cannot interact without passing a privilege barrier (which is expensive). Microkernel advocates claim this is a feature, as it increases modularity and protects one part of the kernel from another. Whether this is a feature or a mis-feature is in the eye of the beholder, but it is clear that there is a performance cost inherent in the microkernel design. This is a cost the Linux kernel developers (and apparently, the users) are unwilling to bear.
There are projects which have ported the Linux kernel to generic microkernels (such as Mach3), usually making Linux a "personality". There are also other projects to create microkernel-based Unix-like implementations. Here is a short list:
o MkLinux was funded by Apple, and runs Linux on PowerPC Macs. It is available at: http://www.mklinux.org/. An x86 version is also available. Note that there is now a native Linux kernel for the PowerPC which is much faster, and is actively maintained. MkLinux has become a historical footnote.
o The Hurd is a microkernel-based Unix, and is supposed to be the promised GNU kernel. It sits on top of Mach3. The Debian Project provides a full distribution for the Hurd.
o FIASCO is another project for creating MicroKernel LINUX. See http://os.inf.tu-dresden.de/fiasco/ for details.
There is a historical Usenet thread related to this subject, dating back from 1992, with posts from Linus, Andrew Tanenbaum, Roger Wolff, Theodore Y T'so, David Miller and others. Nice reading on a rainy afternoon. It's fascinating to see how some predictions (which seemed rather reasonable at the time) have proved wrong over the years (for example, that we would all be using RISC chips by 1998).


Acho q ele deixa bem claro q o kernel do Linux eh monolitico.

Bom, esse FAQ foi atualizado em 19 de Setembro de 2003. Ja nao eh de 1992. smile.png

Links:

http://www.tux.org/lkml/
http://www.tux.org/lkml/#s15-4
Luis Louzada Ort
klassik [at] myrealbox [dot] com
Bolão
Bolão Super Participante Registrado
1.2K Mensagens 0 Curtidas
#11 Por Bolão
31/10/2003 - 14:19
klassik
E soh para complementar, vejam o q esta no FAQ da linux-kernel mailing list:

Acho q ele deixa bem claro q o kernel...


Ta aí, gostei desse tópico, isso sim é discursão, troca de informação !!

Me tira uma dúvida Klassik ... isso que vc detalhou dos kernel tem alguma coisa a ver com "Arquitetura Preemptiva" ?? ou num tem nada a ver ? Sempre quis entender melhor sobre isso !
[]'s

Raphael Vieira
Analista de Sistemas
look
look Membro Senior Registrado
325 Mensagens 0 Curtidas
#13 Por look
31/10/2003 - 14:39
Bolão
Ta aí, gostei desse tópico, isso sim é discursão, troca de informação !!

Me tira uma dúvida Klassik ... isso que v...


Em termo técnicos, o Linux é melhor em muitas coisas, principalmente na robustez e escalabilidade.
Mas em em termos de Marketing, pós-venda, helps, documentação a Microsoft dá de pau em qualquer fabricante ou SL. E aí que eles pegam todo mundo pelo pé.
Já programei em SQL Server 2000 e o help (Books on line) é excelente, o melhor que já usei. O Oracle que é o melhor banco de dados (tecnicamente falando) não chega nem aos pés nesse ítem. P/ vc encontrar ou pesquisar uma informção é um sacrifício.
Quando estagiei Telemar, a empresa possuía um centro de gerência com 12 telões de 50 polegadas. Tinha um servidor unix p/ controlar esse estrutura. Pois os nossos sistemas eram todos em VB+Sql Server em plataforma WIN NT. O Nt não conseguia conversar com o servidor Unix. Entramos em contato com a MS e eles pagaram passagens aéreas e hoespedagem em Redmond para os nossos engenheiros irem lá e especificarem o que eles precisavam. Os caras geraram uma versão do NT só p/ gente que conseguia comunicar com toda a nossa estrutura.
Essa a diferença da MS em relação ao SL. Aliás, esse é o diferencial competitivo que lhe garante a liderança de mercado que ela possui.
Vejo empresas muito competentes como a Borland, com ferramentas melhores do que a MS, mas que são um desastre no Marketing.
Marketing = vendas, não somente publicidade. É distribuição, pós-vendas, suporte e tudo mais. Nisso a MS é imbatível.
Lookahead
Analista de sistemas web
look
look Membro Senior Registrado
325 Mensagens 0 Curtidas
#15 Por look
31/10/2003 - 14:56
Tiago Cruz
Não concordo. Tens um produto OEM? :lol:
Comprastes um XP de uma empresa de quebou e foi procurar suporte?
Tens uma...


Todos os produtos da organização que presto serviço são OEM e originais, seja da Oracle, da MS ou da Macromedia. Além disso, a minha empresa disponibiliza uma gama de livros e cds com toda documentação dessas empresas. Os livros da MS Press são muito bons e te dão uma boa base para desenvolver e se certificar inclusive.
Muito poucas foram as vezes em que o pessoal daqui precisou contactar a MS. E nas poucas, a solução foi fornecida. A infraestrutura de rede e de banco aqui é excelente. A disponibilidade dos sistemas aqui é praticamente 100% durante o ano. Utilizamos win2000 nos desktops e servidores. E o banco é Oracle.
Lookahead
Analista de sistemas web
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal