quarta-feira, 20 de novembro de 2013

Portfolio Individual - Curso Superior de ADS - II - Semestre - DP

UNIVERSIDADE NORTE DO PARANÁ - UNOPAR
SISTEMA DE ENSINO PRESENCIAL CONECTADO
CURSO SUPERIOR DE TECNOLOGIA EM
ANÁLISE E DESENVOLVIMENTO DE SISTEMAS





WANDERLEY NUNES CRISTO





FUNDAMENTOS DE TECNOLOGIA DA INFORMAÇÃO
Produção Textual Interdisciplinar – Portfolio





Trabalho apresentado ao Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas à Universidade Norte do Paraná - UNOPAR, para as disciplinas de Sistemas de Computação e Informação - Adaptação, Ética, Política e Sociedade - Adaptação, Interação Humano-computador - Adaptação, Segurança da Informação - Adaptação.










Breves
2013



SUMÁRIO

1    INTRODUÇÃO    3

2    OBJETIVO    4

3    SISTEMAS OPERACIONAIS    5

3.1    VISÃO GERAL    6

3.2    SISTEMAS OPERACIONAIS MODERNOS    7

3.2.1    FUNCIONAMENTO    7

3.2.1.1    GERENCIAMENTO DE PROCESSOS    7

3.2.1.2    GERENCIAMENTO DE MEMÓRIA    8

3.2.1.3    SISTEMA DE ARQUIVOS    8

3.2.1.4    TIPOS DE SISTEMAS    8

3.2.1.4.1    SISTEMAS MULTIPROCESSADORES    8

3.2.1.4.1.1    SISTEMAS FORTEMENTE ACOPLADOS    8

3.2.1.4.1.2    SISTEMAS FRACAMENTE ACOPLADOS    9

3.2.1.4.2    SISTEMAS OPERACIONAIS DISTRIBUÍDOS    9

3.2.2    INTERFACES DE USO    10

3.2.2.1    INTERFACE DE TERMINAL    10

3.2.2.2    INTERFACE TEXTUAL    10

3.2.2.3    INTERFACE GRÁFICA    10

3.2.2.4    INTERFACE DE VOZ    11

4    TIPOS DE SISTEMAS OPERACIONAIS    12

4.1    UBUNTU LINUX    12

4.1.1    DENOMINAÇÃO    12

4.1.2    CARACTERÍSTICAS    13

4.2    SLACKWARE LINUX    13

4.2.1    O SLACKWARE LINUX    14

4.2.2    NOME E HISTÓRIA    14

4.2.3    A DISTRIBUIÇÃO    15

4.3    MICROSOFT WINDOWS    15

4.3.1    ORIGEM E HISTÓRIA    16

4.3.2    CARACTERÍSTICAS TÉCNICAS    17

4.3.3    WINDOWS 8    18

5    LINGUAGENS DE PROGRAMAÇÃO    19

5.1    PHP ("Hypertext Preprocessor", ou Personal Home Page)    19

5.1.1    PRINCIPAIS CARACTERÍSTICAS    20

5.2    JAVASCRIPT    20

5.2.1    CARACTERÍSTICAS    21

5.2.1.1    IMPERATIVA E ESTRUTURADA    21

5.2.1.2    DINÂMICA    21

5.2.1.2.1    TIPAGEM DINÂMICA    21

5.2.1.2.2    BASEADA EM OBJETOS    21

5.2.1.2.3    AVALIAÇÃO EM TEMPO DE EXECUÇÃO    22

5.2.1.3    FUNCIONAL    22

5.2.1.3.1    FUNÇÕES DE PRIMEIRA CLASSE    22

5.2.1.3.2    FUNÇÕES ANINHADAS    22

5.2.1.3.3    FECHAMENTOS    22

5.2.1.4    BASEADA EM PROTÓTIPOS    23

5.2.1.4.1    PROTÓTIPOS    23

5.2.1.4.2    FUNÇÕES E MÉTODOS    23

5.2.1.5    USO EM PÁGINAS WEB    23

5.3    C# (C Sharp)    24

5.3.1    CARACTERÍSTICAS    24

5.3.2    PRINCIPAIS CARACTERÍSTICAS DO C#    25

5.3.3    TIPOS DE DADOS    25

5.3.4    ELEMENTOS DE UM PROGRAMA    26

6    CONCLUSÃO    27

REFERÊNCIAS    28

1    INTRODUÇÃO

Neste trabalho são abordados diversos assuntos relacionados aos Sistemas Operacionais (SO), Tipos de SO, Funcionamento, as Interfaces e alguns dos sistemas operacionais existentes no mercado (Ubuntu e Slackware Linux e o MS Windows). Além dos sistemas operacionais são abordados as Linguagens de Programação e exemplificados algumas dessas linguagens. Para um melhor entendimento são tratadas as características, alguns dos elementos e outros elementos das linguagens de programação C#, PHP e Java Script.

2    OBJETIVO

Este trabalho tem por objetivo levar o aluno a conhecer um pouco mais sobre os Sistemas Operacionais, suas características, historias, tipos, interfaces de uso e etc. E, também, ao um conhecimentos básico das linguagens de programação C#, PHP, Java Scripts. Demostrando informações sobre as mesmas como suas formas de desenvolvimento, suas características, e modos de programação.

3    SISTEMAS OPERACIONAIS

A sigla usual para designar esta classe de programas é SO (do português, Sistema Operacional ou Operativo) ou OS (do inglês Operating System).

Sistema operacional ou software de sistema é um programa ou um conjunto de programas cuja função é gerenciar os recursos do sistema (definir qual programa recebe atenção do processador, gerenciar memória, criar um sistema de arquivos, etc.), fornecendo uma interface entre o computador e o usuário. Embora possa ser executado imediatamente após a máquina ser ligada, a maioria dos computadores pessoais de hoje o executa através de outro programa armazenado em uma memória não-volátil ROM chamado BIOS num processo chamado "bootstrapping", conceito em inglês usado para designar processos autossustentáveis, ou seja, capazes de prosseguirem sem ajuda externa. Após executar testes e iniciar os componentes da máquina (monitores, discos, etc.), o BIOS procura pelo sistema operacional em alguma unidade de armazenamento, geralmente o Disco Rígido, e a partir daí, o sistema operacional "toma" o controle da máquina. O sistema operacional reveza sua execução com a de outros programas, como se estivesse vigiando, controlando e orquestrando todo o processo computacional.

Segundo alguns autores existem dois modos distintos de conceituar um sistema operacional:

Visão top-down pela perspectiva do usuário ou programador: é uma abstração do hardware, fazendo o papel de intermediário entre o software (programas) e os componentes físicos do computador, o (hardware); ou numa

Visão bottom-up (de baixo para cima): é um gerenciador de recursos, que controla quais aplicações (processos) podem ser executadas, quando devem ser executadas e quais recursos (memória, disco, periféricos) podem ser utilizados.

3.1    VISÃO GERAL

Existem vários sistemas operacionais entre eles, os mais utilizados no dia a dia, normalmente utilizados em computadores domésticos, são o Windows, Linux e Mac OS X.

Um computador com o sistema operacional instalado poderá não dar acesso a todo o seu conteúdo dependendo do utilizador. Com um sistema operativo, podemos estabelecer permissões a vários utilizadores que trabalham com este. Existem dois tipos de contas que podem ser criadas num sistema operativo, as contas de Administrador e as contas limitadas(usuario padrão). A conta Administrador é uma conta que oferece todo o acesso à máquina, desde a gestão de pastas, ficheiros e software de trabalho ou entretenimento ao controle de todo o seu Hardware instalado. A conta padrão é uma conta que não tem permissões para aceder a algumas pastas ou instalar software que seja instalado na raiz do sistema ou então que tenha ligação com algum Hardware que altere o seu funcionamento normal ou personalizado pelo Administrador. Para que este tipo de conta possa ter acesso a outros conteúdos do disco ou de software, o administrador poderá personalizar a conta oferecendo permissões a algumas funções do sistema como também poderá retirar acessos a certas áreas do sistema.

O sistema operacional funciona com a iniciação de processos que este irá precisar para funcionar corretamente. Esses processos poderão ser ficheiros que necessitam de ser frequentemente atualizados, ou ficheiros que processam dados úteis para o sistema. Poderemos ter acesso a vários processos do sistema operacional a partir do gestor de tarefas, onde se encontram todos os processos que estão em funcionamento desde o arranque do sistema operacional até a sua utilização atual. Pode-se também visualizar a utilização da memória por cada processo, no caso de o sistema operacional começar a mostrar erros ou falhas de acesso a programas tornando-se lento, pode-se verificar no gestor de tarefas qual dos processos estará bloqueado ou com elevado número de processamento que está a afetar o funcionamento normal da memória.

.

3.2    SISTEMAS OPERACIONAIS MODERNOS

Um sistema computacional moderno consiste em um ou mais processadores, memória principal, discos, impressoras, teclado, mouse, monitor, interfaces de rede e outros dispositivos de entrada e saída. Enfim, é um sistema complexo. Um dos conceitos mais fundamentais dos Sistemas Operacionais Modernos é a distinção entre o programa e a atividade de executá-lo. O programa é apenas um conjunto estático de diretrizes e sua execução é uma atividade dinâmica. Outra das diferenças que podemos observar entre um sistema operacional e aplicações convencionais é a forma com que suas rotinas são processadas em função do tempo. Um sistema operacional não é executado de forma estruturada. Suas rotinas são executadas concorrentemente em função de eventos assíncronos. Em outras palavras, eventos que podem ocorrer a qualquer momento.

3.2.1    FUNCIONAMENTO

Um sistema operacional possui as seguintes funções:

3.2.1.1    GERENCIAMENTO DE PROCESSOS

O sistema operacional multitarefa é preparado para dar ao usuário a ilusão que o número de processos em execução simultânea no computador é maior que o número de processadores instalados. Cada processo recebe uma fatia do tempo e a alternância entre vários processos é tão rápida que o usuário pensa que sua execução é simultânea. São utilizados algoritmos para determinar qual processo será executado em determinado momento e por quanto tempo. Os processos podem comunicar-se, isto é conhecido como IPC (Inter-Process Communication). Os mecanismos geralmente utilizados são: Sinais; Pipes; Named Pipes; Memória Compartilhada; Soquetes (sockets) e Trocas de Mensagens.

O sistema operacional, normalmente, deve possibilitar o multiprocessamento. Neste caso, processos diferentes e threads podem ser executados em diferentes processadores. Para essa tarefa, ele deve ser reentrante e interrompível, o que significa que pode ser interrompido no meio da execução de uma tarefa.

3.2.1.2    GERENCIAMENTO DE MEMÓRIA

O sistema operacional tem acesso completo à memória do sistema e deve permitir que os processos dos usuários tenham acesso seguro à memória quando o requisitam. Vários sistemas operacionais usam memória virtual, que possui 3 funções básicas:

Assegurar que cada processo tenha seu próprio espaço de endereçamento, começando em zero, para evitar ou resolver o problema de relocação;

Prover proteção da memória para impedir que um processo utilize um endereço de memória que não lhe pertença;

    Possibilitar que uma aplicação utilize mais memória do que a fisicamente existente.

3.2.1.3    SISTEMA DE ARQUIVOS

A memória principal do computador é volátil, e seu tamanho é limitado pelo custo do hardware. Assim, os usuários necessitam de algum método para armazenar e recuperar informações de modo permanente. Um arquivo é um conjunto de bytes, normalmente armazenado em um dispositivo periférico não volátil, que pode ser lido e gravado por um ou mais processos.

3.2.1.4    TIPOS DE SISTEMAS

3.2.1.4.1    SISTEMAS MULTIPROCESSADORES

Os sistemas multiprocessadores – dois ou mais processadores trabalhando juntos – podem ser divididos em duas partes:

3.2.1.4.1.1    SISTEMAS FORTEMENTE ACOPLADOS

Dentro de sistemas fortemente acoplados – memória única compartilhada por dois ou mais processadores, tendo um mesmo sistema operacional gerenciando todos os processadores –, encontramos mais duas divisões:

    Sistemas simétricos – onde os processadores têm a mesma função;

    Sistemas assimétricos – onde um processador (mestre) pode executar serviços do sistema operacional.

3.2.1.4.1.2    SISTEMAS FRACAMENTE ACOPLADOS

Dentro de sistemas fracamente acoplados – mais de dois sistemas operacionais que são ligados por canal de comunicação, tendo hardware e sistemas operacionais independentes –, existem mais duas divisões:

Sistemas operacionais de rede – cada sistema, também chamado host ou nó, possui seus próprios recursos de hardware, como processadores, memória e dispositivos de entrada e saída. Os nós são totalmente independentes dos terminais, sendo interconectados por uma rede de comunicação de dados, formando uma rede de computadores.

Os sistemas operacionais de rede são utilizados tanto em redes locais (Local Área Network - LAN), como em redes distribuídas (Wide Área Network - WAN). A ligação entre os diversos nós é feita por uma interface de rede que permite o acesso aos demais componentes da rede. Não existe um limite máximo para o número de nós que podem fazer parte de uma rede de computadores. Cada nó é totalmente independente dos demais, possuindo seu próprio sistema operacional e espaço de endereçamento. Os sistemas operacionais podem ser heterogêneos. Na Internet, cada host pode estar processando um sistema operacional diferente, mas todos estão se comunicando através do mesmo protocolo de rede, no caso, os protocolos da família TCP/IP (Transmission Control Protocol/Internet Protocol).

3.2.1.4.2    SISTEMAS OPERACIONAIS DISTRIBUÍDOS

São sistemas independentes que parecem um único computador aos olhos do usuário; Trata-se de um conjunto de processos que são executados de forma concorrente, cada um dos quais acessando um subconjunto de recursos do sistema. E essa comunicação é feita em forma de envio de mensagens.

3.2.2    INTERFACES DE USO

Os sistemas operacionais fornecem abstração de hardware para que seus recursos possam ser usados de maneira correta e padronizada, mas para ser possível operar um computador, é necessário fornecer também uma interface para que o usuário possa desfrutar dos recursos do sistema. Atualmente as principais interfaces de uso são as seguintes:

3.2.2.1    INTERFACE DE TERMINAL

A interface de terminal, também chamada "CLI" (Command Line Interface) funciona exclusivamente com teclado e mouse. Os comandos são digitados a partir de um prompt e são interpretados por um interpretador de comandos, conhecidos também por shells, bastante comuns em sistemas padrão POSIX. Um exemplo de interpretador de comandos seria o Bash. Usada geralmente por usuários avançados e em atividades específicas, como gerenciamento remoto, utiliza poucos recursos de hardware em comparação a interface gráfica.

3.2.2.2    INTERFACE TEXTUAL

Aplicativo com interface textual, rodando no sistema operacional FreeDOS

Assim como a interface de terminal, a interface textual também é baseada em texto, porém também tem à disposição um ambiente de trabalho composto por menus, janelas e botões. Esse tipo de interface tinha um uso difundido em aplicações baseadas no MS-DOS, que, inclusive, nas versões mais recentes contava com um gerenciador de programas e arquivos baseados nesse tipo de interface (o DOS Shell). Atualmente essa interface é muito rara, praticamente restrita a sistemas implementados na década de 1980 e início da década de 1990. Esse ambiente ainda prescinde do uso mouse, embora seja possível usá-lo através do uso da biblioteca ncurses no desenvolvimento dos softwares.

3.2.2.3    INTERFACE GRÁFICA

Nesse tipo de interface, também chamada GUI (Graphic User Interface) além de menus, janelas e botões também existem figuras, tanto vetoriais quanto fotografias. O usuário interage com esse tipo de interface usando o mouse, podendo também usar o teclado e teclas de atalho, ou então usando toques e gestos em touchscreens. É possível fazer todo tipo de tarefa usando interface gráfica, como edição de vídeos e imagens, sendo somente alguns tipos muito específicos de tarefas que se saem melhor em linha de comando. Acrescentar facilidade de uso e agilidade é o objetivo da interface gráfica, tendo a desvantagem de consumir muito mais memória que interfaces de linha de comando. Ao contrário das interfaces textuais e de terminal, as interfaces gráficas dependem de um servidor gráfico para funcionar e se comunicar com o sistema, e no caso dos sistemas para desktops e laptops, inclui um gerenciador de janelas em muitos casos, para que seja possível usar mais de um aplicativo na mesma tela. Em sistemas padrão POSIX é comum existir mais de um ambiente gráfico para o mesmo sistema, podendo ser escolhido a critério do usuário.

3.2.2.4    INTERFACE DE VOZ

Interfaces de voz, ou VUI (Voice User Interface), são aquelas em que o usuário interage com o sistema por meio de comandos sonoros. Sendo de desenvolvimento relativamente recente, tem sua aplicação em dispositivos adaptados para cegos e têm aparecido também em smartphones e tablets recentemente.

4    TIPOS DE SISTEMAS OPERACIONAIS

Para este portfólio, citarei como Sistemas Operacionais o Ubuntu e Slackware (Sistemas Linux) e o Microsoft Windows.

4.1    UBUNTU LINUX

Ubuntu é um sistema operacional de código aberto, construído a partir do núcleo Linux, baseado no Debian. É patrocinado pela Canonical Ltda. O Ubuntu diferencia-se do Debian por ter versões lançadas semestralmente, por disponibilizar suporte técnico nos 9 meses seguintes ao lançamento de cada versão (as versões LTS – Long Term Support – para desktop recebem 5 anos de suporte, e para servidor recebem 5 anos de suporte), e pela filosofia em torno de sua concepção. A proposta do Ubuntu é oferecer um sistema que qualquer pessoa possa utilizar sem dificuldades, independentemente de nacionalidade, nível de conhecimento ou limitações físicas. O sistema deve ser constituído principalmente por software livre. Deve também ser isento de qualquer taxa.

4.1.1    DENOMINAÇÃO

O nome "Ubuntu" deriva do conceito sul africano de mesmo nome, diretamente traduzido como "humanidade com os outros" ou "sou o que sou pelo que nós somos". Esse nome busca passar a ideologia do projeto, baseada nas liberdades do software livre e no trabalho comunitário de desenvolvimento. O sistema é muito comumente chamado "Ubuntu Linux", porém, oficialmente a Canonical, desenvolvedora do sistema, usa apenas o nome "Ubuntu", uma vez que o sistema ao ser portado para outros núcleos livres para além do Linux recebe outros nomes (por exemplo, o Ubuntu implementado sobre o OpenSolaris recebe o nome de "Nexenta") - ao contrário do Debian, por exemplo, que recebe este nome independentemente do núcleo usado.

4.1.2    CARACTERÍSTICAS

Novas versões do Ubuntu são lançadas duas vezes ao ano, uma no mês de Abril e outra no mês de Outubro;

Um dos focos principais é a usabilidade, incluindo o uso da ferramenta sudo para tarefas administrativas e a oferta de uma gama de recursos completa a partir de uma instalação padrão;

Acessibilidade e internacionalização, permitindo a utilização do sistema pelo maior número de pessoas possível. A partir da versão 5.04, a codificação de caracteres padrão é o UTF-8 (permitindo a utilização de caracteres não utilizados no alfabeto latino). O projeto visa também a oferecer suporte técnico nos idiomas de seus usuários;

Além das ferramentas de sistema padrão e outros aplicativos menores, o Ubuntu é oferecido com diversos programas pré-instalados que atendem às funcionalidades básicas, entre os quais estão a suíte de aplicativos Libre Office e o navegador de internet Firefox. Programas para visualizar conteúdos multimídia, clientes de e-mail e jogos simples completam o sistema básico;

O Ubuntu possui uma forte ligação com a comunidade Debian, contribuindo direta ou indiretamente com qualquer modificação nos códigos fonte, ao invés de apenas anunciar essas mudanças em uma data posterior. Muitos programadores do Ubuntu mantêm pacotes chave do próprio Debian;

Todas as versões do Ubuntu são disponibilizadas sem custo algum;

4.2    SLACKWARE LINUX

Slackware Linux é o nome da mais antiga e conhecida distribuição GNU/Linux mantida ainda em evidência. Seu criador e responsável pela manutenção, Patrick Volkerding, estabelece uma meta de produção da distribuição baseada em simplicidade e estabilidade, alcançando o padrão de distribuição mais Unix-like ao manter seus usuários nas camadas de configuração em console de modo texto para uma total personalização do ambiente. Além de seu uso profissional, é considerado também como uma distribuição de nível acadêmico, mantendo uma vasta documentação atualizada em sua raiz, para os usuários que necessitem de maior conhecimento para dominá-lo

4.2.1    O SLACKWARE LINUX

    O Slackware Linux é um sistema operacional computacional baseado em projetos oficiais de software livre, desenvolvido por pessoas espalhadas no mundo organizadas em comunidades e instituições, sendo a principal delas a FSF (Free Software Foundation) com seus projetos e licenciamentos GNU LGPL de software livre. Utiliza como cerne do sistema o projeto oficial da Linux Foundation, o kernel Linux.

4.2.2    NOME E HISTÓRIA

O nome "Slackware" teve sugestiva origem da "The Church Of The SubGenius" (Igreja dos Sub-Gênios), por Patrick Volkerding, de onde idealiza-se o termo "SLACK" que, satírica e ironicamente, incorpora-se o "senso de liberdade, independência e originalidade para alcançar suas metas pessoais", onde traduziria bem a filosofia do sistema. O fato de Patrick Volkerding objetivar estabilidade e não trazer versões betas ou aplicativos ainda em testes, trouxe ao Slackware a aparente impressão de ser uma distribuição de lançamentos lentos em comparação as demais distribuições Linux. Esta curiosa impressão podem ter ênfase no próprio nome da distribuição: "SLACKWARE", que significativamente se traduz "SLACK" como sendo "PREGUIÇA", e "WARE" como "PRODUTO", sendo interpretado como um produto de lapidação lenta. Mesmo após o lançamento de versões estáveis da distribuições, ao se instalar, as configurações do sistema são feitas diretamente nos documentos texto de configurações, modo preferido entre os usuários mais experientes.

Criada em meados de 1993, o Slackware Linux (ou simplesmente "Slack") tem como objetivo manter-se fiel aos padrões UNIX, mantendo-se bem estruturada e organizada para administradores e usuários, profissionais e acadêmicos, rejeitando ferramentas de configuração que escondam o real funcionamento do sistema adotando o princípio KISS (acrônimo em inglês de: Keep It Simple, Stupid - Faça isto simples, estúpido) de produção. Além disso, o Slackware é composto apenas do empacotamento de aplicativos em versões estáveis (diferente das versões betas e de pré-lançamentos, ainda em condições de testes), em especial nas suas versões intermediárias (o -current), e sem alterações feitas fora dos times oficiais de desenvolvedores.

4.2.3    A DISTRIBUIÇÃO

Em todos os lançamentos das versões estáveis, traz a mesma estrutura de organização e gerenciamento de pacotes. É uma distribuição de alto poder de personalização, contendo todos os pacotes necessários para montar servidores e desktops sem a necessidade de downloads de pacotes adicionais. Eles são oficialmente mantidos para a plataforma Intel x86, AMD x86-64, IBM S/390 e processadores de arquitetura ARM. Sua utilização pode ser aplicada em equipamentos modernos de arquitetura 64 bits, ou até mesmo em equipamentos antigos, com processadores i486 de 32 bits.

 O -current é um setor do repositório onde se mantém pacotes no topo dos passo a passo da integração das aplicações na evolução da distribuição para um próximo novo lançamento. É aqui que se concentra os esforços contínuos de testes e correções, acessíveis a qualquer usuário que queira acompanhar, ou até mesmo participar da evolução de um novo lançamento.

Por sua concepção UNIX-like, o Slackware Linux faz uma abordagem bastante diferente das outras distribuições populares como Red Hat, Fedora, Debian, Gentoo, SuSE, e Mandriva. Sua política de só incluir aplicativos estáveis, a fez tornar uma distribuição referência para aqueles que desejam conhecer a realidade de um sistema UNIX-like e aplicá-lo profissionalmente. Muito comum em servidores, procura ser uma distribuição "leve", praticamente bem estruturado, sem enfeites e rápida.

4.3    MICROSOFT WINDOWS

Microsoft Windows é uma família de 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, embora uma grande quantidade de cópias sejam ilegais.1 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, lançado em 26 de outubro de 2012. Para servidores o Windows Server 2012 é a versão mais recente e estável.

4.3.1    ORIGEM E HISTÓRIA

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

A Microsoft começou a desenvolver o Microsoft Windows em setembro de 1981. O 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 Painel, 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-DOS, PC-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

4.3.2    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. Se um processador tem uma arquitetura de 64 bits, ele é capaz de lidar com dados na ordem de 264. 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). 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.

Outra característica denominada de herança maldita devido ao 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.

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.3.3    WINDOWS 8

A última versão lançada do Windows, o Windows 8, é um sistema operacional mais estável (principalmente do que a versão Vista), 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 início e das tarefas básicas como abrir e usar programas.

5    LINGUAGENS DE PROGRAMAÇÃO

Uma linguagem de programação é um método padronizado para comunicar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. 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, compostos de acordo com essas regras, constituem o código fonte de um software. Esse código fonte é depois traduzido para código de máquina, que é executado pelo processador.

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). 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.

5.1    PHP ("HYPERTEXT PREPROCESSOR", OU PERSONAL HOME PAGE)

PHP é uma linguagem interpretada livre, usada originalmente apenas para o desenvolvimento de aplicações presentes e atuantes no lado do servidor, capazes de gerar conteúdo dinâmico na World Wide Web. Figura entre as primeiras linguagens passíveis de inserção em documentos HTML, dispensando em muitos casos o uso de arquivos externos para eventuais processamentos de dados. O código é interpretado no lado do servidor pelo módulo PHP, que também gera a página web a ser visualizada no lado do cliente. A linguagem evoluiu, passou a oferecer funcionalidades em linha de comando, e além disso, ganhou características adicionais, que possibilitaram usos adicionais do PHP, não relacionados a web sites. É possível instalar o PHP na maioria dos sistemas operacionais, gratuitamente. Concorrente direto da tecnologia ASP pertencente à Microsoft, o PHP é utilizado em aplicações como o MediaWiki, Facebook, Drupal, Joomla, WordPress, Magento e o Oscommerce.

Criado por Rasmus Lerdorf em 1995, o PHP tem a produção de sua implementação principal — referência formal da linguagem, mantida por uma organização chamada The PHP Group. O PHP é software livre, licenciado sob a PHP License, uma licença incompatível com a GNU General Public License (GPL) devido a restrições no uso do termo PHP.

5.1.1    PRINCIPAIS CARACTERÍSTICAS

A linguagem PHP é uma linguagem de programação de domínio específico, ou seja, seu escopo se estende a um campo de atuação que é o desenvolvimento web, embora tenha variantes como o PHP-GTK. Seu propósito principal é de implementar soluções web velozes, simples e eficientes. Suas Características:

?    Velocidade;

?    Estruturado e orientação a objetos;

?    Portabilidade - independência de plataforma;

?    Tipagem dinâmica;

?    Sintaxe similar a C/C++ e o Perl;

?    Open-source;

?    Server-side (O cliente manda o pedido e o servidor responde em página HTML);

5.2    JAVASCRIPT

JavaScript é uma linguagem de programação interpretada. Foi originalmente implementada como parte dos navegadores web para que scripts pudessem ser executados do lado do cliente e interagissem com o usuário sem a necessidade deste script passar pelo servidor, controlando o navegador, realizando comunicação assíncrona e alterando o conteúdo do documento exibido.

É atualmente a principal linguagem para programação client-side em navegadores web. Foi concebida para ser uma linguagem script com orientação a objetos baseada em protótipos, tipagem fraca e dinâmica e funções de primeira classe. Possui suporte à programação funcional e apresenta recursos como fechamentos e funções de alta ordem comumente indisponíveis em linguagens populares como Java e C++.

5.2.1    CARACTERÍSTICAS

As seguintes características são comuns a todas as implementações conformantes com o ECMAScript.

5.2.1.1    IMPERATIVA E ESTRUTURADA

JavaScript suporta os elementos de sintaxe de programação estruturada da linguagem C (por exemplo, if, while, switch). Uma exceção é a questão do escopo: o escopo em blocos ao estilo do C não é suportado, em seu lugar JavaScript utiliza escopo a nível de função. JavaScript 1.7, entretanto, suporta escopo a nível de bloco através do comando let. Como C, JavaScript faz distinção entre expressões e comandos. Uma diferença sintática do C é que a quebra de linha termina automaticamente o comando, sendo o ponto-e-vírgula opcional ao fim do comando.

5.2.1.2    DINÂMICA

5.2.1.2.1    TIPAGEM DINÂMICA

Como na maioria das linguages de script, tipos são associados com valores, não com variáveis. Por exemplo, a variável x poderia ser associada a um número e mais tarde associada a uma string. JavaScript suporta várias formas de testar o tipo de um objeto, incluindo ducktyping.

5.2.1.2.2    BASEADA EM OBJETOS

JavaScript é quase inteiramente baseada em objetos. Objetos JavaScript são arrays associativos, aumentados com protótipos. Os nomes da propriedade de um objeto são strings: obj.x = 10 e obj["x"] = 10 são equivalentes, o ponto neste exemplo é apenas açúcar sintático. Propriedades e seus valores podem ser adicionadas, mudadas, ou deletadas em tempo de execução. A maioria das propriedades de um objeto (e aqueles em sua cadeia de herança via protótipo) pode ser enumerada usando-se uma estrutura de repetição for...in. Javascript possui um pequeno número de objetos padrão da linguagem como window e document.

5.2.1.2.3    AVALIAÇÃO EM TEMPO DE EXECUÇÃO

JavaScript inclui a função eval que consegue executar em tempo de execução comandos da linguagem que estejam escritos em uma string.

5.2.1.3    FUNCIONAL

5.2.1.3.1    FUNÇÕES DE PRIMEIRA CLASSE

No JavaScript as funções são de primeira classe, isto é, são objetos que possuem propriedades e métodos, e podem ser passados como argumentos, serem atribuídos a variáveis ou retornados como qualquer outro objeto.

5.2.1.3.2    FUNÇÕES ANINHADAS

Funções 'internas' ou 'aninhadas' são funções definidas dentro de outras funções. São criadas cada vez que a função que as contém (externa) é invocada. Além disso, o escopo da função externa, incluindo constantes, variáveis locais e valores de argumento, se transforma parte do estado interno de cada objeto criado a partir da função interna, mesmo depois que a execução da função interna é concluída.

5.2.1.3.3    FECHAMENTOS

JavaScript permite que funções aninhadas sejam criadas com o escopo léxico no momento de sua definição e possui o operador () para invocá-las em outro momento. Essa combinação de código que pode ser executado fora do escopo no qual foi definido, com seu próprio escopo durante a execução, é denominada, dentro da ciência da computação, fechamento.

5.2.1.4    BASEADA EM PROTÓTIPOS

5.2.1.4.1    PROTÓTIPOS

JavaScript usa protótipos em vez de classes para o mecanismo herança. É possível simular muitas características de orientação a objetos baseada em classes com protótipos.

5.2.1.4.2    FUNÇÕES E MÉTODOS

Diferente de muitas linguagens orientadas a objetos, não há distinção entre a definição de uma função e a definição de um método no JavaScript. A distinção ocorre durante a chamada da função; a função pode ser chamada como um método. Quando uma função é chamada como método de um objeto, a keyword this da função é associada àquele objeto via tal invocação.

5.2.1.5    USO EM PÁGINAS WEB

O uso primário de JavaScript é escrever funções que são embarcadas ou incluídas em páginas HTML e que interagem com o Modelo de Objeto de Documentos (DOM) da página. Alguns exemplos deste uso são:

Abrir uma nova janela com controle programático sobre seu tamanho, posição e atributos;

Validar valores de um formulário para garantir que são aceitáveis antes de serem enviados ao servidor;

Mudar imagens à medida que o mouse se movimenta sob elas.

Pelo fato do código JavaScript rodar localmente no navegador do usuário, e não em um servidor remoto, o navegador pode responder a tais ações rapidamente, fazendo uma aplicação mais responsiva. Além disso, o código JavaScript pode detectar ações de usuário que o HTML sozinho não pode, tais como teclas pressionadas individualmente. Aplicações como Gmail tomam vantagem disso: muito da lógica da interface do usuário é escrita em JavaScript, e o JavaScript envia requisições de informação, tais como o conteúdo de um correio eletrônico, para o servidor. A tendência mais ampla de programação em Ajax explora de maneira similar este ponto forte.

5.3    C# (C SHARP)

É uma linguagem de programação orientada a objetos, fortemente tipada, desenvolvida pela Microsoft como parte da plataforma .NET. A sua sintaxe orientada a objetos foi baseada no C++ mas inclui muitas influências de outras linguagens de programação, como Object Pascal e Java.

5.3.1    CARACTERÍSTICAS

O C# é uma linguagem de programação visual dirigida por eventos e totalmente orientada a objetos. Permite um novo grau de intercâmbio entre linguagens (componentes de software de diferentes linguagens podem interagir). Os desenvolvedores podem empacotar até software antigo, para trabalhar com novos programas C#. Além disso, os aplicativos C# podem interagir pela Internet usando padrões do setor, como SOAP (protocolo de acesso a objetos simples) e XML (linguagem de marcação extensível).

O C# tem raízes em C, C++ e Java, adaptando os melhores recursos de cada linguagem e acrescentando novas capacidades próprias. Ele fornece os recursos que são mais importantes para os programadores, como programação orientada a objetos, strings, elementos gráficos, componentes de interface com o usuário gráfica (GUI), tratamento de exceções, múltiplas linhas de execução, multimídia (áudio, imagens, animação e vídeo), processamento de arquivos, estruturas de dados pré-empacotadas, processamento de banco de dados, redes cliente/servidor com base na Internet e na World Wide Web e computação distribuída.

5.3.2    PRINCIPAIS CARACTERÍSTICAS DO C#

Dentre as características essenciais do C# podemos citar:

?    Simplicidade: os projetistas de C# costumam dizer que essa linguagem é tão poderosa quanto o C++ e tão simples quanto o Visual Basic;

?    Completamente orientada a objetos: em C#, qualquer variável tem de fazer parte de uma classe;

?    Fortemente tipada: isso ajudará a evitar erros por manipulação imprópria de tipos e atribuições incorretas;

?    Gera código gerenciado: assim como o ambiente .NET é gerenciado, assim também é o C#;

?    Tudo é um objeto: System. Object é a classe base de todo o sistema de tipos de C#;

?    Controle de versões: cada assembly gerado, seja como EXE ou DLL, tem informação sobre a versão do código, permitindo a coexistência de dois assemblies homônimos, mas de versões diferentes no mesmo ambiente;

?    Suporte a código legado: o C# pode interagir com código legado de objetos COM e DLLs escritas em uma linguagem não-gerenciada;

?    Flexibilidade: se o desenvolvedor precisar usar ponteiros, o C# permite, mas ao custo de desenvolver código não-gerenciado, chamado “unsafe”;

?    Linguagem gerenciada: os programas desenvolvidos em C# executam num ambiente gerenciado, o que significa que todo o gerenciamento de memória é feito pelo runtime via o GC (Garbage Collector).

5.3.3    TIPOS DE DADOS

Os tipos de dados em C# são tipos de valor ou tipos de referência. Uma variável de tipo de valor contém dados desse tipo. Uma variável de tipo de referência contém o endereço da localização na memória em que os dados estão armazenados. Os tipos de valor normalmente representam dados simples, como valores int ou bool. Os tipos de referência, por outro lado, se referem a objetos, os quais podem conter muitos dados individuais. Os tipos de valor internos são os tipos integrais, os tipos de ponto flutuante e os tipos decimal e bool. Os tipos de referência internos são string e object. Os programadores também podem criar tipos de valor e tipos de referência. Os tipos de referência que os programadores podem criar são classes, interfaces e delegados. Existem dois tipos de conversões no C#: implícita e explícita. Segundo seu escopo e disponibilidade, as variáveis podem ser do tipo Static (o valor fica disponível para todos os objetos da classe em que a variável foi declarada), Instance (criada na memória cada vez que instanciamos um novo objeto) e Array (grupo de elementos do mesmo tipo de dado).

5.3.4    ELEMENTOS DE UM PROGRAMA

Um programa em C# contém 4 elementos principais:

?    Uma declaração de namespace: contém as bibliotecas de classe que você pode usar em um programa. A diretiva using System especifica que o programa pode utilizar a biblioteca no namespace System;

?    Uma classe: contém as declarações de dados e métodos para uma aplicação;

?    Um método Main: semelhante ao C++, todos os programas C# começam executando o método Main;

?    E uma declaração do programa.

6    CONCLUSÃO

    Fazendo um estudo aprofundado sobre determinado assunto podemos aprofundar nossos conhecimentos e entendimentos, o que leva a termos um aprendizado acadêmico muitos mais enriquecido e completo. Graças as pesquisas realizadas para a conclusão desse portfólio pude obter conhecimentos a mais e entender um pouco mais da história no que diz respeito aos sistemas operacionais e linguagens de programação.

REFERÊNCIAS

Adam Conrad. Ubuntu 10.04 (Lucid Lynx) Desktop reaches End of Life on May 9 2013, "ubuntu-announce." (em inglês). Pagina visitada em 01/11/2013.

Adam Conrad. Ubuntu 11.10 (Oneiric Ocelot) reaches End of Life on May 9 2013, "ubuntu-announce." (em inglês). Página visitada em 01/11/2013.

Microsoft, Windows History. Disponível em: (windows.microsoft.com/pt-BR/windows/history). Acesso em: 31 de Outubro de 2013.

PCWORLD (15 de Maio de 2007). PC World pirataria ainda é de 60%. Acesso em: 31 de Outubro de 2013.

SLACKWARE, Slackware Disponível em: (ftp://ftp.slackware.com/pub/slackware/slackware-10.2/ChangeLog.txt).

SLACKWARE. Slackware. Disponível em: (http://www.slackware.com/faq/do_faq.php?faq=general#0).

WIKIPEDIA, Microsoft Windows. Disponível em: (http://pt.wikipedia.org/wiki/Microsoft_Windows) Acesso em: 01 de novembro de 2013.

WIKIPEDIA, Sistema Operativo. Disponível em: (http://pt.wikipedia.org/wiki/Sistema_operativo#Gerenciamento_de_mem.C3.B3ria) Acesso em: 01 de novembro de 2013.

WIKIPEDIA, Slackware. Disponível em: (http://pt.wikipedia.org/wiki/Slackware) Acesso em: 01 de novembro de 2013

WIKIPEDIA, Ubuntu. Disponível em: (http://pt.wikipedia.org/wiki/Ubuntu) Acesso em: 01 de novembro de 2013.

ECMAScript Language Specification. Disponível em: (http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf)

MSDN. Visual C#. Disponível em: (http://msdn.microsoft.com/pt-br/vstudio/hh341490). Acessado em 01 de novembro de 2013.

WIKIPEDIA, Java Script. Disponível em: (http://pt.wikipedia.org/wiki/JavaScript) Acesso em: 01 de novembro de 2013.

WIKIPEDIA, PHP. Disponível em: (http://pt.wikipedia.org/wiki/PHP) Acesso em: 01 de novembro de 2013.

WIKIPEDIA, Linguagens de Programação. Disponível em: (http://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o) Acesso em: 01 de novembro de 2013.

WIKIPEDIA, C#. Disponível em: (http://pt.wikipedia.org/wiki/C%E2%99%AF) Acesso em: 01 de novembro de 2013.

Clique ao lado para ver o trabalho (Portfolio Individual - Curso Superior de ADS - II Semestre - DP)

Nenhum comentário:

Portfolio Individual - Curso Superior de ADS - VI Semestre

SISTEMA DE ENSINO PRESENCIAL CONECTADO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS WANDERLEY NUNES CRISTO PRO...