O que é OS Kernel

Resposta publicada no Quora em 16/07/2019

O OS Kernel ou Núcleo do Sistema Operacional é um programa de computador que é o coração do sistema operacional de um computador. Ele tem controle completo sobre tudo que acontece no sistema.

Abaixo tem a estrutura básica de um sistema operacional Unix, situando o modo núcleo.

Fonte: TANENBAUM

E aqui tem a estrutura básica de um sistema operacional Windows 7 situando o modo núcleo do sistema operacional:

Fonte: TANENBAUM

Na maioria dos sistemas ele é um dos primeiros programas a serem carregados na inicialização, logo após do carregador inicial (bootloader). Ele gerencia as demais inicializações assim como as requisições de entrada e saída do software, traduzindo-as em instruções de processamento de dados para o processador do computador. Ele também manuseia a memória e periféricos como teclado, monitor, impressoras e interface de áudio.

O Kernel faz a interface entre o software da aplicação e o hardware do computador.

A parte crítica do código do Kernel é normalmente carregada em uma área separada da memória a qual é protegida de ser acessada pelos programas ou outras partes menos críticas do sistema operacional.

O Kernel executa suas tarefas como rodar processos, gerenciar dispositivos de hardware com o HD, fazer o gerenciamento de interrupções dentro da área protegida do Kernel.

Por outro lado, tudo o que o usuário faz é executado na área do usuário (user space) como escrever um texto no editor de texto, rodar programas em uma interface gráfica (GUI) e etc.

Essa separação previne que os dados dos programas do usuário e os dados do Kernel acabem interferindo um no outro o que pode causar instabilidade no sistema, lentidão no processamento, erros nos programas e até causar erros catastróficos no sistema operacional.

Fonte: Kernel (operating system) – Wikipedia

Fonte das figuras: TANENBAUM, Andrew S.. Organização Estruturada de Computadores. 6. ed. São Paulo: Pearson, 2013. 605 p. ISBN13: 978-85-8143-539-8.

By Renato de Pierri – 16/07/2019

Por que pessoas com mais idade tendem a ter tanta dificuldade em compreender a navegação autoexplicativa dos menus de aparelhos eletrônicos?

Post publicado como resposta no Quora em 13/07/2019

Porque eles são incrivelmente difíceis de se utilizar e não são nada intuitivos.

Vamos pegar alguns exemplos, que você provavelmente conhece:

Clique para ampliar. O que faz cada um dos ícones desse editor de texto?

Menu Word – Clique para ampliar.

Mais um, explique todos os botões desse menu desse editor de planilha:

Menu Excel – Clique para ampliar.

E agora me responda como é que faz para telefonar usando esse aparelho (onde está o ícone do telefone, pelo menos)?

E esse aqui? Bem mais fácil né?

Fonte da foto: File:Dialog.jpg – Wikimedia Commons

Tenho 54 anos. Poucos dos meus amigos conseguem usar um computador. Se for para falar de Arduino, nem te conto.

Minha mãe subia a serra de Santos de trem à vapor.

Finalizando, reproduzo o post que coloquei no meu Blog sobre tecnologia alertando os desenvolvedores a respeito da questão do idoso:


Há um tempo atrás o IBGE publicou o artigo “Perfil dos Idosos Responsáveis pelos Domicílios” cujo parágrafo que transcrevo abaixo, me chamou a atenção:

“Nos próximos 20 anos, a população idosa do Brasil poderá ultrapassar os 30 milhões de pessoas e deverá representar quase 13% da população ao final deste período. Em 2000, segundo o Censo, a população de 60 anos ou mais de idade era de 14.536.029 de pessoas, contra 10.722.705 em 1991. (…) Em 1980, existiam cerca de 16 idosos para cada 100 crianças; em 2000, essa relação praticamente dobrou, passando para quase 30 idosos por 100 crianças. (…) a longevidade vem contribuindo progressivamente para o aumento de idosos na população.(…) O grupo das pessoas de 75 anos ou mais de idade que teve o maior crescimento relativo (49,3%) nos últimos dez anos, em relação ao total da população idosa.”

Tá, estamos envelhecendo, e daí?

Não sei vocês, mas pelo menos para mim, ajudar idosos a operarem seus sistemas e aparelhos eletrônicos tem sido parte de meu cotidiano. É de tudo: WhatsApp, pagar e tirar segunda via de contas e particularmente, estou especialista em ajudar as pessoas a criarem seus próprios manuais de instruções acerca de como operarem seus televisores.

Anos de experiência fazendo manuais de instruções, questionando requisitos e testando aplicações para fazê-las fáceis para meus clientes.

Nunca pensei que hoje em dia essa minha experiência profissional pudesse ser utilizada, prosaicamente, para confortar o dia a dia dos mais experientes que me cercam, daqueles do tempo em que televisor tinha apenas o seletor de canais e o botão de liga / desliga junto com o de volume, sendo que o resto ficava escondido para evitar confusão.

Publicado originalmente em 09/Fev/2016 no site nets-nuts.

O que é um sistema operacional de tempo real?

Resposta originalmente traduzida no Quora em 06/07/2019.

Sistema Operacional de Tempo Real (Real Time Operating System) é um sistema operacional especializado que é responsável por gerenciar os processos em um sistema de tempo real ( real time system.)

  • Ele é responsável pelo gerenciamento de processos e alocação de recursos.
  • O sistema operacional em tempo real pode ser baseado em um kernel padrão que é usado inalterado ou modificado para uma aplicação específica.
  • Normalmente, não inclui recursos como gerenciamento de arquivos.

Componentes do Sistema Operacional de Tempo Real:

  1. Relógio de tempo real: (Real-time clock) Ele fornece informação para agendamento de tarefas
  2. Gerenciador de interrupções: (Interrupt handler) Gerencia solicitações de serviços assíncronas .
  3. Agendador: (Scheculer) Seleciona o próximo processo a ser executado.
  4. Gerenciador de recursos: (Resource Manager) Aloca os recursos de processador e memória.
  5. Despachante: (Dispatcher) Inicia a execução dos processos.

Os componentes de um sistema operacional de tempo real pode ser conforme abaixo:


-Adição do tradutor Renato de Pierri-

Diferenças entre o sistema operacional de tempo real e o de tempo não real – original: (Differences between Real time and Non-real time Operating system)

Clique na figura para ampliar.

Ashwin Dhakal é autor do livro “Software Engineering” ISBN:978-9937-0-3279-7

O que você faz para deixar seu computador mais rápido?

Post originalmente publicado no Quora em 05/07/2019

Tem várias coisas que podem ser feitas para otimizar o Windows.

Muito do que vou falar aqui, se você não souber o que está fazendo vai dar dor de cabeça, mas é o caminho para deixar a máquina zerada se você souber COMO APLICAR as sugestões. Para deixar claro, siga POR SUA CONTA E RISCO. Se for menor de idade, esteja acompanhado de um adulto … responsável é claro.

Criar um ponto de restauração antes de começar a mexer nisso tudo.

  • Trocar o HD por SSD, de longe a melhor opção.
  • Dobrar a quantidade de memória, se der colocar o máximo de memória que seu computador suportar.
  • Assegurar que seu Windows 10 seja de 64 bits.
  • Desinstalar todos os otimizadores freeware e antivírus e deixar apenas o Windows Defender.
  • Instalar o gerenciador de pacotes Chocolatey e instalar os softwares a partir dele ou usar os sites oficiais de cada desenvolvedor. Nada site de downloads brasileiros. Ah, tem também o Sourceforge que tem código aberto.
  • Usar o MSOffice para estudantes pela escola ou assinar o pacote o MSOffice.
  • Zero pirataria, usar Gimp, Inkscape por exemplo. Se precisa editar vídeo compre um editor tipo CorelVideoStudio.
  • WinRar é pago, utilizar 7zip no lugar.
  • Ir no “Painel de Controle” -> “Programas e Recursos” e desinstale tudo o que você não usa, inclusive o leitor de pdf Acrobat Reader que é um saco e fica atualizando uma vez por semana.
  • Instale o leitor de ebook “Sumatra PDF” no lugar do Acrobat Reader. Ele é leve, open source, não fica atualizando, abre ebooks e roda bem.
  • Exibir no menu da barra de tarefas os ícones ocultos, ver todos programas ativos e desativar tudo o que for possível. Por exemplo Skype, Atualização do Java, Atualização do Adobe e por aí afora.
  • Abrir o agendador de tarefas, ir na pasta “Biblioteca do Agendador de Tarefas”, analisar quais tarefas que estão agendadas e remover as que forem desnecessárias. Por exemplo, caso você não use o Chrome, por que vai deixar ativo o Google update? Remove ele.
  • Abrir o gerenciador de serviços, listar os serviços em execução e tentar identificar serviços estranhos ao Windows. Normalmente esses serviços não possuem descrição alguma. Descobrir o que eles fazem e verificar se é o caso de desativá-los. Antes que alguém surte, já vou avisando que o serviço Warsaw é do Internet Banking do Banco do Brasil, há outros sem descrição, mas cabe análise antes de resolver se deve desativar o serviço ou não.
  • Abrir o gerenciador de tarefas, ir na aba Inicializar e verificar os aplicativos que são ligados quando o Windows é inicializado. Entender o que eles fazem e desabilitar os que forem desnecessários ou que puderem ser inicializados manualmente.

Se não falei ainda: Desinstale TODOS otimizadores de desempenho que existirem instalados na máquina.

Devo ter esquecido alguma coisa, mas é por aí.

Resolvendo problemas

Originalmente publiquei como resposta no Quora nesse link -> aqu <-.

Um professor meu de C dizia em aula “Todo problema se torna simples depois de se entender o escopo do mesmo”.

Na época não entendi isso muito bem, tirei o mínimo para passar e segui a vida.

Hoje em dia eu diria que a aula mais importante que tive foi ele ter dito aquela frase por seis meses seguidos. Não é que o filho da mãe está certo!?

A sequência da solução é mais ou menos o infográfico abaixo:

Quando eu não consigo resolver o problema, eu pego o requisito, se não existe eu crio um e fico conversando com ele.

Faço diagramas de sequência, de estado, mapas mentais e ao mesmo tempo vou organizando as ideias até conseguir explicar textualmente e de forma concisa como o programa deve operar e utilizando qual conceito e quebro o problema em problemas menores.

Feita a segmentação do desafio eu consigo ter um panorama do que aplicar de estrutura de dados, árvores binárias, listas ligadas, recursão, equações matemáticas e etc e tenho uma ideia de como interligar os módulos.

Entendido o método, vem a codificação comendo solto nos Stack Overflow da vida e vai ajustando a teoria com o que a codificação permite de fato fazer.

Então é isso: Entende primeiro o escopo do problema (entende o que precisa ser feito), quebra em problemas menores e depois sai codificando e vai ajustando até entregar o pedido.

Excel sofre para plotar gráfico

x^3*y – y^3*x

Valeu o esforço!

Em tempo: Mas Renato, dá para usar macro para popular os campos da planilha junto com a desativação da GUI quando fazendo os cálculos … Isso faria o cálculo muito mais rápido =\.  -> Meu caro, a ideia é mostrar que dá para resolver o caso utilizando apenas conhecimento de Excel básico. Quem manja VBA sabe que tem ferramentas muito melhores ;D

By Renato de Pierri

13/Dezembro/2017

Removendo o atributo Hidden com o Diskpart

Se você chegou aqui, presumo que não preciso te pegar pela mãozinha.

Abaixo segue o que você precisa. Espero que ajude.

DISKPART — Roda o utilitário Diskpart
LIST DISK —- Lista os discos disponíveis no sistema
SELECT DISK n —-n é o número do disco com o volume hidden
DETAIL DISK —– Verificando se escolheu o disco correto
LIST VOLUME ——lista os volumes no sistema
SELECT VOLUME n —-n é o número do volume escondido
DETAIL VOLUME —- Verificando se foi escolhido o volume correto
ATTRIBUTES VOLUME CLEAR HIDDEN — Limpando o atributo hidden do volume
ASSIGN LETTER G —- se quiser adicionar uma letra ao volume
EXIT — exit from DiskPart
EXIT — exit from command shell

Bom uso.

Como não passar vergonha com o UOL e outros sites

Você está no escritório, dando um duro danado, entrega aquele relatório trevoso e resolve dar uma relaxada… resolve dar aquela Internetada só para ver o noticiário local, rapidinho para tomar fôlego antes de começar a derrubar o próximo dragão do serviço.

Durante a leitura do noticiário, o site gentilmente te manda um anúncio qualquer, com vídeo e áudio que abre no meio do escritório… e você involuntariamente acaba desconcentrando seus colegas a seu redor.

Lógico que seus colegas de serviço irão te zoar e a zoeira será mais forte e impiedosa, principalmente quando o anúncio é de produtos e serviços eróticos com direito a todas aquelas bocas e gemidos.

Isso, na verdade, é mais comum que você pode imaginar. Acontece no meio da reunião, na sala de aula, no trem, no ônibus, no meio da noite ao lado da digníssima(o) e em todos lugares possíveis.

É bem complicado já que nem sempre o fone de ouvido está em uso e que não dá tempo de desligar aquele som revelador – comprometedor.

Se você se usa o Firefox e se identificou com esse cenário, saiba que dá para desabilitar o autoplay desses vídeos seguindo os passos abaixo, sem instalar nenhum plugin adicional:

1- Digite “about:config” sem aspas na barra de endereços do Firefox e telce <ENTRA>

2- Se tiver alguma mensagem de alerta, clique no botão  “Eu aceito o risco”

3- Encontre a chave “media.autoplay.enabled”.

4- Dê um duplo clique na chave “media.autoplay.enabled”, assegurando que ela fique com o valor “false”, conforme figura abaixo:

Desabilitando o autoplay no Firefox
Desabilitando o autoplay no Firefox

5- Após alterar a configuração, feche a janela “about:config”

Feito isso, sites como o UOL e outros, não irão mais conseguir te mandar propagandas intrusivas desse tipo.

By Renato de Pierri

Posted: 16/Novembro/2016

 

 

Comando dos desesperados

Quando você não se lembra do nome do arquivo e bate o desespero “onde é que eu coloquei aquele arquivo?”

sudo cp $(find / | grep '.pdf$') /home/renato/test/cade_o_raio_do_arquivo/

Esse comando copia todos os arquivos terminados com a extensão .pdf para o caminho “/home/renato/test/cade_o_raio_do_arquivo/ “.

Pelo menos todos os pdfs estarão no mesmo lugar e não precisa ir navegando de pasta em pasta procurando pelo arquivo perdido.

Se você quiser, pode editar o comando e trocar a extensão ou as chaves do grep de acordo com sua necessidade.

Deve ter outros parecidos ou até melhores. Comenta aí 🙂

Fontes:
GNU/Linux Command-Line Tools Summary Chapter 20. Mini-Guides
CompTIA Linux+™ Powered by Linux Professional Institute Study Guide