A publicação dos textos abaixo tem como origem a Wikipédia, a enciclopédia livre, e tem como única finalidade a informação puramente didática, não visando nenhum lucro monetário mas tão somente semear o conhecimento aos amantes do assunto informática. Aqueles que de alguma maneira se sentirem  prejudicados, contate-nos e retiraremos a publicação do site.

História da computação

Origem: Wikipédia, a enciclopédia livre.

Computação

A capacidade dos seres humanos em calcular quantidades nos mais variados modos foi um dos fatores que possibilitaram o desenvolvimento da matemática e da lógica. Nos primórdios da matemática e da álgebra, utilizavam-se os dedos das mãos para efetuar cálculos.

A mais antiga ferramenta conhecida para uso em computação foi o ábaco, e foi inventado na Babilônia por volta de 2400 a.C. O seu estilo original de uso, era desenhar linhas na areia com rochas. Ábacos, de um design mais moderno, ainda são usados como ferramentas de cálculo.

O ábaco dos romanos consistia de bolinhas de mármore que deslizavam numa placa de bronze cheia de sulcos. Também surgiram alguns termos matemáticos: em latim "Calx" significa mármore, assim "Calculos" era uma bolinha do ábaco, e fazer cálculos aritméticos era ''Calculares''

No século V a.C., na antiga Índia, o gramático Pānini formulou a gramática de Sânscrito usando 3959 regras conhecidas como Ashtadhyāyi, de forma bastante sistemática e técnica. Pānini usou meta-regras, transformações e recursividade com tamanha sofisticação que sua gramática possuía o poder computacional teórico tal qual a Máquina de Turing.

Entre 200 a.C. e 400, os indianos também inventaram o logaritmo, e partir do século XIII tabelas logarítmicas eram produzidas por matemáticos islâmicos. Quando John Napier descobriu os logaritmos para uso computacional no século XVI, seguiu-se um período de considerável progresso na construção de ferramentas de cálculo.

John Napier (1550-1617), escocês inventor dos logaritmos, também inventou os ossos de Napier, que eram tabelas de multiplicação gravadas em bastão, o que evitava a memorização da tabuada.

A primeira máquina de verdade foi construída por Wilhelm Schickard (1592-1635), sendo capaz de somar, subtrair, multiplicar e dividir. Essa máquina foi perdida durante a guerra dos trinta anos, sendo que recentemente foi encontrada alguma documentação sobre ela. Durante muitos anos nada se soube sobre essa máquina, por isso, atribuía-se a Blaise Pascal (1623-1662) a construção da primeira máquina calculadora, que fazia apenas somas e subtrações.

Pascal, que aos 18 anos trabalhava com seu pai em um escritório de coleta de impostos na cidade de Rouen, desenvolveu a máquina para auxiliar o seu trabalho de contabilidade.

A calculadora usava engrenagens que a faziam funcionar de maneira similar a um odômetro.

Pascal recebeu uma patente do rei da França para que lançasse sua máquina no comércio. A comercialização de suas calculadoras não foi satisfatória devido a seu funcionamento pouco confiável, apesar de Pascal ter construído cerca de 50 versões.

A máquina Pascal foi criada com objetivo de ajudar seu pai a computar os impostos em Rouen, França. O projeto de Pascal foi bastante aprimorado pelo matemático alemão Gottfried Wilhelm Leibniz (1646-1726), que também inventou o cálculo, o qual sonhou que, um dia no futuro, todo o raciocínio pudesse ser substituído pelo girar de uma simples alavanca.

Em 1671, o filósofo e matemático alemão de Leipzig, Gottfried Wilhelm Leibniz introduziu o conceito de realizar multiplicações e divisões através de adições e subtrações sucessivas. Em 1694, a máquina foi construída, no entanto, sua operação apresentava muita dificuldade e era sujeita a erros.

Em 1820, o francês natural de Paris, Charles Xavier Thomas, conhecido como Thomas de Colmar,projetou e construiu uma máquina capaz de efetuar as 4 operações aritméticas básicas: a Arithmomet. Esta foi a primeira calculadora realmente comercializada com sucesso. Ela fazia multiplicações com o mesmo princípio da calculadora de Leibnitz e efetuava as divisões com a assistência do usuário.

Todas essas máquinas, porém, estavam longe de serem consideradas um computador, pois não eram programáveis. Isto quer dizer que a entrada era feita apenas de números, mas não de instruções a respeito do que fazer com os números.

Os Algoritmos

No século VII, o matemático indiano Brahmagupta explicou pela primeira vez o sistema de numeração hindu-arábico e o uso do 0. Aproximadamente em 825, o matemático persa Al-Khwarizmi escreveu o livro Calculando com numerais hindus, responsável pela difusão do sistema de numeração hindu-arábico no Oriente Médio, e posteriormente na Europa. Por volta do século XII houve uma tradução do mesmo livro para o latim: Algoritmi de número Indorum. Tais livros apresentaram novos conceitos para definir sequências de passos para completar tarefas, como aplicações de aritmética e álgebra. Por derivação do nome, atualmente usa-se o termo algoritmo.

A Revolução Industrial

Em 1801, na França, durante a Revolução Industrial, Joseph Marie Jacquard, mecânico francês, (1752-1834) inventou um tear mecânico controlado por grandes cartões perfurados. Sua máquina era capaz de produzir tecidos com desenhos bonitos e intrincados. Foi tamanho o sucesso que Jacquard foi quase morto quando levou o tear para Lyon, pois as pessoas tinham medo de perder o emprego. Em sete anos, já havia 11 mil teares desse tipo operando na França.

Babbage e Ada

A ideia de Jacquard atravessou o Canal da Mancha, onde inspirou Charles Babbage (1792-1871), um professor de matemática de Cambridge, a desenvolver uma máquina de "tecer números", uma máquina de calcular onde a forma de calcular pudesse ser controlada por cartões.

Charles Babbage foi um matemático inglês.

Foi com Charles Babbage que o computador moderno começou a ganhar forma, através de seu trabalho no engenho analítico. O equipamento, apesar de nunca ter sido construído com sucesso, possuía todas as funcionalidades do computador moderno. Foi descrito originalmente em 1837, mais de um século antes que qualquer equipamento do gênero tivesse sido construído com sucesso. O grande diferencial do sistema de Babbage era o fato que seu dispositivo foi projetado para ser programável, item imprescindível para qualquer computador moderno.

Tudo começou com a tentativa de desenvolver uma máquina capaz de calcular polinômios por meio de diferenças, o calculador diferencial. Enquanto projetava seu calculador diferencial, a ideia de Jacquard fez com que Babbage imaginasse uma nova e mais complexa máquina, o calculador analítico, extremamente semelhante ao computador atual.

O projeto, totalmente mecânico, era composto de uma memória, um engenho central, engrenagens e alavancas usadas para a transferência de dados da memória para o engenho central e dispositivos para entrada e saída de dados. O calculador utilizaria cartões perfurados e seria automático.

Sua parte principal seria um conjunto de rodas dentadas, o moinho, formando uma máquina de somar com precisão de cinquenta dígitos. As instruções seriam lidas de cartões perfurados. Os cartões seriam lidos em um dispositivo de entrada e armazenados, para futuras referências, em um banco de mil registradores. Cada um dos registradores seria capaz de armazenar um número de cinquenta dígitos, que poderiam ser colocados lá por meio de cartões a partir do resultado de um dos cálculos do moinho.

Por algum tempo, o governo britânico financiou Babbage para construir a sua invenção.

Além disso tudo, Babbage imaginou a primeira máquina de impressão, que imprimiria os resultados dos cálculos, contidos nos registradores. Babbage conseguiu, durante algum tempo, fundos para sua pesquisa, porém não conseguiu completar sua máquina no tempo prometido e não recebeu mais dinheiro. Hoje, partes de sua máquina podem ser vistas no Museu Britânico, que também construiu uma versão completa, utilizando as técnicas disponíveis na época.

Durante sua colaboração, a matemática Ada Lovelace publicou os primeiros programas de computador em uma série de notas para o engenho analítico. Por isso, Lovelace é popularmente considerada como a primeira programadora. Em parceria com Charles Babbage, Ada Augusta (1815-1852) ou Lady Lovelace, filha do poeta Lord Byron, era matemática amadora entusiasta. Ela se tornou a pioneira da lógica de programação, escrevendo séries de instruções para o calculador analítico. Ada inventou os conceitos de subrotina, uma seqüência de instruções que pode ser usada várias vezes, loop, uma instrução que permite a repetição de uma sequência de cartões, e do salto condicional, que permite saltar algum cartão caso uma condição seja satisfeita.

Babbage teve muitas dificuldades com a tecnologia da época, que era inadequada para se construir componentes mecânicos com a precisão necessária. Com a suspensão do financiamento por parte do governo britânico, Babbage e Ada utilizaram a fortuna da família Byron até a falência, sem que pudessem concluir o projeto, e assim o calculador analítico nunca foi construído.

Ada Lovelace e Charles Babbage estavam avançados demais para o seu tempo, tanto que até a década de 1940, nada se inventou parecido com seu computador analítico. Até essa época foram construídas muitas máquinas mecânicas de somar destinadas a controlar negócios (principalmente caixas registradoras) e algumas máquinas inspiradas na calculadora diferencial de Babbage, para realizar cálculos de engenharia (que não alcançaram grande sucesso).

A Lógica Binária

Por volta do século III a.C., o matemático indiano Pingala inventou o sistema de numeração binário. Ainda usado atualmente no processamento de todos computadores modernos, o sistema estabelece que sequências específicas de uns e zeros podem representar qualquer número, letra ou imagem.

Em 1703 Gottfried Leibniz desenvolveu a lógica em um sentido formal e matemático, utilizando o sistema binário. Em seu sistema, uns e zeros também representam conceitos como verdadeiro e falso, ligado e desligado, válido e inválido. Levou mais de um século para que George Boole publicasse a álgebra booleana (em 1854), com um sistema completo que permitia a construção de modelos matemáticos para o processamento computacional. Em 1801 apareceu o tear controlado por cartão perfurado, invenção de Joseph Marie Jacquard, no qual buracos indicavam os uns, e áreas não furadas indicavam os zeros. O sistema está longe de ser um computador, mas ilustrou que as máquinas poderiam ser controladas pelo sistema binário.

As máquinas do início do século XIX utilizavam base decimal (0 a 9), mas foram encontradas dificuldades em implementar um dígito decimal em componentes eletrônicos, pois qualquer variação provocada por um ruído causaria erros de cálculo consideráveis.

O matemático inglês George Boole (1815-1864) publicou em 1854 os princípios da lógica booleana, onde as variáveis assumem apenas valores 0 e 1 (verdadeiro e falso), que passou a ser utilizada a partir do início do século XX.

Shannon e a Teoria da Informação

Até a década de 1930, engenheiros eletricistas podiam construir circuitos eletrônicos para resolver problemas lógicos e matemáticos, mas a maioria o fazia sem qualquer processo, de forma particular, sem rigor teórico para tal. Isso mudou com a tese de mestrado de Claude E. Shannon de 1937, A Symbolic Analysis of Relay and Switching Circuits. Enquanto tomava aulas de Filosofia, Shannon foi exposto ao trabalho de George Boole, e percebeu que tal conceito poderia ser aplicado em conjuntos eletro-mecânicos para resolver problemas de lógica. Tal ideia, que utiliza propriedades de circuitos eletrônicos para a lógica, é o conceito básico de todos os computadores digitais. Shannon desenvolveu a teoria da informação no artigo de 1948 A Mathematical Theory of Communication, cujo conteúdo serve como fundamento para áreas de estudo como compressão de dados e criptografia.

Hollerith e sua máquina de perfurar cartões

Por volta de 1890, Dr. Herman Hollerith (1860-1929) foi o responsável por uma grande mudança na maneira de se processar os dados dos censos da época.

O próximo avanço dos computadores foi feito pelo americano Herman Hollerith (1860-1929), que inventou uma máquina capaz de processar dados baseada na separação de cartões perfurados (pelos seus furos). A máquina de Hollerith foi utilizada para auxiliar no censo de 1890, reduzindo o tempo de processamento de dados de sete anos, do censo anterior, para apenas dois anos e meio. Ela foi também pioneira ao utilizar a eletricidade na separação, contagem e tabulação dos cartões.

Os dados do censo de 1880, manualmente processados, levaram 7 anos e meio para serem compilados. Os do censo de 1890 foram processados em 2 anos e meio, com a ajuda de uma máquina de perfurar cartões e máquinas de tabular e ordenar, criadas por Hollerith e sua equipe.

As informações sobre os indivíduos eram armazenadas por meio de perfurações em locais específicos do cartão. Nas máquinas de tabular, um pino passava pelo furo e chegava a uma jarra de mercúrio, fechando um circuito elétrico e causando um incremento de 1 em um contador mecânico.

Mais tarde, Hollerith fundou uma companhia para produzir máquinas de tabulação. Anos depois, em 1924, essa companhia veio a se chamar como International Business Machines,ou IBM,como é hoje conhecida.

O primeiro computador

O primeiro computador eletro-mecânico foi construído por Konrad Zuse (1910-1995). Em 1936, esse engenheiro alemão construiu, a partir de relés que executavam os cálculos e dados lidos em fitas perfuradas, o Z1.

Há uma grande polêmica em torno do primeiro computador. O Z-1 é considerado por muitos como o primeiro computador eletro-mecânico.

Zuse tentou vender o computador ao governo alemão, que desprezou a oferta, já que não poderia auxiliar no esforço de guerra. Os projetos de Zuse ficariam parados durante a guerra, dando a chance aos americanos de desenvolver seus computadores, o chamado Eniac.

A guerra e os computadores

Durante o travamento da Segunda Guerra Mundial a Marinha americana, em conjunto com a Universidade de Harvard, desenvolveu o computador Harvard Mark I, projetado pelo professor Howard Aiken, com base no calculador analítico de Babbage. O Mark I ocupava 120m³ aproximadamente, conseguindo multiplicar dois números de dez dígitos em três segundos. Este computador gigante permitiu ter o primeiro centro de computação no mundo, assim dando o início á era moderna dos computadores.

Em segredo, o Exército dos Estados Unidos também desenvolvia seu computador. Esse usava apenas válvulas e tinha por objetivo calcular as trajetórias de mísseis com maior precisão.

Simultaneamente, e em segredo, o Exército Americano desenvolvia um projeto semelhante, chefiado pelos engenheiros J. Presper Eckert e John Mauchy, cujo resultado foi o primeiro computador a válvulas, o Eletronic Numeric Integrator And Calculator (ENIAC)[2], capaz de fazer quinhentas multiplicações por segundo. Tendo sido projetado para calcular trajetórias balísticas, o ENIAC foi mantido em segredo pelo governo americano até o final da guerra, quando foi anunciado ao mundo.

O engenheiro John Presper Eckert (1919-1995) e o físico John Mauchly (1907-1980) projetaram o ENIAC: Eletronic Numeric Integrator And Calculator. Com 18 000 válvulas, o ENIAC conseguia fazer 500 multiplicações por segundo, porém só ficou pronto em 1946, vários meses após o final da guerra.

Os custos para a manutenção e conservação do ENIAC eram proibitivos, pois dezenas a centenas de válvulas queimavam a cada hora e o calor gerado por elas necessitava ser controlado por um complexo sistema de refrigeração, além dos gastos elevadíssimos de energia elétrica.

No ENIAC, o programa era feito rearranjando a fiação em um painel. Nesse ponto John von Neumann propôs a ideia que transformou os calculadores eletrônicos em "cérebros eletrônicos": modelar a arquitetura do computador segundo o sistema nervoso central. Para isso, eles teriam que ter três características:

  1. Codificar as instruções de uma forma possível de ser armazenada na memória do computador. Von Neumann sugeriu que fossem usados uns e zeros.
  2. Armazenar as instruções na memória, bem como toda e qualquer informação necessária a execução da tarefa, e
  3. Quando processar o programa, buscar as instruções diretamente na memória, ao invés de lerem um novo cartão perfurado a cada passo.

Este é o conceito de programa armazenado, cujas principais vantagens são: rapidez, versatilidade e automodificação. Assim, o computador programável que conhecemos hoje, onde o programa e os dados estão armazenados na memória ficou conhecido como Arquitetura de von Neumann.

Para divulgar essa ideia, von Neumann publicou sozinho um artigo. Eckert e Mauchy não ficaram muito contentes com isso, pois teriam discutido muitas vezes com ele. O projeto ENIAC acabou se dissolvendo em uma chuva de processos, mas já estava criado o computador moderno...

O nascimento da Ciência da Computação

Antes da década de 1920, o computador era um termo associado a pessoas que realizavam cálculos, geralmente liderados por físicos em sua maioria homens. Milhares de computadores, eram empregados em projetos no comércio, governo e sítios de pesquisa. Após a década de 1920, a expressão máquina computacional começou a ser usada para referir-se a qualquer máquina que realize o trabalho de um profissional computador, especialmente aquelas de acordo com os métodos da Tese de Church-Turing.

O termo máquina computacional acabou perdendo espaço para o termo reduzido computador no final da década de 1940, com as máquinas digitais cada vez mais difundidas. Alan Turing, conhecido como pai da Ciência da Computação, inventou a Máquina de Turing, que posteriormente evoluiu para o computador moderno.

O Trabalho Teórico

Os fundamentos matemáticos da ciência da computação moderna começaram a serem definidos por Kurt Gödel com seu teorema da incompletude (1931). Essa teoria mostra que existem limites no que pode ser provado ou desaprovado em um sistema formal; isso levou a trabalhos posteriores por Gödel e outros teóricos para definir e descrever tais sistemas formais, incluindo conceitos como recursividade e cálculo lambda.

Em 1936 Alan Turing e Alonzo Church independentemente, e também juntos, introduziram a formalização de um algoritmo, definindo os limites do que pode ser computado, e um modelo puramente mecânico para a computação. Tais tópicos são abordados no que atualmente chama-se Tese de Church-Turing, uma hipótese sobre a natureza de dispositivos mecânicos de cálculo. Essa tese define que qualquer cálculo possível pode ser realizado por um algoritmo sendo executado em um computador, desde que haja tempo e armazenamento suficiente para tal.

Turing também incluiu na tese uma descrição da Máquina de Turing, que possui uma fita de tamanho infinito e um cabeçote para leitura e escrita que move-se pela fita. Devido ao seu caráter infinito, tal máquina não pode ser construída, mas tal modelo pode simular a computação de qualquer algoritmo executado em um computador moderno. Turing é bastante importante para a ciência da computação, tanto que seu nome é usado para o Turing Award e o teste de Turing. Ele contribuiu para as quebras de código da Grã-Bretanha na Segunda Guerra Mundial, e continuou a projetar computadores e programas de computador pela década de 1940.

Alan Turing

Alan Mathison Turing nasceu em 23 de junho de 1912 em Londres, filho de um oficial britânico, Julius Mathison e Ethel Sara Turing. Seu interesse pela ciência começou cedo, logo que aprendeu a ler e escrever, distraia-se fatorando números de hinos religiosos e desenhando bicicletas anfíbias. A maior parte do seu trabalho foi desenvolvido no serviço de espionagem, durante a II Grande Guerra, levando-o somente por volta de 1975 a ser reconhecido como um dos grandes pioneiros no campo da computação, Em 1928, Alan começou a estudar a Teoria da Relatividade, conhecendo Christopher Morcom, que o influenciou profundamente. Morcom morreu em 1930 e Alan se motivou a fazer o que o amigo não teve tempo, durante anos trocou correspondências com a mãe de Morcom a respeito das idéias do amigo e se maravilhou com a possibilidade de resolver problemas com a teoria mecânica quântica.Chegou inclusive a escrever sobre a possibilidade do espírito sobreviver após a morte.

Depois de concluir o mestrado em King's College (1935) e receber o Smith's prize em 1936 com um trabalho sobre a Teoria das Probabilidades, Turing se enveredou pela área da computação. Sua preocupação era saber o que efetivamente a computação poderia fazer. As respostas vieram sob a forma teórica, de uma máquina conhecida como Turing Universal Machine, que possibilitava calcular qualquer número e função, de acordo com instruções apropriadas.

Quando a II Guerra Mundial eclodiu, Turing foi trabalhar no Departamento de Comunicações da Gran Bretanha (Government Code and Cypher School) em Buckinghamshire, com o intuito de quebrar o código das comunicações alemãs, produzido por um tipo de computador chamado Enigma. Este código era constantemente trocado, obrigando os inimigos a tentar decodifica-lo correndo contra o relógio. Turing e seus colegas cientistas trabalharam num sistema que foi chamado de Colossus, um enorme emaranhado de servo-motores e metal, considerado um precursor dos computadores digitais.

Durante a guerra, Turing foi enviado aos EUA a fim de estabelecer códigos seguros para comunicações transatlânticas entre os aliados. Supõe-se que foi em Princeton, NJ, que conheceu Von Neumann e daí ter participado no projeto do ENIAC na universidade da Pensilvânia..

Terminada a guerra, Alan se juntou ao National Physical Laboratory para desenvolver um computador totalmente inglês que seria chamado de ACE (automatic computing engine).Decepcionado com a demora da construção, Turing mudou-se para Manchester. Em 1952, foi preso por "indecência", sendo obrigado a se submeter à pisicoanálise e a tratamentos que visavam curar sua homossexualidade.Turing suicidou-se em Manchester, no dia 7 de junho de 1954, durante uma crise de depressão, comendo uma maçã envenenada com cianureto de potássio.

O Teste de Turing

O teste consistia em submeter um operador, fechado em uma sala, a descobrir se quem respondia suas perguntas, introduzidas através do teclado, era um outro homem ou uma máquina. Sua intenção era de descobrir se podiamos atribuir à máquina a noção de inteligência.

Von Neumann

O matemático húngaro John Von Neumann (1903-1957) formalizou o projeto lógico de um computador.

Em sua proposta, Von Neumann sugeriu que as instruções fossem armazenadas na memória do computador. Até então elas eram lidas de cartões perfurados e executadas, uma a uma. Armazená-las na memória, para então executá-las, tornaria o computador mais rápido, já que, no momento da execução, as instruções seriam obtidas com rapidez eletrônica.

A maioria dos computadores hoje em dia segue o modelo proposto por Von Neumann.

Esse modelo define um computador seqüencial digital em que o processamento das informações é feito passo a passo, caracterizando um comportamento determinístico (ou seja, os mesmos dados de entrada produzem sempre a mesma resposta).

Primeiros computadores pessoais

Os mainframes surgiam cada vez maiores e caros, sendo utilizados apenas por grandes empresas.

Até o final dos anos 1970, reinavam absolutos os mainframes, computadores enormes, trancados em salas refrigeradas e operados apenas por alguns poucos privilegiados. Apenas grandes empresas e bancos podiam investir alguns milhões de dólares para tornar mais eficientes alguns processos internos e o fluxo de informações. A maioria dos escritórios funcionava mais ou menos da mesma maneira que no começo do século. Arquivos de metal, máquinas de escrever, papel carbono e memorandos faziam parte do dia-a-dia.

Segundo o Computer History Museum, o primeiro "computador pessoal" foi o Kenbak-1, lançado em 1971. Tinha 256 Bytes de memória e foi anunciado na revista Scientific American por US$ 750; todavia, não possuía CPU e era, como outros sistemas desta época, projetado para uso educativo (ou seja, demonstrar como um "computador de verdade" funcionava). Em 1975, surge o Altair 8800, um computador pessoal baseado na CPU Intel 8080. Vendido originalmente como um kit de montar através da revista norte-americana Popular Electronics, os projetistas pretendiam vender apenas algumas centenas de unidades, tendo ficado surpresos quando venderam 10 vezes mais que o previsto para o primeiro mês. Custava cerca de 400 dólares e se comunicava com o usuário através de luzes que piscavam. Entre os primeiros usuários estavam o calouro da Universidade de Harvard, Bill Gates, e o jovem programador, Paul Allen, que juntos desenvolveram uma versão da linguagem "Basic" para o Altair. Pouco tempo depois, a dupla resolveu mudar o rumo de suas carreiras e criar uma empresa chamada Microsoft.

Nos anos seguintes, surgiram dezenas de novos computadores pessoais como o Radio Shack TRS-80 (O TRS-80 foi comercializado com bastante sucesso no Brasil pela Prológica com os nomes de CP-300 e CP-500), Commodore 64, Atari 400 e outros com sucesso moderado.

A Apple e a popularização

O Apple II foi lançado em 1977 com teclado integrado, gráficos coloridos, sons, gabinete de plástico e oito slots de expansão.

Em 1976, outra dupla de jovens, Steve Jobs e Steve Wozniak, iniciou outra empresa que mudaria o rumo da informática: a Apple.

Jobs e Wozniak abandonaram a Universidade de Berkeley para poderem se dedicar ao projeto de computador pessoal criado por Wozniak, o Apple I. Como Wozniak trabalhava para a HP, o seu projeto precisava ser apresentado para a empresa que recusou de imediato a idéia. Isso abriu o caminho para a criação da Apple, empresa fundada pelos dois que comercializaria os computadores. Montados na garagem de Jobs, os 200 primeiros computadores foram vendidos nas lojas da vizinhança a US$ 500 cada. Interessado no projeto, Mike Makula (na época vice-presidente de marketing da Intel), resolveu investir US$ 250 mil na Apple.

Alguns meses depois, já em 1977, foi lançado o primeiro microcomputador como conhecemos hoje, o Apple II. O equipamento já vinha montado, com teclado integrado e era capaz de gerar gráficos coloridos. Parte da linguagem de programação do Apple II havia sido feita pela Microsoft, uma variação do BASIC para o Apple II. As vendas chegaram a US$ 2,5 milhões no primeiro ano de comercialização e, com o seu rapido crescimento de vendas, a Apple tornou-se uma empresa pública (ou seja, com ações que podem ser adquiridas por qualquer um na bolsa de valores) e ela construiu a sua sede principal - Infinite Loop - em Cupertino, Califórnia.

Com o sucesso do Apple II, vieram o Visicalc (a primeira planilha eletrônica inventada), processadores de texto e programas de banco de dados. Os micros já podiam substituir os fluxos de caixa feitos com cadernos e calculadoras, máquinas de escrever e os arquivos de metal usados para guardar milhares de documentos. Os computadores domésticos deixaram então de ser apenas um hobby de adolescentes para se tornarem ferramentas indispensáveis para muitas pessoas.

Entretanto, até o começo dos anos 1980, muitos executivos ainda encaravam os computadores pessoais como brinquedos. Além das mudanças de hábitos necessárias para aproveitar a nova tecnologia, os mais conservadores tinham medo de comprar produtos de empresas dirigidas por um rapaz de 26 anos que há menos de 5 trabalhava na garagem dos pais.

Os computadores pessoais para empresas

O IBM PC utilizava o PC-DOS e possuia a BIOS como única parte de produção exclusiva da IBM.

Em 1980, a IBM estava convencida de que precisava entrar no mercado da microinformática e o uso profissional dos micros só deslanchou quando ela entrou nesse mercado. A empresa dominava (e domina até hoje) o mercado de computadores de grande porte e, desde a primeira metade do século XX, máquinas de escrever com sua marca estavam presentes nos escritórios de todo mundo. Como não estava acostumada à agilidade do novo mercado, criado e dominado por jovens dinâmicos e entusiasmados, a gigantesca corporação decidiu que o PC não podia ser criado na mesma velocidade na qual ela estava acostumada a desenvolver novos produtos.

Por isso, a empresa criou uma força tarefa especial para desenvolver o novo produto. Assim, um grupo de 12 engenheiros liderados por William C. Lowe foi instalado em um laboratório em Boca Raton, na Flórida, longe dos principais centros de desenvolvimento da corporação que, até hoje, ficam na Califórnia e em Nova Iorque. O resultado desse trabalho foi o IBM-PC, que tinha um preço de tabela de US$ 2.820, bem mais caro que os concorrentes, mas foi um sucesso imediato. Em 4 meses foram vendidas 35 mil unidades, 5 vezes mais do que o esperado. Como observou o jornalista Robert X Cringley: "ninguém nunca tinha sido despedido por comprar produtos IBM". Os micros deixaram definitivamente de ser um brinquedo.

A Parceria IBM - Microsoft

Como todo computador, o IBM PC precisava de um Sistema Operacional para poder ser utilizado. Durante o processo de desenvolvimento do IBM PC, houve uma tentativa sem sucesso de contratar a Digital Research, uma empresa experiente na criação de Sistemas Operacionais, para o desenvolvimento do Sistema Operacional da IBM.

Sem outra alternativa, a IBM recorreu a Microsoft que ofereceu um Sistema Operacional para a IBM, mas na verdade eles não tinham nada pronto. Ao assinar o contrato de licenciamento do DOS (Disk Operating System - Sistema Operacional de Disco) para a IBM, Bill Gates e Paul Allen foram atrás da Seatlle Computer, uma pequena empresa que desenvolvia o Sistema Operacional QDOS e que o vendeu para a Microsoft por US$ 50.000 sem imaginar o fim que esse sistema teria.

A Microsoft então adaptou-o e criou o PC-DOS. O contrato com a IBM previa uma royalty (de 10 a 50 dólares por cada máquina vendida) e um pequeno pagamento inicial. Mas o sistema continuava sobre propriedade da Microsoft, assim como a possibilidade de distribuir versões modificadas (MS-DOS).

Esse contrato é, sem dúvida alguma, um dos mais importantes do século XX pois, através desse contrato, a Microsoft deixou de ser uma microempresa de software para se tornar a empresa mais poderosa no ramo da informática e tornar Bill Gates um dos homens mais ricos do mundo atual.

A aposta da Apple para continuar no topo

A aposta Apple Inc. para se manter no topo do mercado: o Macintosh. Sua interface gráfica deixava a IBM décadas atrás.

Em dezembro de 1979, a Apple Computer era a empresa de maior sucesso da microinformática. O carro chefe da empresa, o Apple II+ já estava presente em escolas e residências da elite americana. Entretanto, as máquinas ainda eram difíceis de usar. Para operar um microcomputador, era preciso conhecer a "linguagem" do sistema operacional e a sintaxe correta para aplicá-la. Todas as interações do usuário com a máquina eram feitas através da digitação de comandos. Uma letra errada e a operação não era realizada, exigindo a digitação do comando correto. Assim, antes de aproveitar os benefícios da informática, era indispensável aprender todos os comandos de controle do computador.O computador da Apple estava com quase 2 anos de existência e já começava a ficar velho. A empresa precisava criar algo novo para continuar competindo.

A Xerox, empresa que dominava o mercado de copiadoras, acreditava que o seu negócio poderia perder rentabilidade com a redução do fluxo de documentos em papel, por causa do uso de documentos em formato eletrônico. Foi criado então, em 1970, o Palo Alto Research Center (PARC) com o intuito de inventar o futuro.Nessa época o PARC desenvolvia muitas novidades como as redes locais e impressoras laser, mas a pesquisa mais importante era a interface gráfica e o mouse. Após grandes desastres na tentativa de comercializar computadores do PARC (o computador do PARC saia por US$ 17 mil enquanto o da IBM custava apenas US$ 2,8 mil), a Xerox desistiu do projeto.

Steve Jobs também desenvolvia nos laboratórios da Apple Inc. a interface gráfica. Buscando saber detalhes de como ela ficaria depois de pronta, trocou opções de compra de ações da Apple por uma visita detalhada de três dias ao PARC. O primeiro produto lançado pela Apple usando os conceitos criados pela Xerox foi o Lisa. Apesar de moderno, não chegou a ser produzido em grande quantidade, pois o mercado não estava preparado para pagar quase US$ 10 mil apenas pela facilidade de uso.

Em 1979 Jef Raskin, um especialista em interfaces homem-máquina, imaginou um computador fácil de utilizar e barato para o grande público. Ele então lançou as bases do projeto Macintosh. O projeto inovador do Macintosh atraiu a atenção de Steve Jobs, que saiu do projeto Lisa com sua equipe para se concentrar no projeto Macintosh. Em janeiro de 1981, ele tomou a direção do projeto, forçando Jef Raskin a deixar o mesmo.

Em 24 de janeiro de 1984 surgiu o Macintosh, o primeiro computador de sucesso com uma interface gráfica amigável, usando ícones, janelas e mouse. Sua acolhida foi extremamente entusiástica, grande parte disso devido às campanhas publicitárias em massa da Apple. O principal anúncio de seu lançamento foi durante o intervalo da Super Bowl XVIII (evento comparável com a importância da Copa do Mundo para o Brasil). Essa propaganda é conhecida como "1984", pois era baseada no livro "Nineteen Eighty-Four" (Mil Novecentos e Oitenta e Quatro) de George Orwell, e retrata um mundo no qual todos eram submetidos ao regime totalitário do "Big Brother" (Grande Irmão). Uma heroína representada por Anya Major destroí um telão no qual o Big Brother falava ao público. O intuito do comercial era relacionar a IBM ao "Big Brother" e a heroína à Apple.

Os "IBM-PC Compatíveis"

A clonagem do BIOS quase tirou a IBM do mercado de PCs.

O mesmo grupo que criou o IBM-PC também definiu que o componente básico do computador, a BIOS, seria de fabricação exclusiva da IBM. Esse chip tem a finalidade de fornecer aos PCs uma interface de entrada e saída de dados. Como todos os outros componentes do computador eram fabricados por outras empresas, a IBM tinha nesses chips a sua maior fonte de renda e a única coisa que vinculava qualquer PC à IBM.

Algumas empresas, dentre elas a Compaq, aplicaram a técnica de engenharia reversa no BIOS, clonaram-na e construíram computadores similares ao da IBM. Em novembro de 1982, a Compaq anuncia o Compaq Portable, primeiro PC que não usa a BIOS da IBM e mantém 100% de compatibilidade com o IBM PC.

Esses computadores são conhecidos como "IBM PC compatíveis" e são os PCs que são vendidos nas lojas até hoje, apenas bem mais evoluídos do que os primeiros PCs. Isso levou a IBM a se tornar uma simples empresa que fabricava computadores pessoais e concorria como qualquer outra nesse mercado. A IBM praticamente abandonou o mercado de PCs e se dedicou ao mercado de servidores, na qual é imbatível até hoje.

Gerações de computadores

A arquitetura de um computador depende do seu projeto lógico, enquanto que a sua implementação depende da tecnologia disponível.

As três primeiras gerações de computadores refletiam a evolução dos componentes básicos do computador (hardware) e um aprimoramento dos programas (software) existentes.

Os computadores de primeira geração (19451959) usavam válvulas eletrônicas, quilômetros de fios, eram lentos, enormes e esquentavam muito.

A segunda geração (1959–1964) substituiu as válvulas eletrônicas por transístores e os fios de ligação por circuitos impressos, o que tornou os computadores mais rápidos, menores e de custo mais baixo.

A terceira geração de computadores (1964–1970) foi construída com circuitos integrados, proporcionando maior compactação, redução dos custos e velocidade de processamento da ordem de microssegundos. Tem início a utilização de avançados sistemas operacionais.

A quarta geração, de 1970 até hoje, é caracterizada por um aperfeiçoamento da tecnologia já existente, proporcionando uma otimização da máquina para os problemas do usuário, maior grau de miniaturização, confiabilidade e maior velocidade, já da ordem de nanossegundos (bilionésima parte do segundo).

O termo quinta geração foi criado pelos japoneses para descrever os potentes computadores "inteligentes" que queriam construir em meados da década de 1990. Posteriormente, o termo passou a envolver elementos de diversas áreas de pesquisa relacionadas à inteligência computadorizada: inteligência artificial, sistemas especialistas e linguagem natural.

Mas o verdadeiro foco dessa ininterrupta quinta geração é a conectividade, o maciço esforço da indústria para permitir aos usuários conectarem seus computadores a outros computadores. O conceito de super-via da informação capturou a imaginação tanto de profissionais da computação como de usuários comuns.

A Computação Móvel e a convergência de mídias

No início do século XXI, a partir de iniciativas de empresas como o Google, a Nokia e, sobretudo, a Apple, iniciaram uma extensão da quarta geração de computadores que resultou na unificação de linguagens de tecnologias já existentes, e consequente extensão das funcionalidades. A computação pessoal deixou de se limitar aos chamados desktops (outrora chamados de "microcomputadores") e passou a incluir outros dispositivos como telefones celulares e aparelhos de televisão, bem como uma nova categoria de dispositivos chamado tablet - uma espécie de computador delgado e portátil, sem teclado físico nem mouse e com tela sensível ao toque, do tamanho de um livro. Aplicações de uso geral passaram a ser portadas para esses dispositivos e, devido ao desenvolvimento da computação em nuvem, arquivos armazenados em um dispositivo puderam ser sincronizados em outros dispositivos, tornando a computação onipresente. Estes conceitos, que estão em curso atualmente, estão progressivamente tornando mídias físicas externas obsoletas, salvo talvez os cartões de memória.

Realizações para a sociedade

Apesar de sua pequena história enquanto uma disciplina acadêmica, a ciência da computação deu origem a diversas contribuições fundamentais para a ciência e para a sociedade. Esta ciência foi responsável pela definição formal de computação e computabilidade, e pela prova da existência de problemas insolúveis ou intratáveis computacionalmente. Também foi possível a construção e formalização do conceito de linguagem de computador, sobretudo linguagem de programação, uma ferramenta para a expressão precisa de informação metodológica flexível o suficiente para ser representada em diversos níveis de abstração.

Para outros campos científicos e para a sociedade de forma geral, a ciência da computação forneceu suporte para a Revolução Digital, dando origem a Era da Informação. A computação científica é uma área da computação que permite o avanço de estudos como o mapeamento do genoma humano

 

FONTE : WIKIPÉDIA

Linguagem de programação

Origem: Wikipédia, a enciclopédia livre.

Trecho de programa na linguagem de programaçãoC.

Uma linguagem de programação é um método padronizado para comunicar instruções para um computador.1 É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador.2 Nota 1 Permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias. Linguagens de programação podem ser usadas para expressar algoritmos com precisão.

O conjunto de palavras (lexemas classificados em tokens), compostos de acordo com essas regras, constituem o código fontede um software.3 Esse código fonte é depois traduzido para código de máquina, que é executado pelo processador.3

Uma das principais metas das linguagens de programação é permitir que programadores tenham uma maior produtividade, permitindo expressar suas intenções mais facilmente do que quando comparado com a linguagem que um computador entende nativamente (código de máquina).4 Assim, linguagens de programação são projetadas para adotar uma sintaxe de nível mais alto, que pode ser mais facilmente entendida por programadores humanos. Linguagens de programação são ferramentas importantes para que programadores e engenheiros de software possam escrever programas mais organizados e com maior rapidez.Linguagens de programação também tornam os programas menos dependentes de computadores ou ambientes computacionais específicos (propriedade chamada de portabilidade5 ). Isto acontece porque programas escritos em linguagens de programação são traduzidos para o código de máquina do computador no qual será executado em vez de ser diretamente executado. Uma meta ambiciosa do Fortran, uma das primeiras linguagens de programação, era esta independência da máquina onde seria executada.6 7

História

O primeiro trabalho de linguagem de programação foi criado por Ada Lovelace, grande amiga deCharles Babbage.8 O projeto da primeira calculadora mecânica programável foi idealizado porCharles Babbage9 que, após gastar fortunas e um longo tempo, não conseguiu concretizar o projeto.10 A linguagem de programação ADA foi batizada em homenagem a esta primeira programadora.11

Uma das primeiras linguagens de programação para computadores foi provavelmente Plankalkül, criada por Konrad Zuse na Alemanha Nazista,12 mas que teve pouco ou nenhum impacto no futuro das linguagens de programação.

O primeiro compilador foi escrito por Grace Hopper,13 em 1952, para a linguagem de programação A-0.14 A primeira linguagem de programação de alto nível amplamente usada foiFortran, criada em 1954.15 14 Em 1957 foi criada B-0, sucessora da A-0, que daria origem a Flow-Matic (1958), antecessor imediato de COBOL, de 1959.16 O COBOL foi uma linguagem de ampla aceitação para uso comercial.16 A linguagem ALGOL foi criada em 1958-196017 O ALGOL-60 teve grande influência no projeto de muitas linguagens posteriores.18

A linguagem Lisp foi criada em 1958 e se tornou amplamente utilizada na pesquisa na área de ciência da computação mais proeminentemente na área de Inteligência Artificial.19 Outra linguagem relacionada ao campo da IA que surge em 1972 é a linguagemProlog, uma linguagem do paradigma lógico.20

orientação a objetos é outro marco importante na história das linguagens de programação. A linguagem Simula 67 introduz o conceito de classes.21 A linguagem Smalltalk2223 expande o conceito de classes e se torna a primeira linguagem de programação que oferecia suporte completo à programação orientada a objetos.24 A linguagem C++(originalmente conhecida como C com classes) populariza a orientação a objetos.25

Diversas linguagens de programação surgiram desde então. Entre estas incluem-se C♯,26 VB.NETJavaObject PascalObjective-CPHPPython,27 SuperColliderlinguagem D 28 e Ruby.29 Nota 2

Interpretação e compilação

O processo da compilação.

Uma linguagem de programação pode ser convertida, ou traduzida, em código de máquina por compilação ou interpretada por um processo denominadointerpretação. Em ambas ocorre a tradução do código fonte para código de máquina.30

Se o método utilizado traduz todo o texto do programa (também chamado de código), para só depois executarNota 3 o programa, então diz-se que o programa foi compilado e que o mecanismo utilizado para a tradução é um compilador (que por sua vez nada mais é do que um programa).31 A versão compilada do programa tipicamente é armazenada, de forma que o programa pode ser executado um número indefinido de vezes sem que seja necessária nova compilação, o que compensa o tempo gasto na compilação. Isso acontece com linguagens como Pascal32 e C.

Se o texto do programa é executado à medida que vai sendo traduzido, como em JavaScriptBASICPython ou Perl, num processo de tradução de trechos seguidos de sua execução imediata, então diz-se que o programa foi interpretado e que o mecanismo utilizado para a tradução é um interpretador. Programas interpretados são geralmente mais lentos do que os compilados, mas são também geralmente mais flexíveis, já que podem interagir com o ambiente mais facilmente.33

Embora haja essa distinção entre linguagens interpretadas e compiladas, as coisas nem sempre são tão simples. Há linguagens compiladas para um código de máquina virtual (sendo esta máquina virtual apenas mais um software, que emula a máquina virtual sendo executado em uma máquina real), como Java34(compila para a plataforma Java35 ) e C♯ (compila para a plataforma CLI36 ). E também há outras formas de interpretar em que os códigos fontes, ao invés de serem interpretados linha-a-linha, têm blocos "compilados" para a memória, de acordo com as necessidades, o que aumenta a performance dos programas quando os mesmos módulos são chamados várias vezes, técnica esta conhecida como JIT.

Como exemplo, podemos citar a linguagem Java. Nela, um compilador traduz o código java para o código intermediário (e portável) da JVM. As JVMs originais interpretavam esse código, de acordo com o código de máquina do computador hospedeiro, porém atualmente elas compilam, segundo a técnicaJIT o código JVM para código hospedeiro.

A tradução é tipicamente feita em várias fases, sendo as mais comuns a análise léxica, a análise sintática (ou parsing), a geração de código e a otimização.37 Em compiladores também é comum a geração de código intermediário.Nota 4

Conceitos

Programação estruturada

Programação estruturada é uma forma de programação de computadores que preconiza que todos os programas possíveis podem ser reduzidos a apenas três estruturas: sequência, decisão e repetição.38 Um dos primeiros a preconizar a programação estruturada foi Haskell B. Curry39 Nota 5 Tendo, na prática, sido transformada na Programação modular, a Programação estruturada orienta os programadores para a criação de estruturas simples em seus programas, usando as sub-rotinas e as funções. Foi a forma dominante na criação de software entre a programação linear e a programação orientada por objetos.40 Apesar de ter sido sucedida pela programação orientada por objetos, pode-se dizer que a programação estruturada ainda é marcantemente influente, uma vez que grande parte das pessoas ainda aprendem programação através dela. Porém, a orientação a objetos superou o uso das linguagens estruturadas no mercado.41

Programação modular

Niklaus Wirth em 2005. Criador da linguagem Pascal entre outras.

Programação modular é uma forma de programação no qual o desenvolvimento das rotinas de programação é feito através de módulos, que são interligados entre si através de uma interface comum.42 Foi apresentado originalmente pela Information & Systems Institute, Inc. no National Symposium on Modular Programming em 1968, com a liderança de Larry Constantine. Exemplos de linguagens que orientaram seu projeto para este aspecto estão as linguagens Modula-2,43 44 desenvolvida por Niklaus Wirth e a Modula-3.45 .

Programação orientada a objetos

Orientação a objetos, também conhecida como Programação Orientada a Objetos (POO), ou ainda em inglês Object-Oriented Programming (OOP) é um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos. O extensivo uso de objetos, particularmente em conjunção com o mecanismo deherança, caracteriza o estilo de programação orientada a objetos.46 Em alguns contextos, prefere-se usar modelagem orientada ao objeto(UML), em vez de programação. De fato, o paradigma "orientação a objetos" tem bases conceituais e origem no campo de estudo da cognição, que influenciou a área de inteligencia artificial e da lingüística no campo da abstração de conceitos do mundo real. Na qualidade de método de modelagem, é tida como a melhor estratégia, e mais natural, para se eliminar o "gap semântico", dificuldade recorrente no processo de modelar o mundo real, no domínio do problema, em um conjunto de componentes de software que seja o mais fiel na sua representação deste domínio. Facilitaria a comunicação do profissional modelador e do usuário da área alvo, na medida em que a correlação da simbologia e conceitos abstratos do mundo real e da ferramenta de modelagem (conceitos, terminologia, símbolos, grafismo e estratégias) fosse a mais óbvia, natural e exata possível. A análise e projeto orientados a objetos tem como meta identificar o melhor conjunto de objetos para descrever um sistema de software.47 O funcionamento deste sistema se dá através do relacionamento e troca de mensagens entre estes objetos. Na programação orientada a objetos, implementa-se um conjunto declasses que definem os objetos presentes no sistema de software. Cada classe determina o comportamento (definido nos métodos) e estados possíveis (atributos) de seus objetos, assim como o relacionamento com outros objetos.42

Programação linear

Em matemática, problemas de Programação Linear são problemas de otimização nos quais a função objetivo e as restrições são todas lineares.48 Programação Linear é uma importante área da otimização por várias razões. Muitos problemas práticos em pesquisa operacional podem ser expressos como problemas de programação linear. Certos casos especiais de programação linear, tais como problemas de network flow e problemas de multicommodity flow são considerados importantes o suficiente para que se tenha gerado muita pesquisa em algoritmos especializados para suas soluções. Vários algoritmos para outros tipos de problemas de otimização funcionam resolvendo problemas de PL como sub-problemas. Historicamente, idéias da programação linear inspiraram muitos dos conceitos centrais de teoria da otimização, tais como dualidade, decomposição, e a importância da convexidade e suas generalizações.

Classificação

As linguagens de programação podem ser classificadas e sub-classificadas de várias formas.

Classificação da ACM

ACM mantém um sistema de classificação49 com os seguintes sub-itens:

  • Linguagens aplicativas, ou de aplicação
  • Linguagens concorrentesdistribuídas e paralelas
  • Linguagens de fluxo de dados
  • Linguagens de projeto
  • Linguagens extensíveis
  • Linguagens de montagem e de macro
  • Linguagens de microprogramação
  • Linguagens não determinísticas
  • Linguagens não procedurais
  • Linguagens orientadas a objeto
  • Linguagens de aplicação especializada
  • Linguagens de altíssimo nívelNota 6

Quanto ao paradigma

Diferentes linguagens de programação podem ser agrupadas segundo o paradigma que seguem para abordar a sua sintaxe e semântica. Os paradigmas se dividem em dois grandes grupos: imperativo e declarativo.50

Paradigmas Imperativos

Os paradigmas imperativos são aqueles que facilitam a computação por meio de mudanças de estado.50 Se dividem em:

Paradigmas Declarativos

Os paradigmas declarativos são aqueles nos quais um programa especifica uma relação ou função.50 Se dividem em:

  • O paradigma funcional. Linguagens deste paradigma não incluem qualquer provisão para atribuição ou dados mutáveis 53 Na programação funcional, o mapeamento entre os valores de entrada e saída são alcançados mais diretamente. Um programa é uma função (ou grupo de funções), tipicamente constituída de outras funções mais simples.54 Exemplos de linguagens deste paradigma são as linguagens Lisp55 , Scheme56 e Haskell57

Quanto a estrutura de tipos

  • Fracamente tipada, como PHP e Smalltalk, onde o tipo da variável muda dinamicamente conforme a situação.
  • Fortemente tipada, como Java e Ruby, onde o tipo da variável, uma vez atribuído, se mantém o mesmo até ser descartada da memória.61
  • Dinamicamente tipada, como SNOBOLAPLAwkPerlPython e Ruby, onde o tipo da variável é definido em tempo de execução.61
  • Estaticamente tipada, como Java e C, onde o tipo da variável é definido em tempo de compilação.62

Quanto ao grau de abstração

  • Linguagem de programação de baixo nível, cujos simbolos são uma representação direta do código de máquina que será gerado, onde cada comando da linguagem equivale a um "opcode" do processador, como Assembly.63
  • Linguagem de programação de médio nível,Nota 7 que possui símbolos que podem ser convertidos diretamente para código de máquina (goto, expressões matemáticas, atribuição de variáveis), mas também símbolos complexos que são convertidos por um compilador. Exemplo: CC++
  • Linguagem de programação de alto nível, composta de símbolos mais complexos, inteligível pelo ser humano e não-executável diretamente pela máquina, no nível da especificação de algoritmos, como Pascal,32 FortranALGOL,Java e SQL.63

Quanto à geração

A classificação das linguagens de programação em gerações é uma questão que apresenta divergências de autor para autor. Segundo Maclennan,64 as linguagens se dividem em cinco gerações com as seguintes características:

  • Primeira geração - São linguagens onde suas estruturas de controle são aparentemente orientadas a máquina. As instruções condicionais não são aninhadas e dependem fortemente de instruções de desvio incondicional como o GOTO. Uma linguagem típica desta geração é a linguagem Fortran.64
  • Segunda geração - São linguagens onde as estruturas de controle são estruturadas de forma a minimizar ou dispensar o uso de instruções GOTO. A segunda geração elaborou melhor e generalizou diversas estruturas de controle das linguagens de primeira geração. Uma das grandes contribuições desta geração foi suas estruturas de nomes, que eram hierarquicamente aninhadas. Isto permitiu melhor controle de espaços de nomes e uma eficiente alocação dinâmica de memória. Uma linguagem típica desta geração é o Algol 60.64
  • Terceira geração - São linguagens que dão ênfase a simplicidade e eficiência. Uma linguagem típica desta geração é a linguagem Pascal.32 As estruturas de dados desta geração mostram um deslocamento da máquina para a aplicação. As estruturas de controle são mais simples e eficientes.64
  • Quarta geração - Esta geração é essencialmente o sinônimo para linguagens com abstração de dados. A maioria das linguagens desta geração focam na modularização e no encapsulamento. Uma linguagem típica desta geração é a linguagem Ada.64
  • Quinta geração - Nesta geração, Maclennan agrupa diversos paradigmas como a orientação a objeto e o paradigma funcional, paradigma lógico.64

Henri Bal e Dick Grune, já apresentam uma classificação em gerações de forma diferente, enfatizando mais o aspecto da aplicação. São elencadas 6 gerações.65

Doris Apleby e Julius J. VandeKopple dividem as linguagens em quatro gerações que coincidem com as quatro primeiras gerações elencadas por Henri Bal e Dick Grune.50

Lista de linguagens

Livros sobre diversas linguagens de programação

Existem várias linguagens de programação; de acordo com o Índice Tiobe, as 20 mais populares são:41

  1. C
  2. Java
  3. Objective-C
  4. C++
  5. PHP
  6. C♯
  7. Visual Basic
  8. Python
  9. Perl
  10. JavaScript
  11. Ruby
  12. Visual Basic .NET
  13. Transact-SQL
  14. Lisp
  15. Pascal
  16. Bash
  17. PL/SQL
  18. Delphi / Object Pascal
  19. Ada
  20. MATLAB

DOS

Origem: Wikipédia, a enciclopédia livre.

DOS, sigla para Disk Operating System ou sistema operacional em disco1 é um acrónimo para vários sistemas operativos intimamente relacionados que dominaram o mercado para compatíveis IBM PC entre 1981 e 1995, ou até cerca de 2000 caso sejam incluídas as versões de Microsoft Windows parcialmente baseadas em DOS: Windows 3.119598Me.

Os sistemas relacionados incluem MS-DOSPC-DOSDR-DOSFreeDOSPTS-DOSROM-DOS, Novell DOS, Caldera OpenDOS, entre vários outros.

Apesar do uso difundido, nenhum destes sistemas era chamado apenas por "DOS" (designação apenas dada a um sistema operativo para um mainframe IBM da década de 1960 sem qualquer relação com os demais). Um vasto número de sistemas operativos de disco não-x86, sem qualquer relação entre eles, continham "DOS" na sua designação, e são frequentemente referidos simplesmente como "DOS" quando se discute as máquinas que os usavam (exemplos incluem AmigaDOSAMSDOSANDOSApple DOSAtari DOSCommodore DOSCSI-DOSProDOS, e TRS-DOS). Apesar de oferecerem muitas das mesmas funções do sistema operativo para os seus respectivos computadores, programas que corressem nalgum destes sistemas operativos geralmente não corriam noutros.

Design

O DOS é um sistema operativo de single-user e single-task, com funções básicas de kernel não-reentrantes: só podem ser usadas por um programa de cada vez. Há uma excepção com programas TSR, e alguns TSR podem permitir multitasking. Contudo, continua a haver um problema com a kernel não-reentrante: sempre que um processo requer um serviço dentro do kernel do sistema operativo (chamada de sistema), não pode ser interrompido por outra requisição até a primeira ter sido terminada.2

O DOS possui nativamente uma interface de linha de comandos através do seu interpretador de comandoscommand.com, porém não existe apenas uma versão do DOS. A mais conhecida e popular é o MS-DOS, da Microsoft (por isso, as iniciais MS). Outros sistemas são os PC-DOSDR-DOS e, mais recentemente, FreeDOS. Com o aparecimento dasGUIs desenvolvidas primariamente por Douglas C. Engelbart, ou seja interface gráficas, como por exemplo o Microsoft Windows 1.0 e o Common Desktop Environment(CDE), o MS-DOS ficou em segundo plano, mas não foi esquecido. Hoje em dia temos inclusive diversos emuladores como o DOSBox que nos permitem rodar os antigos programas feitos para o DOS identicamente em qualquer máquina como antigamente. Também existe uma alternativa livre chamada "FreeDOS".

História

Origem

IBM precisava de um sistema operacional para usar como padrão em sua nova linha de produtos, os PCs (Personal Computers, computadores pessoais) de 16 bits e tencionava comprar o sistema CP/M desenvolvido por Gary Kildall. Inicialmente, o pessoal da IBM contratou Bill Gates (que na época desenvolvia interpretadores da linguagem BASIC), acreditando que ele detinha os direitos sobre o CP/M; Gates, contudo, lembrou-se de Tim Paterson, programador da SCP, que havia desenvolvido o QDOS (posteriormente, 86-DOS). Ele entrou em contato com a SCP e comprou os direitos sobre o 86-DOS por (supostamente) US$ 50.000.

Pouco depois, Bill Gates contratou Tim Paterson, o desenvolvedor do QDOS, para trabalhar na Microsoft (onde ele ficou entre maio de 1981 até abril de 1982). Com algumas modificações no 86-DOS, surgiu o MS-DOS (MicroSoft Disk Operating System) o qual rapidamente dominou o mercado dos IBM-PC compatíveis. O ponto chave aqui foi a decisão de Gates, na época, em vender o MS-DOS para fabricantes de computadores com o objetivo de que estes pudessem incorporá-lo ao seu hardware, ao contrário da tentativa de Kildall de vender o CP/M individualmente (por preço mais alto) para usuários finais.

A evolução do DOS

Mesmo tendo sido favorecido no início, o DOS não foi o único sistema operacional apresentado pela IBM para a plataforma PC. Dois outros sistemas foram também aprovados pela IBM oficialmente, o CP/M-86 (cujo antecessor, o CP/M-80, fora o sistema operacional dominante da geração 8 bits de microcomputadores) e o UCSD p-System.

O projeto do DOS foi baseado intimamente nas facilidades oferecidas pelo CP/M e as idéias por trás dele, e a razão principal era para fazer com que os usuários de computador acostumados com o CP/M pudessem aprender o DOS rapidamente, além de tornar mais fácil adaptá-lo aos programas já existentes para o CP/M em 8 bits.

A influência do CP/M no DOS aparece desde a sua interface de comando quando o usamos pela primeira vez, o pronto(prompt) de comando C:\>, ou como surge no no CP/MA>. O DOS também demonstra a influência do CP/M nas maneiras que lida com o usuário e como trabalha com seus programas.

O DOS foi feito tendo o pressuposto de que apenas uma pessoa estaria usando o computador e que um único usuário estaria pedindo que o computador só executasse uma tarefa de cada vez(não se poderia por exemplo, imprimir um documento e executar um outro comando ao mesmo tempo). O DOS foi feito para ser usado em um ambiente monousuáriomonoprocessamento, seguindo os mais simples conceitos do uso da computação e era natural que fosse feito desta forma, pois suas raízes vieram de um sistema operacional e de máquinas de 8 bits.

A família PC 16 bits foi projetada de outra forma, e a herança CP/M limitava desta forma o DOS, por outra lado o Unix era um sistema operacional muito admirado pelas suas características, e a Microsoft tinha experiência no universo Unix, criando inclusive uma distribuição própria o Xenix. Assim quando chegou o momento de uma revisão das funcionalidades do DOS, muito da ideologia Unix foi implementado na nova versão do sistema. O resultado foi a versão 2.0 do DOS, e esta influência está presente em todas as versões depois desta e era visível a todos os usuários do DOS nos subdiretórios que eram usados para gerenciar os arquivos no disco. Esta influência se mostra ainda mais forte na estrutura interna e nos serviços oferecidos pelo sistema.

O DOS originalmente dava a cada programa o controle total do computador e de sua memória, e foi bastante complicado fazer com que as versões mais avançadas do DOS impusessem as limitações que são necessárias para que seja possível obter 2 programas rodando ao mesmo tempo no computador, o multiprocessamento.

O DOS foi primeiro na plataforma de 16 bits a ter uso bastante disseminado (e permaneceu assim por mais 10 anos). A variante MS-DOS, citada às vezes (coloquialmente) como''Messy DOS'', foi desenvolvida a partir do QDOS, que significava literalmente "Quick and Dirty Operating System" (em uma tradução livre, Sistema Operacional Rápido e Sujo).

Os IBM-PC foram distribuídos apenas com o PC-DOS, enquanto os computadores PC compatíveis de quase todos os outros fabricantes foram distribuídos com o MS-DOS. Nos primeiros anos dessa família de sistemas operacionais, o PC-DOS era ainda idêntico ao MS-DOS. Mais recentemente, versões livres do DOS, como o FreeDOS e o OpenDOS, surgiram.

O DOS é considerado o produto que decidiu o destino da iniciante Microsoft. O MS-DOS foi sucedido por duas linhas de produtos: o OS/2 e o Windows 95. Versões mais antigas do Microsoft Windows, antes do Windows 95, eram pouco mais que uma shell gráfica para DOS, e as posteriores eram bastante integradas com o MS-DOS. É possível também rodar programas de DOS sob outros sistemas operacionais como o OS/2 e o Linux usando emuladores (máquinas virtuais).

Por causa de sua longa existência e de sua presença massiva no universo da plataforma PC-compatível, o DOS foi considerado frequentemente como o seu sistema operacionalnativo.

Características técnicas

Prompt de comando

  • C:\> é o prompt de comando oficial do MS-DOS, e se não alterado, seu aspecto indica a letra da unidade de disco e o caminho corrente (diretório atual), em que se está posicionado. Em versões anteriores, o prompt de comando era representado apenas por A>, onde apenas a unidade de disco era exibida.

Principais Comandos

Os principais comandos do DOS são:

dir - Exibe a lista de arquivos (com informações como tamanho, data, hora).

md - Cria uma nova pasta.

cd - Entra em determinada pasta.

rd - Exclui determinada pasta.

date - Edita ou exibe a data do computador.

time - Edita ou exibe a hora do computador.

mkdir - Cria um diretório (pasta) novo. Ex. md pasta

chdir - Muda de diretório (pasta). Ex. cd pasta

cls - Limpa o conteúdo da tela.

echo - Exibe um conteúdo texto na tela. EX. echo "conteudo"

help - Exibe a relação completa dos comandos.

Importante: Os comandos sempre são executados após o pressionamento da tecla ENTER.

Principais Extensões de arquivos

.com - Arquivos executáveis (pequenos e rápidos).

.exe - Arquivos executáveis (padrão, podendo conter códigos tanto para 16, 32 ou 64Bits).

.bat - Arquivos de lote (normalmente possuem uma sequencia de comandos que são executados em Lote, um pós o outro e seu uso é bem amplo e funcional).

.txt - Arquivos de texto (normalmente texto puro, legível pelo editor oficial do DOS, EDIT).

Comunicação paralela

As comunicações paralelas podem ser testadas no dos usando-se comandos com desvio direto para a porta paralela: DIR >LPT1123

Após o comando acima se você possui uma impressora na porta LPT1 a mesma deverá imprimir o conteúdo do diretório atual.

Mensagens de erro

  • Abortar, Repetir, Falhar é uma mensagem de erro do MS-DOS que surge quando o computador não consegue aceder a uma drive de armazenamento de dados, normalmente, o disco rígidodisquete ou CD, implicitamente pede ao usuário acionar as teclas: "A" para abortar a operação, "R" para tentar ler novamente os dados, ou "F" para tentar prosseguir sem ler os dados.

Emuladores de DOS

DOSBox rodando sob linux

Sob um sistema Linux é possível rodar cópias de DOS e muitos de seus clones sob o DOSEMU, uma máquina virtualnativa de Linux, para rodar aplicativos em modo real. Há vários outros emuladores para rodar DOS sob várias versões de UNIX, mesmo em plataformas não-x86.

Emuladores de DOS foram adotados, mesmo por usuários de Windows XP, devido à incompatibilidade do sistema com o DOS puro. Muitos usuários encontram dificuldades para jogar jogos abandonware feitos para DOS, por isso, um dos mais famosos emuladores, criado especificamente para esse uso, é o DOSBox, um emulador em modo janela (opcionalmente em tela cheia) para sistemas operacionais modernos. Outro emulador, criado principalmente para o setor de negócios é o ExDOS, que permite, entre outras coisas, exibição em tela cheia, compatibilidade total comhardware e ferramentas de impressão.

Microsoft Windows

Origem: Wikipédia, a enciclopédia livre.

Microsoft Windows

Microsoft Windows é uma família sistemas operacionais criados pela Microsoft, empresa fundada por Bill Gates e Paul Allen. Antes da versão NT, era uma interface gráfica para o sistema operacional MS-DOS. O Windows é um produto comercial, com preços diferenciados para cada uma de suas versões. É o sistema operacional mais utilizado em computadores pessoais no mundo. O impacto deste sistema no mundo atual é muito grande devido ao enorme número de cópias instaladas. Conhecimentos mínimos desse sistema, do seu funcionamento, da sua história e do seu contexto são, na visão de muitos, indispensáveis, mesmo para os leigos em informática. A atual versão estável do Windows para desktops é o Windows 8.1Update 1, lançado em 17 de outubro de 2013. Para servidores o Windows Server 2012 é a versão mais recente e a mais estável.

Significado do nome

A palavra windows em português significa janelas. A sua interface gráfica é baseada no padrão WIMP e utiliza o conceitoWYSIWYG, previamente desenvolvido em Xerox PARC: possui janelas que exibem informações e recebem respostas dosutilizadores através de um teclado ou de cliques do mouse.

O registro da marca Windows foi legalmente complicado, pelo fato dessa palavra ser de uso corrente em inglês ("windows" significa "janelas"). [carece de fontes?].

Origem e história

A Microsoft começou a desenvolver o Microsoft Windows em setembro de 1981.

Windows 1.01

Windows 1.01 era uma interface gráfica bidimensional para o MS-DOS e foi lançado em 20 de Novembro de 1985. Era necessário o MS-DOS 2.0, 256 KB RAM e um disco rígido. Naquela altura, o MS-DOS só conseguia suportar 1 MB de aplicações. Era uma primeira tentativa de criar um sistema multitarefa. Nessa época, instalado em computadores XTs que tinham apenas 512Kb de memória, ocupava praticamente toda a memória disponível. O Windows 1.01 não foi nenhum grande sucesso comparado com seus sucessores da década de 1990, devido à limitação do hardware da época. Inicialmente, ele foi lançado em quatro disquetes de 5.25 polegadas de 360 KB cada um. Continha o Reversi (jogo), um calendário, bloco de notas, calculadora, relógio, prompt de comando (uma janela direta para o DOS), Write, Control Panel, Paint e programas de comunicação. Permite a utilização de mouse, janelas e ícones. Nesta versão ainda não havia sobreposição de janelas. A versão 1.02 foi lançada internacionalmente em maio de 1986 e ganhou edições em várias línguas europeias. A versão 1.03 foi lançada em agosto de 1986 internacionalmente. A versão 1.04 foi lançada em abril de 1987 e ganhou gráficos VGA.

O Windows só começa a ser tecnicamente considerado como um SO a partir da versão Windows NT, lançada em Julho de 1993. O que havia antes eram sistemas gráficos sendo executados sobre alguma versão dos sistemas compatíveis com DOS, como MS-DOSPC-DOS ou DR-DOS. Somente o MS-DOS era produzido pela própria Microsoft.

O MS-DOS é um sistema operativo que não dispõe de interface gráfica, funciona através de comandos de texto introduzidos no teclado pelo utilizador. O Windows surgiu inicialmente como uma interface gráfica para MS-DOS, que permitia correr programas em modo gráfico, o que permitiu a utilização do mouse, que até à altura era considerado supérfluo em computadores de tipo IBM-PC. 1

Versões do Microsoft Windows

Compatibilidade

Os primeiros Windows, como o 1.02.0, são compatíveis apenas com partições formatadas em sistema de ficheiros FAT, ou como é chamado, FAT 16. O 3.x poderia ser instalado em FAT 32, porém necessita ser instalado o MS-DOS 7.10, que era incluido nos disquetes de inicialização do Windows 95 OSR2 e Windows 98, necessitando modificar alguns arquivos para permitir seu funcionamento. Ao mudar do 3.1 para o 95B (Windows 95 OSR 2/OSR 2.1), os HD's poderiam ser formatados em FAT 32. Inicialmente lançado com o Windows NT, a tecnologia NTFS é agora o padrão de fato para esta classe. Com a convergência de ambos sistemas, o Windows XP passou também a preferir este formato.

Características técnicas

A principal linguagem de programação usada para escrever o código-fonte das várias versões do Windows é o C e algumas partes com C++ e Assembly.

Até a versão 3.11, o sistema rodava em 16 bits (apesar de poder instalar um update chamado Win32s para adicionar suporte a programas 32 bits), daí em diante, em 32 bits. As versões a partir do XP e Server 2003 estão preparadas para a tecnologia 64 bits.

Os sistemas de 64 bits não possuem mais suporte para rodar nativamente aplicativos de 16 bits, sendo necessário uso de emuladores/máquinas virtuais.

Os bits são relacionados ao volume de dados que um microprocessador é capaz de lidar.2 Se um processador tem uma arquitetura de 64 bits, ele é capaz de lidar com dados na ordem de 264, ou seja, 18446744073709552000.2 Só que para isso ser possível, é necessário que o sistema operacional seja de 64 bits, caso contrário ele trabalhará com somente com instruções de 32 bits (Se o sistema for de 32 bits).2 Sistemas operacionais de 64 bits também endereçam uma quantidade maior de RAM, suportando até 192GB (Windows 7 Ultimate) ou 128GB (Windows XP Professional), contra 3,2GB dos sistemas de 32 bits.2

Outra característica denominada de hearança maldita devido o fato de ter herdade essa regra do DOS é o fato de não se poder criar pastas com os determinado nomes: con, prn, aux, com1 e ltp1. Trata-se de uma antiga herança que os SOs Windows carregam do MS-DOS e são palavras reservadas para a comunicação interna do SO. Portanto, mesmo o mais recente sistema da Microsoft é incapaz de interpretar tais sentenças como simples nomes através do Windows Explorer.3

Através do Prompt de Comandos é possível criar pastas e arquivos com qualquer um dos nomes acima. Mas o sistema impede que os documentos sejam editado e excluídos pelo Windows Explorer.4

Windows 8

A última versão lançada do Windows, o Windows 8, é um sistema operacional mais estável, o seu visual é simples e tem uma boa performance em uma grande gama de computadores, tablets e Notebooks Híbridos de variadas configurações. O layout também sofreu algumas modificações, para que seja mais fácil encontrar o que você precisa, quando precisa, permitindo que o usuário ganhe tempo em tarefas rotineiras.

Um dos pontos interessantes desta nova versão do Windows, é o novo menu Iniciar com o estilo Metro. Ao mover o ponteiro do mouse no canto inferior esquerdo, você pode tanto visualizar os seus arquivos e programas da maneira clássica, como os aplicativos da Windows Store, além da busca mantida do Windows 7.

A área de trabalho foi mantida, para acesso aos arquivos como nas versões anteriores, por pastas e menus de navegação intuitivos, permitindo fácil adequação dos usuários ao Windows 8 como um todo.

Dentro das melhorias do Windows 8, também é notável que a Microsoft melhorou na velocidade de inicio e das tarefas básicas como abrir e usar programas.

Windows 10

A Microsoft lançou o Windows 10 Technical Preview5 (nome de código Threshold) no dia 30 de setembro de 2014 e em seu lançamento foi enfatizado o retorno do Menu Iniciar de que tanto os usuários sentiam falta.

Quanto ao design, houve poucas alterações quando se compara com a versão anterior (Windows 8.1). Outro recurso apresentado foram as Live Tiles, que podem ser inseridas ao lado do Menu Iniciar, e dimensionadas, tal como no Windows 8.1.

Se o usuário ainda não desejar ter o menu Iniciar de volta, pode substitui-lo pela Tela Iniciar clicando com o botão direito sobre a barra de ferramentas e, na aba "Menu Iniciar", desabilitar a opção "Usar o Menu Iniciar ao invés da Tela Iniciar".

A previsão final para que chegue aos usuários é em outubro de 2015 (sem dia oficial definido).

Implementações alternativas ao Windows e suas APIs de programação

Linux

Origem: Wikipédia, a enciclopédia livre.

 Linux é um termo utilizado para se referir a sistemas operativos (português europeu) ou sistemas operacionais (português brasileiro) que utilizem o núcleo Linux. O núcleo Linux foi desenvolvido pelo programador finlandês Linus Torvalds, inspirado no sistema Minix. O seu código fonte está disponível sob a licença GPL (versão 2) para que qualquer pessoa o possa utilizar, estudar, modificar e distribuir livremente de acordo com os termos da licença.

Inicialmente desenvolvido e utilizado por grupos de entusiastas em computadores pessoais, os sistemas operativos (português europeu) ousistemas operacionais (português brasileiro) com núcleo Linux passaram a ter a colaboração de grandes empresas como IBMSun MicrosystemsHewlett-Packard (HP), Red HatNovellOracleGoogleMandriva e Canonical.1

Apoiado por pacotes igualmente estáveis e cada vez mais versáteis de softwares livres para escritório (LibreOffice, por exemplo) ou de uso geral (projeto GNU) e por programas para micro e pequenas empresas que na maioria dos casos em nada ficam a dever aos seus concorrentes proprietários, e interfaces gráficas cada vez mais amigáveis como o KDE e o GNOME, o núcleo Linux, conhecido por sua estabilidade e robustez, tem gradualmente caído no domínio popular, encontrando-se cada vez mais presente nos computadores de uso pessoal atuais. Mas já há muito que o Linux se destaca como o núcleo preferido em servidores de grande porte, encontrando-se quase sempre presente nos mainframes de grandes empresas e até mesmo no computador mais rápido do mundo, o Tianhe-2, chinês (listaTOP500).

  • História

Linus Torvalds, criador e principal mantenedor do núcleo Linux.

núcleo Linux foi, originalmente, escrito por Linus Torvalds do Departamento de Ciência da Computação da Universidade de Helsinki,Finlândia, com a ajuda de vários programadores voluntários através da Usenet (uma espécie de sistema de listas de discussão existente desde os primórdios da Internet).

Linus Torvalds começou o desenvolvimento do núcleo como um projeto particular, inspirado pelo seu interesse no Minix, um pequeno sistemaUNIX desenvolvido por Andrew S. Tanenbaum. Ele limitou-se a criar, nas suas próprias palavras, "um Minix melhor que o Minix" ("a better Minix than Minix"). E depois de algum tempo de trabalho no projecto, sozinho, enviou a seguinte mensagem para comp.os.minix:

Você suspira pelos bons tempos do Minix-1.1, quando os homens eram homens e escreviam seus próprios "device drivers"?2Você está sem um bom projecto em mãos e deseja trabalhar num S.O. que possa modificar de acordo com as suas necessidades? Acha frustrante quando tudo funciona no Minix? Chega de noite ao computador para conseguir que os programas funcionem? Então esta mensagem pode ser exactamente para você. Como eu mencionei há um mês atrás, estou trabalhando numa versão independente de um S.O. similar ao Minix para computadores AT-386. Ele está, finalmente, próximo do estado em que poderá ser utilizado (embora possa não ser o que você espera), e eu estou disposto a disponibilizar o código-fonte para ampla distribuição. Ele está na versão 0.02... contudo eu tive sucesso ao executar bashgcc, gnu-make, gnu-sed, compress etc. nele.

Curiosamente, o nome Linux foi criado por Ari Lemmke, administrador do site ftp.funet.fi que deu esse nome ao diretório FTP onde o núcleo Linux estava inicialmente disponível.3 Linus inicialmente tinha-o batizado como "Freax".4

No dia 5 de outubro de 1991 Linus Torvalds anunciou a primeira versão "oficial" do núcleo Linux, versão 0.02. Desde então muitos programadores têm respondido ao seu chamado, e têm ajudado a fazer do Linux o sistema operacional que é hoje. No início era utilizado por programadores ou só por quem tinha conhecimentos, e usava linhas de comando. Hoje isso mudou, existem diversas empresas que criam ambientes gráficos, as distribuições são cada vez mais amigáveis de forma que uma pessoa com poucos conhecimentos consegue usar o Linux. Hoje o Linux é um sistema estável e consegue reconhecer muitos periféricos sem necessidade de se instalar os drivers de som, vídeo, modem, rede, entre outros.

Núcleo

A onipresença da Núcleo Linux

GNOME Shell, interface gráfica para Linux

KDE, interface gráfica para Linux

Compiz Fusion, um gerenciador de janelasOpenGL

O termo Linux refere-se ao núcleo (em inglês: "kernel") do sistema operativo. O termo também é usado pelos meios de comunicação e usuários para referir-se aos sistemas operacionais baseados no núcleo Linux agregado a outros programas. Segundo Tanenbaum e Silberschatz, um núcleo pode ser considerado o próprio sistema operativo, quando este é definido como um gerenciador de recursos de hardware.

Arquitetura

O Linux é um núcleo monolítico: as funções do núcleo (escalonamento de processosgerenciamento de memória, operações de entrada/saída, acesso ao sistema de arquivos) são executadas no espaço de núcleo. Uma característica do núcleo Linux é que algumas das funções (drivers de dispositivos, suporte à rede, sistema de arquivos, por exemplo) podem ser compiladas e executadas como módulos (em inglês: LKM - loadable kernel modules), que são bibliotecas compiladas separadamente da parte principal do núcleo e podem ser carregadas e descarregadas após o núcleo estar em execução.

Portabilidade

Embora Linus Torvalds não tivesse como objetivo inicial tornar o Linux um sistema portátil, ele evoluiu nessa direção. Linux é hoje um dos núcleos de sistemas operativos mais portáteis, correndo em sistemas desde o iPaq (um computador portátil) até o IBM S/390(um denso e altamente custoso mainframe).

Os esforços de Linus foram também dirigidos a um diferente tipo de portabilidade. Portabilidade, de acordo com Linus, era a habilidade de facilmente compilar aplicações de uma variedade de código fonte no seu sistema; consequentemente, o Linux originalmente tornou-se popular em parte devido ao esforço para que os códigos-fonte GPL ou outros favoritos de todos corressem em Linux.

O Linux hoje funciona em dezenas de plataformas, desde mainframes até um relógio de pulso, passando por várias arquitecturas: x86 (IntelAMD), x86-64 (Intel EM64TAMD64), ARMPowerPCAlphaSPARC e etc, com grande penetração também em sistemas embarcados, como handheldsPVRconsola de videojogoscelularesTVs e centros multimídia, entre outros.

Termos de licenciamento

Inicialmente, Torvalds lançou o Linux sob uma licença de software que proibia qualquer uso comercial. Isso foi mudado de imediato para a GNU General Public License. Essa licença permite a distribuição e mesmo a venda de versões possivelmente modificadas do Linux, mas requer que todas as cópias sejam lançadas dentro da mesma licença e acompanhadas do código fonte.

Apesar de alguns dos programadores que contribuem para o núcleo permitirem que o seu código seja licenciado com GPL versão 2 ou posterior, grande parte do código (incluído as contribuições de Torvalds) menciona apenas a GPL versão 2. Isto faz com que o núcleo como um todo esteja sob a versão 2 exclusivamente, não sendo de prever sua adoção da nova GPLv3.

Sistemas de arquivos suportados

O Linux possui suporte de leitura e escrita a vários sistema de arquivos, de diversos sistemas operacionais, além de alguns sistemas nativos. Por isso, quando o Linux é instalado em dual boot com outros sistemas (Windows, por exemplo) ou mesmo funcionando como Live CD, ele poderá ler e escrever nas partições formatadas em FAT e NTFS. É por isso que os Live CDs Linux são muito utilizados na manutenção e recuperação de outros sistemas operacionais.5

Entre os sistemas de ficheiros suportados pelo Linux, podemos citar UFS (Unix)FATNTFSJFSXFSHPFSMinix e ISO 9660(sistema de ficheiros usado em CD-ROMs), este último também com as extensões RRIP (IEEE P1282) e ZISOFS6 . Alguns sistemas de ficheiros nativos são, entre outros, Ext2Ext3Ext4ReiserFS e Reiser4.7 Alguns sistemas de ficheiros com características especiais são SWAPUnionFSSquashFSTmpfsAufs e NFS, dentre outros.

Sistema operacional

Richard Stallman, fundador do projeto GNUpara um sistema operacional livre.

Logo que Linus Torvalds passou a disponibilizar o Linux, ou seja na sua versão 0.01, já havia suporte ao disco rígido, tela, teclado e portas seriais, o sistema de arquivos adotava o mesmo layout do Minix (embora não houvesse código do Minix no Linux), havia extensos trechos em assembly, e ela já era capaz de rodar o bash e o gcc.

A linha guia quando implementei o Linux foi: fazê-lo funcionar rápido. Eu queria o núcleo simples, mas poderoso o suficiente para rodar a maioria dos aplicativos Unix.8

O próprio usuário deveria procurar os programas que dessem funcionalidade ao seu sistema, compilá-los e configurá-los. Talvez por isso, o Linux tenha carregado consigo a etiqueta de sistema operativo apenas para técnicos. Foi neste ambiente que surgiu a MCC Interim Linux, do Manchester Computer Centre, a primeira distribuição Linux, desenvolvida por Owen Le Blanc da Universidade de Manchester, capaz de ser instalada independentemente em um computador. Foi uma primeira tentativa de facilitar a instalação do Linux.

Desde o começo, o núcleo Linux incluía um sistema básico para chamadas do sistema e acesso aos dispositivos do computador. O núcleo de um sistema operativo define entre várias operações, o gerenciamento da memória, de processos, dos dispositivos físicos no computador e é uma parte essencial de qualquer sistema operacional utilizável, contudo para um sistema operacional adquirir funcionalidade são necessários também vários outros aplicativos que determinam funções específicas que aquele sistema será capaz de desenvolver, os aplicativos existentes num sistema operacional com a única exceção do núcleo são determinados pelo usuário do computador, como por exemplo:interpretadores de comandosgerenciadores de janelas, que oferecem respectivamente uma interface para o usuário do computador, CLI ou GUI, e outros aplicativos comoeditores de texto, editores de imagem, tocadores de som, e, mas não necessariamente, compiladores.

A maioria dos sistemas inclui ferramentas e utilitários baseados no BSD e tipicamente usam XFree86 ou X.Org para oferecer a funcionalidade do sistemas de janelas X — interface gráfica. Assim como também oferecem ferramentas desenvolvidas pelo projeto GNU.

No momento do desenvolvimento do Linux, vários aplicativos já vinham sendo reunidos pelo Projeto GNU da Free Software Foundation (‘Fundação Software Livre’), que embarcara num subprojeto que ainda continua para obter um núcleo, o GNU Hurd. Porém devido a várias complicações o projeto GNU e demora em desenvolver o Hurd, Stallman acabou adotando o núcleo Linux como base para distribuir os programas do projeto GNU ; no entanto diversas pessoas e instituições tiveram a mesma ideia e assim começaram a surgir várias distribuições baseadas no núcleo desenvolvido inicialmente por Linus.

Distribuições

Atualmente, um Sistema Operacional (em Portugal Sistema Operativo) Linux ou GNU/Linux completo (uma "Lista de distribuições de Linux ou GNU/Linux") é uma coleção de software livre (e por vezes não-livre) criado por indivíduos, grupos e organizações de todo o mundo, incluindo o núcleo Linux. Companhias como a Red Hat, a SuSE, aMandriva (união da Mandrake com a Conectiva) e a Canonical (desenvolvedora do Ubuntu Linux), bem como projetos de comunidades como o Debian ou o Gentoocompilamo software e fornecem um sistema completo, pronto para instalação e uso. Patrick Volkerding também fornece uma distribuição Linux, o Slackware.

As distribuições do Linux ou GNU/Linux começaram a receber uma popularidade limitada desde a segunda metade dos anos 90, como uma alternativa livre para os sistemas operacionais Microsoft Windows e Mac OS, principalmente por parte de pessoas acostumadas ao Unix na escola e no trabalho. O sistema tornou-se popular no mercado deDesktops e servidores, principalmente para a Web e servidores de bancos de dados.

No decorrer do tempo, várias distribuições surgiram e desapareceram, cada qual com sua característica. Algumas distribuições são maiores outras menores, dependendo do número de aplicações e sua finalidade. Algumas distribuições de tamanhos menores cabem num disquete com 1,44 MB, outras precisam de vários CDs, existindo até algumas versões em DVD.

Todas elas tem o seu público e sua finalidade, as pequenas (que ocupam poucas disquetes) são usadas para recuperação de sistemas danificados ou em monitoramento de redes de computadores.

Dentre as maiores, distribuídas em CDs, podem-se citar: Slackware, Debian, Suse, e Conectiva. Cada distribuição é, em síntese, um sistema operacional independente, de modo que os programas compilados para uma distribuição podem não rodar em outra, embora usem o mesmo núcleo (o Linux propriamente dito). A distribuição Conectiva Linux, por exemplo, tinha as suas aplicações traduzidas em português, o que fez com que os usuários que falam a Língua Portuguesa tenham aderido melhor a esta distribuição. Hoje esta distribuição foi incorporada à Mandrake, o que resultou na Mandriva. Para o português, existe também a distribuição brasileira Kurumin (essa distribuição foi descontinuada pelo seu mantenedor), construída sobre Knoppix e Debian, e a Caixa Mágica, existente nas versões 32 bits64 bitsLive CD 32 bits e Live CD 64 bits, e com vários programas open sourceLibreOfficeMozilla Firefox, entre outros.

Existem distribuições com ferramentas para configuração que facilitam a administração do sistema.

As principais diferenças entre as distribuições estão nos seus sistemas de pacotes, nas estruturas dos diretórios e na sua biblioteca básica. Por mais que a estrutura dos diretórios siga o mesmo padrão, o FSSTND é um padrão muito relaxado, principalmente em arquivos onde as configurações são diferentes entre as distribuições. Então normalmente todos seguem o padrão FHS (File Hierarchy System), que é o padrão mais novo. Vale lembrar, entretanto, que qualquer aplicativo ou driver desenvolvido para Linux pode ser compilado em qualquer distribuição que vai funcionar da mesma maneira.

Quanto à biblioteca, é usada a biblioteca libc, contendo funções básicas para o sistema Operacional Linux. O problema é que, quando do lançamento de uma nova versão da Biblioteca libc, algumas distribuições colocam logo a nova versão, enquanto outras aguardam um pouco. Por isso, alguns programas funcionam numa distribuição e noutras não.

Existe um movimento LSB (Linux Standard Base) que proporciona uma maior padronização. Auxilia principalmente vendedores de software que não liberam para distribuição do código fonte, sem tirar características das distribuições. O sistemas de pacotes não é padronizado.

ArchLinuxDebianFedoraMandrivaMintOpensusePCLinuxOSPuppySabayonSlackware e Ubuntu são algumas das distribuições mais utilizadas actualmente, listadas aqui por ordem alfabética.

Um exemplo de distribuição que corre num CD é o Kurumin Linux, criado por Carlos Eduardo Morimoto, baseada no Knoppix.

De entre as distribuições consideradas mais difíceis de gerir (por preferirem assegurar a estabilidade tecnológica em detrimento da interface de utilizador), destacam-se a Debian,Gentoo e Slackware.

Existem também distribuições Linux para sistemas móveis, como tablets e smartphones, sendo o Android, desenvolvido pelo Google, a mais difundida de todas. Outras distribuições Linux para sistemas móveis são o Maemo e o MeeGo.

Código aberto e programas livres

Pacote de software LAMP para servidor web

Um programa, assim como toda obra produzida atualmente, seja ela literária, artística ou tecnológica, possui um autor. OsDireitos sobre a ideia ou originalidade da obra do autor, que incluem essencialmente distribuição, reprodução e uso é feito no caso de um programa através de sua licença.

Existem dois movimentos que regem o licenciamento de programas no mundo livre, os programas de código aberto e osprogramas livres. Os dois representados respectivamente pela OSI e pela FSF oferecem licenças para produção de software, sendo seus maiores representantes a licença BSD e a GPL.

O Linux oferece muitos aplicativos de open source, contudo nem todos podem ser considerados programas livres, dependendo exclusivamente sob qual licença estes programas são distribuídos. Os programas distribuídos sob tais licenças possuem as mais diversas funcionalidades, como desktops, escritório, edição de imagem e inclusive de outros sistemas operacionais.

Também existem organizações inclusive no mundo livre como a organização Linux Simples para o Usuário Final (SEUL) que tem como objetivo adotar a maior gama possível de aplicativos de alta qualidade produzidos sobre a GPL. É um projeto voluntário que atualmente se foca no aprendizado de Linux, seu uso na ciência e em documentos de advocacia, bem como gerenciar e coordenar projetos de desenvolvimento de aplicativos.

Controvérsias quanto ao nome

Linux foi o nome dado ao núcleo de sistema operacional criado por Linus Torvalds. Por extensão, sistemas operacionais que usam o núcleo Linux são chamados genericamente de Linux. Entretanto, a Free Software Foundation afirma tais sistemas operacionais são, na verdade, sistemas GNU, e o nome mais adequado para tais sistemas é GNU/Linux, uma vez que grande parte do código-fonte dos sistemas operacionais baseados em Linux são ferramentas do projeto GNU.9

Há muita controvérsia quanto ao nome. Eric Raymond afirma, no Jargon File, que a proposta da FSF só conseguiu a "aceitação de uma minoria" e é resultado de uma "disputa territorial".10 Linus Torvalds afirma que consideraria "justo" que tal nome fosse atribuído a uma distribuição do projeto GNU, mas que chamar os sistemas operacionais Linux como um todo de GNU/Linux seria "ridículo".11 Linus disse não se importar sobre qual o nome usado, considera a proposta da GNU como "válida" ("ok") mas prefere usar o termo "Linux".12

Sobre o símbolo

Tux.

O símbolo do software foi escolhido pelo seu criador (Linus Torvalds),que um dia estava no zoológico e foi surpreendido pela mordida de um pinguim. Fato curioso e discutido até hoje.13

Em 1996, muitos integrantes da lista de discussão "Linux-Kernel" estavam discutindo sobre a criação de um logotipo ou de um mascote que representasse o Linux. Muitas das sugestões eram paródias ao logotipo de um sistema operacional concorrente e muito conhecido (Windows). Outros eram monstros ou animais agressivos. Linus Torvalds acabou entrando nesse debate ao afirmar em uma mensagem que gostava muito de pinguins. Isso foi o suficiente para dar fim à discussão.

Depois disso, várias tentativas foram feitas numa espécie de concurso para que a imagem de um pinguim servisse aos propósitos do Linux, até que alguém sugeriu a figura de um "pinguim sustentando o mundo". Em resposta, Linus Torvalds declarou que achava interessante que esse pinguim tivesse uma imagem simples: um pinguim "gordinho" e com expressão de satisfeito, como se tivesse acabado de comer uma porção de peixes. Torvalds também não achava atraente a ideia de algo agressivo, mas sim a ideia de um pinguim simpático, do tipo em que as crianças perguntam "mamãe, posso ter um desses também?". Ainda, Torvalds também frisou que trabalhando dessa forma, as pessoas poderiam criar várias modificações desse pinguim. Isso realmente acontece.

Quando questionado sobre o porquê de pinguins, Linus Torvalds respondeu que não havia uma razão em especial, mas os achava engraçados e até citou que foi bicado por um "pinguim assassino" na Austrália e ficou impressionado como a bicada de um animal aparentemente tão inofensivo podia ser tão dolorosa.

Escândalo dos Programas de Vigilância da NSA

As revelações da vigilância global exercida pela Agência de Segurança Nacional trouxeram à tona alegações de que Google, Yahoo!Facebook e, Microsoft estão entre as muitas empresas intencionalmente cooperando com a NSA, oferecendo acesso aos seus sistema via uma backdoor criada especialmente para atender aos interesses da Agência.

No caso de sistemas operacionais Linux, a agência americana NSA pediu ao criador do Linux, Linus Torvalds, para criar backdoors em GNU / Linux através do qual eles poderiam acessar o sistema.14

O fato dos sistemas GNU/Linux serem software livre permitem que qualquer um realize auditoria sobre o código. Dessa forma dificultando a inserção de backdoors.

Ver também

A Wikipédia possui o portal:


Android

Origem: Wikipédia, a enciclopédia livre.


Android é um sistema operacional móvel (SO) baseado no núcleo linux e atualmente desenvolvido pela empresa de tecnologiaGoogle. Com uma interface de usuário baseada na manipulação direta, o Android é projetado principalmente para dispositivos móveis com tela sensível ao toque como Smartphones e Tablets; com interfaces específicas para TV (Android TV), carros (Android Auto) e relógios de pulso (Android Wear). O sistema operacional utiliza-se da tela sensível ao toque para que o usuário possa manipular objetos virtuais e também de um teclado virtual. Apesar de ser principalmente utilizado em dispositivos com tela sensível ao toque, também é utilizado em consoles de videogamescâmeras digitais, computadores (PCs) e outros dispositivos eletrônicos.

O Android é o sistema operacional móvel mais utilizado do mundo, e, em 2013, possuía a maior porcentagem das vendas mundiais de SO móveis.9 Dispositivos com o sistema Android vendem mais que eletrônicos com WindowsiOS e Mac OS X combinados,10 11 1213 com vendas em 20122013 e 201414 perto da base de computadores do mundo.15 Em julho de 2013 a loja de aplicativos Google Play possuía mais de 1 milhão de aplicativos disponíveis, sendo estes baixados mais de 50 bilhões de vezes.16 Uma pesquisa com desenvolvedores entre abril e maio de 2013 revelou que 71% dos desenvolvedores para sistemas móveis desenvolviam para o Android.17 Na conferência anual Google I/O de 2014, a companhia revelou que existem mais de 1 bilhão de usuários Android ativos por mês. Em junho de 2013 este número era de 538 milhões.18

O código do sistema operacional é disponibilizado pelo Google sob licenças de código aberto, apesar da maior parte dos dispositivos ser lançada com uma combinação de software livre e software privado.19 Inicialmente foi desenvolvido pela empresa Android, Inc., a qual o Google dava suporte financeiramente. Foi comprada pela mesma em 200520 e revelado em 2007 junto com a fundação daOpen Handset Alliance—consórcio entre empresas de hardwaresoftware e telecomunicações com o intuito de desenvolver a indústria de dispositivos móveis.21

O Android é muito popular entre empresas de tecnologia que buscam um software pronto, de baixo custo e customizável para dispositivos de alta tecnologia.22 A natureza do software de código aberto do sistema operacional tem encorajado uma grande comunidade de desenvolvedores e entusiastas a colocar uma fundação para o desenvolvimento de projetos feitos pela própria comunidade que adicionam recursos para usuários mais avançados,23 ou trazem o Android para dispositivos que inicialmente não foram lançados com a plataforma. O sucesso do OS fez dele um alvo para disputas de patente na chamada "guerra de smartphones" entre empresas de tecnologia.24 25

História

Ver também: Histórico de versões do Android

Android, Inc. foi fundada em Palo AltoCalifornia em outubro de 2003 por Andy Rubin (co-fundador da Danger),26 Rich Miner (co-fundador da Wildfire Communications, Inc.), 27 Nick Sears (ex vice-presidente da T-Mobile),28 e Chris White (encabeçou o projeto de desenvolvimento de design e interface da WebTV)20 para desenvolver, segundo o Rubin, "dispositivos móveis mais inteligentes que estejam mais cientes das preferências e da localização do seu dono".20 As primeiras intenções da empresa eram de desenvolver um sistema operacional avançado para câmeras digitais, quando se deram conta de que o mercado destes dispositivos não era grande o suficiente. Desviaram então seus esforços para produzir um sistema operacional móvel para ser rival aos Symbian e Windows Mobile.29 Apesar daquelas últimas conquistas dos fundadores e primeiros empregados, Android Inc. operou secretamente, revelando somente que estava trabalhando em um software para smartphones.20 Naquele mesmo ano Andy Rubin ficou financeiramente escasso. Steve Pearlman, amigo íntimo de Rubin, entregou a ele $10,000 dólares em um envelope e recusou sua parte na companhia.30

Google adquiriu Android Inc. em 17 de agosto de 2005; funcionários-chave da recém-comprada empresa, incluindo Rubin, Miner e White, continuaram na companhia após a aquisição.20 Pouco se sabia sobre a Android Inc. naquele momento, mas muitos especularam que o Google estava planejando entrar no mercado de dispositivos móveis com essa jogada.20 Dentro do Google, o grupo liderado por Rubin desenvolveu um sistema operacional móvel tendo com base o Kernel Linux. A empresa comercializou o Android persuadindo empresas fabricantes de celular e operadoras com a promessa de prover um sistema flexível e atualizável. O Google firmou parcerias com empresas fabricantes dehardwaresoftware e operadores de telefonia móvel e reafirmou que estaria aberta a mútuas cooperações.31 32 33

A especulação sobre a intenção do Google de entrar no mercado de dispositivos móveis continuou até dezembro de 2006.34 Um protótipo inicial de codinome "Sooner" tinha um aspecto parecido com um telefone BlackBerry, sem touchscreen e um teclado físico QWERTY, mas foi redesenhado para suportar visores touchscreen para competir com outros dispositivos recém-anunciados como o LG Prada (2006) e o iPhone da Apple (2007).35 36 Em setembro de 2007, InformationWeek, revista digital americana, cobriu um estudo da EvalueServe que revelava diversas patentes feitas pelo Google na área de tecnologia móvel.37 38

Eric SchmidtAndy Rubin, e Hugo Barra na coletiva de imprensa para o lançamento do tablet do GoogleNexus 7.

Em 5 de novembro de 2007 a Open Handset Alliance, consórcio de tecnologia entre empresas do ramo, incluindo Google, fabricantes de telefones como HTCSony e Samsung, operadoras de telefonia como Sprint Nextel e T-Mobile e fabricantes de chipsets como Qualcomme a Texas Instruments se revelaram com o objetivo de criar uma plataforma de padrão aberto para dispositivos móveis.21 Naquele dia o Android foi revelado como seu primeiro produto: uma plataforma móvel construída no Kernel Linux de versão 2.6.25.21 O primeiro smartphone disponível comercialmente rodando o Android foi o HTC Dream, lançado em 22 de outubro de 2008.39

Em 2010 o Google apresentou sua série de dispositivos Nexus — uma linha de smartphones e tablets rodando o sistema Android e sendo fabricado por empresas parceiras. HTC colaborou com o Google para lançar o primeiro smartphone Nexus,40 o Nexus One. Desde então o Google tem atualizado sua linha com novos dispositivos como, por exemplo, o Nexus 5, feito pela LG e o Nexus 7, feito pela Asus. O Google tem como objetivo através dos lançamentos Nexus mostrar as últimas atualizações de software e hardware do Android, sendo estes dispositivos tidos como carros-chefe do Android. No dia 13 de março de 2013, Larry Page, CEO e fundador do Google, anunciou em um post no seu blog que Andy Rubin foi realocado dentro do Google, saindo portanto da divisão do Android.41 Ele foi substituído porSundar Pichai, o qual também continua com seu papel como chefe da divisão Chrome do Google,42 a qual desenvolve o Chrome OS.

Desde 2008 o Android tem recebido inúmeras atualizações que incrementaram substancialmente o sistema, adicionando novas funcionalidades e consertando erros de versões anteriores. A cada grande atualização o codinome do sistema muda, em ordem alfabética, entre nomes de doces.43 44 Desde novembro de 2014 a mais nova versão do Android, "Lollipop", está disponível para dispositivos compatíveis.45

De 2010 até 2013 Hugo Barra, brasileiro funcionário do Google, foi o porta voz oficial do grupo de desenvolvedores do Android, representando o Android nas conferências de imprensa e na Google I/O, evento do Google para desenvolvedores. O envolvimento de Hugo Barra no desenvolvimento do Android inclui e abrange todo o ecossistema do sistema operacional. Hugo Barra saiu do grupo de desenvolvimento do Android para trabalhar na fabricante de smartphones chinesa Xiaomi.46 47 48

Características

Interface

As notificações são acessadas deslizando-se a barra do topo para baixo; notificações podem ser dispensadas individualmente simplesmente deslizando-as para o lado, e podem conter ainda funções adicionais, como retornar chamada e enviar mensagens.

A interface padrão do usuário no Android é baseada na manipulação direta.49 A resposta para a manipulação é desenhada para ser imediata e produzir uma sensação de fluidez, utilizando-se constantemente da resposta háptica para informar o usuário sobre a conclusão do comando. Hardwares internos como acelerômetrosgiroscópios e sensores de proximidade50 são utilizados por alguns aplicativos para responder à ações adicionais do usuário, como por exemplo a mudança da orientação da tela de retrato para paisagem, dependendo de como o dispositivo é segurado ou o controle de jogos automotivos somente pela rotação do smartphone, como se fosse um volante de carro.51

Dispositivos Android são direcionados à tela inicial ou homescreen assim que são ligados. Lá se encontra a navegação primária e principal do sistema, a qual é similar ao conceito de desktop utilizado em computadores. São tipicamente compostas por ícones de aplicativos instalados e widgets. Os ícones, quando selecionados, direcionam o usuário ao aplicativo correspondente, enquanto o widgetmostra na própria tela inicial as informações, atualizando constantemente seu conteúdo, como previsão do tempoemails não lidos ounotícias.52 A tela inicial pode ser composta de várias páginas, as quais o usuário por ir para frente ou para trás, sendo ela também altamente customizável, permitindo o usuário ajustar o design de acordo com preferências pessoais.53 Aplicativos de terceiros disponíveis na loja Google Play ou em outras lojas virtuais podem remodelar extensivamente a tela inicial do Android, e até mesmo imitar a tela inicial de outros sistemas operacionais como Windows Phone e iOS.54 A maioria das fabricantes e algumas operadoras de telefonia customizam o visual do sistema para se destacar de seus concorrentes.55

Presente no topo da tela está a status bar ou barra de status, a qual mostra informações sobre o dispositivo e sua conectividade. Esta barra pode ser "puxada" para baixo para mostrar a tela de notificações onde aplicativos mostram importantes informações ou atualizações, como um novo email ou um novo SMS, enquanto não atrapalha a atividade que o usuário esteja fazendo no momento.56 As notificações são persistentes e não saem da tela de notificações a não ser que o usuário leia, clicando na notificação, ou a dispense, deslizando-a para o lado. A partir do Android 4.1, as notificações passaram a poder ser expandidas, mostrando mais informações ou podendo ter alguma interatividade, como por exemplo um player de música pode exibir suas funções de voltar, pausar e avançar na música, enquanto uma notificação de chamada perdida pode mostrar a opção de retornar a ligação.57

O Android possui também a possibilidade de rodar aplicativos que mudam o iniciador padrão. Essas mudanças incluem colocar várias páginas no dock ou retirar o mesmo, e outras muitas mudanças que atingem diretamente a experiência do usuário com o sistema.58

Aplicativos

Aplicativos ou apps que estendem funcionalidades dos dispositivos são desenvolvidos primariamente na linguagem Java,59 usando-se do sistema de desenvolvimento do software Android (SDK). O SDK inclui um compreensivo conjunto de ferramentas de desenvolvimento,60 que incluem um depurador, umabiblioteca (computação), um emulador baseado em QEMU, documentação, códigos de exemplos e tutoriais. O ambiente de desenvolvimento integrado ou IDE oficialmente suportado é o Eclipse utilizando o plugin do Android (ADT). Outras ferramentas de desenvolvimento estão disponíveis, como o Kit de Desenvolvimento Nativo para aplicativos ou extensões em C ou C++, o Google App Inventor, um ambiente de desenvolvimento para novos desenvolvedores, e múltiplas plataformas de desenvolvimento cross-plataform.61

O Android tem crescido na quantidade de aplicativos de terceiros desenvolvidos para o sistema. Tais aplicativos podem ser adquiridos por usuários através do download e instalação do arquivo APK ou através do download utilizando-se de um programa de alguma loja de aplicativos virtual. Play Store é a loja primária dos usuários do Android. A Google Play Store permite ao usuário do Android navegar, comprar, baixar e atualizar aplicativos desenvolvidos ou pelo Google ou por terceiros. Em julho de 2013 a loja atingiu a marca de 1 milhão de aplicativos disponíveis.62 Em maio de 2013, 48 bilhões de aplicativos haviam sido instalados a partir do Google Play63 e em julho do mesmo ano esse número era de 50 bilhões.64 65 Algumas operadoras de telefonia nos Estados Unidos oferecem uma conta conjunta da Google Play Store, onde os gastos na loja virtual vêm na conta de telefone mensal do usuário.66

Devido à natureza aberta do Android, há também um alto número de aplicativos de lojas de terceiros, tanto para disponibilizar aplicativos para dispositivos não permitidos na Play Store, quanto para colocar à disposição aplicativos não permitidos na loja, ou aplicativos que burlem o sistema de pagamento do Google, fazendo que saiam de graça para o usuário.67 68 69

Gerenciamento de Memória

Já que dispositivos Android são normalmente movidos à bateria, o sistema foi desenvolvido para gerir a quantidade de memória (RAM) com o intuito de deixar a quantidade de energia gasta no mínimo, em contraste com desktops em que normalmente sistemas assumem estar conectados à fontes ilimitadas de eletricidade doméstica. Quando um aplicativo não está mais sendo usado, o sistema automaticamente o suspende da memória; enquanto a aplicação está tecnicamente "aberta", aplicações suspensas não consomem nenhum recurso do sistema. Isso traz um benefício duplo, já que aumenta a responsividade do sistema, enquanto também não consome energia sem necessidade.70 71

O Android gere aplicações na memória automaticamente: quando a memória está baixa, o sistema começa a "matar" aplicativos e processos que estão inativos há determinado tempo. Este processo é feito para ser invisível ao usuário, então ele não precisa administrar o sistema ou fechar processos por si mesmo.72 73 Porém, a confusão sobre a regulação de memória no Android resultou que aplicativos de terceiros que gerem a memória ficaram famosos na Google Play Store; estes aplicativos são geralmente tidos como ineficazes, fazendo mais mal do que bem.74

Hardware

A principal plataforma para o sistema Android é a Arquitetura ARM (ARMv7 ou posterior; Android 5.0 também dá suporte à ARMv8-A), com a arquitetura x86 e MIPStambém oficialmente suportados. Tanto a variante 64-bit quanto a 32-bit das 3 arquiteturas possuem suporte desde o Android 5.0.75 Desde 2012, dispositivos com processadoresIntel começaram a surgir no mercado em smartphones e tablets.76 Para o Android 4.4, o Google recomenda no mínimo 512 MB de memória RAM,77 enquanto para dispositivos que não consomem tanta memória, os chamados low-ram devices, o mínimo é 340 MB.78 Também é necessário dar suporte à tecnologia OpenGL ES 2.0.79 Possui também suporte à OpenGL ES 1.1, 2.0, 3.0 e 3.1, sendo que alguns aplicativos requerem explicitamente alguma dessas versões.

Dispositivos Android incorporam muitos hardwares opcionais, que incluem câmerasGPS, sensores de orientação, controles específicos para jogos, acelerômetrosgiroscópios,barômetrosmagnetômetrossensores de proximidadetermômetros, e telas touchscreen. Alguns componentes não são obrigatórios, mas se tornaram padrão em certos dispositivos como smartphones. Alguns componentes eram obrigatórios no início, mas foram deixados de lado posteriormente. Por exemplo, enquanto o Android OS era desenvolvido primariamente para ser um sistema de telefones, hardwares como microfones eram obrigatórios, mas com o passar do tempo a função de telefone se tornou opcional, e o microfone também.65

O Android também pode rodar nativamente em um computador, utilizando mouse e teclado,80 81 82 em versões do Android, principalmente aquelas posteriores ao 4.4.83Empresas chinesas estão fabricando PCs com o sistema operacional móvel baseado em Android, para "competir diretamente com o Windows da Microsoft e o Android doGoogle".84 A Academia Chinesa de Engenharia revelou que "mais de uma dúzia" de companhias estavam customizando o Android, seguindo o banimento do Windows 8 dos PCs do governo chinês.85 86 87

Desenvolvimento

O SO móvel Android é desenvolvido em segredo pelo Google até a última das modificações, quando estará pronto pra ser lançado. Então, o código é lançado publicamente.88 O código só funcionará sem modificações em determinados aparelhos, como os da série Nexus. O código é então adaptado a cada fabricante para que rode nos hardwares específicos, com ou sem modificações.89

O boneco verde que representa o Android foi desenhado para o Google em 2007 pela designer gráfica Irina Blok. Ao grupo de design responsável pela arte do símbolo foi dada a tarefa de criar um ícone universalmente identificável, com a específica inclusão de um robô no design final. Após inúmeras tentativas de criar algo baseado em ficção-científica e filmes que se passam no espaço, a equipe eventualmente buscou inspiração no símbolo humano em portas de banheiros e modificou-o para a forma de um robô. Como o Android é aberto (open-source), foi concordado que o símbolo e o robô também deveriam ser livres de licença, desde então o logo do robô verde tem sido reinterpretado em incontáveis variações do seu design original.90 Seu nome é BugDroid.91

Calendário de Atualizações

O Google lança atualizações de grande porte a cada 6 ou 9 meses, as quais a maioria dos dispositivos é capaz de receber através do ar (OTA).92 A última grande atualização lançada é o Android Lollipop 5.0.45

Comparado com o principal rival do Android, o iOS, as atualizações do Android são geralmente lentas para chegar à maioria dos dispositivos. Para dispositivos que não estão sob a marca Nexus, a atualização para a versão mais recente demora meses a partir da data de lançamento oficial.93 Isso se deve parcialmente à extensa variação de hardware de dispositivos Android, aos quais a atualização deve ser especificamente modificada, de acordo com cada aparelho, já que o código puro somente roda em dispositivos Nexus.93Portar o Android para hardwares específicos consome tempo e dinheiro para diversas fabricantes, que acabam priorizando os dispositivos mais recentes em detrimento dos mais antigos. É comum que smartphones mais velhos não sejam atualizados, mesmo tendo hardware capaz de rodar a nova versão, já que a empresa pode decidir que não vale a pena. O problema se agrava quando as fabricantes customizam o sistema com seus apps e interface, que acabam tendo que ser reaplicados a cada dispositivo a cada atualização. A demora pode se agravar mais ainda se houver também interferência de operadoras nos dispositivos, que também customizam com seus aplicativos e interface própria.93

A falta de suporte pós-venda de operadoras e fabricantes tem sido amplamente criticada por grupo de consumidores e pela mídia de tecnologia.94 95 Alguns especialistas em tecnologia têm notado que a indústria de smartphones tem motivos financeiros para não atualizar seus dispositivos, já que isso traria um incentivo às pessoas a comprarem novos produtos,96 uma atitude descrita por alguns como "insultante".95 O The Guardian, jornal britânico, queixou-se de que o método de distribuição de atualizações é complicado somente porque fabricantes e operadores o designaram assim.95 Em 2011, o Google criou parcerias com fabricantes e indústrias para anunciar uma "Aliança de Atualização do Android", designada a oferecer updates para até 18 meses após o lançamento dos dispositivos.97 Porém, desde então não houve mais nenhuma comunicação oficial sobre esta aliança.93 98

Em 2012 o Google começou a dissociar determinados componentes do sistema operacional, assim eles poderiam ser atualizados pela Play Store, independente o Android em si. Um destes componentes, o Google Play Service, é um aplicativo de código fechado, que funciona no nível do sistema, provendo APIs para o Google, e que foi instalado automaticamente em praticamente todos os dispositivos com Android 2.2 ou superior. Com estas mudanças, o Google consegue adicionar novas funções no sistema através do Play Services, sem necessariamente ter que distribuir uma nova versão do Android em si. Como resultado, o Android 4.2 e 4.3 possuem relativamente poucas mudanças perceptíveis pelo usuário, focando mais em melhorias na plataforma e conserto de pequenos bugs.99

Kernel Linux

O sistema Android consiste em um Kernel baseado no Kernel Linux, especificamente do ramo (LTS), suporte a longo tempo. Em janeiro de 2014 a maior parte das versões do Android eram moldadas em cima da versão do Kernel linux 3.4 ou superior,100 101 mas a versão específica do kernel depende do dispositivo Android e do processador utilizado por ele.102 103 104 O Android utilizou vários Kernels desde o primeiro, o 2.6.25.105

Kernel Linux do Android possui alterações profundas na arquitetura que foram implementadas pelo Google, fora do típico círculo de desenvolvimento Kernel do Linux, como a inclusão de componentes como Binder, ashmem, pmem, logger, wakelocks e uma diferente saída de memória—out-of-memory (OOM).106

O Android é uma distribuição Linux de acordo com a Linux Foundation,107 com a chefe do projeto open-source do Google, Chris DiBona,108 e outros diversos jornalistas.109110 Outros, porém, como o engenheiro do Google Patrick Brady, afirmam que o Android não é Linux no tradicional estilo Unix, já que o Android não inclui a biblioteca GNU Ce outros componentes tipicamente encontrados nas distribuições Linux.111

Comunidades Open-Source

O Android possui comunidades de desenvolvedores e entusiastas que usam o Android Open Source Project (AOSP) para desenvolver e distribuir suas próprias versões modificadas do sistema operacional.112 Esses sistemas desenvolvidos pela comunidade possuem geralmente novas características e funcionalidades e atualizações mais rápidas do que os disponibilizados oficialmente pelas fabricantes ou operadoras, embora sem um teste ou controle de qualidade muito rígido.113 Também contribuem para prover suporte continuado para dispositivos mais antigos que já não possuem mais atualizações oficiais ou trazer o Android para dispositivos que não foram lançados com Android originalmente, como o HP TouchPad. Tais comunidades lançam ROMs que geralmente são pre-rooted, e possuem modificações que não são recomendáveis para usuários sem conhecimento técnico do sistema, como opções para fazer overclock ou overvolt.114 CyanogenMod é o firmware mais utilizado115 entre as comunidades do Android, servindo como base para diversas outras ROMs.

Historicamente, fabricantes de smartphones e operadoras de telefonia móvel tipicamente são contra o desenvolvimento de firmware por terceiros. Tais fabricantes expressam preocupação com a má funcionalidade dos dispositivos rodando software desenvolvidos por usuários, e o custo do suporte que isso traria.116 Além disso, esses softwares modificados frequentemente possuem novas ferramentas, como o tethering, o qual as operadoras normalmente cobrariam uma taxa adicional. Como resultado destas modificações, obstáculos técnicos ao desenvolvimento e acesso aos softwares são criados por fabricantes e operadoras, como bootloader bloqueado, e acesso restrito às permissões de root. Porém, com o crescimento da comunidade Open-Source e a declaração do Congresso dos Estados Unidos permitindo o jailbreak de dispositivos móveis, as fabricantes e operadoras começaram a relaxar ações contrárias a esse tipo de desenvolvimento, chegando ao ponto de até mesmo fabricantes como HTC,116 Motorola,117Samsung,118 119 e Sony120 dar suporte e encorajar o desenvolvimento destes softwares. Como resultado destas declarações, necessidade de circundar bootloaders bloqueados para instalar softwares não-oficiais tem caído, já que o número de celulares enviados sem estas restrições sofreu um aumento considerável, apesar do usuário ainda perder a garantia se o fizer.116 Apesar do relaxamento das fabricantes, algumas operadoras móveis dos Estados Unido ainda proíbem a utilização de softwares de terceiros, frustando muito consumidores.121

Segurança e privacidade

Permissões são utilizadas para controlar determinados acessos dos aplicativos ao sistema.

Os aplicativos do Android funcionam numa sandbox, local isolado do resto do sistema e que não possui nenhum acesso ao resto dele, a não ser que a permissão seja explicitamente dada no momento da instalação do programa. Antes de instalar um aplicativo, a Play Store mostra todas as permissões da qual o aplicativo precisa: um jogo pode precisar de acesso à vibração ou de acessar conteúdo no cartão de memória, por exemplo, mas não precisará de acesso às mensagens de texto ou à lista de contatos. Após revisar estas permissões, o usuário pode aceitá-las ou recusá-las, sendo o aplicativo instalado somente se o usuário as aceitar.122 Este sistema de sandbox diminui o impacto sobre vulnerabilidades do sistema, mas a confusão entre desenvolvedores fez com que o sistema se tornasse ineficaz, já que os aplicativos pediam acesso à determinadas informações desnecessárias ao funcionamento do aplicativo.123 Recentemente o Google lançou um update aos seus dispositivos para inserir um app que roda em segundo plano detectando aplicativos maliciosos.124

O aplicativo "App Ops", que foi designado para testes e desenvolvimento interno do Google para o Android na área de segurança e privacidade, foi introduzido a partir do Android 4.3 nos dispositivos Nexus. Inicialmente escondido dentro do sistema, o programa foi descoberto por programadores: ele permitia que se instalasse um aplicativo de gerenciamento de permissões individuais dos aplicativos, selecionando o que o usuário gostaria que o aplicativo tivesse acesso, e ao o que o aplicativo não tivesse acesso.125 O acesso ao programa foi removido a partir do Android 4.4.2, com a explicação de que ele fora colocado para o usuário final de maneira acidental. Por esta decisão, a empresa recebeu duras críticas da Electronic Frontier Foundation.126 127 128 Seleção individual das permissões de aplicativos atualmente só é possível com acesso root.129 130

De acordo com pesquisas conduzidas pela empresa de segurança Trend Micro, a forma mais comum de malware no sistema Android é o abuso em relação aos serviços premium, onde celulares infectados são colocados em serviços pagos sem o consentimento do usuário.131 Outros malwareintroduzem propaganda não permitida e intrusiva no celular, ou enviam dados pessoais a terceiros, também sem a autorização do usuário.131Ameaças à segurança do Android têm crescido exponencialmente; por outro lado, engenheiros do Google têm argumentado que ameaças de malware ou vírus estão sendo exageradas por empresas de segurança por motivos estritamente comerciais,132 133 e têm acusado a indústria de segurança de colocar medo nos usuários para vender aplicativos de segurança.132 O Google ainda afirma que malwares perigosos são extremamente raros,133 e que uma pesquisa conduzida pela F-Secure mostrou que apenas 0,5% dos malwares denunciados têm origem na Play Store.134

Google atualmente utiliza do sistema de escaneamento de malware Google Bouncer para detectar ameaças na Play Store.135 Sua função é alertar usuários de aplicativos potencialmente perigosos antes que sejam baixados.136 A versão Jelly Bean 4.2 do Android trouxe ferramentas de segurança aprimoradas, incluindo um detector de malware embutido no sistema, que trabalha em conjunto com o Google Play, mas também pode escanear aplicativos de terceiros que estejam instalados no sistema.137 Várias companhias de segurança virtual lançaram aplicativos de segurança para o Android, como a Lookout Mobile Security,138 AVG,139 , McAfee,140 Avast,141 BitDefender,141 Kaspersky141 eTrend Micro141 . Esse tipo de aplicativo é geralmente tido como ineficaz, já que o sistema sandbox também é aplicado a eles, limitando a habilidade de escanear e proteger o sistema.142 143

Smartphones Android têm a habilidade de reportar localizações de pontos de acesso Wi-Fi, que são encontrados enquanto o usuário se locomove, para criar bancos de dados com a localização física de centenas de milhões destes pontos de acesso. Esses bancos de dados formam mapas eletrônicos capazes de localizar os dispositivos, permitindo que o usuário utilize de aplicativos como o FoursquareGoogle LatitudeFacebook Places e mostrar ao usuário propagandas baseadas em sua localização.144 Aplicativos de monitoração de terceiros como o TaintDroid,145 um projeto acadêmico, pode, em alguns casos, detectar quando informações pessoais estão sendo enviadas à servidores remotos.146 Em junho de 2013 o Google lançou o Gerenciador de Dispositivos Android, um componente que permite usuários de remotamente rastrearem, localizarem e acessarem informações de aparelhos perdidos ou roubados.99 147 Em dezembro de 2013 o Google lançou o mesmo aplicativo na Play Store, onde está disponível para dispositivos com Android 2.2 ou superior.148 149

Nas revelações da vigilância global de 2013, foi descoberto em setembro que as agências de inteligência americana e britânica; a NSA, e o Government Communications Headquarters (GCHQ), respectivamente, tiveram acesso aos dados do usuário em dispositivos iPhoneBlackberry e Android. Eles podiam, comprovadamente, ter acesso à toda informação do smartphone, incluindo SMS, localização, emails e notas.150 Informações vazadas em janeiro de 2014 revelaram ainda que as agências de inteligência eram capazes de interceptar informações pessoais através de redes sociais e aplicativos populares, como Angry Birds, que coletava informações pessoais para motivos comerciais e de propaganda. O GCHQ tem, de acordo com o The Guardian, um guia em estilo wiki de diferentes aplicativos e que tipos de informações poderiam ser captadas através deles.151Mais tarde naquela semana o desenvolvedor finlandês do Angry Birds Rovio anunciou publicamente que estaria reconsiderando suas relações com plataformas de propaganda após aquelas últimas descobertas e pediu à toda indústria que faça o mesmo.152

Os documentos revelaram ainda um esforço das agências de inteligência para interceptar buscas feitas pelo usuário no Google Maps e em smartphones para coletar informações em massa.151 A NSA e o CGHQ insistiram que suas atividades estavam em concordância com todas as leis domésticas e internacionais de segurança e privacidade, apesar da declaração do editorial do The Guardian dizendo que "as últimas revelações poderiam também adicionar às preocupações públicas sobre como o setor de tecnologia coleta e armazena informações, especialmente para aqueles fora dos EUA, que gostam um pouco mais de proteção à privacidade do que os americanos."151

Licença

Da esquerda para a direita: HTC Dream (G1)Nexus OneNexus SGalaxy Nexus

código-fonte do sistema Android é de código aberto; é desenvolvido pelo Google em particular, com o código fonte lançado publicamente quando uma nova versão do Android é lançada. O Google publica a maior parte do código (incluindo o código de rede e telefonia) sob a licença não-copyleft Apache versão 2.0, que permite modificações e redistribuições.153 154 A licença não garante direitos ao uso da marca Android, portanto operadoras e fabricantes devem obter a licença sob contratos individuais. Mudanças no kernel do Linux associadas são publicadas sob copyleft sob a licença pública geral versão 2, desenvolvida pela Open Handset Alliance, com o código fonte disponível publicamente. É típico do Google colaborar com alguma fabricante para produzir um dispositivo (da série Nexus) que seja o carro-chefe do Android, sendo o primeiro a ser lançado e disponibilizado com a nova versão do sistema. Assim que o dispositivo é lançado, o código fonte da nova versão é liberado publicamente.155 A única versão do sistema móvel que não foi disponibilizada imediatamente foi a do Android 3.0 Honeycomb, exclusivo para tablets. A razão para isto, segundo Andy Rubin, era porque o Honeycomb foi feito de forma imediata para o lançamento do Motorola Xoom,156 e eles não queriam que terceiros colocassem em seus smartphones um sistema construído para tablets, o que constituiria uma "experiência de usuário muito ruim".157

Enquanto o Android em si é de código aberto, a maior parte dos dispositivos são colocados a venda com uma grande quantidade de software particular, como os apps do Google Mobile, que incluem a Google Play StoreGoogle SearchGoogle Play Services e outros. Estes dispositivos devem ter licença expedida pelo Google, e só podem ser fabricados se requerimentos forem alcançados.158 99 Distribuições modificadas pela fabricante, como o TouchWiz e o HTC Sense, podem também substituir aplicativos padrões no Android, e também incluir aplicativos não disponíveis originalmente no sistema.

Diversos aplicativos nativos do Android que costumavam ser de código-aberto, como a Pesquisa, Música e Calendário, passaram a ser de código fechado, e começaram a ser distribuídos pela loja de aplicativos do Google, com os novos nomes de Pesquisa Google, Google Play Music e Google Calendário.159 160 161

Richard Stallman e a Fundação para o Software Livre têm sidos críticos do Android e têm recomendado a utilização de alternativas como o Replicant, pois os drivers e firmwares vitais para o funcionamento do Android são de propriedade privada.162 163

Influência sobre fabricantes

O software do Google, sob nome de Google Mobile Services, junto com as marcas registradas do Android, somente são licenciadas pelas fabricantes de dispositivos que possuem compatibilidade com os parâmetros encontrados no Documento de Definições de Compatibilidade Android. Além disso, distribuições do Android que façam mudanças consideráveis no sistema não incluem nenhum dos aplicativos licenciados pelo Google, e permanecem incompatíveis com aplicativos que os requerem, portanto devem ser distribuídos com uma alternativa à Google Play Store. Exemplos destas distribuições são o sistema da Amazon Fire OS, a plataforma Nokia X, e outras distribuições que excluem os aplicativos do Google devido à falta de suporte do Google no país, ou devido ao pagamento de tarifas de licenciamento (como na China).164 165

Membros da Open Handset Alliance, que inclui a maioria das grandes fabricantes de dispositivos Android, também são contratualmente proibidos de produzir aparelhos com sistema baseado em algum dos ramos do Android.166 Em 2012 a Acer Inc. foi forçada pelo Google a paralisar a produção de um dispositivo com um sistema operacional doAlibaba Group, com ameaça de ser removido do consórcio, já que o Google argumentou que o sistema era uma versão incompatível do sistema operacional Android. O Grupo Alibaba se defendeu das alegações, clamando que o sistema era uma plataforma distinta do Android (que utilizava principalmente aplicativos baseados em HTML5), mas incorporava partes da plataforma Android de forma que permitisse que aplicativos sejam retrocompatíveis com apps do sistema do Google. O sistema realmente apresentava retrocompatibilidade, e incluía no OS uma loja de aplicativos Android, porém, a maioria destes era pirateada.167 168 169

Recepção

Android-x86 rodando em um netbook da Asus (EeePC); O Android tem sido constantemente portado para diferentes plataformas para ser usado como um sistema operacional de desktop.

O Android teve uma recepção morna quando foi revelado em 2007. Apesar dos analistas terem ficado impressionados por empresas de tecnologia respeitáveis terem se juntado ao Google para formar a Open Handset Alliance, não estava claro se as fabricantes de celulares estariam dispostas a substituir seus sistemas operacionais pelo Android.170 A ideia de uma plataforma de código aberto, baseada em Linux agradou a muitos,171 mas havia preocupações sobre a ferrenha competição que o Android teria que enfrentar de empresas que já estavam firmadas no ramo, como a Nokia e a Microsoft, além de outros softwares móveis baseados em linux que estavam em desenvolvimento.172 Esses competidores estavam, à época, muito céticos quanto ao sucesso da nova plataforma: A Nokia deu declarações dizendo que "nós não o vemos como uma ameaça", se referindo ao Android,173 enquanto um membro da equipe de desenvolvimento do Windows Mobile declarou que não entendia o impacto que eles poderiam ter.173

Desde então o Android cresceu e se tornou o sistema operacional móvel mais utilizado no mundo,174 e uma das experiências de sistema móvel mais rápidas.175 A mídia especializada elogiou a natureza de código aberto do Android, tendo esta característica ter sido a principal "força" do sistema, permitindo empresas como a Microsoft,176 177 AmazonBarnes & NobleOuyaBaidu e outros a criarem ramificações a partir do Android. Como resultado, o sistema foi descrito pelo site de tecnologia Ars Technica como o "sistema operacional padrão para se lançar novos softwares" para empresas que não possuem sistema próprio.174 Essa abertura e flexibilidade também está presente ao nível do usuário final do sistema: o Android permite extensa customização do sistema, e seus aplicativos são livres para serem instalados de outros lugares fora da loja oficial do Google. Estas são as vantagens mais citadas do Android sobre outros sistemas móveis.174 178

Apesar da popularidade do sistema, que inclui um índice de ativação 3 vezes maior que seu principal concorrente, o iOS, há relatos de que o Google não estaria sendo capaz de transformar o Android em uma fonte de lucro.179 O site de tecnologia The Verge sugere que isto aconteça porque o Google estaria perdendo controle do Android devido à extensa customização e proliferação de aplicativos que não sejam da gigante—O tablet da AmazonKindle Fire Os, por exemplo, é um ramo do Android extremamente modificado, que não inclui nenhum software proprietário do Google, e requer que o usuário compre os aplicativos da Amazon AppStore, ao invés da Play Store.2 Em meados de 2014, num esforço para aumentar a proeminência da marca Android, o Google começou a exigir de fabricantes que usam seus aplicativos proprietários que mostrem o logo do Android na tela de boot do sistema.158

O Android tem sofrido de fragmentação,180 uma situação onde a variedade dos dispositivos Android em termos de hardware e software faz com que seja extremamente difícil desenvolver aplicativos que funcionem através de todos as variações, em comparação com plataformas rivais, como a do iOS, em que o sistema de hardware e software varia muito menos. Em 2013, por exemplo, segundo dados da OpenSignal, haviam 11,868 modelos de Android, em dezenas de tamanhos diferentes de tela e resolução, rodando 8 versões diferente do Android simultaneamente, enquanto a maior parte dos dispositivos iOS tem sido atualizados para a última versão do software.181 Críticos do Android como o site de tecnologia Apple Insider têm declarado que a fragmentação em termos de hardware e software tem deixado o Android crescer em número entre dispositivos de baixo preço e baixa qualidade. Estes dispositivos, que são a maioria, fazem com que desenvolvedores criem aplicativos para a massa, a qual normalmente possui software atrasado, e não possui incentivo para usufruir dos últimos recursos dos sistemas mais atuais, que estariam em apenas uma pequena porcentagem de dispositivos.182 Porém, a desenvolvedora OpenSignal, que desenvolve tanto para iOS quanto para Android, concluiu que essa fragmentação pode deixar o processo de desenvolvimento mais fácil, já que enquanto o Android cresce em termos globais, a chance de ser recompensado também cresce.181

Fatia do mercado

A empresa de pesquisas Canalys estima que no segundo semestre de 2009 o Android representava 2,8% de todos os smartphones vendidos no mundo.183 No quarto trimestre de 2010 essa fatia passou a ser de 33%, transformando-se na plataforma móvel mais vendida,184 superando a então líder Symbian.185 No terceiro trimestre de 2011 a Gartnerestimou que o Android representava mais da metade (52,5%) das vendas mundiais de smartphones.186 Já no terceiro trimestre de 2012, segundo a IDC, esse número era de 75%.187

Em julho de 2011 o Google afirmava que 550.000 novos Android eram ativados por dia,188 número que era de 400.000 em maio,189 e possuía mais de 100 milhões de dispositivos ativados,190 com um crescimento de 4,4% por semana.188 Em setembro de 2012, 500 milhões de aparelhos já haviam sido ativados, com um média de 1,3 milhões de ativações por dia.191 192 Em maio de 2013, na Google I/OSundar Pichai afirmara que 900 milhões de dispositivos em todo o mundo já haviam sido ativados.193 Em julho de 2013 a Google Play Store possuía mais de 1 milhão de aplicativos publicados, sendo estes baixados cerca de 50 bilhões de vezes.16

A fatia do Android varia de acordo com o mercado em questão. Em julho de 2012 usuários com mais de 13 anos nos Estados Unidos possuidores de Android eram 52% de todo o mercado,194 número que cresce para 90% na China.195 Durante o terceiro trimestre de 2012 a fatia de vendas mundial de smartphones com Android era de 75%,187 com cerca de 750 milhões de dispositivos ativados no total. Em abril de 2013 o sistema atingiu a marca de 1,5 milhões de ativações diária.192 Em maio de 2013 48 bilhões de aplicativos haviam sido instalados a partir da Play Store,63 e em setembro de 2013 o Google ultrapassou o número de 1 bilhão de dispositivos Android ativados em todo o mundo.196

O Android possui o maior número de aparelhos dentre os sistemas operacionais móveis, e em 2013 conseguiu vender mais que Windows, iOS e Mac OS X juntos.10 11 12 13 No terceiro trimestre de 2013 a fatia do Android nas vendas mundiais de smartphones era de 81,3%, a mais alta da história.197 198 199 Durante este período de tempo mais de 261 milhões de smartphones eram vendidos, com cerca de 211 milhões destes rodando Android.198

Dispositivos com o sistema do Google representam mais da metade das vendas na maioria dos mercados, inclusive nos EUA e no Brasil, enquanto somente no Japão o sistema da Apple foi o mais vendido.200 No final de 2013 mais de 1,5 bilhão de smartphones haviam sido vendidos desde 2010, fazendo do Android o sistema móvel mais vendido de todos os tempos, e na Google I/O de 2014 o Android possuía 1 bilhão de dispositivos ativos (que tiveram seus aparelhos conectados à internet em um intervalo de 1 mês).201 202203 Analistas estimam que este número deve subir para 3 bilhões até o final de 2014. Em 2013 o número de Android vendidos em relação ao Windows era de 2.8:1, ou numericamente, uma diferença de 578 milhões de aparelhos.204 205 206

Tablets

Primeira geração do tablet Nexus 7.

Apesar do sucesso do sistema entre smartphones, a adoção dele em tablets foi incialmente lenta.207 Uma das principais causas foi o desinteresse dos usuários de comprar tablets que teriam poucos aplicativos de qualidade, agravada pela falta de interesse dos desenvolvedores em fazer aplicativos para um mercado ainda em ascensão.208 209 O conteúdo que estaria no tablet e sua qualidade se provou, portanto, mais importante que especificações de hardware na decisão final do usuário. Devido à falta de conteúdo específico para tablets Android no começo de 2011, os primeiros tablets tinham somente aplicativos portados automaticamente de smartphones, enquanto o então domínio do iPad era reforçado pelo crescimento de aplicativos específicos para ele.209 210

Apesar dos poucos aplicativos específicos em sua infância, um número considerável de tablets Android (junto com outros sistemas operacionais, como os dos TouchPad e o BlackBerry PlayBook) foram lançados no mercado para tentar aproveitar a "onda" lançada peloiPad.209 Revistas digitais especializadas sugeriram que o erro dos tablets Android estava nas fabricantes, que tentavam fazer "telefones gigantes", ao invés de aprimorar a experiência para o novo formato. Esse tipo de conduta das fabricantes falhou em ganhar espaço de vendas além de ter contribuído para uma má reputação dos tablets Android.211 212 Além disso, vários tablets com o sistema do gigante das pesquisas como o Motorola Xoom tinham preço igual ou até mesmo maior do que o iPad, o que prejudicava as vendas, com a exceção do tablet da Amazon Kindle Fire OS, que manteve o preço baixo e garantia acesso aos conteúdos exclusivos da Amazon.209 213

O cenário começou a mudar em 2012 com o lançamento do tablet Nexus 7. O tablet era mais acessível e possuía um incentivo aos desenvolvedores para serem criados aplicativos exclusivos para tablet.214 De acordo com a Associação Internacional de Dados, a venda de tablets com Android ultrapassaram as do iPad no terceiro trimestre de 2012.215

No final de 2013 foi atingida a marca de 191,6 milhões de tablets Android vendidos desde 2011.216 217 Isso fez tablets com Android serem o tipo de tablet mais vendido no mundo, ultrapassando o iPad no segundo trimestre de 2013.218

Distribuição por versão

Os gráficos nesta seção demonstram a porcentagem de dispositivos que acessaram a Play Store num intervalo de 7 dias, terminando em 1º de dezembro de 2014, por versão de sistema.219 220 Portanto, as estatísticas excluem distribuições do Android que não acessam o Google Play, como por exemplo os celulares e tablets da Amazon. Somente são exibidas as porcentagens de versões que somam mais de 0,1%. As estatísticas foram coletadas após o lançamento do Android Lollipop, portanto, o novo sistema foi identificado em menos de 0,1% dos aparelhos.220

Versão

Codinome

Data de lançamento

API Nível

Distribuição

4.4

KitKat

31 de outubro de 2013

19

33.9%

4.3

Jelly Bean

24 de julho de 2013

18

7.0%

4.2.x

13 de novembro de 2012

17

20.4%

4.1.x

9 de julho de 2012

16

21.3%

4.0.3–4.0.4

Ice Cream Sandwich

16 de dezembro de 2011

15

7.8%

2.3.3–2.3.7

Gingerbread

9 de fevereiro de 2011

10

9.1%

2.2

Froyo

20 de maio de 2010

8

0.5%

Pirateamento de aplicativos

Há preocupação por parte de usuários e desenvolvedores sobre a facilidade com que aplicativos pagos podem ser pirateados.221 Em maio de 2012, em uma entrevista da desenvolvedora Eurogamer, os desenvolvedores do jogo Football Manager declararam que a proporção de jogadores piratas para jogadores legítimos em seu jogo era de 9:1.222Porém, nem todos desenvolvedores concordam que as taxas de pirateamento são um problema grave; em julho de 2012, por exemplo, desenvolvedores do jogo Wind-up Knight disseram que as taxas de pirateamento em seus jogos eram de apenas 12%, onde grande parte vinha da China, onde a maioria dos usuários não pode pagar pelos aplicativos.223

Em 2010 o Google lançou uma ferramenta para validar a instalação e compra de aplicativos, mas os desenvolvedores rebateram dizendo que a solução era ineficaz, insuficiente e facilmente burlada. O Google se defendeu, respondendo que a ferramenta não era para ser uma solução definitiva para a pirataria, mas uma ferramenta para auxiliar desenvolvedores de acordo com suas necessidades.224 Em 2012 o Google lançou outra ferramenta que permitia a encriptação de aplicativos para que somente funcionassem nos dispositivos em que foram originalmente instalados, porém, pouco tempo após o lançamento a ferramenta foi desativada devido à problemas técnicos.225

Problemas legais

Tanto o Android em si quanto fabricantes de dispositivos Android tem envolvimento em dezenas de processos envolvendo patentes. Em agosto de 2010 a empresa Oracleprocessou o Google alegando violação de direitos autoriais e patentes relacionadas à linguagem Java presente em seu sistema.226 Originalmente a Oracle pedia indenização de $6,1 bilhões de dólares,227 mas esse valor foi revisado a pedido de um juiz federal dos Estados Unidos.228 Em resposta às acusações, o Google se defendeu em diversas frentes, afirmando que o Android não infringia as patentes da Oracle e que essas patentes eram inválidas.229 Em maio de 2012 o júri decidiu que o Google não infringia as patentes ou direitos autorais da Oracle, e que as informações utilizadas pelo Google não podiam estar sob direitos autorais.230 231

Além dos processos diretamente contra o Google, várias "guerras por procuração" têm sido travadas contra o Android indiretamente ao focar processos nos fabricantes de dispositivos, com o efeito de desencorajar fabricantes à adotarem o Android devido aos altos custos dos processos.232 Tanto a Apple quanto a Microsoft processaram diversas fabricantes, sendo o caso Apple vs Samsung um dos mais importantes. Em outubro de 2011 a Microsoft declarou que havia assinado acordos de patentes com 10 fabricantes de dispositivos Android, os quais se incluem a HTC e a Samsung.233 234 O acordo com a Samsung inclui, também, mais recursos para o desenvolvimento de smartphones com oWindows Phone.232

O Google expressou publicamente sua frustração para o atual cenário de patentes nos EUA, acusando a AppleOracle e Microsoft de tentar prejudicar o Android através de litígios de patentes ao invés de tentar inovar e competir por melhores produtos e serviços.235 Em 2011 o Google comprou a Motorola por $12.5 bilhões de dólares, o que foi visto como uma atitude defensiva visando proteger o Android, hava vista que a Motorola possuía mais de 17.000 patentes.236 Em dezembro de 2011 o Google comprou mais de mil patentes da IBM, também com o mesmo objetivo.237

Uso fora de smartphones e tablets

Ouya, um console de videogame que roda Android, foi uma das campanhas de crowdfunding de mais sucesso do site Kickstarter.

O fato do Android ser um sistema aberto e extremamente customizável permite que ele seja usado em outros eletrônicos além de tablets esmartphones, o que inclui netbookssmartbooks,238 smart TVs (Android TV e Google TV), e câmeras (Galaxy Camera).239 Além destes mais usados, há também sistema Android em óculos (Google Glass), smartwatches,240 fones de ouvido,241 tocadores de CD e DVD de carros,242 espelhos,243 MP3s,244 telefones fixos,245 e consoles de videogamesOuya, um console de videogame que roda Android se tornou uma das campanhas de crowdfunding de mais sucesso da história do site Kickstarter, arrecadando mais de $8,5 milhões de dólares para seu desenvolvimento,246 247 e foi seguido por outros consoles baseados em Android, como o Project Shield da Nvidia,248 e o Nexus Player, console lançado pelo Google e fabricado pela Asus.249 Em mais uma tentativa de levar o Android à diversas plataformas, em junho de 2014 na Google I/O de 2014, foi anunciado o desenvolvimento do Android TV, que substitui a plataforma Google TV, e oAndroid Auto, plataforma para entretenimento em veículos automotivos.250

Android Wear

Em 18 de março de 2014 o Google anunciou o Android Wear, uma plataforma baseada em Android para dispositivos vestíveis, mais especificamente relógios de pulso inteligentes (smartwatches).251 Esse anúncio foi imediatamente seguido do lançamento de dois produtos: LG G Watch e o Moto 360.252

Smartwatch Moto 360 da Motorola, um dos primeiros com o novo sistema do Google.

O sistema tem como objetivo facilitar a vida do usuário,253 mostrando informações e respectivas respostas, sem que seja necessário retirar o smartphone do bolso. Ele é controlado por voz e por toque, através de uma tela touchscreen em formato redondo ou quadrado. Funções dos smartwatches reveladas até agora incluem sensores de movimento e luz, monitores cardíacos, pedômetros, sensores GPS,254 execução de músicas sem a necessidade de celular,254 recusar ou aceitar ligações; ler, ouvir e responder mensagens de texto; fazer buscas na internet; anotar informações, controlar a música do smartphone, entre outras.254 253 255 256 Para se utilizar de todas as funções dos dispositivos, é requerido um celular com o sistema Android com versão 4.3 ou acima.257 Companhias parceiras do Google no desenvolvimento da plataforma incluem AsusFossil, Inc.HTCIntelLGMediaTekMotorolaQualcommSamsung e Sony.258

Dispositivos com o sistema Android Wear lançados:

  • Motorola Moto 360259
  • LG G Watch260
  • Samsung Gear Live261
  • ASUS ZenWatch262
  • Sony Smartwatch 3263
  • LG G Watch R264

Android Auto

Em janeiro de 2014 na Consumer Eletronics Show (CES), o Google anunciou a formação da Open Automotive Alliance, um grupo que incluía a gigante da tecnologia e montadoras de automóveis como AudiGeneral MotorsHyundai e Honda e a Nvidia, dispostos a criar sistemas de entretenimento unificados que combinassem sofisticação e segurança em uma plataforma baseada em Android.265

Em junho do mesmo ano foi anunciado o Android Auto, sistema operacional desenvolvido para carros e baseado na plataforma Android. O sistema irá oferecer em uma tela no carro sistemas e aplicativos como navegação GPS, música, SMS, telefone, e pesquisas online. Poderá ser controlado tanto por botões físicos quanto por um sistema touchscreen, além do controle por voz.266 O sistema irá se comunicar com dispositivos Android com sistema na versão Lollipop 5.0 ou superior, e será conectado ao sistema através de um cabo USB. O usuário terá acesso ao sistema do carro, podendo indicar a velocidade do automóvel, controlar o sistema de som, e ter acesso às informações disponíveis, como nivelamento, pressão dos pneus e problemas internos do veículo.267

Montadoras de veículos que terão modelos com o sistema Android Auto incluem AcuraAudiBentleyChevroletChryslerDodgeFiatFordHondaHyundaiJeepKia,MaseratiMitsubishiNissanRenaultSubaruSuzukiToyotaVolkswagen e Volvo, sendo os primeiros modelos lançados no final de 2014.268

Android TV

Anunciado junto com o Android Auto, o Android TV tem como objetivo ser o sistema padrão de smart TVs, e foi anunciado como sucessor do Google TV, plataforma lançada em 2010. O sistema é desenvolvido para ser intuitivo, e dá ênfase à sua função de pesquisa por voz.268 O sistema pode ser navegado através do controle remoto, do smartphone, ou do controle do console.268

Foi desenvolvido para ser tanto nativo na TV, quanto adaptado através de setup boxes, ou consoles de videogame. Dará suporte a praticamente todos os jogos da Play Store, sendo também um transmissor de conteúdo do smartphone.269 270 Foi revelado meses após seu lançamento que os aplicativos desenvolvidos para a nova plataforma passarão por um rigoroso controle de qualidade, a fim de garantir a máxima segurança e proteção na loja de aplicativos do sistema.271 Os parceiros do Google no desenvolvimento do novo sistema são, a um primeiro momento, AsusRazerSonySharp e TP Vision.272 O primeiro produto desenvolvido com o Android TV é o sistema de mídia Nexus Player, desenhado para funcionar tanto como plataforma de entretenimento, quanto plataforma de jogos. Foi criado pela Asus e pelo Google em conjunto, sendo lançado já com o sistema Android 5.0 Lollipop.273