ΠžΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Π΅ символы

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ с символами ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. ( с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ gcc -g).

ΠŸΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, скомпилированной с ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ прСдоставляСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ адрСса Π² памяти, Π½ΠΎ ΠΈ ΠΈΠΌΠ΅Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Однако Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ символов ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ прСдставлСниС ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… символов, взглянСм Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° bash, скомпилированная с ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΌΠΈ символами: 1200 KB

ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° bash, скомпилированная Π±Π΅Π· ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… символов: 480 KB

Ρ„Π°ΠΉΠ»Ρ‹ glibc ΠΈ gcc (/lib ΠΈ /usr/lib) с ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΌΠΈ символами: 87 MB

Ρ„Π°ΠΉΠ»Ρ‹ glibc ΠΈ gcc скомпилированная Π±Π΅Π· ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… символов: 16 MB

Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ использованного компилятора Π‘ΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ΠŸΡ€ΠΈ сопоставлСнии Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, скомпилированной с ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΌΠΈ символами ΠΈ Π±Π΅Π· Π½ΠΈΡ…, Ρ€Π°Π·Π½ΠΈΡ†Π° составляСт ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 2 – 5 Ρ€Π°Π·.

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ этих символов ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ дисковоС пространство.

Для удалСния символов ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈΠ· Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° (Ρ„Π°ΠΉΠ» a.out ΠΈΠ»ΠΈ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ELF), Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ strip –strip-debug filename. ДопускаСтся использованиС символа * для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, strip –strip-debug $LFS/static/bin/*).

Для удобства, Π² Π³Π»Π°Π²Π΅ 9 описана ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΡƒΠ΄Π°Π»ΡΡŽΡ‰Π°Ρ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Π΅ символы со всСх ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ систСмы. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… свСдСний ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, см. руководство: http://hints.linuxfromscratch.org/hints/optimization.txt.

Π’Ρ…ΠΎΠ΄ Π² срСду chroot

Для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ инсталляции ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΠΉΡ‚ΠΈ Π² срСду chroot. Для этого Π²ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π² систСму Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root, Ρ‚.ΠΊ. Ρ‚ΠΎΠ»ΡŒΠΊΠΎ root ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ chroot.

ПослС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² Ρ€Π΅ΠΆΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для Π²Ρ…ΠΎΠ΄Π° Π² срСду chroot:

chroot $LFS /static/bin/env -i \

HOME=/root TERM=$TERM PS1='\u:\w\$ ' \

PATH=/bin:/usr/bin:/sbin:/usr/sbin:/static/bin \

/static/bin/bash –login

Команда env с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ -i очистит значСния всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… срСды chroot. Π—Π°Ρ‚Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ HOME, TERM, PS1 ΠΈ PATH Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π΄Π°Π½Ρ‹. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ TERM=$TERM устанавливаСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ TERM для срСды chroot Ρ€Π°Π²Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ TERM Π²Π½Π΅ этой срСды; эта пСрСмСнная Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ‚ΠΈΠΏΠ° vim ΠΈ less. Если Π²Ρ‹ Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚Π΅ΡΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ CFLAGS ΠΈΠ»ΠΈ CXXFLAGS, самоС врСмя Π·Π°Π΄Π°Ρ‚ΡŒ ΠΈΡ… снова.

ΠžΡ‚Π½Ρ‹Π½Π΅ Π½Π΅Ρ‚ нСобходимости ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ LFS, Ρ‚.ΠΊ. всС дСйствия Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС LFS (Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° считаСт / , Π½Π° самом Π΄Π΅Π»Π΅ являСтся /mnt/lfs).

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, начиная с Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Ρ‹, слСдуСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈΠ· срСды chroot. Если ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° систСмы) Π²Ρ‹ Π²Ρ‹ΡˆΠ»ΠΈ ΠΈΠ· этой срСды, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΠ½ΡΡ‚Π°Π»Π»ΡΡ†ΠΈΡŽ, Π·Π°Π½ΠΎΠ²ΠΎ Π²ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π² Π½Π΅Π΅ ΠΈ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму proc (см. Π΄Π°Π»Π΅Π΅).

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ bash выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: Β«I have no name!Β» Π­Ρ‚ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Ρ‚.ΠΊ. ΠΏΠ°ΠΊΠ΅Ρ‚ Glibc Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π» установлСн.

ИзмСнСниС ΠΏΡ€Π°Π²

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ сдСлаСм Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root – ΠΏΠ΅Ρ€Π΅Π΄Π°Π΄ΠΈΠΌ ΠΏΡ€Π°Π²Π° Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ, установлСнных Π² Π“Π»Π°Π²Π΅ 5, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ root. Π­Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‚.ΠΊ. ΠΊΠΎΠ³Π΄Π° Π² дальнСйшСм ΠΌΡ‹ оставим Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ /static Π΄ΠΎΠ±Π°Π²ΠΈΠΌ нСсколько ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ со статичСскими ссылками, Π° это Π½Π΅ самая Π»ΡƒΡ‡ΡˆΠ°Ρ идСя.

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΡ€Π°Π² Π½Π° всС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, скомпилированныС с использованиСм статичСских ссылок:

chown -R 0:0 /static

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Β«0:0Β» вмСсто Β«root:rootΒ», Ρ‚.ΠΊ. ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π·ΠΎΠ»ΡŒΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ имя Β«rootΒ», Ρ‚.ΠΊ. ΠΏΠ°ΠΊΠ΅Ρ‚ glibc Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π» установлСн.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ

Π”Π°Π²Π°ΠΉΡ‚Π΅ создадим структуру Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы LFS. НачнСм с создания Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ стандартного Π΄Π΅Ρ€Π΅Π²Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄:

mkdir -p /{bin,boot,dev/pts,etc/opt,home,lib,mnt,proc} &&

mkdir -p /{root,sbin,tmp,usr/local,var,opt} &&

for dirname in /usr /usr/local

do

mkdir $dirname/{bin,etc,include,lib,sbin,share,src}

ln -s share/{man,doc,info} $dirname

mkdir $dirname/share/{dict,doc,info,locale,man}

mkdir $dirname/share/{nls,misc,terminfo,zoneinfo}

mkdir $dirname/share/man/man{1,2,3,4,5,6,7,8}

done &&

mkdir /var/{lock,log,mail,run,spool} &&

mkdir -p /var/{tmp,opt,cache,lib/misc,local} &&

mkdir /opt/{bin,doc,include,info} &&

mkdir -p /opt/{lib,man/man{1,2,3,4,5,6,7,8}} &&

ln -s ../var/tmp /usr

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ с ΠΏΡ€Π°Π²Π°ΠΌΠΈ доступа 755, ΠΎΠ΄Π½Π°ΠΊΠΎ это ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π΅ для всСх Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ. ΠœΡ‹ сдСлаСм Π΄Π²Π° измСнСния: для домашнСго ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° root ΠΈ для ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².

chmod 0750 /root &&

chmod 1777 /tmp /var/tmp

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π΅ всС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ доступ ΠΊ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ /root directory – Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ дСйствия выполняСт ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ со своим домашним ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π΅Ρ‚ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΡ€Π°Π²ΠΎ Π½Π° запись Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ /tmp ΠΈ /var/tmp, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈΠ· Π½ΠΈΡ… Ρ„Π°ΠΉΠ»Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ‡ΡƒΠΆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² опрСдСляСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Β«sticky bitΒ» – Π½Π°ΠΈΠ²Ρ‹ΡΡˆΠΈΠΉ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Π·Π½Π°ΠΊ Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ маскС 1777.

Π˜Ρ‚Π°ΠΊ, послС создания Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ пСрСмСститС tar-Π°Ρ€Ρ…ΠΈΠ²Ρ‹ исходных ΠΊΠΎΠ΄ΠΎΠ² ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎ инструкциям Π“Π»Π°Π²Ρ‹ 3, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ созданный ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² /usr/src.

БоотвСтствиС FHS

ΠŸΡ€ΠΈ создании Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ ΠΌΡ‹ ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°Π»ΠΈΡΡŒ Π½Π° стандартС FHS (см. http://www.pathname.com/fhs/). Помимо созданных ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π΄Π°Π½Π½Ρ‹ΠΉ стандарт ставит условиСм Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² /usr/local/games ΠΈ /usr/share/games, Π½ΠΎ, ΠΏΠΎ Π½Π°ΡˆΠ΅ΠΌΡƒ мнСнию, для Π±Π°Π·ΠΎΠ²ΠΎΠΉ систСмы ΠΎΠ½ΠΈ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹. Однако ΠΌΠΎΠΆΠ΅Ρ‚Π΅ смСло привСсти свою систСму ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΡŽ с FHS. Π§Ρ‚ΠΎ касаСтся структуры ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° /usr/local/share, стандарт FHS строго Π½Π΅ ΠΎΠ³ΠΎΠ²Π°Ρ€ΠΈΠ²Π°Π΅Ρ‚ Π΅Π³ΠΎ содСрТимоС, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² Π½Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅, ΠΏΠΎ Π½Π°ΡˆΠ΅ΠΌΡƒ ΡƒΠ±Π΅ΠΆΠ΄Π΅Π½ΠΈΡŽ, ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ.

ΠœΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы proc

Для обСспСчСния ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму proc Π² срСдС chroot. Π’Π°ΠΊ ΠΊΠ°ΠΊ файловая систСма ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° сколько ΡƒΠ³ΠΎΠ΄Π½ΠΎ Ρ€Π°Π· ΠΈ Π² ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ³ΠΎΠ΄Π½ΠΎ мСстах, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ файловая систСма proc ΡƒΠΆΠ΅ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π² вашСм Π±Π°Π·ΠΎΠ²ΠΎΠΌ дистрибутивС, Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ. Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ‡Ρ‚ΠΎ proc – Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ файловая систСма.

Для монтирования Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы proc Π² /proc, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:

mount proc /proc -t proc

ВСроятно, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ прСдупрСТдСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ mount Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π° экран:

warning: can't open /etc/fstab: No such file or directory

not enough memory

НС ΠΎΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ Π½Π° Π½ΠΈΡ… особого внимания – наша систСма ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π΅ установлСна, ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚. Π‘Π°ΠΌΠΎ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ, ΠΈ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ этапС Π½Π°ΠΌ большС Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ трСбуСтся.


ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° страницу:
Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΡˆΡ€ΠΈΡ„Ρ‚Π°: