Slide 1

Slide 1 text

খ͍͞ -JOVY؀ڥͷ ࡞Γํ Naomasa Matsubayashi

Slide 2

Slide 2 text

อଘ͢ΔΞΠίϯ ϑϩοϐʔσΟεΫ

Slide 3

Slide 3 text

೥୅ॳ಄ ϑϩοϐʔσΟεΫʹඞཁͳ෺͕શ෦ೖͬͨ -JOVYσΟετϦϏϡʔγϣϯ͕ྲྀߦͬͨ qPQQJY )"- UPNTSUCU IUUQDISJTTJMNPSEFIBM IUUQqPQQJYDPN IUUQXXXUPNTOFUSC

Slide 4

Slide 4 text

େମͲͷυϥΠϒͰ΋ಡΊΔ ࠷େͷσΟεΫϑΥʔϚοτ͸,J#ͷ)% ΠϯνϑϩοϐʔσΟεΫͷ༰ྔ % ,J# % ,J# %% .BD ,J# %% ,J# %% .BD ,J# %% 1$ ,J# %% ,J# )% 1$ ,J# )% 1$"5 .BD ,J# &% ,J# 5% ,J#

Slide 5

Slide 5 text

ϒʔτϩʔμʔͱ -JOVYΧʔωϧͱ ϢʔβϥϯυΛ ߹Θͤͯ ,J#ʹऩΊΕ͹Α͍

Slide 6

Slide 6 text

Y σϑΥϧτͷΧʔωϧίϯϑΟάͰ Ϗϧυͨ͠ΧʔωϧͷαΠζͷਪҠ CZUFT

Slide 7

Slide 7 text

Y ϑϩοϐʔσΟεΫͷ༰ྔͷݶք ݱ࣮తͳΧʔωϧαΠζͷݶք -JOVY༨༟ -JOVY͍ۤ͠ -JOVYઈ๬త CZUFT

Slide 8

Slide 8 text

೥݄೔ -JOVY։ൃऴྃ IUUQTMLNMPSHMLNM Date Mon, 9 Apr 2012 15:30:50 +0200 From Willy Tarreau <> Subject No more Linux 2.4 releases

Slide 9

Slide 9 text

σϑΥϧτͷΧʔωϧίϯϑΟάͰ Ϗϧυͨ͠-JOVY ,J#

Slide 10

Slide 10 text

,J# ࠷খݶͷυϥΠό͚ͩͰ Ϗϧυͨ͠-JOVY 7("ίϯιʔϧ4"5"")$* 64#&)$*0)$*γϦΞϧϙʔτ 64#ετϨʔδ64#)*%FYU *OUFMͱ3FBMUFLͷ/*$υϥΠό*1W

Slide 11

Slide 11 text

$0/'*(@&91&35 ΧʔωϧͷجຊతͳػೳΛແޮʹͰ͖ΔΑ͏ʹͳΔ

Slide 12

Slide 12 text

$0/'*(@6*% ೥-JOVYͷϢʔβ*%͕CJU͔ΒCJUʹҠߦ IUUQTXXXLFSOFMPSHEPD%PDVNFOUBUJPOIJHIVJEUYU ݹ͍ιϑτ΢ΣΞͷҝʹ CJUͰ6*%Λ౉͢γεςϜίʔϧ͕࢒͞Ε͍ͯΔ ࠓ೔ͷ-JOVY؀ڥʹͦ͏ͨ͠ιϑτ΢ΣΞ͕ ࢒͍ͬͯΔ͜ͱ͸໓ଟʹͳ͍ CJU6*%ͷγεςϜίʔϧΛαϙʔτ͢Δ

Slide 13

Slide 13 text

$0/'*(@,"--4:.4 Χʔωϧ͕Ϋϥογϡͨ࣌͠ͷόοΫτϨʔεʹ γϯϘϧ໊͕ग़ΔΑ͏ʹ͢Δ ͋Δ࣌ ͳ͍࣌ ਓ͕ؒಡΊΔ όΠφϦΞϯ͚͕ͩಡΊΔ

Slide 14

Slide 14 text

Linux version 3.12.8 (root@Grueza) (gcc version 4.7.3 (Gentoo 4.7.3-r1 p1.4, pie-0.5.5) ) #2 Sat Feb 22 17:22:05 JST 2014 e820: BIOS-provided physical RAM map: BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved BIOS-e820: [mem 0x0000000000100000-0x0000000007ffdfff] usable BIOS-e820: [mem 0x0000000007ffe000-0x0000000007ffffff] reserved BIOS-e820: [mem 0x00000000feffc000-0x00000000feffffff] reserved BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved Notice: NX (Execute Disable) protection cannot be enabled: non- PAE kernel! SMBIOS 2.4 present. e820: last_pfn = 0x7ffe max_arch_pfn = 0x100000 PAT not supported by CPU. init_memory_mapping: [mem 0x00000000-0x000fffff] init_memory_mapping: [mem 0x07800000-0x07bfffff] init_memory_mapping: [mem 0x00100000-0x077fffff] init_memory_mapping: [mem 0x07c00000-0x07ffdfff] 0MB HIGHMEM available. 127MB LOWMEM available. mapped low ram: 0 - 07ffe000 low ram: 0 - 07ffe000 Zone ranges: DMA [mem 0x00001000-0x00ffffff] Normal [mem 0x01000000-0x07ffdfff] HighMem empty Movable zone start for each node Early memory node ranges node 0: [mem 0x00001000-0x0009efff] node 0: [mem 0x00100000-0x07ffdfff] e820: [mem 0x08000000-0xfeffbfff] available for PCI devices Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32412 Kernel command line: console=ttyS0 PID hash table entries: 512 (order: -1, 2048 bytes) Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) $0/'*(@13*/5, Χʔωϧ͕ίϯιʔϧ౳ʹ৘ใΛग़ྗ͢Δػೳ ੾ΔͱΧʔωϧ͕ແޱʹͳΔ ͋Δ࣌ ͳ͍࣌

Slide 15

Slide 15 text

$0/'*(@#6( Χʔωϧ͕ҟৗΛݕ஌ͨ࣌͠ʹ ΞʔΩςΫνϟຖͷద੾ͳํ๏Ͱ ͦͷ͜ͱΛ௨஌͢Δ࢓૊Έ ੾ΔͱυϥΠό౳͕ ҟৗΛݕ஌ͯ͠΋ ͦͷ··૸Δ

Slide 16

Slide 16 text

$0/'*(@4:4$5-@4:4$"-- QSPDϑΝΠϧγεςϜಋೖҎલʹ࢖ΘΕ͍ͯͨ QSPDTZTҎԼͷύϥϝʔλʹΞΫηε͢Δํ๏ ۃΊͯݹ͍ιϑτ΢ΣΞͷҝʹ࢒͞Ε͍ͯΔ͕ ·ͱ΋ʹอक͞Ε͓ͯΒͣ ͠͹͠͹Χʔωϧͷมߋ͔Βஔ͖ڈΓʹ͞ΕΔ NBOͷઆ໌͕ %POPUVTFUIJT TZTUFNDBMM

Slide 17

Slide 17 text

$0/'*(@&-'@$03& ϢʔβۭؒͰϓϩηε͕Ϋϥογϡͨ࣌͠ʹ ίΞμϯϓΛੜ੒͢Δػೳ $0/'*(@1$41,3@1-"5'03. 1$εϐʔΧʔυϥΠό $0/'*(@#"4&@'6-- ΧʔωϧͷԿΒ͔ͷߏ଄ମʹ ແͯ͘΋Կͱ͔ͳΔཁૉΛؚΊΔ͔൱͔ͷઃఆΒ͍͠ ͔͠͠YͰ࢖͍ͬͯΔՕॴ͸ݟ͚ͭΒΕͳ͔ͬͨ

Slide 18

Slide 18 text

$0/'*(@'65&9 GVUFYΛ࢖͑ΔΑ͏ʹ͢Δ ڞ༗ϝϞϦΛ࢖͏৔߹౳ʹ ϓϩηεΛލ͍ͰϩοΫΛߦ͏ඞཁ͕͋Δ ͜ͷͨΊʹΧʔωϧ͕ఏڙ͍ͯ͠Δͷ͕ GBTUVTFSTQBDFNVUFYFT ུͯ͠GVUFY IUUQMXOOFU"SUJDMFT ৄ͘͠͸͜ͷล

Slide 19

Slide 19 text

$0/'*(@4*(/"-'% γάφϧΛγάφϧϋϯυϥͰ͸ͳ͘ ϑΝΠϧσΟεΫϦϓλͰड͚ͱΕΔΑ͏ʹ͢Δ $0/'*(@5*.&3'% ϑΝΠϧσΟεΫϦϓλͱͯ͠ѻ͑ΔλΠϚʔ $0/'*(@&7&/5'% Ϣʔβۭؒͷϓϩηεಉ࢜΍ ΧʔωϧͱϢʔβۭؒͷϓϩηεͷؒͰ ΠϕϯτΛ௨஌͢ΔͨΊͷϑΝΠϧσΟεΫϦϓλ $0/'*(@&10-- ϑΝΠϧσΟεΫϦϓλʹมԽ͕͋ͬͨࣄΛ Χʔωϧ͔Β௨஌ͯ͠΋Β͏࢓૊Έ

Slide 20

Slide 20 text

$0/'*(@4).&. ڞ༗ϝϞϦϑΝΠϧγεςϜΛΨν࣮૷ʹ͢Δ͔ ࠷খݶͷ࣮૷ʹ͢Δ͔Λબ΂Δ ࠷খݶͷ࣮૷Ͱ͸ Ϧιʔε੍ݶ͕ޮ͔ͳ͍ TXBQΛ࢖Θͳ͍ ͱ੍͍ͬͨ໿͕͋Δ

Slide 21

Slide 21 text

$0/'*(@"*0 ࢖ΘΕͳ͍ࣄʹఆධͷ͋Δ -JOVYͷඇಉظ*0Λαϙʔτ͢Δ IUUQMXOOFU"SUJDMFT ৄ͘͠͸͜ͷล

Slide 22

Slide 22 text

$0/'*(@7.@&7&/5@$06/5&34 OS@EJSUZOS@XSJUFCBDLQHQHJOQHQHPVUQTXQJOQTXQPVUQHBMMPD@ENBQHBMMPD@ENB QHBMMPD@OPSNBMQHBMMPD@NPWBCMFQHGSFFQHBDUJWBUFQHEFBDUJWBUFQHGBVMUQHNBKGBVMU QHSFpMM@ENBQHSFpMM@ENBQHSFpMM@OPSNBMQHSFpMM@NPWBCMFQHTUFBM@LTXBQE@ENB QHTUFBM@LTXBQE@ENBQHTUFBM@LTXBQE@OPSNBMQHTUFBM@LTXBQE@NPWBCMF QHTUFBM@EJSFDU@ENBQHTUFBM@EJSFDU@ENBQHTUFBM@EJSFDU@OPSNBM QHTUFBM@EJSFDU@NPWBCMFQHTDBO@LTXBQE@ENBQHTDBO@LTXBQE@ENB QHTDBO@LTXBQE@OPSNBMQHTDBO@LTXBQE@NPWBCMFQHTDBO@EJSFDU@ENB QHTDBO@EJSFDU@ENBQHTDBO@EJSFDU@OPSNBMQHTDBO@EJSFDU@NPWBCMF QHTDBO@EJSFDU@UISPUUMF[POF@SFDMBJN@GBJMFEQHJOPEFTUFBMTMBCT@TDBOOFE LTXBQE@JOPEFTUFBMLTXBQE@MPX@XNBSL@IJU@RVJDLMZLTXBQE@IJHI@XNBSL@IJU@RVJDLMZ QBHFPVUSVOBMMPDTUBMMQHSPUBUFEQHNJHSBUF@TVDDFTTQHNJHSBUF@GBJMDPNQBDU@JTPMBUFE DPNQBDU@TUBMMDPNQBDU@GBJMDPNQBDU@TVDDFTTIUMC@CVEEZ@BMMPD@TVDDFTT IUMC@CVEEZ@BMMPD@GBJMVOFWJDUBCMF@QHT@DVMMFEVOFWJDUBCMF@QHT@TDBOOFE VOFWJDUBCMF@QHT@SFTDVFEVOFWJDUBCMF@QHT@NMPDLFEVOFWJDUBCMF@QHT@NVOMPDLFE VOFWJDUBCMF@QHT@DMFBSFEVOFWJDUBCMF@QHT@TUSBOEFEUIQ@GBVMU@BMMPDUIQ@GBVMU@GBMMCBDL UIQ@DPMMBQTF@BMMPDUIQ@DPMMBQTF@BMMPD@GBJMFEUIQ@TQMJUUIQ@[FSP@QBHF@BMMPD UIQ@[FSP@QBHF@BMMPD@GBJMFEOS@UMC@SFNPUF@qVTIOS@UMC@SFNPUF@qVTI@SFDFJWFE OS@UMC@MPDBM@qVTI@BMMOS@UMC@MPDBM@qVTI@POF ༗ޮʹ͢ΔͱQSPDWNTUBUʹҎԼͷ৘ใ͕௥Ճ͞ΕΔ

Slide 23

Slide 23 text

$0/'*(@4-0# $0/'*(@&91&35Λ༗ޮʹ͢Δͱ௥Ճ͞ΕΔ ΧʔωϧϝϞϦΞϩέʔλ 4-"#Ξϩέʔλ࣮૷Ҏલͷ-JOVYͷΞϩέʔλʹ 4-"#ΤϛϡϨʔγϣϯϨΠϠʔΛ௥Ճͯ͠ 4-"#ͷ୅ΘΓʹ࢖͑ΔΑ͏ʹͨ͠΋ͷ 4-"#ΑΓϑϥάϝϯςʔγϣϯΛى͜͠΍͘͢ εέʔϥϏϦςΟʹ͚ܽΔ͕ ඇৗʹখ͍͞ίʔυͰ࣮૷͞Ε͍ͯΔ IUUQMXOOFU"SUJDMFT ৄ͘͠͸͜ͷล

Slide 24

Slide 24 text

#-0$,%&'"6-5@/001 *0εέδϡʔϥΛ ཁٻ͞ΕͨॱʹॲཧΛΩϡʔʹੵΉ͚ͩͷ εέδϡʔϦϯά͠ͳ͍εέδϡʔϥ /PPQεέδϡʔϥ ͷΈαϙʔτ͢ΔΑ͏ʹ͢Δ ৄ͘͠͸͜ͷล IUUQTBDDFTTSFEIBUDPNTJUFEPDVNFOUBUJPOFO 643FE@)BU@&OUFSQSJTF@-JOVYIUNM 1FSGPSNBODF@5VOJOH@(VJEFDITTIUNM

Slide 25

Slide 25 text

,J# $0/'*(@&91&35Ͱߋʹ࡟ͬͨ -JOVY 7("ίϯιʔϧ4"5"")$* 64#&)$*0)$*γϦΞϧϙʔτ 64#ετϨʔδ64#)*%FYU *OUFMͱ3FBMUFLͷ/*$υϥΠό*1W

Slide 26

Slide 26 text

,J# -JOVYͰ ಉ༷ͷઃఆΛͨ͠৔߹ 7("ίϯιʔϧ4"5"")$* 64#&)$*0)$*γϦΞϧϙʔτ 64#ετϨʔδ64#)*%FYU *OUFMͱ3FBMUFLͷ/*$υϥΠό*1W

Slide 27

Slide 27 text

ۭ͖ྖҬʹऩ·ΔΑ͏ʹϢʔβϥϯυΛ࡞Δ ϑϩοϐʔσΟεΫͷ༰ྔ ΧʔωϧͷαΠζ ,J# ,J# ,J# Ϣʔβϥϯυʹ࢖͑Δ༰ྔ -;."Ͱѹॖͨ͠ঢ়ଶͰ ,J#ະຬʹͳΔJOJUSBNGTΛ࡞Δ

Slide 28

Slide 28 text

ϒʔτ ϩʔμʔ Χʔωϧ JOJUSBNGT ϒʔτ ϩʔμʔ Χʔωϧ ϒʔτϩʔμىಈ Χʔωϧىಈ JOJUSBNGTͷJOJUىಈ ϧʔτϑΝΠϧγεςϜͷJOJUىಈ JOJUSBNGT SPPUGT SPPUGT JOJUSBNGTʹඞཁͳ΋ͷΛશͯೖΕͯ SPPUGTΛͳͦ͘͏

Slide 29

Slide 29 text

-;."Ͱѹॖͨ͠ঢ়ଶͰ ,J#ະຬʹͳΔJOJUSBNGTΛ࡞Δ ѹॖϑΝΠϧγεςϜΑΓখ͘͞ͳΔ ϑϩοϐʔσΟεΫͷυϥΠό͕ཁΒͳ͍ ϑΝΠϧγεςϜͷυϥΠό͕ཁΒͳ͍

Slide 30

Slide 30 text

ۭ͖ྖҬʹऩ·ΔΑ͏ʹϢʔβϥϯυΛ࡞Δ MJCDTPM[NB ,J# ,J# HMJCDΛ࢖͏ͷ͸ແཧͦ͏ ,J# Ϣʔβϥϯυʹ࢖͑Δ༰ྔ

Slide 31

Slide 31 text

͍ʹ͑͠ͷϑϩοϐʔ-JOVYୡ͸ -JOVYMJCDΛ࢖͍ͬͯΔ

Slide 32

Slide 32 text

)J (BMTBOE(VZT 5IF-JOVY$MJCSBSZJTBCVHpYJOHSFMFBTFGPSMJCD 5IFSFBSFOPOFXGFBUVSFTJOUIJTSFMFBTF5IJTJTUIFMBTUSFMFBTFPG MJCDYY"MMNZNBDIJOFTBSFOPXSVOOJOH3FE)BUXIJDIJTCBTFE POHMJCD BLBMJCD1MFBTFDIFDLUIFHMJCDXFCTJUFGPSEFUBJMT IUUQXXXHOVPSHTPGUXBSFMJCDMJCDIUNM *SFBMMZFOKPZFEXPSLJOHPOUIF-JOVY$MJCSBSZXJUIBMMUIFQFPQMF PWFSUIFZFBST8JUIPVUZPV -JOVYDBOOPUCFXIBUJUJTUPEBZ5IBOLT UPZPVSTVQQPSU XFEJEJU/PXJUJTUIFUJNFUPNPWFPOUPMJCD BLBHMJCD*XJMMCFXPSLJOHPOHMJCDBTBEFWFMPQFS CVUOPUBT BNBJOUBJOFS 6MSJDIIBTCFFOEPJOHBHSFBUKPCPONBJOUBJOJOHHMJCD *XJMMUSZUPBOTXFSBMMUIFDPODFSOTPWFSMJCDWTMJCDBTXFMM BTUIFCVHJTTVTFTSFMBUFEUPMJCD IUUQTXXXLFSOFMPSHQVCMJOVYMJCTMJCDPMESFMFBTFMJCD ࠷৽ͷMJOVYMJCDͷϦϦʔεϊʔτ ͜Ε͸MJCDYYͷ࠷ޙͷϦϦʔεͩ HMJCD΁ͷҠߦΛݕ౼ͯ͘͠Ε

Slide 33

Slide 33 text

&-'SFMBUFE888QBHFT IUUQXXXJOUBDDPNdDVMMZFMGIUNM IUUQXXXTKDPYBDVLVTFSTCBSMPXMJOVYHDDIUNM IUUQXXXCMBDLEPXOPSHFMGFMGIUNM &-'EPDVNFOUBUJPO GUQTVOTJUFVODFEVQVC-JOVY($$FMGQTH[ GUQTVOTJUFVODFEVQVC-JOVY($$FMGMBUFYUBSH[ GUQTVOTJUFVODFEVQVC-JOVY($$&-'EPDUBSH[ )+ IKM!HOVPSH IUUQTXXXLFSOFMPSHQVCMJOVYMJCTMJCDPMESFMFBTFMJCD ࠷৽ͷMJOVYMJCDͷϦϦʔεϊʔτ ͜Ε͸MJCDYYͷ࠷ޙͷϦϦʔεͩ HMJCD΁ͷҠߦΛݕ౼ͯ͘͠Ε ೥݄೔-JOVYMJCD։ൃऴྃ

Slide 34

Slide 34 text

ଞͷখ͍͞MJCDͷબ୒ࢶ IUUQXXXVDMJCDPSH V$MJCD NVTMMJCD IUUQXXXNVTMMJCDPSH IUUQXXXGFGFEFEJFUMJCD EJFUMJCD IUUQXXXFUBMBCTOFUDPNQBSF@MJCDTIUNM ੑೳൺֱ͸͜ͷล ࠓճ͸͜ΕΛ࢖͏

Slide 35

Slide 35 text

ଞͷখ͍͞MJCDͷબ୒ࢶ V$MJCD NVTMMJCD EJFUMJCD IUUQXXXFUBMBCTOFUDPNQBSF@MJCDTIUNM ੑೳൺֱ͸͜ͷล ࠓճ͸͜ΕΛ࢖͏ ͻͨ͢Βখ͍͞ɺ஗͍ɺػೳ଍Γͯͳ͍ ෯޿͍ΞʔΩςΫνϟΛαϙʔτ V$MJCDΑΓখ͘͞ɺV$MJCDΑΓ଎͍

Slide 36

Slide 36 text

#64:#09 -JOVY؀ڥͰΑ͘࢖ΘΕΔίϚϯυΛ ՄೳͳݶΓখ࣮͘͞૷ͨ͠΋ͷ શͯͷίϚϯυΛͭͷόΠφϦʹू໿͢Δ͜ͱͰ ಉ͡Α͏ͳ࣮૷͕ෳ਺ͷόΠφϦʹࢄΒ͹ΔͷΛ๷͙ IUUQXXXCVTZCPYOFU %SPQCFBS ඇৗʹখ͍͞44)αʔόɺΫϥΠΞϯτ IUUQTNBUUVDDBTOBVESPQCFBSESPQCFBSIUNM

Slide 37

Slide 37 text

$ readelf -s a.out Symbol table '.dynsym' contains 13 entries: Num: Value Size Type Bind Vis Ndx 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND 1: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ 2: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _Jv_RegisterClasses 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND _ZNSt8ios_base4InitC1Ev@GLIBCXX_3.4 (2) 4: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.2.5 (3) 5: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __cxa_atexit@GLIBC_2.2.5 (3) 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTab 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND _ZStlsISt11char_traitsIcE@GLIBCXX_3.4 (2) 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND _ZNSolsEPFRSoS_E@GLIBCXX_3.4 (2) 10: 00000000004007d0 0 FUNC GLOBAL DEFAULT UND _ZSt4endlIcSt11char_trait@GLIBCXX_3.4 (2) $ readelf -s a.out Symbol table '.dynsym' contains 13 entries: Num: Value Size Type Bind Vis Ndx Name 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND 1: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ 2: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _Jv_RegisterClasses 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND _ZNSt8ios_base4InitC1Ev@GLIBCXX_3.4 (2) 4: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.2.5 (3) 5: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __cxa_atexit@GLIBC_2.2.5 (3) 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTab 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND _ZStlsISt11char_traitsIcE@GLIBCXX_3.4 (2) 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND _ZNSolsEPFRSoS_E@GLIBCXX_3.4 (2) 10: 00000000004007d0 0 FUNC GLOBAL DEFAULT UND TUSJQTUSJQVOOFFEFEόΠφϦ ࣮ߦՄೳόΠφϦ͔ΒγϯϘϧςʔϒϧΛ࡟আ͢Δ TUSJQTUSJQVOOFFEFE ࣮ߦՄೳόΠφϦ͔Β γϯϘϧςʔϒϧΛ࡟আ͢Δ ΍Δલ ΍ͬͨޙ

Slide 38

Slide 38 text

$ readelf -S a.out There are no sections in this file. $ readelf -S a.out There are 28 section headers, starting at offset 0x1180: Section Headers: [Nr] Name Type Address Offset Size EntSize Flags Link Info Align [ 0] NULL 0000000000000000 00000000 0000000000000000 0000000000000000 0 0 0 [ 1] .interp PROGBITS 0000000000400270 00000270 000000000000001c 0000000000000000 A 0 0 1 [ 2] .note.ABI-tag NOTE 000000000040028c 0000028c 0000000000000020 0000000000000000 A 0 0 4 [ 3] .hash HASH 00000000004002b0 000002b0 0000000000000048 0000000000000004 A 5 0 TUSJQTUSJQVOOFFEFEόΠφϦ ࣮ߦՄೳόΠφϦ͔ΒγϯϘϧςʔϒϧΛ࡟আ͢Δ TTUSJQ ࣮ߦՄೳόΠφϦ͔Β ηΫγϣϯϔομΛ࡟আ͢Δ ΍Δલ ΍ͬͨޙ IUUQXXXNVQQFUMBCTDPNdCSFBECPYTPGUXBSFFMGLJDLFSTIUNM

Slide 39

Slide 39 text

$ mkdir etc/ $ cat <etc/init.d/rcS #!/bin/ash hostname Tiny mount -t proc none /proc mount -t sysfs none /sys ifconfig eth0 up udhcpc eth0 crond EOF $ cat <etc/inittab ::sysinit:/etc/init.d/rcS tty1::respawn:/sbin/getty -L tty1 38400 linux tty2::respawn:/sbin/getty -L tty2 38400 linux ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100 ::restart:/sbin/init ::shutdown:/bin/umount -a -r EOF

Slide 40

Slide 40 text

$ mkdir -p proc sys dev root tmp var/spool/cron/ crontabs/ usr/share/udhcpc/ cp -rpdf /dev/ {console,full,hpet,initctl,kmem,mem,null,nvram,port, ptya[0-9],ptya[a-f],random,rtc0,sda*,tty,tty [0-9],ttyS[0-1],urandom,zero} dev/ $ cp /usr/share/udhcpc/default.script usr/share/ udhcpc $ cat <etc/group root:x:0:root bin:x:1:root,bin tty:x:5: kmem:x:9: uucp:x:14: EOF $ cat <etc/passwd root:5vqD6957XLPg2:0:0:root:/root:/bin/ash bin:x:1:1:bin:/bin:/bin/false EOF $ ln -s bin/busybox init

Slide 41

Slide 41 text

ۭ͖ྖҬʹऩ·ΔΑ͏ʹϢʔβϥϯυΛ࡞Δ ,J# CVTZCPY ελςΟοΫϦϯΫ ,J# ESPQCFBS ελςΟοΫϦϯΫ ඇѹॖͷϢʔβϥϯυ ,J# DQJPͯ͠M[NB JOJUSBNGTDQJPM[NB ,J# ,J# Ϣʔβϥϯυʹ࢖͑Δ༰ྔ ଍Γͨ

Slide 42

Slide 42 text

ϑϩοϐʔσΟεΫΛ ϒʔτՄೳʹ͠Α͏ %JSFDUqPQQZCPPUJTOPUTVQQPSUFE 6TFBCPPUMPBEFSQSPHSBNJOTUFBE 3FNPWFEJTLBOEQSFTTBOZLFZUPSFCPPU ΧʔωϧΛϑϩοϐʔ͔Β௚઀ϒʔτ͢Δͷ͸ ΋͏αϙʔτ͞Ε͍ͯͳ͍ͷͰɺ ఘΊͯϒʔτϩʔμʔΛ࢖͍ͬͯͩ͘͞

Slide 43

Slide 43 text

$ mkfs.minix /dev/fd0 $ mount -t auto /dev/fd0 /boot $ cp initramfs.cpio.lzma /boot $ cp $(KERNEL_DIR)/arch/x86/boot/ bzImage /boot/vmlinuz $ cat </etc/lilo.conf boot = /dev/fd0 compact map = /boot/map vga = normal image = /boot/vmlinuz label = "Linux" initrd = /boot/initramfs.cpio.lzma EOF $ lilo -*-0ΛΠϯετʔϧ

Slide 44

Slide 44 text

LILO 23.2 Loading Linux BIOS data check successful starting pid 35, tty '/dev/tty1': '/ sbin/getty -L tty1 38400 linux' Tiny login: ಈ͍ͨ

Slide 45

Slide 45 text

# wget http://slashdot.org/ Connecting to slashdot.org (216.34.181.45:80) # dmesg dmesg: klogctl: Function not implemented

Slide 46

Slide 46 text

44)ΫϥΠΞϯτಉࠝ൛ *1WରԠ൛ IUUQUDP:/24MFF NETVNECFBEBE IUUQUDPRG-Y[PL NETVNGECDGGFBE

Slide 47

Slide 47 text

Ͱ΋΍ͬͺΓϑϧػೳͷ-JOVYΧʔωϧͷ্Ͱ σεΫτοϓ؀ڥಈ͔ͯ͠ 5XJUUFS͍ͨ͠ΑͶ ϑϩοϐʔσΟεΫ͔Βىಈ͢ΔΧʔωϧ͸ ωοτϫʔΫ͔Βμ΢ϯϩʔυͨ͠ผͷΧʔωϧΛ LFYFDͰىಈ͢Δ͜ͱʹಛԽͤ͞Δ ஈ֊໨ͷΧʔωϧ͸ J4$4*λʔήοτΛSPPUGTͱͯ͠Ϛ΢ϯτ ͋ͱ͸༰ྔͷ੍ݶͳ͍ͭ͘΋ͷ-JOVY؀ڥ

Slide 48

Slide 48 text

LFYFD -JOVYΧʔωϧΛϒʔτϩʔμͱͯ͠ ผͷ-JOVYΧʔωϧΛىಈ͢Δ࢓૊Έ ҰൠతͳϒʔτϩʔμͰ͸खʹෛ͑ͳ͍ॴʹ ஔ͔ΕͨΧʔωϧΛىಈ͍ͨ͠ #*04Λܦ༝ͤͣʹߴ଎ʹϦϒʔτ͍ͨ͠ Χʔωϧ͕Ϋϥογϡͨ࣌͠ʹ ผͷΧʔωϧͰσόοά͍ͨ͠ LEVNQ ͦΜͳ࣌ʹ࢖͏

Slide 49

Slide 49 text

ʮ਌ํۭ͔ΒGentoo͕ʯγεςϜ Ϋϥ΢υ LFYFD༻ Χʔωϧ BVGTΛ࢖ͬͯ มߋ͸3".ʹอଘ ϑϧ૷උͳΧʔωϧ J4$4* SFBEPOMZ ᶃ ᶄ IUUQUDPI'YZVTBLFO CBDEFEFCEBFFEDEEF ᶅ Gentoo )551

Slide 50

Slide 50 text

ʮ਌ํۭ͔ΒGentoo͕ʯγεςϜ IUUQUDPI'YZVTBLFO CBDEFEFCEBFFEDEEF

Slide 51

Slide 51 text

MJOVYYZ͕&0-ʹͳͬͨΒ ·ͩઓ͏ज़͸͋Δ ͜͜·ͰY@Λ࢖͖͕ͬͯͨ Yʹ͢Ε͹ एׯΧʔωϧ͕খ͘͞ͳΔ ,J# ͷ৔߹ ,J#

Slide 52

Slide 52 text

MJOVYYZ͕&0-ʹͳͬͨΒ ·ͩઓ͏ज़͸͋Δ ϒϩοΫσόΠεΛ Ұ੾αϙʔτ͠ͳ͍Α͏ʹ͢Ε͹ /PPQεέδϡʔϥ͕ෆཁʹͳΔ ,J# ,J# ͷ৔߹

Slide 53

Slide 53 text

MJOVYYZ͕&0-ʹͳͬͨΒ ·ͩઓ͏ज़͸͋Δ "$1*ͱDQVGSFR͸ ʮඞͣ༗Δͱظ଴͢ΔυϥΠό͕ډΔʯ ͨΊʹ΍Ήͳ͘༗ޮʹ͍ͯ͠Δ ͜ͷ΁ΜͷυϥΠόͷ ιʔεΛमਖ਼͢Ε͹ "$1*ͱDQVGSFR͸֎ͤΔ͸ͣ

Slide 54

Slide 54 text

·ͱΊ -JOVYΧʔωϧ͸͜ͷ೥ͰڊେԽ͚ͨ͠Ͳ ࠓͷ-JOVYʹ͸ڊେԽʹ߅͏खஈ΋๛෋ʹ͋Δ͔Β ετϨʔδ͕ઈ๬తʹখͯ͘͞΋ ෛ͚ΔͳΨϯόϨʂ

Slide 55

Slide 55 text

44)ಉࠝ൛ *1W൛ (FOUPP൛ Thank you for listening. ઃఆ౳ IUUQUDPRG-Y[PL NETVNGECDGGFBE IUUQUDP:/24MFF NETVNECFBEBE IUUQUDPI'YZVTBLFO NETVNCBDEFEFCEBFFEDEEF IUUQXXXVTBLVSBOFKQEFOFCDPOpHT