Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ bin, sbin, usr/bin, usr/sbin

30 ноября 2010 Π³ΠΎΠ΄Π° Дэвид ΠšΠΎΠ»Π»ΠΈΠ΅Ρ€ (David Collier) писал:

Π― Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ», Ρ‡Ρ‚ΠΎ Π² busybox ссылки Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½Ρ‹ ΠΏΠΎ этим Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘ΠΌ дирСкториям.
Π•ΡΡ‚ΡŒ Π»ΠΈ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ простоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π² ΠΊΠ°ΠΊΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ какая ΠΈΠ· ссылок Π΄ΠΎΠ»ΠΆΠ½Π° Π»Π΅ΠΆΠ°Ρ‚ΡŒβ€¦
К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, kill Π»Π΅ΠΆΠΈΡ‚ Π² /bin, Π° killall β€” Π² /usr/bin… Π― Π½Π΅ Π²ΠΈΠΆΡƒ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ Π² Ρ‚Π°ΠΊΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ.

Π’Ρ‹, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ КСн Вомпсон ΠΈ Дэннис Π ΠΈΡ‚Ρ‡ΠΈ создали Unix Π½Π° PDP-7 Π² 1969-ΠΎΠΌ. Π’Π°ΠΊ Π²ΠΎΡ‚, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² 1971 ΠΎΠ½ΠΈ ΠΏΡ€ΠΎΠ°ΠΏΠ³Ρ€Π΅ΠΉΠ΄ΠΈΠ»ΠΈΡΡŒ Π΄ΠΎ PDP-11 с ΠΏΠ°Ρ€ΠΎΠΉ дисков RK05 (ΠΏΠΎ 1,5 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ).

Когда опСрационная систСма Ρ€Π°Π·Ρ€ΠΎΡΠ»Π°ΡΡŒ ΠΈ пСрСстала ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ дискС (Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π»Π° располоТСна корнСвая Π€Π‘), ΠΎΠ½ΠΈ пСрСнСсли Ρ‡Π°ΡΡ‚ΡŒ Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ, Π³Π΄Π΅ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Π»ΠΈΡΡŒ домашниС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ (поэтому Ρ‚ΠΎΡ‡ΠΊΠ° монтирования Π½Π°Π·Ρ‹Π²Π°Π»Π°ΡΡŒ /usr β€” ΠΎΡ‚ слова user). Они ΠΏΡ€ΠΎΠ΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Ρ‚Π°ΠΌ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ОБ (/bin, /sbin, /lib, /tmp …) ΠΈ складывали Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ диск, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π° старом ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΎΡΡŒ мСсто. ΠŸΠΎΡ‚ΠΎΠΌ Ρƒ Π½ΠΈΡ… появился Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ диск, ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π΅Π³ΠΎ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ /home ΠΈ пСрСнСсли Ρ‚ΡƒΠ΄Π° домашниС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ОБ ΠΌΠΎΠ³Π»Π° Π·Π°Π½ΡΡ‚ΡŒ всё ΠΎΡΡ‚Π°Π²ΡˆΠ΅Π΅ΡΡ мСсто Π½Π° Π΄Π²ΡƒΡ… дисках, Π° это Π±Ρ‹Π»ΠΈ Ρ†Π΅Π»Ρ‹Ρ… Ρ‚Ρ€ΠΈ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π° (ΠΎΠ³ΠΎΠ³ΠΎ!).

РазумССтся, ΠΈΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ввСсти ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ‡Ρ‚ΠΎ Β«ΠΊΠΎΠ³Π΄Π° опСрационная систСма загруТаСтся, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π² состоянии ΠΏΡ€ΠΈΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ диск Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ /usr, поэтому Π½Π΅ Π½Π°Π΄ΠΎ ΠΊΠ»Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚ΠΈΠΏΠ° mount Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ диск Π² /usr, Π° Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΊΡƒΡ€ΠΈΡ†Ρ‹ ΠΈ яйца». Π’ΠΎΡ‚ Ρ‚Π°ΠΊ просто. И это ΠΎΡ‚Π½ΠΎΡΠΈΠ»ΠΎΡΡŒ ΠΊ Unix V6 35 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄.

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ /bin ΠΈ /usr/bin (ΠΈ всСх ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ) β€” это послСдствиС Ρ‚Π΅Ρ… событий, Π΄Π΅Ρ‚Π°Π»ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ· 70-Ρ…, которая Π΄ΠΎ сих ΠΏΠΎΡ€, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ дСсятилСтий, ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ Π±ΡŽΡ€ΠΎΠΊΡ€Π°Ρ‚Π°ΠΌΠΈ. Они Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°Π΄Π°Π²Π°Π»ΠΈ вопрос ΠΏΠΎΡ‡Π΅ΠΌΡƒ, ΠΎΠ½ΠΈ просто Π΄Π΅Π»Π°Π»ΠΈ Ρ‚Π°ΠΊ. Π­Ρ‚ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ пСрСстало ΠΈΠΌΠ΅Ρ‚ΡŒ смысл Π΅Ρ‰Ρ‘ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Linux Π±Ρ‹Π» создан, ΠΏΠΎ нСскольким ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:

  1. ΠŸΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ initrd ΠΈΠ»ΠΈ initramfs, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Π΅Ρ€Ρ‘Ρ‚ Π½Π° сСбя ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ‚ΠΈΠΏΠ° «этот Ρ„Π°ΠΉΠ» Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Ρ€Π°Π½ΡŒΡˆΠ΅ Ρ‡Π΅ΠΌ Ρ‚ΠΎΡ‚Β». Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρƒ нас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ врСмСнная файловая систСма, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ всСго ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ.
  2. РаздСляСмыС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² Unix рСбятами ΠΈΠ· Berkley) Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Π°ΠΌ нСзависимо ΠΌΠ΅Π½ΡΡ‚ΡŒ содСрТимоС /lib ΠΈ /usr/lib. Π­Ρ‚ΠΈ Π΄Π²Π΅ части Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎΠ³ΠΎ Π½Π΅ происходило Π² 1974-ΠΎΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚ΠΎΠ³Π΄Π° Ρƒ Π½ΠΈΡ… Π±Ρ‹Π»Π° нСкоторая Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΠ·-Π·Π° статичСской Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠΈ.
  3. Π”Π΅ΡˆΡ‘Π²Ρ‹Π΅ ТёсткиС диски ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Π»ΠΈ Π±Π°Ρ€ΡŒΠ΅Ρ€ Π² 100 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ Π³Π΄Π΅-Ρ‚ΠΎ Π² 1990-ΠΎΠΌ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя появились ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² (partition magic 3.0 Π²Ρ‹ΡˆΠ»Π° Π² 1997-ΠΎΠΌ).

РазумССтся, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΅ΡΡ‚ΡŒ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ люди ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Π³ΠΎ ΠΎΠΏΡ€Π°Π²Π΄Ρ‹Π²Π°ΡŽΡ‚. Π’ΠΈΠΏΠ°, ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Ρ€Π°Π·Π΄Π΅Π» Π½ΡƒΠΆΠ΅Π½ для всяких ΠΎΠ±Ρ‰ΠΈΡ… ΡˆΡ‚ΡƒΡ‡Π΅ΠΊ ОБ, Π° Π² /usr Π½Π°Π΄ΠΎ ΠΊΠ»Π°ΡΡ‚ΡŒ свои Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Или Π² / ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ распространяСт AT&T, Π° Π² /usr β€” Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π²ΠΎΠΉ дистрибутив, IBM AIX, ΠΈΠ»ΠΈ Dec Ultrix, ΠΈΠ»ΠΈ SGI Irix Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ, Π° Π² /usr/local Π»Π΅ΠΆΠ°Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹, спСцифичныС для Ρ‚Π²ΠΎΠ΅ΠΉ систСмы. А ΠΏΠΎΡ‚ΠΎΠΌ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Ρ€Π΅ΡˆΠΈΠ», Ρ‡Ρ‚ΠΎ /usr/local β€” это Π½Π΅ подходящСС мСсто, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚ΡƒΠ΄Π° ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ софт, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΅Ρ‰Ρ‘ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ /opt! НС ΡƒΠ΄ΠΈΠ²Π»ΡŽΡΡŒ, Ссли появится Π΅Ρ‰Ρ‘ ΠΈ /opt/local…

РазумССтся, Π·Π° 30 Π»Π΅Ρ‚ ΠΈΠ·-Π·Π° Ρ‚Π°ΠΊΠΎΠ³ΠΎ раздСлСния появлялись ΠΈ исчСзали всякиС интСрСсныС спСцифичныС для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… дистрибутивов ΠΏΡ€Π°Π²ΠΈΠ»Π°. НапримСр, Β«/tmp очищаСтся ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅, Π° /usr/tmp β€” Π½Π΅Ρ‚Β». (И Π² Ubuntu /usr/tmp Π½Π΅Ρ‚ Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, Π° Π² Gentoo /usr/tmp β€” это символичСская ссылка Π½Π° /var/tmp, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ распространяСтся Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΈ ΠΎΠ½ Π½Π΅ очищаСтся ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅. Π”Π°, это всё Π±Ρ‹Π»ΠΎ Π΅Ρ‰Ρ‘ Π΄ΠΎ tmpfs. А Π΅Ρ‰Ρ‘ Π±Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ корнСвая Π€Π‘ доступна Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, ΠΈ Ρ‚ΠΎΠ³Π΄Π° Π² /usr Ρ‚ΠΎΠΆΠ΅ Π½Π΅ Π½Π°Π΄ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ, Π° Π½Π°Π΄ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² /var. Или Π² / Π² основном нСльзя ΠΏΠΈΡΠ°Ρ‚ΡŒ, Π½Π΅ считая Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² /etc, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ пСрСнСсти Π² /var…)

Π‘ΡŽΡ€ΠΎΠΊΡ€Π°Ρ‚Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ Linux Foundation (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ³Π»ΠΎΡ‚ΠΈΠ»ΠΈ Free Standards Group Π²ΠΎ врСмя Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π³ΠΎΠ΄Ρ‹ Π½Π°Π·Π°Π΄) с Ρ€Π°Π΄ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ ΠΈ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡŽΡ‚ эти ΠΏΡ€Π°Π²ΠΈΠ»Π°, Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΡ‹Ρ‚Π°ΡΡΡŒ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ΠΈ появились. Они Π½Π΅ Π΄ΠΎΠ³Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎ КСн ΠΈ Дэннис просто пСрСнСсли Ρ‡Π°ΡΡ‚ΡŒ ОБ Π² ΠΈΡ… домашнюю Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ, ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ диск RK05 Π½Π° PDP-11 Π±Ρ‹Π» слишком ΠΌΠ°Π».

Π― практичСски ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ Π² busybox просто ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ это историчСски слоТилось. НСт Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ Π΄ΠΎ сих ΠΏΠΎΡ€. Π›ΠΈΡ‡Π½ΠΎ я просто дСлаю /bin, /sbin ΠΈ /lib ссылками Π½Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π² /usr. Π’Π΅Π΄ΡŒ люди, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ со встраиваСмым софтом, ΡΡ‚Π°Ρ€Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Ρ‚ΡŒβ€¦

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ