Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ファイルシステムの歴史: ジャーナリング編

naota
February 14, 2015

ファイルシステムの歴史: ジャーナリング編

naota

February 14, 2015

Transcript

17 slides
  1. δϟʔφϦϯάॳग़ Reimplementing the Cedar file system using logging and group

    commit Robert Hagmann Xerox PARC 1987 ೥ Dorado, Dandelion ্Ͱಈ͍͍ͯͨ Cedar Λ Dragon ʹҠ২͢Δʹ͋ͨͬͯʮδϟʔφϦϯάʯ ͕௥Ճ͞Εͨ
  2. Cedar, Dorado, Dandelion, Dragon Cedar ϓϩάϥϛϯάݴޠͷ໊લ ͔ͭ, Cedar ͕ಈ࡞͢Δʮϓϩάϥϛϯά؀ڥʯ ͷ໊લ

    Dorado, Dandelion D-Machine, Lisp Ϛγϯ Dorado 24bit ͱ͍͏ large virtual address space 1024x808 ͷ large Ͱ high-resolution ͳനࠇσΟε ϓϨΠ ࠷େ 32MB ͷ෺ཧσΟεΫ
  3. 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) ֤ηΫλʹʮϥϕϧʯ͕෇͚ΒΕΔ
  4. δϟʔφϦϯάҎલͷCedar File Name Table ͸ B-tree FS ্ͷશͯͷ file ͷ໊લͱ

    header ৘ใΛอ࣋ ϥϕϧΛ༻͍ͨҰ؏ੑอূ uid, page number page type (header, free, data) ͕ه࿥͞ΕΔ
  5. ͦͷଞ ࠓ೔͸ FS յΕͯͳ͍͚Ͳɺ εϥΠυॻ ͨ͘Ίͷ Emacs ͕ SEGV Ͱىಈ͠ͳ

    ͔ͬͨΓɺԿ౓΋࿈ଧͯͨ͠Βٸʹىಈ ͯ͠Έ͍ͨͳײ͡ʹͳΓ·ͨ͠
  6. ͳΜͰ? 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); <- ͜͜ͰࢮΜͰΔ
  7. ͦΓΎʔ͠ΐΜ ͳΜͰଐੑऔಘΤϥʔʹͳͬͯͨ? imsettings ͷ͍ͤͬΆ͍: imsettings = ͍ΖΜͳ IM ͷڞ௨ϨΠϠʹ͓Ε͕ͳΔ! uim

    ͱ͔ fcitx Λಈతʹม͑ΒΕΔͥ! ͦΓΎʔ͠ΐΜ XMODIFIERS=@im=fcitx emacs XMODIFIERS= emacs

More Decks by naota

Other Decks in Technology