terça-feira, 15 de agosto de 2017

Por que os computadores não funcionam sem parar?

A briga entre o criador do Minix e czar dos sistemas Operacionais Andrew S. Tanenbaum e Linus Torvalds é lendária no mundo dos sistemas operacionais. Antes do Linux havia o Minix. Torvalds criou sua primeira versão do Linux em 1991 sobre o sistema do professor Tanenbaum. Agora, o sr. Tanenbaum concordou em escrever um editorial para a Linux Magazine. Sua opinião não mudou ao longo dos anos: o Linux (e o Windows) “não são confiáveis”.

Por Andrew S. Tanenbaum
Os usuários de computadores estão mudando. Há dez anos, a maioria dos usuários de computadores eram pessoas ou profissionais jovens com amplo conhecimento técnico. Quando algo saía errado – o que ocorria com freqüência –, eles sabiam consertá-las. A maioria deles consegue consertar computadores tão bem quanto um nerd de computador padrão sabe consertar seu carro. O que eles querem mais do que qualquer outra coisa é que o computador funcione o tempo todo, sem interrupções ou falhas.
Muitos usuários comparam automaticamente seus computadores a suas televisões. Ambos estão repletos de componentes eletrônicos mágicos e possuem telas grandes. A maioria dos usuários tem um modelo implícito de uma televisão: (1) você compra a TV; (2) você a liga na tomada; (3) ela funciona perfeitamente sem qualquer falha durante os próximos dez anos. Eles esperam isso do computador e, quando não é o que obtêm, ficam frustrados. Quando os especialistas em computadores lhes dizem: “Se Deus quisesse que os computadores funcionassem o tempo todo, Ele não teria inventado o botão de RESET”, eles não se convencem.
Por falta de uma melhor definição de disponibilidade, adotemos a seguinte: um dispositivo é dito disponível (isto é, podemos dispor dele) se 99% dos usuários jamais experimenta qualquer falha durante todo o período em que o possuem. Por essa definição, virtualmente nenhum computador é disponível, enquanto a maioria das TVs, iPods, câmeras digitais etc. são. Usuários técnicos de computador estão dispostos a perdoar um computador que trave uma ou duas vezes por ano; usuários comuns, não.
Usuários domésticos não são os únicos incomodados com a baixa disponibilidade dos computadores. Até mesmo em ambientes altamente técnicos, a baixa disponibilidade dos computadores é um problema. Empresas como Google e Amazon, com centenas de milhares de servidores, experimentam várias falhas todo dia. Elas aprenderam a conviver com isso, mas prefeririam sistemas que simplesmente funcionassem sem parar. Infelizmente, os softwares atuais falham nesse aspecto.
O problema básico é que softwares contêm bugs, e quanto mais software, mais bugs. Vários estudos já mostraram que o número de bugs por mil linhas de código (KLoC) varia de um a dez em grandes sistemas de produção. Um software muito bem escrito talvez tenha dois bugs por KLoC ao longo do tempo, mas não menos. Um sistema operacional com, digamos, 4 milhões de linhas de código, portanto, deve ter pelo menos 8 mil bugs. Nem todos são fatais, mas alguns serão. Um estudo da Universidade Stanford mostrou que drivers de dispositivos – que compõem até 70% da base de código de um sistema operacional típico – possuem taxas de bugs 3x a 7x mais altas que o resto do sistema. Drivers de dispositivos têm taxas mais altas porque (1) são mais complicados e (2) são menos inspecionados. Enquanto muitas pessoas estudam o escalonador, poucas verificam os drivers de impressoras.

A solução: kernels menores

A solução para esse problema é retirar código do kernel, no qual o dano pode ser máximo, e colocá-lo em processos do espaço do usuário, onde bugs não conseguem causar falhas de sistema. É assim que o MINIX 3 é projetado. O sistema MINIX atual é o (segundo) sucessor do MINIX original, que foi lançado originalmente em 1987 como sistema operacional educativo, mas desde então foi radicalmente revisado para se tornar um sistema altamente disponível e auto-recuperável. Segue uma breve descrição da arquitetura do MINIX; há mais informações em www.minix3.org.
O MINIX 3 é projetado para rodar o mínimo de código possível no modo do kernel, em que bugs podem facilmente ser fatais. Em vez de 3-4 milhões de linhas de código no kernel, o MINIX 3 tem aproximadamente 5.000 linhas de código no kernel. Às vezes, kernels desse tamanho são chamados de microkernels. Eles lidam com gerenciamento de processos no baixo nível, escalonamento, interrupções e o relógio, e fornecem alguns serviços de baixo nível para componentes do espaço do usuário.
A maior parte do sistema operacional roda como uma coleção de drivers de dispositivos e servidores, cada um rodando como processo comum do espaço do usuário com privilégios restritos. Nenhum desses drives e servidores roda como superusuário ou equivalente. Eles não conseguem nem acessar dispositivos de I/O ou o hardware MMU diretamente; precisam usar serviços do kernel para ler e escrever no hardware. A camada de processos rodando diretamente no modo de usuário acima do kernel consiste em drivers de dispositivos, com o driver de disco, o de Ethernet e todos os outros rodando como processos separados protegidos pelo hardware MMU, para não conseguirem executar qualquer instrução privilegiada e nem lerem ou escreverem em locais de memória além dos seus próprios.
Acima da camada de drivers vem a de servidores, com um servidor de arquivos, um servidor de processos e outros. Os servidores fazem uso dos drivers assim como de serviço do kernel. Por exemplo, para ler um arquivo, um processo do usuário envia uma mensagem ao servidor de arquivos, que então envia uma mensagem para o driver de disco para buscar os blocos necessários. Quando o sistema de arquivos os tem em seu cache, ele chama o kernel para movê-los para o espaço de endereços do usuário.
Além desses servidores, há um outro servidor chamado “servidor de reencarnação”. Ele é o pai de todos os processos de drivers e servidores e monitora seu comportamento. Se ele descobrir um processo que não esteja respondendo a pings, ele inicia uma nova cópia a partir do disco (exceto pelo driver do disco, que fica oculto na RAM). O sistema foi projetado para que muitos (mas não todos) os drivers e servidores críticos sejam automaticamente substituídos enquanto o sistema funciona, sem perturbar os processos de usuário em execução e sem nem notificar o usuário. Dessa forma, o sistema é auto recuperável.
Para testar se essas idéias funcionam na prática, conduzimos os seguintes experimentos. Iniciamos um processo de injeção de falhas que sobrescreveu 100 instruções de máquina no binário do driver Ethernet em execução para ver o que ocorreria caso um deles fosse executado. Se nada acontecesse em poucos segundos, outras 100 eram injetadas e assim por diante. No total, injetamos 800.000 falhas em cada um dos três diferentes drivers Ethernet e causamos 18.000 travamentos do driver. Em todos os casos, o driver foi automaticamente substituído pelo servidor de reincarnação. Apesar de injetar 2,4 milhões de falhas no sistema, o servidor não parou uma vez sequer. Nem é preciso dizer que se ocorrer um erro fatal num driver do Windows ou do Linux rodando no kernel, todo o sistema operacional travará imediatamente.
Existe alguma desvantagem nessa técnica? Sim. Há uma redução de desempenho. Não a medimos extensivamente, mas o grupo de pesquisa em Karlsruhe, Alemanha, que desenvolveu seu próprio microkernel (o L4) e depois rodou o Linux como um de seus processos de usuário, conseguiu uma perda de desempenho de apenas 5%. Acreditamos que se dedicarmos um pouco de atenção a esse típico, também conseguiremos reduzir a perda para a faixa entre 5 e 10%. Desempenho não é uma prioridade para nós, já que a maioria dos usuários que lêem email ou navegam pelo Facebook não são limitados pelo desempenho da CPU. O que eles querem, no entanto, é um sistema que simplesmente funcione o tempo todo.

Se microkernels são tão disponíveis, por que ninguém os usa?

Na verdade, usam, sim. Provavelmente você roda vários deles. Seu telefone celular, por exemplo, é um computador pequeno, mas comum em todos os outros aspectos, e há uma boa chance de ele rodar o L4 ou o Symbian, outro microkernel. O roteador de alta performance da Cisco também usa um microkernel. Nos mercados militar e aeroespacial, em que disponibilidade é fundamental, o Green Hills Integrity, outro microkernel, é amplamente usado. O PikeOS e o QNX também são microkernels amplamente usados em sistemas industriais e embarcados. Em outras palavras, quando é realmente importante que o sistema “simplesmente funcione o tempo todo”, as pessoas usam microkernels. Para mais informações sobre esse tópico, veja www.cs.vu.nl/~ast/reliable-os/.

Concluindo, é nossa crença, baseada em várias conversas com usuários não técnicos, que o que eles mais desejam é um sistema que funcione perfeitamente todo o tempo. Eles têm uma baixa tolerância a sistemas pouco confiáveis, mas atualmente não têm escolha. Acreditamos que sistemas baseados em microkernels podem nos levar a sistemas mais disponíveis.

O Debate entre Linus Torvalds e Andy Tanembaum

Outro lado da moeda, é ver o debate entre Linus Torvalds e Andy Tanembaum.

https://pt.wikipedia.org/wiki/Debate_entre_Tanenbaum_e_Torvalds 

Créditos:
http://www.linuxmagazine.com.br/lm/materia/tanenbaum_por_que_os_computadores_nao_funcionam_sem_parar
https://pt.wikipedia.org/wiki/Debate_entre_Tanenbaum_e_Torvalds 




quinta-feira, 16 de março de 2017

Guias de Bolso - Comandos do Linux



Para todos amantes da CLI (Command Line Interface), ou Interface de Linha de Comando, segue alguns documentos que podem auxiliar (principalmente os inciantes) a lembrar dos comandos.

São guias de Referência Rápida e podem ser usados a qualquer momento.

Procurei guias extremamente rápidos e básicos, para serem usados em especial, em sala de aula.

Boa Leitura!

Manual de Comandos, Professor Ricardo Donadel (Em português)
Baixe Aqui!

Unix Linux Command Reference - fosswire.com
Baixe Aqui!

Linux Quick Reference - Some Useful Commands - www.linuxdevcenter.com 
Baixe Aqui

Se você desejar comprar uma versão impressa, recomendo o da Novatec:
http://novatec.com.br/livros/guia-comandoslinux/

Se Quiser ver todos as postagens sobre minhas Aulas, Clique aqui!

terça-feira, 13 de setembro de 2016

Vem ai o Novo Citsmart ITSM - 6.1



A Nova versão do Citsmart brevemente será lançada.

Totalmente aderente ao ITIL, atendendo a 10 Processos do Framework.

Dia 20 de Setembro tem novidade!

Aguarde!!!!

Mais informações: www.citsmart.com.br 


quarta-feira, 4 de maio de 2016

terça-feira, 5 de abril de 2016

Citsmart ITSM é certificado em 13 processos PinkVerify!

Mais uma vez, após um ano de trabalho, a equipe responsável pelo Citsmart obteve sucesso e alcançou um número expressivo de certificações junto à certificadora ITIL, Pink Elephant.


Em viagem ao Canadá, o Diretor de Soluções, Emauri Gaspar, e o Gerente de Produto, Vinícius Gravito, enfrentaram extensos ciclos de auditoria, em busca da recertificação de nove processos previstos na biblioteca ITIL e da certificação de outros quatro. Enquanto isto, os membros das equipes em Brasília e Goiânia deram todo o suporte, ao construir, documentar e colocar em produção as novas features necessárias para que a missão fosse bem-sucedida.

Agora, com 13 processos certificados PinkVerify, a versão 7.0 do Citsmart ITSM, está à frente de grandes ferramentas reconhecidas mundialmente.

Agora os processos certificados são:
  1. Incident Management (recertificado)
  2. Request Fulfillment (recertificado)
  3. Change Management (recertificado)
  4. Knowledge Management (recertificado)
  5. Problem Management (recertificado)
  6. Release & Deployment Management (recertificado)
  7. Service Asset & Configuration Management (recertificado)
  8. Service Catalog Management (recertificado)
  9. Service Level Management (recertificado)
  10. Event Management (novo)
  11. Service Portfolio Management (novo)
  12. IT Service Continuity Management (novo)
  13. Availability Management (novo)

Parabéns aos envolvidos, por fazerem do Citsmart uma ferramenta global de Gestão de Serviços de TI!
Faça Parte da Grupo do Citsmart - https://www.linkedin.com/groups/8493943 
(Texto Compartilhado da Assessoria de Comunicação da Central IT).

domingo, 27 de março de 2016

Frase do Dia


terça-feira, 22 de setembro de 2015

Linux "comendo" memória RAM dos servidores ?

          Por Richardson Lima

Olá pessoal,

Segue abaixo um pequeno texto que escrevi afim de compartilhar a minha experiência com análise de desempenho de servidores Linux. Este tema parace simples, mas muitos administradores ao redor do mundo se confundem bastante. Leia até o final e me diga o que você acha.

O que de fato está acontecendo ? 
Bom, o sistema operacional GNU/Linux faz o uso da memória RAM não utilizada para o cache de disco. Isso faz com que você pense que está com pouca memória, mas você não está!  

Por que o GNU/Linux faz isso?
O cache de disco torna o sistema muito mais rápido. Não há desvantagens, exceto para novos administradores do sistema operacional.  

E se eu quiser executar mais aplicativos e a memória RAM estiver alocada para cache de disco?
Se os aplicativos ou serviço do sistema desejam mais memória, o sistema operacional Linux simplesmente vai"devolver"  uma parte da memória que estava sendo usada como cache de disco para este fim, esta devolução é extremamente calculada por algoritmos do sistema operacional. O cache de disco pode sempre ser devolvido para aplicações de forma imediata. 

Então, Preciso de mais swap?
Não, o uso de memória RAM para cache de disco não tem como levar o sistema operacional a usar swap. 

Como faço desativar este recurso de alocação de memória RAM para cache?
Você não pode desativar o cache de disco. A única razão para que um administrador queira desabilitar o  recurso de cache de disco, é porque ele acha que é preciso deixar a memória longe de suas aplicações e serviços. Cache de disco faz com que as aplicações rodem de forma mais rápida, mas NUNCA  "rouba" a memória das aplicações, isto é extremamente gerenciado pelo sistema operacional. Portanto, não há absolutamente nenhuma razão para desativar este recurso!
Como faço para ver quanta memória RAM livre eu realmente tenho?
Para ver quanta memória RAM está REALMENTE livre para usar para seus aplicativos e serviços no sistema operacional, execute o famoso comando  free -m e verifique a linha que diz "- / + buffers / cache", isso mesmo, na coluna que diz "free". Veja o item selecionado na imagem abaixo, este é o valor REAL de memória FREE!



quarta-feira, 3 de junho de 2015

15 anos de Funções ZZ

15 anos… É muita coisa.
Imagino que deva ter usuários das Funções ZZ que são mais novos do que isso :)
Quando penso em softwares antigos, como as ferramentas originais do Unix, sempre imagino seus criadores como véios barbudos de óculos. Agora aqui estou eu, um jovem* gafanhoto que todo dia aprende algo novo, que nem barba tem direito (só uns fiapos), olhando meu próprio software completar 15 anos.
* Se é que alguém com 37 anos ainda pode ser considerado jovem…
No post comemorando os 13 anos, já ponderei sobre o tempo que passou e o que me faz continuar trabalhando neste software, após tantos anos. Então dessa vez vamos direto ao que interessa.

A versão nova

Para comemorar este aniversário, eu e o Itamar (meu amigo e co-autor das funções) decidimos preparar uma versão nova das funções. A última foi em 2013, nacomemoração de 13 anos.
Trabalhamos pesado nos últimos meses, usando nossas raras horas vagas de emprego/família/obrigações para discutir problemas, arrumar bugs, criar funções novas e melhorar as já existentes. O GitHub atesta a loucura que é esse desenvolvimento:
O resultado é a versão nova 15.5 (downloadanúnciochangelog), que traz um número recorde de 49 funções novas, deixando nosso querido software com um total de 178 funções!
Bônus: Sabe quem enviou uma função nova, para participar das comemorações? OThobias, antigo co-autor das funções que há anos não “aparecia” por estas bandas. Massa!

Vem participar do projeto!

Você é programador(a), ou curte a linha de comando? Te convido a juntar-se a nós lá no GitHub. Pode entrar no meio das conversas lá no issues, reportar problemas ou criar sua própria Função ZZ.
Mesmo que não seja programador(a), você sabia que o site das funções também é um projeto lá no GitHub, e é gerado automaticamente a cada commit? Assim, caso você encontre algum erro no site, ou queria contribuir com conteúdo novo, é fácil. No final de cada página do site há um link direto para o seu arquivo original, pronto para ser melhorado, por você!
Toda ajuda é muito bem-vinda, e necessária para que o projeto continue ativo por muitos anos mais. Muito obrigado a todos os contribuidores atuais e que venham os novos!

Criado por Aurelio Jargas, este é um software livre 100% nacional e maduro, que já completou 15 anos de existência. É o resultado do trabalho voluntário e não remunerado de vários brasileiros que colaboram em suas horas vagas, por prazer. Feito com muito carinho, bash, sed, awk, dedicação, expressões regulares, grep ...

Quer conhecer mais... ??? - http://funcoeszz.net/ 

quarta-feira, 27 de maio de 2015

Entrevista com Linus Torvalds

quinta-feira, 19 de março de 2015

Ferramentas Colaborativas Parte 3 - Untach

Tem horas que você está com um arquivo imenso para mandar para alguém e não tem como enviar via email, dropbox, google drive... etc...
Você pode usar serviços de compartilhamentos de arquivos como o Untach. - http://untach.com/
Basta arrastar o arquivo para a página, ou clicar na imagem e escolher o arquivo.
O arquivo fica disponível por 24hs e depois o link é auto destruído.
Mas cuidado com o que posta lá ok??, já que não consegui achar nada sobre política de privacidade.



Dica de Ébano Moreira

Se você tem dicas de programas coloaborativos, mande um email para contato@dailson.com.br para que a gente possa testar e divulgar no nosso blog!

quarta-feira, 18 de março de 2015

Frase do dia

" O Homem é um cadáver adiado ..."
Fernando Pessoa

Você sabe com quem está falando?

Um vídeo sobre a arrogância de alguns simples mortais.


Ferramentas Colaborativas Parte 2 - Collabedit

Essa vai para os programadores!
Já imaginou escrever um código a 4, 6, 8, ... n mãos? Compartilhar conhecimento? Resolver um problema com várias pessoas ao mesmo tempo mexendo no código?
Bom, esta ferramenta é para você! :)

Basta entrar no site http://collabedit.com e clicar em novo documento.

Logo após, passe o link que foi criado para os outros programadores.


Pronto! Você já pode programar colaborativamente.

Dica de Ébano Moreira

Se você tem dicas de programas coloaborativos, mande um email para contato@dailson.com.br para que a gente possa testar e divulgar no nosso blog!

Valeu PessoALL!!!


Ferramentas Colaborativas: Parte 1 - dontpad.com



Imagine que você quer conversar com um grupo de pessoas, porém não há como reuní-los no momento com WhatsUP, Messenger, Skype, etc...
Você pode usar o quadro colaborativo do dontpad.
Funciona assim: abra um browser qualquer, digite dontpad.com/nome onde este nome, é o nome da sala que você vai criar, passe isso para seus amigos, e todos cairão em uma mesma sala de bate papo.
Podem conversar a vontade.
Ao final, se quiser gravar a conversa, basta acrescentar ao final do link .zip
exemplo:
http://dontpad.com/batepapo
http://dontpad.com/batepapo.zip

Dica de Ébano Moreira

Se você tem dicas de programas coloaborativos, mande um email para contato@dailson.com.br para que a gente possa testar e divulgar no nosso blog!

Valeu PessoALL!!!

terça-feira, 17 de março de 2015

Frase do dia


"Nunca deixe para amanhã, o que você pode fazer depois de amanhã...."
Mark Twain

Download Gratuito do Livro - Linux: Dicas e Truques

Post original do Site: Dicas-l
No ano 2000, eu publiquei, pela Editora da Conectiva, o livro Linux: Dicas e Truques.
Este livro está disponível gratuitamente para download. Na época, o livro foi uma compilação de diversas mensagens da Dicas-L, que estava completando o seu terceiro ano de vida. No dia 3 de março de 2015, a Dicas-L completou 18 anos, atingindo a maioridade :-)
E por falar em ebooks, eu reuni diversos artigos de minha autoria e também de outros amigos, para montar o livro Aprendendo a Aprender. O tema deste livro é o aprendizado, com enfase no aprendizado de idiomas. O download deste livro também é gratuito.
Para finalizar, gostaria de recomendar algumas obras do Prof. Walther Hermann, que é um educador atuando em diversas áreas do aprendizado e desempenho humano. No site Bloqueios, estão disponíveis para download diversos capítulos de seus livros, com especial destaque para o livro sobre Mapas Mentais, que é uma técnica bastante inovadora e interessante para o aprendizado e memorização. Todos este material pode ser baixado livremente a partir do site Bloqueios.

segunda-feira, 9 de fevereiro de 2015

Curso preparatório de PMP

Recomendo o Curso preparatório de PMP. As inscrições já estão abertas em:

On Line: http://www.eventick.com.br/pmprime-pmp-2015-webinar 
Presencial: http://www.eventick.com.br/pmprime-pmp-2015-webinar

Desconto de 10% para as inscrições que já estão com descontos até fevereiro.

segunda-feira, 8 de setembro de 2014

O Que é ITIL ?

Um excelente vídeo que explica em poucos minutos o que é ITIL.
Vale a pena conferir!
Dica: Jocemar Calado.

segunda-feira, 18 de agosto de 2014

Linha do Tempo (Timeline) dos Sistemas Operacionais da Microsoft.

Conheça toda a linha do tempo do desenvolvimento de Sistemas Operacionais da Microsoft, desde 1980 até os dias atuais.
Fonte: http://www.levenez.com/windows/


Linha do Tempo (Timeline) das Linguagens de Programação.

A História de todas as linguagens de programação desde 1954 até os dias atuais!
Um documento com mais de 14 páginas com toda a Timeline das linguagens de programação.
Fonte: http://www.levenez.com/lang/