ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Π°Ρ ΡΠ°ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΠΈΠ½ΡΡΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΉΠ»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ΠΌΠΈ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π»ΡΡ ΠΏΠ°ΠΊΠ΅Ρ glibc. ΠΡΠΎ ΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², Ρ.ΠΊ. ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠ°ΠΉΠ»Π°ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠΎΠΏΠΈΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, ΠΌΡ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΎΡΡΠ°Π½ΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ·ΠΆΠ΅ ΠΌΡ ΡΠ΅ΡΠΈΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ΄ΡΠΎ.
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΡΡΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ ΡΠ΄ΡΠ° Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ /usr/src/linux. ΠΠ»Π°Π²Π½ΠΎΠ΅, ΡΡΠΎΠ±Ρ Ρ Π²Π°Ρ Π½Π΅ Π±ΡΠ»ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΡΠ»ΠΎΠΊ /usr/include/{linux,asm}.
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Linux
ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°: Π²Π΅ΡΡΠΈΡ 2.4.18.
Π€Π°ΠΉΠ»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ
Π―Π΄ΡΠΎ Linux ΠΈ Π΅Π³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ
ΠΠΏΠΈΡΠ°Π½ΠΈΡ
Π―Π΄ΡΠΎ Linux
Π―Π΄ΡΠΎ β ΠΎΡΠ½ΠΎΠ²Π° Π»ΡΠ±ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Linux. ΠΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Linux, ΠΏΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ β ΡΠ΄ΡΠΎ. Π―Π΄ΡΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ: ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΡΡΡ, Π·Π²ΡΠΊΠΎΠ²ΡΠ΅ ΠΈ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΊΠ°ΡΡΡ, ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ IDE ΠΈ SCSI ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. In a nutshell the kernel makes the hardware available so that the software can run.
linux kernel headers
ΠΡΠΎ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌ Π² /usr/include/{linux,asm} Π² 5-ΠΉ Π³Π»Π°Π²Π΅. ΠΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΌ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π±ΡΠ» ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ glibc, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ ΠΏΡΠΈ ΡΠΌΠ΅Π½Π΅ ΡΠ΄ΡΠ°. ΠΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Linux
ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°: Π²Π΅ΡΡΠΈΡ 2.4.17.
Bash: sh Binutils: ar, as, ld, nm, objcopy Fileutils: cp, ln, mkdir, mv, rm, touch Findutils: find, xargs Gcc: cc1, collect2, cpp0, gcc Grep: grep Gzip: gzip Make: make Gawk: awk Modutils: depmod, genksyms Net-tools: dnsdomainname, hostname Sed: sed Sh-utils: basename, date, expr, pwd, stty, uname, whoami, yes Textutils: cat, md5sum, sort, tail
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Man-pages-1.52
ΠΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ: 0.01 SBU ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ: 6 MB
ΠΠ½ΡΡΠ°Π»Π»ΡΡΠΈΡ Man-pages
ΠΠ»Ρ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ Man-pages Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
make install
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Man-pages
ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°: Π²Π΅ΡΡΠΈΡ 1.52.
Π€Π°ΠΉΠ»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ
Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°, Π½Π΅ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ
ΠΠΏΠΈΡΠ°Π½ΠΈΡ
Π‘ΡΡΠ°Π½ΠΈΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°
ΠΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΡΡΡΠ°Π½ΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° β ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΉ C and C++, ΡΠ°ΠΉΠ»ΠΎΠ² /dev/ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.
ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Man-pages
ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°: Π²Π΅ΡΡΠΈΡ 1.47.
Bash: sh Fileutils: install Make: make
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Glibc-2.2.5
ΠΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ: 14.71 SBU ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ: 369 MB
ΠΠ½ΡΡΠ°Π»Π»ΡΡΠΈΡ Glibc
ΠΠ΅ΡΠ΅Π΄ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΠ°ΡΡ. Π£Π΄ΠΎΡΡΠΎΠ²Π΅ΡΡΡΠ΅ΡΡ, ΡΡΠΎ ΠΏΠ°ΡΡ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Ρ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠ΅ΠΉ.
ΠΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΎΠ½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ glibc-2.2.5 ΠΈ ΡΠ°ΡΠΏΠ°ΠΊΡΠΉΡΠ΅ Π°ΡΡ ΠΈΠ² glibc-linuxthreads Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ glibc-2.2.5, Π° Π½Π΅ Π² /usr/src.
ΠΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΡΠ²ΠΎΠΈΠΌ Π½Π΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΌΠΈ ΠΎΠΏΡΠΈΡΠΌΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ (Π²ΠΊΠ»ΡΡΠ°Ρ ΠΎΠΏΡΠΈΠΈ -march ΠΈ -mcpu). Glibc ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°Π΄Π°Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ CFLAGS ΠΈΠ»ΠΈ CXXFLAGS, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠΈΠ΅ ΡΡΠΎΠ²Π΅Π½Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠ±ΡΠ°ΡΡ ΠΈΡ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° Glibc. ΠΠ·ΠΌΠ΅Π½ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ Glibc, Π²Ρ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅ΡΠ΅ Π½Π° ΡΠ²ΠΎΠΉ ΡΡΡΠ°Ρ ΠΈ ΡΠΈΡΠΊ.
Π’Π°ΠΊΠΆΠ΅ Π½Π΅ ΡΡΠΎΠΈΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠΊΡΠΈΠΏΡ configure Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ βenable-kernel. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈ ΡΡΡΠ»ΠΊΠ΅ Π½Π° Π½Π΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π²ΡΠΎΠ΄Π΅ fileutils, make ΠΈ tar.
ΠΠΎΠΎΠ±ΡΠ΅, ΡΡΠΎΠ±Ρ Π½Π΅ ΡΠΈΡΠΊΠΎΠ²Π°ΡΡ, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Glibc Π² ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅.
ΠΠ»Ρ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ Glibc Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
patch -Np1 -i ../glibc-2.2.5-2.patch && touch /etc/ld.so.conf && mkdir ../glibc-build && cd ../glibc-build && ../glibc-2.2.5/configure βprefix=/usr βdisable-profile \ βenable-add-ons βlibexecdir=/usr/bin && echo Β«cross-compiling = noΒ» > configparms && make && make install && make localedata/install-locales && exec /static/bin/bash βlogin
ΠΠΌΠ΅ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ make localedata/install-locales ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ localedef. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΠ°ΠΉΠ»Π΅ INSTALL Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ glibc-2.2.5. ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ /usr/lib/local, Ρ.ΠΊ. localedef ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ Π΅Π΅ Π½Π°Π»ΠΈΡΠΈΠ΅.
ΠΠ° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΠ½ΡΡΠ°Π»Π»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΏΠΎΡΠΎΠΊΠΎΠ² (The Linux Threads man pages), Ρ.ΠΊ. ΠΎΠ½ΠΈ ΡΡΠ΅Π±ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡΡΡΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° Perl. ΠΡ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΠΈΡ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Perl.
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠ°Π΄ΠΈΠΈ configure Π½Π° ΡΠΊΡΠ°Π½ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅:
configure: warning: *** These auxiliary programs are missing or too old: msgfmt *** some features will be disabled. *** Check the INSTALL file for required versions.
ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° msgfmt (ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° gettext, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅) Π½Π΅ Π²ΡΠ·ΠΎΠ²Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. Π€Π°ΠΉΠ» msgfmt ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ½Π°ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΠ±ΡΠ°ΡΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΌ ΡΠ·ΡΠΊΠ΅. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΠΆΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Ρ, Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ msgfmt Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΡΡ Π±Ρ msgfmt Π»ΠΈΡΡ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° (ΡΠ°ΠΉΠ»Ρ *.po Π² ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ po), Ρ.ΠΊ. Π½Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ Π·Π°Π½ΠΎΠ²ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ.
ΠΠΎΡΡΠ½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄
patch -Np1 -i ../glibc-2.2.5-2.patch: ΠΡΠΎΡ ΠΏΠ°ΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ ΠΎ $(PERL) Π½Π° /usr/bin/perl Π² ΡΠ°ΠΉΠ»Π΅ malloc/Makefile. ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ, Ρ.ΠΊ. Glibc Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅ΡΡΠΎΠ½Π°Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Perl, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ°ΠΊΠ΅Ρ Perl Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ» ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½. ΠΠ°Π½Π½ΡΠΉ ΠΏΠ°ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ Π²ΡΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ ΠΎ root Π½Π° Π² ΡΠ°ΠΉΠ»Π΅ login/Makefile. ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°ΠΌ ΠΏΠ°ΠΊΠ΅Ρ Glibc Π΅ΡΠ΅ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, ΠΈ Π²ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
ΠΠ°Π½Π½ΡΠΉ ΠΏΠ°ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΡΠ°Π½ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Β«errlistΒ», Β«dns resolverΒ», Β«xdr_arrayΒ», Β«callocΒ», Β«thread exitΒ», Β«udivdi3Β», Β«math testΒ», Β«restrict_arrΒ» ΠΈ Β«divbyzeroΒ». ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΠΌ. http://www.zipworld.com.au/~gschafer/lfs-tweaks.html.
touch /etc/ld.so.conf: ΠΠ΄ΠΈΠ½ ΠΈΠ· Π·Π°ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π³ΠΎΠ² ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Glibc installation β Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ldconfig Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΡΡΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΡΠ»ΠΈ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΡ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, ΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ». ΠΠ»Ρ ΠΈΠ·Π±Π΅Π³Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡΡΡΠΎΠΉ ΡΠ°ΠΉΠ» (Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΡΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Glibc Π±ΡΠ΄Π΅Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ /lib ΠΈ /usr/lib).
βdisable-profile: ΠΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Ρ ΠΏΡΠΎΡΠΈΠ»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ. ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈ, ΠΏΡΠΎΠΏΡΡΡΠΈΡΠ΅ ΡΡΡ ΠΎΠΏΡΠΈΡ.
βenable-add-ons: ΠΠΊΠ»ΡΡΠ°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ linuxthreads.
βlibexecdir=/usr/bin: ΠΠ½ΡΡΠ°Π»Π»ΠΈΡΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ pt_chown Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /usr/bin.
echo Β«cross-compiling = noΒ» > configparms: ΠΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΌΡ Π΄Π°Π΅ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠΎΡΡ-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅Ρ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΡ Apple Power PC Π½Π° Intel-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅. Glibc ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ ΠΌΡ ΠΊΡΠΎΡΡ-ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, Ρ.ΠΊ. ΡΠ°ΠΌ ΠΏΠ°ΠΊΠ΅Ρ Glibc Π΅ΡΠ΅ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½.
exec /static/bin/bash βlogin: ΠΠ°Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°ΠΏΡΡΡΠΈΡ Π½ΠΎΠ²ΡΠΉ ΡΠ΅Π°Π½Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ bash Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ. ΠΡ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΠ·Π±Π°Π²ΠΈΠΌΡΡ ΠΎΡ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΡ Β«I have no name!Β» ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ»ΠΎ Π²ΡΠ·Π²Π°Π½ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ bash ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ· userid (ΠΈΠ·-Π·Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Glibc).
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Glibc