Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ファイルシステムの歴史: ジャーナリング編
Search
naota
February 14, 2015
Technology
1.1k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ファイルシステムの歴史: ジャーナリング編
naota
February 14, 2015
More Decks by naota
See All by naota
btrfs領域管理一代記
naota
2
1.3k
DockerでGentooのテスト
naota
3
1.9k
Btrfsのころしかた(だったもの)
naota
0
1.1k
Btrfsの構造
naota
5
2.9k
Other Decks in Technology
See All in Technology
ウォンテッドリーの最近のプロダクトと技術の紹介
stomk
0
330
価値について
gree_tech
PRO
0
140
Refining Active Record
shugo
0
190
Optunaの最新リリースv5.0について
pfn
PRO
0
140
ソフトウェア ファクトリー - 再現性のあるソフトウェアの工場づくり / Software factory
iktakahiro
7
5.3k
Gemini Intelligence 入門 ― AppFunctions と Gemini Nano
takuroabe
0
350
CloudWatch Logsのコスト最適化:どこまでAIに任せてどこから人間が承認すべきか
yama3133
0
160
小規模OSSモデルは サイバーセキュリティ業務に どこまで使えるか
bbrbbq
0
170
CTO Night|NotionのAIエージェントとFDE
kzkhykw1991
0
300
オントロジーって 結局なにもの? AI エージェントに「意味」を渡す知識設計の話
greenmidori
0
260
生成AI時代、PMは事業責任者に進化するともっと面白い〜PMだからこそ事業構造を動かせる時代に〜
kakehashi
PRO
0
240
アカウント統制の健康診断
kenichinakamura
1
120
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
260
Thoughts on Productivity
jonyablonski
76
5.4k
Color Theory Basics | Prateek | Gurzu
gurzu
1
490
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
590
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Discover your Explorer Soul
emna__ayadi
2
1.3k
What does AI have to do with Human Rights?
axbom
PRO
1
2.5k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.9k
We Have a Design System, Now What?
morganepeng
55
8.4k
Transcript
ϑΝΠϧγεςϜͷྺ࢙: δϟʔ φϦϯάฤ Naohiro Aota (@naota344)
ࣗݾհ ໊લ: ੨ాେ ͓͋ͨͳ͓ͻΖ @naota344 ܚጯٛक़େֶͰϑΝΠϧγεςϜͷݚڀ Gentoo ίϛολ झຯ: FS
Λյͨ͠ਓͷإ͕ݟ͍ͨ
࠷ۙͷ͜ͱ: btrfsck Λ͔͚ͯͨ
ࡢ btrfsck ͷதͷਓ͔ Βϝʔϧ͕དྷͨ
ࡢ btrfsck ͷதͷਓ͔ Βϝʔϧ͕དྷͨ ۙ patch ͕ߘ༧ఆ! ͩͦ͏Ͱ͢
ຊͷ͓ δϟʔφϦϯάͷྺ࢙
δϟʔφϦϯά ͖ͯͱʔʹ FS ʹॻ͘ͱ FS յΕΔ Ұ؏ੑΛ࣋ͬͯॻ͖͘มߋ͕த్ʹͳͬ ͯյΕΔ δϟʔφϦϯά ҰδϟʔφϧྖҬʹ͜Ε͔Βॻ͘༰Λࣄલ
ʹॻ͘ δϟʔφϧॻ͖ऴΘΔ -> ຊମʹॻ͖͜Έ ్தͰࢮΜͰେৎ ͍ΘΏΔ write-ahead-logging
δϟʔφϦϯάॳग़ Reimplementing the Cedar file system using logging and group
commit Robert Hagmann Xerox PARC 1987 Dorado, Dandelion ্Ͱಈ͍͍ͯͨ Cedar Λ Dragon ʹҠ২͢Δʹ͋ͨͬͯʮδϟʔφϦϯάʯ ͕Ճ͞Εͨ
Cedar, Dorado, Dandelion, Dragon Cedar ϓϩάϥϛϯάݴޠͷ໊લ ͔ͭ, Cedar ͕ಈ࡞͢Δʮϓϩάϥϛϯάڥʯ ͷ໊લ
Dorado, Dandelion D-Machine, Lisp Ϛγϯ Dorado 24bit ͱ͍͏ large virtual address space 1024x808 ͷ large Ͱ high-resolution ͳനࠇσΟε ϓϨΠ ࠷େ 32MB ͷཧσΟεΫ
લδϟʔφϦϯά࣌: TridentσΟε Ϋ Dorado, Dandelion Trident σΟεΫΛ༻ http://www.computerhistory.org/ collections/catalog/102681543
Image courtesy of Computer History Museum
TridentσΟεΫ Trident disk for the Alto (1979) Trident σΟεΫͷඪ४తͳϑΥʔϚοτ͕ॻ͍ ͍ͯΔ
֤τϥοΫ (10080 words) = 9 ηΫλ x 1120 words ηΫλ͕ 3 ͭͷ෦ʹ͚ΒΕΔ ϔομ (2 words) ͦͷηΫλͷσΟεΫΞυϨε͕ॻ͍ͯ͋Δ ίϯτϩʔϥ͕ݕࠪ͢Δ ϥϕϧ (10 words) store file dependent information σʔλຊମ (1024 words) ֤ηΫλʹʮϥϕϧʯ͕͚ΒΕΔ
δϟʔφϦϯάҎલͷCedar File Name Table B-tree FS ্ͷશͯͷ file ͷ໊લͱ
header ใΛอ࣋ ϥϕϧΛ༻͍ͨҰ؏ੑอূ uid, page number page type (header, free, data) ͕ه͞ΕΔ
FSD (File System for Dragon)
ͦͷଞ ࠓ FS յΕͯͳ͍͚Ͳɺ εϥΠυॻ ͨ͘Ίͷ Emacs ͕ SEGV Ͱىಈ͠ͳ
͔ͬͨΓɺԿ࿈ଧͯͨ͠Βٸʹىಈ ͯ͠Έ͍ͨͳײ͡ʹͳΓ·ͨ͠
ͳΜͰ? emacs/src/xfns.c XGetICValues X ͷ input context ͷใͱͬͯ͘Δ Τϥʔͩͱ࠷ॳͷͱΕͳ͔ͬͨଐੑ໊͕ฦΔ attr
= XVaCreateNestedList (0, XNAreaNeeded, &needed, NULL); XGetICValues (xic, XNStatusAttributes, attr, NULL); XFree (attr); if (needed->width == 0) { attr = XVaCreateNestedList (0, XNArea, &needed, NULL); XGetICValues (xic, XNStatusAttributes, attr, NULL); XFree (attr); } ʜ XFree (needed); <- ͜͜ͰࢮΜͰΔ
ͦΓΎʔ͠ΐΜ ͳΜͰଐੑऔಘΤϥʔʹͳͬͯͨ? imsettings ͷ͍ͤͬΆ͍: imsettings = ͍ΖΜͳ IM ͷڞ௨ϨΠϠʹ͓Ε͕ͳΔ! uim
ͱ͔ fcitx Λಈతʹม͑ΒΕΔͥ! ͦΓΎʔ͠ΐΜ XMODIFIERS=@im=fcitx emacs XMODIFIERS= emacs
·ͱΊ δϟʔφϦϯάͷΛੲ͔Βࠓ·Ͱͬ͘͞ͱ ͨ͠ imsettings ͩΊͩ