ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Huawei Linux Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² , ΠΊΠΎΠΉΡΠΎ Π΅ ΠΏΡΡΠ²ΠΈΡΡ ΡΠ΅Π»ΠΈΠ·, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ΅Π½ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π΄ΡΠ»Π³ΠΎΡΡΠΎΡΠ΅Π½ ΡΠΈΠΊΡΠ» Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° (LTS). ΠΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ Π·Π° openEuler 20.03 ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΈΠ·Π΄Π°Π²Π°Π½ΠΈ Π΄ΠΎ 31 ΠΌΠ°ΡΡ 2024 Π³ΠΎΠ΄ΠΈΠ½Π°. Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈΡΠ΅ ΠΈ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ iso-ΠΎΠ±ΡΠ°Π·ΠΈ ( ΠΈ ) Π·Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ ΠΎΡ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅. ΠΠ·Ρ ΠΎΠ΄Π½ΠΈΡΡ ΠΊΠΎΠ΄ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈΡΠ΅ Π·Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π² ΡΡΠ»ΡΠ³Π°ΡΠ° Gitee.
openEuler Π΅ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΌΠ΅ΡΡΠΈΠ°Π»Π½ΠΈΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² , ΠΊΠΎΠΉΡΠΎ Π΅ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ ΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠ½Π°ΡΠ° Π±Π°Π·Π° CentOS ΠΈ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ Π·Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΡΡΡΠ²ΡΡΠΈ Ρ ARM64 ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ. ΠΠ΅ΡΠΎΠ΄ΠΈ Π½Π° Π·Π°ΡΠΈΡΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° EulerOS, ΡΠ° ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈ ΠΎΡ ΠΠΈΠ½ΠΈΡΡΠ΅ΡΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΎΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π°ΡΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ Π½Π° ΠΠΈΡΠ°ΠΉ, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΡΠΈΠ·Π½Π°Π²Π°Ρ Π·Π° ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°ΡΠΈ Π½Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π½Π° CC EAL4+ (ΠΠ΅ΡΠΌΠ°Π½ΠΈΡ), NIST CAVP (Π‘ΠΠ©) ΠΈ CC EAL2+ (Π‘ΠΠ©). EulerOS Π΅ Π΅Π΄Π½Π° ΠΎΡ ΠΏΠ΅ΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ (EulerOS, macOS, Solaris, HP-UX ΠΈ IBM AIX) ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π° Linux Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ, ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠ°Π½Π° ΠΎΡ ΠΊΠΎΠΌΠΈΡΠ΅ΡΠ° Opengroup Π·Π° ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ° .
Π Π°Π·Π»ΠΈΠΊΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ openEuler ΠΈ CentOS ΡΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΠΈ Π½Π΅ ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Ρ ΡΠ°ΠΌΠΎ Π΄ΠΎ ΡΠ΅Π±ΡΠ°Π½Π΄ΠΈΡΠ°Π½Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² openEuler ΡΠ΄ΡΠΎ Linux 4.19, systemd 243, bash 5.0 ΠΈ
ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΡΠΎΠ» Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° GNOME 3.30. ΠΠ½ΠΎΠ³ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° ARM64 ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°ΡΡ ΠΎΡ ΠΊΠΎΠΈΡΠΎ Π²Π΅ΡΠ΅ ΡΠ° ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½ΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Π±Π°Π·ΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux, GCC, OpenJDK ΠΈ Docker.
Π‘ΡΠ΅Π΄ Π·Π°ΡΠ²Π΅Π½ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° Π½Π° openEuler:
- ΠΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ΠΎΡΡ ΠΊΡΠΌ ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄ΡΠ΅Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ Π²ΠΈΡΠΎΠΊΠ° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎΡΡ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈ. ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈΡ ΠΊΠ΅Ρ Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° Π΄Π° ΡΠ΅ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ°Ρ Π½Π΅Π½ΡΠΆΠ½ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ Π΄Π° ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈ Π±ΡΠΎΡΡ Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Π½ΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ Π² Nginx Ρ 15%.
- ΠΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° , ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»ΠΈ Π·Π° ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ (, , ΠΈ Ρ.Π½.) ΠΎΡ 10% Π΄ΠΎ 100%.
- Π£ΠΏΡΠΎΡΠ΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ , ΠΌΡΠ΅ΠΆΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡ ΠΈ runtime (ΠΠ΅ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅Π½ runtime, ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ OCI, Π½ΠΎ Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ runc, Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π‘ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° gRPC). ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π»Π΅ΠΊΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ iSulad Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Ρ Π΄ΠΎ 35% ΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ Ρ Π΄ΠΎ 68%.
- ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° OpenJDK, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠ°ΡΠ° 20% ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΠ·ΠΈΡΠ°Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅.
- Π‘ΠΈΡΡΠ΅ΠΌΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ , ΠΊΠΎΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π½Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. Π‘ΠΏΠΎΡΠ΅Π΄ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ Π½Π° Huawei Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½Π°ΡΠ° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΡΠ΅Π½Π°ΡΠΈΡ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° Ρ Π΄ΠΎ 30%.
- ΠΠΎΠ΄ΠΊΡΠ΅ΠΏΠ° Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ, ΠΊΠ°ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅ Kunpeng ΠΈ x86 (Π² Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ΅ ΠΎΡΠ°ΠΊΠ²Π° ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° Π±ΡΠΎΡ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ).
ΠΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Huawei ΡΡΡΠΎ ΠΎΠ±ΡΠ²ΠΈ ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° ΡΠ΅ΡΠΈΡΠΈ ΡΡΡΠ³ΠΎΠ²ΡΠΊΠΈ ΠΈΠ·Π΄Π°Π½ΠΈΡ Π½Π° openEuler β Kylin Server OS, iSoft Server OS, deepinEuler ΠΈ EulixOS Server, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΠΎΡ ΡΡΡΠ°Π½ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ Kylinsoft, iSoft, Uniontech ΠΈ ISCAS (ΠΠ½ΡΡΠΈΡΡΡ ΠΏΠΎ ΡΠΎΡΡΡΠ΅Ρ Π½Π° ΠΠΈΡΠ°ΠΉΡΠΊΠ°ΡΠ° Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡ Π½Π° Π½Π°ΡΠΊΠΈΡΠ΅), ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡ Π° Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ°, ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠ° openEuler. Huawei ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Ρ openEuler ΠΊΠ°ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΡΡΠ²ΠΌΠ΅ΡΡΠ΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠ°Π·Π²ΠΈΠ²Π°Π½ Ρ ΡΡΠ°ΡΡΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ°. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΡΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠΌΠΈΡΠ΅Ρ, ΠΊΠΎΠΌΠΈΡΠ΅Ρ ΠΏΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ ΠΈ ΠΎΠ±ΡΠ΅ΡΡΠ²Π΅Π½ ΡΠ΅ΠΊΡΠ΅ΡΠ°ΡΠΈΠ°Ρ, ΠΊΠΎΠΈΡΠΎ ΠΊΡΡΠΈΡΠ°Ρ openEuler.
Π‘ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ° Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π°Ρ ΡΡΠ»ΡΠ³ΠΈ Π·Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ, ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°. LTS ΠΈΠ·Π΄Π°Π½ΠΈΡΡΠ° ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌΠΈ Π½Π° Π²ΡΠ΅ΠΊΠΈ Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ, Π° ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π²Π΅ΡΡΠΈΠΈ β Π½Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ΅ΡΡ ΠΌΠ΅ΡΠ΅ΡΠ°. ΠΡΠΎΠ΅ΠΊΡΡΡ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΠ΅ΠΌΠ° Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ Π·Π° ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² Upstream ΠΈ Π²ΡΡΡΠ°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΡΠΌ ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ° Π½Π° ΠΎΡΠΊΡΠΈΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
