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
520
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ChatGPT とつくる PHP で OS 実装
PHP Conference Japan 2024
memory
PRO
December 22, 2024
More Decks by memory
See All by memory
セグメントとターゲットを意識するプロポーザルの書き方 〜採択の鍵は、誰に刺すかを見極めるマーケティング戦略にある〜
m3m0r7
PRO
1
970
PHP で mp3 プレイヤーを実装しよう
m3m0r7
PRO
0
430
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
210
AI 時代だからこそ学ぶべき PHP の基礎
m3m0r7
PRO
7
2.5k
JVM の仕組みを理解して PHP で実装してみよう
m3m0r7
PRO
1
610
コードゴルファー道
m3m0r7
PRO
0
620
事業観点から見る技術的負債の返済
m3m0r7
PRO
4
1.3k
PHP でアセンブリ言語のように書く技術
m3m0r7
PRO
1
280
PHP でアセンブリっぽく書く技術
m3m0r7
PRO
1
190
Other Decks in Programming
See All in Programming
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.5k
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
150
これからAgentCoreを触る方へトレンドはGatewayです
har1101
6
430
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
15
8k
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
4.6k
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
140
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
610
Agentic UI
manfredsteyer
PRO
0
200
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
250
Vite+ Unified Toolchain for the Web
naokihaba
0
370
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
1
580
Featured
See All Featured
A Tale of Four Properties
chriscoyier
163
24k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.6k
Building an army of robots
kneath
306
46k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
260
Large-scale JavaScript Application Architecture
addyosmani
515
110k
The agentic SEO stack - context over prompts
schlessera
0
830
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
WENDY [Excerpt]
tessaabrams
11
38k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Producing Creativity
orderedlist
PRO
348
40k
Bash Introduction
62gerente
615
220k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
620
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