Zerokaratsukuru OS kaihatsu 001 bootloader-hen zero karatsukuru bootloader OS development from scratch (Japanese Edition)
Book Details
Author(s)yabusame2001
Publisheryabusame2001
ISBN / ASINB00F6CFO9O
ISBN-13978B00F6CFO97
Sales Rank99,999,999
MarketplaceUnited States 🇺🇸
Description
C言語ã§ï¼ã‹ã‚‰ä½œã‚‹OSを開発ã«ã¤ã„ã¦èª¬æ˜Žã—ã¦ã„ãã¾ã™ã€‚ã“ã®ã‚·ãƒªãƒ¼ã‚ºã§ã¯ã‚«ãƒ¼ãƒãƒ«ã®é–‹ç™ºã«ã¤ã„ã¦èª¬æ˜Žã—ã¦ã„ã¾ã™ã€‚
今回ã¯ã‚«ãƒ¼ãƒãƒ«ã‚’èªã¿è¾¼ã¿ãŸã‚ã®ãƒ–ートãƒãƒ¼ãƒ€ãƒ¼ã«ã¤ã„ã¦ï¼ã‹ã‚‰ä½œã£ã¦ã„ãã¾ã™ã€‚BIOSを利用ã—ãŸæ–‡å—ã®è¡¨ç¤ºã‚„フãƒãƒƒãƒ”ーディスクã‹ã‚‰ã®ãƒ•ァイルèªã¿è¾¼ã¿ã€FAT12ファイルシステムã®è§£é‡ˆã‚’説明ã—ã¦ã„ãã¾ã™ã€‚
ã€æ³¨æ„】本書ã®ãƒ–ートãƒãƒ¼ãƒ€ãƒ¼ã¯nasmã§ãƒ—ãƒã‚°ãƒ©ãƒ を行ã£ã¦ã„ã¾ã™ãŒã€ã‚¢ã‚»ãƒ³ãƒ–ãƒ©ãƒ¼ã®æ§‹æ–‡ãªã©ã¯è©³ç´°ã«èª¬æ˜Žã§ãã¦ãŠã‚Šã¾ã›ã‚“ã€‚åˆ¥é€”ã‚¢ã‚»ãƒ³ãƒ–ãƒ©ãƒ¼ã®æ–‡æ³•ãªã©ã‚’å¦ç¿’ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ã—ã‹ã—ã€æœ¬æ›¸ã‚’èªã‚€ã“ã¨ã§ãƒ–ートãƒãƒ¼ãƒ€ãƒ¼ã®åŸºæœ¬çš„ãªè¨è¨ˆã¯ã§ãるよã†ã«ãªã‚‹ã¨æ€ã„ã¾ã™ã€‚
[目次]
å‰å›žã¾ã§ã®å†…容
パソコンãŒèµ·å‹•ã—ã¦ã‹ã‚‰ã®å‡¦ç†æ¦‚è¦
  OSã‹ã‚‰åˆ©ç”¨ã§ãã‚‹BIOSã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェース処ç†
    割り込ã¿ãƒ™ã‚¯ã‚¿ãƒ¼ã¨ã¯ï¼Ÿ
  割り込ã¿å‡¦ç†ã‚’使ã£ã¦
  ã©ã“ã‹ã‚‰ãƒ–ートãƒãƒ¼ãƒ€ã‚’èªã¿è¾¼ã‚€ã®ã‹ï¼Ÿ
  セクターã¨ã¯ï¼Ÿ
  シリンダー(トラック)ã¨ã¯ï¼Ÿãƒ˜ãƒƒãƒ‰ã¨ã¯ï¼Ÿ
    ヘッドã¯
    シリンダー(トラック)ã¯
    セクタã¯
BIOSã®å‡¦ç†
  最åˆã®ã‚»ã‚¯ã‚¿ãƒ¼ã‚’èªã¿è¾¼ã‚€
  フãƒãƒƒãƒ”ーã®èªè¾¼å‡¦ç†
  割り込ã¿ãƒ™ã‚¯ã‚¿ã®25番目(0x19番目)
  アセンブラー言語ã«ã¤ã„ã¦
最åˆã®ãƒ–ートãƒãƒ¼ãƒ€ã‚’作ã£ã¦ã¿ã‚‹
  ブートãƒãƒ¼ãƒ€ãƒ¼ã‚’アセンブルã—ã¦ã¿ã‚‹
  フãƒãƒƒãƒ”ãƒ¼ãƒ‡ã‚£ã‚¹ã‚¯ã®æœ€åˆã®ã‚»ã‚¯ã‚¿ãƒ¼ã«æ›¸ã込む
  よã†ã‚„ãèµ·å‹•ã—ã¦ã¿ã‚‹
FAT12ファイルシステムã®ã•ã‚り
  FAT12ã®ãƒ–ートセクタ
  FA12ã®ãƒ–ートセクターを作ã£ã¦ã¿ã‚‹
リアルモードã«ã¤ã„ã¦å°‘ã—
16ビット?
レジスタ?
  汎用レジスター
  汎用レジスタã®ãã®ä»–ã®å½¹å‰²
セグメントレジスターã¨ãƒ¡ãƒ¢ãƒªãƒ¼ã‚¢ã‚¯ã‚»ã‚¹
  セグメントã¨ã¯
ã€€ã€€ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã®æŒ‡å®š
    セグメントã®é–‹å§‹ä½ç½®
  セグメントã®å¤§ãã•
  セグメントレジスターã®ç¨®é¡ž
  セグメントレジスターã¨ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã¨ã‚¢ã‚»ãƒ³ãƒ–ラー言語
  コードセグメント内ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚¢ã‚¯ã‚»ã‚¹
  データセグメント内ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚¢ã‚¯ã‚»ã‚¹
  セグメントã¨ã‚»ã‚°ãƒ¡ãƒ³ãƒˆå†…ã®ã‚¢ãƒ‰ãƒ¬ã‚¹
    ESã€FSã€GSレジスターã®ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã¸ã®ã‚¢ã‚¯ã‚»ã‚¹
    論ç†ã‚¢ãƒ‰ãƒ¬ã‚¹ã¨ãƒªãƒ‹ã‚¢ãƒ¼ã‚¢ãƒ‰ãƒ¬ã‚¹
  スタックセグメント内ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚¢ã‚¯ã‚»ã‚¹
  起動直後ã®ã‚»ã‚°ãƒ¡ãƒ³ãƒˆãƒ¬ã‚¸ã‚¹ã‚¿ãƒ¼ã®åˆæœŸåŒ–
スタック
  スタックã«ãƒ‡ãƒ¼ã‚¿ã‚’ç©ã¿ä¸Šã’ã‚‹
  スタックã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’下ã‚ã™
  ãã®ä»–ã®ã‚¹ã‚¿ãƒƒã‚¯ã®ä½¿ã„方(CALL命令)
ç”»é¢ã«æ–‡å—を表示ã™ã‚‹
  文å—を表示ã™ã‚‹
    INT 0x10(文å—表示処ç†ï¼‰ã®å¼•æ•°
  文å—を表示ã™ã‚‹
  文å—を表示ã™ã‚‹DisplayMessage関数ã®å‹•作
  EFLAGSレジスター
フãƒãƒƒãƒ”ーã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’èªã¿è¾¼ã‚€
  INT0x13命令ã®ãƒ•ãƒãƒƒãƒ”ãƒ¼ãƒ‰ãƒ©ã‚¤ãƒ–åˆæœŸåŒ–モード
  INT0x13命令ã®ã‚»ã‚¯ã‚¿èªã¿è¾¼ã¿ãƒ¢ãƒ¼ãƒ‰
LBA(Logical Block Addressing)
  LBAã‹ã‚‰ç‰©ç†ãƒ˜ãƒƒãƒ‰ç•ªå·ã«å¤‰æ›ã™ã‚‹
  LBAã‹ã‚‰ç‰©ç†ã‚·ãƒªãƒ³ãƒ€ãƒ¼ï¼ˆãƒˆãƒ©ãƒƒã‚¯ï¼‰ç•ªå·ã«å¤‰æ›ã™ã‚‹
  LBAã‹ã‚‰ç‰©ç†ã‚»ã‚¯ã‚¿ãƒ¼ç•ªå·ã«å¤‰æ›ã™ã‚‹
  アセンブラーã§LBAを物ç†ãƒ˜ãƒƒãƒ‰ç•ªå·ã€ã‚·ãƒªãƒ³ãƒ€ãƒ¼ï¼ˆã‚»ã‚¯ã‚¿ï¼‰ç•ªå·ã€ã‚»ã‚¯ã‚¿ãƒ¼ç•ªå·ã«å¤‰æ›ã—ã¦ã¿ã‚‹
    物ç†ã‚»ã‚¯ã‚¿ãƒ¼ç•ªå·ã®è¨ˆç®—
    物ç†ãƒ˜ãƒƒãƒ‰ç•ªå·ã®è¨ˆç®—
    物ç†ã‚·ãƒªãƒ³ãƒ€ãƒ¼ï¼ˆãƒˆãƒ©ãƒƒã‚¯ï¼‰ç•ªå·ã®è¨ˆç®—
    LBAè«–ç†ã‚»ã‚¯ã‚¿ãƒ¼2000ã‚’èªã¿è¾¼ã‚“ã§ã¿ã‚‹
FAT12ファイルシステãƒ
  FAT12ã®æ§‹é€
FATé ˜åŸŸ
  クラスター
  クラスター番å·ã®å½¹å‰²
  特殊ãªã‚¯ãƒ©ã‚¹ã‚¿ãƒ¼
  FATã§è¨˜éŒ²ã§ãるファイル
  FATã®äºˆå‚™
  FATé ˜åŸŸã®é–‹å§‹ã‚»ã‚¯ã‚¿ãƒ¼ã¨ã‚µã‚¤ã‚º
    FATé ˜åŸŸã®é–‹å§‹ã‚»ã‚¯ã‚¿ãƒ¼
    FATé ˜åŸŸã®ã‚µã‚¤ã‚º
  FAT12ã®ã‚¯ãƒ©ã‚¹ã‚¿ãƒ¼ç•ªå·ã®èªã¿æ–¹
  èªã¿å–ã£ãŸã‚¯ãƒ©ã‚¹ã‚¿ãƒ¼ç•ªå·ã‹ã‚‰ãƒ•ァイルã®ã‚»ã‚¯ã‚¿ãƒ¼ç•ªå·ã‚’計算ã™ã‚‹
  FATé ˜åŸŸã¾ã¨ã‚
ãƒ«ãƒ¼ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªé ˜åŸŸ
ã€€ã€€ãƒ«ãƒ¼ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªé ˜åŸŸã®é–‹å§‹ã‚»ã‚¯ã‚¿ã¨ã‚µã‚¤ã‚ºã‚’求ã‚ã‚‹
    ルートディレクトリã®é–‹å§‹ã‚»ã‚¯ã‚¿ãƒ¼ç•ªå·
    ルートディレクトリã®ã‚»ã‚¯ã‚¿ãƒ¼æ•°
  ルートディレクトリã‹ã‚‰èªã¿è¾¼ã¿ãŸã„ファイルåを探ã™
  目的ã®ãƒ•ァイルåã‚’æŒã¤ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‹ã‚‰ãƒ•ァイルã®é–‹å§‹ã‚¯ãƒ©ã‚¹ã‚¿ãƒ¼ç•ªå·ã‚’å–り出ã™
ãƒ•ã‚¡ã‚¤ãƒ«é ˜åŸŸ
ファイルã®èªã¿è¾¼ã¿
[2015/6/28]
誤å—ãŠã‚ˆã³ãƒ•ァイルèªã¿è¾¼ã¿ã«èª¬æ˜Žã‚’å°‘ã—è¿½åŠ ã—ã¾ã—ãŸã€‚
今回ã¯ã‚«ãƒ¼ãƒãƒ«ã‚’èªã¿è¾¼ã¿ãŸã‚ã®ãƒ–ートãƒãƒ¼ãƒ€ãƒ¼ã«ã¤ã„ã¦ï¼ã‹ã‚‰ä½œã£ã¦ã„ãã¾ã™ã€‚BIOSを利用ã—ãŸæ–‡å—ã®è¡¨ç¤ºã‚„フãƒãƒƒãƒ”ーディスクã‹ã‚‰ã®ãƒ•ァイルèªã¿è¾¼ã¿ã€FAT12ファイルシステムã®è§£é‡ˆã‚’説明ã—ã¦ã„ãã¾ã™ã€‚
ã€æ³¨æ„】本書ã®ãƒ–ートãƒãƒ¼ãƒ€ãƒ¼ã¯nasmã§ãƒ—ãƒã‚°ãƒ©ãƒ を行ã£ã¦ã„ã¾ã™ãŒã€ã‚¢ã‚»ãƒ³ãƒ–ãƒ©ãƒ¼ã®æ§‹æ–‡ãªã©ã¯è©³ç´°ã«èª¬æ˜Žã§ãã¦ãŠã‚Šã¾ã›ã‚“ã€‚åˆ¥é€”ã‚¢ã‚»ãƒ³ãƒ–ãƒ©ãƒ¼ã®æ–‡æ³•ãªã©ã‚’å¦ç¿’ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ã—ã‹ã—ã€æœ¬æ›¸ã‚’èªã‚€ã“ã¨ã§ãƒ–ートãƒãƒ¼ãƒ€ãƒ¼ã®åŸºæœ¬çš„ãªè¨è¨ˆã¯ã§ãるよã†ã«ãªã‚‹ã¨æ€ã„ã¾ã™ã€‚
[目次]
å‰å›žã¾ã§ã®å†…容
パソコンãŒèµ·å‹•ã—ã¦ã‹ã‚‰ã®å‡¦ç†æ¦‚è¦
  OSã‹ã‚‰åˆ©ç”¨ã§ãã‚‹BIOSã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェース処ç†
    割り込ã¿ãƒ™ã‚¯ã‚¿ãƒ¼ã¨ã¯ï¼Ÿ
  割り込ã¿å‡¦ç†ã‚’使ã£ã¦
  ã©ã“ã‹ã‚‰ãƒ–ートãƒãƒ¼ãƒ€ã‚’èªã¿è¾¼ã‚€ã®ã‹ï¼Ÿ
  セクターã¨ã¯ï¼Ÿ
  シリンダー(トラック)ã¨ã¯ï¼Ÿãƒ˜ãƒƒãƒ‰ã¨ã¯ï¼Ÿ
    ヘッドã¯
    シリンダー(トラック)ã¯
    セクタã¯
BIOSã®å‡¦ç†
  最åˆã®ã‚»ã‚¯ã‚¿ãƒ¼ã‚’èªã¿è¾¼ã‚€
  フãƒãƒƒãƒ”ーã®èªè¾¼å‡¦ç†
  割り込ã¿ãƒ™ã‚¯ã‚¿ã®25番目(0x19番目)
  アセンブラー言語ã«ã¤ã„ã¦
最åˆã®ãƒ–ートãƒãƒ¼ãƒ€ã‚’作ã£ã¦ã¿ã‚‹
  ブートãƒãƒ¼ãƒ€ãƒ¼ã‚’アセンブルã—ã¦ã¿ã‚‹
  フãƒãƒƒãƒ”ãƒ¼ãƒ‡ã‚£ã‚¹ã‚¯ã®æœ€åˆã®ã‚»ã‚¯ã‚¿ãƒ¼ã«æ›¸ã込む
  よã†ã‚„ãèµ·å‹•ã—ã¦ã¿ã‚‹
FAT12ファイルシステムã®ã•ã‚り
  FAT12ã®ãƒ–ートセクタ
  FA12ã®ãƒ–ートセクターを作ã£ã¦ã¿ã‚‹
リアルモードã«ã¤ã„ã¦å°‘ã—
16ビット?
レジスタ?
  汎用レジスター
  汎用レジスタã®ãã®ä»–ã®å½¹å‰²
セグメントレジスターã¨ãƒ¡ãƒ¢ãƒªãƒ¼ã‚¢ã‚¯ã‚»ã‚¹
  セグメントã¨ã¯
ã€€ã€€ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã®æŒ‡å®š
    セグメントã®é–‹å§‹ä½ç½®
  セグメントã®å¤§ãã•
  セグメントレジスターã®ç¨®é¡ž
  セグメントレジスターã¨ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã¨ã‚¢ã‚»ãƒ³ãƒ–ラー言語
  コードセグメント内ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚¢ã‚¯ã‚»ã‚¹
  データセグメント内ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚¢ã‚¯ã‚»ã‚¹
  セグメントã¨ã‚»ã‚°ãƒ¡ãƒ³ãƒˆå†…ã®ã‚¢ãƒ‰ãƒ¬ã‚¹
    ESã€FSã€GSレジスターã®ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã¸ã®ã‚¢ã‚¯ã‚»ã‚¹
    論ç†ã‚¢ãƒ‰ãƒ¬ã‚¹ã¨ãƒªãƒ‹ã‚¢ãƒ¼ã‚¢ãƒ‰ãƒ¬ã‚¹
  スタックセグメント内ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚¢ã‚¯ã‚»ã‚¹
  起動直後ã®ã‚»ã‚°ãƒ¡ãƒ³ãƒˆãƒ¬ã‚¸ã‚¹ã‚¿ãƒ¼ã®åˆæœŸåŒ–
スタック
  スタックã«ãƒ‡ãƒ¼ã‚¿ã‚’ç©ã¿ä¸Šã’ã‚‹
  スタックã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’下ã‚ã™
  ãã®ä»–ã®ã‚¹ã‚¿ãƒƒã‚¯ã®ä½¿ã„方(CALL命令)
ç”»é¢ã«æ–‡å—を表示ã™ã‚‹
  文å—を表示ã™ã‚‹
    INT 0x10(文å—表示処ç†ï¼‰ã®å¼•æ•°
  文å—を表示ã™ã‚‹
  文å—を表示ã™ã‚‹DisplayMessage関数ã®å‹•作
  EFLAGSレジスター
フãƒãƒƒãƒ”ーã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’èªã¿è¾¼ã‚€
  INT0x13命令ã®ãƒ•ãƒãƒƒãƒ”ãƒ¼ãƒ‰ãƒ©ã‚¤ãƒ–åˆæœŸåŒ–モード
  INT0x13命令ã®ã‚»ã‚¯ã‚¿èªã¿è¾¼ã¿ãƒ¢ãƒ¼ãƒ‰
LBA(Logical Block Addressing)
  LBAã‹ã‚‰ç‰©ç†ãƒ˜ãƒƒãƒ‰ç•ªå·ã«å¤‰æ›ã™ã‚‹
  LBAã‹ã‚‰ç‰©ç†ã‚·ãƒªãƒ³ãƒ€ãƒ¼ï¼ˆãƒˆãƒ©ãƒƒã‚¯ï¼‰ç•ªå·ã«å¤‰æ›ã™ã‚‹
  LBAã‹ã‚‰ç‰©ç†ã‚»ã‚¯ã‚¿ãƒ¼ç•ªå·ã«å¤‰æ›ã™ã‚‹
  アセンブラーã§LBAを物ç†ãƒ˜ãƒƒãƒ‰ç•ªå·ã€ã‚·ãƒªãƒ³ãƒ€ãƒ¼ï¼ˆã‚»ã‚¯ã‚¿ï¼‰ç•ªå·ã€ã‚»ã‚¯ã‚¿ãƒ¼ç•ªå·ã«å¤‰æ›ã—ã¦ã¿ã‚‹
    物ç†ã‚»ã‚¯ã‚¿ãƒ¼ç•ªå·ã®è¨ˆç®—
    物ç†ãƒ˜ãƒƒãƒ‰ç•ªå·ã®è¨ˆç®—
    物ç†ã‚·ãƒªãƒ³ãƒ€ãƒ¼ï¼ˆãƒˆãƒ©ãƒƒã‚¯ï¼‰ç•ªå·ã®è¨ˆç®—
    LBAè«–ç†ã‚»ã‚¯ã‚¿ãƒ¼2000ã‚’èªã¿è¾¼ã‚“ã§ã¿ã‚‹
FAT12ファイルシステãƒ
  FAT12ã®æ§‹é€
FATé ˜åŸŸ
  クラスター
  クラスター番å·ã®å½¹å‰²
  特殊ãªã‚¯ãƒ©ã‚¹ã‚¿ãƒ¼
  FATã§è¨˜éŒ²ã§ãるファイル
  FATã®äºˆå‚™
  FATé ˜åŸŸã®é–‹å§‹ã‚»ã‚¯ã‚¿ãƒ¼ã¨ã‚µã‚¤ã‚º
    FATé ˜åŸŸã®é–‹å§‹ã‚»ã‚¯ã‚¿ãƒ¼
    FATé ˜åŸŸã®ã‚µã‚¤ã‚º
  FAT12ã®ã‚¯ãƒ©ã‚¹ã‚¿ãƒ¼ç•ªå·ã®èªã¿æ–¹
  èªã¿å–ã£ãŸã‚¯ãƒ©ã‚¹ã‚¿ãƒ¼ç•ªå·ã‹ã‚‰ãƒ•ァイルã®ã‚»ã‚¯ã‚¿ãƒ¼ç•ªå·ã‚’計算ã™ã‚‹
  FATé ˜åŸŸã¾ã¨ã‚
ãƒ«ãƒ¼ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªé ˜åŸŸ
ã€€ã€€ãƒ«ãƒ¼ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªé ˜åŸŸã®é–‹å§‹ã‚»ã‚¯ã‚¿ã¨ã‚µã‚¤ã‚ºã‚’求ã‚ã‚‹
    ルートディレクトリã®é–‹å§‹ã‚»ã‚¯ã‚¿ãƒ¼ç•ªå·
    ルートディレクトリã®ã‚»ã‚¯ã‚¿ãƒ¼æ•°
  ルートディレクトリã‹ã‚‰èªã¿è¾¼ã¿ãŸã„ファイルåを探ã™
  目的ã®ãƒ•ァイルåã‚’æŒã¤ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‹ã‚‰ãƒ•ァイルã®é–‹å§‹ã‚¯ãƒ©ã‚¹ã‚¿ãƒ¼ç•ªå·ã‚’å–り出ã™
ãƒ•ã‚¡ã‚¤ãƒ«é ˜åŸŸ
ファイルã®èªã¿è¾¼ã¿
[2015/6/28]
誤å—ãŠã‚ˆã³ãƒ•ァイルèªã¿è¾¼ã¿ã«èª¬æ˜Žã‚’å°‘ã—è¿½åŠ ã—ã¾ã—ãŸã€‚

