1. Licenças de Software
1.1. documento contratual
1.1.1. por empresas desenvolvedoras de software
1.2. Copyright
1.2.1. proíbe a execução de uma parte da obra
1.2.1.1. por terceiros não autorizados
1.2.2. direitos reservados sobre a sua obra
1.3. Copyleft
1.3.1. estabelecer o direito de copiar e redistribuir um trabalho determinado
1.3.2. direito de cópia
1.3.3. permite a livre circulação da obra intelectual
1.3.4. visa favorecer a expansão do conhecimento
1.3.5. seja para fins lucrativos ou não
1.3.6. autor concede os direitos de sua obra aos demais
1.3.6.1. sob a condição de que
1.3.6.1.1. na ocorrência de qualquer modificação da obra original
1.3.6.1.2. seja mantida a mesma licença atribuída pelo autor original
1.3.7. GPL
1.3.7.1. Licença Pública Geral GNU
1.3.7.2. Projeto GNU
1.3.7.3. 4 liberdades
1.3.7.3.1. executar o programa
1.3.7.3.2. adaptá-lo às suas necessidades
1.3.7.3.3. redistribuir
1.3.7.3.4. aperfeiçoar
1.3.8. BSD
1.3.8.1. Berkeley Software Distribution
1.3.8.2. licença de código aberto
1.3.8.3. copycenter
1.3.8.4. Exemplos
1.3.8.4.1. Microsoft Edge
1.3.8.4.2. Mac OS X
1.4. Creative Commons
1.4.1. restrições apenas para uso comercial
1.4.2. BY
1.4.2.1. Atribuição
1.4.2.2. deve dar os créditos ao autor
1.4.3. ND
1.4.3.1. Sem Derivações
1.4.3.2. não pode distribuir obras derivadas
1.4.4. NC
1.4.4.1. Não Comercial
1.4.4.2. não pode usar para fins comerciais
1.4.5. SA
1.4.5.1. Compartilha Igual
1.4.5.2. se criar derivadas
1.4.5.2.1. distribuir sob a mesma licença
2. Classificação
2.1. Quanto à Licença
2.1.1. Software Proprietário
2.1.1.1. exige pagamento da licença de uso
2.1.1.2. Exemplos
2.1.1.2.1. MS Windows
2.1.1.2.2. MS Office
2.1.2. Shareware
2.1.2.1. Demo
2.1.2.2. Trial
2.1.2.3. Liberado gratuitamente para degustação e código fechado
2.1.2.4. vários softwares proprietários são liberados como shareware
2.1.3. Freemium
2.1.3.1. oferecem
2.1.3.1.1. funcionalidades gratuitas
2.1.3.1.2. recursos extras
2.1.4. Adwares
2.1.4.1. exibem propagandas
2.1.5. Freeware
2.1.5.1. Totalmente gratuito
2.1.5.1.1. mas seu código-fonte não é liberado
2.1.5.2. Exemplos
2.1.5.2.1. Adobe Reader
2.1.5.2.2. Skype
2.1.5.2.3. Internet Explorer
2.1.6. Beta
2.1.6.1. Liberado para testes e gratuito
2.1.6.2. vários softwares proprietários são liberados como Beta
2.1.7. Software de Domínio Público
2.1.7.1. Sua licença de uso
2.1.7.1.1. expirada
2.1.7.1.2. sem direitos autorais
2.1.7.2. Sistema operacional BSD
2.1.8. Software Livre
2.1.8.1. Código-fonte aberto
2.1.8.1.1. tem direitos autorais garantidos pela
2.1.8.2. Exemplos
2.1.8.2.1. Linux
2.1.8.2.2. LibreOffice
2.1.8.2.3. Mozilla Firefox
2.1.8.2.4. Thunderbird
2.1.8.2.5. Opera
2.2. Quanto à Funcionalidade
2.2.1. Sistema Operacional
2.2.1.1. MS Windows
2.2.1.2. Linux (Software livre)
2.2.1.3. Mac OS X (Apple)
2.2.1.4. Unix Solaris (Oracle)
2.2.1.5. Chrome OS (Google)
2.2.1.6. Android (mobile, Google)
2.2.1.7. Mac iOS (mobile, Apple)
2.2.2. Pacotes de Escritório
2.2.2.1. MS Office
2.2.2.2. BrOffice/LibreOffice
2.2.2.3. iWorks (Apple)
2.2.2.4. Lotus Symphony (IBM)
2.2.2.5. Google Docs (Web)
2.2.2.6. MS Office Online
2.2.3. Navegadores ou Browsers
2.2.3.1. Internet Explorer
2.2.3.2. Mozilla Firefox
2.2.3.3. Google Chrome
2.2.3.4. Safari (Apple)
2.2.3.5. Opera
2.2.3.6. Konqueror
2.2.3.7. Netscape Navigator
2.2.4. Drivers
2.2.4.1. driver de
2.2.4.1.1. impressora
2.2.4.1.2. scanner
2.2.4.1.3. webcam
2.2.4.1.4. vídeo
2.2.4.1.5. som
2.2.5. Utilitários
2.2.5.1. Compactadores de Arquivos
2.2.5.2. Desfragmentador de Disco
2.2.5.3. Ferramentas de Backup
2.2.5.4. Firewall
2.2.5.5. Gerenciador de Arquivos
2.2.5.6. Scandisk
2.2.6. Clientes de E-mail
2.2.6.1. MS Outlook Express
2.2.6.2. MS Outlook
2.2.6.3. Mozilla Thunderbird
2.2.6.4. Eudora
2.2.6.5. Lotus Note
2.2.7. Webmail
2.2.7.1. Gmail (Google)
2.2.7.2. Outlook.com (antigo Hotmail)
2.2.7.3. Yahoo
2.2.7.4. Ig
2.2.7.5. Uol
3. Introdução
3.1. Exemplos
3.1.1. Word
3.1.2. Excel
3.1.3. Writer
3.1.4. Skype
3.1.5. Microsoft Edge
3.1.6. Whatsapp
3.2. é a parte lógica de uma máquina
3.2.1. programas
3.3. refere-se a algo que não se pode tocar
4. Tipos de Software
4.1. Aplicativos
4.1.1. tudo que não é um software básico ou utilitário é um aplicativo
4.1.2. Exemplos
4.1.2.1. Programas de escritório
4.1.2.2. Navegadores de Internet
4.2. Utilitário
4.2.1. é um software útil para o computador
4.2.2. não é imprescindível para o seu funcionamento
4.2.3. Exemplos
4.2.3.1. Desfragmentador de disco
4.2.3.2. Antivírus
4.3. Básicos
4.3.1. são considerados fundamentais para o funcionamento da máquina
4.3.2. o sistema operacionalmente permite a interação entre
4.3.2.1. usuário
4.3.2.2. máquina
4.3.3. Exemplos
4.3.3.1. Linux
4.3.3.2. Windows
4.4. Embarcado
4.4.1. Predefinido de fábrica
4.4.2. Exemplos
4.4.2.1. Ar-condicionado
4.4.2.2. Central multimidia
5. Softwares
5.1. Contexto
5.1.1. é um conjunto de programas de interface entre usuário e máquina
5.1.2. Antigamente
5.1.2.1. o programador tinha que conhecer arquitetura da máquina
5.1.2.1.1. programando com painéis e fios
5.1.2.2. programas eram desenvolvidos em linguagem de máquina
5.1.2.2.1. e carregados diretamente na memória principal
5.2. Loader
5.2.1. Carregador
5.2.2. responsável por carregar na memória o programa para ser executado
5.2.3. a carga varia de acordo com o código gerado pelo linker
5.2.4. Loader absoluto
5.2.4.1. transfere o programa da memória secundária para a principal
5.2.4.2. precisa saber
5.2.4.2.1. endereço de memória inicial
5.2.4.2.2. tamanho do módulo
5.3. Programação
5.3.1. o programador abstrai dos aspectos de hardware
5.3.1.1. endereço de memória etc
5.3.2. surgem as linguagens
5.3.2.1. de montagem (assembly)
5.3.2.2. de alto nível
5.4. Linker
5.4.1. Editor de ligação
5.4.2. Responsável por gerar um único programa executável
5.4.2.1. a partir de um ou vários módulos-objeto
5.5. Depurador
5.5.1. Também conhecido como debugger
5.5.2. permite
5.5.2.1. acompanhar toda a execução do programa
5.5.2.2. a detecção de erros
5.6. Tradutor
5.6.1. Responsável pela conversão do programa para execução pelo processador
5.6.2. Tradução da representação simbólica das instruções para código de máquina
5.6.3. o tradutor gera o módulo-objeto
5.6.4. a chamada a possíveis sub-rotinas externas não é feita pelo tradutor
5.6.4.1. impossibilitando a execução do programa
5.6.5. A depender do programa fonte
5.6.5.1. podemos ter 2 tipos de tradutores
5.6.5.1.1. Montador
5.6.5.1.2. Compilador
5.6.6. Montador
5.6.6.1. Responsável pela tradução do programa em linguagem de montagem
5.6.6.2. a linguagem de montagem é particular a cada processador
5.6.6.3. não permite a portabilidade entre máquinas diferentes
5.6.7. Compilador
5.6.7.1. Responsável por gerar um programa
5.6.7.1.1. alto nível
5.6.7.1.2. em linguagem de máquina
5.6.7.2. programas compilados permitem a portabilidade entre computadores
5.7. Interpretador
5.7.1. é um tradutor que não gera módulo-objeto
5.7.2. Durante a execução do programa
5.7.2.1. traduz cada instrução e a executa
5.7.2.1.1. exemplos
5.7.3. Flexibilidade
5.7.3.1. permite a implementação de tipos de dados dinâmicos
5.7.3.1.1. podem mudar durante a execução do programa