Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [Assembly] Domanda sull'OS

    Salve, qualcuno mi può spiegare quale file del sistema operativo viene eseguito per primo da BIOS? Ho letto del bootloader e del fatto che deve iniziare all'indirizzo 7C00h (se non sbaglio) ma non capisco come faccia a scegliere QUEL file e quali file apra successivamente.

    Vi ringrazio e vi auguro buon anno

  2. #2
    Se stiamo parlando dell'architettura x86, il BIOS cerca il bootloader in maniere differenti a seconda del supporto da cui si sta effettuando il boot (nel caso degli HD andrà a cercarlo nel master boot record); una volta trovato il bootloader, lo carica in memoria all'indirizzo 0000:7c00 e lo esegue. Questo, dato che solitamente deve stare in uno spazio estremamente esiguo, di fatto non fa altro che cercare il "vero" bootloader, che solitamente è di dimensioni più consistenti e si trova da qualche altra parte sul disco (nel caso del bootloader Microsoft e di altri si trova nel VBR). Quest'ultimo di solito presenta la scelta tra i vari sistemi operativi per cui è stato configurato (a meno che non sia configurato per avviarne uno di default), e quindi carica il kernel del sistema operativo scelto (nel caso di Windows ntoskrnl.exe, nel caso di Linux il kernel scelto tramite il bootloader, solitamente un qualche vmlinuz-versione situato in /boot). In ogni caso il lavoro del BIOS è limitato alla semplice esecuzione del codice dell'MBR (o del settore di avvio nel caso dei floppy o del suo equivalente nel caso di altri dispositivi), il resto dipende dal codice in questione.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Ti ringrazio, ma volevo sapere:

    1: come fa il BIOS a sapere chi è il primo bootloader... non penso vada a caso

    2: come si fa a "cercare il "vero" bootloader"? è tipo un include di C? quale funzione si utilizza?


    Se per caso conosci qualche buona guida (in italiano) sull'assembly me la linkeresti?

    grazie ancora

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Originariamente inviato da viscontino
    Ti ringrazio, ma volevo sapere:

    1: come fa il BIOS a sapere chi è il primo bootloader... non penso vada a caso
    Mi sembra ti abbiano già detto che carica il MBR ... non va quindi a caso.

    2: come si fa a "cercare il "vero" bootloader"? è tipo un include di C? quale funzione si utilizza?
    Questa non l'ho capita ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Originariamente inviato da oregon Questa non l'ho capita ...
    Come fa il bootloader a caricare il MBR? E che cos'è l'MBR? L'inizio del sistema operativo?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Originariamente inviato da viscontino
    Come fa il bootloader a caricare il MBR? E che cos'è l'MBR? L'inizio del sistema operativo?
    Perdonami, ma perchè chiedi "come" se non sai "cosa" sia ?

    Comincia a leggere

    http://it.wikipedia.org/wiki/Master_boot_record
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Ok, ho letto anche i link correlati.

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Direi che la domanda è abbastanza off topic, visto che non riguarda specificatamente la programmazione Assembly quanto più il funzionamento di un sistema operativo generico, che può essere approfondito facendo ricerche mirate su Google.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.