<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR"><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://www.tekore.com.br/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.tekore.com.br/" rel="alternate" type="text/html" hreflang="pt-BR" /><updated>2026-05-02T15:15:57+00:00</updated><id>https://www.tekore.com.br/feed.xml</id><title type="html">Tekore</title><subtitle>By Anderson Gusmão</subtitle><entry xml:lang="pt-br"><title type="html">Por que você deveria focar em seus pontos fortes.</title><link href="https://www.tekore.com.br/psychology/2026/05/02/strengths.html" rel="alternate" type="text/html" title="Por que você deveria focar em seus pontos fortes." /><published>2026-05-02T13:59:56+00:00</published><updated>2026-05-02T13:59:56+00:00</updated><id>https://www.tekore.com.br/psychology/2026/05/02/strengths</id><content type="html" xml:base="https://www.tekore.com.br/psychology/2026/05/02/strengths.html"><![CDATA[<p>Este artigo propõe um deslocamento de perspectiva. Em vez de enxergar o desenvolvimento como um processo de mitigação de fraquezas, defende-se que o verdadeiro avanço — aquele que gera impacto exponencial — nasce do <strong>aprofundamento deliberado de nossas forças</strong>. Talentos naturais, <strong>quando reconhecidos</strong> e cultivados com consistência, têm o potencial de nos levar muito mais longe do que o esforço contínuo para <strong>apenas não sermos ruins em algo</strong>.</p>

<h1 id="mudança-de-paradigma">Mudança de paradigma</h1>

<p>Durante uma sessão de aconselhamento de carreira, foi-me sugerida a leitura do livro <strong>“Descubra seus pontos fortes 2.0”</strong>, de Donald O. Clifton. O autor foi um dos pioneiros na pesquisa sobre desempenho e no desenvolvimento de ferramentas corporativas voltadas para a descoberta de talentos naturais.</p>

<p>A obra traz uma proposta contundente sobre o crescimento pessoal e profissional. Em vez de despender energia tentando corrigir fraquezas, a metodologia propõe que o foco seja direcionado para o aprofundamento daquilo que já fazemos bem. O processo inicia-se com uma avaliação que identifica, dentre 34 talentos possíveis, os cinco mais proeminentes no indivíduo. A partir desse resultado, o livro oferece um guia detalhado sobre as características de cada talento e estratégias práticas para transformá-los em pontos fortes estruturados.</p>

<p>A base argumentativa de Clifton apoia-se em exemplos reais de profissionais que alcançaram a maestria em suas áreas de atuação, mas que, ao tentarem replicar o mesmo nível de sucesso em disciplinas fora de suas aptidões naturais, não obtiveram êxito. Analisando a minha própria trajetória, consegui identificar esse padrão em diversas situações.</p>

<h1 id="um-contraponto-necessário">Um contraponto necessário</h1>

<p>Embora a perspectiva proposta pelo livro seja muito bem fundamentada, é prudente reconhecer que não se trata de uma regra inflexível. Existem cenários onde mitigar uma fraqueza crítica é essencial — por exemplo, quando uma limitação impede o indivíduo de realizar tarefas fundamentais para a sua função. Nesses casos, o déficit deve ser nivelado antes que as energias sejam redirecionadas exclusivamente aos pontos fortes.</p>

<p>O objetivo principal, contudo, é desconstruir a crença utópica de que <strong>“você pode ser excelente em absolutamente qualquer coisa, desde que se esforce”</strong>. Na prática, essa noção atua frequentemente como uma fonte de frustração.</p>

<p>O engajamento verdadeiro exige dedicação e uma forte conexão com o que se faz. Se não existe afinidade natural por determinada atividade, por mais que haja esforço, o resultado tenderá à média. É possível alcançar um nível funcional, mas dificilmente o patamar de excelência que define os líderes de suas respectivas áreas.</p>

<h1 id="o-caminho-para-a-maestria">O caminho para a maestria</h1>

<p>Refletindo sobre esse tema, recordei-me de um excelente <a href="https://www.youtube.com/watch?v=ShgfIdfxqlA">vídeo do canal de Seiiti Arata</a>, intitulado <strong>“Como Aprender Qualquer Coisa Difícil”</strong>. É um material que desmistifica a maestria: não existem fórmulas mágicas ou atalhos, mas sim um processo árduo de dedicação, tempo e consistência.</p>

<p>Isso nos leva à conclusão de que o sucesso extraordinário é consequência de um esforço sustentável a longo prazo. Esse nível de persistência raramente se mantém sem um apreço genuíno pela área de atuação. Quando a atividade em si é essencialmente enfadonha ou incompatível com nossas inclinações, a disciplina inevitavelmente se esgota. O talento natural é o que fornece a facilidade inicial, mas é o investimento contínuo nesses pontos fortes que pavimenta o caminho definitivo para a maestria.</p>

<h1 id="o-pilar-do-autoconhecimento">O pilar do autoconhecimento</h1>

<p>“Conhece-te a ti mesmo” é uma máxima filosófica da Grécia Antiga, inscrita no Oráculo de Delfos e imortalizada por Sócrates. Ela nos convida à reflexão interior e à compreensão dos nossos próprios limites e virtudes, sendo considerada o ponto de partida tanto para a sabedoria quanto para o equilíbrio profissional e pessoal.</p>

<p>Nesse contexto, práticas como a busca constante por <em>feedback</em>, a autorreflexão estruturada e o uso de ferramentas de avaliação comportamental tornam-se indispensáveis. O autoconhecimento é o pré-requisito para traçar um plano de ação estratégico voltado ao desenvolvimento dos pontos fortes. Investir tempo e energia na descoberta das próprias inclinações é o passo mais seguro para construir uma carreira autêntica e de alto impacto.</p>

<h1 id="conclusão">Conclusão</h1>

<p>Em última análise, focar nos pontos fortes não significa ignorar nossas falhas, mas sim reconhecer onde nosso potencial de retorno é verdadeiramente exponencial. A maestria exige a combinação entre talento natural e esforço disciplinado. Ao investirmos naquilo que flui organicamente de nossa natureza, deixamos de ser operários da mediocridade para nos tornarmos arquitetos da excelência. O caminho para o sucesso extraordinário é, antes de tudo, uma jornada de autoconhecimento e coragem para ser o que já somos em nossa melhor versão.</p>]]></content><author><name></name></author><category term="psychology" /><summary type="html"><![CDATA[Este artigo propõe um deslocamento de perspectiva. Em vez de enxergar o desenvolvimento como um processo de mitigação de fraquezas, defende-se que o verdadeiro avanço — aquele que gera impacto exponencial — nasce do aprofundamento deliberado de nossas forças. Talentos naturais, quando reconhecidos e cultivados com consistência, têm o potencial de nos levar muito mais longe do que o esforço contínuo para apenas não sermos ruins em algo.]]></summary></entry><entry xml:lang="en"><title type="html">Why you should focus on your strengths.</title><link href="https://www.tekore.com.br/en/psychology/2026/05/02/strengths/" rel="alternate" type="text/html" title="Why you should focus on your strengths." /><published>2026-05-02T13:59:56+00:00</published><updated>2026-05-02T13:59:56+00:00</updated><id>https://www.tekore.com.br/en/psychology/2026/05/02/strengths</id><content type="html" xml:base="https://www.tekore.com.br/en/psychology/2026/05/02/strengths/"><![CDATA[<p>This article proposes a shift in perspective. Instead of viewing development as a process of mitigating weaknesses, it argues that true progress—the kind that generates exponential impact—stems from the <strong>deliberate deepening of our strengths</strong>. Natural talents, <strong>when recognized</strong> and consistently cultivated, have the potential to take us much further than a continuous effort to <strong>simply stop being bad at something</strong>.</p>

<h1 id="paradigm-shift">Paradigm Shift</h1>

<p>During a career counseling session, I was recommended the book <strong>“StrengthsFinder 2.0”</strong> by Donald O. Clifton. The author was one of the pioneers in performance research and in the development of corporate tools aimed at discovering natural talents.</p>

<p>The work brings a powerful proposal regarding personal and professional growth. Instead of spending energy trying to fix weaknesses, the methodology suggests that focus should be directed toward deepening what we already do well. The process begins with an assessment that identifies, among 34 possible talents, the individual’s top five. Based on this result, the book offers a detailed guide on the characteristics of each talent and practical strategies to transform them into structured strengths.</p>

<p>Clifton’s argumentative basis is supported by real-life examples of professionals who achieved mastery in their fields but, when trying to replicate the same level of success in disciplines outside their natural aptitudes, were unsuccessful. Analyzing my own career path, I was able to identify this pattern in several situations.</p>

<h1 id="a-necessary-counterpoint">A Necessary Counterpoint</h1>

<p>While the perspective proposed by the book is well-founded, it is prudent to recognize that it is not an inflexible rule. There are scenarios where mitigating a critical weakness is essential—for example, when a limitation prevents an individual from performing fundamental tasks for their role. In these cases, the deficit must be leveled before energies are redirected exclusively toward strengths.</p>

<p>The main goal, however, is to deconstruct the utopian belief that <strong>“you can be excellent at absolutely anything, as long as you try hard enough.”</strong> In practice, this notion often acts as a source of frustration.</p>

<p>True engagement requires dedication and a strong connection with what one does. If there is no natural affinity for a certain activity, no matter how much effort is put in, the result will tend toward the average. It is possible to reach a functional level, but hardly the level of excellence that defines the leaders of their respective fields.</p>

<h1 id="the-path-to-mastery">The Path to Mastery</h1>

<p>Reflecting on this topic, I was reminded of an excellent <a href="https://www.youtube.com/watch?v=ShgfIdfxqlA">video from Seiiti Arata’s channel</a>, titled <strong>“How to Learn Anything Difficult.”</strong> It is a material that demystifies mastery: there are no magic formulas or shortcuts, but rather a grueling process of dedication, time, and consistency.</p>

<p>This leads us to the conclusion that extraordinary success is the consequence of a sustainable effort over the long term. This level of persistence is rarely maintained without a genuine appreciation for the field of work. When the activity itself is essentially tedious or incompatible with our inclinations, discipline inevitably runs out. Natural talent is what provides the initial ease, but it is the continuous investment in these strengths that paves the definitive path to mastery.</p>

<h1 id="the-pillar-of-self-knowledge">The Pillar of Self-Knowledge</h1>

<p>“Know thyself” is a philosophical maxim from Ancient Greece, inscribed at the Oracle of Delphi and immortalized by Socrates. It invites us to inner reflection and to the understanding of our own limits and virtues, being considered the starting point for both wisdom and professional and personal balance.</p>

<p>In this context, practices such as the constant search for <em>feedback</em>, structured self-reflection, and the use of behavioral assessment tools become indispensable. Self-knowledge is the prerequisite for drawing up a strategic action plan aimed at developing strengths. Investing time and energy in discovering one’s own inclinations is the safest step toward building an authentic and high-impact career.</p>

<h1 id="conclusion">Conclusion</h1>

<p>Ultimately, focusing on strengths does not mean ignoring our flaws, but rather recognizing where our potential for return is truly exponential. Mastery requires the combination of natural talent and disciplined effort. By investing in what flows organically from our nature, we stop being workers of mediocrity to become architects of excellence. The path to extraordinary success is, above all, a journey of self-knowledge and the courage to be what we already are at our best.</p>]]></content><author><name></name></author><category term="psychology" /><summary type="html"><![CDATA[This article proposes a shift in perspective. Instead of viewing development as a process of mitigating weaknesses, it argues that true progress—the kind that generates exponential impact—stems from the deliberate deepening of our strengths. Natural talents, when recognized and consistently cultivated, have the potential to take us much further than a continuous effort to simply stop being bad at something.]]></summary></entry><entry xml:lang="fr"><title type="html">Pourquoi vous devriez vous concentrer sur vos points forts.</title><link href="https://www.tekore.com.br/fr/psychology/2026/05/02/strengths/" rel="alternate" type="text/html" title="Pourquoi vous devriez vous concentrer sur vos points forts." /><published>2026-05-02T13:59:56+00:00</published><updated>2026-05-02T13:59:56+00:00</updated><id>https://www.tekore.com.br/fr/psychology/2026/05/02/strengths</id><content type="html" xml:base="https://www.tekore.com.br/fr/psychology/2026/05/02/strengths/"><![CDATA[<p>Cet article propose un décalage de perspective. Au lieu de considérer le développement comme un processus d’atténuation des faiblesses, il soutient que le véritable progrès — celui qui génère un impact exponentiel — naît de <strong>l’approfondissement délibéré de nos forces</strong>. Les talents naturels, <strong>lorsqu’ils sont reconnus</strong> et cultivés avec constance, ont le potentiel de nous emmener bien plus loin qu’un effort continu pour <strong>simplement ne plus être mauvais dans un domaine</strong>.</p>

<h1 id="changement-de-paradigme">Changement de paradigme</h1>

<p>Lors d’une séance de conseil en carrière, on m’a suggéré la lecture du livre <strong>“Découvrez vos points forts 2.0”</strong> de Donald O. Clifton. L’auteur a été l’un des pionniers de la recherche sur la performance et du développement d’outils d’entreprise axés sur la découverte des talents naturels.</p>

<p>L’ouvrage apporte une proposition percutante sur la croissance personnelle et professionnelle. Au lieu de dépenser de l’énergie à essayer de corriger ses faiblesses, la méthodologie propose que l’attention soit dirigée vers l’approfondissement de ce que nous faisons déjà bien. Le processus commence par une évaluation qui identifie, parmi 34 talents possibles, les cinq plus proéminents chez l’individu. À partir de ce résultat, le livre propose un guide détaillé sur les caractéristiques de chaque talent et des stratégies pratiques pour les transformer en points forts structurés.</p>

<p>La base argumentative de Clifton s’appuie sur des exemples réels de professionnels ayant atteint la maîtrise dans leurs domaines, mais qui, en tentant de reproduire le même niveau de succès dans des disciplines hors de leurs aptitudes naturelles, n’ont pas réussi. En analysant mon propre parcours, j’ai pu identifier ce schéma dans diverses situations.</p>

<h1 id="un-contrepoint-nécessaire">Un contrepoint nécessaire</h1>

<p>Bien que la perspective proposée par le livre soit très bien fondée, il est prudent de reconnaître qu’il ne s’agit pas d’une règle absolue. Il existe des scénarios où atténuer une faiblesse critique est essentiel — par exemple, lorsqu’une limitation empêche l’individu de réaliser des tâches fondamentales pour sa fonction. Dans ces cas, le déficit doit être nivelé avant que les énergies ne soient redirigées exclusivement vers les points forts.</p>

<p>L’objectif principal, cependant, est de déconstruire la croyance utopique selon laquelle <strong>“vous pouvez être excellent dans absolument n’importe quoi, pourvu que vous fassiez des efforts”</strong>. En pratique, cette notion agit souvent comme une source de frustration.</p>

<p>L’engagement véritable exige du dévouement et une forte connexion avec ce que l’on fait. S’il n’y a pas d’affinité naturelle pour une certaine activité, quel que soit l’effort fourni, le résultat aura tendance à être moyen. Il est possible d’atteindre un niveau fonctionnel, mais difficilement le niveau d’excellence qui définit les leaders de leurs domaines respectifs.</p>

<h1 id="le-chemin-vers-la-maîtrise">Le chemin vers la maîtrise</h1>

<p>En réfléchissant à ce sujet, je me suis souvenu d’une excellente <a href="https://www.youtube.com/watch?v=ShgfIdfxqlA">vidéo de la chaîne de Seiiti Arata</a>, intitulée <strong>“Comment apprendre n’importe quoi de difficile”</strong>. C’est un matériel qui démystifie la maîtrise : il n’y a pas de formules magiques ou de raccourcis, mais plutôt un processus ardu de dévouement, de temps et de constance.</p>

<p>Cela nous amène à la conclusion que le succès extraordinaire est la conséquence d’un effort durable sur le long terme. Ce niveau de persévérance se maintient rarement sans une appréciation sincère pour le domaine d’activité. Quand l’activité en elle-même est essentiellement ennuyeuse ou incompatible avec nos inclinations, la discipline finit inévitablement par s’épuiser. Le talent naturel est ce qui fournit la facilité initiale, mais c’est l’investissement continu dans ces points forts qui pave le chemin définitif vers la maîtrise.</p>

<h1 id="le-pilier-de-la-connaissance-de-soi">Le pilier de la connaissance de soi</h1>

<p>“Connais-toi toi-même” est une maxime philosophique de la Grèce antique, inscrite sur l’oracle de Delphes et immortalisée par Socrate. Elle nous invite à la réflexion intérieure et à la compréhension de nos propres limites et vertus, étant considérée comme le point de départ tant pour la sagesse que pour l’équilibre professionnel et personnel.</p>

<p>Dans ce contexte, des pratiques telles que la recherche constante de <em>feedback</em>, l’autoréflexion structurée et l’utilisation d’outils d’évaluation comportementale deviennent indispensables. La connaissance de soi est le prérequis pour tracer un plan d’action stratégique axé sur le développement des points forts. Investir du temps et de l’énergie dans la découverte de ses propres inclinations est le pas le plus sûr pour construire une carrière authentique et à fort impact.</p>

<h1 id="conclusion">Conclusion</h1>

<p>En fin de compte, se concentrer sur ses points forts ne signifie pas ignorer ses défauts, mais plutôt reconnaître où notre potentiel de rendement est véritablement exponentiel. La maîtrise exige la combinaison d’un talent naturel et d’un effort discipliné. En investissant dans ce qui découle organiquement de notre nature, nous cessons d’être des ouvriers de la médiocrité pour devenir les architectes de l’excellence. Le chemin vers le succès extraordinaire est, avant tout, un voyage de connaissance de soi et de courage pour être ce que nous sommes déjà dans notre meilleure version.</p>]]></content><author><name></name></author><category term="psychology" /><summary type="html"><![CDATA[Cet article propose un décalage de perspective. Au lieu de considérer le développement comme un processus d’atténuation des faiblesses, il soutient que le véritable progrès — celui qui génère un impact exponentiel — naît de l’approfondissement délibéré de nos forces. Les talents naturels, lorsqu’ils sont reconnus et cultivés avec constance, ont le potentiel de nous emmener bien plus loin qu’un effort continu pour simplement ne plus être mauvais dans un domaine.]]></summary></entry><entry xml:lang="pt-br"><title type="html">Como o computador descobre o que carregar ao ser ligado?</title><link href="https://www.tekore.com.br/operating-system/2026/05/01/bootloader.html" rel="alternate" type="text/html" title="Como o computador descobre o que carregar ao ser ligado?" /><published>2026-05-01T21:53:56+00:00</published><updated>2026-05-01T21:53:56+00:00</updated><id>https://www.tekore.com.br/operating-system/2026/05/01/bootloader</id><content type="html" xml:base="https://www.tekore.com.br/operating-system/2026/05/01/bootloader.html"><![CDATA[<p><strong>Neste artigo, exploramos o processo técnico de inicialização de um computador, detalhando o carregamento do Master Boot Record (MBR), a estrutura de setores de um disco e a implementação de um bootloader em Assembly com foco na validação da assinatura de boot.</strong></p>

<h1 id="carregamento-do-bootloader">Carregamento do bootloader</h1>

<p>Ao ser ligado, o hardware executa o <code class="language-plaintext highlighter-rouge">Power-On Self Test (POST)</code>. Após a validação dos componentes, a BIOS busca por dispositivos de armazenamento inicializáveis. O primeiro setor físico (os <strong>512 bytes iniciais, conhecido como setor de inicialização ou MBR</strong>) é carregado na memória RAM. A BIOS valida a integridade deste setor procurando pela “<strong>assinatura mágica</strong>” <code class="language-plaintext highlighter-rouge">0xAA55</code> em seus dois últimos bytes; se presente, a execução é transferida para este endereço e o processo de boot prossegue.</p>

<blockquote class="warning">
  <p>⚠️ <strong>Nota Técnica:</strong> Introduzido em 1983, o <strong>MBR (Master Boot Record)</strong> foi o padrão dominante por décadas. Atualmente, sistemas modernos utilizam o <strong>GPT (GUID Partition Table)</strong>, que supera as limitações de particionamento e tamanho de disco do MBR. Para fins didáticos, utilizaremos o modelo MBR neste artigo.</p>
</blockquote>

<p><img src="/assets/images/boot-sector-loading-ptbr.png" alt="Carregamento do setor de inicialização" /></p>

<h1 id="geometria-de-disco-e-setores">Geometria de Disco e Setores</h1>

<p>Para fins de compreensão da organização de dados, considere a estrutura de um Disco Rígido (HDD) convencional. O disco é organizado de forma hierárquica em setores, trilhas (tracks) e cabeças (heads).</p>

<p><img src="/assets/images/disk-sector-tracks-ptbr.png" alt="Setores de um HD" /></p>

<p>O <strong>MBR (Master Boot Record)</strong> localiza-se no <strong>primeiro setor</strong> físico do disco. Este setor possui exatamente <strong>512 bytes</strong> de capacidade, espaço onde é definido o <strong>primeiro estágio (Stage 1)</strong> do carregador de inicialização do sistema operacional.</p>

<h1 id="implementação-do-setor-de-boot">Implementação do Setor de Boot</h1>

<p>O desenvolvimento de um bootloader é tipicamente realizado em <strong>Assembly</strong>, garantindo controle direto sobre o hardware e o mapeamento de memória. Abaixo, apresentamos um exemplo de implementação:</p>

<figure class="highlight"><pre><code class="language-assembly" data-lang="assembly"><table class="rouge-table"><tbody><tr><td class="gutter gl"><pre class="lineno">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
</pre></td><td class="code"><pre># ***********************************************************
# Setor de Boot de Exemplo
# ***********************************************************

.code16
.intel_syntax noprefix
.text
.org 0x0                                        

LOAD_SEGMENT = 0x1000                     # O carregador de 2º estágio será carregado no segmento 1000h
FAT_SEGMENT  = 0x0ee0                     # A FAT do disco de boot será carregada no segmento 0x0ee0 
                                          # (9*512 bytes abaixo do carregador de 2º estágio)

.global main

main:
    jmp short start                       # Salta para o início do código
    nop                                   # Alinhamento (nop) para o cabeçalho do setor de boot

.include "bootsector.s"
.include "macros.s"

start:
  mInitSegments                           # Inicializa os segmentos de memória
  mResetDiskSystem                        # Reinicia o subsistema de disco
  mWriteString loadmsg                    # Exibe mensagem de carregamento
  mFindFile filename, LOAD_SEGMENT        # Localiza o arquivo de 2º estágio no diretório raiz
  mReadFAT FAT_SEGMENT                    # Carrega a tabela FAT na memória
  mReadFile LOAD_SEGMENT, FAT_SEGMENT     # Transfere o 2º estágio para a memória RAM
  mStartSecondStage                       # Transfere o fluxo de execução para o 2º estágio
 
# Rotina de tratamento de falhas no processo de boot
bootFailure:
  mWriteString diskerror                  # Exibe mensagem de erro de disco
  mReboot                                 # Solicita reinicialização do sistema
  
.include "functions.s"
    
# Definição de dados e constantes
filename:    .asciz "2NDSTAGEBIN"
rebootmsg:   .asciz "Pressione qualquer tecla para reiniciar.\r\n"
diskerror:   .asciz "Erro de disco. "
loadmsg:     .asciz "Carregando DevOS...\r\n"

root_strt:   .byte 0,0      # Offset do diretório raiz
root_scts:   .byte 0,0      # Quantidade de setores do diretório raiz
file_strt:   .byte 0,0      # Offset do bootloader no disco

.fill (510-(.-main)), 1, 0  # Padding com zeros até o byte 510
BootMagic:  .int 0xAA55     # Assinatura mágica para reconhecimento pela BIOS
</pre></td></tr></tbody></table></code></pre></figure>

<h1 id="análise-técnica-e-assinatura-de-boot">Análise Técnica e Assinatura de Boot</h1>

<p>A implementação utiliza diretivas específicas para garantir a conformidade com o padrão MBR. O ponto crítico reside no preenchimento do setor para atingir o tamanho exato de 512 bytes (linhas 49 e 50).</p>

<p>Como o volume de instruções e dados pode variar, é necessário calcular dinamicamente o preenchimento (padding) necessário. A expressão utilizada é:
<code class="language-plaintext highlighter-rouge">(510 - (.-main))</code></p>

<p>Componentes da expressão:</p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">.</code> (ponto): Representa o contador de localização atual (location counter).</li>
  <li><code class="language-plaintext highlighter-rouge">main</code>: O endereço do ponto de entrada inicial.</li>
  <li><code class="language-plaintext highlighter-rouge">(.-main)</code>: Calcula o deslocamento (offset) total de bytes gerados até o momento.</li>
  <li><code class="language-plaintext highlighter-rouge">510 - (.-main)</code>: Determina quantos bytes restam para atingir a marca de 510 bytes.</li>
</ul>

<p>Os dois bytes finais (511 e 512) são reservados para a assinatura <strong>0xAA55</strong>. Sem esta assinatura, a BIOS não reconhecerá o dispositivo como inicializável.</p>

<h1 id="geração-do-binário-e-carregamento-na-ram">Geração do Binário e Carregamento na RAM</h1>

<p>Após a montagem do código fonte, é gerado um arquivo binário. Quando o computador identifica um dispositivo de boot, a BIOS lê o primeiro setor (512 bytes), copia seu conteúdo para o endereço físico de memória <strong>0x7C00</strong> e inicia a execução das instruções a partir desse endereço.</p>

<p><img src="/assets/images/bootfile-ptbr.png" alt="Arquivo binário em hexadecimal" /></p>

<h1 id="próximas-etapas-e-conclusão">Próximas Etapas e Conclusão</h1>

<p>A inicialização de um sistema operacional é um processo multi-estágio. O código analisado representa o <strong>Estágio 1</strong>, cuja função primordial é localizar e carregar o estágio subsequente na memória RAM, conforme demonstrado na lógica a partir da linha 23.</p>

<p>Em artigos futuros, detalharemos as fases posteriores, incluindo a transição para o Modo Protegido e o carregamento do Kernel do sistema.</p>]]></content><author><name></name></author><category term="operating-system" /><summary type="html"><![CDATA[Neste artigo, exploramos o processo técnico de inicialização de um computador, detalhando o carregamento do Master Boot Record (MBR), a estrutura de setores de um disco e a implementação de um bootloader em Assembly com foco na validação da assinatura de boot.]]></summary></entry><entry xml:lang="en"><title type="html">How does the computer discover what to load when turned on?</title><link href="https://www.tekore.com.br/en/operating-system/2026/05/01/bootloader/" rel="alternate" type="text/html" title="How does the computer discover what to load when turned on?" /><published>2026-05-01T21:53:56+00:00</published><updated>2026-05-01T21:53:56+00:00</updated><id>https://www.tekore.com.br/en/operating-system/2026/05/01/bootloader</id><content type="html" xml:base="https://www.tekore.com.br/en/operating-system/2026/05/01/bootloader/"><![CDATA[<p><strong>In this article, we explore the technical process of computer initialization, detailing the loading of the Master Boot Record (MBR), the disk sector structure, and the implementation of an Assembly bootloader focusing on boot signature validation.</strong></p>

<h1 id="bootloader-loading">Bootloader Loading</h1>

<p>Upon powering on, the hardware executes the <code class="language-plaintext highlighter-rouge">Power-On Self Test (POST)</code>. Following component validation, the BIOS searches for bootable storage devices. The first physical sector (the initial <strong>512 bytes, known as the boot sector or MBR</strong>) is loaded into RAM. The BIOS validates the integrity of this sector by looking for the “<strong>magic signature</strong>” <code class="language-plaintext highlighter-rouge">0xAA55</code> in its last two bytes; if present, execution is transferred to this address and the boot process continues.</p>

<blockquote class="warning">
  <p>⚠️ <strong>Technical Note:</strong> Introduced in 1983, the <strong>MBR (Master Boot Record)</strong> was the dominant standard for decades. Currently, modern systems use the <strong>GPT (GUID Partition Table)</strong>, which overcomes MBR’s partitioning and disk size limitations. For educational purposes, we will use the MBR model in this article.</p>
</blockquote>

<p><img src="/assets/images/boot-sector-loading-en.png" alt="Boot sector loading" /></p>

<h1 id="disk-geometry-and-sectors">Disk Geometry and Sectors</h1>

<p>To understand data organization, consider the structure of a conventional Hard Disk Drive (HDD). The disk is organized hierarchically into sectors, tracks, and heads.</p>

<p><img src="/assets/images/disk-sector-tracks-en.png" alt="HDD Sectors" /></p>

<p>The <strong>MBR (Master Boot Record)</strong> is located in the <strong>first physical sector</strong> of the disk. This sector has exactly <strong>512 bytes</strong> of capacity, the space where the <strong>first stage (Stage 1)</strong> of the operating system bootloader is defined.</p>

<h1 id="boot-sector-implementation">Boot Sector Implementation</h1>

<p>Bootloader development is typically done in <strong>Assembly</strong>, ensuring direct control over hardware and memory mapping. Below is an example implementation:</p>

<figure class="highlight"><pre><code class="language-assembly" data-lang="assembly"><table class="rouge-table"><tbody><tr><td class="gutter gl"><pre class="lineno">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
</pre></td><td class="code"><pre># ***********************************************************
# Example Boot Sector
# ***********************************************************

.code16
.intel_syntax noprefix
.text
.org 0x0                                        

LOAD_SEGMENT = 0x1000                     # The 2nd stage loader will be loaded at segment 1000h
FAT_SEGMENT  = 0x0ee0                     # The boot disk FAT will be loaded at segment 0x0ee0 
                                          # (9*512 bytes below the 2nd stage loader)

.global main

main:
    jmp short start                       # Jump to the start of the code
    nop                                   # Alignment (nop) for the boot sector header

.include "bootsector.s"
.include "macros.s"

start:
  mInitSegments                           # Initialize memory segments
  mResetDiskSystem                        # Reset the disk subsystem
  mWriteString loadmsg                    # Display loading message
  mFindFile filename, LOAD_SEGMENT        # Locate the 2nd stage file in the root directory
  mReadFAT FAT_SEGMENT                    # Load the FAT table into memory
  mReadFile LOAD_SEGMENT, FAT_SEGMENT     # Transfer the 2nd stage into RAM
  mStartSecondStage                       # Transfer execution flow to the 2nd stage
 
# Boot process failure handling routine
bootFailure:
  mWriteString diskerror                  # Display disk error message
  mReboot                                 # Request system reboot
  
.include "functions.s"
    
# Data and constants definition
filename:    .asciz "2NDSTAGEBIN"
rebootmsg:   .asciz "Press any key to reboot.\r\n"
diskerror:   .asciz "Disk error. "
loadmsg:     .asciz "Loading DevOS...\r\n"

root_strt:   .byte 0,0      # Root directory offset
root_scts:   .byte 0,0      # Number of sectors in the root directory
file_strt:   .byte 0,0      # Bootloader offset on the disk

.fill (510-(.-main)), 1, 0  # Padding with zeros up to byte 510
BootMagic:  .int 0xAA55     # Magic signature for BIOS recognition
</pre></td></tr></tbody></table></code></pre></figure>

<h1 id="technical-analysis-and-boot-signature">Technical Analysis and Boot Signature</h1>

<p>The implementation uses specific directives to ensure compliance with the MBR standard. The critical point lies in padding the sector to reach exactly 512 bytes (lines 49 and 50).</p>

<p>Since the volume of instructions and data may vary, it is necessary to dynamically calculate the required padding. The expression used is:
<code class="language-plaintext highlighter-rouge">(510 - (.-main))</code></p>

<p>Expression components:</p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">.</code> (dot): Represents the current location counter.</li>
  <li><code class="language-plaintext highlighter-rouge">main</code>: The address of the initial entry point.</li>
  <li><code class="language-plaintext highlighter-rouge">(.-main)</code>: Calculates the total byte offset generated so far.</li>
  <li><code class="language-plaintext highlighter-rouge">510 - (.-main)</code>: Determines how many bytes remain to reach the 510-byte mark.</li>
</ul>

<p>The final two bytes (511 and 512) are reserved for the <strong>0xAA55</strong> signature. Without this signature, the BIOS will not recognize the device as bootable.</p>

<h1 id="binary-generation-and-loading-into-ram">Binary Generation and Loading into RAM</h1>

<p>After assembling the source code, a binary file is generated. When the computer identifies a boot device, the BIOS reads the first sector (512 bytes), copies its content to the physical memory address <strong>0x7C00</strong>, and begins executing instructions from that address.</p>

<p><img src="/assets/images/bootfile-en.png" alt="Binary file in hexadecimal" /></p>

<h1 id="next-steps-and-conclusion">Next Steps and Conclusion</h1>

<p>Operating system initialization is a multi-stage process. The analyzed code represents <strong>Stage 1</strong>, whose primary function is to locate and load the subsequent stage into RAM, as demonstrated by the logic starting at line 23.</p>

<p>In future articles, we will detail the later phases, including the transition to Protected Mode and Kernel loading.</p>]]></content><author><name></name></author><category term="operating-system" /><summary type="html"><![CDATA[In this article, we explore the technical process of computer initialization, detailing the loading of the Master Boot Record (MBR), the disk sector structure, and the implementation of an Assembly bootloader focusing on boot signature validation.]]></summary></entry><entry xml:lang="fr"><title type="html">Comment l’ordinateur découvre-t-il quoi charger à l’allumage ?</title><link href="https://www.tekore.com.br/fr/operating-system/2026/05/01/bootloader/" rel="alternate" type="text/html" title="Comment l’ordinateur découvre-t-il quoi charger à l’allumage ?" /><published>2026-05-01T21:53:56+00:00</published><updated>2026-05-01T21:53:56+00:00</updated><id>https://www.tekore.com.br/fr/operating-system/2026/05/01/bootloader</id><content type="html" xml:base="https://www.tekore.com.br/fr/operating-system/2026/05/01/bootloader/"><![CDATA[<p><strong>Dans cet article, nous explorons le processus technique de démarrage d’un ordinateur, en détaillant le chargement du Master Boot Record (MBR), la structure des secteurs d’un disque et l’implémentation d’un bootloader en Assembly avec un focus sur la validation de la signature de boot.</strong></p>

<h1 id="chargement-du-bootloader">Chargement du bootloader</h1>

<p>Lors de la mise sous tension, le matériel exécute le <code class="language-plaintext highlighter-rouge">Power-On Self Test (POST)</code>. Après la validation des composants, le BIOS recherche des périphériques de stockage amorçables. Le premier secteur physique (les <strong>512 premiers octets, connus sous le nom de secteur d’amorçage ou MBR</strong>) est chargé dans la mémoire RAM. Le BIOS valide l’intégrité de ce secteur en recherchant la “<strong>signature magique</strong>” <code class="language-plaintext highlighter-rouge">0xAA55</code> dans ses deux derniers octets ; si elle est présente, l’exécution est transférée à cette adresse et le processus de démarrage se poursuit.</p>

<blockquote class="warning">
  <p>⚠️ <strong>Note technique :</strong> Introduit en 1983, le <strong>MBR (Master Boot Record)</strong> a été le standard dominant pendant des décennies. Actuellement, les systèmes modernes utilisent le <strong>GPT (GUID Partition Table)</strong>, qui surpasse les limitations de partitionnement et de taille de disque du MBR. À des fins didactiques, nous utiliserons le modèle MBR dans cet article.</p>
</blockquote>

<p><img src="/assets/images/boot-sector-loading-en.png" alt="Chargement du secteur d'amorçage" /></p>

<h1 id="géométrie-du-disque-et-secteurs">Géométrie du disque et secteurs</h1>

<p>Pour comprendre l’organisation des données, considérez la structure d’un disque dur (HDD) conventionnel. Le disque est organisé de manière hiérarchique en secteurs, pistes (tracks) et têtes (heads).</p>

<p><img src="/assets/images/disk-sector-tracks-en.png" alt="Secteurs d'un disque dur" /></p>

<p>Le <strong>MBR (Master Boot Record)</strong> se situe dans le <strong>premier secteur</strong> physique du disque. Ce secteur possède exactement <strong>512 octets</strong> de capacité, l’espace où est défini le <strong>premier stade (Stage 1)</strong> du chargeur d’amorçage du système d’exploitation.</p>

<h1 id="implémentation-du-secteur-de-boot">Implémentation du secteur de boot</h1>

<p>Le développement d’un bootloader est typiquement réalisé en <strong>Assembly</strong>, garantissant un contrôle direct sur le matériel et la cartographie de la mémoire. Ci-dessous, nous présentons un exemple d’implémentation :</p>

<figure class="highlight"><pre><code class="language-assembly" data-lang="assembly"><table class="rouge-table"><tbody><tr><td class="gutter gl"><pre class="lineno">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
</pre></td><td class="code"><pre># ***********************************************************
# Exemple de secteur de boot
# ***********************************************************

.code16
.intel_syntax noprefix
.text
.org 0x0                                        

LOAD_SEGMENT = 0x1000                     # Le chargeur de 2e stade sera chargé dans le segment 1000h
FAT_SEGMENT  = 0x0ee0                     # La FAT du disque de boot sera chargée dans le segment 0x0ee0 
                                          # (9*512 octets sous le chargeur de 2e stade)

.global main

main:
    jmp short start                       # Saute au début du code
    nop                                   # Alignement (nop) pour l'en-tête du secteur de boot

.include "bootsector.s"
.include "macros.s"

start:
  mInitSegments                           # Initialise les segments de mémoire
  mResetDiskSystem                        # Réinitialise le sous-système de disque
  mWriteString loadmsg                    # Affiche le message de chargement
  mFindFile filename, LOAD_SEGMENT        # Localise le fichier du 2e stade dans le répertoire racine
  mReadFAT FAT_SEGMENT                    # Charge la table FAT en mémoire
  mReadFile LOAD_SEGMENT, FAT_SEGMENT     # Transfère le 2e stade en mémoire RAM
  mStartSecondStage                       # Transfère le flux d'exécution au 2e stade
 
# Routine de gestion des échecs du processus de boot
bootFailure:
  mWriteString diskerror                  # Affiche un message d'erreur de disque
  mReboot                                 # Sollicite le redémarrage du système
  
.include "functions.s"
    
# Définition des données et constantes
filename:    .asciz "2NDSTAGEBIN"
rebootmsg:   .asciz "Appuyez sur n'importe quelle touche pour redémarrer.\r\n"
diskerror:   .asciz "Erreur de disque. "
loadmsg:     .asciz "Chargement de DevOS...\r\n"

root_strt:   .byte 0,0      # Offset du répertoire racine
root_scts:   .byte 0,0      # Nombre de secteurs du répertoire racine
file_strt:   .byte 0,0      # Offset du bootloader sur le disque

.fill (510-(.-main)), 1, 0  # Padding avec des zéros jusqu'à l'octet 510
BootMagic:  .int 0xAA55     # Signature magique pour la reconnaissance par le BIOS
</pre></td></tr></tbody></table></code></pre></figure>

<h1 id="analyse-technique-et-signature-de-boot">Analyse technique et signature de boot</h1>

<p>L’implémentation utilise des directives spécifiques pour garantir la conformité au standard MBR. Le point critique réside dans le remplissage du secteur pour atteindre la taille exacte de 512 octets (lignes 49 et 50).</p>

<p>Comme le volume d’instructions et de données peut varier, il est nécessaire de calculer dynamiquement le remplissage (padding) nécessaire. L’expression utilisée est :
<code class="language-plaintext highlighter-rouge">(510 - (.-main))</code></p>

<p>Composants de l’expression :</p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">.</code> (point) : Représente le compteur de localisation actuel (location counter).</li>
  <li><code class="language-plaintext highlighter-rouge">main</code> : L’adresse du point d’entrée initial.</li>
  <li><code class="language-plaintext highlighter-rouge">(.-main)</code> : Calcule le déplacement (offset) total d’octets générés jusqu’à présent.</li>
  <li><code class="language-plaintext highlighter-rouge">510 - (.-main)</code> : Détermine combien d’octets il reste pour atteindre la marque de 510 octets.</li>
</ul>

<p>Les deux derniers octets (511 et 512) sont réservés pour la signature <strong>0xAA55</strong>. Sans cette signature, le BIOS ne reconnaîtra pas le périphérique comme amorçable.</p>

<h1 id="génération-du-binaire-et-chargement-en-ram">Génération du binaire et chargement en RAM</h1>

<p>Après l’assemblage du code source, un fichier binaire est généré. Quand l’ordinateur identifie un périphérique de démarrage, le BIOS lit le premier secteur (512 octets), copie son contenu à l’adresse physique de mémoire <strong>0x7C00</strong> et lance l’exécution des instructions à partir de cette adresse.</p>

<p><img src="/assets/images/bootfile-en.png" alt="Fichier binaire en hexadécimal" /></p>

<h1 id="prochaines-étapes-et-conclusion">Prochaines étapes et conclusion</h1>

<p>L’initialisation d’un système d’exploitation est un processus multi-stades. Le code analysé représente le <strong>Stade 1</strong>, dont la fonction primordiale est de localiser et charger le stade subséquent en mémoire RAM, comme démontré dans la logique à partir de la ligne 23.</p>

<p>Dans de futurs articles, nous détaillerons les phases postérieures, incluant la transition vers le Mode Protégé et le chargement du Kernel du système.</p>]]></content><author><name></name></author><category term="operating-system" /><summary type="html"><![CDATA[Dans cet article, nous explorons le processus technique de démarrage d’un ordinateur, en détaillant le chargement du Master Boot Record (MBR), la structure des secteurs d’un disque et l’implémentation d’un bootloader en Assembly avec un focus sur la validation de la signature de boot.]]></summary></entry></feed>