Olá sejam muito bem-vindos a esta vídeo aula nela abordaremos a integração do conceito de sistemas operacionais através da abstração e das máquinas virtuais Mais especificamente o tipo de virtualização chamada de sistema virtual onde o sistema convidado será utilizado em nosso ambiente de desenvolvimento Linux nós provaremos através de situações práticas os conceitos aos quais Fomos submetidos até que e que ainda seremos até o cumprimento da última unidade desta importante disciplina estes conceitos são valiosos para a implementação de um sistema embarcado para a internet das coisas para isso trataremos em sistemas operacionais de três importantes fundamentos são
eles abstração máquinas virtuais e a introdução ao sistema Linux Eles serão os conceitos e práticas necessários aqui o ponto de partida é o sistema operacional que é a camada de software que opera entre o hardware e os diversos aplicativos o sistema operacional é uma estrutura de software Ampla que incorpora aspectos de baixo nível como drivers de dispositivos e gerencia de memória física e também os de alto nível como os programas utilitários e até mesmo a própria interface gráfica agora os objetivos básicos de um sistema operacional eles podem ser sintetizados em basicamente duas palavras-chave a abstração
de hardware e a gerência de recursos na abstração de hardware temos alguns tópicos como o de tornar os aplicativos Independentes do Hardware também o tópico de definir as interfaces de acesso homogêneas para os dispositivos com tecnologias distintas já na gerência de recursos o controle de recursos para evitar ataques de irrigação de serviço é um importante tópico assim como o de dividir o processador entre os diversos aplicativos ou até mesmo dividir a memória disponível entre os aplicativos não podemos esquecer que é possível também gerenciar os arquivos que estão abertos agora na abstração computacional isso simplifica sistemas
complexos e dados tornando-os mais gerenciáveis e compreensíveis isso é fundamental na ciência da computação e é essencial no desenvolvimento de software e design de hardware através dela é possível interagir com interfaces de alto nível que também possibilita ocultar detalhes de implementação e com Isso facilita a manipulação de sistemas complexos sem exigir os conhecimentos técnicos mais detalhados agora dentro da abstração existem múltiplos níveis de abstração Pois é são conceitos implícitos Aonde a abstração de hardware ela pode fornecer interfaces que ocultam complexidades do Hardware isso permite programar em níveis mais altos sem dar detalhes específicos do já
também temos a abstração de software que oferece interfaces e bibliotecas que simplificam a interação de componentes do software com ele isso permite usar funções sem conhecer algoritmos subjacentes também temos na abstração de dados a simplificação com a representação e manipulação de dados complexos através de interfaces que são mais fáceis de entender exemplo desse tipo de estrutura é estrutura de dados abstrata já para a abstração de hardware um exemplo comum é o uso de impressoras em computadores Quando um usuário deseja por exemplo imprimir um documento ele não precisa se preocupar com os detalhes técnicos desse funcionamento
interno da impressora assim como os movimentos do cabeçote de impressão ou até mesmo a transferência de tinta para papel dentre outros aspectos essa abstração torna esse processo muito mais simples de gerenciável as interfaces de alto nível elas permitem ao sistema operacional ou ao aplicativo enviar os dados do documento para impressora sem precisar saber exatamente como a impressora funciona internamente dessa forma o usuário interage com uma interface amigável selecionando opções como número de cópias por exemplo ou orientação da página a qualidade da impressão entre outras essas escolhas são traduzidas em comandos que a impressora entende mas
o usuário não precisa se preocupar com essa complexidade então a abstração de raiva ela tem um papel de tornar essa impressão mais fácil e acessível isso isola os detalhes técnicos e permite que os usuários interajam com a impressora de uma forma mais intuitiva e direta esse mesmo princípio para a abstração de software ela age como o uso de bibliotecas de funções isso simplifica o desenvolvimento e torna o código mais legível de boa manutenção mas eficiente e isso permite também que os programadores se concentrem as tarefas de alto nível ao invés de se preocupar com a
implementação detalhada dos algoritmos específicos mas não se esqueça que a abstração de dados como o uso de uma lista ela pode ser o caso de uma abstação que oculta a complexidade da alocação de memória e o gerenciamento de elementos isso faz para o programador uma adição ou uma ação de remoção ou de acesso de nomes muito mais fácil pois usa operações simples da lista e se torna um corte mais elegível e fácil de manter Então essa abstração de dados ela é fundamental para a eficiência é simplicidade na manipulação de informações quaisquer programas de computador a
arquitetura de computadores é a estrutura fundamental que define como um computador é organizado e opera ela impõe os componentes de hardware como processador a memória os dispositivos de entrada e saída Assim como as vias de comunicação e controle entre eles também na arquitetura de computadores o sistema operacional define como as instruções serão processadas sendo assim os dados são armazenados e transferidos e como o computador executa essas tarefas você verá da seguinte forma uma gerência de recursos na CPU no armazenamento nos processos que consomem recursos na memória consumida e no processamento consumido Mas como é possível
contextualizar como cada um desses recursos é efetuada por exemplo a gerência de recursos o processo de alocar ou controlar e monitorar de maneira eficiente esses recursos de um sistema operacional tal como a CPU a memória e disco o objetivo é garantir uma distribuição equitativa E adequada dos recursos entre os diferentes processos ou usuários isso evita conflitos e maximiza o desempenho do sistema a gerência de recursos é essencial para garantir esse funcionamento estável e eficiente do sistema isso evita gargalos e assegura que todas as tarefas sejam executadas com eficácia agora na CPU que significa CPU Central
processem Unity ou também conhecido como o processador ela é o cérebro do computador e é responsável por executar as instruções e operações lógicas processar os dados coordenar o funcionamento de todos os componentes do sistema Ou seja a CPU realiza milhões de cálculos por segundo ela interpreta e executa programas armazenados na memória e a sua velocidade e capacidade de processamento tem um impacto significativo o desempenho geral do computador essa epu como componente essencial que executa todas as tarefas e aplicações no computador isso torna os principais determinantes da eficiência e rapidez do sistema o armazenamento do computador
refere-se a capacidade de armazenar dados e programas de forma não volátil como é isso existem dois tipos principais de armazenamento o primeiro deles é o armazenamento primário Isso inclui a memória RAM que ela é volátil e também a memória de armazenamento secundário não se pega armazenamento primário incluindo a memória RAM que é volátil e a memória de armazenamento secundário não volátil tais como os discos rígidos e os ssds por exemplo a memória RAM ela é usada para armazenar temporariamente dados e programas em execução já a memória de armazenamento secundário ela é usada para guardar dados
permanentemente mesmo quando o computador é desligado o segundo tipo de armazenamento é o armazenamento secundário ele consiste em dispositivos como discos rígidos que são as HDs e também as unidades de estado sólidos ssds esses dispositivos oferecem capacidade de armazenamento maior em relação à memória RAM e isso permite que os dados e programas sejam mantidos por longos períodos mesmo em situações de desligamento do computador esse armazenamento é essencial para guardar arquivos sistemas operacionais e aplicativos isso garante a persistência dos dados mesmo após o computador ser desligado e permite que o usuário acesse e utilize esses dados
quando necessário memória a memória do computador é um componente essencial que armazena dados e instruções de forma temporária durante o processamento existem dois tipos principais de memória o primeiro deles é a memória RAM Random Access Memory é a memória de acesso rápido ela é volátil e temporária ela é destinada para armazenar dados e programas que estão sendo executados naquele momento no momento Ou seja quando o computador é desligado é apagada o segundo tipo é memória de armazenamento secundário assim como foi citado Isso inclui os dispositivos de discos rígidos que são as HDs e as unidades
de estado sólido essa memória é de acesso mais lento mas ela não é volátil ela mantém os dados mesmo quando o computador é reiniciado ou desligado a memória ela é crucial para o desenvolvimento do computador esse desempenho está intimamente ligado e afeta a velocidade e a capacidade de multitarefa a quantidade e a velocidade da memória também influenciam diretamente o funcionamento assim como nas aplicações ou no sistema operacional processos que consomem recursos os processos que consomem recursos em um sistema computacional são Programas ou tarefas em execução que requerem recursos do Hardware tal como a CPU a
memória RAM e o disco isso não está sendo mais novidade até esse ponto então você pode pressupor que esses processos eles podem ser aplicativos em uso pelo usuário esse serviços em segundo plano ou tarefas do sistema operacional também podem ser considerados quando um processo é executado ou seja ele utiliza os recursos alocados para ele podendo causar sobre a carga e também uma competição por recursos com outros processos sendo assim o gerenciamento para ser mais eficiente desses recursos é crucial para evitar os gargalos e garantir um desempenho equilibrado do sistema isso permite que todas as tarefas
sejam executadas de maneira adequada e responsável caso um processo consuma mais recursos do que necessário pode levar a problemas de desempenho e tornar esse Sistema lento ou até mesmo travar Portanto o monitoramento e a otimização dos recursos são fundamentais para manter o funcionamento eficiente do computador a virtualização consiste basicamente em uma camada de software que ofereça aos demais componentes uma outra interface essa camada de software permitirá o acoplamento entre interfaces distintas de forma que um programa desenvolvido para a plataforma a possa executar sobre uma plataforma distinta B usando os serviços oferecidos por uma determinada interface
de sistema a camada de virtualização constrói outra interface de mesmo nível de acordo com a necessidade dos componentes do sistema que farão o uso dela a nova interface do sistema Vista através dessa camada de virtualização é denominada de máquina virtual portanto uma máquina virtual é um software que atua como uma camada intermediária possibilitando a transformação de um sistema em outro através da utilização do serviços ficam disponíveis pelo sistema operacional ou hardware é constituída uma Interface para outro sistema então consiste em executar vários sistemas operacionais dentro do mesmo equipamento físico sendo assim temos alguns pontos interessantes
a respeito da virtualização a camada adicional de software ela pode ser chamada de hipervice ou virtual Machine Outro ponto interessante é que os recursos de nível inferior podem ser mapeados para vários sistemas operacionais ao mesmo tempo cada VM é uma Instância de máquina física isso proporciona aos usuários uma ilusão de acessar o hardware diretamente as vms funcionam como um sistema independente do nativo um ambiente de máquinas virtuais consiste em três partes básicas sistema real hospedeiro camada de virtualização e por Várzea sistema virtual convidado utilizamos em nosso ambiente de desenvolvimento Linux essas características aonde o sistema
real é o Windows a camada de virtualização é o hipervisor convidado o órgão VirtualBox e a nossa sistema virtual Linux sendo assim nesse ambiente nós utilizamos o computador com o sistema operacional Windows instalado e o sistema operacional Linux como um convidado um sistema convidado usando o órgão Virtual Box Nós criamos uma máquina virtual para o Linux que será utilizado como um sistema convidado ficou um pouco confuso mas na prática ficará mais fácil de entender o sistema convidado neste caso é o Linux pois ele está sendo convidado a ser executado dentro de um ambiente virtualizado que
é o sistema hospedeiro Windows a máquina virtual do Linux funciona de forma isolada dentro do Windows então a sua própria CPU virtual estará alocada assim como a memória virtual o disco rígido e também as interfaces de rede virtuais ao iniciar essa máquina virtual do Linux ela funcionará como se fosse um computador independente ela executará todas as operações e as tarefas como um sistema operacional autônomo e esse sistema convidado Linux não terá acesso direto ao hardware físico do computador pois tudo é gerenciado pelo sistema hospedeiro que é Windows e também a camada de virtualização do VirtualBox
essa abordagem de sistema convidado ela permite que você tenha múltiplos sistemas operacionais em execução no mesmo computador cada um deles é isolado e protegido dos outros cada sistema convidado pode ter a sua própria configuração de software ou também aplicativos ou até mesmo de dados isso oferece um ambiente de testes assim como um ambiente de desenvolvimento ou de algum outro uso específico tudo isso ocorre sem afetar o sistema operacional hospedeiro por exemplo Abra o seu terminal Linux através do mostrar aplicativos nele digite terminal e Execute Maximize a tela acionando através do seu teclado a tecla f11
Ok feito isso a gente comando LS agora o comando DF e o comando Clear Ok LS listou o conteúdo do diretório atual DF listou informações sobre espaço total e espaço disponível no sistema de arquivos limpou a tela Ou seja você realizou um comando por vez por exemplo Execute o comando pwd para saber se o seu diretório corrente é o Barra home barra PUC PR que é o home do usuário porque PR nele Vamos criar um arquivo ponto sh chamado exemplo underline scripts.sh que executará as multiplicações da tabuada do 2 e em primeira na tela o
resultado de cada uma delas para criar o arquivo de script com TSH usarei um editor de texto chamado vim nele vamos usar comandos de edição para permitir editar o arquivo também copiar as linhas e colar essas linhas além de salvar o arquivo e sair do programa após ter criado o ponto sh é necessário modificar a permissão do arquivo com o comando cega mod 755 isso fará com que ele tenha a permissão de execução Então vamos lá vim espaço o nome do arquivo que eu desejo exemplo underline scripts para começar e editar esse arquivo de letra
i e digite Eco é para imprimir na tela e a operação matemática Não se preocupe em compreender Qual é a sintaxe dessa operação matemática apenas por enquanto entenda que é a multiplicação Então temos o dois multiplicado pelo Isso deve ser repetido de um ao 10 vamos copiar essa linha e colar a seguir essa era equivalente ao 2 x 2 3 4 5 6 7 8 9 e 10 até o 2 x 10 substitua o correspondente da linha terminado salve o arquivo dois pontos wq exclamação entre isso faz com que o arquivo seja salvo e podemos
consultá-lo LS espaço menos la isso fará com que vejamos o arquivo foi salvo ok agora vamos dar a permissão necessária de execução se é da mod 755 o nome do arquivo que eu desejo exemplo Ok esse arquivo já está com a permissão de execução Então vamos executar para executá-lo basta ponto barra e o nome do arquivo exemplo o show Dash ainda possui outra característica interessante que é ação de completar os nomes que estão sendo digitados isso é feito pressionando essa tecla Tab por exemplo se você digitar LS espaço/ho cabe ele completará o diretório home barra
o que sabe o PR docume barra documents e exemplo sabe exemplo underline script.sh então o best localizará todos os arquivos que iniciam com exemplo E completará o restante do nome essa ação de completar os nomes funciona sem problemas para comandos internos console login logout o console ou terminal é o teclado e tela conectados em seu computador o Linux faz uso de sua característica multiusuário usando os terminais virtuais ou seja terminal virtual é uma segunda sessão de trabalho completamente Independente de outras que pode ser acessada no computador local ou arrematamente via SSH outros serviços então no
modo texto você pode acessar outros terminais virtuais segurando a tecla Alt e pressionando F1 F2 F3 até f6 cada tecla de função corresponde a um número da sessão ou seja seção 1 seção 2 até sessão 6 o sétimo ou seja o F7 seria a sétima seção porém ela é usada para outra função ela é usada por padrão pelo ambiente gráfico x o Linux então possui muitas sessões mais de 63 mas apenas seis estão disponíveis inicialmente por motivos de economia de Ram de memória RAM cada terminal virtual ocupa aproximadamente 350 kbytes de memória então é necessário
desativar a quantidade que não estiver sendo usada para liberar a memória RAM para o uso de outros programas se estiver usando o modo gráfico você pode segurar control alt e a tecla F1 a f6 Vamos fazer um teste então por padrão estamos na sessão número 2 Então vamos acessar a sessão número 3 fazendo control alt F3 Então temos aqui TP y3 que a nossa sessão 3 também podemos acessar o outro usuário neste caso o Rute nossa senha o que PR PUC PR o login é a forma de entrada no sistema Mas como você pode realizar
a saída a saída pode ser feita através do comando logout ou Ctrl neste exemplo eu vou dar o comando legal dessa forma temos a representação do login e do logout para que possamos retornar a nossa sessão do ambiente gráfico basta utilizar as mesmas teclas de atalho porém com o número da sessão correspondente utilizaremos control alt F10 arquivo é onde gravamos os nossos dados um arquivo pode conter um texto feito por nós uma música um programa uma planilha etc cada arquivo deve ser identificado por um nome assim ele pode ser encontrado facilmente quando for necessário o
Linux é que existem ou seja ele diferencia letras maiúsculas e minúsculas nos arquivos vejamos um exemplo temos o arquivo exemplo ponto aula minúsculo e o arquivo exemplo pontual a maiúsculo Vamos dar um comando exemplo Pontual temos este conteúdo Quest e agora vamos ver o conteúdo do exemplo pontual maiúsculo a SD FG hj Então são conteúdos diferentes ou seja os arquivos são totalmente diferentes para os diretórios o princípio do Case Steve também se aplica então James temos aqui dois diretórios um chamado desktop minúsculo e o outro maiúsculo no caso do diretório não podem existir dois arquivos
com o mesmo nome e em diretório ou um sub-diretório com o mesmo nome de um arquivo em um mesmo diretório também um diretório nos sistemas são especificados por uma barra essa barra para direita e não uma barra para esquerda a barra para direita ela é característica do sistemas baseados em Onix E a barra para esquerda já para os baseados em doses é possível ter mais detalhes sobre como criar diretórios a partir do comando mkd caso você tenha dúvidas você pode dar comando ele vai te mostrar Quais são as sintaxes necessárias para o comando comando humano
ele serve além do mcadir para qualquer outro Comando por exemplo para limpar a tela e é você saber qual é a sintaxe necessária ou outras características do comando caso você tenha dúvida para qualquer comando você pode utilizar o comando espaço o comando que você deseja saber diretórios diretório raiz é o diretório principal do sistema dentro dele estão todos os diretórios do sistema então diretório raiz é representado por uma barra assim se você digitar o comando cd/ você estará acessando esse diretório vejamos em qual diretório estamos agora barra home barra pucp para que eu possa acessar
barra CD Espaço Barra Ok estamos né LS veremos o conteúdo dele Então dentro do Barra estão localizados todos os diretórios como o barra bem vamos identificar também USB o Sr o ar e assim por diante eles são chamados de subdiretores pois estão dentro do diretório Barra a estrutura de diretórios de subs diretores pode ser identificada da seguinte maneira /sr barra usr local barra mnt/tmp/a e barra home a estrutura do diretórios também é chamada de árvore de diretórios porque é parecida como uma árvore de cabeça para baixo para que você consiga se familiar com isso gente
comando ele de forma extensa mostrará quais são os diretórios componentes daquela árvore neste caso não para de passar Quais são os diretórios porque estamos o que está no Barra então é muita coisa Agora se você parar e acessar diretório barra home será uma estrutura menor dentro dela temos a descrição do diretório daquela árvore do diretório [Música]