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
550
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
pnl で簡易的に作る PHP ネイティブアプリケーション
m3m0r7
PRO
0
46
セグメントとターゲットを意識するプロポーザルの書き方 〜採択の鍵は、誰に刺すかを見極めるマーケティング戦略にある〜
m3m0r7
PRO
1
1.1k
PHP で mp3 プレイヤーを実装しよう
m3m0r7
PRO
0
470
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
240
AI 時代だからこそ学ぶべき PHP の基礎
m3m0r7
PRO
7
2.5k
JVM の仕組みを理解して PHP で実装してみよう
m3m0r7
PRO
1
640
コードゴルファー道
m3m0r7
PRO
0
660
事業観点から見る技術的負債の返済
m3m0r7
PRO
4
1.3k
PHP でアセンブリ言語のように書く技術
m3m0r7
PRO
1
310
Other Decks in Programming
See All in Programming
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
100
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
210
GDG Korea Android: 2026 I/O Extended ~ What's new in Android development tools
pluu
0
220
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
1.4k
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
630
Cloudflare is Agents
chimame
0
150
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
180
継続モナドとリアクティブプログラミング
yukikurage
3
700
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
210
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
140
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.6k
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
180
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
3.1k
Building Adaptive Systems
keathley
44
3.2k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
760
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
How GitHub (no longer) Works
holman
316
150k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
950
Visualization
eitanlees
152
17k
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