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

OSSに新機能を追加するまでの苦労話

Masahiro331
December 01, 2022
93

 OSSに新機能を追加するまでの苦労話

作成時間2時間の書き殴りパワポです

Masahiro331

December 01, 2022
Tweet

Transcript

  1. .BTBIJSP'VKJNVSB
    044ʹ৽ػೳΛ௥Ճ͢Δ·Ͱͷ
    ۤ࿑࿩

    View full-size slide

  2. ࠷ॳʹ
    w ͢Έ·ͤΜλΠτϧ࠮ٗʹͳΓ·ͨ͠ɻ

    ʢ044ʹ৽ػೳΈ͍ͨͳந৅తͳ࿩Ͱ͸ͳ͘ී௨ʹԾ૝Ϛγϯͷ੬ऑੑݕ஌
    Λ࣮૷͢Δۤ࿑࿩ʹͳΓ·ͨ͠ɻʣ

    View full-size slide

  3. ֓ཁ
    w جૅ࣮૷ΛؚΊͯɺۤઅ೥Ҏ্͔͚ͨػೳ͕ϦϦʔε͞ΕͨͷͰɺͦͷۤ࿑
    ͱֶͼʹ͍ͭͯ࿩͠·͢ɻ
    w લճͷࢿྉͱ͢͜͠ඃΔ෦෼͕͋Γ·͕͢ɺٕज़తͳ࿩͸༨Γ͠·ͤΜ
    લճͷࢿྉ

    View full-size slide

  4. ఻͍͑ͨ͜ͱ
    օ༷ʹͱͬͯ͸ׂͱ౰ͨΓલͷ͜ͱͰ͕͢ʜ
    w ະ஌ͷϞϊΛ୳ࡧతʹཧղ͍ͯ͘͠ํ๏
    w ࢓༷ॻΛಡΈͳ͕Β࣮૷͢Δ͜ͱͷ೉͠͞
    w طଘίʔυΛௐࠪ͠ཧղ͢Δ͜ͱͷॏཁੑ
    w ༗ࣝऀʹཔΔ͜ͱ
    w Ұੜ࢖Θͳ͍ͱࢥͬͨ஌͕ࣝੜ͖Δࣄ

    View full-size slide

  5. എܠ
    w ࡢ೔ɺ5SJWZʢ044ͷηΩϡϦςΟπʔϧʣʹ7.ͷ੬ऑੑݕ஌Λ௥Ճͨ͠
    w Ұࡢ೥4FD)BDLͱ͍͏औΓ૊ΈͰ্هͷجૅݚڀΛ͍ͯͨ͠

    View full-size slide

  6. ࡞ͬͨ΋ͷͷσϞ

    View full-size slide

  7. େࣄͳͷͰΞʔΩςΫνϟ͚ͩషΔ
    ࠷ऴతͳΞʔΩςΫνϟ͸4FFLͰ࣮૷

    View full-size slide

  8. ࠓ೔ͷ͓࿩ͷྲྀΕ
    w ৽ػೳΛ࡞Δมભʹ͍ͭͯɺ͍͔ͭ͘ͷ࣌ظʹ෼ׂͯ͠࿩͠·͢
    w ͱʹ͔͘΍ͬͯΈΔظ
    w ఀ଺ظ
    w ໎૸ظ
    w ࡞ΓࠐΈظ

    View full-size slide

  9. ͱʹ͔͘΍ͬͯΈΔظ
    w 4FD)BDLͱ͍͏ػձΛ࡞Γ࣮૷ʹྭΉ
    w ΍ͬͨ͜ͱ
    w 7.%,ͷղੳ
    w .#3(15ͷղੳ
    w &95ͷղੳ

    View full-size slide

  10. 7.%,ͷղੳ
    w ౰࣌ಡΜͩ͜ͱ͋Δ࢓༷ॻͱ͍͑͹ɺΈΜͳେ޷͖3'$
    w όΠφϦͳΜͯ΋ͷ͸ɺ΄΅ಡΜͩ͜ͱͳ͍
    w ͱʹ͔͘࢓༷ॻΛಡΈͭͭΤεύʔͰ࣮૷͍ͯͨ͠

    View full-size slide

  11. 7.%,ͷղੳʢֶͼʣ
    3'$͔͠ಡΜͩ͜ͱͷͳ͍๻͕ظ଴͢Δ࢓༷ॻ
    ͱʹ͔͘࢓༷ॻʹॻ͍ͯͳ͍͜ͱ͕ଟ͍
    ࢓༷ॻ" ࢓༷ॻ#
    લఏͱͳΔٕज़
    લఏͱͳΔٕज़΍༻ޠʹΞΫηεͰ͖Δ஌ࣝͷ
    πϦʔ͕͋Δ

    View full-size slide

  12. 7.%,ͷղੳʢֶͼʣ
    7.%,ͷ࢓༷ॻ
    ͱʹ͔͘࢓༷ॻʹॻ͍ͯͳ͍͜ͱ͕ଟ͍
    ࣮ࡍʹඞཁͳ஌ࣝ ެ։͞Ε͍ͯΔ࢓༷ॻ
    લఏͱͳΔٕज़΍༻ޠʹΞΫηεͰ͖ͳ͍ͨΊ
    ೝ஌΋Ͱ͖ͳ͍
    Ұൠతͳ࢓༷ͷ৔߹ɺ҉໧తʹͳΓ͕ͪ

    View full-size slide

  13. 7.%,ͷղੳʢֶͼʣ
    ΤεύʔΫΠζʢޙ೔࢓༷ॻΛΑ͘ಡΉͱॻ͍ͯͨ൓লʣ
    (SBJO%JSFDUPSZͱݺ͹ΕΔ͜ͷόΠφϦྻ͸ԿΛද͍ͯ͠ΔͰ͠ΐ͏ʂ
    w(SBJO͸ѹॖ͞Εͨσʔλͷஅย
    w(5&ͷαΠζ͸ݻఆͱ͢Δ
    Πϝʔδը૾

    View full-size slide

  14. .#3(15ͷղੳ
    w 6&'*ͷ࢓༷ॻʹ.#3(15पΓͷ࣮૷͕ॻ͔Ε͍ͯΔ
    w .#3ʹؔͯ͠͸࣮͸೔ຊޠͷ8JLJQFEJB͕͔ͳΓॆ࣮͍ͯ͠Δ

    ʢ෱ా͞Μ΋೔ຊޠͷํ͕Α͔ͬͨΒ͍͠ʣ
    w [͕.#3Λղౚ͢ΔίʔυΛ࣮૷͓ͯ͠ΓɺͦΕΒΛݩʹ࣮૷ͨ͠

    View full-size slide

  15. .#3(15ͷղੳʢֶͼʣ
    w .#3ͷ࢓༷͸ޙํޓ׵ੑΛอ֦ͪͭͭு͞Ε͍ͯΔ
    ॳظͷ.#3ͷ࢓༷
    ޓ׵ੑΛอͭ(15ͷ࢓༷
    ޙํޓ׵ੑΛอͭΑ͏ͳઃܭ͕ଟ͍ɺޓ׵ΛࣺͯΔ༐ؾ

    View full-size slide

  16. &95ͷղੳ
    w ϑΝΠϧγεςϜԿ΋Θ͔Βͳ͍
    w ࢓༷ॻΛಡΜͰ࣮૷͢Δ͜ͱʹ׳Εͯ͘Δ
    w όΠφϦσʔλΛಡΉ͜ͱʹ׳Εͯ͘Δ

    View full-size slide

  17. &95ͷղੳʢֶͼʣ
    ݻఆ௕ͷςʔϒϧʢ഑ྻʣ͸ΠϯσοΫεʹҙຯΛ͕࣋ͨͤͪ
    ෺ཧతͳσʔλ
    ࢀরςʔϒϧ
    ࢀর༻ͷςʔϒϧ
    ࢀরςʔϒϧ
    ࢀরςʔϒϧ
    Y$
    ࢀরςʔϒϧͷςʔϒϧ
    Y'
    Y
    Y
    ɾ
    ɾ
    ɾ
    ೚ҙͷσʔλ
    *OEFYͷσʔλ͸൪໨ͷςʔϒϧΛࢀর

    View full-size slide

  18. 4FD)BDLͰͷൃද
    w Ծ૝ϚγϯΛಁաతʹɺετϦʔϜͰղੳͰ͖ΔΑ͏ʹ։ൃͨ͠

    View full-size slide

  19. ఀ଺ظ
    ͜ͷ࣌ظ͸ଞͷػೳΛ࡞Δͷʹ๩ͯ͘͠௕Β͘৮ͬͯͳ͔ͬͨ

    ͱʹ͔͕࣌ؒ͋͘Δ࣌ʹطଘͷίʔυΛಡΜͰ͍ͨɻ
    w ΍ͬͨ͜ͱ
    w 7.%,ͷόάऔΓ
    w [΍RFNVͷ࣮૷ΛಡΉ
    w ผͷλεΫͰ31.%#ͷιʔείʔυΛಡΉ

    IUUQTNBTBIJSPIBUFOBCMPHDPNFOUSZ

    View full-size slide

  20. ໎૸ظ
    ͱʹ͔͘ඞཁͳϑΥʔϚοτʹख͋ͨΓ࣍ୈɺύʔαΛ࣮૷͍ͯͨ͠
    w ΍ͬͨ͜ͱ
    w 9'4ͷղੳ
    w -7.ͷղੳ
    w 7)%9ͷղੳ

    View full-size slide

  21. 9'4ͷղੳ
    w ϑΝΠϧγεςϜ͕͔ͳΓΘ͔͖ͬͯͨ
    w ࢓༷ॻΛಡΉ͜ͱʹͳΕͯ͘Δ
    w -JOVYͷιʔείʔυͱ͍͏΢ϧτϥ$ʹग़ձ͏
    w ஏ͔͕ͣ͠Βͣʹ༗ࣝऀʹฉ͖ʹߦ͘

    View full-size slide

  22. 9'4ͷղੳʢֶͼʣ
    Θ͔Βͳͯ͘΋طଘͷιʔείʔυΛಡΉ͜ͱ
    w ίʔυ͕൒෼΋ཧղͰ͖
    ͳͯ͘΋งғؾͰΑ͍

    View full-size slide

  23. 9'4ͷղੳʢֶͼʣ
    Θ͔Βͳͯ͘΋طଘͷιʔείʔυΛಡΉ͜ͱ
    w ίʔυ͕൒෼΋ཧղͰ͖
    ͳͯ͘΋งғؾͰΑ͍
    w ࢓༷ॻʹͳ͍࣮૷ͷ޻෉
    ͕ίϝϯτʹ͋Δ

    View full-size slide

  24. 9'4ͷղੳʢֶͼʣ
    Θ͔Βͳͯ͘΋طଘͷιʔείʔυΛಡΉ͜ͱ
    w ίʔυ͕൒෼΋ཧղͰ͖ͳ
    ͯ͘΋งғؾͰΑ͍
    w ࢓༷ॻʹͳ͍࣮૷ͷ޻෉͕
    ίϝϯτʹ͋Δ
    w ͱ͍͏͔࢓༷ॻ͕ݹ͍͜ͱ
    ΋͋Δ

    ʢॻ͍ͯͳ͍ߏ଄ମ͋Δʣ

    View full-size slide

  25. 9'4ͷղੳʢֶͼʣ
    ͱΓ͋͑ͣֆΛॻ͍ͯΈΔ

    View full-size slide

  26. 9'4ͷղੳʢֶͼʣ
    ༗ࣝऀʹͱʹ͔͘ฉ͖ʹߦ͘
    w ࣮͸ฉ͖ʹߦͬͨΒࡶʹͰ΋ฦͯ͘͠ΕΔ

    View full-size slide

  27. -7.ͷղੳ
    w ࢓༷ॻΛಡΜͰύʔαΛॻ͘ͷ͸ே൧લʹͳΔ
    w ಠࣗDPO
    fi
    HͷύʔαΛॻ͘ͷʹۤ࿑͢Δ
    w (PMBOHͰֶͿΠϯλϓϦϯλͷ͓͔͛ͰͳΜͱ͔ͳͬͨ

    View full-size slide

  28. -7.ͷղੳʢֶͼʣ
    Ұੜ࢖Θͳ͍ͱࢥͬͨ஌ࣝΛ࢖͏
    w ษڧ༻ʹಡΜͩ(PMBOHͰ࡞ΔΠϯλϓϦϯλ
    ͷ͓͔͛ͰߏจղੳثΛ࡞ͬͯύʔεͰ͖ͨ

    View full-size slide

  29. 7)%9ͷղੳ
    w .4ͷ࢓༷ॻ͸͔ͬ͠Γॻ͔Ε͍ͯΔͳͱ͍͏ײಈ
    w Ծ૝σΟεΫͱ͍͏΋ͷ͕ཧղͰ͖͍ͯͨͷͰ਺೔ͰऴΘͬͨ

    View full-size slide

  30. ϦϦʔεظ
    ϦϦʔεʹ޲͚ͯɺఀ଺ظʹ஝͑ͨ஌ࣝͱɺ໎૸ظʹ͞·͟·ͳυϝΠϯͷ࣮૷Λ
    ͨ͠஌ݟΛݩʹ͜Ε·Ͱ࣮૷ͨ͠ϥΠϒϥϦͷΞʔΩςΫνϟΛݟ௚͠ॻ͖௚ͨ͠
    w ΍ͬͨ͜ͱ
    w ΞʔΩςΫνϟͷશ໘తͳमਖ਼
    w આ໌༻ͷυΩϡϝϯτΛ࡞੒
    w ӡ༻໘Ͱͷ࣮૷
    w ςετͷ࡞੒
    w ".*ͷղੳ

    View full-size slide

  31. ΞʔΩςΫνϟͷશ໘తͳमਖ਼
    w RFNVͰԾ૝ϚγϯΠϝʔδΛม׵͢ΔॲཧͷΞʔΩςΫνϟΛࢀߟʹ࣮૷

    View full-size slide

  32. ΞʔΩςΫνϟͷશ໘తͳमਖ਼
    w ετϦʔϜͰ࣮૷ͨ͠΋ͷΛ4FFLʹมߋ

    View full-size slide

  33. ΞʔΩςΫνϟͷશ໘తͳमਖ਼
    աڈͷࢿ࢈ʹनΘΕࣺͣͯΔ༐ؾ͕ඞཁ

    View full-size slide

  34. ".*ͷղੳ
    w ෱ా͞Μ͔ΒͷεΩϟϯ͍ͨ͠ͳʔͱ͍͏࿩͕͘Δ
    w ௐࠪˠ࣮૷ؚΊͯ࣌ؒͰɺ΄΅΄΅׬੒ͨ͠
    w ΞʔΩςΫνϟΛݟ௚͓͔ͨ͛͠ʂ

    View full-size slide

  35. આ໌༻ͷυΩϡϝϯτΛ࡞੒
    w "RVB΁ͷઆ໌༻ͷࢿྉΛ࡞੒

    ࣮ࡍʹಡ·Ε͔ͨ͸ෆ໌
    w *TTVFͰٞ࿦Ͱ͖Δೳྗ͕ͳ͍
    ͷͰɺͱΓ͋͑ͣॻ͍ͨ

    View full-size slide

  36. ӡ༻໘Ͱͷ࣮૷
    w ΫϥΠΞϯτΞϓϦͷͨΊϢʔβ͔Βͷ*TTVFͰௐࠪͰ͖ΔΑ͏ʹݕ౼
    w 5SJWZͰ͸EFCVHϩάͱͯ͠JOPEFͷ৘ใͳͲΛग़ྗ͢Δ༷ʹ࣮૷
    w 5SFOE.JDSPͳͲͰ͸ɺݕূ༻ͷπʔϧΛผ్։ൃ͠ఏڙ͍ͯ͠ΔΒ͍͠
    ଟ૚ͷϨΠϠʔͰΤϥʔ͕૝ఆ͞ΕΔͨΊɺ*TTVFରԠ͕஍ࠈͱͳΓ͏Δ

    View full-size slide

  37. ςετͷ࡞੒
    w ϑΝΠϧγεςϜͷςετͲ͏ॻ͘Μͩͱ͍͏೰Έ
    w Ծ૝Ϛγϯͷςετ͸Ͳ͏ॻ͘Μͩͱ͍͏೰Έ

    View full-size slide

  38. ϑΝΠϧγεςϜͷςετ
    w ੲձ͔ࣾΒ໯ͬͨ࡞ֶͬͯͿ04ຊʹϒϩοΫσόΠεʹ͍ͭͯॻ͍ͯ͋ͬͨ
    ͜ͱΛࢥ͍ग़͢
    w ࠷খͷϒϩοΫσόΠεΛ࡞੒͠ςετσʔλΛ࡞੒

    View full-size slide

  39. Ծ૝Ϛγϯͷςετ
    w Ծ૝ϚγϯΠϝʔδΛ*B$ͱͯ͠એݴͰ͖Δ1BDLFSΛར༻
    w $*্Ͱ࡞੒ͨ͠*NBHFΛ༻͍ͯςετ͢ΔΑ͏ʹઃܭ

    View full-size slide

  40. ֤࣌ظΛৼΓฦΔͱ
    w ͱʹ͔͘΍ͬͯΈΔظ

    ΞʔΩςΫνϟʹनΘΕͣɺະ஌ͷϞϊΛཧղ͢Δ͜ͱʹ౒Ίͨ
    w ఀ଺ظ

    खΛࢭΊͯɺಘͨ஌ࣝΛ΋ͱʹ͞Βʹֶश͢Δ͜ͱͰ஌ࣝͷπϦʔΛ࡞ͬͨ
    w ໎૸ظ

    ࣅ༷ͨͳଞͷϞϊʹ৮Εͯɺந৅తͳཧղΛৢ੒ͤͨ͞
    w ࡞ΓࠐΈظ

    ઓୂγϦʔζ૯ू߹తͳΠϝʔδͰશͯΛ૯ಈһͯ͠࡞Γ௚ͨ͠

    View full-size slide

  41. ֤࣌ظΛৼΓฦΔͱ
    w ͱʹ͔͘΍ͬͯΈΔظ

    ΞʔΩςΫνϟʹनΘΕͣɺະ஌ͷϞϊΛཧղ͢Δ͜ͱʹ౒Ίͨ
    w ఀ଺ظ

    खΛࢭΊͯɺಘͨ஌ࣝΛ΋ͱʹ͞Βʹֶश͢Δ͜ͱͰ஌ࣝͷπϦʔΛ࡞ͬͨ
    w ໎૸ظ

    ࣅ༷ͨͳଞͷϞϊʹ৮Εͯɺந৅తͳཧղΛৢ੒ͤͨ͞
    w ࡞ΓࠐΈظ

    ઓୂγϦʔζ૯ू߹తͳΠϝʔδͰશͯΛ૯ಈһͯ͠࡞Γ௚ͨ͠
    ະ஌ͷϞϊʹ޲͔͏ਓ͸͜͏͍͏ਐΈํͳͷͰ͸ͱ͍͏ֶͼ

    View full-size slide

  42. ͦͷଞͷֶͼ
    ɾ࢓༷ॻΛಡΈͳ͕Β࣮૷͢Δ͜ͱ
    ࢓༷ॻ͸௠෗͢Δ͜ͱ΋͋Δɺ͋͘·Ͱ΋֓ཁཧղͷॿ͚ʹ͸ͳΔ
    ɾطଘͷίʔυͷॏཁੑ
    ࢥΘ͵πʔϧ΍ػೳʹӅΕͨػೳ͕ೖ͍ͬͯΔ͜ͱ΋͋Δɻ
    ීஈ͔ΒOSS΍ϓϩάϥϜͷίʔυΛಡΉͷ͸΍͸Γ͍͍͜ͱͩͳͱࢥ͍·ͨ͠ɻ
    ɾ༗ࣝऀ΁ͷ૬ஊ
    ΋͏ຊ౰ʹΘ͔Βͳ͔ͬͨΒɺ୭͜ΕߏΘͣ࿈བྷͯ͠ΈΔͷ΋΍͸Γ͍͍
    ɾҰੜ࢖Θͳ͍ͩΖ͏ͳͱ͍͏஌͕ࣝੜ͖Δࣄ΋͋Δ
    ͸͖ͬΓݴͬͯࠓճͷ࣮૷Ͱಘֶͨͼ͸Ұੜ࢖Θͳ͍ͩΖ͏ͱࢥͬͯΔ

    View full-size slide

  43. ࢓༷ॻͷ͢͢Ί
    w J1BE͕͓͢͢ΊͰ͢ɻ1%'ʹͦͷ··ॻ͖ࠐΊͨΓɺϊʔτ࢖ͬͨΓ

    View full-size slide