Transcrição do áudio
Culeguinha, o último capítulo inicialização e naturalmente como colocar um serviço para ser executado ali na inicialização do nosso Linux. Então vamos lá. Deixa eu colocar aqui meu audio aqui para ver como é que o audio. Ok, legal. Olha só. Vamos lá. Bom, Linux é um sistema operacional muito complexo. Não, já não é um sisteminha. Quando você inicializa um servidor, cara, é uma pancada de processos. Então, já não dá mais para você ter, por exemplo, o init clássico lá do Unix. Aqui cara, já não dá mais. Isso foi removido há um tempo atrás. Bom, esse processo de inicialização, esse Bolt Scrapping deve seguir alguns passos. Nós vamos falar sobre isso. E durante a inicialização do kernel é carregado então o kernel para memória, os programas e tudo mais. Bom, nós temos a possibilidade de trabalhar com o FI, de trabalhar com o MBR clássico. Cara, vamos aqui para um básico. Nosso objetivo nem é falar da inicialização da máquina em si, que isso fica para arquitetura e organização de computadores e a outra disciplina. Bom, então abriam. Você tem ali o programa básico de inicialização. Você tem um setapzinho, você pode fazer as alterações. E logo em seguida você vai ter um GRUB. O GRUB vai nos dar as opções. Pelo GRUB nós vamos inicializar o init.rd. O init.rd é o motor de arranque do Linux. Ele vem preparando todo o cenário e trazendo o kernel e montando o kernel. E aí tudo funciona. Lembrando que no Linux tudo teoricamente está na memória. O sistema de arquivos vocês viram que está na memória. Pense assim. É tudo virtualizado. Então a BIOS contém o software básico para validação de dispositivos, reside na ROM. Tem algumas informações ali carregadas que às vezes nós vemos que dão clear nas CMOS. Data, hora. É importante a hora, tá? Importante a hora para caramba. Ele sobe o sistema operacional e a hora é utilizada para fazer comunicação criptografada, por exemplo. Então se você não está com a hora atualizada ali na tua BIOS, com o seu no sua placa-mãe, você vai ter um monte de problemas de atualização. Sério mesmo. Então quando você liga vamos imaginar aqui a BIOS, o MBR clássico, tudo clássico, só para exemplificar que nem é o objetivo. Então ele valida dados da CMOS, chega a configuração de hardware, faz o teste físico, HD ainda esse material antigo, memória, processador, post, Power of, Power on, self-test, faz toda essa validação das linhas de comunicação, ativa os componentes, principalmente USB. Tudo ok. Então ele puxa o bootloader do sistema operacional. Então ele tem essa telinha, tá? Roda clássica, né? Por incrível que pareça a placa. A placa que eu estou usando agora é uma Macinist Dual X99, aquele processador Xio. E ele tem essa telinha. Se eu ligar muito rápido, porque o computador não fica onde eu estou, se eu ligar muito rápido ele vem correndo rápido, eu consigo ver essa telinha ainda. Antigamente a memória era contada. Tinha o contador de memória. Legal. Vamos imaginar um cenário mais básico de todos, um MBR, clássico, objetivo, tá? Além disso, tá? Quando começa o group. Foi criado há um tempo atrás, já falei lá no capítulo de formatação sobre ele, sobre as limitações dele, que ele é um hardware e ele só consegue ali apontar para quatro posições, né? Ele está no cilindro zero, no cabeçário zero, no setor um e possui naturalmente ali a caga da onde está o bootloader, que é aqui, que é o que nos importa. Nós já tivemos o Lilo no passado, o group. Então é o bootloader. Lilo, group. Essa aqui inclusive é a primeira versão do group. Aqui tem um arquivo que está em barba root group menu LST. Deu pau, deu pau, deu pau. O que eu faço? Pego uma distro live, coloco ali na USB, carrego a distro live e eu vou lá no meu SSD, acho esse arquivo e faço a devida correção. É aqui que você define o título, qual disco e qual particião vai ser carregado, qual o nome da imagem, do kernel. Aonde tem que ser montado, o init, rd, o arranque. É aqui, o modo legacy. Já o group 2 que utilizamos, ele tem a mesma coisa, só que ele é tipo uma estrutura parecida como o JSON. Então, ele está mais bem estruturadinho. Está localizado em bootgroup.group.cf. E aí você consegue fazer uma alteração com o lado de cd. Cara, é raro isso da merda. É raro. Eu não estou lembrado da última vez que deu merda comigo. Não lembro. Bom, então é o seguinte. Depois que passa ali, pega o MBR, starta o group. Então o group E você vai apontar aqui, se você escolher o Debian, aqui ele tem o registro init, rd e o AVM do Linux. Então ele primeiro carrega o init, rd. Qual é a função do init, rd? O init, rd, ele tem a função de preparar todo o cenário. Então ele prepara a memória, cria o tmpfs, é um file system temporário, monta tudo bonitinho, começa a descomprimir a memória. Desculpe, está a memória secundária, não errei o termo. Memória secundária. O seu disco, o seu SSD, começa a descomprimir e carregar o que precisa ali dentro para a inicialização de tudo. Quando o init, rd fala assim, porra legal, então ele passa para o estágio 2 que vem o kernel em si. Então o init, rd nós já vimos lá na aula de sistema de arquivos, onde eu entrei no diretório barra boot, mostrei, falei dos links simbólicos que existem. Isso, então barra boot, ele é descompactado, monta na memória o tmpfs, fala o system temporário, monta o kernel lá dentro. Então entra o estágio 2, aí o estágio 2 é o Debian normal. Ele é arrancado pelo init, rd, o primeiro processo vai ser chamado nos Linux, Debian mais antigo, 2014, 2013, se chama init, o nome do processo. Acho que no Debian 15, 16 já é o system D, não lembro de qual, vai falar aqui no slide. Pô cara, foi um passado meio turbulento ali, o Debian 14 acabou ficando 2 anos ali, não sei porque o 15 e o 16 estavam meio problemados, passou ao processo de inicialização. Eu já vou dizer o porquê, peraí, só tomar um gole de café. Legal, então vamos lá, se você quiser me ajudar com um cafezinho, por que não né cara? cursohacker.com.br, beleza? Você vai lá, você pode adquirir o curso aqui, tiver dúvida você clica em atendimento e bate papo comigo lá, tem Pix, tem Bitcoin, quer ficar anônimo, Bitcoin não é anônimo de amização né, Bitcoin é privacidade, Pix, mercado pago, tô aceitando tudo, tô aceitando até, pô cara, até café cara, manda café, manda. Bom, e aí naturalmente ele arranca, o seu tmpfs vai virar raiz e aí ele vai arrancar o sistema operacional, primeiro processo é o init muito antigo, distribuições muito antigas, systemd e distribuições 2016 para frente garantido, tá? E init é um link hoje simbólico para o systemd, vou explicar o porquê, o init ele carregava tudo em sequência, quando você tinha um Linux que tinha 60 processos, 40 processos, pô cara, tudo bem bicho, mas quando você tem um Linux, quando esse Linux ele tem tipo assim 300 processos, você carregar um atrás do outro e esperar o carregamento, carregar o próximo, esperar o carregamento, cara seria uma loucura, então o systemd ele vem com uma ideia de eventos no sistema e carregamentos em paralelo e isso fez com que tudo andasse mais rápido, há muitas críticas e isso aqui é um ponto de briga no mundo Linux até hoje cara, até hoje o mundo Linux ele briga por causa dessa porra aqui, tem distribuição que não aceita o systemd, eu tenho minhas críticas com relação ao systemd, eu tenho minhas críticas com relação ao init, o systemd por exemplo que ele é grande demais, ele é importante demais, pense, ser grande demais, superfície de ataque muito grande e ele é o coração do negócio, pô cara, você quer me dizer que o coração do Linux é gigante, é cara, deveria ser menor cara, e poderia ser menor, então isso pode levar ao Linux se você procurar, tem numeras vulnerabilidades em cima disso aqui, no passado, ter coisas terríveis por causa disso cara, então isso é a minha crítica ao systemd. O init, eles tentaram corrigir lá em 2011, fazer um init paralelo, mas ficou uma bosta, ficou uma grande bosta, não deu cara, não deu, o Debian GSE muda o init para o systemd lá em 2015, lembra que eu falei em 2014, a galera deixou as distros um pouco mais ali, no servidor, geralmente a gente atualiza, tá, saindo a 14 eu já tô de olho, já tô gritando com a galera, ó, Debian 13 já vai, já vão arrancar lá na empresa, vão arrancar essa porra, entende, tem que ser assim, sempre vindo. Já o systemd, ele, para que desse certo, o que o pessoal do systemd teve que fazer, eles tiveram que carregar todos os arquivos legados de carregamento do init, e até hoje tem uma pancada de arquivos de carregamento do init legado sendo carregados pelo systemd. Então, ele monta três diretórios importantes que você precisa saber e que com certeza se cair isso aqui na certificação vai perguntar, em um Debian, por exemplo, LibinSystemD System, você vai encontrar arquivos de configuração pré-definidos do sistema operacional, do coração do sistema operacional. Já o etc. SystemD System são arquivos de configurações que nós administradores manipulamos, beleza? Lembra que eu falei para vocês que tem antigos do init lá na máquina? Então, eles são carregados em tempo de execução, convertidos em arquivos do tipo SystemD e jogados dentro de Run, SystemD, System, são arquivos mais dinâmicos ali. São três diretórios que você tem que conhecer para uma prova de certificação, com certeza. Aqui nós temos o exemplo de uma tela do nosso clássico top, e no top se você procurar o process ID 1, você vai ver que é o SystemD, beleza? E se você olhar esse Linux, aqui é a configuração dos arquivos que nós administradores manipulamos. Nós não manipulamos a área de sistema por respeito e por questão de win edificação. Nós não fazemos win edificação. Pegar a ideia, né? Como que era isso aqui no passado? Isso aqui no passado era assim, tinha o init e tinha um número, 06. Por exemplo, nós chamamos de RunLevel. Então quando nós carregamos Linux, até hoje é mais ou menos assim, só que é por eventos, tá? Desculpa. Nós carregamos o RunLevel 1, RunLevel 2, RunLevel 3 e aí nós executamos um grupo de scripts e carrega o sistema. É sério. É idiota. É muito idiota. Linux é muito idiota. Essa é a ideia. Ele tem que ser idiota. Se ele for muito complexo, ele vai partir para um cenário muito grande, maior superfície de ataque e maior merda. Então nós temos o RunLevel. Por exemplo, o 0 é o desligamento da máquina. Então se eu chamar o RunLevel 0 eu desligo a máquina. Se eu chamo o RunLevel 1, então quer dizer que eu entro em um modo de poucos scripts, de poucas inicializações. Sem placa de rede, inicializada, placa de vídeo em modo mínimo. Entendeu? É assim que no Linux não existe o dia de administração, modo de suporte, modo de curva, não existe. O que nós temos é o RunLevel 1 que carrega menos scripts. Entendeu? É ridículo você falar, ah, eu vou entrar no modo de manutenção do Linux. Ridículo, ridículo, ridículo. Você vai entrar num RunLevel com menos scripts. Vai carregar menos coisa, mais chance de dar certo. E aí você entra no modo terminal e corrigir a merda toda. Não sobe nada gráfico, não sobe placa de vídeo, não sobe rede, não sobe porra nenhuma. Mal sobe USB, cara. Entendeu? Os scripts que tem no RunLevel 1. O 2, o 3, o 4, o 5 geralmente são múltiples luários. Por exemplo, o Debian é o 2, o Red Hat é o 3, Ubuntu gráfico é o 5. E aí é a lambança das distribuições. E o RunLevel 6 é um evento de reinicialização do sistema operacional. Mas então como funciona? Você vai no seu Linux, navega até ITC em rc1.d. Você vai encontrar os scripts aqui. Espera aí. Você está dizendo que aqui tem só esses scripts aqui de inicialização? Exatamente. Então o Debian 2 terminal, então você vai lá. ITC rc2.d. Você vai ter os scripts da inicialização simples assim. Beleza? Legal. K significa kill. S start. Convenção de nomes. Então eles são executados justamente pela ordem de nome, quando você liga justamente pelo nome e pela ordem que você desliga. Por exemplo, quero desligar. Então ele vai dar todos os kills. Então ele vai vir fechando tudo. Ah não, eu quero dar um start no rc1. Então ele vai puxar todos com S. E é pela sequência do nome. Isso é um pouco de problema. Ele é sequencial. Beleza? O rc0. O rc0 é assim. Legal. Vamos lá. Então o que aconteceu? O instancectl ele... E aí ele passou a ler esses scripts e converter para o padrão dele. Orientado a eventos. Se ele é orientado a eventos, eu tenho a possibilidade então de carregar processos em paralelo. Olha que legal. Sim. Por exemplo, eu posso ter uma inicialização que requer que a placa de rede esteja inicializada. Então ele não sobe. Todos os outros sobem. Que não precisa da placa de rede. Mas quando a placa de rede subir ele sobe. Entendeu? Então é assim. Você faz por eventos paralelos. Você pode dar um stop no cron, por exemplo. No network.service. Restart, start, status. Beleza? Está aqui. Status cron.service. Status networking.service. Parte 2.service. Então repara que você pode ver como ele funciona. Uma coisa interessante que na época do init não tínhamos essa visão de serviço, serviço. Tudo era processo. Não tinha uma distinção. No mundo Windows você tem uma distinção até no task manager dele, o task view. Você tem lá os processos e os serviços. Como abas diferentes. E aqui a gente passa a ter uma visão também um pouco. Embora o processo é processo. Foda-se, Land. Todo serviço é um processo. Foda-se, Land. Mas ele passa a dar uma visualização diferenciada. Quando eu quero trabalhar com processos, PS, top. Não é isso? Quando eu quero trabalhar o processo como um serviço, na visualização de serviço, uso o System CTL. Que merda. Mas é, cara. Tudo é processo, cara. O que é a nuvem? É um monte de Linux. Não foda-se, Land, qualquer lá. É uma pancada de Linux. Isso é a nuvem. O que é um serviço? É um processo, cara. Mas aqui nós estamos criando hoje a distinção. Run level 0. Padrão antigo, padrão novo. Powerall.target. Padrão antigo 1.S.Single. Você tem o rescue.target. Repara que a gente está criando a ideia de uma área de recuperação, de manutenção. Antigamente nós não foda-se, Land. É o run level 1. 2 e 4. Que é o multiuse.target. Vai tocar, galera, porque está fodida. Minha vida está fodida. Um monte de serviço ali batendo no meu celular. E agora eu estou dando suporte aqui pelo atendimento. Então o cara quando manda atendimento, toca no meu celular, cara. É foda. Run level 3. Multiuse.target. Run level 5. Graphical.target. Youssezreboot.target. Simples. Você pode invocar nesses caras. Os caras mandando mensagem para mim. Não, não era para os caras descobrir essa história. Eu quero vou mexer o saco na live. Escreve o que eu estou falando. Tá bom. No meu Linux gráfico agora, eu estou em qual modo? Systemctl get default. Eu estou no modo graphical.target. Quero mudar para o multiuse.target. Terminal. Gráfico. Multiuse.target. Terminal. Então, segue o lá. SudoSystemctl set default. Multitrassuse.target. Reinicia a máquina. Ele volta no modo terminal. Entra no modo terminal e coloca. SudoSystemctl set default. Graphical.target. Reinicia a máquina e ele volta a gráfico. Legal, né cara? Cara, então faça isso cara. Vou te ensinar a fazer agora um script para inicialização do seu Linux. Você vai em uscr local sbin. E lá você cria o meu script.sh. Está aqui. Escreve um .told para criar um arquivo. Um flag. O arquivo é um flag. E você vai mostrar que ele executou. Logo em seguida você dá um poder de execução para esse script. Pode testar o teu script. Mas lembre-se de ir lá em .tmp e apagar o arquivo. Legal? Legal. Ah, nem precisa. Você vai reiniciar a máquina. .tmp apaga, zerrou ela. Agora vamos fazer o arquivo de configuração da inicialização. Sudo nano.etc. Sistem.d. Sistem.meu.script.service. Um parâmetrozinho de nome. Como que funciona? Unit com U maiúsculo. Uma description. Dá para você colocar mais argumentos aqui. Papo para os capítulos 15 para frente desse livro. Quer ver a configuração mais foda que tem? Vai no capítulo de Tomcat. Você vai ver que diabo é esse arquivo. Dá uma olhadinha. Serve-se. Qual é o serviço que será executado? Meu script.sh. Não R nesse caminho. Quando ele vai ser executado? Quando meu Linux gráfico subir. Grafico.target. Se eu tivesse um servidor, seria no modo multitraceuse.target. Porque o servidor é terminal. É isso? Bom, fez isso. Fez isso? Então, você vai ver. Então, você vai vir aqui e vai executar. Status. Talvez você vai ter que executar esse comando aqui. Deixa eu abrir uma caixinha de texto. Esqueci de colocar isso aqui. Lá na hora da aula eu faço isso aqui para os caras verem. O comando. Fundo. Isso tem que ser TL. Daemon. Dimon no caso. Ele acabou de escrever Dimon. Está um sudo. Ele recarrega os arquivos de configuração. Sempre que você mexer naqueles arquivos de configuração, Execute o daemon reload aqui. Cara, se eu não falar, É igual quando eu escrevo o xeon. Eu falo o xeon. E aí é como eu escrever o xeon com o ne. Cara. É como eu escrevo o xeon com o ne. Cara. Eu não vou fazer isso aqui. Eu vou fazer isso aqui. Eu vou fazer isso aqui. Eu vou fazer isso aqui. Então vamos lá. Então. Depois de você dar o daemon reload lá. Então você. Está do serviço. Você vê que ele está desligado. Não está na inicialização. Está desligado. Então você dá um enable nele. E o enable vai ativar ele para a inicialização. E o enable vai ativar ele para a inicialização. Dá um reboot na máquina logo em seguida. Dá um reboot na máquina logo em seguida. Se você der um reboot na máquina, A máquina vai embora quando voltar. Se o reboot está correto. Se você deu permissão. Se você escreveu o seu arquivo. Se você tem que ter ele corretamente. Quando você entrar o arquivo vai estar lá. Um arquivo qualquer. Da hora. Se você puxar o status você vai ver que ele executou. Legal? Corretamente. Beleza? Cara. Fechamos o curso. Faça a prova. Tire seu diplominha. Estude as trilhas. As trilhas Linux. Como que você estuda para a certificação? Você vem aqui em Linux. Trilhas de conhecimento. Lógico. Você vem aqui. Você acabou de matar. Você chegou nesse ponto. Tem mais de 84. Tem mais de 84 vídeos. É que eu não subi todos os vídeos ainda. Aqui está dizendo que tem 84. Tem muito mais. Vou dar 86. Você clica aqui em Linux. Cisa de mim. Clica em Iniciar a trilha. Então você inicia a sua trilha. Sua primeira certificação. LPIC. Que vai cair isso aqui. E à medida que eu vou gravando vídeos. À medida que eu vou colocando vídeos. Que eu vou processando os vídeos por inteligência artificial. Meus vídeos estão sendo processados por inteligência artificial. Depois que eu subo ele faz a transcrição. Busca a descrição. E ele vem e posiciona aqui os vídeos. Então você pode vir assistindo. Se você já assistiu. Verdinho. Eu já assisti. Amarelinho eu não assisti. Repare que eu tenho muito verdinho. Porque eu assisti muita coisa já. Amarelinho. É porque eu ainda não assisti. E aí você mata a primeira certificação. A segunda certificação é a CompTIA Linux+. Depois a RHCSA. Que é da RedHatch. Então você vai ver que a gente está fazendo. RHCSA. Que é da RedHatch. Bem mais... Depois lá no capítulo 15. Do livro para... LPG 2. LPG 2 estaria bem lá para frente. Mas já tem muita coisa aqui. Lembrando que você também tem sempre ali. É... Levebook.com Você consegue chegar aqui. Baixar meus... Meus livros. Meus livros também. Tá aqui. E tem um APK para você ler os livros. Tipo... Tipo ebook. Você não paga nada. Clicou e você lê. Você clicou aqui e já baixou o livro. Nem me cadastrei. Você não precisa cadastrar. Não precisa do ebook. Se você quiser ver no seu celular, você lê. Se você quiser ver no seu celular. Se você não quiser abrir PDF, você também pode usar. Um material de aula. Até mais. Tchau!