Arquivos Mensais: Fevereiro 2009

CISC vs RISC

Sem duvidas este é um dos temas mais interessantes quando tratamos de processadores. A arquitetura de processador descreve o processador que foi usado em um computador. Grande parte dos computadores vêm com identificação e literatura descrevendo o processador que contém dentro de si, arquitetura CISC e RISC.

  • A CISC (em inglês: Complex Instruction Set Computing, Computador com um Conjunto Complexo de Instruções), usada em processadores Intel e AMD; suporta mais instruções no entanto, com isso, mais lenta fica a execução delas.
  • A RISC (em inglês: Reduced Instruction Set Computing, Computador com um Conjunto Reduzido de Instruções) usada em processadores PowerPC (da Apple, Motorola e IBM) e SPARC (SUN); suporta menos instruções, e com isso executa com mais rapidez o conjunto de instruções que são combinadas.

Um processador CISC (Complex Instruction Set Computer), é capaz de executar várias centenas de instruções complexas, sendo extremamente versátil. Exemplos de processadores CISC são os 386 e os 486. No começo da década de 80, a tendência era construir chips com conjuntos de instruções cada vez mais complexos, mas alguns fabricantes resolveram seguir o caminho oposto, criando o padrão RISC (Reduced Instruction Set Computer ).

Ao contrário dos complexos CISC, os processadores RISC são capazes de executar apenas algumas poucas instruções simples. Justamente por isso, os chips baseados nesta arquitetura são mais simples e muito mais baratos. Outra vantagem dos processadores RISC, é que por terem um menor número de circuitos internos, podem trabalhar com clocks mais altos. Um processador RISC é capaz de executar instruções muito mais rapidamente.

Assim, em conjunto com um software adequado, estes processadores são capazes de desempenhar todas as funções de um processador CISC, compensando as suas limitações com uma velocidade maior de operação. Atualmente, vemos processadores híbridos, que são essencialmente

Processadores CISC, porém que possuem internamente núcleos RISC. Assim, a parte CISC do processador pode cuidar das instruções mais complexas, enquanto que o núcleo RISC pode cuidar das mais simples, nas quais é mais rápido. Parece que o futuro nos reserva uma fusão destas duas tecnologias. Um bom exemplo de processador híbrido é o Pentium Pro.

Arquitetura CISC

CISC (Complex Instruction Set Computer, ou, em uma tradução literal, “Computador com um Conjunto Complexo de Instruções”): é um processador capaz de executar centenas de instruções complexas diferentes sendo, assim, extremamente versátil. Exemplos de processadores CISC são os 386 e os 486 da Intel.

Processador 486

Um modelo CISC

Os processadores baseados na computação de conjunto de instruções complexas contêm uma micro programação, ou seja, um conjunto de códigos de instruções que são gravados no processador, permitindo-lhe receber as instruções dos programas e executá-las, utilizando as instruções contidas na sua micro programação. Seria como quebrar estas instruções, já em baixo nível, em diversas instruções mais próximas do hardware (as instruções contidas no microcódigo do processador). Como característica marcante esta arquitetura contém um conjunto grande de instruções, a maioria deles em um elevado grau de complexidade.

Examinando do ponto de vista um pouco mais prático, a vantagem da arquitetura CISC é que já temos muitas das instruções guardadas no próprio processador, o que facilita o trabalho dos programadores de linguagem de máquina; disponibilizando, assim, praticamente todas as instruções que serão usadas em seus programas. Os processadores CISC têm a vantagem de reduzir o tamanho do código executável por já possuírem muito do código comum em vários programas, em forma de uma única instrução.

Esta arquitetura processa e trata grandes e complexas instruções, nomeadamente operações de multiplicação e divisão mas também executa e/ou descodifica grandes quantidades de operações, parecendo possuir outro processador pelo facto da maioria dos algoritmos já se encontrarem no processador sendo o seu tempo de restabelecimento praticamente nulo.

A CISC é implementada e guardada em micro-código no processador, sendo difícil modificar a lógica de tratamento de instruções. Esta arquitetura suporta operações do tipo “a=a+b” descrita por “add a,b”, ou seja podem simplesmente utilizar dois operandos para uma única instrução, sendo um deles fonte e destino (acumulador) e permite um ou mais operadores em memória para a realização das instruções. Com isto se comprova a necessidade de abranger um elevado leque de modelos de endereçamento, com acesso direto à memória e com apontadores para as variáveis em memória, armazenados eles próprios (ponteiros) em células de memória.

A complexidade que envolve estes modelos compromete o produto a nível de comercialização e desenvolvimento, limitando ou diminuindo o aumento a frequência de relógio não só pelo tempo de acesso às memórias como devido ao reduzido número de registos.

Porém, do ponto de vista da performance, os CISC’s têm algumas desvantagens em relação aos RISC’s, entre elas a impossibilidade de se alterar alguma instrução composta para se melhorar a performance. O código equivalente às instruções compostas do CISC pode ser escrito nos RISC’s da forma desejada, usando um conjunto de instruções simples, da maneira que mais se adequar. Sendo assim, existe uma disputa entre tamanho do código X desempenho.

A existência de um grande número de registros nas arquiteturas RISC, aliado à evolução da tecnologia dos compiladores dos últimos anos (em especial, na geração de código), vem permitindo representar a maioria das variáveis escalares diretamente em registro, não havendo necessidade de recorrer com tanta frequência à memória. Esta organização não foi contudo economicamente viável nas gerações anteriores de microprocessadores, com destaque para a família da Motorola (M680x0) e, ainda mais antiga, a família da Intel (ix86). Estes processadores dispunham de um menor nº de registros e, consequentemente, uma diferente organização que suportasse eficientemente diversos mecanismos de acesso à memória.

Processador Motorola DragonBal

No caso da família M680x0, o programador tinha disponível dois bancos de 8 registros genéricos de 32 bits: um para dados (D) e outro para apontadores para a memória (A), suportando este último banco um variado leque de modos de endereçamento à memória. Apenas um dos registros (A7) é usado implicitamente em certas operações de manuseamento da stack.

A família Intel é mais complexa por não ter variadamente registros de uso genérico. A arquitetura de base dispõe efetivamente de 4 registros para conter operandos aritméticos (A, B, C e D), mais 4 para trabalhar com apontadores para a memória (BP, SP, DI e SI) e outros 4 para lidar com uma memória segmentada (CS, DS, SS e ES; a única maneira de uma arquitetura de 16 bits poder aceder a mais de 64K células de memória). Cada um destes registros não pode ser considerado de uso genérico, pois quase todos eles são usados implicitamente (isto é, sem o programador explicitar o seu uso) em várias instruções (por exemplo, os registros A e D funcionam de acumuladores em operações de multiplicação e divisão, enquanto o registro C é usado implicitamente como variável de contagem em instruções de controle de ciclos). A situação complica-se ainda mais com a variação da dimensão dos registros na mesma família (de registros de 16 bits no i286 para registros de 32 bits no i386), pois o formato de instrução foi concebido para distinguir apenas operandos de 8 e de 16 bits, e um Bit bastava; para garantir compatibilidade ao longo de toda a arquitetura, os novos processadores têm de distinguir operandos de 8, 16 e 32 bits, usando o mesmo formato de instrução.

Arquitetura RISC

Um PowerPC da IBM.

Reduced Instruction Set Computer ou Computador com um Conjunto Reduzido de Instruções (RISC), é uma linha de arquitetura de computadores que favorece um conjunto simples e pequeno de instruções que levam aproximadamente a mesma quantidade de tempo para serem executadas. A maioria dos microprocessadores modernos são RISCs, por exemplo DEC Alpha, SPARC, MIPS, e PowerPC. O tipo de microprocessador mais largamente usado em desktops, o x86, é mais CISC do que RISC, embora chips mais novos traduzam instruções x86 baseadas em arquitetura CISC em formas baseadas em arquitetura RISC mais simples, utilizando prioridade de execução.

Os processadores baseados na computação de conjunto de instruções reduzido não tem micro-programação, as instruções são executadas diretamente pelo hardware. Como característica, esta arquitetura, além de não ter microcódigo, tem o conjunto de instruções reduzido, bem como baixo nível de complexidade.

A ideia foi inspirada pela descoberta de que muitas das características incluídas na arquitetura tradicional de processadores para ganho de desempenho foram ignoradas pelos programas que foram executados neles. Mas o desempenho do processador em relação à memória que ele acessava era crescente. Isto resultou num número de técnicas para otimização do processo dentro do processador, enquanto ao mesmo tempo tentando reduzir o número total de acessos à memória.

Esta arquitetura suporta operações do tipo “a=b+c” descrita por “add a,b,c”, ou seja, podem especificar três operandos para uma única instrução, mas exclusivamente se estes forem registos, originando em situação contrária (operadores em memória) um atraso provocado pela introdução de ações extra no processador que se reflete no funcionamento encadeado (piplining).

Para garantir rapidez e eficiência do sistema, pretende-se que os operadores sejam acedidos á velocidade de funcionamento do processador, logo se justifica a utilização dos registos, e para que a representação de todas as variáveis para processamento sejam apresentadas como registos, tem que se garantir um número elevado destes, assegurando-se atualmente a maioria das variáveis escalares pela utilização de 32 registos genéricos que caracterizam a maioria da tecnologia dos compiladores atuais.

Processador ultraSPARC IV.

Na representação de variáveis estruturadas, a sua atribuição não se apresenta de forma tão linear, a título de exemplo, um inteiro nesta arquitetura ocupa 32 bits, os reais 32 ou 64 bits (consoante a precisão) e cada célula de memória contem apenas 8 bits, logo cada variável ocupa várias células, portanto uma operação básica entre duas variáveis estruturadas implicava várias operações entre registos (efetuadas parcialmente, e implicavam elevado número de operações e registos), para isso utilizam um indicador (.align x) para alinhar a informação apenas em localizações de memória que começam por endereço par para 16 bits (x=1) ou então múltiplos de 4 para 32 bits (x=2).

O comprimento das instruções em arquiteturas RISC tiveram que ser fixados devido a adoção de tecnologias como o piplining e a maior facilidade e simplicidade e consequente redução do tempo de execução, estando o dimensionamento determinado por 32 bits para permitir especificar os três operandos.

Características comuns à maior parte dos processadores RISC:

  • número de instruções limitado;
  • codificação de instruções em uma palavra de tamanho fixo;
  • execução sem micro-código;
  • altas taxas de execução (próximas a 1 instrução/ciclo)
  • uso intenso de pipelines;
  • poucos modos de endereçamento;
  • operações envolvendo a memória principal restritas a transferências (LOAD, STORE);
  • operações lógicas e aritméticas entre registradores, tipicamente com instruções de três endereços.

Instruções complexas: apenas incluir quando o benefício no desempenho compensar a degradação de velocidade;

Uso de transistores: área de VLSI pode ser utilizada para novas instruções ou para aumentar número de registradores, incluir memória cache no chip do processador, adicionar unidades de execução;

Uso de microcódigo: deve ser evitado, pois o overhead associado ao tempo de acesso a microinstruções na memória de controle passou a ser considerável a partir do momento em que a tecnologia da memória principal passou de núcleos de ferrite para dispositivos semicondutores;

Papel do compilador: deve substituir eficientemente as operações complexas eliminadas do hardware. Para atingir este objetivo, otimização é fundamental; projeto de compiladores realizado juntamente com o projeto dos processadores.

Processador CELL usado no playstation 3.

Olha o processador do playstation 3, sim ele e um RISC.

RISC é também a arquitetura adotada para os processadores dos videogames modernos, que proporcionam um hardware extremamente dedicado somente à execução do jogo, tornando-o muito mais rápido em relação a micro computadores com mais recursos, embora com processador x86.

RISC versus CISC

Todos os processadores dispõem de instruções de salto “de ida e volta”, normalmente designados de instruções de chamada de sub-rotinas: nestas, para além de se alterar o conteúdo do registro PC como qualquer instrução de salto, primeiro guarda-se o endereço de instrução que segue a instrução de salto ( e que se encontra no PC); nas arquiteturas CISC este valor é normalmente guardado na stack; nas arquiteturas RISC esse valor é normalmente guardado num registro.

Conjunto de instruções de um processador RISC: o conjunto de instruções que cada processador suporta é bastante variado. Contudo é possível identificar e caracterizar grupos de instruções que se encontram presentes em qualquer arquitetura.

Para transferência de informação: integram este grupo as instruções que transferem informação entre registros e a memória (load/store), entre registros (simulado no Assembler do MIPS, e implementando com uma soma com o registro 0), diretamente entre posições de memória (suportado por exemplo, no M680x0, mas não disponível em qualquer arquitetura RISC), ou entre registros e a stack, com incremento/decremento automático do sp (disponível em qualquer arquitetura CISC, mas incomum em arquiteturas RISC);

Operações aritméticas, lógicas, …: soma, subtração e multiplicação com inteiros e fp, e operações lógicas AND, OR, NOT, ShiftLeft/Right são as mais comuns; alguns processadores suportam ainda a divisão, quer diretamente por hardware, quer por microprogramação.

Acesso a operandos em memória em CISC e RISC:Uma das consequências do fato das arquiteturas CISC disporem de um menor número de registros é a alocação das variáveis escalares, em regra, a posições de memória, enquanto que nas arquiteturas RISC, a regra era a alocação a registros. Atendendo ao modelo de programação estruturada tão em voga nos anos 70, ao fato da maioria das variáveis escalares serem locais a um dado procedimento, e à necessidade do modelo de programação ter de suportar o aninhamento e recursividade de procedimentos, as arquiteturas CISC necessitavam de um leque rico de modos de endereçamento à memória, para reduzir o gap semântico entre uma HLL e a linguagem máquina.

Resume-se aqui, as principais diferenças entre as arquiteturas CISC e RISC, nas facilidades de acesso a operandos que se encontram em memória:

CISC: grande riqueza na especificação de modos de endereçamento; exemplo do i86: modo absoluto; por registro indireto –(R), – (SP), (SP)+; por registro base –(Rb)+desloc8,16,32, (Rb)+(R), (Rb)+desloc8,16,32; com acessos indiretos à memória, isto é, com apontadores para as variáveis sem memória armazenados em células de memória.

RISC: apenas em operações load/store e apenas 1 ou 2 modos; exemplo do MIPS: apenas (R)+desloc16.

Operações lógicas e aritméticas em CISC e RISC: Duas grandes diferenças se fazem notar entre estes 2 modelos: na localização dos operandos neste tipo de operações, e o nº de operandos que é possível especificar em cada instrução.

CISC: 1 ou mais operandos em memória (máx 1 no i86 e M68K); nem sempre se especificam 3 operandos (máx 2 no i86 eM68K).

RISC: operandos sempre em registros; 3 operandos especificados (1 dest, 2 fontes).

Gráfico exibindo a diferença entre a velocidade de processamento das instruções.

Como pode ser visto no gráfico acima, a quantidade de etapas pela qual a instrução nos processadores de arquitetura CISC e maior que as RISC, causando o efeito de demora para as instruções serem processadas.

Com o aparecimento de linguagens como FORTRAN, Algol, Simula, Pascal e C em 1950-1970 ajudou ao desenvolvimento de metodologias estruturas de programas, a construções lingüísticas de mais alto nível, e a maior quantidade de pessoas a escreverem programas, exigiam suporte eficiente e adequado, para poupar o trabalho de geração de código, pelos compiladores daquelas linguagens. Esta pressão viria a influenciar decisivamente a maioria dos processadores, ao ponto, de exemplo ilustrativo, chegar a haver um CPU que suportava diretamente o tipo de dados ‘lista ligada’, oferecendo instruções máquina para ‘inserir’ e ‘remover’ elementos de uma lista em memória. Instruções de grande complexidade e um grande número de instruções, são os dois principais aspectos que caracterizam um modelo CISC (Complex Instruction Set Computer). Os processadores atuais incorporados no computador pessoal (PC – Personal Computer) seguem esta filosofia.

Arquitetura Híbrida

Apesar de por questões de Marketing, muitos fabricantes ainda venderem seus chips, como sendo “Processadores RISC”, não existe praticamente nenhum processador atualmente que siga estritamente uma das duas filosofias. Tanto processadores da família x86, como o Pentium II, Pentium III e AMD Athlon, quanto processadores supostamente RISC, como o MIPS R10000 e o HP PA-8000, ou mesmo o G4, utilizado nos Macintoshs misturam características das duas arquiteturas, por simples questão de performance. Por que ficar de um lado ou de outro, se é possível juntar o melhor dos dois mundos? A última coisa que os fabricantes de processadores são é teimosos, sempre que aparece uma solução melhor, a antiga e abandonada.

Intel Pentium 3

Um exemplo de processador hibrido.

Examinando de um ponto de vista um pouco mais prático, a vantagem de uma arquitetura CISC é que já temos muitas das instruções guardadas no próprio processador, o que facilita o trabalho dos programadores, que já dispõe de praticamente todas as instruções que serão usadas em seus programas. No caso de um chip estritamente RISC, o programador já teria um pouco mais de trabalho, pois como disporia apenas de instruções simples, teria sempre que combinar várias instruções sempre que precisasse executar alguma tarefa mais complexa. Seria mais ou menos como se você tivesse duas pessoas, uma utilizando uma calculadora comum, e outra utilizando uma calculadora cientifica. Enquanto estivessem sendo resolvidos apenas cálculos simples, de soma, subtração, etc. quem estivesse com a calculadora simples poderia até se sair melhor, mas ao executar cálculos mais complicados, a pessoa com a calculadora científica disporia de mais recursos.

A ideia de construção de um processador híbrido é bastante interessante, pois faz com que finalmente PCs possam ter um desempenho realmente astronômica. A Intel, porém, errou feio em um detalhe importante do projeto do Pentium Pro: o seu decodificador CISC foi desenvolvido basicamente para trabalhar com código de 32 bits – ou seja, com sistemas operacionais como o Windows NT, OS/2 e Netware. (Nota: o Windows 95 é um sistema operacional híbrido; apesar da Microsoft declarar que se trata de um “sistema operacional de 32 bits”, isto não é totalmente verdade. Grande parte do seu código ainda é de 16 bits de modo a tornar-se compatível com aplicativos escritos para o Windows 3.x).

Isto quer dizer que, se tivermos um Pentium-200 e um Pentium Pro-200, um Windows 3.11 será mais rápido no Pentium e não no Pentium Pro, por mais incrível que possa parecer.

Conclusão: Não vale a pena adquirir um micro baseado no Pentium Pro se você for utilizar MS-DOS, Windows 3.x ou Windows 95. Processadores de outros fabricantes – em especial o 6×86 da Cyrix e o 5K86 da AMD – também possuem arquitetura híbrida CISC/RISC, com a vantagem de possuírem um decodificador otimizado para código tanto de 32 bits quanto de 16 bits. Nos chips atuais, que são na verdade misturas das duas arquiteturas, juntamos as duas coisas. Internamente, o processador processa apenas instruções simples. Estas instruções internas, variam de processador para processador, são como uma luva, que se adapta ao projeto do chip.

As instruções internas de um K6 são diferentes das de um Pentium por exemplo. Sobre estas instruções internas, temos um circuito decodificador, que converte as instruções complexas utilizadas pelos programas em várias instruções simples que podem ser entendidas pelo processador. Estas instruções complexas sim, são iguais em todos os processadores usados em micros PC. é isso que permite que um Athlon e um Pentium III sejam compatíveis entre sí.

O conjunto básico de instruções usadas em micros PC é chamado de conjunto x86. Este conjunto é composto por um total de 187 instruções, que são as utilizadas por todos os programas. Além deste conjunto principal, alguns processadores trazem também instruções alternativas, que permitem aos programas executar algumas tarefas mais rapidamente do que seria possível usando as instruções x86 padrão. Alguns exemplos de conjuntos alternativos de instruções são o MMX (usado apartir do Pentium MMX), o 3D-NOW! (usado pelos processadores da AMD, a partir do K6-2), e o SSE (suportado pelo Pentium III).

Referencias:
https://secure.wikimedia.org/wikipedia/pt/wiki/Processadores
http://br.geocities.com/thiago_ferauche/aulas/arquitetura/CISCxRISC.doc
http://alumni.ipt.pt/~brunobt/CISC_versus_RISC.htm#tabela
http://www.clubedohardware.com.br/printpage/857

Leitura complementar:

http://www.4shared.com/file/226765303/e5326018/Cisc_e_Risc.html
http://www.4shared.com/file/226765412/8e61774a/Plataformas_CISC_e_RISC.html
http://www.guiadohardware.net/artigos/risc-cisc/

[]‘s

A maldita SCM

Hi,estava planejando até a metade deste ano em montar um provedor wireless,vender conexão para ganhar um extra,então resolvi pesquisar para ver como seria,mais como nada no brasil é fácil é sempre temos uma burocracia danada,sobre a questão dos equipamentos necessários para montar o servidor e simples,mais quando fui ver as pendencias burocráticas para ter um servidor dessas,até desanimei com a idéia.

A polêmica licença SCM para Provedores Wireless

Todos sabem de que um Provedor de Internet via Rádio (wireless) precisa de uma licença de telecomunicações para poder operar legalmente. Mas não é só isso. A ANATEL (Agência Nacional de Telecomunicações) exige muito mais. Um provedor Wireless tem condições de atender estas exigências? Todo este investimento vale a pena?

Um provedor Wireless precisa atender a uma série de exigências para poder solicitar a licença SCM e assim que ele consegue, precisa uma licença de estação de radiotransmissão, precisa de equipamentos homologados, precisa pagar ICMS, precisa prestar contas de qualidade e atendimento em relatórios à Anatel, precisa de um 0800 e muito mais detalhes além de ter um engenheiro contratado e estar inscrito no CREA.

Esta pequena lista demonstra que esta licença SCM não é feita para um pequeno provedor que normalmente opera numa pequena cidade ou em uma parte de uma cidade maior. Existem alguns provedores particulares de porte e na verdade nem estes tem estrutura para atender todas as exigências para cumprir 100% às exigências relacionadas a SCM.

Ocorre que a licença SCM é projetada para atender a uma ampla gama de serviços de telecomunicações, desde a simples telefonia até a transmissão de dados, tanto com fio quanto com rádio ou satélite.

Normalmente as grandes teleoperadoras (companhias de telefonia) possuem esta licença SCM e assim o provedor numa cidade de 20.000 habitantes automaticamente se torna concorrente dela.

O regulamento de assuntos relacionadas a telecomunicações é tanto necessário quanto os regulamentos de transito. Ninguém quer sofrer danos por uso de equipamentos não aprovados e ninguém quer ouvir chiados na televisão quando o vizinho acessar Internet ou telefonar, certo.

Portanto também as fiscalizações da ANATEL são certíssimas e necessárias, pelo menos na nossa opinião. Não seria correto que uma empresa use equipamentos incorretos, não homologados e não certificados que talvez causem danos a terceiros.

Quando observamos as leis de telecomunicações, especialmente a resolução da licença SCM e nos detemos à seção das sanções onde estão definidas as possíveis multas, ficamos assustados. A sanção para infração leve é de até R$5.000.000,00!

Isso definitivamente nada tem a ver com provedor de Internet que luta para pagar o aluguel de R$450,00 onde está instalada o AP dele, certo?

Também não ajuda muito usar a licença de outra empresa. Isso somente resolve uma minúscula parte do problema.

Cabe a nós, usuários, provedores e servidores, iniciar um movimento tentando convencer a ANATEL de regulamentar a parte de Acesso Internet de forma mais adequada à economia e realidade das pequenas empresas.

Caso contrário as pequenas empresas vão sofrer interrupções devido as fiscalizações da ANATEL e NUNCA vão estar 100% em ordem. Devido à falta de verba é impossível que elas atendam no mesmo nível que uma grande Teleoperadora.

Estas interrupções causariam insatisfação no usuário que tarde ou cedo mudaria para um serviço ADSL e o mercado perde diversificação e cai na mão de monopólios. Essa seria a pior opção.

Numa cidade grande o usuário ainda tem como escolher mas no interior de todos os estados muitas vezes existe somente uma teleoperadora oferecendo acesso rápido a Internet.

Deveria ser uma grande preocupação de cada cidadão não ajudar a criar monopólios, cortando as nossas opções de escolha de provedor.

A opção que a ANATEL deveria criar é tipo licença limitada para o fornecimento de Acesso Internet via rádio por localidade, excluindo as outras inúmeras opções da SCM, cobrando um valor menor, não sendo necessário a presença contínua de um engenheiro, apenas obrigando a empresa de usar equipamentos homologados e ter a estação licenciada.

Esta medida com certeza garante de que cada provedor providencia a própria licença, ajudaria a prestar um serviço de menor custo e melhor qualidade e garante a diversificação do mercado e garante também impostos locais municipais e empregos.

Esperamos que os leitores deste artigo expressem sua opinião incluindo seus comentários.

Estaremos coletando essas informações para enviar um baixo-assinado à ANATEL em seguida.

Fontes:

http://www.malima.com.br/article_read.asp?id=257

matik.com.br

Por que diabos não criam licenças mais fáceis e simples, feitas para pequenas redes, licenças como essa só dificultam a livre concorrência.

[]‘s

Vírus ataca sistema da Band e tira “Jornal da Noite” do ar

Vírus não é parte da rotina do desktop de grande parte de nós, mas continua sendo uma preocupação para os administradores de sistemas e de redes mistas, além de potencialmente estar ao alcance até mesmo de nossos desktops, embora na prática este dia ainda não tenha chegado. Casos de vírus relacionados a sistemas importantes no exterior são divulgados com relativa frequência, mas o relato abaixo é de uma situação com bastante visibilidade ocorrida recentemente no Brasil.

“Muita gente estranhou que o “Jornal da Noite”, apresentado por Boris Casoy, não foi ao ar na noite desta quinta-feira. Mais estranho ainda, porque as chamadas entraram normalmente. Uma pane no provedor do jornalismo, que não pode ser identificada e corrigida a tempo, impediu a sua exibição. Não havia, na verdade, a menor condição. Diante disso, no improviso, entrou uma reprise da “Escolinha”, que hoje está para a Bandeirantes, como o “Chaves” para o SBT. Ou o “Pica Pau” para a Record. E como atrás de uma notícia ruim, sempre tem outra pior: a audiência da “Escolinha” foi quase 3 vezes maior que a normalmente registrada pelo jornal. Chega neste momento uma informação oficial da Band: “o sistema foi vítima de um vírus. Os dispositivos de segurança foram reforçados”.”

Fonte

Winetricks

Hi,winetricks é um pequeno script criado para facilitar a instalação de uma serie de libs e e alguns programas(ie6,vlc,kde for windows,firefox3). Lista de aplicações instaladas via winetricks

This script can help you prepare your system for Windows applications
that mistakenly assume all users' systems have all the needed
redistributable runtime libraries or fonts.
Some options require the Linux 'cabextract' program.

Options:
-q quiet. You must have already agreed to the EULAs.
-v verbose
-V display Version

Packages:

art2kmin MS Access 2000 runtime. License required!
colorprofile Standard RGB color profile
comctl32 MS common controls 5.80
comctl32.ocx MS comctl32.ocx and mscomctl.ocx, comctl32 wrappers for VB6
controlpad MS ActiveX Control Pad
corefonts MS Arial, Courier, Times fonts
dcom98 MS DCOM, override the Wine implementation
dirac0.8 the obsolete Dirac 0.8 directshow filter
directx9 MS DirectX 9 user redistributable
divx divx video codec
dotnet11 MS .NET 1.1 (requires Windows license)
dotnet20 MS .NET 2.0 (requires Windows license)
ffdshow ffdshow video codecs
flash Adobe Flash Player ActiveX and firefox plugins
fm20 MS Forms 2.0 Object Library
fontfix Fix bad fonts which cause crash in some apps (e.g. .net).
gdiplus MS gdiplus.dll (from powerpoint viewer)
gecko The HTML rendering Engine (Mozilla)
icodecs Intel Codecs (Indeo)
jet40 MS Jet 4.0 Service Pack 8
liberation Red Hat Liberation fonts (Sans, Serif, Mono)
mdac25 MS MDAC 2.5: Microsoft ODBC drivers, etc.
mdac27 MS MDAC 2.7
mdac28 MS MDAC 2.8
mfc40 MS mfc40 (Microsoft Foundation Classes from Visual C++ 4)
mfc42 MS mfc42 (see vcrun6 below)
mono20 mono-2.0.1
msi2 MS Installer 2.0
mshflxgd MS Hierarchical Flex Grid Control
msls31 MS Line Services 3.1 (needed by native riched?)
msmask MS Masked Edit Control
msscript MS Script Control
msxml3 MS XML version 3
msxml4 MS XML version 4
msxml6 MS XML version 6
ogg ogg filters/codecs: flac, theora, speex, vorbis, schroedinger
ole2 MS 16 bit OLE
pdh MS pdh.dll (Performance Data Helper)
quicktime72 Apple Quicktime 7.2
riched20 MS riched20 and riched32
riched30 MS riched30
tahoma MS Tahoma font (not part of corefonts)
urlmon MS urlmon.dll
vb3run MS Visual Basic 3 runtime
vb4run MS Visual Basic 4 runtime
vb5run MS Visual Basic 5 runtime
vb6run MS Visual Basic 6 runtime
vcrun6 MS Visual C++ 6 sp4 libraries (mfc42, msvcp60, msvcrt)
vcrun2003 MS Visual C++ 2003 libraries (mfc71,msvcp71,msvcr71)
vcrun2005 MS Visual C++ 2005 libraries (mfc80,msvcp80,msvcr80)
vcrun2005sp1 MS Visual C++ 2005 sp1 libraries
vcrun2008 MS Visual C++ 2008 libraries (mfc90,msvcp90,msvcr90)
vjrun20 MS Visual J# 2.0 libraries (requires dotnet20)
wininet MS wininet.dll (requires Windows license)
wmp9 MS Windows Media Player 9 (requires Windows license)
wmp10 MS Windows Media Player 10 (requires Windows license)
wsh56 MS Windows Scripting Host 5.6
wsh56js MS Windows scripting 5.6, jscript only, no cscript
wsh56vb MS Windows scripting 5.6, vbscript only, no cscript
xvid xvid video codec
Apps:
autohotkey Autohotkey (open source gui scripting language)
firefox3 Firefox Version 3
ie6 Microsoft Internet Explorer 6.0
kde KDE for Windows installer
mpc Media Player Classic
vlc VLC media player

Pseudopackages:

allfonts All listed fonts (corefonts, tahoma, liberation)
allcodecs All listed codecs (xvid, ffdshow, icodecs)
fakeie6 Set registry to claim IE6sp1 is installed
native_mdac Override odbc32 and odbccp32
native_oleaut32 Override oleaut32
nt40 Set windows version to nt40
win98 Set windows version to Windows 98
win2k Set windows version to Windows 2000
winxp Set windows version to Windows XP
vista Set windows version to Windows Vista
winver= Set windows version to default (winxp)
volnum Rename drive_c to harddiskvolume0 (needed by some installers)

Instalando

Primeiramente faremos a instalação do cabextract,que é uma dependência do winetricks. Faça o download do pacote para a sua distribuição em http://www.cabextract.org.uk/.No meu caso uso slackware.

# installpkg cabextract-1.0-i686-1rmx.tgz

Após instalar o cabextract,podemos instalar o winetricks.

$ wget http://www.kegel.com/wine/winetricks

Após baixar o winetricks,daremos permissão de execução.

Ler mais »

O monge e o macaco

Era uma vez um rapaz que gostava de programar. Ele descobriu a programação por acaso e se encantou com a idéia de transformar as ideias na sua cabeça em software para que outras pessoas pudessem usar. Então ele começou uma jornada em busca da linguagem que fosse capaz de expressar exatamente o que ele pensava.

Ele começou com Pascal e aprendeu que com ela poderia iterar e recursar, modularizar e estruturar. E viu que isso era bom, e estudou mais e mais, e naquela época ele foi feliz. Porém o excesso de restrições começou a travar o seu pensamento e nessa época ele foi infeliz.

Então ele decidiu que queria algo que melhor e procurou Java. E então ele aprendeu que poderia orientar a objeto sem se preocupar com a coleta de lixo. E viu que isso era bom e nessa época ele foi feliz. Mas chegou um dia que o excesso de camadas começou a travar o seu pensamento e nessa época ele foi infeliz.

Então ele decidiu que se quisesse ser um programador de vedade teria que aprender C e Assembly. Ele estudou e estudou, e descobriu que podia fazer tudo que sua mente imaginava, inclusive besteiras. E nessa época ele foi feliz. Ele tinha para si todo o controle da máquina e assumiu a responsabilidade sobre esse poder. Ele percebeu que poderia ter o que tinha em Pascal, com C e ele foi feliz. Ele percebeu que poderia ter o que tinha em Java, com C++ e ele foi feliz. E ele percebeu que poderia ter o que quisesse se estivesse disposto a pagar o preço em Assembly, e ele foi muito feliz.

Mas algo faltava que ainda o incomodava e ele não sabia explicar o porquê. Tentou escrever um programa que explicasse o que faltava, mas não conseguiu resolver. Então, nessa época, ele foi infeliz. Ele se desesperou, e procurou apender todas as linguagens do mundo, mas nenhuma era suficiente para explicar o que estava faltando. Tentou VB, C#, Python, Lisp e nada. Nem mesmo Brainfuck conseguia explicar o que faltava. E ele era infeliz, e até a sua infelicidade era incompleta. Ele pensou em desistir, mas até esse pensamento era incompleto.

Então um dia ele conheceu um monge e esse monge lhe apresentou uma nova linguagem não muito conhecida. Ele viu mas não ficou interessado, pois nenhuma linguagem até ali havia mostrado o que lhe faltava. Mas o monge insistiu e ele aceitou, e então ele começou a estudar Perl.

Então ele viu que a linguagem era cheia de símbolos e construções estranhas e aquilo não era bom. Era feio e esquisito, e ele continuava sem saber o que lhe faltava. Sua mente já estava cansada e seus pensamentos minguavam, mas algo o impelia a continuar e estudar.

Um dia, ele não sabe qual, aconteceu algo e ele não soube o quê. Veio um estalo e tudo se tornou claro. Seu mundo de sombras teve luz. E ele não sabia explicar o que era, mas isso era bom e ele foi feliz. Então ele procurou fazer um retrospecto de seu caminho até ali para descobrir o que lhe acontecera. Ele olhou para si e descobriu que podia ver coisas que não via antes. Ele olhou para Pascal e resolveu problemas que não tinham solução naquela época. Ele olhou para Java e entendeu quais eram as camadas necessárias e quais eram as barreiras. Ele olhou para C e percebeu que a linguagem era tão poderosa que ele deixou-a amarrar suas mãos e prender sua mente, e ele entendeu como utilizar por completo esse poder a seu favor. Ele olhou para VB, C# e todo o .NET e aceitou que era melhor mesmo deixar pra lá… Então ele olhou para Lisp e viu como realmente eram escritas as linhas de código do universo, e que tinha Perl colando as coisas.

Então ele olhou para Perl, e notou que os símbolos estranhos eram só atalhos para abstrações e que a linguagem era muito mais que isso. Era grande, poderosa, flexível e bela, muito bela. E foi aí que ele descobriu o que lhe faltava, e isso não era uma linguagem de programação. Perl lhe trouxe uma nova forma de olhar para o mundo e perceber coisas que antes ele não percebia. Perl o iluminou e libertou sua mente, e ele entendeu que até ali tinha sido apenas um macaco, repetindo comandos e algoritmos sem entender o seu real significado. Não importava qual era a linguagem, ele era somente um macaco, e antes desse estalo, mesmo com Perl ele não compreendia. Mesmo com Perl ele continuava a ser um macaco, e teria sido assim se ele não tivesse compreendido. Não importaria qual a nova linguagem, ele continuaria a ser um macaco.

Ele percebeu que sua mente estava escravizada por mecanismos que a obrigavam a não pensar, e quanto mais linguagens ele aprendia, mais e mais mecanismos apareciam para oprimir e degradar seu pensamento.Então agora finalmente ele havia descoberto que o que lhe faltava não era uma tecnologia, mas sim era libertar a sua mente. Ele tornou-se um monge. E ele se libertou dos mecanismos de opressão, e todas as linguagens que ele conhecia passaram a se completar e fazer sentido. Ele não mais programava, mas falava Perl, então ele foi capaz de expressar completamente seus pensamentos em qualquer linguagem, e assim ele foi finalmente feliz.

Conto legal demais :)
Fonte

Pagina 1 of 41234
SEO Powered by Platinum SEO from Techblissonline