Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ChatGPT とつくる PHP で OS 実装
Search
memory
PRO
December 22, 2024
Programming
3
240
ChatGPT とつくる PHP で OS 実装
PHP Conference Japan 2024
memory
PRO
December 22, 2024
Tweet
Share
More Decks by memory
See All by memory
コードゴルファー道
m3m0r7
PRO
0
300
事業観点から見る技術的負債の返済
m3m0r7
PRO
4
1.1k
PHP でアセンブリ言語のように書く技術
m3m0r7
PRO
1
220
PHP でアセンブリっぽく書く技術
m3m0r7
PRO
1
140
How to implement a RubyVM with PHP?
m3m0r7
PRO
3
2.7k
二郎系ラーメンのコールで学ぶ AST 解析
m3m0r7
PRO
8
2.7k
RubyVM を PHP で実装する 〜Hello World を出力するまで〜
m3m0r7
PRO
1
870
令和最新版 PHP メモリ管理術
m3m0r7
PRO
7
4.6k
技術的負債が生まれる背景を理解して,アーリーからレイター向けの根本的なアプローチを考える
m3m0r7
PRO
23
9.3k
Other Decks in Programming
See All in Programming
Flutterでllama.cppをつかってローカルLLMを試してみた
sakuraidayo
0
140
Embracing Ruby magic
vinistock
2
230
KANNA Android の技術的課題と取り組み
watabee
1
450
JAWS DAYS 2025 re_Cheers: WEB
komakichi
0
110
生成AIで知るお願いの仕方の難しさ
ohmori_yusuke
1
120
20250429 - CNTUG Meetup #67 / DevOps Taiwan Meetup #69 - Deep Dive into Tetragon: Building Runtime Security and Observability with eBPF
tico88612
0
180
By the way Google Cloud Next 2025に行ってみてどうだった
ymd65536
0
130
生成AI時代のフルスタック開発
kenn
3
390
ウォンテッドリーの「ココロオドル」モバイル開発 / Wantedly's "kokoro odoru" mobile development
kubode
2
520
Laravel × Clean Architecture
bumptakayuki
PRO
0
150
M5UnitUnified 最新動向 2025/05
gob
0
140
バイラテラルアップサンプリング
fadis
3
480
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
A Tale of Four Properties
chriscoyier
159
23k
Scaling GitHub
holman
459
140k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
A Modern Web Designer's Workflow
chriscoyier
693
190k
The Cost Of JavaScript in 2023
addyosmani
49
7.8k
Optimising Largest Contentful Paint
csswizardry
37
3.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
Site-Speed That Sticks
csswizardry
6
540
Building a Modern Day E-commerce SEO Strategy
aleyda
40
7.2k
Transcript
ΊΓʔ $IBU(15ͱͭ͘Δ 1)1Ͱ04࣮ 1)1ΧϯϑΝϨϯε 1
ΊΓʔ NNS ෳͷϕϯνϟʔاۀελʔτΞοϓاۀɼ ্اۀͰιϑτΣΞΤϯδχΞ$50ͱ ͯ͠׆ಈɻ ݄ʹגࣜձࣾϋςϨϏδϣϯʹೖ ࣾ͠ɺࢠձࣾͷ-JJHBגࣜձࣾ$50ʹबɻ ಉ݄ʹגࣜձࣾϋςϨϏδϣϯ$50 ʹबɻ 2
NFNPSZ NNS
3 NEW!
04ͷಈ͘Έ $IBU(15Ͱ͓ࢼ͠ 1)1ͰͲ͏ͬͯ࡞Δͷʁ %&.0 4 ͘͡
1)1Ͱ04Λ࡞Δʹ͋ͨΓҎԼΛ ࢀߟʹ͠·ͨ͠ 5 OS ͦͷͷͷ࡞Γํ OS ͮ͘ΓʹඞཁͳΞηϯϒϦɾCPU ͷࣝ
6
˞ղઆ͢Δ༰$IBU(15Ͱ ֶΜͩࣝͰ͢ 7
04ͷಈ͘Έ 8
04ͱ 0QFSBUJOH4ZTUFN ΦϖϨʔςΟϯάγεςϜ ͷ͜ͱ 8JOEPXT -JOVY NBD04ͳͲͳͲ
ͳΜ͔͍͍ײ͡ʹιϑτΣΞͱϋʔυΛܨ͍Ͱ͘ΕΔͭ 9 04ͷಈ͘Έ
04ͷಈ͘Έ جຊతʹ#*04ʢ#BTJD*OQVU0VUQVU4ZTUFNʣʹઃஔ͞ΕͨCZUFTͰ ॻ͔Εͨϒʔτϩʔμʔ͔Β͍ΖΜͳͷΛىಈ४උΛ͢Δ CJUTQSPUFDUJPONPEFͷҠߦʢCJU͔ΒCJUͷҠߦͳͲʣ ωοτϫʔΫɼ$16ɺ64#ϞχλͷଓͳͲ֎෦ͷσόΠεͱͷ௨৴ ˞6&'*ʢ6OJ
fi FE&YUFOTJCMF'JSNXBSF*OUFSGBDFʣͳͲ͋Γ·͢ 10 04ͷಈ͘Έ
04ͷಈ͘Έ ࠓճखܰʹ࣮͢ΔͨΊʹ6&'*Ͱͳ͘#*04Ͱಈ͘͜ͱΛલఏͱ͠·͢ɻ׳Εͯ ͖ͨΓࢲ͕ࢀߟʹ͍ͯ͠ΔจݙͰɼ6&'*Ͱղઆ͓ͯ͠Γ·͕͢ʜɻ ϒʔτϩʔμʔʢ.#3ʣʹࡌͤΒΕΔͷCZUFTͰ͕͢ɼ͔͜͜ΒଞͷσΟεΫ ͷը૾ΛಡΈࠐΜͰϝϞϦʹॻ͖ࠐΜͩΓɼωοτϫʔΫͱଓͨ͠ΓͳͲɼ༷ʑͳ͜ ͱΛ͍ͯ͘͠ඞཁ͕͋Γ·͢ɻ ಛʹϏοτϦΞϧϞʔυͱݺΕΔঢ়ଶ͔ΒϏοτϓϩςΫγϣϯϞʔυʢ· ͨʣʹҠߦ͢Δඞཁ͕͋Γ·͢ɻ
11 04ͷಈ͘Έ
04ͷಈ͘Έ ϓϩςΫγϣϯϞʔυϝϞϦͷอޢͰ͋ͬͨΓɼγεςϜͷ҆શੑΛ୲อ͢ΔͨΊʹ ಛݖϨϕϧͳͲ͕༻ҙ͞Ε͍ͯ·͢ɻ ϦΞϧϞʔυͰϞχλʢϏσΦʣؚΊͨσόΠεʹΞΫηεͰ͖ΔͳͲɼڧ͍ݖ ݶΛ͍࣋ͬͯ·͢ɻ ͦͷͨΊɼϋʔυΣΞʹଓ͢ΔࡍʹϦΞϧϞʔυͱϓϩςΫγϣϯϞʔυΛߦ͖ དྷͨ͠Γ͠·͢ɻ
12 04ͷಈ͘Έ
*OUFMYΞʔΩςΫνϟ ࡐʹ͍͢͠ͷ*OUFMYΞʔΩςΫνϟ ͍ΖΜͳࢿྉ͕Σϒ্ʹެ։͞Ε͍ͯΔͷ Ͱɼ$IBU(15Ͱෆ͍ͯ͠ΔใͳͲΛूΊ ͍͢ ͦͷͨΊɼॳֶͰೖ͍͢͠ͷ͕*OUFM YΞʔΩςΫνϟͰ͢
13 04ͷಈ͘Έ
ΞηϯϒϦͷछྨ ΞηϯϒϦʹ࣮༷ʑͳํݴ͕͋Γ·͢ɻͦΕͦ͜*OUFMYΞʔΩςΫνϟ͔Ͳ͏ ͔ʹΑͬͯมΘΓ·͢ɻ ࠓճ*OUFMY͓ΑͼY͚ͰΑ͘ΘΕΔͰ͋Ζ͏/"4. /FUXJEF "TTFNCMFS Ͱղઆ͠·͢ɻ 14
04ͷಈ͘Έ
$IBU(15Ͱ͓ࢼ͠ 15
ຊಡΜ͚ͩͲΑ͘Θ͔ΒΜʜ 16
ͦ͏ͩ$IBU(15ʹฉ͜͏ʂ 17
18
19
ͳΜͱग़ͩ͠ͷ෦ڭ͑ͯ͘Ε·͢ 20
ڭ͑ͯ͘ΕͨΓํͰ ͱΓ͋͑ͣͬͯΈ·͠ΐ͏ 21
·ͣOBTNͱRFNVΛΠϯετʔϧ͠·͢ 22
23
ઌ΄ͲͷίʔυΛCPPUMPBEFSBTNͱͯ͠ อଘ͠·͢ 24
25
$IBU(15ͷͱ͓ΓʹίϚϯυΛ࣮ߦ͠·͢ 26
27
28
RFNVͰ)FMMP8PSME͕ىಈͰ͖·ͨ͠ʂ 29
1)1ͰͲ͏ͬͯ࡞Δͷʁ 30
1)1Ͱͷ࡞Γํʹෳ͋Γ·͢ 31
όΠφϦΛͦͷ··ॻ͘ 1)1ΛΞηϯϒϦʹ͢ΔίϯόʔλΛ࡞Δ $ݴޠͰ࡞ͬͨͷΛ1)1''*Λͬͯ࡞Δ 32 1)1Ͱ࡞Δํ๏
શ෦ָͦ͠͏͡Όͳ͍Ͱ͔͢ʁ 33
ͨͩ࣌ؒ༗ݶͳͷͰࠓճʜ 34
όΠφϦΛͦͷ··ॻ͘ 1)1ΛΞηϯϒϦʹ͢ΔίϯόʔλΛ࡞Δ $ݴޠͰ࡞ͬͨͷΛ1)1''*Λͬͯ࡞Δ 35 1)1Ͱ࡞Δํ๏
όΠφϦΛͦͷ··ॻ͘ख๏Ͱղઆ͠·͢ 36
όΠφϦΛͦͷ··ॻ͘ 37
όΠφϦΛ͘ 38 όΠφϦΛͦͷ··ॻ͘
όΠφϦΛ͘ 39 όΠφϦΛͦͷ··ॻ͘ xxd ίϚϯυͰઌ΄Ͳ nasm Ͱੜͨ͠ bootloader.bin Λ͍ͯΈ·͢
όΠφϦΛ͘ 40 όΠφϦΛͦͷ··ॻ͘ ʮHello, World!ʯͱ͍͏୯ޠ͕ݟ͑·͢Ͷʂ
όΠφϦΛ͘ 41 όΠφϦΛͦͷ··ॻ͘ ʮHello, World!ʯͱ͍͏୯ޠ͕ݟ͑·͢Ͷʂ 512 όΠτʹͳΔΑ͏ʹθϩϑΟϧ͞Ε͍ͯ·͢
όΠφϦΛ͘ 42 όΠφϦΛͦͷ··ॻ͘ 512όΠτͷ࠷ޙʹ 0x55, 0xAA Ͱϒʔτϩʔμͷ ऴΘΓΛࣔͯ͋͛͠ΒΕͯ·͢
όΠφϦΛ͘ 43 όΠφϦΛͦͷ··ॻ͘ Φϖίʔυ B4 (mov ah, xxx) Φϖϥϯυ (0x0E)
ΦϖίʔυͱΦϖϥϯυͬͯʁ 44
ΦϖίʔυͱΦϖϥϯυͬͯʁ ΦϖίʔυؔΛࣈͰදͨ͠ͷɼΦϖϥϯυҾͱ֮͑ͯΒ͑Α ͍Ͱ͢ɻ *OUFMYΞʔΩςΫνϟγϣʔτΧοτͷΑ͏ͳΦϖίʔυ͕ଟ͍Ͱ͢ɻ ϒʔτϩʔμʔͰCZUFT͔͑͠ͳ͍ͷͰɼඞવͱ͍͑ඞવͰ͕͢ɻ ઌ΄ͲͷྫͰNPWBI YYYNPWBI·ͰΛηοτͱͨ͠#ͱ͍͏
ΦϖίʔυʹͳΓ·͢ɻ 45 όΠφϦΛͦͷ··ॻ͘
ઌ΄ͲͷίʔυΛΦϖίʔυͱΦϖϥϯυͰ දͯ͠Έ·͠ΐ͏ 46
47 B4, 0E ah ax ͷ্Ґχϒϧ (্Ґ 4 bit)ʢh
= highʣɼ al ԼҐχϒϧ (ԼҐ 4bit) Ͱ͢ (l = low)
48 BE, 0F 7C (0F 7C offset)
49 AC
50 3C, 00
51 74, 04 (04 Φϑηοτ)
52 CD, 10
53 EB, F7 (F7 Φϑηοτ)
54 F4
55 48ʙ21 ·Ͱ ʢmessage ΦϑηοτΛࣔ͢ͷͰ ίϯύΠϧ࣌ʹফ͑·͢ʣ
56 512 - ݱࡏͷҐஔ - 2 ΛθϩϑΟϧ (γάωνϟΛҾ͍ͨ)
57 55 AA Λॻ͖ࠐΈ (ϦτϧΤϯσΟΞϯͳͷͰٯ)
͜ΕΛ1)1ͰදͤΒΕΕྑͦ͞͏ʂ 58
59
60
61
)FMMP8PSMEΛ"DBUTBZT.FPXʹ ஔ͖͑ͯΈ·͠ΐ͏ʂ 62
63 "A cat says \"Meow\"\x00" ʹ
64 ग़ྗ݁Ռ͕มΘ͍ͬͯΔ͜ͱ͕ Θ͔Γ·͢Ͷʂ
ݱঢ়ͩͱKNQ໋ྩͳͲͷΦϖϥϯυͷ ΦϑηοτΛݻఆͰೖΕ͍ͯΔͷͰɼ ࣗಈͰܭࢉ͢Δඞཁ͕͋Γ·͢ 65
ͱ͍͏͜ͱͰ04Λ࡞Δʹ ͜ΕΛίπίπΕ͍͍ͷͰ͢ 66
Θ͔Βͳ໋͍ྩ͕͋Εʜ 67
68
$IBU(15͕ڭ͑ͯ͘Ε·͢ 69
ϏσΦϝϞϦΞυϨε 70
#*04ͷը໘Ͱͳ͘Կ͔Λදࣔ͢Δը໘Λ ࣮͢ΔʹɼϏσΦϝϞϦͷॻ͖ࠐΈ͕ ඞཁͰ͢ 71
72
73
ྫ͍͍ײ͡ʹͩͯ͘͠ΕΔͷͰ ͜ΕΛͦͷ··ίϐʔ࣮ͯ͠ߦͯ͠Έ·͢ 74
75
ͦΕͧΕΦϖίʔυΛදʹͯ͠Β͍ 1)1Ͱॻ͖ͯ͠Έ·͠ΐ͏ 76
77
$IBU(15εήʔʂ 78
%&.0 79
ʮ1)1ΛΞηϯϒϦʹ͢ΔίϯόʔλΛ࡞Δʯ ख๏Ͱ࡞ͬͨ044͕͋Γ·͢ 80
IUUQTHJUIVCDPNNNSQIQPT 81
%&.0 82
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ 83