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
51
セグメントとターゲットを意識するプロポーザルの書き方 〜採択の鍵は、誰に刺すかを見極めるマーケティング戦略にある〜
m3m0r7
PRO
1
1.1k
PHP で mp3 プレイヤーを実装しよう
m3m0r7
PRO
0
480
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
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
3
790
AI時代に設計が 最大の生産性レバーになる 意図駆動開発とデータを消さない設計|Don't Delete Your Data or Your Intent — Design as the Deepest Lever in the AI Era
tomohisa
1
860
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
460
数百円から始めるRuby電子工作
tarosay
0
150
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
500
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
490
仕様駆動開発の消費期限
watany
20
8.3k
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.6k
Built Our Own Background Agent at LayerX
layerx
PRO
10
5.5k
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
140
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
150
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
360
Featured
See All Featured
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
56k
Abbi's Birthday
coloredviolet
3
9.3k
Deep Space Network (abreviated)
tonyrice
0
260
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
490
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
How to build a perfect <img>
jonoalderson
1
5.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
430
Mind Mapping
helmedeiros
PRO
1
310
Music & Morning Musume
bryan
47
7.3k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Why Our Code Smells
bkeepers
PRO
340
58k
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