˘ˇ ˘ˇ ˆ˙ - etri journal · ˘ˇˆ˙ $ du –ch `which adduser deluser del-group login sulogin...

13
! "#$ %&'( )* +,- . !/0- 1 2 345 67 89+:;<=>?@AB'CDEF123 CG>?'HI<!JKL9JML9?>N9OPB9QR STSUV7WXYZW[\] ()*+,^\SUV<_`a3CG bc<>?$deX E*YZ`fg()*+,T%h ij^\ JKL< _`]9 S UV< _` a3!ij-\!k\lPFJKL <^a3!ij-JML<*m. 897*QRSnopqfr]s t uv* wx. y jaz! {WX /0- ]9l|:}opqfr!HI~ CG +z {W< F QRSq nop* %4 ]9 ? - }op* %4 XCG F=>?@ABI X%&-XC] 1 2 3zSa' Z$ =dWYT"#\CCG>?@AB! \^a 3] "#*\fg X"#*\]X# /H<=`!HI ~CG%9* 0%%!\]9B  ¡¢9>M9)£B9Uf¤¥¦F9§U§9 ?J¥¦F\¨©2389a p ^a!Oª «<¬6 !=d % &- -% ®6 * YZ© 2 3CGF=>?@AB<d6 ' %& Y¯! defg9 X° "#* \% ±²< SaY¯! ³´ µ ¶·1 2 3]9µC¸]¹º(®q»CG "# ' * g^af] +< ¼!/H<=`%±²<S a' Z\ ½F¾ 2 ¿< À8 >M9 Á¬ GNU/Linux Optimization for Embedded Systems !" # $%& !"#$%&'()*+,-./01!23#"4$5%&'(678/9: ;<=>?@ABC;DEFG@H01!23#"4$ABC578-I8JK./L ;<MNOPQ-RSTUVWXYZ3[\]^_5`a8b@H

Upload: vanminh

Post on 01-Dec-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

��������

������������������������

���������� � �������������

����������� !�"#$�%&'�(��)*

+,-��� .�� !�/0-�1�2�345�67

89�+:�;<=�>?�@AB'�CD��EF�1�2�3

CG�>?'�HI<!�JKL9�JML9�?>N9�OPB9�QR

S�T� SU�V��7WX�YZ�W[\]�����

��(��)*+,^\� S�U�V<�_�`a�3CG

bc<����������>?����$�deX��

E*�YZ`fg�������(��)*+,�T�%h

ij^\�JKL<�_�`]9� S�U�V<�_�`

a�3!�ij����-�\� !�k\�lPF�JKL

<�^a�3!�ij����-�JML<�*m .���

89�7*�QRS�no��pq��� f�r]��s

t�uv*�wx .��y�jaz!�{WX�/0-

]9�l|:�}o��pq��� f�r!�HI��~

CG�+�z�{W<��F�QRSq�no�p*���

%4� ]9� �?����-�}o�p*��� %4

XCG

�F=����������>?�@AB���I���

X�%&-�XC]�1�2�3�z� S�a'��Z$

=d��WY���T�"#\�C�CG�>?�@AB!��

����\�^a��3]����"#�*��\fg��

����������X�"#����*��\]��X#

�/��H<=���`!�HI��~CG���%9�*�

���0���%%!���\]������9������B

�� ¡�¢�9�>�M9�)£B9�Uf¤�¥¦F9�§U§9

�?J�¥¦F��\�¨��©�2�3�89�����a��

p��^a�!�Oª��«<�¬6�� !�=d��%

&-��­ %�®6���������*�YZ©�2

3CG��F=����������>?�@AB<�d6��

��'�%&�Y¯!�de fg9��X°�"#�*

�\%�±²<� S�a�Y¯!�³ �́µ�¶·1�2

3]9�µ�C¸ ]�¹º��(���®q��»CG

���"#���'�����*�g^af]�+<

¼!��/��H<=���`%�±²<����� S�

a'��Z\�½F¾�2�¿<�À�8�>�M9�Á¬�

������������������������������������������������������������� � � � ��������������������������������������������������������

��������GNU/Linux Optimization for Embedded Systems

������������ � ���������������

���������� !"� � ���������������

��#�������� � ����������$����%��&

����������������� ������������������������������� �

!"#$�%&'(��)*�+,-�./�01!23#"4$5��������%&'(���6 ��78�/�9:

;<�����=>��?@�ABC;�DEFG�@�H�01!23#"4$��ABC5�78�-I8�J�K�./��L

;<�MNO�PQ -R�ST���UVWXYZ�3[\���] �̂_�5�`a8�b���@�H

���������������� �����������������

��������

>?9�ÂÃ�Ä��$�Å\�Æ�f*��/ !��p'

HI<�Ç�\��I�ÈWX�%&�"É��`]9���

�����<�¡Ê`!�?>N�)*Ë=����X�"

#�*�ÌÍ°�kj�24�3]9�JML\z�JKL'

�Î4�dÏ#�[�j�HI��~]9���QRS�no$

�?�����}o\�À!��E*�YZ©�24�3CG�Ð

X��Ñ'�Ò�$�Óx`!�ÈWX��a����\

3-�24�3�89�\�HI<!�ÔÕZ$�Ò�Z\

�I�ÈWX�]Ö��\�`a×�XCG

+�Ø*�%Ù'�>?�����q��������

<�+¬*���1�2��À]�Ú�°� S�a��%

&�WY��<��F�Û#Ü°���������`a

×� 89�\q�ÝÞ�*�X�(�\�ÌÍ`a�¡Ê`

a�XCG

ßàNá�âãäå����æ'�Ò�Z$�ÔÕZ\�çè

`c=��������'�����*�Ûé�7"-�ê

]�3�89�\q�\�X��«^\�ëë�ÍÉ`]�3

!��ì\CG�ßàNá�âãäå!�Ë�#��íO'�2~

��ÌÍ���­��î. .�ÌÍ\�\ïaf]�3�

Ø*�dÏ#�ð�ñ�ò*��%ó^\�ô"`a��\

]�3]9�õö.�÷��Ò�ÌÍ$�ø����\�fë#�

*�Å\�\ïaù�Í�6�ú�k�*=�����'�Ò

�Z$�ÔÕZ\��I�û��k�*�R]`]�3�89

ßàN�_/ü�í�<��F�ý4'�_/üþq���{

W��Àa�~���������<=�����*�ßàN

á�âãäå����`]�3!��ì\CG

ßàNá�âãäå!�å���>?�@ABq�%b�*�g^

a»��<�L�>�9�M��9�>��� >?9��>MJ?9�MJL

�$�Å��C¸X� S�a����<�\�`a�3�

z9����"#'���V¡�%b�@AB<���`4

5�g^aù�3�Ø*��������'�����*

�� %�®6=!��������'����"#<�¼

!�Û#Ü��\ïaù×�XCG

������������������������������������������������������������� �������������������������

������� ������ �!"#�$%&���� ����

'���� �()�*%�+�,-./�012����3�45

6�789���:;�<=>?�@AB�CD9��2EFG�HI

J�!"#�$%&��K�>��L5/��M2N�O>?

���<=!�ßàNá�âãäå'�jb#��Û#Ü���

<�¬6��lR]9�����$����<=!���������J>

��âãäå�J�ä�� �> ������<=�ÌÍX�k-�ÝÞ�*

Û#Ü'�ø��¨q��� ]9��f��*���<=

x�-��45�XCG

��������� ����������� ����������� ����������� ��������������������������

ßàNá�âãäåq��������������*�Û#

Ü !��!�jb#�*�C���f���-� �̂2�3

�z9�\ �̂ <4��&X���^\�3-�2�3CG

\�X���^������'�V%q�Û[Ü .

JKL$�JML'�V%q�Û[Ü1�2�345� !�k

\89�Ç��\z�J��!�â��K���'�%&-�®6

=!�ý4'�Û#Ü�Ð!�"��/0\�\ïaù×

XCG��

.%=!�����'�íO�T�V%q�Û[Ü1

2�3!�Û#Ü'���<�¬6=g�Cï%*�XCG��

������������������������������������������ �� �� ��

�����������

~��HI<��������'����[)#�a

���� õö$��(��)*+,\]�z%f� &ö$�

����'�$������a���(s)\CG�ßàNá

�âãäå<='������(s)!�õ*ö.�Ì<�\�

]�3�8��������<=�O+�{WX�k\�l

PCG��F=����������a<�{WX��(s

)g��� ]�,{WX�k^-��-��*.�Û#

���& CG

¨q�^a9�ij����'�U�V��Î-��Ö7

!�df9�U/0sq�g^a7!�mkdir��$���k

^���������'�"#$�%&<��F�{WÀ!

k\�©�2�3�Ø*��- .�Û#Ü1�2�3CG�\

��������������������������������������������������PQRST�UVW��)��8X9���Y��Z[�\Y��]/��^ZT�UVW

4>?��[[_ S̀Saaa?b[��UVW?cbdS J�efg�h<i�j�4>?

k��]�lY��_[�\�l�[�cU�m��no�j�4>?

���� !"#�$%&'�$&(�)***+�%*,

��������

�X�����Ǭ#��k\�lP8�"#$�%&<

�F�x�`a�XCG

��� ��� �����

1ä��1�å!����âã�J���ä�á�ã�����U�V��

*�ÌÍ°�k\fg9�[��Ð!��������<=

Û#'��(s)��H-��­62�2�3]9�CÈ3

}�ä��â!�����Ý\4s��E'�[���5���(s

)\C6õ7G

z'��(s)!�]�X�"#'�%&�28-

®X�9S�:�$�Üc�n}o$�Å��CD��(s

)�'�­;�9S�:�4�Å\�<� ]�3CG��F

=�C2'��(s)<�3!�­;�9S��=�Ìý��

(s)'�]��%&�9Sq�X>?<�@a=�CÈ3

}��E'�ø8�)*+,�X�Ì*�g^ñ�`c��(

s)����V%q�¬¹�2\!�Û#Ü�A$��ja

zñ�°CG�1ä��1�å!�\�X����*�ÌÍ°�k

\CG

1ä��1�å'�jb#��������=��(s)�\

B<�¬6�1ä��1�å*�CVq�g^a+!�k\CG

¨q�^a9�ls�èDa<�¬69

$ ln –s ./busybox ls

\��Å\�6+c9�./ls�èDa�ø8<�¬6�busy-

box��ls*=��/ .�6E !�%&-�28 ñ

°CG�ÐX9

$ ./busybox ls

\��Å��èDa�ø84�Å��%&-�28XCG

�Ê�1ä��1�å!�öGF*�G�Hf�ÌÍ`a�3�

89�<�`a�3!��(s)^��CI$�ÅCG��

ar, basename, cat, chgrp, chmod, chown,

chroot, chvt, clear, cp, cut, date, dc,

dd, deallocvt, df, dirname, dmesg, du,

dutmp, echo, false, fbset, fdflush, find,

��������������������������������������������������pppq� r���(��:5/��V�s�cW�p?t�uXvw>?

free, freeramdisk, fsck.minix, grep,

gunzip, gzip, halt, head, hostid, host-

name, id, init, insmod, kill, killall,

length, ln, loadacm, loadfont, loadkmap,

logger, logname, ls, lsmod, makedevs,

mkdir, mkfifo, mkfs.minix, mknod, mks-

wap, mktemp, more, mount, mt, mv, nc,

nslookup, ping, poweroff, printf, ps,

pwd, reboot, rm, rmdir, rmmod, sed,

setkeycodes, sfdisk, sh, sleep, sort,

swapoff, swapon, sync, syslogd, tail,

tar, tee, telnet, test, touch, tr,

true, tty, umount, uname, uniq, update,

uptime, usleep, uudecode, uuencode, wc,

which, whoami, yes, zcat, [

®��Å���(s)^\��������<�O+

{WX�k��lP%�±²<��������'�"#$

%&<��F�#ÇJ��� .×� 89� busybox<

<��Q-z�� �Q!�k��busybox.def.h�i

j<=���1�2�345�`a�3]9��//�q�\�

.�9K#��q� c�� �L�2�3CG

���������������

�âã���Mâã4�1ä��1�å��deX�"#�*�g^

a»�k\C6N7G��âã���Mâã������*+�9����

�ç�T�dO?3�PH��-�/0-�®6�{WX�Q

�f��(s)q� z*�RS�k\CG��âã���Mâã�

����RÒ-�T��Q!��Ò�*�� ������!

�� �%&-��­ ]�3�89�1ä��1�åq�RU

!��(s)*���1�2�3�z�1ä��1�å�À\�V

W#�*���1�24�3CG� fg�¬:��HI<

Å\��� X�XCG��

ßàNá�âãäå����<�3!�YZ�ø8�ij^'

V%���âã���Mâã'�ø8�ij�V%q�dÏ6�Rc

CI$�ÅCG

�����������������������������������������������t���pppq� r���(��:5/�̂ �UsTcd�U�p?xy��uXvw>?

���������������� �����������������

��������

$ du –ch `which adduser deluser del-

group login sulogin passwd getty`

60k /usr/sbin/useradd

20k /bin/login

16k /sbin/sulogin

24k /usr/bin/passwd

32k /sbin/getty

152k total

$ ls –sh ./tinylogin

36k ./tinylogin

�âã���Mâã4�1ä��1�å���[�f*�O\�Ú�

*�`a�3a��������'�"#$�%&<��F

{WX�%&g-���#�*�<��Q-z�� �

]�g �̂2�3�89�tinylogin.def.h�ij<=

�//�q�\� .�9K#��q� c�� �L�2

3CG

���������

Nãâå��H'� �̂������)*+,�*�bash��.

���f�T�°�%&^-�_]�3a�~\��\]�3

!��V%��C[�VCG�bc<�ash!��I�/��V

%*=�^\��f!�%`#��%&^-�C��f]

3�8�>K��a��Bb\��íc-�f� ]�3]9

/bin/sh*�Úp .���1�24�3CG��F=��

������'� �̂)*+,�*�ashq�d� ñ�`

c�Û#Ü<�4e\�©�2�3CG�î]*�+��f�^

'�V%q�fgRc�CI$�ÅC6h7G

$ ls –sh /bin/bash

376k /bin/bash

$ ls –sh /bin/ash

68k /bin/ash

������������������������������������������ �� �� ��

ßàNá�âãäå����<���\�­i`a�'�\

*m`c�'�\�����W[^<�¬X�j%Ü�/0

-�»8 ]�\a=�����Ûj'�)*Ë�*�init

)*+,-�ø8�Q]9�init�)*Ë�!�)*Ë�

�ý�*��1�-�_!CG�\kñ�`c�����:l�Ç

m��Uþ`nC]�1�2�3�89�init )*Ë�!

����uv-�o]�ï#�ij����-���# !

���������<�¬X�j%Ü'�j:�p1-�qE

]9� /etc/inittab'� �Rq� î¯ .� ���

��<�{WX��ò*��)*Ë�^-�rZ�sCG

init )*Ë���rZ�s�ò�)*Ë�^��Ð�C

D�)*Ë�^-�g^%4� !��¨q�^c9�getty

)*Ë�!������*+�-��41�±� ��Mâã�)

*Ë�q�g^%4�XCG������<�3!�Oª�)

*Ë�^��âãâ��'��)*Ë�'��t^\CG�¨q

^a9�ßàNá�âãäå����'�)*Ë��Y�4�j:

q�Rc�CI$�ÅCG�init��Oª�)*Ë�'�:O

)*Ë�\89�+� �)*Ë�^<�¬X�:O���

t�Y���zhz3CG

$ pstree

init-+-apmd

|-crond

|-hanterm---bash---vi

|-sh---hanterm---bash

|-syslogd

`-xscreensaver---attraction

�F=�)*Ë�*��/1������(s)q�Û

#Ü !�k�ug�lPF�inittab'���-�¶·

Ü��]��������'�"#$�%&<�¼!�kg

28�Q45� .�XCG

ßàNá�âãäå����<=����~\��� !�init

)*+,�����vâãâ���Qf�ë<�3]9�������

�<=4�+¬*���1�2�3�89����âã�w<x

<=�����:l-�µy�ð�]�A$#�*�28

45�gª�start-stop-daemon��

�)*+,-�Å

����������������������������������������������� ���[�b[Z�[c_Zz�Y\cU;�$%&�{|��}/~%g���$�

���f$���CG�����C�M�:>?

���� !"#�$%&'�$&(�)***+�%*,

��������

\��� .�%&�T�-�4O1�2�3C6F7G��

�\�

!����vâãâ���Qf�ë<�start-stop-daemon�)

*+,4�Å\�^a�3CG

1ä��1�å<!����%`#���E'�init�%&4

<�`a�3CG�¨q�^a9�.��¶�'� äã��v��-

f� f�r�89�inittab�ij\�Àa4�CI$

Å��% �̀Ú��*��/1�24�3CG

::sysinit:/etc/init.d/rcS

::askfirst:/bin/sh

���������������������������������� �� �� ��

F\z�s�Û#Ü!�+��f��T<=�ôé1

2�3CG�{WX������(s)'�2��#Cc�­

��F\z�sq��� !�kRC!�����*�@

ij .�l �̈F\z�sq��� f�r45�1�2

3CG�bc<������(s)'�2��~Cc�­�

F\z�sq��� !�k\�µ�A$#�*�Û#Ü

©�2�3CG

­��F\z�sq��� !�HI<�Oª�F\z

�s��C�{WX�k��lPØ*������(s)�

{W*� !�F\z�sg�<��Q45� ]9�~�

%&-�_]�3!�ÛÔ�F\z�sq��� !�kR

C!�{W*� !�%&\�f�`]�V%4�/Cc

Y��G�'�F\z�sq��� !�k\�µ�A{#

j�k\CG

¨q�^a9�glibc-2.1.2��Qf<�'6�g^a

»�libc-2.1.2.so�F\z�s'�V%!�CI$

ÅCG

$ ls -sh /lib/libc-2.1.2.so

3.9M /lib/libc-2.1.2.so

bc<�Y��G���³ �́/��V%\CG

$ ls -sh libc.so.6

340k libc.so.6

�����������������������������������������������x��PQRST�UVW�$%&�����7�g�e~�����vN���

�� J�9�o�j�4���9���� �8D�����g��

95/�h��j�4��L�>?

ßàNá�âãäå�%b'�>?����<=!�R;�ÛÔ

F\z�s��Úp`a�3�8�libc.so.6q�libc

-x.x.x.so*�CV6+]�3CG

$ ls -al /lib/libc.so.6

lrwxrwxrwx 1 root root 13 Apr 19

12:53 libc.so.6 -> libc-2.1.2.so

�J�1ä��1�åq�\� !�HI<�@ij°�busy-

box��(s)!�/lib/libc.so.6�F\z�sq

<� .�/lib/libc-2.1.2.soq��� %<!

4|�V%�±²<�/lib/libc.so.6�Y��F\z

�sq���6�XCG

�������������������������� �� �� ��

�âãäå�'�-�gS!�$�<�~�������^\

3�8�\<�'6����%&�O\\�'�<�<�`

a�g^a¾�2�3]�� ©�24�3�8�{WX�±

g���#�*�'�*�*m`nC��{W�À-�±

�-`!����*�g^a¾�2�3CG

�F=�'��Û#Ü'����*!�l �̈{W�À

!�%&-�� -z�¬���&X�Û[�%&�O\

-��� -z�'��O\'���#�*m���*�z

|�2�3CG

¨q�^a9�}#~�\�{W�À!��������

\Fc��?>á�>�}#~��O\-�� 1�2�3]9

�?����Bb\�q��� f�r]����q���

f�r!Cc�\�%&�ÐX��-1�2�3�89�+�

'�~��%&^<�¬6=4�,{WX�k\Fc��â!

ãäå�'��@ij���<=�� 45���XCG�Ð

X�ßàNá�âãäå����\�7*��� !��å�N�ij

����¬Ô<�âãâå�ij����-���24�3]9�u

v��pq��� f�r!��������\Fc��â!

ãäå�uv�¬Ô<��st�uv-��� 45�1�2

3CG���*���1��&Z\�3!�%&�O\<�¬

6=!��I:B�'�<�<��Q!�kRC!�O\

*m����*�'�-�g^45� .�'���:<

<��Qf!�rfg�T��{W<��F���1�2

345� !�k\�µ��CG

���������������� �����������������

��������

������������� !�� !�� !�� !������� �� �� ��

¬:�'�)*+,$�F\z�s^��%`#�

*���X�?>N<�¼ñ�g^af]9�ÐX�UG���

�-��f]����N*�ß??���<=�–g��–O2��@

ij�`45� ]�3CG�g��"É*� !��p<=

g��� ]�CD��p<=���1���\�ÀCc

@ij���-�Ý�a�"É����<�¼ñy�Û#Ü

1�2�3CG��9���µ�û��Û#Ü���-�#� ]9

UG����-�<��Qf�r45� 89�"���

�'� S�a����<�¼45�@ij !�k\C

6*7G

����� !"��#$!���

[��9Sq�@ij .�g^af!�ø8�)*+

,'�V%!�a����'�@ij�q��� ��<

�F�½F¾�2�3]9�Å��@ij�q��� µF

4�a��G�'�?�F\z�sq��� ��<��F

½Ff%4�XCG

�F=�ø8�9S�Û#Üq�®X��Ò�*=�"É

*� !����'� S�a����<�Û#Ü�s��

��@ij�q�Yn !�k4�]Ö .×�XCG�+�

z�~��HI<�ß??����@ij�q�\�XCG

ß??�@ij�q�\�XCc�F\z�s�G�'

m\<��D�V%�PÜq�dÏ6�R]��� c�©

k\CG

���%&'�()�*+

\��g^a»�Ý\4s�ø8�)*+,�*:B

UG����-��- %�®6=!�l���Å��strip

)*+,-�\� c�°CG�.��Ì'�ij<=�U

G����-��- ]��1�±!��jS�¥S��*��É

�q�\�1�2�3CG

$ strip –strip-debug filename

Ð!

$ strip –strip-debug /usr/bin/*

ø8�)*+,-�g^%�®6�@ij !�HIF

c�l �̈UG����-�<��Qf�r45�@ij

c�©�k\CG��F=�ß??�@ij���<=�–g��

�-��45�XCG

�̂)*+,��bash�ø8�)*+,<�¬6�UG

����-�<� !�HI��+kf�r��HI<�¬

X�dÏ���q�Rc��É�õ�$�ÅCG��F=����

��<�,{WX�UG����^-��- .� 89

/lib��/usr/lib<�3!�glibc��gcc�ij^-

UG����-�<� !�k$� f�r!�k-�dÏ

.�Rc�+�m\��µy���6=���L1��õ�L1

F!�m\q�R\]�3CG��F=�bS��UG���

�^-�<� f�r45�@ij6�XCG

cdefgehijeklemnoepqers

��]�a�[��zY�Vdd�Ud

�s\�c��

a�[�cV[�zY�Vdd�Ud

�s\�c��

�[�[�� �?k�� t��

zsU�\�� �?��� xy��

����� �,-�./0

@ij�Û#Üq�®6��� !�����–O��9

–O09�–O19�–O2�T�–O3�}��f*�z�CG�–O0���

��Û#Üq� f�r!C!� \]9�¡���û-2

5�Û#Ü�2¢\�ûl»CG�=='�m\!�ß??��

��Úè=q�î¯ c�°CG�ÐX�@ij-�1�±�"

É����'� S�a�Y¯q�è� .�Û#Ü !

k\��CG

\�X�Û#Ü�%&-�28 45� %�®6�%

�̀@ij���-�PH6×� !�9�£?¤����

*!�@ij�¬��[��9S��Qf��<�3!�Oª

Makefile<�^a�3!�CFLAGS�ß??�@ij���

���T�CXXFLAGS�ߥ¥�@ij������P2q�#

ÇJ�2� !�k\CG�+�z�Oª�U/0sq�¦l

=�jj\�2� !�k��aÖ��j\Ø*�CFL�AGS

��CXXFLAGS��H�P2q�g^a=�Makefile<

3!�P2<�I�XC!�k-��Ö7!�k\��CG

\k��make<=�–e���-��� c�°CG

���� !"#�$%&'�$&(�)***+�%*,

��������

1M��� �̂�H<=�CFLAGS��CXXFLAGS��H

P2q�g^a�7!�����CI$�ÅCG

$ export CFLAGS=”-O3 –mcpu=xxx

–march=yyy”

Ð!

$ export CXXFLAGS=”-O3 –mcpu=xxx

–march=yyy”

.%<=�xxx��yyy!�#ÇX�?>N��ý�q

'� !��¨q�^a9��§��ö����?>N'�HIF

c�i686\ �̈�ý�q��� c�°CG��9�CI'

¨��ÅCG

$ export CFLAGS=”-O3 –mcpu=i686

–march=i686”

+�z�\�X�@ij����¬p�������'

CFLAGSz�CXXFLAGS��<��V*z�CD���-

<� ]�3-�±�²�q�j�L�2�3CG��9���

<�3©�@ij���\�� ©��&Z\�3!�k\

CG��F=�\�X�²���&Z-�ª+<�+]��'

.�/06×�XCG�make��make –e�+��f�@

ij<�¬X�x$q�dÏ6�`Cc�a��²���Í

r !f���2�3-�k\CG

����������������������������������������������������������������

�����!�hG*��U�«�X��-�õG�NNL1�]�Î

L�!�K�����*�g^a�Û[�'�ßàNá�âãäå

���-�YZ1�2�3!�'�9������(s)�T

% �̀(�-�q]�3�89����<�²���r¬-

±�(i�­Y��:l�U�«�*��� %�®6�g

ª�k\C6�7G

�F=������!�+��f�Y;<=�fg��2�3

!�9�L�!�K����'�õG�NNL1�U�«-�ßàNá

�âãäå�����:l-�1�2�345� !�k$�õG�NN

L1�L�!�K��U�«�X��<�Û[��ßàNá�âãäå

���-�YZ1�2�345�Û#Ü !�k\CG

���"#$%&'()*����"#$%&'()*����"#$%&'()*����"#$%&'()*�������������������������

Oª�>?��������-�®��<�JKL�1�K�'

9Sq�ø8 !�k�*:B��/-��/ ]9�7a

»�����;¯-��S��<�:#�SF\z'�°S�ö9

ø£µ�ö9�±B�õ'��s<�3!�:#�±Bq�JML

�*�*m��� âãM�XCG�+:��<�)*+,�ø8�

*m°�:#�9S*�²a�ñ�°C6�9��7G

¬:�'�:#�SF\z�°S�ö9�ø£µ�ö9�±B

õ'��s<!�CI�+��f�HI�����X��f�

^a�3!�9����K��Å��:#�*µ��3-z��â!

ãäå��Å�������'�'��/;\�3CG�

g���âãäå�'�-�U�«\z� S�SF\z'

£?¤�±B*:B�*m6=�:l-��Qñ�`c�1�

K��9S��ø8°��<�³Ý*�'��:l\��/`

ñ�°CG�+�z�\:��������������q

��*\���1�2�À!��X-�g^ñ�`Ø*�:

#�*µ�������� � �q�\� .�:l�Çmq��a

1�2�345�XCG

:#�*µ!�Å�� S�a����<=�¶f�C

��:lg���*.�� !�����q��� .�C

D�����*���1�2�345�XCG�ßàNá�âãäå

���<=����~\��\!�:#�*µ!����K\

89�'�\�3!�®pq��]�3a�'��*m-� ]

ø8�Q45���*.���#��:l-��/ 4

5�XCG����K�:#�*µ!�:#�±B<�_�`a

3]�lilo.conf�ij<�:#�*µ<�¬X��H

�-� 45� ]�3CG�lilo.conf���ij-

2� .�lilo�)*+,-�ø8�Qc�2�°����K

:#�*µ��:#�±B<�C��_�°CG

��-�]]�:l\��/`c�1�K�<�'6� ��

�����������������������������������������������y������.��t�����/���G��45 ¡�����. ��

��/¢�£¤�¥G�4��j3�4�¡����/¢����

¦J�����.�§��*�.�¨©ª«�e�o�j�4>?�¬e

����­��®«/�T�UVW­�¯;�°¨¤C�¦±3���

�.����e��.�¦±��$²vG�*�.�¨©ª«�e�

³��j�4>?�´�/�T�UVW�¦±��µ�1�t����� �

���/¢�¥G�4>?�¶mJ��.��·« ����/¢g

¸¹2«�º�¡�T�UVW�¦±��»¢m3��'9������

�2>?

���������������� �����������������

��������

�K�:#�*µ��*m`a�:#�*µ�9S��ø8°

CG�����K�:#�*µ!�������:l<�YZ°��

��iF�Bq���1�2�3!��Bb\�q��­

89�

���<��F�'�-�*m -z�CD�����

'�:#�±Bq�*mXCG�\a=�*m°�'�\z

ò*��:#�9S��ø8`!�9��âãäå�'�\�*m

°�HI<�=�� S�a��p^<�¬X�; �̄T�j

%Ü� /0-� ]� ï#� ij� ���-���#X

CG���

ï#�ij����\���#`]�zc�'���i

j������<�3!�init�)*+,-�¦l�ø8�

sCG�\*.�����Ûj'�)*Ë���rZ`]9

âãâ��)*Ë�!�inittab�Ú��ij<��F�f�°

/0-�28XCG

\�X�/0����� z*=�sysinit��VW#

q�¦l=�ø8�sCG�\��VW#!�����%`

=d�q��­1�2�345� !� �̂èDa^'�´R

�*�\ïaù�3!�9�Oª�U�V<�¬6�fsckq

ø8�Q]9�{WX�'��O\^-�*m 89���

µ$�}#~V�j%Ü�/0-�28�Q]9�fstab<

%5`a�3!�U�V���l�/0-�28�Q]9

+� '�CD��VW#^4��/�sCG

sysinit��VW#��/0-�¶�]�zc���

���a�üX-�C��âãâ��)*Ë�<ñ�·Ö7]9�âãâ�

)*Ë�!�inittab�ij'�initdefault<�É

�`a�3!� �¸ä��� äã��v��*�»nXCG�;�'�H

I<� äã��v��������uv$������\'�;Ô-

�����������������������������������������������¼�����/¢�¦±��/½2NJ�¾��¿À�Áj¥��£ÂM

Ã�*¡�TÄT����� ����c?�cUÅ�Æ( �@�!���Ç"O

>?�>ID�¿À�Áj¥ �8D�¸È���[[_`SSaaa?��UVWZ

zc�?cbdS��É^�S�cc[Êbc\_[Z��É^�?�[\��ËJ �4>?

�p��Ì%Í5/�.���v����­�¯;�'Î J�����

��Æ(�$%&;�����Ì%��"¹/�/½vÏ�D>?��

Ð�Æ(�$%&;��¹�2E�Ì%� �4��LÑÒ�����

��D>?�Æ(�$%&������Ì%�/�/½2��*��»

«��Ó�4�*¡�Ô·Õ��Ö/×�Ì%�Ø>�����

Ù��ÚÛ��ÐË �$%&�ܲ5/�ÚÛ��o�j�45 ¡

»·Õ��¦±��Ö/×�Ì%�/�.�ÝÞO�#ß��Æ(

$%&��/½2à�����Ì%�/�áGJ�/½o�j�45

â/�Ì%Í �Ø>�ã��ä�����Æ(¥��å<æ�j�4

��ÐË�>?

qE !�M����q�zh�%�®6��\!�9�M����!

�login:��)¹)#q�É� ]9������ç�T�Ë

�-�Ys !�login�)*+,-�ø8�sCG�\

*.�:l�Çm!�Uþ`]�����*+�-�®X

¬%��E*�3ñ�°CG

���+,-./���+,-./���+,-./���+,-./����������������

�����q�®6��� !�U�«��L�!�K���

�-��� ]�3CG�+�z�U�«'�:#�±B<!

L�!�K�áºâã ����»M��ij����<�_�`a

3!�ßàNá�âãäå�����q�*m %�®X� �¼�

��àNa��:#�*µ��^a�3C6&7G����K��deX

"#\%!� fg�µy�æ¶ ñ��âãäå�'��*m

-�1�2�3ñ�67]9�L�!�K��èDaq��f]�½

ñ�U�«<=�ij�Ysq�1�2�3�Ø*�(i�

p��Ð!���X�"#'�:#�U�Vq�gS!��

<���CG

�F=��¼���àNa!�jb#�"#'����:#

*µ��*!�#E f�r]9� L�!�K�áºâã ���

»M��ij����<='�ßàNá�âãäå�:l��*g

��2�3CG�å�N�ij����<=!����Kq���

!�k\��]9�L�!�K��)¹)#<=�'�-�*m

]�� !�HI<!��KM���à\��CG

:#�±Bq��»�L�!�K��U�«-�g^a=

�¼���àNa�:#�*µq�Úp c�ldlinux.sys

ij\�rZ`]9��âãäå�'��*m��H-�Ú� !

ij*�lilo.conf��de ñ�syslinux.cfg

ij-��¾� c�°CG�Ú� !���4����K��d

e CG�¨q�^a9�CI$�Å�8��ËX�Ú����

���¼���àNa��Qf�ë<�^a�3!����Úè=

q�î¯ c�°CG

DEFAULT rescue

LABEL rescue

KERNEL kernel

APPEND vga=normal load_ramdisk=1

prompt_ramdisk=0 ramdisk_size=2800

initrd=rescue.gz root=/dev/ram0 rw

���� !"#�$%&'�$&(�)***+�%*,

����

DISPLAY message.txt

PROMPT 1

®��Å��syslinux.cfgq��f]�:l-��]

Rc�CI$�Å\��/XCG���-�]]�1�K���ø

8`c��*¿�SF\z*:B�:#�±B��ldli-

nux.sysq�Àa�^\]9�\±�*m°��¼���àNa

:#�*µ!�syslinux.cfg�ij-�î¯ .�/0

-�28XCG�®�P2^<�¬6�æ¶J�Úè c�C

I$�ÅC6õö!õN7G

• �%`#�*�Ú�`!�:l�'��� ���ä��F�<

�5`a�3!�k\C�DEFAULT rescue�G

• � ���ä��F�\���°�HI<�UÁ#*�*m1

'��\B��� �\C�KERNEL kernel�G

• �:l1�±���1��ßM�Ã�#�OS!�ã� ��O

S*=��öåN*\C�vga=normal�G

• �:l`!��Ò����M�G�å��ij-�Üc<�R.

¢C�DISPLAY message.txt�G

• � JML�U�Vq��� ]�V%!�N9�öö�1\C

�load_ramdisk=1 ramdisk_size=2,800�G

• � JML�U�V�\�fq��»��*¿�U�«-�Ä

n F!�)¹)#q�R.7f�r!C�prompt_

ramdisk=0�G

• � JML�U�V*�j%Ü�*m1�ÅÆ�ij��res-

cue.gz\]9�ï#�ij����'�®p!�JML�U

�V\C�initrd=root.lrp root=/dev/ram0�G

• �:l`!��Ò<��boot:��)¹)#q�É� 4

5� .�a���M1�'�'�-�*m1�k�f�n

o1�2�345�XC�PROMPT 1�G

�������Qf��^a�3!�L�!�K��U�«<

!�CI$���ij^\�^a�3CG

$ mount –t msdos –o rw /dev/fd0H1722

/mnt/fdd

$ cd /mnt/fdd

$ ls -al

total 1622

drwxrwxr-x 2 root root 7168

Jan 1 1970 ./

drwxr-xr-x 27 root root 4096

Jun 23 16:42 ../

-rwxrwxr-x 1 root root 658523

Jun 24 14:57 kernel

-r-xr-xr-x 1 root root 5860

Jun 24 14:43 ldlinux.sys

-rwxrwxr-x 1 root root 858

Jun 24 14:58 message.txt

-rwxrwxr-x 1 root root 982177

Jun 24 14:56 rescue.gz

-rwxrwxr-x 1 root root 527

Jun 24 15:15 syslinux.cfg

���+,-./���+,-./���+,-./���+,-./�����"#$%&'()*��"#$%&'()*��"#$%&'()*��"#$%&'()*��� �� �� ��

�������Qf<=�ßàNá�âãäåq�Û#Ü !��

���\���=����<=�ÚèX�k$�ÅCG�'��

�âãäå�NGNGõFq�@ij .�gª�k\]9� S�U�

V�%b'�%Ù�ßàNá�âãäå����<�Çi��ì'

(i�­Yq�®6��� ]�� !�k\%�±²<

'��Û#Üq�1�{W��À�89�%Ù�'��@ij

��-�+¬*��� fg9�JML�U�V��JML�U

�V�j%�initrd����$���������p�f�

������ .×�XCG�+�×g�JML�U�V�

<�ï#�ij����-�YZ .�:l-��L�2�3

%�±²\CG

�F=������<='�ø�#��Û#Ü!�ï#�i

j����-�YZ1�=��ij^'�V%q�Æ[�Q

!�k\CG����'�¶<�zo`a�3!�ij�"5<=

rescue.gz��JML�U�V�<�Úp©�ij���

�\�^a�3!�ij\]9�\k'�V%q�Æ[�L

Oª���^-��� c�`!�k\CG�.%<�#�

`a�3!�Û#Ü'���^��\���=�ÚèX����

'�Oª���^\CG

\ �̂Û#Ü'�X��f�¨*=������!�1ä��!

1�åq��� .������(s)�Û#Üq� ]�3

]9�init�)*Ë�q�ø8�Q%�®6�/etc/init-

���������������� �����������������

����

tab�ij�À\�1ä��1�å'�âãâ��%&-�ÝÞ�*��

/ ñ� ]�3CG�1ä��1�å'�âãâ��%&��.��¶

�'� äã��v��-�f� f�r45�`a�3a����

*+���H4�f� f�r!CG�\�±²<��âã�!

��Mâã�Û#Üq�\�1�{W!�ÀCG

rescue.gz!�CI$���U/0s��YZ��

(s)�T�(��ij^*�YZ`a�3CG

$ cd rescue.tmp

$ dir –l

total 52

drwxr-xr-x 2 root root 4096

Jun 18 10:30 bin

drwxr-xr-x 2 root root 4096

Jun 11 08:06 boot

drwxr-xr-x 2 root root 8192

Apr 15 05:35 dev

drwxr-xr-x 2 root root 4096

Jun 10 07:09 etc

drwxr-xr-x 3 root root 4096

Jun 19 23:46 lib

drwxr-xr-x 9 root root 4096

Dec 7 1999 mnt

drwxr-xr-x 2 root root 4096

Aug 15 1998 proc

drwxr-xr-x 3 root root 4096

Dec 15 1999 root

drwxr-xr-x 2 root root 4096

Jun 18 09:01 sbin

drwxr-xr-x 2 root root 4096

Jan 9 1999 tmp

drwxr-xr-x 7 root root 4096

Jun 18 23:35 usr

drwxr-xr-x 5 root root 4096

Feb 8 18:41 var

�����<=!�rescue.gz�ij-�g^%�®6

genext2fsF!�ø8�)*+,-�\� ]�3CG

®'�¨��Å��U/0sq�g^]�Û#Ü�%ó-

#� .�{WX�ij^-�=�U/0s<�È]�zc

:l©�±<�j%Ü�*m�initrd����<=�*m

©�2�345� %�®6�ÅÆ .×�XCG

\kñ�g^af!�ij������ï#�Ys��

jb����q�Y� .�=*�CD�üX�*����

-��� 45�YZ`%�±²<�Y�1�{W��À!

�������$�Å���2X��H<=!�,É ñ

1�u\CG

+�=�genext2fs�)*+,-�\� .�jb

����üX'��å�N�ij����-�g^a�jb��

��4��p�ÊSq�g �̂2�3!��'�j\��&

45�XCG�rescue.gz�ij��rescue.tmp�U/

0s�ë<�^a�3!�Oª�U/0s��ij^-�C

I$�Å��genext2fs�èD�*�jb�����üX

'��å�N�ij�����Úp��ij*�g^a=�ÅÆ

X�k\CG

$ genext2fs –r 0 –i 600 –b 2800 –d

rescue.tmp rescue

$ gzip –9 rescue

$ ls –al rescue.gz

-rw-rw-r-- 1 root root 982177

Jun 24 14:54 rescue.gz

genext2fs<=�–r�����¨�1�Ë5'�2q

zh�]9�-i�����âã� �'�2q�zzE]9�-b��

���Ë5'�V%q�zh�]9�-d�����¬��U/

0sq�zh�]9��f�'�k����x$q�g^

a��ij�\B\CG�\kñ�g^af!�Û��res-

cue.gz�ij-��f]�j%�*m-� 45� ]

3CG

\kñ� .�JML�U�V*�*m`!�ï#�ij

������å�N����*���#°CG

�����'�/etc/mtab'���<!�CI$�Å\

^a�3CG

/dev/ram0 / ext2 rw 0 0

/etc/fstab'���-�fgRc�CI$�ÅCG

Proc /proc proc defaults 0 0

���� !"#�$%&'�$&(�)***+�%*,

��������

������������������������������������������������

�J>!�õGFFL1�U�«�X��<�Û[�'�ßàNá

�âãäå����-�YZ1�2�3!�'�9������(

s)�T�(�-�q]�3�89��ø��|�f�*�Y

�<�GÖù�3!��§��öh��9��öF��$�Å��Y�

���-��f]�[��FIB*�g �̂2�345�

%�®6�gª�k\C6õh7G

�F=��J>���4������'�HI���[�f*

+��f�Y;<=���2�3!�9�X��f!�L�!�K�

��'�U�«�*:B�ßàNá�âãäå�����:l-

1�2�345� !�k\]9�CD�X��f!�õGFFL1

Ð!�õG�NNL1�L�!�K��U�«�X��<�Û[��ß

àNá�âãäå����-�YZ1�2�345�Û#Ü !

k\CG

���&01���&01���&01���&01����������������

�J>q�®6��� !�U�«'�ij����4��

����'�HI��Å\�L�!�K����-��� ]�3

�89�L�!�K���*¿�U�«�*:B�ßàNá�âãäå

����q�*m %�®6��¼���àNa�:#�*µq

��XCG

�J>�U�«<!�CI$�Å��ij^\�^a�3

�89�lrp�"��q��»�ij^��tar*�@.ù

gzip�*�ÅÆ`a�3!����*�\ïaù�3CG

�9�*.lrp!�*.tar.gz��U�J�ÌÅCG

$ mount –t msdos –o rw /dev/fd0 /mnt/fdd

$ cd /mnt/fdd

$ ls -al

total 1222

drwxrwxr-x 2 root root 7168

Jan 1 1970 ./

drwxr-xr-x 27 root root 4096

Jun 23 16:42 ../

-rwxrwxr-x 1 root root 32889

May 29 1999 etc.lrp

-r-xr-xr-x 1 root root 5476

May 29 1999 ldlinux.sys

-rwxrwxr-x 1 root root 362995

May 29 1999 linux

-rwxrwxr-x 1 root root 488

May 29 1999 local.lrp

-rwxrwxr-x 1 root root 628

May 29 1999 log.lrp

-rwxrwxr-x 1 root root 52302

Jun 23 16:46 modules.lrp

-rwxrwxr-x 1 root root 782604

May 29 1999 root.lrp

-rwxrwxr-x 1 root root 179

Jun 23 16:52 syslinux.cfg

-rwxrwxr-x 1 root root 515

Jun 23 16:51 syslinux.dpy

�J><�^a�3!�syslinux.cfg'���-�R

c�CI$�ÅCG

DISPLAY syslinux.dpy

TIMEOUT 0

DEFAULT linux

APPEND=load_ramdisk=1 initrd=root.lrp

initrd_archive=minix ram-

disk_size=4096 root=/dev/ram0

boot=/dev/fd0,msdos

LRP=etc,log,local,modules

®��Å��syslinux.cfgq��f]�:l-��]

Rc�CI$�Å\��/XCG���-�]]�1�K���ø

8`c��*¿�SF\z*:B�:#�±B��ldli-

nux. sysq�Àa�^.��¼���àNa�:#�*µq�*

m ]9�\±�:#�*µ!�syslinux.cfg�ij-

î¯ .�/0-�28XCG�CI$�Å����^\

�'`a�3C6õö!õN7G

• � :l`!��Ò� syslinux.dpy� ij-�Üc<

R.�¢C�DISPLAY syslinux.dpy�G

• �*m�¬��'�-��� %�®6��­ !���boot:�

)¹)#<=�����no�¬%��æ-�7f�r4

���������������� �����������������

��������

5�XCG��9�����no�À\�CI�¶�*�²a

æC!� \C�TIMEOUT 0�G

• �UÁ#*�*m1�'�'�\B��linux\CG�����

NÇ'�������HI<=!�UÁ#*�ø81�k\

rescue�F�-��»�:�\89�rescue�F�<

3!�KERNEL�P2<�#�3!�ij�\B-�'�

*=�*mXC!� \CG�+�z��J>'�HI<=

!�DEFALUT�P2<=�*m1�'�'�ij�\B

-�� 45� ]�3CG��F=�DEFAULT�P2

!�LABEL\�3���À��<��F��æ�CD�'

�q��»C�DEFAULT linux�G

• � JML�U�Vq��� ]�V%!�F9ö&��1\C

�load_ramdisk=1 ramdisk_size=4096��G

• �ï#�ij������JML�U�Vq��� ]9�:

l1�±�JML�U�V*�j%Ü�*m1�ÅÆ�ij

��root.lrp\]9�JML�U�V<�3!�ï#�i

j����\���1�ij����'���!�minix

\C�root=/dev/ram0 initrd = root. lrp

initrd _archive =minix�G

• ��J>����-�YZ %�®6�ï#�ij�����

*�*m1�ij^��etc.lrp9�log.lrp9�local.

lrp9�modules.lrp\CG

• �����:l�®p!��*¿�U�V�SF\z\89

L�!�K��ij�����*�\ïaù�3CG�\�®

pq��c� S�U�V*:B�:l-��/ 4

5�1�2�3CG��9��*¿�U�«�*:B��¼�

��àNa�:#�*µq�Àa�^���<�boot�P2<

f�°��[<=�'�$�ij�����T�+� �{

WX�ij^-�*m 45� !�k\C�boot=/

dev/fd0,msdos�G

syslinux.cfg� ij<=� ßàNá�âãäå� ���

\���1�ij�����*�âãâåq��� Î%�±

²<�/etc/fstab'���<4�\k-�É� !��

�\�l�'�¨��Å\�^a�×�XCG

# /etc/fstab: static file system in-

formation.

#

# <file system> <mount point>

<type> <options> <dump> <pass>

/dev/ram0 / minix rw

proc /proc proc noauto 0 0

���&01���&01���&01���&01�����"#$%&'()*��"#$%&'()*��"#$%&'()*��"#$%&'()*��� �� �� ��

�J>!�ßàNá�âãäå����<�¬X�(i�­Y�

\�lPF�jb�>?q�FIB�¢�*�gS!��4\

%�±²<�������!��æ�CD�Û#Ü���-��

]�3CG

�J><=!�ßàNá�âãäå�FIB����-���

]�� %�±²<�~�������(s)��{W�À

a�/bin$�/sbin�U/0s<�/��2'������

(s)q�<� ]�3�89�:�#�*�}#~V�Y

s���(s)^-�_]�3CG��F=�1ä��1�åq

\�1�{W��À!�k�*�R�CG

����*+�-�®6��âã���Mâã-�\�X�Û#

Ü!� f�r]�3�z�CI$�Å��Û[�'�*+

���H-�g^a��� ]�3CG

$ ls -al ./bin/login ./usr/bin/passwd .

/sbin/getty

-rwxr-xr-x 1 root root 22968 Nov 3

1998 ./bin/login

-rwxr-xr-x 1 root root 12156 Mar 10

1999 ./sbin/getty

lrwxrwxrwx 1 root root 15 Jun 26 13:

19 ./usr/bin/passwd -> ../../bin/login

F\z�s�Û#Üq�®6����<�{W�À!

~��F\z�sq�� ]�3�z��J>�FIB��

����(s)<�{WX�F\z�sq�¾�#�*

�� ]�3a������RC�~����'�k-���

]�3CG

�J>'�'����âãäå�NGöGh�� �õ*q��� .�~

��%&^-�O\*�¾� .���2�345�g^a»

k�*=�'���<��� !�kRC!�³ �́V%�

/CG�\<��F�O\<�¬X�ij\�3!f�.:<

�F�6E�%&<�¬X�f��.:��x�°CG

���� !"#�$%&'�$&(�)***+�%*,

��������

$ ls -sh linux

360k linux

ßàNá�âãäå����'�Û#Ü!� ������� �J>

��<=��Å\�"#$�%&<��F�C¸X���-

;6�\ïa»CG

������������������������

�������-�®X�ßàNá�âãäå'�Û#Ü��

��������(s)�T�F\z�s^-��&X�X

/��V%*�gS!��<��\�3CG�\<��F�N

Ç<=������(s)�Û#Ü9�¶·Ü°�:l9�'

��Û#Ü9�F\z�s�Û#Ü9�@ij��Û#Ü��

'���^-�fgRÐCG

\�X�Û#Ü'���^��jÑ#�*�ÌÅ\�#

�`!�k\�lPF�"É*� !����'�"#$

%&��Z<��F�ÒI`!�k\Ø*�RC�A$#�

*�Û#Ü %�®6=!������Z-�Ó_�]Ö

!�k\��CG�+�x$<��F�|'�X�Û#Ü��Í

Ô©�2�3a�rÕ1�24�3]9�Oª�Û#Ü�%ó-

C���6×�1�24�3�89��3�¬Ö#\a=��

�6� !�k4�3-�2�3CG

\�X�Û#Ü�%ó-�;6�-¬ %g�ש�ßàN

á�âãäå����\��I��X#�� S�a��/��H

ë<=4���©�2�345�g �̂2�3CG

!"# !"# !"# !"#

ç�è��V�s�cW¡��[[_`SS�V�s�cW?��UYc?�c\S

ç�è�̂ �UsTcd�U¡��[[_`SS[�Us�cd�U?��UYc?�c\S

çkè����¡��[[_`SSaaa?zY���U?cbdSÊ����dY�SVU�[���YS��Y���

S���?�[\�

çè�]s�é�U�[¡�Å[_`SSÅ[_?���[bcU?U�S_V�S_Yc_�YS\�êVY��S�s�

é�U�[S

çtè�PYb�bz��YY�\�U�¡��ëc\_��Yb��_[�\�l�[�cU�¡���[[_`SS

aaa?���UVWÅbc\��b�[��?cbdSé�YaS

ç è�ì�Ä]�¡��[[_`SS\Y[����?VU�?YzVS_V�ST�UVWS�s�[Y\S

bY�céYbsSíÄQ�îï?�[\�

çxè�̂ c\���a�Y[[¡���

^�Y�T�UVW��cc[z������É^�¡���[[_`

SSaaa?��ZUVWzc�?cbdS��É^�S�cc[z���Z��É^�S

�UzYW?��[\�

çyè�ð�°¡�ð�ñ¡��PQRST�UVW�$%&�������¡���ppp?

x?�?

ç¼è��?�ÊY[Yb��Ué�U¡���

]ò]TÄQRï������cc[�Tc�zYb�Åcb�T�UVW

R��Ud��]Z��]���c__�Y�?�

ç�pè�ÉYbUYb���\Y��YbdYb¡��TÄT��R�Yb���PV�zY¡��Å[_`SS

\Y[����?VU�?�YzVS_V�ST�UVWS�s�[Y\S�cc[S���cS

ç��è�Ê�V��Pcb[\��Yb¡���

^�Y�T�UVW��cc[Êbc\_[Z��É^�¡�

�[[_`SSaaa?��UVWzc�?cbdS��É^�S�cc[Êbc\_[Z��

É^�?�[\�

ç��è��R��Ud�[�Y������������c����Yé��Y�a�[��T�UVW¡��SV�bS

�b�S��UVWS�c�V\YU[�[�cUSb�\z���?[W[

ç�kè�T�Ê�T�UVW��cV[Yb�ÊbcóY�[¡��[[_`SSaaa?��UVWZbcV[Yb?

cbdS