<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Olkol</id>
		<title>Linuxformat - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Olkol"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:Contributions/Olkol"/>
		<updated>2026-05-13T13:32:16Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:Olkol</id>
		<title>Обсуждение участника:Olkol</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:Olkol"/>
				<updated>2018-11-19T12:23:47Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: Новая страница: «Список активных участников на 19.11.18 Это список участников, совершавших какие-либо действ…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Список активных участников на 19.11.18&lt;br /&gt;
Это список участников, совершавших какие-либо действия за последние 30 дней.&lt;br /&gt;
&lt;br /&gt;
Список активных участников&lt;br /&gt;
Показать участников, начиная с: &lt;br /&gt;
&lt;br /&gt;
Binocle (обсуждение | вклад | заблокировать)‏‎ (бюрократ, администратор) [1 правка за последние 30 дней]&lt;br /&gt;
Olkol (обсуждение | вклад | заблокировать)‏‎ (бюрократ, администратор) [1139 правок за последние 30 дней]&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:_%D0%94%D0%B8%D1%81%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D0%B8%D0%B2%D1%8B_Linux</id>
		<title>LXF171: Дистрибутивы Linux</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:_%D0%94%D0%B8%D1%81%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D0%B8%D0%B2%D1%8B_Linux"/>
				<updated>2018-11-19T12:19:26Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Главное в мире Linux]]&lt;br /&gt;
== Дистрибутивы Linux ==&lt;br /&gt;
''Ка­кой ди­ст­ри­бу­тив вам боль­ше под­хо­дит?''&lt;br /&gt;
&lt;br /&gt;
Вы­бор и гиб­кость — фир­мен­ные при­зна­ки эко­си­сте­мы Linux. В Windows и OS X, ес­ли вам не по ду­ше ка­кие-ли­бо ас­пек­ты опе­ра­ци­он­ной сис­те­мы, с этим ма­ло что по­де­ла­ешь. В ми­ре Linux вы, мож­но ска­зать, из­ба­ло­ва­ны вы­бо­ром бла­го­да­ря на­ли­чию мно­же­ст­ва ди­ст­ри­бу­ти­вов.&lt;br /&gt;
&lt;br /&gt;
Серд­це­ви­на ка­ж­до­го ди­ст­ри­бу­ти­ва — яд­ро Linux, но на его ос­но­ве ди­ст­ри­бу­ти­вы до­ст­раи­ва­ют свои ком­по­нен­ты, ко­то­рые под­би­ра­ют­ся в за­ви­си­мо­сти от це­ле­вой ау­ди­то­рии дан­но­го ди­ст­ри­бу­ти­ва. Раз­ные ди­ст­ри­бу­ти­вы пред­ла­га­ют раз­ные оп­ции ин­ди­ви­ду­аль­ной на­строй­ки, так что вы мо­же­те по­ра­бо­тать с ди­ст­ри­бу­ти­вом и на­стро­ить его по сво­ему вку­су и ус­мот­ре­нию, по­ка не добь­е­тесь же­лае­мо­го ре­зуль­та­та. И не­за­ви­си­мо от то­го, ка­кой тип поль­зо­ва­те­ля вы со­бой пред­став­ляе­те, для вас обя­за­тель­но най­дет­ся подходящий ди­ст­ри­бу­тив.&lt;br /&gt;
&lt;br /&gt;
В этой ста­тье мы в пер­вую оче­редь уде­ля­ем вни­ма­ние ра­бо­че­му сто­лу. Не­ко­то­рые ди­ст­ри­бу­ти­вы ра­бо­че­го сто­ла ста­вят сво­ей це­лью мак­си­маль­ную про­сто­ту, дру­гие пре­дос­тав­ля­ют вам боль­ше кон­тро­ля. У них раз­ные про­це­ду­ры ус­та­нов­ки, раз­ные тре­бо­ва­ния к ра­бо­че­му сто­лу, раз­ные схе­мы управ­ле­ния па­ке­та­ми и раз­ные ин­ст­ру­мен­ты ад­ми­ни­ст­ри­ро­ва­ния. Мы рас­смот­рим при­выч­ные ди­ст­ри­бу­ти­вы, при­ме­няе­мые для обыч­ных за­дач, а так­же раз­ра­бо­тан­ные спе­ци­аль­но для при­вле­че­ния поль­зо­ва­те­лей, при­вык­ших к дру­гим опе­ра­ци­он­ным сис­те­мам, та­ким, как Windows и Mac OS X. Мы так­же рас­смот­рим ди­ст­ри­бу­ти­вы, спо­соб­ные пре­вра­тить ста­рую рухлядь в со­вре­мен­ную ма­ши­ну, и те, что пре­дос­тав­ля­ют опыт­ным поль­зо­ва­те­лям пол­ный кон­троль над их ра­бо­чей сре­дой.&lt;br /&gt;
&lt;br /&gt;
На сле­дую­щих стра­ни­цах мы рас­смот­рим бо­лее че­ты­рех дю­жин луч­ших ди­ст­ри­бу­ти­вов, про­тес­ти­ру­ем их уни­каль­ные функ­ции и срав­ним их силь­ные и сла­бые сто­ро­ны, что­бы вы смог­ли с на­шей по­мо­щью вы­брать ди­ст­ри­бу­тив, луч­ший имен­но для вас!&lt;br /&gt;
&lt;br /&gt;
===Список дистрибутивов===&lt;br /&gt;
&lt;br /&gt;
aLinux, Arch, Bodhi Linux, CentOS, Chakra, Crunchbang, Crux, Debian, DSL, Fedora, Foresight Linux, Frugalware, Fuduntu, Gentoo, Kanotix, Knoppix, &lt;br /&gt;
Kororaa, Linux Mint, LinuxLite, LXF Games, Mageia, Manjaro, Netrunner, OantiX, Open Xange, OpenSUSE, OS4, Parsix, PCLinuxOS, Pear Linux, Porteus, Puppy, PureOS, Qubes OS, Rosa, Sabayon Linux, Salix OS, Slackel, Slackware, Slax, Slitaz, SolusOS, Sparky Linux, Tiny Core Linux, Ubuntu, Ultimate Edition, WattOS, Zenwalk, ZevenOS, Zorin.&lt;br /&gt;
&lt;br /&gt;
===Ди­ст­ри­бу­ти­вы, раз­ра­бо­тан­ные на за­ме­ну ва­шей ны­неш­ней ОС.===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu 9====&lt;br /&gt;
&lt;br /&gt;
Это не пер­вый ди­ст­ри­бу­тив для но­вич­ков в Linux, но он, бес­спор­но, са­мый из­вест­ный. В нем есть не­сколь­ко ин­но­ва­ци­он­ных функ­ций, в том чис­ле ра­бо­чий стол Unity, ко­то­рый всем так нра­вит­ся не­на­ви­деть. За­тем име­ет­ся Ubuntu One, мно­го­плат­фор­мен­ный сер­вис для об­лач­но­го хра­не­ния и син­хро­ни­за­ции фай­лов по мно­же­ст­ву уст­ройств, ко­то­рый пред­ла­га­ет 5 ГБ сво­бод­но­го мес­та для хра­не­ния дан­ных. А для до­бав­ле­ния но­вых про­грамм пре­ду­смот­рен Ubuntu Software Center.&lt;br /&gt;
&lt;br /&gt;
У это­го ди­ст­ри­бу­ти­ва один из са­мых про­стых ме­ха­низ­мов ус­та­нов­ки. По умол­ча­нию он не со­дер­жит про­прие­тар­ных ко­де­ков, но их мо­ж­но вклю­чить во вре­мя ус­та­нов­ки, про­сто щелк­нув по флаж­ку. Ди­ст­ри­бу­тив вы­хо­дит дважды в год, с по­сто­ян­ны­ми ре­ли­за­ми дол­го­сроч­ной под­держ­ки (Long Term Support, LTS) на пять лет.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Unity улучшается, и Ubuntu про­до­лжит борь­бу с про­прие­тар­ны­ми на­столь­ны­ми ОС.&lt;br /&gt;
&lt;br /&gt;
====Slackel 7====&lt;br /&gt;
&lt;br /&gt;
Этот ди­ст­ри­бу­тив бе­рет са­мые све­жие про­грам­мы из вет­ки Slackware Current и пред­ла­га­ет их в ви­де дру­же­люб­но­го на­столь­но­го па­ке­та, взяв ряд ин­ст­ру­мен­тов из бо­га­то­го на них ди­ст­ри­бу­ти­ва Salix OS. Ос­но­ван­ные на KDE о­бра­зы Slackel име­ют­ся на но­си­те­лях толь­ко для ус­та­нов­ки и для ус­та­нов­ки в ре­жи­ме live. Не­ко­то­рые ин­ст­ру­мен­тыот Salix OS — про­грам­ма ус­та­нов­ки ко­де­ков, ме­нед­жер па­ке­тов Gslapt, а так­же про­грам­ма ус­та­нов­ки live CD.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Во­зоб­нов­ляе­мый ре­лиз, ко­то­рый пре­дос­тав­ля­ет все са­мое со­вре­мен­ное из Slackware, ис­поль­зуя ин­ст­ру­мен­ты из Salix OS.&lt;br /&gt;
&lt;br /&gt;
====Fedora 6 ====&lt;br /&gt;
&lt;br /&gt;
По­след­ний ре­лиз это­го ди­ст­ри­бу­ти­ва, тра­ди­ци­он­но счи­таю­ще­го­ся аль­тер­на­ти­вой Ubuntu и раз­ра­ба­ты­вае­мо­го со­об­ще­ст­вом при под­держ­ке Red Hat, от­дал пред­поч­те­ние сер­вер­ным функ­ци­ям про­тив на­столь­ных. И по­это­му он ско­рее иг­ро­вая пло­щад­ка для опыт­ных поль­зо­ва­те­лей. Да и во­об­ще, это тес­то­вый по­ли­гон для бу­ду­щих пред­ло­же­ний Red Hat.&lt;br /&gt;
&lt;br /&gt;
Кро­ме то­го, ди­ст­ри­бу­тив стал слож­нее в ис­поль­зо­ва­нии из-за вве­де­ния ра­бо­че­го сто­ла Gnome 3 (по­сте­пен­но улуч­шаю­ще­го­ся). Но­вич­ки ото­ро­пе­ют при ви­де го­ло­го эк­ра­на, тре­бую­ще­го осо­бых на­вы­ков, что­бы ра­зо­брать­ся в на­ви­га­ции. От­сут­ст­вие ра­бо­че­го ме­нед­же­ра па­ке­тов и муль­ти­ме­диа-ко­де­ков, а так­же антиин­туи­тив­ный ин­стал­ля­тор то­же не ра­ду­ют.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Весь­ма пер­спек­тив­ный ди­ст­ри­бу­тив для опыт­ных поль­зо­ва­те­лей, ми­но­вав­ших кри­зис сред­не­го воз­рас­та.&lt;br /&gt;
&lt;br /&gt;
====Mageia 8 ====&lt;br /&gt;
&lt;br /&gt;
Mandrake Linux был пер­вым ди­ст­ри­бу­ти­вом Linux для обычных поль­зо­вателей. Он про­шел че­рез ряд пе­ре­во­пло­ще­ний, и его по­след­няя ава­та­ра за­ста­ви­ла чле­нов его со­об­ще­ст­ва со ста­жем уй­ти в от­ветв­ле­ние. Те­перь ди­ст­ри­бу­тив на ба­зе RPM име­ну­ет­ся Mageia и под­дер­жи­ва­ет­ся со­лид­ной ин­фра­струк­ту­рой со­об­ще­ст­ва. Он пред­ла­га­ет ра­бо­чие сто­лы KDE и Gnome, и в трех ре­по­зи­то­ри­ях ди­ст­ри­бу­ти­ва най­дутся все нуж­ные вам про­грам­мы. Его про­грам­ма ус­та­нов­ки про­ста в на­ви­га­ции, и не­сколь­ко эк­ра­нов име­ют кноп­ку Advanced, с оп­циямий для опыт­ных поль­зо­ва­те­лей. Са­мая вы­даю­щая­ся функ­ция это­го ди­ст­ри­бу­ти­ва — Mageia Control Center, здесь мо­жно на­стро­ить поч­ти все ас­пек­ты сис­те­мы.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: От­ветв­ле­ние на ба­зе со­об­ще­ст­ва на со­лид­ном фун­да­мен­те, и дос­той­ный ди­ст­ри­бу­тив для повседневных задач.&lt;br /&gt;
&lt;br /&gt;
====OpenSUSE 7 ==== &lt;br /&gt;
&lt;br /&gt;
Еще один ве­те­ран и один из ве­ду­щих поль­зо­ва­те­лей (и уча­ст­ни­ков раз­ра­бот­ки) ра­бо­че­го сто­ла KDE — хо­тя офи­ци­аль­но они не объ­яв­ля­ли о сво­их пред­поч­те­ни­ях. На са­мом де­ле, этот ди­ст­ри­бу­тив дос­той­но ве­дет се­бя на обо­их ра­бо­чих сто­лах, и ви­зу­аль­но весь­ма при­вле­ка­те­лен.&lt;br /&gt;
&lt;br /&gt;
Его ин­ст­ру­мент управ­ле­ния YaST (Yet another Setup Tool), ра­бо­таю­щий по прин­ци­пу все-в-од­ном, уме­ет ус­та­нав­ли­вать про­грам­мы, а так­же на­страи­вать и ад­ми­ни­ст­ри­ро­вать сис­те­му. Хо­тя иметь все ин­ст­ру­мен­ты в од­ном мес­те до­воль­но удоб­но, все же это до­воль­но слож­но и слег­ка пу­га­ет но­вых поль­зо­ва­те­лей Linux. Да и ус­та­нов­щик это­го ди­ст­ри­бу­ти­ва не так прост, как в Ubuntu. А так­же, в на­ру­ше­ние всех тра­ди­ций, ди­ст­ри­бу­тив вы­пус­ка­ет но­вый ре­лиз ка­ж­дые во­семь ме­ся­цев.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Хо­тя этот ди­ст­ри­бу­тив и раз­ра­бо­тан для поль­зо­ва­те­лей насто­льных ПК, он не столь дру­же­лю­бен, как Ubuntu или Mint, но ста­нет от­лич­ной ОС для пред­при­ятия.&lt;br /&gt;
&lt;br /&gt;
====PureOS 6 ====&lt;br /&gt;
&lt;br /&gt;
Ди­ст­ри­бу­тив име­ет­ся в двух ви­дах; ос­но­ван или на Gnome, или на лег­ко­вес­ном ра­бо­чем сто­ле Openbox. PureOS ос­но­ван на тес­то­вой вет­ке Debian и под­дер­жи­ва­ет мно­го­языч­ные ло­ка­ли­за­ции. PureOS дос­ту­пен толь­ко в ви­де об­ра­зов для соз­да­ния Live USB-дис­ков. Цель его — быть функ­цио­наль­ным ди­ст­ри­бу­ти­вом, ко­то­рый затем мож­но пер­со­на­ли­зи­ро­вать, до­ба­вив мо­ду­ли с по­мо­щью вклю­чен­ных в не­го скрип­тов. Так­же со­дер­жит скрипт smxi для тонкой на­строй­ки сис­те­мы и ус­та­нов­ки про­прие­тар­ных драй­ве­ров.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Глад­кий, го­то­вый к работе ди­ст­ри­бу­тив для умель­цев.&lt;br /&gt;
&lt;br /&gt;
====PCLinuxOS 7 ====&lt;br /&gt;
&lt;br /&gt;
Этот ди­ст­ри­бу­тив на­чи­нал как ре­по­зи­то­рий для улуч­ше­ния ос­нов­но­го ре­ли­за Mandriva, а позд­нее стал от­дель­ным ди­ст­ри­бу­ти­вом. PCLinuxOS офи­ци­аль­но яв­ля­ет­ся ди­ст­ри­бу­ти­вом KDE, од­на­ко име­ет от­ветв­ле­ния от со­об­ще­ст­ва на ос­но­ве ра­бо­чих сто­лов LXDE и Xfce.&lt;br /&gt;
&lt;br /&gt;
Ди­ст­ри­бу­тив уме­ет вос­про­из­во­дить все ви­ды муль­ти­ме­диа. Для ус­та­нов­ки RPM-па­ке­тов он при­ме­ня­ет apt-rpm и Synaptic Package Manager. Его ин­ст­ру­мент на­строй­ки и про­грам­ма ус­та­нов­ки яв­но от­вер­га­ет род­ст­во с Mandriva. Ди­ст­ри­бу­тив со­дер­жит ил­лю­ст­ри­ро­ван­ное ру­ко­вод­ство по ус­та­нов­ке, а так­же вы­пус­кает для сво­их поль­зо­ва­те­лей еже­ме­сяч­ный жур­нал.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Счи­тай­те его чем-то наподобие Mageia, но с уже заготовленными муль­ти­ме­диа-ко­де­ка­ми.&lt;br /&gt;
&lt;br /&gt;
====Sabayon Linux 9 ====&lt;br /&gt;
&lt;br /&gt;
Цель про­ек­та Sabayon — пре­дос­та­вить по­сто­ян­ным поль­зо­ва­те­лям насто­льных компьютеров воз­мож­ность по­зна­ко­мить­ся с ди­ст­ри­бу­ти­вом Gentoo. Это бо­га­тый функ­ция­ми ди­ст­ри­бу­тив, соз­дан­ный на ста­биль­ной и зре­лой ос­но­ве.&lt;br /&gt;
&lt;br /&gt;
В Sabayon есть все не­об­хо­ди­мое для поль­зо­ва­те­ля насто­льной системы, в том чис­ле все ви­ды ко­де­ков и модулей расширения (плагинов). По­ми­мо обыч­но­го мно­же­ст­ва при­ло­же­ний, в нем так­же есть ме­диа-плей­ер XBMC и Wine для ра­бо­ты с при­ло­же­ния­ми Windows.&lt;br /&gt;
&lt;br /&gt;
Для управ­ле­ния па­ке­та­ми име­ет­ся на­страи­вае­мый брау­зер при­ло­же­ний Rigo. Это гра­фи­че­­ская обо­лоч­ка для Entropy, сис­те­мы управ­ле­ния па­ке­та­ми Sabayon, и она ими­ти­ру­ет внеш­ний вид по­ис­ко­вой ма­ши­ны Google. При­ло­же­ние про­сто в ра­бо­те и очень раз­го­вор­чи­во. Вме­сто ото­бра­же­ния за­га­доч­ных со­об­ще­ний оно объ­яс­ня­ет­ся с поль­зо­ва­те­ля­ми на человеческом (анг­лий­ском) язы­ке.&lt;br /&gt;
&lt;br /&gt;
У ди­ст­ри­бу­ти­ва есть раз­но­вид­но­сти для всех по­пу­ляр­ных ра­бо­чих сто­лов, в том чис­ле для Gnome, KDE, Xfce и Mate. И этот ди­ст­ри­бу­тив поставляет не исходный ре­ли­з Gnome, а про­из­водит не­ко­то­рые на­строй­ки — на­при­мер, что­бы ото­бра­жать умень­шен­ные кноп­ки — для под­держ­ки еди­но­об­ра­зия раз­ных ре­ли­зов. Вы най­де­те в его офи­ци­аль­ных ре­по­зи­то­ри­ях и дру­гие ра­бо­чие сто­лы, на­при­мер, Cinnamon и Razor-Qt. По­ми­мо это­го, есть не­сколь­ко спец­раз­но­вид­но­стей для осо­бых це­лей: на­при­мер, ми­ни­ма­ли­ст­ский CoreCDX и HardenedServer на базе яд­ра Gentoo Hardened kernel.&lt;br /&gt;
&lt;br /&gt;
Хо­тя Sabayon — ди­ст­ри­бу­тив с возобновляемым ре­ли­зом [rolling release], раз­ра­бот­чи­ки на­строи­ли его так, что­бы ра­бо­та с ним бы­ла удоб­на для на­чи­наю­щих поль­зо­ва­те­лей.&lt;br /&gt;
&lt;br /&gt;
Ус­та­нов­ка про­из­во­дит­ся пе­ре­ра­бо­тан­ной про­грам­мой ус­та­нов­ки Anaconda, соз­дан­ной ди­ст­ри­бу­ти­вом Fedora. Так­же мож­но за­гру­зить 64-бит­ные об­ра­зы бо­лее но­вых вер­сий — в сис­те­мы с вклю­чен­ным SecureBoot. На сай­те ди­ст­ри­бу­ти­ва вы най­де­те мас­су до­ку­мен­та­ции, удоб­ной для на­чи­наю­ще­го поль­зо­ва­те­ля и вклю­чаю­щей по­ша­го­вое ру­ко­во­дство по ус­та­нов­ке и под­роб­ный FAQ.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Ди­ст­ри­бу­тив пред­ла­га­ет всю мощь и глад­кость Gentoo в смяг­чен­ном и дру­же­люб­ном к поль­зо­ва­те­лю на­столь­ном па­ке­те.&lt;br /&gt;
&lt;br /&gt;
====Linux Mint 9 ====&lt;br /&gt;
&lt;br /&gt;
С мо­мен­та сво­его де­бю­та в 2006 Linux Mint мед­лен­но, но вер­но пе­ре­ме­щал­ся к вер­ши­нам всех рей­тин­гов лю­би­мых ди­ст­ри­бу­ти­вов. Од­на из ос­нов­ных при­чин ус­пе­ха ди­ст­ри­бу­ти­ва в том, что, хо­тя он ос­но­ван на Ubuntu, его ра­бо­чий стол по умол­ча­нию гораздо бо­лее тра­ди­цио­нен, чем спорный ин­тер­фейс Unity в Ubuntu. Linux Mint пред­ла­га­ет поль­зо­ва­те­лям вы­бор из двух сред ра­бо­че­го сто­ла на ос­но­ве Gnome, ко­то­рые он на­звал Mate и Cinnamon.&lt;br /&gt;
&lt;br /&gt;
Mate соз­дан для то­го, что­бы быть пре­дан­ным про­дол­жа­те­лем ста­ро­го ра­бо­че­го сто­ла Gnome 2. Cinnamon — по­но­вее, с оп­рят­ным ме­ню, даю­щим дос­туп ко всем на­строй­кам сис­те­мы и при­ло­же­ни­ям из од­но­го центрального пункта.&lt;br /&gt;
&lt;br /&gt;
Ди­ст­ри­бу­тив так­же идет с пред­ва­ри­тель­но за­гру­жен­ным пол­ным на­бо­ром ау­дио- и ви­део­ко­де­ков и об­ла­да­ет впе­чат­ляю­щим Software Manager.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Про­стой в ус­та­нов­ке и от­по­ли­ро­ван­ный ра­бо­чий стол, ко­то­рый с хо­ду на­чи­на­ет ра­бо­тать. Идеален для вас, если пресловутый Unity вам про­тив шер­сти.&lt;br /&gt;
&lt;br /&gt;
====Chakra 8====&lt;br /&gt;
&lt;br /&gt;
Это, бес­спор­но, са­мый при­вле­ка­тель­ный внеш­не ди­ст­ри­бу­тив ра­бо­че­го сто­ла KDE, и у боль­шин­ст­ва поль­зо­ва­те­лей он за­ра­бо­та­ет пря­мо сра­зу. Из­на­чаль­но ди­ст­ри­бу­тив ос­но­вы­вал­ся на Arch Linux. Это на­по­ло­ви­ну сколь­зя­щий ре­лиз, ко­то­рый, по его соб­ст­вен­но­му при­зна­нию, пред­на­зна­чен для поль­зо­ва­те­лей, ко­то­рые не бо­ят­ся командной строки.&lt;br /&gt;
&lt;br /&gt;
Его ме­нед­жер па­ке­тов все еще в ста­дии раз­ра­бот­ки, но у не­го есть дос­той­ная за­ме­на в ви­де ме­нед­же­ра «пуч­ков» [bundles manager]. Пуч­ки — это ав­то­ном­ные ком­плек­ты по­пу­ляр­ных при­ло­же­ний, ус­та­нав­ли­вае­мые од­ним щелч­ком. Ус­та­нов­ка дела­ет­ся про­грам­мой, ко­то­рая ис­поль­зу­ет KDE Partition Manager для разбие­ния дис­ка на раз­де­лы. Так­же здесь есть впе­чат­ляю­щее при­ло­же­ние пер­со­на­ли­за­ции пер­вой за­груз­ки [first-boot personaliser].&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Очень сим­па­тич­ный ра­бо­чий стол KDE, и он по­мо­га­ет вам ин­ди­ви­ду­ально на­стро­ить свою ра­бо­чую сре­ду.&lt;br /&gt;
&lt;br /&gt;
====Salix OS====&lt;br /&gt;
&lt;br /&gt;
Раз­ра­бот­чи­ки Salix OS рас­смат­ри­ва­ли свой ди­ст­ри­бу­тив как не­кий бон­сай — ма­лень­кий, лег­кий и яв­ляю­щий­ся про­дук­том бес­ко­неч­ной за­бо­ты; и с этим нель­зя не со­гла­сить­ся. Оформ­ле­ние ди­ст­ри­бу­ти­ва лас­ка­ет глаз бла­го­да­ря под­бор­ке обо­ев, знач­ков и тем.&lt;br /&gt;
&lt;br /&gt;
Ос­но­ван­ный на Slackware ди­ст­ри­бу­тив име­ет­ся в шес­ти раз­ных вер­си­ях — с ра­бо­чи­ми сто­ла­ми KDE, Xfce, Mate, LXDE, Fluxbox и Ratpoison. Salix быстр и прост в ис­поль­зо­ва­нии. Он со­дер­жит 78-стра­нич­ное ру­ко­во­дство, и сайт ди­ст­ри­бу­ти­ва изо­би­лу­ет до­пол­ни­тель­ной до­ку­мен­та­ци­ей по от­дель­ным за­да­чам.&lt;br /&gt;
&lt;br /&gt;
Хо­тя ко­де­ков Salix не со­дер­жит, в нем есть про­грам­ма их ус­та­нов­ки за один щел­чок. И вообще, в этом ди­ст­ри­бу­ти­ве мно­же­ст­во поль­зо­ва­тель­ских ин­ст­ру­мен­тов внут­рен­ней раз­ра­бот­ки. Сре­ди наи­бо­лее ин­те­рес­ных, по­ми­мо ус­та­нов­щи­ка ко­де­ков: гра­фи­че­­ская ути­ли­та для кло­ни­ро­ва­ния live-сис­те­мы, мас­тер соз­да­ния по­сто­ян­но­го хра­ни­ли­ща и гра­фи­че­­ский ин­ст­ру­мент для вы­пол­не­ния про­стых ад­ми­ни­ст­ра­тив­ных за­дач, на­при­мер, до­бав­ле­ния но­вых поль­зо­ва­те­лей.&lt;br /&gt;
&lt;br /&gt;
Есть и гра­фи­че­­ская про­грам­ма ус­та­нов­ки Salix, и она дос­тав­ля­ет при­ят­ное раз­но­об­ра­зие в ря­ду при­выч­ных ин­стал­ля­то­ров. Для управ­ле­ния па­ке­та­ми ди­ст­ри­бу­тив ис­поль­зу­ет гра­фи­че­­ский ме­нед­жер па­ке­тов Gslapt, яв­ляю­щий­ся ин­тер­фей­сом для slap-get. По­сколь­ку ди­ст­ри­бу­тив пол­но­стью со­вмес­тим со Slackware, в нем так­же есть гра­фи­че­­ский ин­ст­ру­мент для ком­пи­ля­ции па­ке­тов из ре­по­зи­то­рия SlackBuilds.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Для поль­зо­ва­те­лей, за­ин­те­ре­со­ван­ных в ста­биль­но­сти Slackware и удоб­ст­ве ме­нед­же­ра па­ке­тов.&lt;br /&gt;
&lt;br /&gt;
====Qubes OS====&lt;br /&gt;
&lt;br /&gt;
Прак­ти­ку­ет под­ход к обес­пе­че­нию безо­пас­но­сти, из­вест­ный как безо­пас­ность че­рез изо­ля­цию, и по этой при­чи­не безо­па­снее, чем сред­ний ди­ст­ри­бу­тив ра­бо­че­го сто­ла. Каж­дое при­ло­же­ние в Qubes ра­бо­та­ет внут­ри соб­ст­вен­но­го до­ме­на безо­пас­но­сти. Но­вая ус­та­нов­ка ав­тома­ти­че­­ски соз­да­ет та­кие до­ме­ны, как Work [Ра­бо­та], Personal [Лич­ное] и Untrusted [Не­про­ве­рен­ное], и де­лит при­ло­же­ния ме­ж­ду ни­ми: вы най­де­те LibreOffice в до­ме­не Work, Firefox в до­ме­не Untrusted, и т. д. По боль­шей час­ти Qubes OS ра­бо­та­ет как лю­бой дру­гой ди­ст­ри­бу­тив ра­бо­че­го сто­ла, но вме­сто ка­те­го­рий при­ло­же­ний его ме­ню KDE вы­да­ет спи­сок раз­ных до­ме­нов.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Уни­ка­лен, безо­па­сен и лег­ко ос­ваи­ва­ет­ся.&lt;br /&gt;
&lt;br /&gt;
====Manjaro====&lt;br /&gt;
&lt;br /&gt;
Этот ди­ст­ри­бу­тив с во­зоб­нов­ляе­мы­ми ре­ли­за­ми ос­но­ван на Arch и пред­на­зна­чен для поль­зо­ва­те­лей на­столь­ных ПК. В нем есть пла­ги­ны, ко­де­ки и при­ло­же­ния для ра­бо­ты с раз­ны­ми ви­да­ми фай­лов.&lt;br /&gt;
&lt;br /&gt;
Ди­ст­ри­бу­тив так­же под­дер­жи­ва­ет соб­ст­вен­ные ре­по­зи­то­рии, в ко­то­рые вхо­дят и тща­тель­но про­ве­рен­ные ста­биль­ные про­грам­мы, и са­мые све­жие, но не­ста­биль­ные вер­сии. Ус­та­нов­ка про­грамм про­из­во­дит­ся ин­ди­ви­ду­аль­ным ин­ст­ру­мен­том Pamac — это гра­фи­че­­ский ин­тер­фейс для Pacman, ме­нед­же­ра па­ке­тов Arch. С по­мо­щью Pacman так­же мо­жно ус­та­но­вить в Manjaro про­грам­мы из под­дер­жи­вае­мо­го со­об­ще­ст­вом Arch поль­зо­ва­тель­ско­го ре­по­зи­то­рия. Manjaro офи­ци­аль­но под­дер­жи­ва­ет ра­бо­чие сто­лы Xfce, Cinnamon и Openbox и име­ет две тек­сто­вых про­грам­мы ус­та­нов­ки; бо­лее но­вая под­держивает уст­ройства Secure Boot и RAID.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Manjaro для Arch — то же, что Salix для Slackware.&lt;br /&gt;
&lt;br /&gt;
====Open Xange====&lt;br /&gt;
&lt;br /&gt;
Этот ди­ст­ри­бу­тив на ба­зе Fedora ис­поль­зу­ет слег­ка под­прав­лен­ный ра­бо­чий стол KDE, сде­лав его чуть по­нят­нее для тра­ди­ци­он­но­го поль­зо­ва­те­ля Windows. Кро­ме обыч­ных при­ло­же­ний ра­бо­че­го сто­ла, этот ди­ст­ри­бу­тив так­же пре­дос­тав­ля­ет со­лид­ную под­бор­ку пла­ги­нов и ко­де­ков. На ра­бо­чем сто­ле вы най­де­те кноп­ку для ус­та­нов­ки про­прие­тар­но­го кли­ен­та Dropbox.&lt;br /&gt;
&lt;br /&gt;
Для управ­ле­ния дру­ги­ми про­грам­ма­ми с от­кры­тым ко­дом Open Xange при­ме­ня­ет Apper, ин­тер­фейс к PackageKit от KDE. От Fedora он унаследовал про­грам­му ус­та­нов­ки Anaconda. Ди­ст­ри­бу­тив не под­дер­жи­ва­ет 32-бит­ную ар­хи­тек­ту­ру.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Ос­но­ван­ный на Fedora ра­бо­чий стол, ко­то­ро­му не уда­ет­ся пре­взой­ти Kororaa.&lt;br /&gt;
&lt;br /&gt;
===Лег­ко­весы===&lt;br /&gt;
&lt;br /&gt;
''Не­боль­шие па­ке­ты, иде­аль­ные для ста­ро­го обо­ру­до­ва­ния.''&lt;br /&gt;
&lt;br /&gt;
====Zenwalk====&lt;br /&gt;
&lt;br /&gt;
Ми­ни-ди­ст­ри­бу­тив на базе Slackware с массой раз­но­вид­но­стей. В стан­дарт­ном из­да­нии — ра­бо­чий сто­л Xfce, а дру­гие пред­ла­га­ют Gnome и Openbox. Его цель — до­не­сти до ста­ро­го обо­ру­до­ва­ния новые при­ло­же­ния. Со­вмес­тим с дво­ич­ны­ми па­ке­та­ми Slackware, но применя­ет свой ме­нед­жер па­ке­тов Netpkg, введя воз­мож­ность раз­ре­ше­ния за­ви­си­мо­стей в па­ке­ты TGZ. Уди­ви­тель­но, но в нем есть пол­но­функ­цио­наль­ные при­ло­же­ния вро­де Firefox и Libre­Office. Zen­walk лег­ко пре­вра­тить в тон­ко на­страи­вае­мый LAMP или сер­вер рас­пре­де­лен­но­го дос­ту­па к фай­лам.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Бы­ст­р, с ­новы­ми при­ло­же­ния­ми и шар­мом ста­рой шко­лы.&lt;br /&gt;
&lt;br /&gt;
Рейтинг&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
====ZevenOS====&lt;br /&gt;
&lt;br /&gt;
Про­ект ZevenOS вы­пус­тил два ди­ст­ри­бу­ти­ва, и оба пы­та­ют­ся ими­ти­ро­вать внеш­ний вид и спо­соб ра­бо­ты BeOS. Ос­нов­ной ди­ст­ри­бу­тив, име­нуе­мый ZevenOS, ос­но­ван на Xubuntu и ис­поль­зу­ет Xfce. Он идет со все­ми муль­ти­ме­диа-ко­де­ка­ми и пла­ги­на­ми и пред­на­зна­чен для сис­тем, ко­то­рым не хва­та­ет ре­сур­сов для ра­бо­ты с са­мы­ми све­жи­ми ди­ст­ри­бу­ти­ва­ми ра­бо­че­го сто­ла Linux. Да­лее идет ди­ст­ри­бу­тив ZevenOS Neptune, ко­то­рый главным образом ос­но­ван на тес­то­вой вет­ке Debian, но ис­поль­зу­ет бо­лее но­вое яд­ро и со­дер­жит ряд до­пол­ни­тель­ных драй­ве­ров. Он ис­поль­зует ра­бо­чий стол KDE 4, опять же сти­ли­зо­ван­ный под поль­зо­ва­тель­ский ин­тер­фейс BeOS. Ди­ст­ри­бу­тив пред­на­зна­чен для ус­та­нов­ки на та­кие пор­та­тив­ные но­си­тели, как USB-брел­ки. На его сай­те не­ма­ло ви­део по обо­им ди­ст­ри­бу­ти­вам.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Ubuntu для поклонников BeOS.&lt;br /&gt;
&lt;br /&gt;
====Slitaz====&lt;br /&gt;
&lt;br /&gt;
Ис­поль­зу­ет по­месь LXDE с ме­нед­же­ром окон OpenBox, и соз­дан для ра­бо­ты на обо­ру­до­ва­нии все­го лишь с 256 MБ ОЗУ. Здесь мно­го поль­зо­ва­тель­ских ин­ст­ру­мен­тов, ти­па SlitazPanel. Это удоб­ная па­нель все-в-од­ном, по­зво­ляющая ад­ми­ни­ст­ри­ро­вать все ас­пек­ты ра­бо­ты. Ве­сит Slitaz ме­нее 30 МБ и за­ни­ма­ет все­го 80 МБ на же­ст­ком дис­ке. Здесь нет офис­но­го па­ке­та и ко­де­ков, но их мож­но ус­та­но­вить из ре­по­зи­то­ри­ев. Снаб­жен поль­зо­ва­тель­ской до­ку­мен­та­ци­ей, к ко­то­рой сто­ит об­ра­тить­ся до ис­поль­зо­ва­ния сис­те­мы.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: При­дет­ся кое-че­му нау­чить­ся, но это отличный ди­ст­ри­бу­тив-легко­вес для продвинут­ых поль­зо­ва­те­лей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Slax====&lt;br /&gt;
&lt;br /&gt;
По­пу­ляр­ный ди­ст­ри­бу­тив на базе Slackware не­дав­но вос­прял от че­ты­рех­лет­не­го сна. Он пред­ла­га­ет ра­бо­чий стол KDE и прак­ти­ку­ет мо­дуль­ный под­ход: что­бы до­ба­вить про­грам­му, нуж­но взять мо­дуль из Slax Software Center, ко­то­рый их пред­ла­га­ет все­го не­сколь­ко штук, на­при­мер, AbiWord, Gnumeric и Google Chrome. Не­смот­ря на ма­лый раз­мер, он пред­ла­га­ет все ко­де­ки, пла­ги­ны и при­ло­же­ния для по­все­днев­ной работы, но без офис­но­го па­ке­та. Здесь нет про­грам­мы ус­та­нов­ки: он пред­на­зна­чен для ра­бо­ты с пор­та­тив­но­го но­си­те­ля, типа USB или CD. Оп­ре­де­лив уст­рой­ст­во с пе­ре­за­пи­сью, он ав­то­ма­ти­че­­ски со­хра­ня­ет из­ме­не­ния на нем.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Ди­зайн по­хож на Porteus, но ма­ло­ва­то при­ло­же­ний.&lt;br /&gt;
&lt;br /&gt;
====Porteus====&lt;br /&gt;
&lt;br /&gt;
Ди­ст­ри­бу­тив на базе Slackware, ро­дом из Ир­лан­дии; раз­ра­бо­тан для пор­та­тив­ных уст­ройств, типа дис­ки USB или CD, но его мож­но ус­та­но­вить и на же­ст­кий диск. Уни­кален тем, что су­ще­ст­ву­ет в ар­хи­ви­ро­ван­ном виде и соз­да­ет свою фай­ло­вую сис­те­му на ле­ту. По­ми­мо пре­дус­та­нов­лен­ных при­ло­же­ний, до­пол­ни­тель­ные про­грам­мы для это­го ди­ст­ри­бу­ти­ва идут в ви­де мо­ду­лей. Про­сто два­ж­ды щелк­ни­те мы­шью, что­бы ак­ти­ви­ро­вать или де­ак­ти­ви­ро­вать мо­дуль. Ди­ст­ри­бу­тив со­дер­жит ме­нед­жер па­ке­тов для по­лу­че­ния мо­ду­лей, ко­то­рые мож­но так­же со­хра­нить на же­ст­кий диск, что­бы они пе­ре­жи­ли пе­ре­за­груз­ку. Бла­го­да­ря сво­ей мо­дуль­ной при­ро­де ди­ст­ри­бу­тив не­ве­лик по раз­ме­ру и не­ве­ро­ят­но быстр, по­сколь­ку ра­бо­та­ет из ОЗУ. На его сай­те име­ет­ся об­шир­ная до­ку­мен­та­ция по ис­поль­зо­ва­нию.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Идеа­лен для ус­та­нов­ки на пор­та­тив­ный но­си­тель, хо­тя кри­вая обу­че­ния в нем до­воль­но кру­та.&lt;br /&gt;
&lt;br /&gt;
====Puppy====&lt;br /&gt;
&lt;br /&gt;
Puppy не­пре­взой­ден в пла­не го­то­вых к упот­реб­ле­нию функ­ций. В нем мно­же­ст­во поль­зо­ва­тель­ских при­ло­же­ний, при­ло­же­ний для бло­ки­ров­ки рек­ла­мы на сай­те и ин­тер­нет-те­ле­фо­нии, про­грам­ма для ска­чи­ва­ния под­кас­тов, безо­пас­ная про­грам­ма ска­чи­ва­ния, ау­дио­плей­ер и мно­гое дру­гое.&lt;br /&gt;
&lt;br /&gt;
Ди­ст­ри­бу­тив не со­дер­жит пла­ги­на Flash, но пред­ла­га­ет ска­чать и ус­та­но­вить его, ко­гда вы за­хо­ди­те на сайт, ра­бо­таю­щий на Flash — на­при­мер, на YouTube. Мож­но так­же ус­та­но­вить пла­гин из ме­нед­же­ра па­ке­тов ди­ст­ри­бу­ти­ва. В Puppy есть не­сколь­ко муль­ти­ме­диа-плей­е­ров, в том чис­ле Mplayer, для вос­про­из­ве­де­ния всех ме­диа-фор­ма­тов.&lt;br /&gt;
&lt;br /&gt;
На­чи­наю­щие поль­зо­ва­те­ли от про­грам­мы ус­та­нов­ки Puppy мо­гут оро­беть. Здесь нет ав­то­ма­ти­че­­ско­­го раз­бие­ния дис­ка на раз­де­лы — за­пус­ка­ет­ся Gparted для фор­ма­ти­ро­ва­ния дис­ка. Од­на­ко ка­ж­дый шаг ус­та­нов­щи­ка хо­ро­шо до­ку­мен­ти­ро­ван в нем са­мом. За­груз­ка и за­пуск при­ло­же­ний от­ли­ча­ют­ся ред­кой бы­ст­ро­той, да­же для та­ких мас­сив­ных при­ло­же­ний, как Mplayer и VLC, ко­то­рые мож­но ус­та­но­вить че­рез Puppy Package Manager. Па­ке­ты име­ну­ют­ся pet и име­ют рас­ши­ре­ние .pet. Мож­но ус­та­но­вить па­ке­ты для Puppy с по­мо­щью его поль­зо­ва­тель­ско­го ин­ст­ру­мен­та Puppy Package Manager, а мож­но на­стро­ить его на ска­чи­ва­ние па­ке­тов из дру­гих ре­по­зи­то­ри­ев Puppy.&lt;br /&gt;
&lt;br /&gt;
У не­го есть два не­за­ви­си­мых и очень ак­тив­ных фо­ру­ма и безд­на до­ку­мен­та­ции. Так­же в нем есть под­сказ­ка по не­сколь­ким те­мам, на­при­мер, по ра­бо­те с фай­ла­ми Microsoft Office, до­бав­ле­нию ко­де­ков и про­грамм и т. д. &lt;br /&gt;
&lt;br /&gt;
Есть не­сколь­ко ва­ри­ан­тов Puppy Linux. WaryPuppy — один из са­мых под­хо­дя­щих для ста­ро­го обо­ру­до­ва­ния, и в нем все­го 130 МБ. Он пред­ла­га­ет два Х-сер­ве­ра — Xorg и Xvesa, пе­ре­кры­ваю­щих ши­ро­кий диа­па­зон гра­фи­че­­ских уст­ройств. Есть еще ва­ри­ант RacyPuppy, пред­на­зна­чен­ный для бо­лее но­во­го обо­ру­до­ва­ния, и SlackoPuppy, на ба­зе Slackware, плюс PrecisePuppy, на ба­зе по­след­не­го ре­ли­за Ubuntu LTS.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Действительно луч­ший ди­ст­ри­бу­тив из предназначенных для обо­ру­до­ва­ния, зо­ло­тые вре­мена ко­то­ро­го остались по­за­ди.&lt;br /&gt;
&lt;br /&gt;
Рейтинг&lt;br /&gt;
&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
====Fuduntu====&lt;br /&gt;
&lt;br /&gt;
Из­на­чаль­но раз­ра­бо­тан для пе­ре­дел­ки обыч­но­го ре­ли­за Fedora в дру­же­люб­ную вер­сию, а на­зва­ние свое за­ра­бо­тал из-за стрем­ле­ния за­нять ме­сто где-то по­сре­ди Fedora и Ubuntu. Вклю­ча­ет функ­ции со­вре­мен­ных ди­ст­ри­бу­ти­вов, под­дер­жи­вая внеш­ний вид и спо­соб ра­бо­ты тра­ди­ци­он­но­го ра­бо­че­го сто­ла. Это один из не­сколь­ких ди­ст­ри­бу­ти­вов, все еще по­став­ляе­мых с ра­бо­чим сто­лом Gnome 2. В со­от­вет­ст­вии с на­зва­ни­ем, со­дер­жит ин­ст­ру­мент рас­по­зна­ва­ния обо­ру­до­ва­ния Jockey от Ubuntu, ко­то­рый так­же смо­жет ска­чать про­прие­тар­ные драй­ве­ры, ради мак­си­мума про­из­во­ди­тель­ности. Fuduntu не бо­ит­ся про­прие­тар­ных про­грамм; в нем име­ют­ся кли­ен­ты Steam и Netflix, за­пус­ка­емые че­рез Wine. Есть так­же про­стые в ис­поль­зо­ва­нии ин­ст­ру­мен­ты управ­ле­ния па­ке­та­ми и на­строй­ки, а ус­та­нав­ливается он бо­лее ста­рым ин­стал­ля­то­ром Fedora — Anaconda, что весь­ма не­пло­хо.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Стран­ная смесь тра­ди­ци­он­но­го и но­во­го; хо­ро­шо ра­бо­та­ет на ма­ло­мощ­ных ком­пь­ю­те­рах.&lt;br /&gt;
&lt;br /&gt;
====Sparky Linux====&lt;br /&gt;
&lt;br /&gt;
Вам ну­жен ди­ст­ри­бу­тив сра­зу и для но­во­го, и для ста­ро­го ком­пь­ю­те­ра? SparkyLinux как раз для вас. Он раз­ра­бо­тан как для но­вых, так и для ста­рых ма­шин, и в нем есть два на­страи­вае­мых ра­бо­чих сто­ла (Enlightenment и LXDE) в ос­нов­ном из­да­нии и Openbox в из­да­нии Ultra.&lt;br /&gt;
&lt;br /&gt;
Его ин­ди­ви­ду­аль­ная про­грам­ма ус­та­нов­ки об­ра­ща­ет­ся к раз­лич­ным ин­ст­ру­мен­там для на­строй­ки раз­ных ас­пек­тов сис­те­мы, на­при­мер, к debconf — ути­ли­те Debian для на­строй­ки кла­виа­ту­ры, и к Gparted для раз­бие­ния дис­ков на раз­де­лы. Он со­дер­жит как пол­но­функ­цио­наль­ные про­грам­мы, как, на­при­мер, VLC, так и лег­ко­вес­ные, как AbiWord.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Ди­ст­ри­бу­тив-лег­ко­вес, ко­то­рый бу­дет очень ров­но ра­бо­тать на по­лу­ус­та­рев­ших ком­пь­ю­те­рах.&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
====aLinux====&lt;br /&gt;
&lt;br /&gt;
Один из спо­со­бов соз­дать ди­ст­ри­бу­ти­в для ста­ро­го «железа» — взять бо­лее ста­рые про­граммы, меньше нагружающие скуд­ные ре­сур­сы. aLinux ис­поль­зу­ет KDE 3.5 со ста­рой вер­си­ей Koffice, но вос­про­из­во­дит все ви­ды муль­ти­ме­диа, имеет все иг­ры и Wine для ра­бо­ты с приложения­ми Windows; да­же со­дер­жит про­прие­тар­ные про­грам­мы вро­де Skype и Google Earth. Ус­та­нов­ка про­ста, бла­го­да­ря не­слож­ной на­ви­га­ци­и.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Смесь ста­рого и но­вого; но ладит не со всеми ста­рыми ма­ши­нами.&lt;br /&gt;
&lt;br /&gt;
====DSL====&lt;br /&gt;
&lt;br /&gt;
Ес­ли вы со­чли Puppy эзо­те­рич­ным, какой же тогда DSL? Это по­пу­ляр­ный ди­ст­ри­бу­тив тоже не­дав­но про­бу­дил­ся от спяч­ки. Он ис­поль­зу­ет ме­нед­жер окон JWM и по­сле за­груз­ки за­пус­ка­ет ру­ко­во­дство Getting Started, что­бы со­ри­ен­ти­ро­вать поль­зо­ва­те­лей. Объем его 50 МБ; хотя ос­нов­ные при­ло­же­ния здесь име­ются, не­ко­то­рые, по­доб­но Firefox, ус­та­ре­ли так, что сай­ты вро­де YouTube гру­зить­ся не бу­дут. Мо­жно до­ба­вить дру­гие при­ло­же­ния с по­мо­щью сис­те­мы MyDSL. DSL задуман как ко­че­вой ди­ст­ри­бу­ти­в, но в нем все же есть мас­тер ус­та­нов­ки, ос­но­ван­ный на knxhdinstall, ко­то­рый ско­пи­ру­ет со­держимое на раз­дел в  300 МБ.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Про­цесс обу­че­ния до­воль­но сло­жен; ре­ко­мен­ду­ет­ся толь­ко при крайней не­об­хо­ди­мости вдох­нуть жизнь в ста­рое обо­ру­до­ва­ние.&lt;br /&gt;
&lt;br /&gt;
====OantiX====&lt;br /&gt;
&lt;br /&gt;
Цель это­го лег­ко­вес­но­го ди­ст­ри­бу­ти­ва — обес­пе­чить пол­но­функ­цио­наль­ный дру­же­люб­ный к поль­зо­ва­те­лю на­столь­ный ПК. Он ос­но­ван на тес­то­вом ре­по­зи­то­рии Debian Testing, и яд­ро его от­но­си­тель­но но­вое по срав­не­нию с дру­ги­ми ди­ст­ри­бу­ти­ва­ми для тех же це­лей. Идет с ме­нед­же­ром окон Fluxbox и вос­про­из­во­дит все ви­ды муль­ти­ме­диа. Ос­нов­ные функ­ции ра­бо­че­го сто­ла управ­ля­ют­ся та­ки­ми поль­зо­ва­тель­ски­ми ин­ст­ру­мен­та­ми, как antiX Control Center. Так­же в нем есть свой ме­нед­жер па­ке­тов и своя про­грам­ма ус­та­нов­ки — до­воль­но про­стая и хо­ро­шо до­ку­мен­ти­ро­ван­ная. Есть так­же ин­ст­ру­мент для соз­да­ния ус­та­нав­ли­вае­мо­го в ре­жи­ме live об­раза сис­те­мы.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Хо­ро­ший бы­ст­рый ди­ст­ри­бу­тив для ста­рых ма­шин и тех поль­зо­ва­те­лей, ко­то­рых Puppy Linux оза­да­чи­ва­ет.&lt;br /&gt;
&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
====Bodhi Linux====&lt;br /&gt;
&lt;br /&gt;
Эле­гант­ный ра­бо­чий стол с при­ят­ным и лег­ким ме­нед­же­ром окон Enlightenment. Bodhi, ве­ро­ят­но, яв­ля­ет­ся ди­ст­ри­бу­ти­вом с наи­луч­шей ин­те­гра­ци­ей Enlightenment. В нем есть ряд про­фи­лей, от Bare и Laptop до Compositing и Fancy, и ка­ж­дый из них оп­ти­ми­зи­ро­ван для раз­ных ти­пов обо­ру­до­ва­ния.&lt;br /&gt;
&lt;br /&gt;
При­ло­же­ний в Bodhi ма­ло. Вы мо­же­те до­ба­вить их с по­мо­щью но­ва­тор­ско­го web-ин­ст­ру­мен­та для ус­та­нов­ки про­грамм под на­зва­ни­ем AppCenter. С по­мо­щью это­го ин­ст­ру­мен­та вы так­же смо­же­те ска­чать па­ке­ты лю­бо­го ди­ст­ри­бу­ти­ва и за­тем пе­ре­не­сти их в Bodhi для ус­та­нов­ки.&lt;br /&gt;
&lt;br /&gt;
По­сколь­ку Bodhi ос­но­ван на Ubuntu, он ис­поль­зу­ет про­стую в ис­поль­зо­ва­нии про­грам­му ус­та­нов­ки Ubuntu, и на сво­ем сай­те пред­ла­га­ет мно­же­ст­во поль­зо­ва­тель­ской до­ку­мен­та­ции.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Ми­ни­ма­ли­ст­ский, про­стой в ис­поль­зо­ва­нии ди­ст­ри­бу­тив, не утом­ляю­щий глаз.&lt;br /&gt;
&lt;br /&gt;
====Tiny Core Linux====&lt;br /&gt;
&lt;br /&gt;
При раз­ме­ре все­го 12 МБ, он снаб­жен толь­ко тер­ми­на­лом, тек­сто­вым ре­дак­то­ром и про­грам­мой за­пус­ка при­ло­же­ний на ос­но­ве лег­ко­вес­но­го ме­нед­же­ра окон FLWM.&lt;br /&gt;
&lt;br /&gt;
В нем есть па­нель управ­ле­ния для управ­ле­ния сер­ви­са­ми за­груз­ки и на­строй­ки про­грам­мы за­пус­ка при­ло­же­ний, но все ос­таль­ное нуж­но ус­та­нав­ли­вать че­рез ме­нед­жер па­ке­тов, в том чис­ле и про­грам­му ус­та­нов­ки, ес­ли вы хо­ти­те ус­та­но­вить Tiny Core на же­ст­кий диск. Ди­ст­ри­бу­тив име­ет раз­но­вид­ность CorePlus, с до­пол­ни­тель­ны­ми драй­ве­ра­ми для бес­про­вод­ных карт, ин­ст­ру­мен­том ре­ма­сте­рин­га и под­держ­кой ин­тер­на­цио­на­ли­за­ции.&lt;br /&gt;
&lt;br /&gt;
И, на­ко­нец, есть ва­ри­ант Core edition раз­ме­ром 8 МБ — это про­сто ба­зо­вая сис­те­ма с ин­тер­фей­сом ко­манд­ной стро­ки, по­зво­ляю­щая бо­лее опыт­ным поль­зо­ва­те­лям соз­дать с ну­ля соб­ст­вен­ную сис­те­му.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Бу­дет ра­бо­тать да­же на са­мом ста­ром обо­ру­до­ва­нии, но на­строй­ка по­тре­бу­ет вре­ме­ни.&lt;br /&gt;
&lt;br /&gt;
====CrunchBang Linux====&lt;br /&gt;
&lt;br /&gt;
Ди­ст­ри­бу­тив на ба­зе Debian с лег­ко­вес­ным ме­нед­же­ром окон Openbox. В нем есть Gnome Mplayer, GIMP, VLC, и его web-брау­зер снаб­жен пла­ги­ном Flash. Ди­ст­ри­бу­тив вклю­ча­ет AbiWord и Gnumeric, а так­же скрип­ты для ус­та­нов­ки LibreOffice и Dropbox в его ме­ню. Он ис­поль­зу­ет ме­нед­жер па­ке­тов Synaptic и мо­ди­фи­ци­ро­ван­ную про­грам­му ус­та­нов­ки Debian.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Энер­гич­ный ди­ст­ри­бу­тив на ба­зе Debian; хо­ро­шо ра­бо­та­ет на ста­рых ма­ши­нах и мо­жет быть от­ла­жен и для от­но­си­тель­но но­вых.&lt;br /&gt;
&lt;br /&gt;
====Дру­зья но­вич­ков====&lt;br /&gt;
&lt;br /&gt;
Пред­на­зна­че­ны для сни­же­ния куль­тур­но­го шо­ка от пе­ре­хо­да на дру­гую ОС.&lt;br /&gt;
&lt;br /&gt;
====OS4====&lt;br /&gt;
&lt;br /&gt;
Еще один ди­ст­ри­бу­тив на ба­зе Ubuntu и Xfce для не­опыт­ных поль­зо­ва­те­лей Linux. Един­ст­вен­ное, что вы­де­ля­ет OS4 сре­ди ему по­доб­ных — уни­каль­ная схе­ма ра­бо­че­го сто­ла.&lt;br /&gt;
&lt;br /&gt;
Раз­ра­бот­чи­ки OS4 за­яв­ля­ют о под­держ­ке уст­ройств, ко­то­рые по­ка что не под­дер­жи­ва­ют­ся аж са­мим Ubuntu: на­при­мер, уст­ройств на WebOS и на Nook... и да­же Kindle Fire.&lt;br /&gt;
&lt;br /&gt;
Ди­ст­ри­бу­тив вклю­ча­ет под­держ­ку по­пу­ляр­ных пла­ги­нов брау­зе­ра, мно­же­ст­во при­ло­же­ний для вос­про­из­ве­де­ния и соз­да­ния муль­ти­ме­диа, и да­же ин­ст­ру­мен­ты для соз­да­ния про­грамм. На сай­те ди­ст­ри­бу­ти­ва нет фо­ру­мов и до­ку­мен­та­ции, но вы мо­же­те оп­ла­тить под­держ­ку в он­лайн-ма­га­зи­не, где так­же мож­но при­об­ре­сти на­столь­ные компьютеры и но­ут­бу­ки с пре­дус­та­нов­лен­ным OS4.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Го­то­вый к ра­бо­те ди­ст­ри­бу­тив с уни­каль­ным ин­тер­фей­сом, но беден до­ку­мен­та­ци­ей.&lt;br /&gt;
&lt;br /&gt;
====Ultimate Edition====&lt;br /&gt;
&lt;br /&gt;
Этот ди­ст­ри­бу­тив вос­при­нял свое имя все­рь­ез. Он ис­поль­зу­ет пе­ре­на­стро­ен­ный ра­бо­чий стол KDE с поль­зо­ва­тель­ски­ми знач­ка­ми и ука­за­те­ля­ми. Но все это за­хо­дит че­рес­чур да­ле­ко — те­ма бе­ло­го шриф­та на чер­ном фо­не рас­про­стра­ня­ет­ся на LibreOffice и как-то не спо­соб­ст­ву­ет при­ят­ности ра­бо­ты. И здесь по нескольку при­ло­же­ний на од­ну задачу, что то­же со­мни­тель­ное удо­воль­ст­вие. Хо­тя набор плей­е­ров муль­ти­ме­диа — вещь в об­щем-то без­обид­ная, на­ли­чие не­сколь­ких про­грамм ус­та­нов­ки при­ло­же­ний, та­ких, как Ubuntu Software Center, Lubuntu Software Center и Muon Package Manager, сби­ва­ет с тол­ку. По­тра­тив уй­му вре­ме­ни на на­строй­ку раз­ных ас­пек­тов ра­бо­че­го сто­ла, раз­ра­бот­чи­ки ни­ма­ло не из­ме­ни­ли про­грам­му ус­та­нов­ки Kubuntu 12.04 — она да­же и на­зва­ние по­ка­зы­вает “Kubuntu”.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Все­сто­рон­ний ди­ст­ри­бу­тив в духе Knoppix, спо­со­бный за­пу­тать ми­риа­да­ми воз­мож­но­стей вы­бо­ра.&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
====LinuxLite====&lt;br /&gt;
&lt;br /&gt;
Ди­ст­ри­бу­тив ос­но­ван на Ubuntu 12.04 LTS, и его ра­бо­чий стол Xfce за­бот­ли­во отделан. В LinuxLite име­ют­ся обыч­ные при­ло­же­ния — LibreOffice, Firefox, GIMP и VLC, но по­сколь­ку он ос­но­ван на ре­ли­зе LTS, мно­гие при­ло­же­ния ус­та­ре­ли. Поль­зо­ва­те­ли ра­бо­че­го сто­ла оце­нят на­ли­чие пла­ги­на Flash и ко­де­ков, а так­же появление в по­след­нем ре­ли­зе кли­ен­та Steam.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Еще один при­на­ря­жен­ный ди­ст­ри­бу­тив на базе Ubuntu, ко­то­рый способен пред­ло­жить не слишком много но­во­го.&lt;br /&gt;
&lt;br /&gt;
====Pear Linux====&lt;br /&gt;
&lt;br /&gt;
Этот ди­ст­ри­бу­тив из Фран­ции на базе Ubuntu име­ет свой ин­тер­фейс поль­зо­ва­теля, который покажется привычным приверженцам Mac. Gnome Shell на­стро­ена здесь та­ким об­ра­зом, что­бы на­по­ми­нать OS X, и да­же есть dockbar в сти­ле Mac OS X. Есть го­ря­чие точ­ки для ото­бра­же­ния на­страи­вае­мо­го об­зо­ра и для пе­ре­клю­че­ния вир­ту­аль­ных ра­бо­чих сто­лов. Не­ко­то­рые ин­ст­ру­мен­ты, на­при­мер, па­нель и про­грам­ма за­пус­ка при­ло­же­ний, за­им­ст­вованы из про­ек­та Elementary OS.&lt;br /&gt;
&lt;br /&gt;
Име­ет­ся го­то­вая под­держ­ка по­пу­ляр­ных муль­ти­ме­диа-ко­де­ков, и на ра­бо­чем сто­ле есть зна­чок программы Launch Me First, ко­то­рая вы­пол­ня­ет не­ко­то­рые за­да­чи по­стин­стал­ля­ции: на­при­мер, об­нов­ля­ет ре­по­зи­то­рии и на­страи­ва­ет Pear Appstore, весьма по­хо­жий на Ubuntu Software Center.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Чу­дес­ный ди­ст­ри­бу­тив, об­лег­чаю­щий пе­ре­ход на Linux поль­зо­ва­те­лям OS X.&lt;br /&gt;
&lt;br /&gt;
====Zorin====&lt;br /&gt;
&lt;br /&gt;
Бла­го­да­ря Gnome, на­стро­ен­но­му на сход­ст­во с ра­бо­чим сто­лом Windows 7, бу­дет удо­бен поль­зо­ва­те­лям Windows. Име­ет­ся в не­сколь­ких ва­ри­ан­тах: Core edition бес­плат­ный, но дру­гие (Multimedia, Gaming, Business и Ultimate edition) сто­ят € 7–18. При­ло­же­ние для «мимикрии» по­зво­ля­ет вы­брать, ка­кую про­прие­тар­ную ОС надо ими­ти­ро­вать, а Wine пора­бо­тает с про­грам­ма­ми Windows. Ос­но­ван на Ubuntu и ис­поль­зу­ет инсталлятор это­го ди­ст­ри­бу­ти­ва.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Ubuntu, ко­то­рый за­ста­ви­ли вы­гля­деть, как Windows 7... ес­ли это ваш путь.&lt;br /&gt;
&lt;br /&gt;
====SolusOS====&lt;br /&gt;
&lt;br /&gt;
Раз­ра­бо­тан­ный тем же че­ло­ве­ком, что тру­дил­ся над Debian-вер­си­ей Linux Mint, SolusOS по­стро­ен на Debian Stable, но с бо­лее но­вы­ми про­грам­ма­ми. У не­го от­гла­жен­ный и от­ла­жен­ный ра­бо­чий стол Gnome с ук­ра­ше­ния­ми окон, ниж­ней па­не­лью и про­грам­мой за­пус­ка при­ло­же­ний в сти­ле Windows 7. Так­же он со­дер­жит офис­ные на­столь­ные при­ло­же­ния, плюс Wine, PlayOnLinux и Minitube для про­смот­ра ви­део с YouTube.&lt;br /&gt;
&lt;br /&gt;
Gnome System Settings тщательно организованы в SolusOS Control Center. По­сле ус­та­нов­ки ди­ст­ри­бу­ти­ва вас при­вет­ст­ву­ет пя­ти­ша­го­вый мас­тер пер­во­го за­пус­ка, ко­то­рый ска­ни­ру­ет обо­ру­до­ва­ние и ус­та­нав­ли­ва­ет про­прие­тар­ные драй­ве­ры, и на­страи­ва­ет бранд­мау­эр. С по­мо­щью Synaptic Package Manager мож­но ус­та­но­вить при­ло­же­ния из ре­по­зи­то­ри­ев об­рат­ных пор­тов SolusOS или Debian.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Ста­биль­ный ди­ст­ри­бу­тив ра­бо­че­го сто­ла, вы­гля­дит и ра­бо­та­ет от­лич­но.&lt;br /&gt;
&lt;br /&gt;
====Parsix====&lt;br /&gt;
&lt;br /&gt;
Од­на из пре­лес­тей Parsix — прият­ное оформ­ле­ние и те­мы ра­бо­че­го сто­ла. Дру­же­люб­ный к но­вич­кам ди­ст­ри­бу­тив ос­но­ван на Debian Testing и пред­ла­га­ет са­мый све­жий ста­биль­ный ре­лиз Gnome. Ос­нов­ные вер­сии вы­хо­дят ка­ж­дые пол­го­да. Со­дер­жит ко­де­ки и пла­ги­ны, а так­же плей­ер VLC для ра­бо­ты со все­ми ви­да­ми муль­ти­ме­диа. Про­стая про­грам­ма ус­та­нов­ки че­ст­но вы­пол­ня­ет свою ра­бо­ту. Па­ке­та­ми управ­ляе­т PackageKit от Gnome. Parsix сле­ду­ет Debian Security Advisories [Со­ве­ты по безо­пас­но­сти Debian], и тут же пре­дос­тав­ля­ет об­нов­ле­ния безо­пас­но­сти. Мо­жно ус­та­нав­ли­вать про­прие­тар­ные при­ло­же­ния из его офи­ци­аль­ных ре­по­зи­то­ри­ев, ко­то­рые так­же содержат па­ке­ты из Debian Testing.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Ди­ст­ри­бу­тив на базе Debian с фик­си­ро­ван­ным цик­лом ре­ли­зов, битком на­би­тый при­ло­же­ния­ми.&lt;br /&gt;
&lt;br /&gt;
Рейтинг&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
Рейтинг&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
===Про­дви­ну­тым===&lt;br /&gt;
&lt;br /&gt;
''Для зна­то­ков Linux, ко­то­рым ну­жен пол­ный кон­троль над их сис­те­мой.''&lt;br /&gt;
&lt;br /&gt;
====Debian====&lt;br /&gt;
&lt;br /&gt;
По-преж­не­му счи­тает­ся луч­шим ди­ст­ри­бу­ти­вом для сер­ве­ров, но про­ник и на настольные ПК. Очень гибок: на­стра­ивается и как на­столь­ный, и как се­те­вой/поч­то­вый/фай­ло­вый сер­ве­р. Бла­го­да­ря не са­мым но­вым, за­то тща­тель­но про­ве­рен­ным ста­биль­ным па­ке­там, ис­клю­чи­тель­но безо­па­сен и ладит с са­мыми раз­ными ар­хи­тек­ту­рами. Идет без про­прие­тар­ных драй­ве­ров и ко­де­ков, но то, что он яв­ля­ет­ся од­ним из са­мых ста­рых и по­пу­ляр­ных ди­ст­ри­бу­ти­вов Linux, име­ет свои пре­иму­ще­ст­ва. Поч­ти все про­из­во­ди­те­ли про­грамм пре­дос­тав­ля­ют готовые би­нар­ни­ки для Debian, по­это­му ус­та­нов­ка про­грамм — су­щие пус­тя­ки.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Обес­пе­чи­ва­ет иде­аль­но ста­биль­ную сис­те­му, под­хо­дя­щую для сер­ве­ров.&lt;br /&gt;
&lt;br /&gt;
====Slackware====&lt;br /&gt;
&lt;br /&gt;
Пред­ла­гая па­ке­ты, поч­ти иден­тич­ные сво­им фирменным ре­ли­зам, Slackware стре­мит­ся пре­дос­та­вить наи­бо­лее близ­кий к Unix ди­ст­ри­бу­тив Linux. Ди­ст­ри­бу­тив пре­дос­тав­ля­ет поль­зо­ва­те­лю ог­ром­ные воз­мож­но­сти управ­ле­ния во вре­мя ус­та­нов­ки, по­зво­ляя ре­шить, ка­кие ус­та­нав­ли­вать па­ке­ты и биб­лио­те­ки. Бу­ду­чи од­ним из ста­рей­ших ди­ст­ри­бу­ти­вов Linux, Slackware ис­клю­чи­тель­но ста­би­лен и го­дит­ся для сер­ве­ров. В нем нет гра­фи­че­­ских ин­ст­ру­мен­тов ад­ми­ни­ст­ри­ро­ва­ния сис­те­мы, и па­ке­ты управ­ляются из ко­манд­ной стро­ки, хо­тя есть ос­но­ван­ные на ncurses ин­ст­ру­мен­ты с ог­ра­ни­чен­ной функ­цио­наль­но­стью для вы­пол­не­ния оп­ре­де­лен­ных за­дач. На­вык ра­бо­ты в ко­манд­ной стро­ке пре­вра­тит ра­бо­ту в нем в ис­тин­ное на­сла­ж­де­ние.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Ста­биль­ный, на­деж­ный, клас­си­че­­ский. От­лич­но под­хо­дит для сер­ве­ров и опыт­ных поль­зо­ва­те­лей.&lt;br /&gt;
&lt;br /&gt;
====Gentoo====&lt;br /&gt;
&lt;br /&gt;
Здесь поль­зо­ва­те­ли по­лу­ча­ют все­сто­рон­ний кон­троль над соз­да­ни­ем сис­те­мы с са­мо­го ну­ля. Вме­сте с Arch, Gentoo яв­ля­ет­ся од­ним из са­мых на­страи­вае­мых ди­ст­ри­бу­ти­вов, и он рас­счи­ты­ва­ет на то, что вы ском­пи­ли­руе­те яд­ро, на­стро­ив его на свой вкус во вре­мя ус­та­нов­ки. Ди­ст­ри­бу­тив упа­ко­вы­ва­ет по­тря­саю­щую сис­те­му управ­ле­ния па­ке­та­ми в Portage. В от­ли­чие от боль­шин­ст­ва дру­гих ди­ст­ри­бу­ти­вов, ус­та­нов­ка Gentoo мо­жет за­нять от не­сколь­ких ча­сов до не­сколь­ких дней, в за­ви­си­мо­сти от ко­ли­че­­ст­ва желаемых па­ке­тов, по­сколь­ку те ска­чи­ва­ют­ся из Ин­тер­нет. Ес­ли вы ни­ко­гда не поль­зо­ва­лись им пре­ж­де, вам при­дет­ся по­учить­ся, и вы по­зна­ко­ми­тесь с на­чин­кой Linux и не­сколь­ки­ми но­вы­ми тех­но­ло­гия­ми, род­ны­ми для Gentoo, на­при­мер, с сис­те­мой фла­гов USE. Про­из­вод­ные типа Funtoo мо­гут стать не­пло­хим стар­то­вым пунк­том для тех, кто не зна­ком или не же­ла­ет свя­зы­вать­ся со слож­но­стя­ми Gentoo.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Про­иг­ры­ва­ет Arch из-за дол­го­й ус­та­нов­ки и ря­да не­зна­ко­мых кон­цеп­ций, как, на­при­мер, флаж­ки USE.&lt;br /&gt;
&lt;br /&gt;
Рейтинг&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
====Arch====&lt;br /&gt;
&lt;br /&gt;
Arch — ли­дер про­шло­го Срав­не­ния ди­ст­ри­бу­ти­вов для умников: те его силь­но лю­бят за вы­со­кую сте­пе­нь на­страи­вае­мо­сти. Име­ет сколь­зя­щий цикл ре­ли­зов, но не пре­дос­тав­ля­ет па­ке­тов по умол­ча­нию. Ус­та­нов­ка мо­жет за­тя­нуть­ся — это за­ви­сит от желаемых па­ке­тов: они за­гру­жа­ют­ся из Ин­тер­не­та. Фишка Arch, обес­пе­чи­ваю­щая ему вы­со­кие рей­тин­ги — ин­ст­ру­мент управ­ле­ния па­ке­та­ми Pacman. Ус­та­нов­ка по­зна­ко­мит вас с ря­дом фай­лов настройки, ко­то­рые на­до за­дать вруч­ную. Вруч­ную де­лает­ся все, от раз­бие­ния дис­ка на раз­де­лы и до ус­та­нов­ки про­грам­мы за­груз­ки. Arch породил не­сколь­ко ди­ст­ри­бу­ти­вов, ка­ж­дый со своими от­ли­чиями. Испытайте Cinnarch, ес­ли вам нуж­на вся мощь Arch в со­че­та­нии с Cinnamon.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: На­строй­ка быст­рее, чем у Gentoo, и боль­ше радостей для тех­на­рей, чем в лю­бом дру­гом ди­ст­ри­бу­тиве.&lt;br /&gt;
&lt;br /&gt;
Рейтинг&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
===CentOS====&lt;br /&gt;
&lt;br /&gt;
Про­ис­ход­ит от RHEL и яв­ля­ет­ся лю­бим­цем тех ад­ми­ни­ст­ра­то­ров, ко­то­рые пред­по­чи­та­ют сис­те­му управ­ле­ния па­ке­та­ми RPM; пре­дос­тав­ля­ет вам все, че­го толь­ко мож­но ожи­дать в ди­ст­ри­бу­ти­ве клас­са пред­при­ятия. Иде­аль­но под­хо­дит для на­строй­ки сер­ве­ров, потому что в нем есть Apache, MySQL, PHP, Perl и раз­лич­ное сер­ве­рное ПО; но в нем ма­ло под­хо­дя­ще­го для по­все­днев­но­го ис­поль­зо­ва­ния, или для лю­би­те­лей, или для про­дви­ну­тых поль­зо­ва­те­лей Linux. Для срав­не­ния, его глав­ный кон­ку­рент, Debian, яв­ля­ет­ся ди­ст­ри­бу­ти­вом об­ще­го поль­зо­ва­ния, ко­то­рый в рав­ной ме­ре хо­рош на до­маш­нем ПК или для об­слу­жи­ва­ния web-стра­ниц.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Поч­ти вы­тес­нен аль­тер­на­ти­вами, такими как Scientific Linux.&lt;br /&gt;
&lt;br /&gt;
Рейтинг&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
&lt;br /&gt;
Рейтинг&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
===Про­дви­ну­тые лег­ко­ве­сы===&lt;br /&gt;
&lt;br /&gt;
====Crux====&lt;br /&gt;
&lt;br /&gt;
Ба­зи­рует­ся на ис­ход­ни­ке; име­ет­ся толь­ко для ар­хи­тек­ту­ры x86-64 и ис­поль­зу­ет сис­те­му пор­тов для управ­ле­ния па­ке­та­ми, ком­пи­ли­ру­ясь по фор­му­ле KISS [ее суть — «будь­те про­ще», — прим. пер.], и пред­поч­итая про­сто­ту в­то­ма­ти­за­ци­и. Не­гра­фи­че­­ский инсталлятор включа­ет ком­пи­ля­цию яд­ра в ус­та­нов­ку, как в Gentoo.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Чу­дес­ный ди­ст­ри­бу­тив для опыт­ных поль­зо­ва­те­лей, с под­держ­кой толь­ко 64-бит­ной ар­хи­тек­ту­ры.&lt;br /&gt;
&lt;br /&gt;
====Frugalware====&lt;br /&gt;
&lt;br /&gt;
Создан­ный на базеSlackware, Frugalware верен про­шло­му. Пред­на­зна­чен для сред­них и про­дви­ну­тых поль­зо­ва­те­лей, и пред­ла­га­ет вы­бор ме­ж­ду ко­манд­ной стро­кой или гра­фи­че­­ской ус­та­нов­кой. На DVD мно­же­ст­во па­ке­тов, и его лег­ко на­стро­ить в ка­че­­ст­ве сер­ве­ра.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Хо­ро­ший ди­ст­ри­бу­тив, ес­ли вам нуж­ны все функ­ции Arch.&lt;br /&gt;
&lt;br /&gt;
====Foresight Linux====&lt;br /&gt;
&lt;br /&gt;
Про­дви­ну­тых поль­зо­ва­те­лей за­ин­те­ре­сует в нем одно: сис­те­ма управ­ле­ния па­ке­та­ми Conary. В от­ли­чие от аналогов, Conary об­нов­ля­ет толь­ко устаревшие фай­лы, эко­но­мя вре­мя и по­ло­су; так­же мо­жет от­катить или вер­нуть лю­бое об­нов­ле­ние од­ной ко­ман­дой.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Не пред­ла­га­ет про­дви­ну­то­му поль­зо­ва­те­лю ни­че­го осо­бен­но­го, кро­ме Conary.&lt;br /&gt;
&lt;br /&gt;
По­ми­мо ди­ст­ри­бу­ти­вов, добытых из Интер­нет, мы еще соз­да­ли собственный. По­сколь­ку мы про­во­дим мно­го вре­ме­ни за иг­рами, он у нас иг­ро­вой. В нем бо­лее сотни игр, ко­то­рые мы смогли уме­стить на  DVD, так что за­гру­зи­те его — и иг­рай­те во что хо­ти­те, от нар­дов до пин­бо­ла. |&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%94%D0%BE%D0%B1%D1%80%D0%BE_%D0%BF%D0%BE%D0%B6%D0%B0%D0%BB%D0%BE%D0%B2%D0%B0%D1%82%D1%8C!</id>
		<title>Добро пожаловать!</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%94%D0%BE%D0%B1%D1%80%D0%BE_%D0%BF%D0%BE%D0%B6%D0%B0%D0%BB%D0%BE%D0%B2%D0%B0%D1%82%D1%8C!"/>
				<updated>2018-11-18T14:20:04Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* 2013 год */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;На Linux Format Wiki собираются материалы, ранее опубликованные в журнале [http://www.linuxformat.ru Linux Format], а ныне выложенные редакцией в свободный доступ. При этом природа Wiki позволяет вам не только читать их, но и исправлять замеченные недочеты, вносить уточнения, актуализировать материалы в связи с выходом новых версий программ. Мы надеемся, что Linux Format Wiki станет для вас ценным источником информации по всем вопросам, касающимся Linux и свободного ПО в целом.&lt;br /&gt;
&lt;br /&gt;
== Выпуски, доступные в настоящее время ==&lt;br /&gt;
Ниже перечислены номера журналов, материалы которых полностью или частично доступны в формате Wiki:&lt;br /&gt;
=== 2013 год ===&lt;br /&gt;
* [[LXF171|LXF171 Июнь 2013]]&lt;br /&gt;
* [[LXF170|LXF170 Май 2013]]&lt;br /&gt;
* [[LXF169|LXF169 Апрель 2013]]&lt;br /&gt;
* [[LXF168|LXF168 Март 2013]]&lt;br /&gt;
* [[LXF167|LXF167 Февраль 2013]]&lt;br /&gt;
* [[Lxf165-166|LXF165-166 Январь 2013]]&lt;br /&gt;
&lt;br /&gt;
=== 2012 год ===&lt;br /&gt;
* [[LXF164|LXF164 Декабрь 2012]]&lt;br /&gt;
* [[LXF163|LXF163 Ноябрь 2012]]&lt;br /&gt;
* [[Lxf162|LXF162 Октябрь 2012]]&lt;br /&gt;
* [[LXF161|LXF161 Сентябрь 2012]]&lt;br /&gt;
* [[Lxf160|LXF160 Август 2012]]&lt;br /&gt;
* [[LXF159|LXF159 Июль 2012]]&lt;br /&gt;
* [[LXF158|LXF158 Июнь 2012]]&lt;br /&gt;
* [[LXF157|LXF157 Май 2012]]&lt;br /&gt;
* [[LXF156|LXF156 Апрель 2012]]&lt;br /&gt;
* [[LXF155|LXF155 Март 2012]]&lt;br /&gt;
* [[LXF154|LXF154 Февраль 2012]]&lt;br /&gt;
* [[LXF152-153|LXF152-153 Январь 2012]]&lt;br /&gt;
&lt;br /&gt;
=== 2011 год ===&lt;br /&gt;
* [[LXF151|LXF151 Декабрь 2012]]&lt;br /&gt;
* [[LXF150|LXF150 Ноябрь 2011]]&lt;br /&gt;
* [[LXF149|LXF149 Октябрь 2011]]&lt;br /&gt;
* [[LXF148|LXF148 Сентябрь 2011]]&lt;br /&gt;
* [[LXF147|LXF147 Август 2011]]&lt;br /&gt;
* [[LXF146|LXF146 Июль 2011]]&lt;br /&gt;
* [[LXF145|LXF145 Июнь 2011]]&lt;br /&gt;
* [[LXF144|LXF144 Май 2011]]&lt;br /&gt;
* [[LXF143|LXF143 Апрель 2011]]&lt;br /&gt;
* [[LXF142|LXF142 Март 2011]]&lt;br /&gt;
* [[LXF141|LXF141 Февраль 2011]]&lt;br /&gt;
* [[LXF139-140|LXF139-140 Январь 2011]]&lt;br /&gt;
&lt;br /&gt;
=== 2010 год ===&lt;br /&gt;
* [[LXF138|LXF138 Декабрь 2010]]&lt;br /&gt;
* [[LXF137|LXF137 Ноябрь 2010]]&lt;br /&gt;
* [[LXF136|LXF136 Октябрь 2010]]&lt;br /&gt;
* [[LXF135|LXF135 Сентябрь 2010]]&lt;br /&gt;
* [[LXF134|LXF134 Август 2010]]&lt;br /&gt;
* [[LXF133|LXF133 Июль 2010]]&lt;br /&gt;
* [[LXF132|LXF132 Июнь 2010]]&lt;br /&gt;
* [[LXF131|LXF131 Май 2010]]&lt;br /&gt;
* [[LXF130|LXF130 Апрель 2010]]&lt;br /&gt;
* [[LXF129|LXF129 Март 2010]]&lt;br /&gt;
* [[LXF128|LXF128 Февраль 2010]]&lt;br /&gt;
* [[LXF126-127|LXF126-127 Январь 2010]]&lt;br /&gt;
&lt;br /&gt;
=== 2009 год ===&lt;br /&gt;
* [[LXF125|LXF125 Декабрь 2009]]&lt;br /&gt;
* [[LXF124|LXF124 Ноябрь 2009]]&lt;br /&gt;
* [[LXF123|LXF123 Октябрь 2009]]&lt;br /&gt;
* [[LXF122|LXF122 Сентябрь 2009]]&lt;br /&gt;
* [[LXF121|LXF121 Август 2009]]&lt;br /&gt;
* [[LXF120|LXF120 Июль 2009]]&lt;br /&gt;
* [[LXF119|LXF119 Июнь 2009]]&lt;br /&gt;
* [[LXF118|LXF118 Май 2009]]&lt;br /&gt;
* [[LXF117|LXF117 Апрель 2009]]&lt;br /&gt;
* [[LXF116|LXF116 Март 2009]]&lt;br /&gt;
* [[LXF115|LXF115 Февраль 2009]]&lt;br /&gt;
* [[LXF113-114|LXF113-114 Январь 2009]]&lt;br /&gt;
&lt;br /&gt;
=== 2008 год ===&lt;br /&gt;
* [[LXF112|LXF112 Декабрь 2008]]&lt;br /&gt;
* [[LXF111|LXF111 Ноябрь 2008]]&lt;br /&gt;
* [[LXF110|LXF110 Октябрь 2008]]&lt;br /&gt;
* [[LXF109|LXF109 Сентябрь 2008]]&lt;br /&gt;
* [[LXF108|LXF108 Август 2008]]&lt;br /&gt;
* [[LXF107|LXF107 Июль 2008]]&lt;br /&gt;
* [[LXF106|LXF106 Июнь 2008]]&lt;br /&gt;
* [[LXF105|LXF105 Май 2008]]&lt;br /&gt;
* [[LXF104|LXF104 Апрель 2008]]&lt;br /&gt;
* [[LXF103|LXF103 Март 2008]]&lt;br /&gt;
* [[LXF102|LXF102 Февраль 2008]]&lt;br /&gt;
* [[LXF100-101|LXF100-101 Январь 2008]]&lt;br /&gt;
&lt;br /&gt;
=== 2007 год ===&lt;br /&gt;
* [[LXF99|LXF99 Декабрь 2007]]&lt;br /&gt;
* [[LXF98|LXF98 Ноябрь 2007]]&lt;br /&gt;
* [[LXF97|LXF97 Октябрь 2007]]&lt;br /&gt;
* [[LXF96|LXF96 Сентябрь 2007]]&lt;br /&gt;
* [[LXF95|LXF95 Август 2007]]&lt;br /&gt;
* [[LXF94|LXF94 Июль 2007]]&lt;br /&gt;
* [[LXF93|LXF93 Июнь 2007]]&lt;br /&gt;
* [[LXF92|LXF92 Май 2007]]&lt;br /&gt;
* [[LXF91|LXF91 Апрель 2007]]&lt;br /&gt;
* [[LXF90|LXF90 Март 2007]]&lt;br /&gt;
* [[LXF89|LXF89 Февраль 2007]]&lt;br /&gt;
* [[LXF87-88|LXF87-88 Январь 2007]]&lt;br /&gt;
&lt;br /&gt;
=== 2006 год ===&lt;br /&gt;
* [[LXF86|LXF86 Декабрь 2006]]&lt;br /&gt;
* [[LXF85|LXF85 Ноябрь 2006]]&lt;br /&gt;
* [[LXF84|LXF84 Октябрь 2006]]&lt;br /&gt;
* [[LXF83|LXF83 Сентябрь 2006]]&lt;br /&gt;
* [[LXF82|LXF82 Август 2006]]&lt;br /&gt;
* [[LXF81|LXF81 Июль 2006]]&lt;br /&gt;
* [[LXF80|LXF80 Июнь 2006]]&lt;br /&gt;
* [[LXF79|LXF79 Май 2006]]&lt;br /&gt;
* [[LXF78|LXF78 Апрель 2006]]&lt;br /&gt;
* [[LXF77|LXF77 Март 2006]]&lt;br /&gt;
* [[LXF76|LXF76 Февраль 2006]]&lt;br /&gt;
* [[LXF74-75|LXF74-75 Январь 2006]]&lt;br /&gt;
&lt;br /&gt;
=== 2005 год ===&lt;br /&gt;
* [[LXF73|LXF73 Декабрь 2005]]&lt;br /&gt;
* [[LXF72|LXF72 Ноябрь 2005]]&lt;br /&gt;
* [[LXF71|LXF71 Октябрь 2005]]&lt;br /&gt;
* [[LXF70|LXF70 Сентябрь 2005]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Читая материалы Linux Format в Wiki, пожалуйста, помните, что исходный авторский текст мог быть изменен другими участниками, например, с целью разъяснить какое-либо положение или исправить неточность, возникшую вследствие развития описываемых в статье технологий. Условия использования материалов приведены на странице [[Linuxformat:Авторское право]].&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:_%D0%94%D0%B8%D1%81%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D0%B8%D0%B2%D1%8B_Linux</id>
		<title>LXF171: Дистрибутивы Linux</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:_%D0%94%D0%B8%D1%81%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D0%B8%D0%B2%D1%8B_Linux"/>
				<updated>2018-11-18T14:17:28Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* Linux Mint 9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Главное в мире Linux]]&lt;br /&gt;
Вы­бор и гиб­кость — фир­мен­ные при­зна­ки эко­си­сте­мы Linux. В Windows и OS X, ес­ли вам не по ду­ше ка­кие-ли­бо ас­пек­ты опе­ра­ци­он­ной сис­те­мы, с этим ма­ло что по­де­ла­ешь. В ми­ре Linux вы, мож­но ска­зать, из­ба­ло­ва­ны вы­бо­ром бла­го­да­ря на­ли­чию мно­же­ст­ва ди­ст­ри­бу­ти­вов.&lt;br /&gt;
&lt;br /&gt;
Серд­це­ви­на ка­ж­до­го ди­ст­ри­бу­ти­ва — яд­ро Linux, но на его ос­но­ве ди­ст­ри­бу­ти­вы до­ст­раи­ва­ют свои ком­по­нен­ты, ко­то­рые под­би­ра­ют­ся в за­ви­си­мо­сти от це­ле­вой ау­ди­то­рии дан­но­го ди­ст­ри­бу­ти­ва. Раз­ные ди­ст­ри­бу­ти­вы пред­ла­га­ют раз­ные оп­ции ин­ди­ви­ду­аль­ной на­строй­ки, так что вы мо­же­те по­ра­бо­тать с ди­ст­ри­бу­ти­вом и на­стро­ить его по сво­ему вку­су и ус­мот­ре­нию, по­ка не добь­е­тесь же­лае­мо­го ре­зуль­та­та. И не­за­ви­си­мо от то­го, ка­кой тип поль­зо­ва­те­ля вы со­бой пред­став­ляе­те, для вас обя­за­тель­но най­дет­ся подходящий ди­ст­ри­бу­тив.&lt;br /&gt;
&lt;br /&gt;
В этой ста­тье мы в пер­вую оче­редь уде­ля­ем вни­ма­ние ра­бо­че­му сто­лу. Не­ко­то­рые ди­ст­ри­бу­ти­вы ра­бо­че­го сто­ла ста­вят сво­ей це­лью мак­си­маль­ную про­сто­ту, дру­гие пре­дос­тав­ля­ют вам боль­ше кон­тро­ля. У них раз­ные про­це­ду­ры ус­та­нов­ки, раз­ные тре­бо­ва­ния к ра­бо­че­му сто­лу, раз­ные схе­мы управ­ле­ния па­ке­та­ми и раз­ные ин­ст­ру­мен­ты ад­ми­ни­ст­ри­ро­ва­ния. Мы рас­смот­рим при­выч­ные ди­ст­ри­бу­ти­вы, при­ме­няе­мые для обыч­ных за­дач, а так­же раз­ра­бо­тан­ные спе­ци­аль­но для при­вле­че­ния поль­зо­ва­те­лей, при­вык­ших к дру­гим опе­ра­ци­он­ным сис­те­мам, та­ким, как Windows и Mac OS X. Мы так­же рас­смот­рим ди­ст­ри­бу­ти­вы, спо­соб­ные пре­вра­тить ста­рую рухлядь в со­вре­мен­ную ма­ши­ну, и те, что пре­дос­тав­ля­ют опыт­ным поль­зо­ва­те­лям пол­ный кон­троль над их ра­бо­чей сре­дой.&lt;br /&gt;
&lt;br /&gt;
На сле­дую­щих стра­ни­цах мы рас­смот­рим бо­лее че­ты­рех дю­жин луч­ших ди­ст­ри­бу­ти­вов, про­тес­ти­ру­ем их уни­каль­ные функ­ции и срав­ним их силь­ные и сла­бые сто­ро­ны, что­бы вы смог­ли с на­шей по­мо­щью вы­брать ди­ст­ри­бу­тив, луч­ший имен­но для вас!&lt;br /&gt;
&lt;br /&gt;
Ин­декс&lt;br /&gt;
&lt;br /&gt;
aLinux 33&lt;br /&gt;
&lt;br /&gt;
Arch 35&lt;br /&gt;
&lt;br /&gt;
Bodhi Linux 33&lt;br /&gt;
&lt;br /&gt;
CentOS 35&lt;br /&gt;
&lt;br /&gt;
Chakra 29&lt;br /&gt;
&lt;br /&gt;
Crunchbang 33&lt;br /&gt;
&lt;br /&gt;
Crux 35&lt;br /&gt;
&lt;br /&gt;
Debian 35&lt;br /&gt;
&lt;br /&gt;
DSL 33&lt;br /&gt;
&lt;br /&gt;
Fedora 27&lt;br /&gt;
&lt;br /&gt;
Foresight Linux 35&lt;br /&gt;
&lt;br /&gt;
Frugalware 35&lt;br /&gt;
&lt;br /&gt;
Fuduntu 32&lt;br /&gt;
&lt;br /&gt;
Gentoo 35&lt;br /&gt;
&lt;br /&gt;
Kanotix 30&lt;br /&gt;
&lt;br /&gt;
Knoppix 29&lt;br /&gt;
&lt;br /&gt;
Kororaa 30&lt;br /&gt;
&lt;br /&gt;
Linux Mint 28&lt;br /&gt;
&lt;br /&gt;
LinuxLite 34&lt;br /&gt;
&lt;br /&gt;
LXF Games 35&lt;br /&gt;
&lt;br /&gt;
Mageia 27&lt;br /&gt;
&lt;br /&gt;
Manjaro 30&lt;br /&gt;
&lt;br /&gt;
Netrunner 31&lt;br /&gt;
&lt;br /&gt;
OantiX 33&lt;br /&gt;
&lt;br /&gt;
Open Xange 30&lt;br /&gt;
&lt;br /&gt;
OpenSUSE 27&lt;br /&gt;
&lt;br /&gt;
OS4 34&lt;br /&gt;
&lt;br /&gt;
Parsix 34&lt;br /&gt;
&lt;br /&gt;
PCLinuxOS 28&lt;br /&gt;
&lt;br /&gt;
Pear Linux 34&lt;br /&gt;
&lt;br /&gt;
Porteus 32&lt;br /&gt;
&lt;br /&gt;
Puppy 32&lt;br /&gt;
&lt;br /&gt;
PureOS 27&lt;br /&gt;
&lt;br /&gt;
Qubes OS 30&lt;br /&gt;
&lt;br /&gt;
Rosa 29&lt;br /&gt;
&lt;br /&gt;
Sabayon Linux 28&lt;br /&gt;
&lt;br /&gt;
Salix OS 29&lt;br /&gt;
&lt;br /&gt;
Slackel 27&lt;br /&gt;
&lt;br /&gt;
Slackware 35&lt;br /&gt;
&lt;br /&gt;
Slax 32&lt;br /&gt;
&lt;br /&gt;
Slitaz 31&lt;br /&gt;
&lt;br /&gt;
SolusOS 34&lt;br /&gt;
&lt;br /&gt;
Sparky Linux 32&lt;br /&gt;
&lt;br /&gt;
Tiny Core Linux 33&lt;br /&gt;
&lt;br /&gt;
Ubuntu 27&lt;br /&gt;
&lt;br /&gt;
Ultimate Edition 34&lt;br /&gt;
&lt;br /&gt;
WattOS 30&lt;br /&gt;
&lt;br /&gt;
Zenwalk 31&lt;br /&gt;
&lt;br /&gt;
ZevenOS 31&lt;br /&gt;
&lt;br /&gt;
Zorin 34&lt;br /&gt;
&lt;br /&gt;
===Ди­ст­ри­бу­ти­вы, раз­ра­бо­тан­ные на за­ме­ну ва­шей ны­неш­ней ОС.===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu 9====&lt;br /&gt;
&lt;br /&gt;
Это не пер­вый ди­ст­ри­бу­тив для но­вич­ков в Linux, но он, бес­спор­но, са­мый из­вест­ный. В нем есть не­сколь­ко ин­но­ва­ци­он­ных функ­ций, в том чис­ле ра­бо­чий стол Unity, ко­то­рый всем так нра­вит­ся не­на­ви­деть. За­тем име­ет­ся Ubuntu One, мно­го­плат­фор­мен­ный сер­вис для об­лач­но­го хра­не­ния и син­хро­ни­за­ции фай­лов по мно­же­ст­ву уст­ройств, ко­то­рый пред­ла­га­ет 5 ГБ сво­бод­но­го мес­та для хра­не­ния дан­ных. А для до­бав­ле­ния но­вых про­грамм пре­ду­смот­рен Ubuntu Software Center.&lt;br /&gt;
&lt;br /&gt;
У это­го ди­ст­ри­бу­ти­ва один из са­мых про­стых ме­ха­низ­мов ус­та­нов­ки. По умол­ча­нию он не со­дер­жит про­прие­тар­ных ко­де­ков, но их мо­ж­но вклю­чить во вре­мя ус­та­нов­ки, про­сто щелк­нув по флаж­ку. Ди­ст­ри­бу­тив вы­хо­дит дважды в год, с по­сто­ян­ны­ми ре­ли­за­ми дол­го­сроч­ной под­держ­ки (Long Term Support, LTS) на пять лет.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Unity улучшается, и Ubuntu про­до­лжит борь­бу с про­прие­тар­ны­ми на­столь­ны­ми ОС.&lt;br /&gt;
&lt;br /&gt;
====Slackel 7====&lt;br /&gt;
&lt;br /&gt;
Этот ди­ст­ри­бу­тив бе­рет са­мые све­жие про­грам­мы из вет­ки Slackware Current и пред­ла­га­ет их в ви­де дру­же­люб­но­го на­столь­но­го па­ке­та, взяв ряд ин­ст­ру­мен­тов из бо­га­то­го на них ди­ст­ри­бу­ти­ва Salix OS. Ос­но­ван­ные на KDE о­бра­зы Slackel име­ют­ся на но­си­те­лях толь­ко для ус­та­нов­ки и для ус­та­нов­ки в ре­жи­ме live. Не­ко­то­рые ин­ст­ру­мен­тыот Salix OS — про­грам­ма ус­та­нов­ки ко­де­ков, ме­нед­жер па­ке­тов Gslapt, а так­же про­грам­ма ус­та­нов­ки live CD.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Во­зоб­нов­ляе­мый ре­лиз, ко­то­рый пре­дос­тав­ля­ет все са­мое со­вре­мен­ное из Slackware, ис­поль­зуя ин­ст­ру­мен­ты из Salix OS.&lt;br /&gt;
&lt;br /&gt;
====Fedora 6 ====&lt;br /&gt;
&lt;br /&gt;
По­след­ний ре­лиз это­го ди­ст­ри­бу­ти­ва, тра­ди­ци­он­но счи­таю­ще­го­ся аль­тер­на­ти­вой Ubuntu и раз­ра­ба­ты­вае­мо­го со­об­ще­ст­вом при под­держ­ке Red Hat, от­дал пред­поч­те­ние сер­вер­ным функ­ци­ям про­тив на­столь­ных. И по­это­му он ско­рее иг­ро­вая пло­щад­ка для опыт­ных поль­зо­ва­те­лей. Да и во­об­ще, это тес­то­вый по­ли­гон для бу­ду­щих пред­ло­же­ний Red Hat.&lt;br /&gt;
&lt;br /&gt;
Кро­ме то­го, ди­ст­ри­бу­тив стал слож­нее в ис­поль­зо­ва­нии из-за вве­де­ния ра­бо­че­го сто­ла Gnome 3 (по­сте­пен­но улуч­шаю­ще­го­ся). Но­вич­ки ото­ро­пе­ют при ви­де го­ло­го эк­ра­на, тре­бую­ще­го осо­бых на­вы­ков, что­бы ра­зо­брать­ся в на­ви­га­ции. От­сут­ст­вие ра­бо­че­го ме­нед­же­ра па­ке­тов и муль­ти­ме­диа-ко­де­ков, а так­же антиин­туи­тив­ный ин­стал­ля­тор то­же не ра­ду­ют.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Весь­ма пер­спек­тив­ный ди­ст­ри­бу­тив для опыт­ных поль­зо­ва­те­лей, ми­но­вав­ших кри­зис сред­не­го воз­рас­та.&lt;br /&gt;
&lt;br /&gt;
====Mageia 8 ====&lt;br /&gt;
&lt;br /&gt;
Mandrake Linux был пер­вым ди­ст­ри­бу­ти­вом Linux для обычных поль­зо­вателей. Он про­шел че­рез ряд пе­ре­во­пло­ще­ний, и его по­след­няя ава­та­ра за­ста­ви­ла чле­нов его со­об­ще­ст­ва со ста­жем уй­ти в от­ветв­ле­ние. Те­перь ди­ст­ри­бу­тив на ба­зе RPM име­ну­ет­ся Mageia и под­дер­жи­ва­ет­ся со­лид­ной ин­фра­струк­ту­рой со­об­ще­ст­ва. Он пред­ла­га­ет ра­бо­чие сто­лы KDE и Gnome, и в трех ре­по­зи­то­ри­ях ди­ст­ри­бу­ти­ва най­дутся все нуж­ные вам про­грам­мы. Его про­грам­ма ус­та­нов­ки про­ста в на­ви­га­ции, и не­сколь­ко эк­ра­нов име­ют кноп­ку Advanced, с оп­циямий для опыт­ных поль­зо­ва­те­лей. Са­мая вы­даю­щая­ся функ­ция это­го ди­ст­ри­бу­ти­ва — Mageia Control Center, здесь мо­жно на­стро­ить поч­ти все ас­пек­ты сис­те­мы.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: От­ветв­ле­ние на ба­зе со­об­ще­ст­ва на со­лид­ном фун­да­мен­те, и дос­той­ный ди­ст­ри­бу­тив для повседневных задач.&lt;br /&gt;
&lt;br /&gt;
====OpenSUSE 7 ==== &lt;br /&gt;
&lt;br /&gt;
Еще один ве­те­ран и один из ве­ду­щих поль­зо­ва­те­лей (и уча­ст­ни­ков раз­ра­бот­ки) ра­бо­че­го сто­ла KDE — хо­тя офи­ци­аль­но они не объ­яв­ля­ли о сво­их пред­поч­те­ни­ях. На са­мом де­ле, этот ди­ст­ри­бу­тив дос­той­но ве­дет се­бя на обо­их ра­бо­чих сто­лах, и ви­зу­аль­но весь­ма при­вле­ка­те­лен.&lt;br /&gt;
&lt;br /&gt;
Его ин­ст­ру­мент управ­ле­ния YaST (Yet another Setup Tool), ра­бо­таю­щий по прин­ци­пу все-в-од­ном, уме­ет ус­та­нав­ли­вать про­грам­мы, а так­же на­страи­вать и ад­ми­ни­ст­ри­ро­вать сис­те­му. Хо­тя иметь все ин­ст­ру­мен­ты в од­ном мес­те до­воль­но удоб­но, все же это до­воль­но слож­но и слег­ка пу­га­ет но­вых поль­зо­ва­те­лей Linux. Да и ус­та­нов­щик это­го ди­ст­ри­бу­ти­ва не так прост, как в Ubuntu. А так­же, в на­ру­ше­ние всех тра­ди­ций, ди­ст­ри­бу­тив вы­пус­ка­ет но­вый ре­лиз ка­ж­дые во­семь ме­ся­цев.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Хо­тя этот ди­ст­ри­бу­тив и раз­ра­бо­тан для поль­зо­ва­те­лей насто­льных ПК, он не столь дру­же­лю­бен, как Ubuntu или Mint, но ста­нет от­лич­ной ОС для пред­при­ятия.&lt;br /&gt;
&lt;br /&gt;
====PureOS 6 ====&lt;br /&gt;
&lt;br /&gt;
Ди­ст­ри­бу­тив име­ет­ся в двух ви­дах; ос­но­ван или на Gnome, или на лег­ко­вес­ном ра­бо­чем сто­ле Openbox. PureOS ос­но­ван на тес­то­вой вет­ке Debian и под­дер­жи­ва­ет мно­го­языч­ные ло­ка­ли­за­ции. PureOS дос­ту­пен толь­ко в ви­де об­ра­зов для соз­да­ния Live USB-дис­ков. Цель его — быть функ­цио­наль­ным ди­ст­ри­бу­ти­вом, ко­то­рый затем мож­но пер­со­на­ли­зи­ро­вать, до­ба­вив мо­ду­ли с по­мо­щью вклю­чен­ных в не­го скрип­тов. Так­же со­дер­жит скрипт smxi для тонкой на­строй­ки сис­те­мы и ус­та­нов­ки про­прие­тар­ных драй­ве­ров.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Глад­кий, го­то­вый к работе ди­ст­ри­бу­тив для умель­цев.&lt;br /&gt;
&lt;br /&gt;
====PCLinuxOS 7 ====&lt;br /&gt;
&lt;br /&gt;
Этот ди­ст­ри­бу­тив на­чи­нал как ре­по­зи­то­рий для улуч­ше­ния ос­нов­но­го ре­ли­за Mandriva, а позд­нее стал от­дель­ным ди­ст­ри­бу­ти­вом. PCLinuxOS офи­ци­аль­но яв­ля­ет­ся ди­ст­ри­бу­ти­вом KDE, од­на­ко име­ет от­ветв­ле­ния от со­об­ще­ст­ва на ос­но­ве ра­бо­чих сто­лов LXDE и Xfce.&lt;br /&gt;
&lt;br /&gt;
Ди­ст­ри­бу­тив уме­ет вос­про­из­во­дить все ви­ды муль­ти­ме­диа. Для ус­та­нов­ки RPM-па­ке­тов он при­ме­ня­ет apt-rpm и Synaptic Package Manager. Его ин­ст­ру­мент на­строй­ки и про­грам­ма ус­та­нов­ки яв­но от­вер­га­ет род­ст­во с Mandriva. Ди­ст­ри­бу­тив со­дер­жит ил­лю­ст­ри­ро­ван­ное ру­ко­вод­ство по ус­та­нов­ке, а так­же вы­пус­кает для сво­их поль­зо­ва­те­лей еже­ме­сяч­ный жур­нал.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Счи­тай­те его чем-то наподобие Mageia, но с уже заготовленными муль­ти­ме­диа-ко­де­ка­ми.&lt;br /&gt;
&lt;br /&gt;
====Sabayon Linux 9 ====&lt;br /&gt;
&lt;br /&gt;
Цель про­ек­та Sabayon — пре­дос­та­вить по­сто­ян­ным поль­зо­ва­те­лям насто­льных компьютеров воз­мож­ность по­зна­ко­мить­ся с ди­ст­ри­бу­ти­вом Gentoo. Это бо­га­тый функ­ция­ми ди­ст­ри­бу­тив, соз­дан­ный на ста­биль­ной и зре­лой ос­но­ве.&lt;br /&gt;
&lt;br /&gt;
В Sabayon есть все не­об­хо­ди­мое для поль­зо­ва­те­ля насто­льной системы, в том чис­ле все ви­ды ко­де­ков и модулей расширения (плагинов). По­ми­мо обыч­но­го мно­же­ст­ва при­ло­же­ний, в нем так­же есть ме­диа-плей­ер XBMC и Wine для ра­бо­ты с при­ло­же­ния­ми Windows.&lt;br /&gt;
&lt;br /&gt;
Для управ­ле­ния па­ке­та­ми име­ет­ся на­страи­вае­мый брау­зер при­ло­же­ний Rigo. Это гра­фи­че­­ская обо­лоч­ка для Entropy, сис­те­мы управ­ле­ния па­ке­та­ми Sabayon, и она ими­ти­ру­ет внеш­ний вид по­ис­ко­вой ма­ши­ны Google. При­ло­же­ние про­сто в ра­бо­те и очень раз­го­вор­чи­во. Вме­сто ото­бра­же­ния за­га­доч­ных со­об­ще­ний оно объ­яс­ня­ет­ся с поль­зо­ва­те­ля­ми на человеческом (анг­лий­ском) язы­ке.&lt;br /&gt;
&lt;br /&gt;
У ди­ст­ри­бу­ти­ва есть раз­но­вид­но­сти для всех по­пу­ляр­ных ра­бо­чих сто­лов, в том чис­ле для Gnome, KDE, Xfce и Mate. И этот ди­ст­ри­бу­тив поставляет не исходный ре­ли­з Gnome, а про­из­водит не­ко­то­рые на­строй­ки — на­при­мер, что­бы ото­бра­жать умень­шен­ные кноп­ки — для под­держ­ки еди­но­об­ра­зия раз­ных ре­ли­зов. Вы най­де­те в его офи­ци­аль­ных ре­по­зи­то­ри­ях и дру­гие ра­бо­чие сто­лы, на­при­мер, Cinnamon и Razor-Qt. По­ми­мо это­го, есть не­сколь­ко спец­раз­но­вид­но­стей для осо­бых це­лей: на­при­мер, ми­ни­ма­ли­ст­ский CoreCDX и HardenedServer на базе яд­ра Gentoo Hardened kernel.&lt;br /&gt;
&lt;br /&gt;
Хо­тя Sabayon — ди­ст­ри­бу­тив с возобновляемым ре­ли­зом [rolling release], раз­ра­бот­чи­ки на­строи­ли его так, что­бы ра­бо­та с ним бы­ла удоб­на для на­чи­наю­щих поль­зо­ва­те­лей.&lt;br /&gt;
&lt;br /&gt;
Ус­та­нов­ка про­из­во­дит­ся пе­ре­ра­бо­тан­ной про­грам­мой ус­та­нов­ки Anaconda, соз­дан­ной ди­ст­ри­бу­ти­вом Fedora. Так­же мож­но за­гру­зить 64-бит­ные об­ра­зы бо­лее но­вых вер­сий — в сис­те­мы с вклю­чен­ным SecureBoot. На сай­те ди­ст­ри­бу­ти­ва вы най­де­те мас­су до­ку­мен­та­ции, удоб­ной для на­чи­наю­ще­го поль­зо­ва­те­ля и вклю­чаю­щей по­ша­го­вое ру­ко­во­дство по ус­та­нов­ке и под­роб­ный FAQ.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Ди­ст­ри­бу­тив пред­ла­га­ет всю мощь и глад­кость Gentoo в смяг­чен­ном и дру­же­люб­ном к поль­зо­ва­те­лю на­столь­ном па­ке­те.&lt;br /&gt;
&lt;br /&gt;
====Linux Mint 9 ====&lt;br /&gt;
&lt;br /&gt;
С мо­мен­та сво­его де­бю­та в 2006 Linux Mint мед­лен­но, но вер­но пе­ре­ме­щал­ся к вер­ши­нам всех рей­тин­гов лю­би­мых ди­ст­ри­бу­ти­вов. Од­на из ос­нов­ных при­чин ус­пе­ха ди­ст­ри­бу­ти­ва в том, что, хо­тя он ос­но­ван на Ubuntu, его ра­бо­чий стол по умол­ча­нию гораздо бо­лее тра­ди­цио­нен, чем спорный ин­тер­фейс Unity в Ubuntu. Linux Mint пред­ла­га­ет поль­зо­ва­те­лям вы­бор из двух сред ра­бо­че­го сто­ла на ос­но­ве Gnome, ко­то­рые он на­звал Mate и Cinnamon.&lt;br /&gt;
&lt;br /&gt;
Mate соз­дан для то­го, что­бы быть пре­дан­ным про­дол­жа­те­лем ста­ро­го ра­бо­че­го сто­ла Gnome 2. Cinnamon — по­но­вее, с оп­рят­ным ме­ню, даю­щим дос­туп ко всем на­строй­кам сис­те­мы и при­ло­же­ни­ям из од­но­го центрального пункта.&lt;br /&gt;
&lt;br /&gt;
Ди­ст­ри­бу­тив так­же идет с пред­ва­ри­тель­но за­гру­жен­ным пол­ным на­бо­ром ау­дио- и ви­део­ко­де­ков и об­ла­да­ет впе­чат­ляю­щим Software Manager.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Про­стой в ус­та­нов­ке и от­по­ли­ро­ван­ный ра­бо­чий стол, ко­то­рый с хо­ду на­чи­на­ет ра­бо­тать. Идеален для вас, если пресловутый Unity вам про­тив шер­сти.&lt;br /&gt;
&lt;br /&gt;
====Chakra 8====&lt;br /&gt;
&lt;br /&gt;
Это, бес­спор­но, са­мый при­вле­ка­тель­ный внеш­не ди­ст­ри­бу­тив ра­бо­че­го сто­ла KDE, и у боль­шин­ст­ва поль­зо­ва­те­лей он за­ра­бо­та­ет пря­мо сра­зу. Из­на­чаль­но ди­ст­ри­бу­тив ос­но­вы­вал­ся на Arch Linux. Это на­по­ло­ви­ну сколь­зя­щий ре­лиз, ко­то­рый, по его соб­ст­вен­но­му при­зна­нию, пред­на­зна­чен для поль­зо­ва­те­лей, ко­то­рые не бо­ят­ся командной строки.&lt;br /&gt;
&lt;br /&gt;
Его ме­нед­жер па­ке­тов все еще в ста­дии раз­ра­бот­ки, но у не­го есть дос­той­ная за­ме­на в ви­де ме­нед­же­ра «пуч­ков» [bundles manager]. Пуч­ки — это ав­то­ном­ные ком­плек­ты по­пу­ляр­ных при­ло­же­ний, ус­та­нав­ли­вае­мые од­ним щелч­ком. Ус­та­нов­ка дела­ет­ся про­грам­мой, ко­то­рая ис­поль­зу­ет KDE Partition Manager для разбие­ния дис­ка на раз­де­лы. Так­же здесь есть впе­чат­ляю­щее при­ло­же­ние пер­со­на­ли­за­ции пер­вой за­груз­ки [first-boot personaliser].&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Очень сим­па­тич­ный ра­бо­чий стол KDE, и он по­мо­га­ет вам ин­ди­ви­ду­ально на­стро­ить свою ра­бо­чую сре­ду.&lt;br /&gt;
&lt;br /&gt;
====Salix OS====&lt;br /&gt;
&lt;br /&gt;
Раз­ра­бот­чи­ки Salix OS рас­смат­ри­ва­ли свой ди­ст­ри­бу­тив как не­кий бон­сай — ма­лень­кий, лег­кий и яв­ляю­щий­ся про­дук­том бес­ко­неч­ной за­бо­ты; и с этим нель­зя не со­гла­сить­ся. Оформ­ле­ние ди­ст­ри­бу­ти­ва лас­ка­ет глаз бла­го­да­ря под­бор­ке обо­ев, знач­ков и тем.&lt;br /&gt;
&lt;br /&gt;
Ос­но­ван­ный на Slackware ди­ст­ри­бу­тив име­ет­ся в шес­ти раз­ных вер­си­ях — с ра­бо­чи­ми сто­ла­ми KDE, Xfce, Mate, LXDE, Fluxbox и Ratpoison. Salix быстр и прост в ис­поль­зо­ва­нии. Он со­дер­жит 78-стра­нич­ное ру­ко­во­дство, и сайт ди­ст­ри­бу­ти­ва изо­би­лу­ет до­пол­ни­тель­ной до­ку­мен­та­ци­ей по от­дель­ным за­да­чам.&lt;br /&gt;
&lt;br /&gt;
Хо­тя ко­де­ков Salix не со­дер­жит, в нем есть про­грам­ма их ус­та­нов­ки за один щел­чок. И вообще, в этом ди­ст­ри­бу­ти­ве мно­же­ст­во поль­зо­ва­тель­ских ин­ст­ру­мен­тов внут­рен­ней раз­ра­бот­ки. Сре­ди наи­бо­лее ин­те­рес­ных, по­ми­мо ус­та­нов­щи­ка ко­де­ков: гра­фи­че­­ская ути­ли­та для кло­ни­ро­ва­ния live-сис­те­мы, мас­тер соз­да­ния по­сто­ян­но­го хра­ни­ли­ща и гра­фи­че­­ский ин­ст­ру­мент для вы­пол­не­ния про­стых ад­ми­ни­ст­ра­тив­ных за­дач, на­при­мер, до­бав­ле­ния но­вых поль­зо­ва­те­лей.&lt;br /&gt;
&lt;br /&gt;
Есть и гра­фи­че­­ская про­грам­ма ус­та­нов­ки Salix, и она дос­тав­ля­ет при­ят­ное раз­но­об­ра­зие в ря­ду при­выч­ных ин­стал­ля­то­ров. Для управ­ле­ния па­ке­та­ми ди­ст­ри­бу­тив ис­поль­зу­ет гра­фи­че­­ский ме­нед­жер па­ке­тов Gslapt, яв­ляю­щий­ся ин­тер­фей­сом для slap-get. По­сколь­ку ди­ст­ри­бу­тив пол­но­стью со­вмес­тим со Slackware, в нем так­же есть гра­фи­че­­ский ин­ст­ру­мент для ком­пи­ля­ции па­ке­тов из ре­по­зи­то­рия SlackBuilds.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Для поль­зо­ва­те­лей, за­ин­те­ре­со­ван­ных в ста­биль­но­сти Slackware и удоб­ст­ве ме­нед­же­ра па­ке­тов.&lt;br /&gt;
&lt;br /&gt;
====Qubes OS====&lt;br /&gt;
&lt;br /&gt;
Прак­ти­ку­ет под­ход к обес­пе­че­нию безо­пас­но­сти, из­вест­ный как безо­пас­ность че­рез изо­ля­цию, и по этой при­чи­не безо­па­снее, чем сред­ний ди­ст­ри­бу­тив ра­бо­че­го сто­ла. Каж­дое при­ло­же­ние в Qubes ра­бо­та­ет внут­ри соб­ст­вен­но­го до­ме­на безо­пас­но­сти. Но­вая ус­та­нов­ка ав­тома­ти­че­­ски соз­да­ет та­кие до­ме­ны, как Work [Ра­бо­та], Personal [Лич­ное] и Untrusted [Не­про­ве­рен­ное], и де­лит при­ло­же­ния ме­ж­ду ни­ми: вы най­де­те LibreOffice в до­ме­не Work, Firefox в до­ме­не Untrusted, и т. д. По боль­шей час­ти Qubes OS ра­бо­та­ет как лю­бой дру­гой ди­ст­ри­бу­тив ра­бо­че­го сто­ла, но вме­сто ка­те­го­рий при­ло­же­ний его ме­ню KDE вы­да­ет спи­сок раз­ных до­ме­нов.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Уни­ка­лен, безо­па­сен и лег­ко ос­ваи­ва­ет­ся.&lt;br /&gt;
&lt;br /&gt;
====Manjaro====&lt;br /&gt;
&lt;br /&gt;
Этот ди­ст­ри­бу­тив с во­зоб­нов­ляе­мы­ми ре­ли­за­ми ос­но­ван на Arch и пред­на­зна­чен для поль­зо­ва­те­лей на­столь­ных ПК. В нем есть пла­ги­ны, ко­де­ки и при­ло­же­ния для ра­бо­ты с раз­ны­ми ви­да­ми фай­лов.&lt;br /&gt;
&lt;br /&gt;
Ди­ст­ри­бу­тив так­же под­дер­жи­ва­ет соб­ст­вен­ные ре­по­зи­то­рии, в ко­то­рые вхо­дят и тща­тель­но про­ве­рен­ные ста­биль­ные про­грам­мы, и са­мые све­жие, но не­ста­биль­ные вер­сии. Ус­та­нов­ка про­грамм про­из­во­дит­ся ин­ди­ви­ду­аль­ным ин­ст­ру­мен­том Pamac — это гра­фи­че­­ский ин­тер­фейс для Pacman, ме­нед­же­ра па­ке­тов Arch. С по­мо­щью Pacman так­же мо­жно ус­та­но­вить в Manjaro про­грам­мы из под­дер­жи­вае­мо­го со­об­ще­ст­вом Arch поль­зо­ва­тель­ско­го ре­по­зи­то­рия. Manjaro офи­ци­аль­но под­дер­жи­ва­ет ра­бо­чие сто­лы Xfce, Cinnamon и Openbox и име­ет две тек­сто­вых про­грам­мы ус­та­нов­ки; бо­лее но­вая под­держивает уст­ройства Secure Boot и RAID.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Manjaro для Arch — то же, что Salix для Slackware.&lt;br /&gt;
&lt;br /&gt;
====Open Xange====&lt;br /&gt;
&lt;br /&gt;
Этот ди­ст­ри­бу­тив на ба­зе Fedora ис­поль­зу­ет слег­ка под­прав­лен­ный ра­бо­чий стол KDE, сде­лав его чуть по­нят­нее для тра­ди­ци­он­но­го поль­зо­ва­те­ля Windows. Кро­ме обыч­ных при­ло­же­ний ра­бо­че­го сто­ла, этот ди­ст­ри­бу­тив так­же пре­дос­тав­ля­ет со­лид­ную под­бор­ку пла­ги­нов и ко­де­ков. На ра­бо­чем сто­ле вы най­де­те кноп­ку для ус­та­нов­ки про­прие­тар­но­го кли­ен­та Dropbox.&lt;br /&gt;
&lt;br /&gt;
Для управ­ле­ния дру­ги­ми про­грам­ма­ми с от­кры­тым ко­дом Open Xange при­ме­ня­ет Apper, ин­тер­фейс к PackageKit от KDE. От Fedora он унаследовал про­грам­му ус­та­нов­ки Anaconda. Ди­ст­ри­бу­тив не под­дер­жи­ва­ет 32-бит­ную ар­хи­тек­ту­ру.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Ос­но­ван­ный на Fedora ра­бо­чий стол, ко­то­ро­му не уда­ет­ся пре­взой­ти Kororaa.&lt;br /&gt;
&lt;br /&gt;
===Лег­ко­весы===&lt;br /&gt;
&lt;br /&gt;
''Не­боль­шие па­ке­ты, иде­аль­ные для ста­ро­го обо­ру­до­ва­ния.''&lt;br /&gt;
&lt;br /&gt;
====Zenwalk====&lt;br /&gt;
&lt;br /&gt;
Ми­ни-ди­ст­ри­бу­тив на базе Slackware с массой раз­но­вид­но­стей. В стан­дарт­ном из­да­нии — ра­бо­чий сто­л Xfce, а дру­гие пред­ла­га­ют Gnome и Openbox. Его цель — до­не­сти до ста­ро­го обо­ру­до­ва­ния новые при­ло­же­ния. Со­вмес­тим с дво­ич­ны­ми па­ке­та­ми Slackware, но применя­ет свой ме­нед­жер па­ке­тов Netpkg, введя воз­мож­ность раз­ре­ше­ния за­ви­си­мо­стей в па­ке­ты TGZ. Уди­ви­тель­но, но в нем есть пол­но­функ­цио­наль­ные при­ло­же­ния вро­де Firefox и Libre­Office. Zen­walk лег­ко пре­вра­тить в тон­ко на­страи­вае­мый LAMP или сер­вер рас­пре­де­лен­но­го дос­ту­па к фай­лам.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Бы­ст­р, с ­новы­ми при­ло­же­ния­ми и шар­мом ста­рой шко­лы.&lt;br /&gt;
&lt;br /&gt;
Рейтинг&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
====ZevenOS====&lt;br /&gt;
&lt;br /&gt;
Про­ект ZevenOS вы­пус­тил два ди­ст­ри­бу­ти­ва, и оба пы­та­ют­ся ими­ти­ро­вать внеш­ний вид и спо­соб ра­бо­ты BeOS. Ос­нов­ной ди­ст­ри­бу­тив, име­нуе­мый ZevenOS, ос­но­ван на Xubuntu и ис­поль­зу­ет Xfce. Он идет со все­ми муль­ти­ме­диа-ко­де­ка­ми и пла­ги­на­ми и пред­на­зна­чен для сис­тем, ко­то­рым не хва­та­ет ре­сур­сов для ра­бо­ты с са­мы­ми све­жи­ми ди­ст­ри­бу­ти­ва­ми ра­бо­че­го сто­ла Linux. Да­лее идет ди­ст­ри­бу­тив ZevenOS Neptune, ко­то­рый главным образом ос­но­ван на тес­то­вой вет­ке Debian, но ис­поль­зу­ет бо­лее но­вое яд­ро и со­дер­жит ряд до­пол­ни­тель­ных драй­ве­ров. Он ис­поль­зует ра­бо­чий стол KDE 4, опять же сти­ли­зо­ван­ный под поль­зо­ва­тель­ский ин­тер­фейс BeOS. Ди­ст­ри­бу­тив пред­на­зна­чен для ус­та­нов­ки на та­кие пор­та­тив­ные но­си­тели, как USB-брел­ки. На его сай­те не­ма­ло ви­део по обо­им ди­ст­ри­бу­ти­вам.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Ubuntu для поклонников BeOS.&lt;br /&gt;
&lt;br /&gt;
====Slitaz====&lt;br /&gt;
&lt;br /&gt;
Ис­поль­зу­ет по­месь LXDE с ме­нед­же­ром окон OpenBox, и соз­дан для ра­бо­ты на обо­ру­до­ва­нии все­го лишь с 256 MБ ОЗУ. Здесь мно­го поль­зо­ва­тель­ских ин­ст­ру­мен­тов, ти­па SlitazPanel. Это удоб­ная па­нель все-в-од­ном, по­зво­ляющая ад­ми­ни­ст­ри­ро­вать все ас­пек­ты ра­бо­ты. Ве­сит Slitaz ме­нее 30 МБ и за­ни­ма­ет все­го 80 МБ на же­ст­ком дис­ке. Здесь нет офис­но­го па­ке­та и ко­де­ков, но их мож­но ус­та­но­вить из ре­по­зи­то­ри­ев. Снаб­жен поль­зо­ва­тель­ской до­ку­мен­та­ци­ей, к ко­то­рой сто­ит об­ра­тить­ся до ис­поль­зо­ва­ния сис­те­мы.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: При­дет­ся кое-че­му нау­чить­ся, но это отличный ди­ст­ри­бу­тив-легко­вес для продвинут­ых поль­зо­ва­те­лей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Slax====&lt;br /&gt;
&lt;br /&gt;
По­пу­ляр­ный ди­ст­ри­бу­тив на базе Slackware не­дав­но вос­прял от че­ты­рех­лет­не­го сна. Он пред­ла­га­ет ра­бо­чий стол KDE и прак­ти­ку­ет мо­дуль­ный под­ход: что­бы до­ба­вить про­грам­му, нуж­но взять мо­дуль из Slax Software Center, ко­то­рый их пред­ла­га­ет все­го не­сколь­ко штук, на­при­мер, AbiWord, Gnumeric и Google Chrome. Не­смот­ря на ма­лый раз­мер, он пред­ла­га­ет все ко­де­ки, пла­ги­ны и при­ло­же­ния для по­все­днев­ной работы, но без офис­но­го па­ке­та. Здесь нет про­грам­мы ус­та­нов­ки: он пред­на­зна­чен для ра­бо­ты с пор­та­тив­но­го но­си­те­ля, типа USB или CD. Оп­ре­де­лив уст­рой­ст­во с пе­ре­за­пи­сью, он ав­то­ма­ти­че­­ски со­хра­ня­ет из­ме­не­ния на нем.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Ди­зайн по­хож на Porteus, но ма­ло­ва­то при­ло­же­ний.&lt;br /&gt;
&lt;br /&gt;
====Porteus====&lt;br /&gt;
&lt;br /&gt;
Ди­ст­ри­бу­тив на базе Slackware, ро­дом из Ир­лан­дии; раз­ра­бо­тан для пор­та­тив­ных уст­ройств, типа дис­ки USB или CD, но его мож­но ус­та­но­вить и на же­ст­кий диск. Уни­кален тем, что су­ще­ст­ву­ет в ар­хи­ви­ро­ван­ном виде и соз­да­ет свою фай­ло­вую сис­те­му на ле­ту. По­ми­мо пре­дус­та­нов­лен­ных при­ло­же­ний, до­пол­ни­тель­ные про­грам­мы для это­го ди­ст­ри­бу­ти­ва идут в ви­де мо­ду­лей. Про­сто два­ж­ды щелк­ни­те мы­шью, что­бы ак­ти­ви­ро­вать или де­ак­ти­ви­ро­вать мо­дуль. Ди­ст­ри­бу­тив со­дер­жит ме­нед­жер па­ке­тов для по­лу­че­ния мо­ду­лей, ко­то­рые мож­но так­же со­хра­нить на же­ст­кий диск, что­бы они пе­ре­жи­ли пе­ре­за­груз­ку. Бла­го­да­ря сво­ей мо­дуль­ной при­ро­де ди­ст­ри­бу­тив не­ве­лик по раз­ме­ру и не­ве­ро­ят­но быстр, по­сколь­ку ра­бо­та­ет из ОЗУ. На его сай­те име­ет­ся об­шир­ная до­ку­мен­та­ция по ис­поль­зо­ва­нию.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Идеа­лен для ус­та­нов­ки на пор­та­тив­ный но­си­тель, хо­тя кри­вая обу­че­ния в нем до­воль­но кру­та.&lt;br /&gt;
&lt;br /&gt;
====Puppy====&lt;br /&gt;
&lt;br /&gt;
Puppy не­пре­взой­ден в пла­не го­то­вых к упот­реб­ле­нию функ­ций. В нем мно­же­ст­во поль­зо­ва­тель­ских при­ло­же­ний, при­ло­же­ний для бло­ки­ров­ки рек­ла­мы на сай­те и ин­тер­нет-те­ле­фо­нии, про­грам­ма для ска­чи­ва­ния под­кас­тов, безо­пас­ная про­грам­ма ска­чи­ва­ния, ау­дио­плей­ер и мно­гое дру­гое.&lt;br /&gt;
&lt;br /&gt;
Ди­ст­ри­бу­тив не со­дер­жит пла­ги­на Flash, но пред­ла­га­ет ска­чать и ус­та­но­вить его, ко­гда вы за­хо­ди­те на сайт, ра­бо­таю­щий на Flash — на­при­мер, на YouTube. Мож­но так­же ус­та­но­вить пла­гин из ме­нед­же­ра па­ке­тов ди­ст­ри­бу­ти­ва. В Puppy есть не­сколь­ко муль­ти­ме­диа-плей­е­ров, в том чис­ле Mplayer, для вос­про­из­ве­де­ния всех ме­диа-фор­ма­тов.&lt;br /&gt;
&lt;br /&gt;
На­чи­наю­щие поль­зо­ва­те­ли от про­грам­мы ус­та­нов­ки Puppy мо­гут оро­беть. Здесь нет ав­то­ма­ти­че­­ско­­го раз­бие­ния дис­ка на раз­де­лы — за­пус­ка­ет­ся Gparted для фор­ма­ти­ро­ва­ния дис­ка. Од­на­ко ка­ж­дый шаг ус­та­нов­щи­ка хо­ро­шо до­ку­мен­ти­ро­ван в нем са­мом. За­груз­ка и за­пуск при­ло­же­ний от­ли­ча­ют­ся ред­кой бы­ст­ро­той, да­же для та­ких мас­сив­ных при­ло­же­ний, как Mplayer и VLC, ко­то­рые мож­но ус­та­но­вить че­рез Puppy Package Manager. Па­ке­ты име­ну­ют­ся pet и име­ют рас­ши­ре­ние .pet. Мож­но ус­та­но­вить па­ке­ты для Puppy с по­мо­щью его поль­зо­ва­тель­ско­го ин­ст­ру­мен­та Puppy Package Manager, а мож­но на­стро­ить его на ска­чи­ва­ние па­ке­тов из дру­гих ре­по­зи­то­ри­ев Puppy.&lt;br /&gt;
&lt;br /&gt;
У не­го есть два не­за­ви­си­мых и очень ак­тив­ных фо­ру­ма и безд­на до­ку­мен­та­ции. Так­же в нем есть под­сказ­ка по не­сколь­ким те­мам, на­при­мер, по ра­бо­те с фай­ла­ми Microsoft Office, до­бав­ле­нию ко­де­ков и про­грамм и т. д. &lt;br /&gt;
&lt;br /&gt;
Есть не­сколь­ко ва­ри­ан­тов Puppy Linux. WaryPuppy — один из са­мых под­хо­дя­щих для ста­ро­го обо­ру­до­ва­ния, и в нем все­го 130 МБ. Он пред­ла­га­ет два Х-сер­ве­ра — Xorg и Xvesa, пе­ре­кры­ваю­щих ши­ро­кий диа­па­зон гра­фи­че­­ских уст­ройств. Есть еще ва­ри­ант RacyPuppy, пред­на­зна­чен­ный для бо­лее но­во­го обо­ру­до­ва­ния, и SlackoPuppy, на ба­зе Slackware, плюс PrecisePuppy, на ба­зе по­след­не­го ре­ли­за Ubuntu LTS.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Действительно луч­ший ди­ст­ри­бу­тив из предназначенных для обо­ру­до­ва­ния, зо­ло­тые вре­мена ко­то­ро­го остались по­за­ди.&lt;br /&gt;
&lt;br /&gt;
Рейтинг&lt;br /&gt;
&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
====Fuduntu====&lt;br /&gt;
&lt;br /&gt;
Из­на­чаль­но раз­ра­бо­тан для пе­ре­дел­ки обыч­но­го ре­ли­за Fedora в дру­же­люб­ную вер­сию, а на­зва­ние свое за­ра­бо­тал из-за стрем­ле­ния за­нять ме­сто где-то по­сре­ди Fedora и Ubuntu. Вклю­ча­ет функ­ции со­вре­мен­ных ди­ст­ри­бу­ти­вов, под­дер­жи­вая внеш­ний вид и спо­соб ра­бо­ты тра­ди­ци­он­но­го ра­бо­че­го сто­ла. Это один из не­сколь­ких ди­ст­ри­бу­ти­вов, все еще по­став­ляе­мых с ра­бо­чим сто­лом Gnome 2. В со­от­вет­ст­вии с на­зва­ни­ем, со­дер­жит ин­ст­ру­мент рас­по­зна­ва­ния обо­ру­до­ва­ния Jockey от Ubuntu, ко­то­рый так­же смо­жет ска­чать про­прие­тар­ные драй­ве­ры, ради мак­си­мума про­из­во­ди­тель­ности. Fuduntu не бо­ит­ся про­прие­тар­ных про­грамм; в нем име­ют­ся кли­ен­ты Steam и Netflix, за­пус­ка­емые че­рез Wine. Есть так­же про­стые в ис­поль­зо­ва­нии ин­ст­ру­мен­ты управ­ле­ния па­ке­та­ми и на­строй­ки, а ус­та­нав­ливается он бо­лее ста­рым ин­стал­ля­то­ром Fedora — Anaconda, что весь­ма не­пло­хо.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Стран­ная смесь тра­ди­ци­он­но­го и но­во­го; хо­ро­шо ра­бо­та­ет на ма­ло­мощ­ных ком­пь­ю­те­рах.&lt;br /&gt;
&lt;br /&gt;
====Sparky Linux====&lt;br /&gt;
&lt;br /&gt;
Вам ну­жен ди­ст­ри­бу­тив сра­зу и для но­во­го, и для ста­ро­го ком­пь­ю­те­ра? SparkyLinux как раз для вас. Он раз­ра­бо­тан как для но­вых, так и для ста­рых ма­шин, и в нем есть два на­страи­вае­мых ра­бо­чих сто­ла (Enlightenment и LXDE) в ос­нов­ном из­да­нии и Openbox в из­да­нии Ultra.&lt;br /&gt;
&lt;br /&gt;
Его ин­ди­ви­ду­аль­ная про­грам­ма ус­та­нов­ки об­ра­ща­ет­ся к раз­лич­ным ин­ст­ру­мен­там для на­строй­ки раз­ных ас­пек­тов сис­те­мы, на­при­мер, к debconf — ути­ли­те Debian для на­строй­ки кла­виа­ту­ры, и к Gparted для раз­бие­ния дис­ков на раз­де­лы. Он со­дер­жит как пол­но­функ­цио­наль­ные про­грам­мы, как, на­при­мер, VLC, так и лег­ко­вес­ные, как AbiWord.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Ди­ст­ри­бу­тив-лег­ко­вес, ко­то­рый бу­дет очень ров­но ра­бо­тать на по­лу­ус­та­рев­ших ком­пь­ю­те­рах.&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
====aLinux====&lt;br /&gt;
&lt;br /&gt;
Один из спо­со­бов соз­дать ди­ст­ри­бу­ти­в для ста­ро­го «железа» — взять бо­лее ста­рые про­граммы, меньше нагружающие скуд­ные ре­сур­сы. aLinux ис­поль­зу­ет KDE 3.5 со ста­рой вер­си­ей Koffice, но вос­про­из­во­дит все ви­ды муль­ти­ме­диа, имеет все иг­ры и Wine для ра­бо­ты с приложения­ми Windows; да­же со­дер­жит про­прие­тар­ные про­грам­мы вро­де Skype и Google Earth. Ус­та­нов­ка про­ста, бла­го­да­ря не­слож­ной на­ви­га­ци­и.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Смесь ста­рого и но­вого; но ладит не со всеми ста­рыми ма­ши­нами.&lt;br /&gt;
&lt;br /&gt;
====DSL====&lt;br /&gt;
&lt;br /&gt;
Ес­ли вы со­чли Puppy эзо­те­рич­ным, какой же тогда DSL? Это по­пу­ляр­ный ди­ст­ри­бу­тив тоже не­дав­но про­бу­дил­ся от спяч­ки. Он ис­поль­зу­ет ме­нед­жер окон JWM и по­сле за­груз­ки за­пус­ка­ет ру­ко­во­дство Getting Started, что­бы со­ри­ен­ти­ро­вать поль­зо­ва­те­лей. Объем его 50 МБ; хотя ос­нов­ные при­ло­же­ния здесь име­ются, не­ко­то­рые, по­доб­но Firefox, ус­та­ре­ли так, что сай­ты вро­де YouTube гру­зить­ся не бу­дут. Мо­жно до­ба­вить дру­гие при­ло­же­ния с по­мо­щью сис­те­мы MyDSL. DSL задуман как ко­че­вой ди­ст­ри­бу­ти­в, но в нем все же есть мас­тер ус­та­нов­ки, ос­но­ван­ный на knxhdinstall, ко­то­рый ско­пи­ру­ет со­держимое на раз­дел в  300 МБ.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Про­цесс обу­че­ния до­воль­но сло­жен; ре­ко­мен­ду­ет­ся толь­ко при крайней не­об­хо­ди­мости вдох­нуть жизнь в ста­рое обо­ру­до­ва­ние.&lt;br /&gt;
&lt;br /&gt;
====OantiX====&lt;br /&gt;
&lt;br /&gt;
Цель это­го лег­ко­вес­но­го ди­ст­ри­бу­ти­ва — обес­пе­чить пол­но­функ­цио­наль­ный дру­же­люб­ный к поль­зо­ва­те­лю на­столь­ный ПК. Он ос­но­ван на тес­то­вом ре­по­зи­то­рии Debian Testing, и яд­ро его от­но­си­тель­но но­вое по срав­не­нию с дру­ги­ми ди­ст­ри­бу­ти­ва­ми для тех же це­лей. Идет с ме­нед­же­ром окон Fluxbox и вос­про­из­во­дит все ви­ды муль­ти­ме­диа. Ос­нов­ные функ­ции ра­бо­че­го сто­ла управ­ля­ют­ся та­ки­ми поль­зо­ва­тель­ски­ми ин­ст­ру­мен­та­ми, как antiX Control Center. Так­же в нем есть свой ме­нед­жер па­ке­тов и своя про­грам­ма ус­та­нов­ки — до­воль­но про­стая и хо­ро­шо до­ку­мен­ти­ро­ван­ная. Есть так­же ин­ст­ру­мент для соз­да­ния ус­та­нав­ли­вае­мо­го в ре­жи­ме live об­раза сис­те­мы.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Хо­ро­ший бы­ст­рый ди­ст­ри­бу­тив для ста­рых ма­шин и тех поль­зо­ва­те­лей, ко­то­рых Puppy Linux оза­да­чи­ва­ет.&lt;br /&gt;
&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
====Bodhi Linux====&lt;br /&gt;
&lt;br /&gt;
Эле­гант­ный ра­бо­чий стол с при­ят­ным и лег­ким ме­нед­же­ром окон Enlightenment. Bodhi, ве­ро­ят­но, яв­ля­ет­ся ди­ст­ри­бу­ти­вом с наи­луч­шей ин­те­гра­ци­ей Enlightenment. В нем есть ряд про­фи­лей, от Bare и Laptop до Compositing и Fancy, и ка­ж­дый из них оп­ти­ми­зи­ро­ван для раз­ных ти­пов обо­ру­до­ва­ния.&lt;br /&gt;
&lt;br /&gt;
При­ло­же­ний в Bodhi ма­ло. Вы мо­же­те до­ба­вить их с по­мо­щью но­ва­тор­ско­го web-ин­ст­ру­мен­та для ус­та­нов­ки про­грамм под на­зва­ни­ем AppCenter. С по­мо­щью это­го ин­ст­ру­мен­та вы так­же смо­же­те ска­чать па­ке­ты лю­бо­го ди­ст­ри­бу­ти­ва и за­тем пе­ре­не­сти их в Bodhi для ус­та­нов­ки.&lt;br /&gt;
&lt;br /&gt;
По­сколь­ку Bodhi ос­но­ван на Ubuntu, он ис­поль­зу­ет про­стую в ис­поль­зо­ва­нии про­грам­му ус­та­нов­ки Ubuntu, и на сво­ем сай­те пред­ла­га­ет мно­же­ст­во поль­зо­ва­тель­ской до­ку­мен­та­ции.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Ми­ни­ма­ли­ст­ский, про­стой в ис­поль­зо­ва­нии ди­ст­ри­бу­тив, не утом­ляю­щий глаз.&lt;br /&gt;
&lt;br /&gt;
====Tiny Core Linux====&lt;br /&gt;
&lt;br /&gt;
При раз­ме­ре все­го 12 МБ, он снаб­жен толь­ко тер­ми­на­лом, тек­сто­вым ре­дак­то­ром и про­грам­мой за­пус­ка при­ло­же­ний на ос­но­ве лег­ко­вес­но­го ме­нед­же­ра окон FLWM.&lt;br /&gt;
&lt;br /&gt;
В нем есть па­нель управ­ле­ния для управ­ле­ния сер­ви­са­ми за­груз­ки и на­строй­ки про­грам­мы за­пус­ка при­ло­же­ний, но все ос­таль­ное нуж­но ус­та­нав­ли­вать че­рез ме­нед­жер па­ке­тов, в том чис­ле и про­грам­му ус­та­нов­ки, ес­ли вы хо­ти­те ус­та­но­вить Tiny Core на же­ст­кий диск. Ди­ст­ри­бу­тив име­ет раз­но­вид­ность CorePlus, с до­пол­ни­тель­ны­ми драй­ве­ра­ми для бес­про­вод­ных карт, ин­ст­ру­мен­том ре­ма­сте­рин­га и под­держ­кой ин­тер­на­цио­на­ли­за­ции.&lt;br /&gt;
&lt;br /&gt;
И, на­ко­нец, есть ва­ри­ант Core edition раз­ме­ром 8 МБ — это про­сто ба­зо­вая сис­те­ма с ин­тер­фей­сом ко­манд­ной стро­ки, по­зво­ляю­щая бо­лее опыт­ным поль­зо­ва­те­лям соз­дать с ну­ля соб­ст­вен­ную сис­те­му.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Бу­дет ра­бо­тать да­же на са­мом ста­ром обо­ру­до­ва­нии, но на­строй­ка по­тре­бу­ет вре­ме­ни.&lt;br /&gt;
&lt;br /&gt;
====CrunchBang Linux====&lt;br /&gt;
&lt;br /&gt;
Ди­ст­ри­бу­тив на ба­зе Debian с лег­ко­вес­ным ме­нед­же­ром окон Openbox. В нем есть Gnome Mplayer, GIMP, VLC, и его web-брау­зер снаб­жен пла­ги­ном Flash. Ди­ст­ри­бу­тив вклю­ча­ет AbiWord и Gnumeric, а так­же скрип­ты для ус­та­нов­ки LibreOffice и Dropbox в его ме­ню. Он ис­поль­зу­ет ме­нед­жер па­ке­тов Synaptic и мо­ди­фи­ци­ро­ван­ную про­грам­му ус­та­нов­ки Debian.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Энер­гич­ный ди­ст­ри­бу­тив на ба­зе Debian; хо­ро­шо ра­бо­та­ет на ста­рых ма­ши­нах и мо­жет быть от­ла­жен и для от­но­си­тель­но но­вых.&lt;br /&gt;
&lt;br /&gt;
====Дру­зья но­вич­ков====&lt;br /&gt;
&lt;br /&gt;
Пред­на­зна­че­ны для сни­же­ния куль­тур­но­го шо­ка от пе­ре­хо­да на дру­гую ОС.&lt;br /&gt;
&lt;br /&gt;
====OS4====&lt;br /&gt;
&lt;br /&gt;
Еще один ди­ст­ри­бу­тив на ба­зе Ubuntu и Xfce для не­опыт­ных поль­зо­ва­те­лей Linux. Един­ст­вен­ное, что вы­де­ля­ет OS4 сре­ди ему по­доб­ных — уни­каль­ная схе­ма ра­бо­че­го сто­ла.&lt;br /&gt;
&lt;br /&gt;
Раз­ра­бот­чи­ки OS4 за­яв­ля­ют о под­держ­ке уст­ройств, ко­то­рые по­ка что не под­дер­жи­ва­ют­ся аж са­мим Ubuntu: на­при­мер, уст­ройств на WebOS и на Nook... и да­же Kindle Fire.&lt;br /&gt;
&lt;br /&gt;
Ди­ст­ри­бу­тив вклю­ча­ет под­держ­ку по­пу­ляр­ных пла­ги­нов брау­зе­ра, мно­же­ст­во при­ло­же­ний для вос­про­из­ве­де­ния и соз­да­ния муль­ти­ме­диа, и да­же ин­ст­ру­мен­ты для соз­да­ния про­грамм. На сай­те ди­ст­ри­бу­ти­ва нет фо­ру­мов и до­ку­мен­та­ции, но вы мо­же­те оп­ла­тить под­держ­ку в он­лайн-ма­га­зи­не, где так­же мож­но при­об­ре­сти на­столь­ные компьютеры и но­ут­бу­ки с пре­дус­та­нов­лен­ным OS4.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Го­то­вый к ра­бо­те ди­ст­ри­бу­тив с уни­каль­ным ин­тер­фей­сом, но беден до­ку­мен­та­ци­ей.&lt;br /&gt;
&lt;br /&gt;
====Ultimate Edition====&lt;br /&gt;
&lt;br /&gt;
Этот ди­ст­ри­бу­тив вос­при­нял свое имя все­рь­ез. Он ис­поль­зу­ет пе­ре­на­стро­ен­ный ра­бо­чий стол KDE с поль­зо­ва­тель­ски­ми знач­ка­ми и ука­за­те­ля­ми. Но все это за­хо­дит че­рес­чур да­ле­ко — те­ма бе­ло­го шриф­та на чер­ном фо­не рас­про­стра­ня­ет­ся на LibreOffice и как-то не спо­соб­ст­ву­ет при­ят­ности ра­бо­ты. И здесь по нескольку при­ло­же­ний на од­ну задачу, что то­же со­мни­тель­ное удо­воль­ст­вие. Хо­тя набор плей­е­ров муль­ти­ме­диа — вещь в об­щем-то без­обид­ная, на­ли­чие не­сколь­ких про­грамм ус­та­нов­ки при­ло­же­ний, та­ких, как Ubuntu Software Center, Lubuntu Software Center и Muon Package Manager, сби­ва­ет с тол­ку. По­тра­тив уй­му вре­ме­ни на на­строй­ку раз­ных ас­пек­тов ра­бо­че­го сто­ла, раз­ра­бот­чи­ки ни­ма­ло не из­ме­ни­ли про­грам­му ус­та­нов­ки Kubuntu 12.04 — она да­же и на­зва­ние по­ка­зы­вает “Kubuntu”.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Все­сто­рон­ний ди­ст­ри­бу­тив в духе Knoppix, спо­со­бный за­пу­тать ми­риа­да­ми воз­мож­но­стей вы­бо­ра.&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
====LinuxLite====&lt;br /&gt;
&lt;br /&gt;
Ди­ст­ри­бу­тив ос­но­ван на Ubuntu 12.04 LTS, и его ра­бо­чий стол Xfce за­бот­ли­во отделан. В LinuxLite име­ют­ся обыч­ные при­ло­же­ния — LibreOffice, Firefox, GIMP и VLC, но по­сколь­ку он ос­но­ван на ре­ли­зе LTS, мно­гие при­ло­же­ния ус­та­ре­ли. Поль­зо­ва­те­ли ра­бо­че­го сто­ла оце­нят на­ли­чие пла­ги­на Flash и ко­де­ков, а так­же появление в по­след­нем ре­ли­зе кли­ен­та Steam.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Еще один при­на­ря­жен­ный ди­ст­ри­бу­тив на базе Ubuntu, ко­то­рый способен пред­ло­жить не слишком много но­во­го.&lt;br /&gt;
&lt;br /&gt;
====Pear Linux====&lt;br /&gt;
&lt;br /&gt;
Этот ди­ст­ри­бу­тив из Фран­ции на базе Ubuntu име­ет свой ин­тер­фейс поль­зо­ва­теля, который покажется привычным приверженцам Mac. Gnome Shell на­стро­ена здесь та­ким об­ра­зом, что­бы на­по­ми­нать OS X, и да­же есть dockbar в сти­ле Mac OS X. Есть го­ря­чие точ­ки для ото­бра­же­ния на­страи­вае­мо­го об­зо­ра и для пе­ре­клю­че­ния вир­ту­аль­ных ра­бо­чих сто­лов. Не­ко­то­рые ин­ст­ру­мен­ты, на­при­мер, па­нель и про­грам­ма за­пус­ка при­ло­же­ний, за­им­ст­вованы из про­ек­та Elementary OS.&lt;br /&gt;
&lt;br /&gt;
Име­ет­ся го­то­вая под­держ­ка по­пу­ляр­ных муль­ти­ме­диа-ко­де­ков, и на ра­бо­чем сто­ле есть зна­чок программы Launch Me First, ко­то­рая вы­пол­ня­ет не­ко­то­рые за­да­чи по­стин­стал­ля­ции: на­при­мер, об­нов­ля­ет ре­по­зи­то­рии и на­страи­ва­ет Pear Appstore, весьма по­хо­жий на Ubuntu Software Center.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Чу­дес­ный ди­ст­ри­бу­тив, об­лег­чаю­щий пе­ре­ход на Linux поль­зо­ва­те­лям OS X.&lt;br /&gt;
&lt;br /&gt;
====Zorin====&lt;br /&gt;
&lt;br /&gt;
Бла­го­да­ря Gnome, на­стро­ен­но­му на сход­ст­во с ра­бо­чим сто­лом Windows 7, бу­дет удо­бен поль­зо­ва­те­лям Windows. Име­ет­ся в не­сколь­ких ва­ри­ан­тах: Core edition бес­плат­ный, но дру­гие (Multimedia, Gaming, Business и Ultimate edition) сто­ят € 7–18. При­ло­же­ние для «мимикрии» по­зво­ля­ет вы­брать, ка­кую про­прие­тар­ную ОС надо ими­ти­ро­вать, а Wine пора­бо­тает с про­грам­ма­ми Windows. Ос­но­ван на Ubuntu и ис­поль­зу­ет инсталлятор это­го ди­ст­ри­бу­ти­ва.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Ubuntu, ко­то­рый за­ста­ви­ли вы­гля­деть, как Windows 7... ес­ли это ваш путь.&lt;br /&gt;
&lt;br /&gt;
====SolusOS====&lt;br /&gt;
&lt;br /&gt;
Раз­ра­бо­тан­ный тем же че­ло­ве­ком, что тру­дил­ся над Debian-вер­си­ей Linux Mint, SolusOS по­стро­ен на Debian Stable, но с бо­лее но­вы­ми про­грам­ма­ми. У не­го от­гла­жен­ный и от­ла­жен­ный ра­бо­чий стол Gnome с ук­ра­ше­ния­ми окон, ниж­ней па­не­лью и про­грам­мой за­пус­ка при­ло­же­ний в сти­ле Windows 7. Так­же он со­дер­жит офис­ные на­столь­ные при­ло­же­ния, плюс Wine, PlayOnLinux и Minitube для про­смот­ра ви­део с YouTube.&lt;br /&gt;
&lt;br /&gt;
Gnome System Settings тщательно организованы в SolusOS Control Center. По­сле ус­та­нов­ки ди­ст­ри­бу­ти­ва вас при­вет­ст­ву­ет пя­ти­ша­го­вый мас­тер пер­во­го за­пус­ка, ко­то­рый ска­ни­ру­ет обо­ру­до­ва­ние и ус­та­нав­ли­ва­ет про­прие­тар­ные драй­ве­ры, и на­страи­ва­ет бранд­мау­эр. С по­мо­щью Synaptic Package Manager мож­но ус­та­но­вить при­ло­же­ния из ре­по­зи­то­ри­ев об­рат­ных пор­тов SolusOS или Debian.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Ста­биль­ный ди­ст­ри­бу­тив ра­бо­че­го сто­ла, вы­гля­дит и ра­бо­та­ет от­лич­но.&lt;br /&gt;
&lt;br /&gt;
====Parsix====&lt;br /&gt;
&lt;br /&gt;
Од­на из пре­лес­тей Parsix — прият­ное оформ­ле­ние и те­мы ра­бо­че­го сто­ла. Дру­же­люб­ный к но­вич­кам ди­ст­ри­бу­тив ос­но­ван на Debian Testing и пред­ла­га­ет са­мый све­жий ста­биль­ный ре­лиз Gnome. Ос­нов­ные вер­сии вы­хо­дят ка­ж­дые пол­го­да. Со­дер­жит ко­де­ки и пла­ги­ны, а так­же плей­ер VLC для ра­бо­ты со все­ми ви­да­ми муль­ти­ме­диа. Про­стая про­грам­ма ус­та­нов­ки че­ст­но вы­пол­ня­ет свою ра­бо­ту. Па­ке­та­ми управ­ляе­т PackageKit от Gnome. Parsix сле­ду­ет Debian Security Advisories [Со­ве­ты по безо­пас­но­сти Debian], и тут же пре­дос­тав­ля­ет об­нов­ле­ния безо­пас­но­сти. Мо­жно ус­та­нав­ли­вать про­прие­тар­ные при­ло­же­ния из его офи­ци­аль­ных ре­по­зи­то­ри­ев, ко­то­рые так­же содержат па­ке­ты из Debian Testing.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Ди­ст­ри­бу­тив на базе Debian с фик­си­ро­ван­ным цик­лом ре­ли­зов, битком на­би­тый при­ло­же­ния­ми.&lt;br /&gt;
&lt;br /&gt;
Рейтинг&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
Рейтинг&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
===Про­дви­ну­тым===&lt;br /&gt;
&lt;br /&gt;
''Для зна­то­ков Linux, ко­то­рым ну­жен пол­ный кон­троль над их сис­те­мой.''&lt;br /&gt;
&lt;br /&gt;
====Debian====&lt;br /&gt;
&lt;br /&gt;
По-преж­не­му счи­тает­ся луч­шим ди­ст­ри­бу­ти­вом для сер­ве­ров, но про­ник и на настольные ПК. Очень гибок: на­стра­ивается и как на­столь­ный, и как се­те­вой/поч­то­вый/фай­ло­вый сер­ве­р. Бла­го­да­ря не са­мым но­вым, за­то тща­тель­но про­ве­рен­ным ста­биль­ным па­ке­там, ис­клю­чи­тель­но безо­па­сен и ладит с са­мыми раз­ными ар­хи­тек­ту­рами. Идет без про­прие­тар­ных драй­ве­ров и ко­де­ков, но то, что он яв­ля­ет­ся од­ним из са­мых ста­рых и по­пу­ляр­ных ди­ст­ри­бу­ти­вов Linux, име­ет свои пре­иму­ще­ст­ва. Поч­ти все про­из­во­ди­те­ли про­грамм пре­дос­тав­ля­ют готовые би­нар­ни­ки для Debian, по­это­му ус­та­нов­ка про­грамм — су­щие пус­тя­ки.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Обес­пе­чи­ва­ет иде­аль­но ста­биль­ную сис­те­му, под­хо­дя­щую для сер­ве­ров.&lt;br /&gt;
&lt;br /&gt;
====Slackware====&lt;br /&gt;
&lt;br /&gt;
Пред­ла­гая па­ке­ты, поч­ти иден­тич­ные сво­им фирменным ре­ли­зам, Slackware стре­мит­ся пре­дос­та­вить наи­бо­лее близ­кий к Unix ди­ст­ри­бу­тив Linux. Ди­ст­ри­бу­тив пре­дос­тав­ля­ет поль­зо­ва­те­лю ог­ром­ные воз­мож­но­сти управ­ле­ния во вре­мя ус­та­нов­ки, по­зво­ляя ре­шить, ка­кие ус­та­нав­ли­вать па­ке­ты и биб­лио­те­ки. Бу­ду­чи од­ним из ста­рей­ших ди­ст­ри­бу­ти­вов Linux, Slackware ис­клю­чи­тель­но ста­би­лен и го­дит­ся для сер­ве­ров. В нем нет гра­фи­че­­ских ин­ст­ру­мен­тов ад­ми­ни­ст­ри­ро­ва­ния сис­те­мы, и па­ке­ты управ­ляются из ко­манд­ной стро­ки, хо­тя есть ос­но­ван­ные на ncurses ин­ст­ру­мен­ты с ог­ра­ни­чен­ной функ­цио­наль­но­стью для вы­пол­не­ния оп­ре­де­лен­ных за­дач. На­вык ра­бо­ты в ко­манд­ной стро­ке пре­вра­тит ра­бо­ту в нем в ис­тин­ное на­сла­ж­де­ние.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Ста­биль­ный, на­деж­ный, клас­си­че­­ский. От­лич­но под­хо­дит для сер­ве­ров и опыт­ных поль­зо­ва­те­лей.&lt;br /&gt;
&lt;br /&gt;
====Gentoo====&lt;br /&gt;
&lt;br /&gt;
Здесь поль­зо­ва­те­ли по­лу­ча­ют все­сто­рон­ний кон­троль над соз­да­ни­ем сис­те­мы с са­мо­го ну­ля. Вме­сте с Arch, Gentoo яв­ля­ет­ся од­ним из са­мых на­страи­вае­мых ди­ст­ри­бу­ти­вов, и он рас­счи­ты­ва­ет на то, что вы ском­пи­ли­руе­те яд­ро, на­стро­ив его на свой вкус во вре­мя ус­та­нов­ки. Ди­ст­ри­бу­тив упа­ко­вы­ва­ет по­тря­саю­щую сис­те­му управ­ле­ния па­ке­та­ми в Portage. В от­ли­чие от боль­шин­ст­ва дру­гих ди­ст­ри­бу­ти­вов, ус­та­нов­ка Gentoo мо­жет за­нять от не­сколь­ких ча­сов до не­сколь­ких дней, в за­ви­си­мо­сти от ко­ли­че­­ст­ва желаемых па­ке­тов, по­сколь­ку те ска­чи­ва­ют­ся из Ин­тер­нет. Ес­ли вы ни­ко­гда не поль­зо­ва­лись им пре­ж­де, вам при­дет­ся по­учить­ся, и вы по­зна­ко­ми­тесь с на­чин­кой Linux и не­сколь­ки­ми но­вы­ми тех­но­ло­гия­ми, род­ны­ми для Gentoo, на­при­мер, с сис­те­мой фла­гов USE. Про­из­вод­ные типа Funtoo мо­гут стать не­пло­хим стар­то­вым пунк­том для тех, кто не зна­ком или не же­ла­ет свя­зы­вать­ся со слож­но­стя­ми Gentoo.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Про­иг­ры­ва­ет Arch из-за дол­го­й ус­та­нов­ки и ря­да не­зна­ко­мых кон­цеп­ций, как, на­при­мер, флаж­ки USE.&lt;br /&gt;
&lt;br /&gt;
Рейтинг&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
====Arch====&lt;br /&gt;
&lt;br /&gt;
Arch — ли­дер про­шло­го Срав­не­ния ди­ст­ри­бу­ти­вов для умников: те его силь­но лю­бят за вы­со­кую сте­пе­нь на­страи­вае­мо­сти. Име­ет сколь­зя­щий цикл ре­ли­зов, но не пре­дос­тав­ля­ет па­ке­тов по умол­ча­нию. Ус­та­нов­ка мо­жет за­тя­нуть­ся — это за­ви­сит от желаемых па­ке­тов: они за­гру­жа­ют­ся из Ин­тер­не­та. Фишка Arch, обес­пе­чи­ваю­щая ему вы­со­кие рей­тин­ги — ин­ст­ру­мент управ­ле­ния па­ке­та­ми Pacman. Ус­та­нов­ка по­зна­ко­мит вас с ря­дом фай­лов настройки, ко­то­рые на­до за­дать вруч­ную. Вруч­ную де­лает­ся все, от раз­бие­ния дис­ка на раз­де­лы и до ус­та­нов­ки про­грам­мы за­груз­ки. Arch породил не­сколь­ко ди­ст­ри­бу­ти­вов, ка­ж­дый со своими от­ли­чиями. Испытайте Cinnarch, ес­ли вам нуж­на вся мощь Arch в со­че­та­нии с Cinnamon.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: На­строй­ка быст­рее, чем у Gentoo, и боль­ше радостей для тех­на­рей, чем в лю­бом дру­гом ди­ст­ри­бу­тиве.&lt;br /&gt;
&lt;br /&gt;
Рейтинг&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
===CentOS====&lt;br /&gt;
&lt;br /&gt;
Про­ис­ход­ит от RHEL и яв­ля­ет­ся лю­бим­цем тех ад­ми­ни­ст­ра­то­ров, ко­то­рые пред­по­чи­та­ют сис­те­му управ­ле­ния па­ке­та­ми RPM; пре­дос­тав­ля­ет вам все, че­го толь­ко мож­но ожи­дать в ди­ст­ри­бу­ти­ве клас­са пред­при­ятия. Иде­аль­но под­хо­дит для на­строй­ки сер­ве­ров, потому что в нем есть Apache, MySQL, PHP, Perl и раз­лич­ное сер­ве­рное ПО; но в нем ма­ло под­хо­дя­ще­го для по­все­днев­но­го ис­поль­зо­ва­ния, или для лю­би­те­лей, или для про­дви­ну­тых поль­зо­ва­те­лей Linux. Для срав­не­ния, его глав­ный кон­ку­рент, Debian, яв­ля­ет­ся ди­ст­ри­бу­ти­вом об­ще­го поль­зо­ва­ния, ко­то­рый в рав­ной ме­ре хо­рош на до­маш­нем ПК или для об­слу­жи­ва­ния web-стра­ниц.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Поч­ти вы­тес­нен аль­тер­на­ти­вами, такими как Scientific Linux.&lt;br /&gt;
&lt;br /&gt;
Рейтинг&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
&lt;br /&gt;
Рейтинг&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
===Про­дви­ну­тые лег­ко­ве­сы===&lt;br /&gt;
&lt;br /&gt;
====Crux====&lt;br /&gt;
&lt;br /&gt;
Ба­зи­рует­ся на ис­ход­ни­ке; име­ет­ся толь­ко для ар­хи­тек­ту­ры x86-64 и ис­поль­зу­ет сис­те­му пор­тов для управ­ле­ния па­ке­та­ми, ком­пи­ли­ру­ясь по фор­му­ле KISS [ее суть — «будь­те про­ще», — прим. пер.], и пред­поч­итая про­сто­ту в­то­ма­ти­за­ци­и. Не­гра­фи­че­­ский инсталлятор включа­ет ком­пи­ля­цию яд­ра в ус­та­нов­ку, как в Gentoo.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Чу­дес­ный ди­ст­ри­бу­тив для опыт­ных поль­зо­ва­те­лей, с под­держ­кой толь­ко 64-бит­ной ар­хи­тек­ту­ры.&lt;br /&gt;
&lt;br /&gt;
====Frugalware====&lt;br /&gt;
&lt;br /&gt;
Создан­ный на базеSlackware, Frugalware верен про­шло­му. Пред­на­зна­чен для сред­них и про­дви­ну­тых поль­зо­ва­те­лей, и пред­ла­га­ет вы­бор ме­ж­ду ко­манд­ной стро­кой или гра­фи­че­­ской ус­та­нов­кой. На DVD мно­же­ст­во па­ке­тов, и его лег­ко на­стро­ить в ка­че­­ст­ве сер­ве­ра.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Хо­ро­ший ди­ст­ри­бу­тив, ес­ли вам нуж­ны все функ­ции Arch.&lt;br /&gt;
&lt;br /&gt;
====Foresight Linux====&lt;br /&gt;
&lt;br /&gt;
Про­дви­ну­тых поль­зо­ва­те­лей за­ин­те­ре­сует в нем одно: сис­те­ма управ­ле­ния па­ке­та­ми Conary. В от­ли­чие от аналогов, Conary об­нов­ля­ет толь­ко устаревшие фай­лы, эко­но­мя вре­мя и по­ло­су; так­же мо­жет от­катить или вер­нуть лю­бое об­нов­ле­ние од­ной ко­ман­дой.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Не пред­ла­га­ет про­дви­ну­то­му поль­зо­ва­те­лю ни­че­го осо­бен­но­го, кро­ме Conary.&lt;br /&gt;
&lt;br /&gt;
По­ми­мо ди­ст­ри­бу­ти­вов, добытых из Интер­нет, мы еще соз­да­ли собственный. По­сколь­ку мы про­во­дим мно­го вре­ме­ни за иг­рами, он у нас иг­ро­вой. В нем бо­лее сотни игр, ко­то­рые мы смогли уме­стить на  DVD, так что за­гру­зи­те его — и иг­рай­те во что хо­ти­те, от нар­дов до пин­бо­ла. |&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:_%D0%94%D0%B8%D1%81%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D0%B8%D0%B2%D1%8B_Linux</id>
		<title>LXF171: Дистрибутивы Linux</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:_%D0%94%D0%B8%D1%81%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D0%B8%D0%B2%D1%8B_Linux"/>
				<updated>2018-11-18T12:58:08Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: Новая страница: «Категория: Главное в мире Linux Вы­бор и гиб­кость — фир­мен­ные при­зна­ки эко­си­сте­…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Главное в мире Linux]]&lt;br /&gt;
Вы­бор и гиб­кость — фир­мен­ные при­зна­ки эко­си­сте­мы Linux. В Windows и OS X, ес­ли вам не по ду­ше ка­кие-ли­бо ас­пек­ты опе­ра­ци­он­ной сис­те­мы, с этим ма­ло что по­де­ла­ешь. В ми­ре Linux вы, мож­но ска­зать, из­ба­ло­ва­ны вы­бо­ром бла­го­да­ря на­ли­чию мно­же­ст­ва ди­ст­ри­бу­ти­вов.&lt;br /&gt;
&lt;br /&gt;
Серд­це­ви­на ка­ж­до­го ди­ст­ри­бу­ти­ва — яд­ро Linux, но на его ос­но­ве ди­ст­ри­бу­ти­вы до­ст­раи­ва­ют свои ком­по­нен­ты, ко­то­рые под­би­ра­ют­ся в за­ви­си­мо­сти от це­ле­вой ау­ди­то­рии дан­но­го ди­ст­ри­бу­ти­ва. Раз­ные ди­ст­ри­бу­ти­вы пред­ла­га­ют раз­ные оп­ции ин­ди­ви­ду­аль­ной на­строй­ки, так что вы мо­же­те по­ра­бо­тать с ди­ст­ри­бу­ти­вом и на­стро­ить его по сво­ему вку­су и ус­мот­ре­нию, по­ка не добь­е­тесь же­лае­мо­го ре­зуль­та­та. И не­за­ви­си­мо от то­го, ка­кой тип поль­зо­ва­те­ля вы со­бой пред­став­ляе­те, для вас обя­за­тель­но най­дет­ся подходящий ди­ст­ри­бу­тив.&lt;br /&gt;
&lt;br /&gt;
В этой ста­тье мы в пер­вую оче­редь уде­ля­ем вни­ма­ние ра­бо­че­му сто­лу. Не­ко­то­рые ди­ст­ри­бу­ти­вы ра­бо­че­го сто­ла ста­вят сво­ей це­лью мак­си­маль­ную про­сто­ту, дру­гие пре­дос­тав­ля­ют вам боль­ше кон­тро­ля. У них раз­ные про­це­ду­ры ус­та­нов­ки, раз­ные тре­бо­ва­ния к ра­бо­че­му сто­лу, раз­ные схе­мы управ­ле­ния па­ке­та­ми и раз­ные ин­ст­ру­мен­ты ад­ми­ни­ст­ри­ро­ва­ния. Мы рас­смот­рим при­выч­ные ди­ст­ри­бу­ти­вы, при­ме­няе­мые для обыч­ных за­дач, а так­же раз­ра­бо­тан­ные спе­ци­аль­но для при­вле­че­ния поль­зо­ва­те­лей, при­вык­ших к дру­гим опе­ра­ци­он­ным сис­те­мам, та­ким, как Windows и Mac OS X. Мы так­же рас­смот­рим ди­ст­ри­бу­ти­вы, спо­соб­ные пре­вра­тить ста­рую рухлядь в со­вре­мен­ную ма­ши­ну, и те, что пре­дос­тав­ля­ют опыт­ным поль­зо­ва­те­лям пол­ный кон­троль над их ра­бо­чей сре­дой.&lt;br /&gt;
&lt;br /&gt;
На сле­дую­щих стра­ни­цах мы рас­смот­рим бо­лее че­ты­рех дю­жин луч­ших ди­ст­ри­бу­ти­вов, про­тес­ти­ру­ем их уни­каль­ные функ­ции и срав­ним их силь­ные и сла­бые сто­ро­ны, что­бы вы смог­ли с на­шей по­мо­щью вы­брать ди­ст­ри­бу­тив, луч­ший имен­но для вас!&lt;br /&gt;
&lt;br /&gt;
Ин­декс&lt;br /&gt;
&lt;br /&gt;
aLinux 33&lt;br /&gt;
&lt;br /&gt;
Arch 35&lt;br /&gt;
&lt;br /&gt;
Bodhi Linux 33&lt;br /&gt;
&lt;br /&gt;
CentOS 35&lt;br /&gt;
&lt;br /&gt;
Chakra 29&lt;br /&gt;
&lt;br /&gt;
Crunchbang 33&lt;br /&gt;
&lt;br /&gt;
Crux 35&lt;br /&gt;
&lt;br /&gt;
Debian 35&lt;br /&gt;
&lt;br /&gt;
DSL 33&lt;br /&gt;
&lt;br /&gt;
Fedora 27&lt;br /&gt;
&lt;br /&gt;
Foresight Linux 35&lt;br /&gt;
&lt;br /&gt;
Frugalware 35&lt;br /&gt;
&lt;br /&gt;
Fuduntu 32&lt;br /&gt;
&lt;br /&gt;
Gentoo 35&lt;br /&gt;
&lt;br /&gt;
Kanotix 30&lt;br /&gt;
&lt;br /&gt;
Knoppix 29&lt;br /&gt;
&lt;br /&gt;
Kororaa 30&lt;br /&gt;
&lt;br /&gt;
Linux Mint 28&lt;br /&gt;
&lt;br /&gt;
LinuxLite 34&lt;br /&gt;
&lt;br /&gt;
LXF Games 35&lt;br /&gt;
&lt;br /&gt;
Mageia 27&lt;br /&gt;
&lt;br /&gt;
Manjaro 30&lt;br /&gt;
&lt;br /&gt;
Netrunner 31&lt;br /&gt;
&lt;br /&gt;
OantiX 33&lt;br /&gt;
&lt;br /&gt;
Open Xange 30&lt;br /&gt;
&lt;br /&gt;
OpenSUSE 27&lt;br /&gt;
&lt;br /&gt;
OS4 34&lt;br /&gt;
&lt;br /&gt;
Parsix 34&lt;br /&gt;
&lt;br /&gt;
PCLinuxOS 28&lt;br /&gt;
&lt;br /&gt;
Pear Linux 34&lt;br /&gt;
&lt;br /&gt;
Porteus 32&lt;br /&gt;
&lt;br /&gt;
Puppy 32&lt;br /&gt;
&lt;br /&gt;
PureOS 27&lt;br /&gt;
&lt;br /&gt;
Qubes OS 30&lt;br /&gt;
&lt;br /&gt;
Rosa 29&lt;br /&gt;
&lt;br /&gt;
Sabayon Linux 28&lt;br /&gt;
&lt;br /&gt;
Salix OS 29&lt;br /&gt;
&lt;br /&gt;
Slackel 27&lt;br /&gt;
&lt;br /&gt;
Slackware 35&lt;br /&gt;
&lt;br /&gt;
Slax 32&lt;br /&gt;
&lt;br /&gt;
Slitaz 31&lt;br /&gt;
&lt;br /&gt;
SolusOS 34&lt;br /&gt;
&lt;br /&gt;
Sparky Linux 32&lt;br /&gt;
&lt;br /&gt;
Tiny Core Linux 33&lt;br /&gt;
&lt;br /&gt;
Ubuntu 27&lt;br /&gt;
&lt;br /&gt;
Ultimate Edition 34&lt;br /&gt;
&lt;br /&gt;
WattOS 30&lt;br /&gt;
&lt;br /&gt;
Zenwalk 31&lt;br /&gt;
&lt;br /&gt;
ZevenOS 31&lt;br /&gt;
&lt;br /&gt;
Zorin 34&lt;br /&gt;
&lt;br /&gt;
===Ди­ст­ри­бу­ти­вы, раз­ра­бо­тан­ные на за­ме­ну ва­шей ны­неш­ней ОС.===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu 9====&lt;br /&gt;
&lt;br /&gt;
Это не пер­вый ди­ст­ри­бу­тив для но­вич­ков в Linux, но он, бес­спор­но, са­мый из­вест­ный. В нем есть не­сколь­ко ин­но­ва­ци­он­ных функ­ций, в том чис­ле ра­бо­чий стол Unity, ко­то­рый всем так нра­вит­ся не­на­ви­деть. За­тем име­ет­ся Ubuntu One, мно­го­плат­фор­мен­ный сер­вис для об­лач­но­го хра­не­ния и син­хро­ни­за­ции фай­лов по мно­же­ст­ву уст­ройств, ко­то­рый пред­ла­га­ет 5 ГБ сво­бод­но­го мес­та для хра­не­ния дан­ных. А для до­бав­ле­ния но­вых про­грамм пре­ду­смот­рен Ubuntu Software Center.&lt;br /&gt;
&lt;br /&gt;
У это­го ди­ст­ри­бу­ти­ва один из са­мых про­стых ме­ха­низ­мов ус­та­нов­ки. По умол­ча­нию он не со­дер­жит про­прие­тар­ных ко­де­ков, но их мо­ж­но вклю­чить во вре­мя ус­та­нов­ки, про­сто щелк­нув по флаж­ку. Ди­ст­ри­бу­тив вы­хо­дит дважды в год, с по­сто­ян­ны­ми ре­ли­за­ми дол­го­сроч­ной под­держ­ки (Long Term Support, LTS) на пять лет.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Unity улучшается, и Ubuntu про­до­лжит борь­бу с про­прие­тар­ны­ми на­столь­ны­ми ОС.&lt;br /&gt;
&lt;br /&gt;
====Slackel 7====&lt;br /&gt;
&lt;br /&gt;
Этот ди­ст­ри­бу­тив бе­рет са­мые све­жие про­грам­мы из вет­ки Slackware Current и пред­ла­га­ет их в ви­де дру­же­люб­но­го на­столь­но­го па­ке­та, взяв ряд ин­ст­ру­мен­тов из бо­га­то­го на них ди­ст­ри­бу­ти­ва Salix OS. Ос­но­ван­ные на KDE о­бра­зы Slackel име­ют­ся на но­си­те­лях толь­ко для ус­та­нов­ки и для ус­та­нов­ки в ре­жи­ме live. Не­ко­то­рые ин­ст­ру­мен­тыот Salix OS — про­грам­ма ус­та­нов­ки ко­де­ков, ме­нед­жер па­ке­тов Gslapt, а так­же про­грам­ма ус­та­нов­ки live CD.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Во­зоб­нов­ляе­мый ре­лиз, ко­то­рый пре­дос­тав­ля­ет все са­мое со­вре­мен­ное из Slackware, ис­поль­зуя ин­ст­ру­мен­ты из Salix OS.&lt;br /&gt;
&lt;br /&gt;
====Fedora 6 ====&lt;br /&gt;
&lt;br /&gt;
По­след­ний ре­лиз это­го ди­ст­ри­бу­ти­ва, тра­ди­ци­он­но счи­таю­ще­го­ся аль­тер­на­ти­вой Ubuntu и раз­ра­ба­ты­вае­мо­го со­об­ще­ст­вом при под­держ­ке Red Hat, от­дал пред­поч­те­ние сер­вер­ным функ­ци­ям про­тив на­столь­ных. И по­это­му он ско­рее иг­ро­вая пло­щад­ка для опыт­ных поль­зо­ва­те­лей. Да и во­об­ще, это тес­то­вый по­ли­гон для бу­ду­щих пред­ло­же­ний Red Hat.&lt;br /&gt;
&lt;br /&gt;
Кро­ме то­го, ди­ст­ри­бу­тив стал слож­нее в ис­поль­зо­ва­нии из-за вве­де­ния ра­бо­че­го сто­ла Gnome 3 (по­сте­пен­но улуч­шаю­ще­го­ся). Но­вич­ки ото­ро­пе­ют при ви­де го­ло­го эк­ра­на, тре­бую­ще­го осо­бых на­вы­ков, что­бы ра­зо­брать­ся в на­ви­га­ции. От­сут­ст­вие ра­бо­че­го ме­нед­же­ра па­ке­тов и муль­ти­ме­диа-ко­де­ков, а так­же антиин­туи­тив­ный ин­стал­ля­тор то­же не ра­ду­ют.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Весь­ма пер­спек­тив­ный ди­ст­ри­бу­тив для опыт­ных поль­зо­ва­те­лей, ми­но­вав­ших кри­зис сред­не­го воз­рас­та.&lt;br /&gt;
&lt;br /&gt;
====Mageia 8 ====&lt;br /&gt;
&lt;br /&gt;
Mandrake Linux был пер­вым ди­ст­ри­бу­ти­вом Linux для обычных поль­зо­вателей. Он про­шел че­рез ряд пе­ре­во­пло­ще­ний, и его по­след­няя ава­та­ра за­ста­ви­ла чле­нов его со­об­ще­ст­ва со ста­жем уй­ти в от­ветв­ле­ние. Те­перь ди­ст­ри­бу­тив на ба­зе RPM име­ну­ет­ся Mageia и под­дер­жи­ва­ет­ся со­лид­ной ин­фра­струк­ту­рой со­об­ще­ст­ва. Он пред­ла­га­ет ра­бо­чие сто­лы KDE и Gnome, и в трех ре­по­зи­то­ри­ях ди­ст­ри­бу­ти­ва най­дутся все нуж­ные вам про­грам­мы. Его про­грам­ма ус­та­нов­ки про­ста в на­ви­га­ции, и не­сколь­ко эк­ра­нов име­ют кноп­ку Advanced, с оп­циямий для опыт­ных поль­зо­ва­те­лей. Са­мая вы­даю­щая­ся функ­ция это­го ди­ст­ри­бу­ти­ва — Mageia Control Center, здесь мо­жно на­стро­ить поч­ти все ас­пек­ты сис­те­мы.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: От­ветв­ле­ние на ба­зе со­об­ще­ст­ва на со­лид­ном фун­да­мен­те, и дос­той­ный ди­ст­ри­бу­тив для повседневных задач.&lt;br /&gt;
&lt;br /&gt;
====OpenSUSE 7 ==== &lt;br /&gt;
&lt;br /&gt;
Еще один ве­те­ран и один из ве­ду­щих поль­зо­ва­те­лей (и уча­ст­ни­ков раз­ра­бот­ки) ра­бо­че­го сто­ла KDE — хо­тя офи­ци­аль­но они не объ­яв­ля­ли о сво­их пред­поч­те­ни­ях. На са­мом де­ле, этот ди­ст­ри­бу­тив дос­той­но ве­дет се­бя на обо­их ра­бо­чих сто­лах, и ви­зу­аль­но весь­ма при­вле­ка­те­лен.&lt;br /&gt;
&lt;br /&gt;
Его ин­ст­ру­мент управ­ле­ния YaST (Yet another Setup Tool), ра­бо­таю­щий по прин­ци­пу все-в-од­ном, уме­ет ус­та­нав­ли­вать про­грам­мы, а так­же на­страи­вать и ад­ми­ни­ст­ри­ро­вать сис­те­му. Хо­тя иметь все ин­ст­ру­мен­ты в од­ном мес­те до­воль­но удоб­но, все же это до­воль­но слож­но и слег­ка пу­га­ет но­вых поль­зо­ва­те­лей Linux. Да и ус­та­нов­щик это­го ди­ст­ри­бу­ти­ва не так прост, как в Ubuntu. А так­же, в на­ру­ше­ние всех тра­ди­ций, ди­ст­ри­бу­тив вы­пус­ка­ет но­вый ре­лиз ка­ж­дые во­семь ме­ся­цев.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Хо­тя этот ди­ст­ри­бу­тив и раз­ра­бо­тан для поль­зо­ва­те­лей насто­льных ПК, он не столь дру­же­лю­бен, как Ubuntu или Mint, но ста­нет от­лич­ной ОС для пред­при­ятия.&lt;br /&gt;
&lt;br /&gt;
====PureOS 6 ====&lt;br /&gt;
&lt;br /&gt;
Ди­ст­ри­бу­тив име­ет­ся в двух ви­дах; ос­но­ван или на Gnome, или на лег­ко­вес­ном ра­бо­чем сто­ле Openbox. PureOS ос­но­ван на тес­то­вой вет­ке Debian и под­дер­жи­ва­ет мно­го­языч­ные ло­ка­ли­за­ции. PureOS дос­ту­пен толь­ко в ви­де об­ра­зов для соз­да­ния Live USB-дис­ков. Цель его — быть функ­цио­наль­ным ди­ст­ри­бу­ти­вом, ко­то­рый затем мож­но пер­со­на­ли­зи­ро­вать, до­ба­вив мо­ду­ли с по­мо­щью вклю­чен­ных в не­го скрип­тов. Так­же со­дер­жит скрипт smxi для тонкой на­строй­ки сис­те­мы и ус­та­нов­ки про­прие­тар­ных драй­ве­ров.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Глад­кий, го­то­вый к работе ди­ст­ри­бу­тив для умель­цев.&lt;br /&gt;
&lt;br /&gt;
====PCLinuxOS 7 ====&lt;br /&gt;
&lt;br /&gt;
Этот ди­ст­ри­бу­тив на­чи­нал как ре­по­зи­то­рий для улуч­ше­ния ос­нов­но­го ре­ли­за Mandriva, а позд­нее стал от­дель­ным ди­ст­ри­бу­ти­вом. PCLinuxOS офи­ци­аль­но яв­ля­ет­ся ди­ст­ри­бу­ти­вом KDE, од­на­ко име­ет от­ветв­ле­ния от со­об­ще­ст­ва на ос­но­ве ра­бо­чих сто­лов LXDE и Xfce.&lt;br /&gt;
&lt;br /&gt;
Ди­ст­ри­бу­тив уме­ет вос­про­из­во­дить все ви­ды муль­ти­ме­диа. Для ус­та­нов­ки RPM-па­ке­тов он при­ме­ня­ет apt-rpm и Synaptic Package Manager. Его ин­ст­ру­мент на­строй­ки и про­грам­ма ус­та­нов­ки яв­но от­вер­га­ет род­ст­во с Mandriva. Ди­ст­ри­бу­тив со­дер­жит ил­лю­ст­ри­ро­ван­ное ру­ко­вод­ство по ус­та­нов­ке, а так­же вы­пус­кает для сво­их поль­зо­ва­те­лей еже­ме­сяч­ный жур­нал.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Счи­тай­те его чем-то наподобие Mageia, но с уже заготовленными муль­ти­ме­диа-ко­де­ка­ми.&lt;br /&gt;
&lt;br /&gt;
====Sabayon Linux 9 ====&lt;br /&gt;
&lt;br /&gt;
Цель про­ек­та Sabayon — пре­дос­та­вить по­сто­ян­ным поль­зо­ва­те­лям насто­льных компьютеров воз­мож­ность по­зна­ко­мить­ся с ди­ст­ри­бу­ти­вом Gentoo. Это бо­га­тый функ­ция­ми ди­ст­ри­бу­тив, соз­дан­ный на ста­биль­ной и зре­лой ос­но­ве.&lt;br /&gt;
&lt;br /&gt;
В Sabayon есть все не­об­хо­ди­мое для поль­зо­ва­те­ля насто­льной системы, в том чис­ле все ви­ды ко­де­ков и модулей расширения (плагинов). По­ми­мо обыч­но­го мно­же­ст­ва при­ло­же­ний, в нем так­же есть ме­диа-плей­ер XBMC и Wine для ра­бо­ты с при­ло­же­ния­ми Windows.&lt;br /&gt;
&lt;br /&gt;
Для управ­ле­ния па­ке­та­ми име­ет­ся на­страи­вае­мый брау­зер при­ло­же­ний Rigo. Это гра­фи­че­­ская обо­лоч­ка для Entropy, сис­те­мы управ­ле­ния па­ке­та­ми Sabayon, и она ими­ти­ру­ет внеш­ний вид по­ис­ко­вой ма­ши­ны Google. При­ло­же­ние про­сто в ра­бо­те и очень раз­го­вор­чи­во. Вме­сто ото­бра­же­ния за­га­доч­ных со­об­ще­ний оно объ­яс­ня­ет­ся с поль­зо­ва­те­ля­ми на человеческом (анг­лий­ском) язы­ке.&lt;br /&gt;
&lt;br /&gt;
У ди­ст­ри­бу­ти­ва есть раз­но­вид­но­сти для всех по­пу­ляр­ных ра­бо­чих сто­лов, в том чис­ле для Gnome, KDE, Xfce и Mate. И этот ди­ст­ри­бу­тив поставляет не исходный ре­ли­з Gnome, а про­из­водит не­ко­то­рые на­строй­ки — на­при­мер, что­бы ото­бра­жать умень­шен­ные кноп­ки — для под­держ­ки еди­но­об­ра­зия раз­ных ре­ли­зов. Вы най­де­те в его офи­ци­аль­ных ре­по­зи­то­ри­ях и дру­гие ра­бо­чие сто­лы, на­при­мер, Cinnamon и Razor-Qt. По­ми­мо это­го, есть не­сколь­ко спец­раз­но­вид­но­стей для осо­бых це­лей: на­при­мер, ми­ни­ма­ли­ст­ский CoreCDX и HardenedServer на базе яд­ра Gentoo Hardened kernel.&lt;br /&gt;
&lt;br /&gt;
Хо­тя Sabayon — ди­ст­ри­бу­тив с возобновляемым ре­ли­зом [rolling release], раз­ра­бот­чи­ки на­строи­ли его так, что­бы ра­бо­та с ним бы­ла удоб­на для на­чи­наю­щих поль­зо­ва­те­лей.&lt;br /&gt;
&lt;br /&gt;
Ус­та­нов­ка про­из­во­дит­ся пе­ре­ра­бо­тан­ной про­грам­мой ус­та­нов­ки Anaconda, соз­дан­ной ди­ст­ри­бу­ти­вом Fedora. Так­же мож­но за­гру­зить 64-бит­ные об­ра­зы бо­лее но­вых вер­сий — в сис­те­мы с вклю­чен­ным SecureBoot. На сай­те ди­ст­ри­бу­ти­ва вы най­де­те мас­су до­ку­мен­та­ции, удоб­ной для на­чи­наю­ще­го поль­зо­ва­те­ля и вклю­чаю­щей по­ша­го­вое ру­ко­во­дство по ус­та­нов­ке и под­роб­ный FAQ.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Ди­ст­ри­бу­тив пред­ла­га­ет всю мощь и глад­кость Gentoo в смяг­чен­ном и дру­же­люб­ном к поль­зо­ва­те­лю на­столь­ном па­ке­те.&lt;br /&gt;
&lt;br /&gt;
====Linux Mint 9 ====&lt;br /&gt;
&lt;br /&gt;
С мо­мен­та сво­его де­бю­та в 2006 Linux Mint мед­лен­но, но вер­но пе­ре­ме­щал­ся к вер­ши­нам всех рей­тин­гов лю­би­мых ди­ст­ри­бу­ти­вов. Од­на из ос­нов­ных при­чин ус­пе­ха ди­ст­ри­бу­ти­ва в том, что, хо­тя он ос­но­ван на Ubuntu, его ра­бо­чий стол по умол­ча­нию гораздо бо­лее тра­ди­цио­нен, чем спорный ин­тер­фейс Unity в Ubuntu. Linux Mint пред­ла­га­ет поль­зо­ва­те­лям вы­бор из двух сред ра­бо­че­го сто­ла на ос­но­ве Gnome, ко­то­рые он на­звал Mate и Cinnamon.&lt;br /&gt;
&lt;br /&gt;
Mate соз­дан для то­го, что­бы быть пре­дан­ным про­дол­жа­те­лем ста­ро­го ра­бо­че­го сто­ла Gnome 2. Cinnamon — по­но­вее, с оп­рят­ным ме­ню, даю­щим дос­туп ко всем на­строй­кам сис­те­мы и при­ло­же­ни­ям из од­но­го центрального пункта.&lt;br /&gt;
&lt;br /&gt;
Ди­ст­ри­бу­тив так­же идет с пред­ва­ри­тель­но за­гру­жен­ным пол­ным на­бо­ром ау­дио- и ви­део­ко­де­ков и об­ла­да­ет впе­чат­ляю­щим Software Manager.&lt;br /&gt;
&lt;br /&gt;
Вер­дикт: Про­стой в ус­та­нов­ке и от­по­ли­ро­ван­ный ра­бо­чий стол, ко­то­рый с хо­ду на­чи­на­ет ра­бо­тать. Идеален для вас, если пресловутый Unity вам про­тив шер­сти.&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171</id>
		<title>LXF171</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171"/>
				<updated>2018-11-18T12:44:26Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* Главное в мире Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Linux Format 171 (06), Июнь 2013&lt;br /&gt;
[[Файл:lxf171_cover.jpg |center|300px ]]&lt;br /&gt;
=Содержание:=&lt;br /&gt;
''Новинки программного и аппаратного обеспечения в описании наших экспертов''&lt;br /&gt;
{{Врезка|left|Заголовок=|Ширина=37%|Содержание=Мо­но­те­изм или дуа­лизм? А мо­жет...&lt;br /&gt;
[[Файл:Fedorchuk_CMYK_fmt.png |left |100px |thumb|'''АЛЕКСЕЙ ФЕДОРЧУК.''' Тэг &amp;lt;сар­казм&amp;gt; по умол­ча­нию, смай­ли­ки по вку­су.]]&lt;br /&gt;
&lt;br /&gt;
В про­шлой ко­лон­ке (LXF170) был дан эс­киз апо­ка­лип­ти­че­­ской кар­ти­ны — за­си­лья од­но­го-един­ст­вен­но­го ис­тин­но пра­виль­но­го Linux’а, под гре­бен­ку ко­то­ро­го по­стри­гут все ди­ст­ри­бу­ти­вы.&lt;br /&gt;
&lt;br /&gt;
Та­кой сю­жет ны­не впол­не реа­лен. Но, к сча­стью, по­ка не реа­ли­зо­ван. Ибо су­ще­ст­ву­ет аль­тер­на­ти­ва — Ubuntu, не­дав­но от­празд­но­вав­ший вы­ход сво­ей оче­ред­ной вер­сии. О нем са­мом по се­бе на­пи­са­но столь­ко, что по­вто­рять­ся не­ин­те­рес­но. От­ме­тим толь­ко не­сколь­ко мо­мен­тов, важ­ных в дан­ном кон­тек­сте.&lt;br /&gt;
&lt;br /&gt;
Пер­вое — это ди­ст­ри­бу­тив с са­мой раз­ви­той ин­фра­струк­ту­рой. Вто­рое — чис­ло «на­столь­ных» его поль­зо­ва­те­лей пре­вы­ша­ет ко­ли­че­­ст­во всех ос­таль­ных «де­ск­топ­ных ли­нук­сои­дов», вме­сте взя­тых. Третье — это ди­ст­ри­бу­тив, по­ро­див­ший не­ис­чис­ли­мое мно­же­ст­во ре­мик­сов, рес­пи­нов и про­чих кло­нов. И, на­ко­нец, чет­вер­тое и глав­ное — раз­ра­бот­чи­ки Ubuntu не со­би­ра­ют­ся от­ка­зы­вать­ся от его свое­об­ра­зия в уго­ду но­во­мод­ным тен­ден­ци­ям.&lt;br /&gt;
&lt;br /&gt;
Од­на­ко не Ubuntu еди­ным жи­во мно­го­об­ра­зие Linux’ов. Не за­бу­дем и о пра­ро­ди­теле-Debian, ко­то­рый в си­лу сво­ей «мно­го­ядер­ной» ори­ен­та­ции не мо­жет замк­нуть­ся на уни­фи­ци­ро­ван­ном Linux — и дал не­обо­зри­мый оке­ан про­из­вод­ных ди­ст­ри­бу­ти­вов. В том чис­ле та­ких лю­бо­пыт­ных, как Aptosid и Siduction, ос­но­ван­ных на «не­ста­биль­ной» вет­ке. Оче­ред­ная вер­сия Aptosid толь­ко что вы­шла. По опы­ту преж­них лет, дня­ми мож­но ожи­дать и по­яв­ле­ния све­же­го Siduction. И то­гда им бу­дет по­свя­ще­на сле­дую­щая ко­лон­ка.&lt;br /&gt;
&lt;br /&gt;
Но вот ес­ли отомрут на­ши мно­гие Linux’ы, станет... Нет, не страш­но – че­ло­ве­че­­ст­во и худ­шие бе­ды пе­ре­жи­ва­ло. Но безусловно станет скуч­но.&lt;br /&gt;
alv@posix.ru&lt;br /&gt;
&lt;br /&gt;
АЛЕКСЕЙ ФЕДОРЧУК&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
alv@posix.ru&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
==Обзоры==&lt;br /&gt;
Сегодня мы рассматриваем: &lt;br /&gt;
; [[LXF171:OpenSUSE 12.3: Один из луч­ших ди­ст­ри­бу­ти­вов Linux|OpenSUSE 12.3: Один из луч­ших ди­ст­ри­бу­ти­вов Linux ]]&lt;br /&gt;
: При­гляд­ный и креп­ко сби­тый ре­лиз — в нем вас не ждут не­при­ят­ные сюр­при­зы.&lt;br /&gt;
; [[LXF171: Короли крестоносцев II |Короли крестоносцев II  ]]&lt;br /&gt;
: На­пря­жен­ная иг­ра-стра­те­гия, пол­ная се­мей­ных ин­триг и ев­ро­пей­ских за­вое­ва­ний.&lt;br /&gt;
; [[LXF171:TeamViewer: Луч­ший ин­ст­ру­мент уда­лен­но­го ра­бо­че­го сто­ла|TeamViewer: Луч­ший ин­ст­ру­мент уда­лен­но­го ра­бо­че­го сто­ла ]]&lt;br /&gt;
: Про­прие­тар­ное кросс-плат­фор­мен­ное при­ло­же­ние, иде­аль­ное и для но­вич­ков, и для зре­лых про­фи.&lt;br /&gt;
&lt;br /&gt;
==Главное в мире Linux==&lt;br /&gt;
; [[LXF171: Дистрибутивы Linux|Дистрибутивы Linux ]]&lt;br /&gt;
: Ка­кой ди­ст­ри­бу­тив вам боль­ше под­хо­дит?&lt;br /&gt;
&lt;br /&gt;
==Постоянные рубрики==&lt;br /&gt;
&lt;br /&gt;
; [[LXF171:Сравнение |Сравнение]]&lt;br /&gt;
: До­лой блу­зы, кис­ти и моль­бер­ты — обой­дем­ся дос­той­ным ре­дак­то­ром изо­бра­же­ний.&lt;br /&gt;
; [[LXF171:Интервью LXF|Интервью LXF]]&lt;br /&gt;
: Сы­но­вья Кэ­ти Мал­мро­уз дос­та­ли ее «го­лу­бы­ми эк­ра­на­ми смер­ти» — при­шлось ей ос­но­вать ком­па­нию по ком­пь­ю­те­рам с Linux.&lt;br /&gt;
; [[LXF171: Что за штука| Что за штука]]&lt;br /&gt;
: Набрав Ubuntu Accomplishments, получаем призы сообщества.,?&lt;br /&gt;
; [[LXF171:Рубрика сисадмина|Рубрика сисадмина]]&lt;br /&gt;
: Пус­тим по­рез­вить­ся Tomcat (бой­ся, мышь!), не­множ­ко по­изу­ча­ем Java и на­пи­шем серв­лет.&lt;br /&gt;
; [[LXF171:Ответы|Ответы]]&lt;br /&gt;
: Нейл Бот­вик — про по­те­рян­ные тер­ми­на­лы, телевидение на Raspberry Pi, бес­про­вод­ные се­ти, непознаваемые файлы и про­чее.&lt;br /&gt;
&lt;br /&gt;
'''Че­рез ме­сяц''' &lt;br /&gt;
&lt;br /&gt;
Что ут­ра­тил Ubuntu? Раз­бе­рем­ся, по­че­му все по­шло на­пе­ре­ко­сяк.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Заголовок=Debian для кос­ми­ческо­го но­ут­бу­ка&lt;br /&gt;
|Ширина=41%|Содержание= &lt;br /&gt;
[[Файл:205956.png|left |100px]]&lt;br /&gt;
E.m.Baldin@inp.nsk.su&lt;br /&gt;
&lt;br /&gt;
ЕВГЕНИЙ БАЛДИН&lt;br /&gt;
&lt;br /&gt;
''Упо­мя­нул PostgreSQL на за­щи­те кан­ди­дат­ской дис­сер­та­ции по фи­зи­ке эле­мен­тар­ных час­тиц.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Спа­сем кос­мос!&lt;br /&gt;
&lt;br /&gt;
От­кры­тое пись­мо Йо­на Ти­хо­го&lt;br /&gt;
&lt;br /&gt;
В аль­тер­на­тив­ной ки­бер­дис­цип­ли­не, посвященной вы­яс­не­нию, что же луч­ше — GNU/Linux или не­что про­из­ве­ден­ное в сте­нах боль­шой и мяг­кой кор­по­ра­ции, по­сто­ян­но всплы­ва­ла ин­фор­ма­ция, что во­об­ще-то в кос­мо­се на международной орбитальной стан­ции но­ут­буки астронавтов ра­бо­та­ют под управ­ле­ни­ем за­кры­той опе­ра­ци­он­ной сис­те­мы.&lt;br /&gt;
&lt;br /&gt;
Но по­ни­ма­ние со­вре­мен­ной си­туа­ции до­б­ра­лось и до NASA, где на­ко­нец-то ре­ши­ли за­ме­нить но­ут­бу­ки на станции экземплярами с пре­дус­та­нов­лен­ным ди­ст­ри­бу­ти­вом Debian GNU/Linux. Все, те­перь GNU/Linux от­ту­да не вы­тра­вить уже ни­как. Пал еще один бас­ти­он. Хо­тя стран­но ско­рее то, что он так дол­го продер­жал­ся: ведь в кос­мо­се нуж­на ста­биль­ная и на­деж­ная сис­те­ма, ко­то­рую мож­но пол­но­стью кон­тро­ли­ро­вать.&lt;br /&gt;
&lt;br /&gt;
В кос­мо­се те­перь все бу­дет хо­ро­шо, а на Зем­ле по­ка еще мно­го че­го нуж­но бу­дет сде­лать. С дру­гой сто­ро­ны, до­ве­рие к от­кры­тым про­ек­там по­сто­ян­но по­вы­ша­ет­ся, при­чем не толь­ко из-за идео­ло­гии или бес­плат­но­сти, но из-за то­го, что они эле­мен­тар­но луч­ше.&lt;br /&gt;
&lt;br /&gt;
11 мая 2013 го­да рус­ский раз­дел Ви­ки­пе­дии про­шел ру­беж в мил­ли­он ста­тей! На­род­ная Ви­ки­пе­дия — са­мая круп­ная из ко­гда-ли­бо су­ще­ст­во­вав­ших эн­цик­ло­пе­дий на рус­ском язы­ке. Она не толь­ко бес­плат­ная и сво­бод­ная — она во мно­гих ас­пек­тах луч­шая, и со вре­ме­нем трудами кол­лективного разума чис­ло та­ких ас­пек­тов бу­дет толь­ко уве­ли­чи­вать­ся.&lt;br /&gt;
E.m.Baldin@inp.nsk.su&lt;br /&gt;
}}&lt;br /&gt;
===Учебники===&lt;br /&gt;
; [[LXF171:Ин­тер­фейс ко­манд­ной стро­ки ва­ше­го Raspberry Pi|Ин­тер­фейс ко­манд­ной стро­ки ва­ше­го Raspberry Pi]]&lt;br /&gt;
: Бен Эве­рард пред­став­ля­ет ин­тер­фейс ко­манд­ной стро­ки в ру­ко­вод­стве к тер­ми­на­лу для на­чи­наю­щих.&lt;br /&gt;
; [[LXF171:Оцифровка фонотеки |Оцифровка фонотеки ]]&lt;br /&gt;
: На­ко­пи­лась го­ра ком­пакт-дис­ков, а к CD-плей­е­ру и по­дой­ти не­ко­гда? Джон Лэйн учит эти дис­ки обди­рать.&lt;br /&gt;
; [[LXF171:Кон­тро­ли­руйте отход ко сну и побудку своей сис­те­мы|Кон­тро­ли­руйте отход ко сну и побудку своей сис­те­мы]]&lt;br /&gt;
: Ваш ком­пь­ю­тер уме­ет от­ды­хать, да­же ко­гда не вы­клю­чен. Нейл Бот­вик по­яс­нит, как это ра­бо­та­ет.&lt;br /&gt;
; [[LXF171:AWS: Зна­ко­мим­ся с Об­ла­ком|AWS: Зна­ко­мим­ся с Об­ла­ком]]&lt;br /&gt;
: Роб До­бо­зи все свои вы­чис­ле­ния про­де­лы­ва­ет в уда­лен­ных да­та-цен­трах. При посредстве па­ры про­стых ша­гов вы то­же та­кое ос­вои­те.&lt;br /&gt;
; [[LXF171:Обеспечение качества ПО|Обеспечение качества ПО]]&lt;br /&gt;
: Джо­но Бэ­кон по­ка­зы­ва­ет, как за­ста­вить разрабатываемые при­ло­же­ния вы­пол­нять свои обя­зан­но­сти. Этак лучше, чем после слушать жалобы.&lt;br /&gt;
; [[LXF171:Редактор графики Inkscape|Редактор графики Inkscape]]&lt;br /&gt;
: В вас за­бро­ди­ли со­ки ху­до­же­ст­вен­ных на­клон­но­стей? При­сое­ди­няй­тесь к Ни­ку Вей­чу — он ис­сле­ду­ет ли­де­ра про­грамм век­тор­ной гра­фи­ки в Linux.&lt;br /&gt;
; [[LXF171:Unison: Доступ к своим фай­лам|Unison: Доступ к своим фай­лам]]&lt;br /&gt;
: Джеймс Лит­тон син­хро­ни­зи­ру­ет свои фай­лы на всех сво­их ком­пь­ю­те­рах, не прибегая к ус­лу­га­м треть­их лиц.&lt;br /&gt;
; [[LXF171:Раз­вер­ты­вать сер­вер|Раз­вер­ты­вать сер­вер]]&lt;br /&gt;
: На­строй­ка сер­ве­ра — шту­ка весьма слож­ная, и Ма­янк Шар­ма пред­по­чел про­сто взять да за­гру­зить го­то­вень­кий.&lt;br /&gt;
; [[LXF171:Вы­чис­лять па­рал­лель­но|Вы­чис­лять па­рал­лель­но]]&lt;br /&gt;
: Ми­ха­ил Ос­тап­ке­вич и Ев­ге­ний Бал­дин по­эле­мент­но скла­ды­ва­ют два век­то­ра под ру­ко­во­дством хост-про­грам­мы.&lt;br /&gt;
; [[LXF171: Резервное копирование|Резервное копирование]]&lt;br /&gt;
: В бес­по­кой­ст­ве за цен­ную ин­фор­ма­цию Игорь Спи­рин ор­га­ни­зу­ет ре­зерв­ное ко­пи­ро­ва­ние. И вам советует организовать.&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171</id>
		<title>LXF171</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171"/>
				<updated>2018-11-18T12:39:45Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* Постоянные рубрики */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Linux Format 171 (06), Июнь 2013&lt;br /&gt;
[[Файл:lxf171_cover.jpg |center|300px ]]&lt;br /&gt;
=Содержание:=&lt;br /&gt;
''Новинки программного и аппаратного обеспечения в описании наших экспертов''&lt;br /&gt;
{{Врезка|left|Заголовок=|Ширина=37%|Содержание=Мо­но­те­изм или дуа­лизм? А мо­жет...&lt;br /&gt;
[[Файл:Fedorchuk_CMYK_fmt.png |left |100px |thumb|'''АЛЕКСЕЙ ФЕДОРЧУК.''' Тэг &amp;lt;сар­казм&amp;gt; по умол­ча­нию, смай­ли­ки по вку­су.]]&lt;br /&gt;
&lt;br /&gt;
В про­шлой ко­лон­ке (LXF170) был дан эс­киз апо­ка­лип­ти­че­­ской кар­ти­ны — за­си­лья од­но­го-един­ст­вен­но­го ис­тин­но пра­виль­но­го Linux’а, под гре­бен­ку ко­то­ро­го по­стри­гут все ди­ст­ри­бу­ти­вы.&lt;br /&gt;
&lt;br /&gt;
Та­кой сю­жет ны­не впол­не реа­лен. Но, к сча­стью, по­ка не реа­ли­зо­ван. Ибо су­ще­ст­ву­ет аль­тер­на­ти­ва — Ubuntu, не­дав­но от­празд­но­вав­ший вы­ход сво­ей оче­ред­ной вер­сии. О нем са­мом по се­бе на­пи­са­но столь­ко, что по­вто­рять­ся не­ин­те­рес­но. От­ме­тим толь­ко не­сколь­ко мо­мен­тов, важ­ных в дан­ном кон­тек­сте.&lt;br /&gt;
&lt;br /&gt;
Пер­вое — это ди­ст­ри­бу­тив с са­мой раз­ви­той ин­фра­струк­ту­рой. Вто­рое — чис­ло «на­столь­ных» его поль­зо­ва­те­лей пре­вы­ша­ет ко­ли­че­­ст­во всех ос­таль­ных «де­ск­топ­ных ли­нук­сои­дов», вме­сте взя­тых. Третье — это ди­ст­ри­бу­тив, по­ро­див­ший не­ис­чис­ли­мое мно­же­ст­во ре­мик­сов, рес­пи­нов и про­чих кло­нов. И, на­ко­нец, чет­вер­тое и глав­ное — раз­ра­бот­чи­ки Ubuntu не со­би­ра­ют­ся от­ка­зы­вать­ся от его свое­об­ра­зия в уго­ду но­во­мод­ным тен­ден­ци­ям.&lt;br /&gt;
&lt;br /&gt;
Од­на­ко не Ubuntu еди­ным жи­во мно­го­об­ра­зие Linux’ов. Не за­бу­дем и о пра­ро­ди­теле-Debian, ко­то­рый в си­лу сво­ей «мно­го­ядер­ной» ори­ен­та­ции не мо­жет замк­нуть­ся на уни­фи­ци­ро­ван­ном Linux — и дал не­обо­зри­мый оке­ан про­из­вод­ных ди­ст­ри­бу­ти­вов. В том чис­ле та­ких лю­бо­пыт­ных, как Aptosid и Siduction, ос­но­ван­ных на «не­ста­биль­ной» вет­ке. Оче­ред­ная вер­сия Aptosid толь­ко что вы­шла. По опы­ту преж­них лет, дня­ми мож­но ожи­дать и по­яв­ле­ния све­же­го Siduction. И то­гда им бу­дет по­свя­ще­на сле­дую­щая ко­лон­ка.&lt;br /&gt;
&lt;br /&gt;
Но вот ес­ли отомрут на­ши мно­гие Linux’ы, станет... Нет, не страш­но – че­ло­ве­че­­ст­во и худ­шие бе­ды пе­ре­жи­ва­ло. Но безусловно станет скуч­но.&lt;br /&gt;
alv@posix.ru&lt;br /&gt;
&lt;br /&gt;
АЛЕКСЕЙ ФЕДОРЧУК&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
alv@posix.ru&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
==Обзоры==&lt;br /&gt;
Сегодня мы рассматриваем: &lt;br /&gt;
; [[LXF171:OpenSUSE 12.3: Один из луч­ших ди­ст­ри­бу­ти­вов Linux|OpenSUSE 12.3: Один из луч­ших ди­ст­ри­бу­ти­вов Linux ]]&lt;br /&gt;
: При­гляд­ный и креп­ко сби­тый ре­лиз — в нем вас не ждут не­при­ят­ные сюр­при­зы.&lt;br /&gt;
; [[LXF171: Короли крестоносцев II |Короли крестоносцев II  ]]&lt;br /&gt;
: На­пря­жен­ная иг­ра-стра­те­гия, пол­ная се­мей­ных ин­триг и ев­ро­пей­ских за­вое­ва­ний.&lt;br /&gt;
; [[LXF171:TeamViewer: Луч­ший ин­ст­ру­мент уда­лен­но­го ра­бо­че­го сто­ла|TeamViewer: Луч­ший ин­ст­ру­мент уда­лен­но­го ра­бо­че­го сто­ла ]]&lt;br /&gt;
: Про­прие­тар­ное кросс-плат­фор­мен­ное при­ло­же­ние, иде­аль­ное и для но­вич­ков, и для зре­лых про­фи.&lt;br /&gt;
&lt;br /&gt;
==Главное в мире Linux==&lt;br /&gt;
; [[LXF171: | ]]&lt;br /&gt;
:&lt;br /&gt;
Ка­кой ди­ст­ри­бу­тив вам боль­ше под­хо­дит? Здесь &lt;br /&gt;
пол­сот­ни &lt;br /&gt;
луч­ших, &lt;br /&gt;
по ран­гам и раз­ря­дам &lt;br /&gt;
с. 26&lt;br /&gt;
&lt;br /&gt;
==Постоянные рубрики==&lt;br /&gt;
&lt;br /&gt;
; [[LXF171:Сравнение |Сравнение]]&lt;br /&gt;
: До­лой блу­зы, кис­ти и моль­бер­ты — обой­дем­ся дос­той­ным ре­дак­то­ром изо­бра­же­ний.&lt;br /&gt;
; [[LXF171:Интервью LXF|Интервью LXF]]&lt;br /&gt;
: Сы­но­вья Кэ­ти Мал­мро­уз дос­та­ли ее «го­лу­бы­ми эк­ра­на­ми смер­ти» — при­шлось ей ос­но­вать ком­па­нию по ком­пь­ю­те­рам с Linux.&lt;br /&gt;
; [[LXF171: Что за штука| Что за штука]]&lt;br /&gt;
: Набрав Ubuntu Accomplishments, получаем призы сообщества.,?&lt;br /&gt;
; [[LXF171:Рубрика сисадмина|Рубрика сисадмина]]&lt;br /&gt;
: Пус­тим по­рез­вить­ся Tomcat (бой­ся, мышь!), не­множ­ко по­изу­ча­ем Java и на­пи­шем серв­лет.&lt;br /&gt;
; [[LXF171:Ответы|Ответы]]&lt;br /&gt;
: Нейл Бот­вик — про по­те­рян­ные тер­ми­на­лы, телевидение на Raspberry Pi, бес­про­вод­ные се­ти, непознаваемые файлы и про­чее.&lt;br /&gt;
&lt;br /&gt;
'''Че­рез ме­сяц''' &lt;br /&gt;
&lt;br /&gt;
Что ут­ра­тил Ubuntu? Раз­бе­рем­ся, по­че­му все по­шло на­пе­ре­ко­сяк.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Заголовок=Debian для кос­ми­ческо­го но­ут­бу­ка&lt;br /&gt;
|Ширина=41%|Содержание= &lt;br /&gt;
[[Файл:205956.png|left |100px]]&lt;br /&gt;
E.m.Baldin@inp.nsk.su&lt;br /&gt;
&lt;br /&gt;
ЕВГЕНИЙ БАЛДИН&lt;br /&gt;
&lt;br /&gt;
''Упо­мя­нул PostgreSQL на за­щи­те кан­ди­дат­ской дис­сер­та­ции по фи­зи­ке эле­мен­тар­ных час­тиц.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Спа­сем кос­мос!&lt;br /&gt;
&lt;br /&gt;
От­кры­тое пись­мо Йо­на Ти­хо­го&lt;br /&gt;
&lt;br /&gt;
В аль­тер­на­тив­ной ки­бер­дис­цип­ли­не, посвященной вы­яс­не­нию, что же луч­ше — GNU/Linux или не­что про­из­ве­ден­ное в сте­нах боль­шой и мяг­кой кор­по­ра­ции, по­сто­ян­но всплы­ва­ла ин­фор­ма­ция, что во­об­ще-то в кос­мо­се на международной орбитальной стан­ции но­ут­буки астронавтов ра­бо­та­ют под управ­ле­ни­ем за­кры­той опе­ра­ци­он­ной сис­те­мы.&lt;br /&gt;
&lt;br /&gt;
Но по­ни­ма­ние со­вре­мен­ной си­туа­ции до­б­ра­лось и до NASA, где на­ко­нец-то ре­ши­ли за­ме­нить но­ут­бу­ки на станции экземплярами с пре­дус­та­нов­лен­ным ди­ст­ри­бу­ти­вом Debian GNU/Linux. Все, те­перь GNU/Linux от­ту­да не вы­тра­вить уже ни­как. Пал еще один бас­ти­он. Хо­тя стран­но ско­рее то, что он так дол­го продер­жал­ся: ведь в кос­мо­се нуж­на ста­биль­ная и на­деж­ная сис­те­ма, ко­то­рую мож­но пол­но­стью кон­тро­ли­ро­вать.&lt;br /&gt;
&lt;br /&gt;
В кос­мо­се те­перь все бу­дет хо­ро­шо, а на Зем­ле по­ка еще мно­го че­го нуж­но бу­дет сде­лать. С дру­гой сто­ро­ны, до­ве­рие к от­кры­тым про­ек­там по­сто­ян­но по­вы­ша­ет­ся, при­чем не толь­ко из-за идео­ло­гии или бес­плат­но­сти, но из-за то­го, что они эле­мен­тар­но луч­ше.&lt;br /&gt;
&lt;br /&gt;
11 мая 2013 го­да рус­ский раз­дел Ви­ки­пе­дии про­шел ру­беж в мил­ли­он ста­тей! На­род­ная Ви­ки­пе­дия — са­мая круп­ная из ко­гда-ли­бо су­ще­ст­во­вав­ших эн­цик­ло­пе­дий на рус­ском язы­ке. Она не толь­ко бес­плат­ная и сво­бод­ная — она во мно­гих ас­пек­тах луч­шая, и со вре­ме­нем трудами кол­лективного разума чис­ло та­ких ас­пек­тов бу­дет толь­ко уве­ли­чи­вать­ся.&lt;br /&gt;
E.m.Baldin@inp.nsk.su&lt;br /&gt;
}}&lt;br /&gt;
===Учебники===&lt;br /&gt;
; [[LXF171:Ин­тер­фейс ко­манд­ной стро­ки ва­ше­го Raspberry Pi|Ин­тер­фейс ко­манд­ной стро­ки ва­ше­го Raspberry Pi]]&lt;br /&gt;
: Бен Эве­рард пред­став­ля­ет ин­тер­фейс ко­манд­ной стро­ки в ру­ко­вод­стве к тер­ми­на­лу для на­чи­наю­щих.&lt;br /&gt;
; [[LXF171:Оцифровка фонотеки |Оцифровка фонотеки ]]&lt;br /&gt;
: На­ко­пи­лась го­ра ком­пакт-дис­ков, а к CD-плей­е­ру и по­дой­ти не­ко­гда? Джон Лэйн учит эти дис­ки обди­рать.&lt;br /&gt;
; [[LXF171:Кон­тро­ли­руйте отход ко сну и побудку своей сис­те­мы|Кон­тро­ли­руйте отход ко сну и побудку своей сис­те­мы]]&lt;br /&gt;
: Ваш ком­пь­ю­тер уме­ет от­ды­хать, да­же ко­гда не вы­клю­чен. Нейл Бот­вик по­яс­нит, как это ра­бо­та­ет.&lt;br /&gt;
; [[LXF171:AWS: Зна­ко­мим­ся с Об­ла­ком|AWS: Зна­ко­мим­ся с Об­ла­ком]]&lt;br /&gt;
: Роб До­бо­зи все свои вы­чис­ле­ния про­де­лы­ва­ет в уда­лен­ных да­та-цен­трах. При посредстве па­ры про­стых ша­гов вы то­же та­кое ос­вои­те.&lt;br /&gt;
; [[LXF171:Обеспечение качества ПО|Обеспечение качества ПО]]&lt;br /&gt;
: Джо­но Бэ­кон по­ка­зы­ва­ет, как за­ста­вить разрабатываемые при­ло­же­ния вы­пол­нять свои обя­зан­но­сти. Этак лучше, чем после слушать жалобы.&lt;br /&gt;
; [[LXF171:Редактор графики Inkscape|Редактор графики Inkscape]]&lt;br /&gt;
: В вас за­бро­ди­ли со­ки ху­до­же­ст­вен­ных на­клон­но­стей? При­сое­ди­няй­тесь к Ни­ку Вей­чу — он ис­сле­ду­ет ли­де­ра про­грамм век­тор­ной гра­фи­ки в Linux.&lt;br /&gt;
; [[LXF171:Unison: Доступ к своим фай­лам|Unison: Доступ к своим фай­лам]]&lt;br /&gt;
: Джеймс Лит­тон син­хро­ни­зи­ру­ет свои фай­лы на всех сво­их ком­пь­ю­те­рах, не прибегая к ус­лу­га­м треть­их лиц.&lt;br /&gt;
; [[LXF171:Раз­вер­ты­вать сер­вер|Раз­вер­ты­вать сер­вер]]&lt;br /&gt;
: На­строй­ка сер­ве­ра — шту­ка весьма слож­ная, и Ма­янк Шар­ма пред­по­чел про­сто взять да за­гру­зить го­то­вень­кий.&lt;br /&gt;
; [[LXF171:Вы­чис­лять па­рал­лель­но|Вы­чис­лять па­рал­лель­но]]&lt;br /&gt;
: Ми­ха­ил Ос­тап­ке­вич и Ев­ге­ний Бал­дин по­эле­мент­но скла­ды­ва­ют два век­то­ра под ру­ко­во­дством хост-про­грам­мы.&lt;br /&gt;
; [[LXF171: Резервное копирование|Резервное копирование]]&lt;br /&gt;
: В бес­по­кой­ст­ве за цен­ную ин­фор­ма­цию Игорь Спи­рин ор­га­ни­зу­ет ре­зерв­ное ко­пи­ро­ва­ние. И вам советует организовать.&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171</id>
		<title>LXF171</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171"/>
				<updated>2018-11-18T12:38:57Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* Постоянные рубрики */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Linux Format 171 (06), Июнь 2013&lt;br /&gt;
[[Файл:lxf171_cover.jpg |center|300px ]]&lt;br /&gt;
=Содержание:=&lt;br /&gt;
''Новинки программного и аппаратного обеспечения в описании наших экспертов''&lt;br /&gt;
{{Врезка|left|Заголовок=|Ширина=37%|Содержание=Мо­но­те­изм или дуа­лизм? А мо­жет...&lt;br /&gt;
[[Файл:Fedorchuk_CMYK_fmt.png |left |100px |thumb|'''АЛЕКСЕЙ ФЕДОРЧУК.''' Тэг &amp;lt;сар­казм&amp;gt; по умол­ча­нию, смай­ли­ки по вку­су.]]&lt;br /&gt;
&lt;br /&gt;
В про­шлой ко­лон­ке (LXF170) был дан эс­киз апо­ка­лип­ти­че­­ской кар­ти­ны — за­си­лья од­но­го-един­ст­вен­но­го ис­тин­но пра­виль­но­го Linux’а, под гре­бен­ку ко­то­ро­го по­стри­гут все ди­ст­ри­бу­ти­вы.&lt;br /&gt;
&lt;br /&gt;
Та­кой сю­жет ны­не впол­не реа­лен. Но, к сча­стью, по­ка не реа­ли­зо­ван. Ибо су­ще­ст­ву­ет аль­тер­на­ти­ва — Ubuntu, не­дав­но от­празд­но­вав­ший вы­ход сво­ей оче­ред­ной вер­сии. О нем са­мом по се­бе на­пи­са­но столь­ко, что по­вто­рять­ся не­ин­те­рес­но. От­ме­тим толь­ко не­сколь­ко мо­мен­тов, важ­ных в дан­ном кон­тек­сте.&lt;br /&gt;
&lt;br /&gt;
Пер­вое — это ди­ст­ри­бу­тив с са­мой раз­ви­той ин­фра­струк­ту­рой. Вто­рое — чис­ло «на­столь­ных» его поль­зо­ва­те­лей пре­вы­ша­ет ко­ли­че­­ст­во всех ос­таль­ных «де­ск­топ­ных ли­нук­сои­дов», вме­сте взя­тых. Третье — это ди­ст­ри­бу­тив, по­ро­див­ший не­ис­чис­ли­мое мно­же­ст­во ре­мик­сов, рес­пи­нов и про­чих кло­нов. И, на­ко­нец, чет­вер­тое и глав­ное — раз­ра­бот­чи­ки Ubuntu не со­би­ра­ют­ся от­ка­зы­вать­ся от его свое­об­ра­зия в уго­ду но­во­мод­ным тен­ден­ци­ям.&lt;br /&gt;
&lt;br /&gt;
Од­на­ко не Ubuntu еди­ным жи­во мно­го­об­ра­зие Linux’ов. Не за­бу­дем и о пра­ро­ди­теле-Debian, ко­то­рый в си­лу сво­ей «мно­го­ядер­ной» ори­ен­та­ции не мо­жет замк­нуть­ся на уни­фи­ци­ро­ван­ном Linux — и дал не­обо­зри­мый оке­ан про­из­вод­ных ди­ст­ри­бу­ти­вов. В том чис­ле та­ких лю­бо­пыт­ных, как Aptosid и Siduction, ос­но­ван­ных на «не­ста­биль­ной» вет­ке. Оче­ред­ная вер­сия Aptosid толь­ко что вы­шла. По опы­ту преж­них лет, дня­ми мож­но ожи­дать и по­яв­ле­ния све­же­го Siduction. И то­гда им бу­дет по­свя­ще­на сле­дую­щая ко­лон­ка.&lt;br /&gt;
&lt;br /&gt;
Но вот ес­ли отомрут на­ши мно­гие Linux’ы, станет... Нет, не страш­но – че­ло­ве­че­­ст­во и худ­шие бе­ды пе­ре­жи­ва­ло. Но безусловно станет скуч­но.&lt;br /&gt;
alv@posix.ru&lt;br /&gt;
&lt;br /&gt;
АЛЕКСЕЙ ФЕДОРЧУК&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
alv@posix.ru&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
==Обзоры==&lt;br /&gt;
Сегодня мы рассматриваем: &lt;br /&gt;
; [[LXF171:OpenSUSE 12.3: Один из луч­ших ди­ст­ри­бу­ти­вов Linux|OpenSUSE 12.3: Один из луч­ших ди­ст­ри­бу­ти­вов Linux ]]&lt;br /&gt;
: При­гляд­ный и креп­ко сби­тый ре­лиз — в нем вас не ждут не­при­ят­ные сюр­при­зы.&lt;br /&gt;
; [[LXF171: Короли крестоносцев II |Короли крестоносцев II  ]]&lt;br /&gt;
: На­пря­жен­ная иг­ра-стра­те­гия, пол­ная се­мей­ных ин­триг и ев­ро­пей­ских за­вое­ва­ний.&lt;br /&gt;
; [[LXF171:TeamViewer: Луч­ший ин­ст­ру­мент уда­лен­но­го ра­бо­че­го сто­ла|TeamViewer: Луч­ший ин­ст­ру­мент уда­лен­но­го ра­бо­че­го сто­ла ]]&lt;br /&gt;
: Про­прие­тар­ное кросс-плат­фор­мен­ное при­ло­же­ние, иде­аль­ное и для но­вич­ков, и для зре­лых про­фи.&lt;br /&gt;
&lt;br /&gt;
==Главное в мире Linux==&lt;br /&gt;
; [[LXF171: | ]]&lt;br /&gt;
:&lt;br /&gt;
Ка­кой ди­ст­ри­бу­тив вам боль­ше под­хо­дит? Здесь &lt;br /&gt;
пол­сот­ни &lt;br /&gt;
луч­ших, &lt;br /&gt;
по ран­гам и раз­ря­дам &lt;br /&gt;
с. 26&lt;br /&gt;
&lt;br /&gt;
==Постоянные рубрики==&lt;br /&gt;
&lt;br /&gt;
; [[LXF171:Сравнение |Сравнение]]&lt;br /&gt;
: До­лой блу­зы, кис­ти и моль­бер­ты — обой­дем­ся дос­той­ным ре­дак­то­ром изо­бра­же­ний.&lt;br /&gt;
; [[LXF171:Интервью LXF|Интервью LXF]]&lt;br /&gt;
: Сы­но­вья Кэ­ти Мал­мро­уз дос­та­ли ее «го­лу­бы­ми эк­ра­на­ми смер­ти» — при­шлось ей ос­но­вать ком­па­нию по ком­пь­ю­те­рам с Linux.&lt;br /&gt;
; [[LXF171: Что за штука| Что за штука]]&lt;br /&gt;
: Набрав Ubuntu Accomplishments, получаем призы сообщества.,?&lt;br /&gt;
; [[LXF171:Рубрика сисадмина|Рубрика сисадмина]]&lt;br /&gt;
: Пус­тим по­рез­вить­ся Tomcat (бой­ся, мышь!), не­множ­ко по­изу­ча­ем Java и на­пи­шем серв­лет.&lt;br /&gt;
; [[LXF171:Ответы|Ответы]]&lt;br /&gt;
: Нейл Бот­вик — про по­те­рян­ные тер­ми­на­лы, телевидение на Raspberry Pi, бес­про­вод­ные се­ти, непознаваемые файлы и про­чее.&lt;br /&gt;
&lt;br /&gt;
'''Че­рез ме­сяц''' &lt;br /&gt;
&lt;br /&gt;
Что ут­ра­тил Ubuntu? Раз­бе­рем­ся, по­че­му все по­шло на­пе­ре­ко­сяк.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Заголовок=Debian для кос­ми­ческо­го но­ут­бу­ка&lt;br /&gt;
|Ширина=42%|Содержание= &lt;br /&gt;
[[Файл:205956.png|left |100px]]&lt;br /&gt;
E.m.Baldin@inp.nsk.su&lt;br /&gt;
&lt;br /&gt;
ЕВГЕНИЙ БАЛДИН&lt;br /&gt;
&lt;br /&gt;
''Упо­мя­нул PostgreSQL на за­щи­те кан­ди­дат­ской дис­сер­та­ции по фи­зи­ке эле­мен­тар­ных час­тиц.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Спа­сем кос­мос!&lt;br /&gt;
&lt;br /&gt;
От­кры­тое пись­мо Йо­на Ти­хо­го&lt;br /&gt;
&lt;br /&gt;
В аль­тер­на­тив­ной ки­бер­дис­цип­ли­не, посвященной вы­яс­не­нию, что же луч­ше — GNU/Linux или не­что про­из­ве­ден­ное в сте­нах боль­шой и мяг­кой кор­по­ра­ции, по­сто­ян­но всплы­ва­ла ин­фор­ма­ция, что во­об­ще-то в кос­мо­се на международной орбитальной стан­ции но­ут­буки астронавтов ра­бо­та­ют под управ­ле­ни­ем за­кры­той опе­ра­ци­он­ной сис­те­мы.&lt;br /&gt;
&lt;br /&gt;
Но по­ни­ма­ние со­вре­мен­ной си­туа­ции до­б­ра­лось и до NASA, где на­ко­нец-то ре­ши­ли за­ме­нить но­ут­бу­ки на станции экземплярами с пре­дус­та­нов­лен­ным ди­ст­ри­бу­ти­вом Debian GNU/Linux. Все, те­перь GNU/Linux от­ту­да не вы­тра­вить уже ни­как. Пал еще один бас­ти­он. Хо­тя стран­но ско­рее то, что он так дол­го продер­жал­ся: ведь в кос­мо­се нуж­на ста­биль­ная и на­деж­ная сис­те­ма, ко­то­рую мож­но пол­но­стью кон­тро­ли­ро­вать.&lt;br /&gt;
&lt;br /&gt;
В кос­мо­се те­перь все бу­дет хо­ро­шо, а на Зем­ле по­ка еще мно­го че­го нуж­но бу­дет сде­лать. С дру­гой сто­ро­ны, до­ве­рие к от­кры­тым про­ек­там по­сто­ян­но по­вы­ша­ет­ся, при­чем не толь­ко из-за идео­ло­гии или бес­плат­но­сти, но из-за то­го, что они эле­мен­тар­но луч­ше.&lt;br /&gt;
&lt;br /&gt;
11 мая 2013 го­да рус­ский раз­дел Ви­ки­пе­дии про­шел ру­беж в мил­ли­он ста­тей! На­род­ная Ви­ки­пе­дия — са­мая круп­ная из ко­гда-ли­бо су­ще­ст­во­вав­ших эн­цик­ло­пе­дий на рус­ском язы­ке. Она не толь­ко бес­плат­ная и сво­бод­ная — она во мно­гих ас­пек­тах луч­шая, и со вре­ме­нем трудами кол­лективного разума чис­ло та­ких ас­пек­тов бу­дет толь­ко уве­ли­чи­вать­ся.&lt;br /&gt;
E.m.Baldin@inp.nsk.su&lt;br /&gt;
}}&lt;br /&gt;
===Учебники===&lt;br /&gt;
; [[LXF171:Ин­тер­фейс ко­манд­ной стро­ки ва­ше­го Raspberry Pi|Ин­тер­фейс ко­манд­ной стро­ки ва­ше­го Raspberry Pi]]&lt;br /&gt;
: Бен Эве­рард пред­став­ля­ет ин­тер­фейс ко­манд­ной стро­ки в ру­ко­вод­стве к тер­ми­на­лу для на­чи­наю­щих.&lt;br /&gt;
; [[LXF171:Оцифровка фонотеки |Оцифровка фонотеки ]]&lt;br /&gt;
: На­ко­пи­лась го­ра ком­пакт-дис­ков, а к CD-плей­е­ру и по­дой­ти не­ко­гда? Джон Лэйн учит эти дис­ки обди­рать.&lt;br /&gt;
; [[LXF171:Кон­тро­ли­руйте отход ко сну и побудку своей сис­те­мы|Кон­тро­ли­руйте отход ко сну и побудку своей сис­те­мы]]&lt;br /&gt;
: Ваш ком­пь­ю­тер уме­ет от­ды­хать, да­же ко­гда не вы­клю­чен. Нейл Бот­вик по­яс­нит, как это ра­бо­та­ет.&lt;br /&gt;
; [[LXF171:AWS: Зна­ко­мим­ся с Об­ла­ком|AWS: Зна­ко­мим­ся с Об­ла­ком]]&lt;br /&gt;
: Роб До­бо­зи все свои вы­чис­ле­ния про­де­лы­ва­ет в уда­лен­ных да­та-цен­трах. При посредстве па­ры про­стых ша­гов вы то­же та­кое ос­вои­те.&lt;br /&gt;
; [[LXF171:Обеспечение качества ПО|Обеспечение качества ПО]]&lt;br /&gt;
: Джо­но Бэ­кон по­ка­зы­ва­ет, как за­ста­вить разрабатываемые при­ло­же­ния вы­пол­нять свои обя­зан­но­сти. Этак лучше, чем после слушать жалобы.&lt;br /&gt;
; [[LXF171:Редактор графики Inkscape|Редактор графики Inkscape]]&lt;br /&gt;
: В вас за­бро­ди­ли со­ки ху­до­же­ст­вен­ных на­клон­но­стей? При­сое­ди­няй­тесь к Ни­ку Вей­чу — он ис­сле­ду­ет ли­де­ра про­грамм век­тор­ной гра­фи­ки в Linux.&lt;br /&gt;
; [[LXF171:Unison: Доступ к своим фай­лам|Unison: Доступ к своим фай­лам]]&lt;br /&gt;
: Джеймс Лит­тон син­хро­ни­зи­ру­ет свои фай­лы на всех сво­их ком­пь­ю­те­рах, не прибегая к ус­лу­га­м треть­их лиц.&lt;br /&gt;
; [[LXF171:Раз­вер­ты­вать сер­вер|Раз­вер­ты­вать сер­вер]]&lt;br /&gt;
: На­строй­ка сер­ве­ра — шту­ка весьма слож­ная, и Ма­янк Шар­ма пред­по­чел про­сто взять да за­гру­зить го­то­вень­кий.&lt;br /&gt;
; [[LXF171:Вы­чис­лять па­рал­лель­но|Вы­чис­лять па­рал­лель­но]]&lt;br /&gt;
: Ми­ха­ил Ос­тап­ке­вич и Ев­ге­ний Бал­дин по­эле­мент­но скла­ды­ва­ют два век­то­ра под ру­ко­во­дством хост-про­грам­мы.&lt;br /&gt;
; [[LXF171: Резервное копирование|Резервное копирование]]&lt;br /&gt;
: В бес­по­кой­ст­ве за цен­ную ин­фор­ма­цию Игорь Спи­рин ор­га­ни­зу­ет ре­зерв­ное ко­пи­ро­ва­ние. И вам советует организовать.&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171</id>
		<title>LXF171</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171"/>
				<updated>2018-11-18T12:35:38Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* Учебники */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Linux Format 171 (06), Июнь 2013&lt;br /&gt;
[[Файл:lxf171_cover.jpg |center|300px ]]&lt;br /&gt;
=Содержание:=&lt;br /&gt;
''Новинки программного и аппаратного обеспечения в описании наших экспертов''&lt;br /&gt;
{{Врезка|left|Заголовок=|Ширина=37%|Содержание=Мо­но­те­изм или дуа­лизм? А мо­жет...&lt;br /&gt;
[[Файл:Fedorchuk_CMYK_fmt.png |left |100px |thumb|'''АЛЕКСЕЙ ФЕДОРЧУК.''' Тэг &amp;lt;сар­казм&amp;gt; по умол­ча­нию, смай­ли­ки по вку­су.]]&lt;br /&gt;
&lt;br /&gt;
В про­шлой ко­лон­ке (LXF170) был дан эс­киз апо­ка­лип­ти­че­­ской кар­ти­ны — за­си­лья од­но­го-един­ст­вен­но­го ис­тин­но пра­виль­но­го Linux’а, под гре­бен­ку ко­то­ро­го по­стри­гут все ди­ст­ри­бу­ти­вы.&lt;br /&gt;
&lt;br /&gt;
Та­кой сю­жет ны­не впол­не реа­лен. Но, к сча­стью, по­ка не реа­ли­зо­ван. Ибо су­ще­ст­ву­ет аль­тер­на­ти­ва — Ubuntu, не­дав­но от­празд­но­вав­ший вы­ход сво­ей оче­ред­ной вер­сии. О нем са­мом по се­бе на­пи­са­но столь­ко, что по­вто­рять­ся не­ин­те­рес­но. От­ме­тим толь­ко не­сколь­ко мо­мен­тов, важ­ных в дан­ном кон­тек­сте.&lt;br /&gt;
&lt;br /&gt;
Пер­вое — это ди­ст­ри­бу­тив с са­мой раз­ви­той ин­фра­струк­ту­рой. Вто­рое — чис­ло «на­столь­ных» его поль­зо­ва­те­лей пре­вы­ша­ет ко­ли­че­­ст­во всех ос­таль­ных «де­ск­топ­ных ли­нук­сои­дов», вме­сте взя­тых. Третье — это ди­ст­ри­бу­тив, по­ро­див­ший не­ис­чис­ли­мое мно­же­ст­во ре­мик­сов, рес­пи­нов и про­чих кло­нов. И, на­ко­нец, чет­вер­тое и глав­ное — раз­ра­бот­чи­ки Ubuntu не со­би­ра­ют­ся от­ка­зы­вать­ся от его свое­об­ра­зия в уго­ду но­во­мод­ным тен­ден­ци­ям.&lt;br /&gt;
&lt;br /&gt;
Од­на­ко не Ubuntu еди­ным жи­во мно­го­об­ра­зие Linux’ов. Не за­бу­дем и о пра­ро­ди­теле-Debian, ко­то­рый в си­лу сво­ей «мно­го­ядер­ной» ори­ен­та­ции не мо­жет замк­нуть­ся на уни­фи­ци­ро­ван­ном Linux — и дал не­обо­зри­мый оке­ан про­из­вод­ных ди­ст­ри­бу­ти­вов. В том чис­ле та­ких лю­бо­пыт­ных, как Aptosid и Siduction, ос­но­ван­ных на «не­ста­биль­ной» вет­ке. Оче­ред­ная вер­сия Aptosid толь­ко что вы­шла. По опы­ту преж­них лет, дня­ми мож­но ожи­дать и по­яв­ле­ния све­же­го Siduction. И то­гда им бу­дет по­свя­ще­на сле­дую­щая ко­лон­ка.&lt;br /&gt;
&lt;br /&gt;
Но вот ес­ли отомрут на­ши мно­гие Linux’ы, станет... Нет, не страш­но – че­ло­ве­че­­ст­во и худ­шие бе­ды пе­ре­жи­ва­ло. Но безусловно станет скуч­но.&lt;br /&gt;
alv@posix.ru&lt;br /&gt;
&lt;br /&gt;
АЛЕКСЕЙ ФЕДОРЧУК&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
alv@posix.ru&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
==Обзоры==&lt;br /&gt;
Сегодня мы рассматриваем: &lt;br /&gt;
; [[LXF171:OpenSUSE 12.3: Один из луч­ших ди­ст­ри­бу­ти­вов Linux|OpenSUSE 12.3: Один из луч­ших ди­ст­ри­бу­ти­вов Linux ]]&lt;br /&gt;
: При­гляд­ный и креп­ко сби­тый ре­лиз — в нем вас не ждут не­при­ят­ные сюр­при­зы.&lt;br /&gt;
; [[LXF171: Короли крестоносцев II |Короли крестоносцев II  ]]&lt;br /&gt;
: На­пря­жен­ная иг­ра-стра­те­гия, пол­ная се­мей­ных ин­триг и ев­ро­пей­ских за­вое­ва­ний.&lt;br /&gt;
; [[LXF171:TeamViewer: Луч­ший ин­ст­ру­мент уда­лен­но­го ра­бо­че­го сто­ла|TeamViewer: Луч­ший ин­ст­ру­мент уда­лен­но­го ра­бо­че­го сто­ла ]]&lt;br /&gt;
: Про­прие­тар­ное кросс-плат­фор­мен­ное при­ло­же­ние, иде­аль­ное и для но­вич­ков, и для зре­лых про­фи.&lt;br /&gt;
&lt;br /&gt;
==Главное в мире Linux==&lt;br /&gt;
; [[LXF171: | ]]&lt;br /&gt;
:&lt;br /&gt;
Ка­кой ди­ст­ри­бу­тив вам боль­ше под­хо­дит? Здесь &lt;br /&gt;
пол­сот­ни &lt;br /&gt;
луч­ших, &lt;br /&gt;
по ран­гам и раз­ря­дам &lt;br /&gt;
с. 26&lt;br /&gt;
&lt;br /&gt;
==Постоянные рубрики==&lt;br /&gt;
&lt;br /&gt;
; [[LXF171:Сравнение |Сравнение]]&lt;br /&gt;
: До­лой блу­зы, кис­ти и моль­бер­ты — обой­дем­ся дос­той­ным ре­дак­то­ром изо­бра­же­ний.&lt;br /&gt;
; [[LXF171:Интервью LXF|Интервью LXF]]&lt;br /&gt;
: Сы­но­вья Кэ­ти Мал­мро­уз дос­та­ли ее «го­лу­бы­ми эк­ра­на­ми смер­ти» — при­шлось ей ос­но­вать ком­па­нию по ком­пь­ю­те­рам с Linux.&lt;br /&gt;
&lt;br /&gt;
; [[LXF171: Что за штука| Что за штука]]&lt;br /&gt;
: Набрав Ubuntu Accomplishments, получаем призы сообщества.,?&lt;br /&gt;
&lt;br /&gt;
; [[LXF171:Рубрика сисадмина|Рубрика сисадмина]]&lt;br /&gt;
: Пус­тим по­рез­вить­ся Tomcat (бой­ся, мышь!), не­множ­ко по­изу­ча­ем Java и на­пи­шем серв­лет.&lt;br /&gt;
; [[LXF171:Ответы|Ответы]]&lt;br /&gt;
: Нейл Бот­вик — про по­те­рян­ные тер­ми­на­лы, телевидение на Raspberry Pi, бес­про­вод­ные се­ти, непознаваемые файлы и про­чее.&lt;br /&gt;
&lt;br /&gt;
'''Че­рез ме­сяц''' &lt;br /&gt;
&lt;br /&gt;
Что ут­ра­тил Ubuntu? Раз­бе­рем­ся, по­че­му все по­шло на­пе­ре­ко­сяк.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Заголовок=Debian для кос­ми­ческо­го но­ут­бу­ка&lt;br /&gt;
|Ширина=42%|Содержание= &lt;br /&gt;
[[Файл:205956.png|left |100px]]&lt;br /&gt;
E.m.Baldin@inp.nsk.su&lt;br /&gt;
&lt;br /&gt;
ЕВГЕНИЙ БАЛДИН&lt;br /&gt;
&lt;br /&gt;
''Упо­мя­нул PostgreSQL на за­щи­те кан­ди­дат­ской дис­сер­та­ции по фи­зи­ке эле­мен­тар­ных час­тиц.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Спа­сем кос­мос!&lt;br /&gt;
&lt;br /&gt;
От­кры­тое пись­мо Йо­на Ти­хо­го&lt;br /&gt;
&lt;br /&gt;
В аль­тер­на­тив­ной ки­бер­дис­цип­ли­не, посвященной вы­яс­не­нию, что же луч­ше — GNU/Linux или не­что про­из­ве­ден­ное в сте­нах боль­шой и мяг­кой кор­по­ра­ции, по­сто­ян­но всплы­ва­ла ин­фор­ма­ция, что во­об­ще-то в кос­мо­се на международной орбитальной стан­ции но­ут­буки астронавтов ра­бо­та­ют под управ­ле­ни­ем за­кры­той опе­ра­ци­он­ной сис­те­мы.&lt;br /&gt;
&lt;br /&gt;
Но по­ни­ма­ние со­вре­мен­ной си­туа­ции до­б­ра­лось и до NASA, где на­ко­нец-то ре­ши­ли за­ме­нить но­ут­бу­ки на станции экземплярами с пре­дус­та­нов­лен­ным ди­ст­ри­бу­ти­вом Debian GNU/Linux. Все, те­перь GNU/Linux от­ту­да не вы­тра­вить уже ни­как. Пал еще один бас­ти­он. Хо­тя стран­но ско­рее то, что он так дол­го продер­жал­ся: ведь в кос­мо­се нуж­на ста­биль­ная и на­деж­ная сис­те­ма, ко­то­рую мож­но пол­но­стью кон­тро­ли­ро­вать.&lt;br /&gt;
&lt;br /&gt;
В кос­мо­се те­перь все бу­дет хо­ро­шо, а на Зем­ле по­ка еще мно­го че­го нуж­но бу­дет сде­лать. С дру­гой сто­ро­ны, до­ве­рие к от­кры­тым про­ек­там по­сто­ян­но по­вы­ша­ет­ся, при­чем не толь­ко из-за идео­ло­гии или бес­плат­но­сти, но из-за то­го, что они эле­мен­тар­но луч­ше.&lt;br /&gt;
&lt;br /&gt;
11 мая 2013 го­да рус­ский раз­дел Ви­ки­пе­дии про­шел ру­беж в мил­ли­он ста­тей! На­род­ная Ви­ки­пе­дия — са­мая круп­ная из ко­гда-ли­бо су­ще­ст­во­вав­ших эн­цик­ло­пе­дий на рус­ском язы­ке. Она не толь­ко бес­плат­ная и сво­бод­ная — она во мно­гих ас­пек­тах луч­шая, и со вре­ме­нем трудами кол­лективного разума чис­ло та­ких ас­пек­тов бу­дет толь­ко уве­ли­чи­вать­ся.&lt;br /&gt;
}}&lt;br /&gt;
===Учебники===&lt;br /&gt;
; [[LXF171:Ин­тер­фейс ко­манд­ной стро­ки ва­ше­го Raspberry Pi|Ин­тер­фейс ко­манд­ной стро­ки ва­ше­го Raspberry Pi]]&lt;br /&gt;
: Бен Эве­рард пред­став­ля­ет ин­тер­фейс ко­манд­ной стро­ки в ру­ко­вод­стве к тер­ми­на­лу для на­чи­наю­щих.&lt;br /&gt;
; [[LXF171:Оцифровка фонотеки |Оцифровка фонотеки ]]&lt;br /&gt;
: На­ко­пи­лась го­ра ком­пакт-дис­ков, а к CD-плей­е­ру и по­дой­ти не­ко­гда? Джон Лэйн учит эти дис­ки обди­рать.&lt;br /&gt;
; [[LXF171:Кон­тро­ли­руйте отход ко сну и побудку своей сис­те­мы|Кон­тро­ли­руйте отход ко сну и побудку своей сис­те­мы]]&lt;br /&gt;
: Ваш ком­пь­ю­тер уме­ет от­ды­хать, да­же ко­гда не вы­клю­чен. Нейл Бот­вик по­яс­нит, как это ра­бо­та­ет.&lt;br /&gt;
; [[LXF171:AWS: Зна­ко­мим­ся с Об­ла­ком|AWS: Зна­ко­мим­ся с Об­ла­ком]]&lt;br /&gt;
: Роб До­бо­зи все свои вы­чис­ле­ния про­де­лы­ва­ет в уда­лен­ных да­та-цен­трах. При посредстве па­ры про­стых ша­гов вы то­же та­кое ос­вои­те.&lt;br /&gt;
; [[LXF171:Обеспечение качества ПО|Обеспечение качества ПО]]&lt;br /&gt;
: Джо­но Бэ­кон по­ка­зы­ва­ет, как за­ста­вить разрабатываемые при­ло­же­ния вы­пол­нять свои обя­зан­но­сти. Этак лучше, чем после слушать жалобы.&lt;br /&gt;
; [[LXF171:Редактор графики Inkscape|Редактор графики Inkscape]]&lt;br /&gt;
: В вас за­бро­ди­ли со­ки ху­до­же­ст­вен­ных на­клон­но­стей? При­сое­ди­няй­тесь к Ни­ку Вей­чу — он ис­сле­ду­ет ли­де­ра про­грамм век­тор­ной гра­фи­ки в Linux.&lt;br /&gt;
; [[LXF171:Unison: Доступ к своим фай­лам|Unison: Доступ к своим фай­лам]]&lt;br /&gt;
: Джеймс Лит­тон син­хро­ни­зи­ру­ет свои фай­лы на всех сво­их ком­пь­ю­те­рах, не прибегая к ус­лу­га­м треть­их лиц.&lt;br /&gt;
; [[LXF171:Раз­вер­ты­вать сер­вер|Раз­вер­ты­вать сер­вер]]&lt;br /&gt;
: На­строй­ка сер­ве­ра — шту­ка весьма слож­ная, и Ма­янк Шар­ма пред­по­чел про­сто взять да за­гру­зить го­то­вень­кий.&lt;br /&gt;
; [[LXF171:Вы­чис­лять па­рал­лель­но|Вы­чис­лять па­рал­лель­но]]&lt;br /&gt;
: Ми­ха­ил Ос­тап­ке­вич и Ев­ге­ний Бал­дин по­эле­мент­но скла­ды­ва­ют два век­то­ра под ру­ко­во­дством хост-про­грам­мы.&lt;br /&gt;
; [[LXF171: Резервное копирование|Резервное копирование]]&lt;br /&gt;
: В бес­по­кой­ст­ве за цен­ную ин­фор­ма­цию Игорь Спи­рин ор­га­ни­зу­ет ре­зерв­ное ко­пи­ро­ва­ние. И вам советует организовать.&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171</id>
		<title>LXF171</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171"/>
				<updated>2018-11-18T12:35:13Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* Постоянные рубрики */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Linux Format 171 (06), Июнь 2013&lt;br /&gt;
[[Файл:lxf171_cover.jpg |center|300px ]]&lt;br /&gt;
=Содержание:=&lt;br /&gt;
''Новинки программного и аппаратного обеспечения в описании наших экспертов''&lt;br /&gt;
{{Врезка|left|Заголовок=|Ширина=37%|Содержание=Мо­но­те­изм или дуа­лизм? А мо­жет...&lt;br /&gt;
[[Файл:Fedorchuk_CMYK_fmt.png |left |100px |thumb|'''АЛЕКСЕЙ ФЕДОРЧУК.''' Тэг &amp;lt;сар­казм&amp;gt; по умол­ча­нию, смай­ли­ки по вку­су.]]&lt;br /&gt;
&lt;br /&gt;
В про­шлой ко­лон­ке (LXF170) был дан эс­киз апо­ка­лип­ти­че­­ской кар­ти­ны — за­си­лья од­но­го-един­ст­вен­но­го ис­тин­но пра­виль­но­го Linux’а, под гре­бен­ку ко­то­ро­го по­стри­гут все ди­ст­ри­бу­ти­вы.&lt;br /&gt;
&lt;br /&gt;
Та­кой сю­жет ны­не впол­не реа­лен. Но, к сча­стью, по­ка не реа­ли­зо­ван. Ибо су­ще­ст­ву­ет аль­тер­на­ти­ва — Ubuntu, не­дав­но от­празд­но­вав­ший вы­ход сво­ей оче­ред­ной вер­сии. О нем са­мом по се­бе на­пи­са­но столь­ко, что по­вто­рять­ся не­ин­те­рес­но. От­ме­тим толь­ко не­сколь­ко мо­мен­тов, важ­ных в дан­ном кон­тек­сте.&lt;br /&gt;
&lt;br /&gt;
Пер­вое — это ди­ст­ри­бу­тив с са­мой раз­ви­той ин­фра­струк­ту­рой. Вто­рое — чис­ло «на­столь­ных» его поль­зо­ва­те­лей пре­вы­ша­ет ко­ли­че­­ст­во всех ос­таль­ных «де­ск­топ­ных ли­нук­сои­дов», вме­сте взя­тых. Третье — это ди­ст­ри­бу­тив, по­ро­див­ший не­ис­чис­ли­мое мно­же­ст­во ре­мик­сов, рес­пи­нов и про­чих кло­нов. И, на­ко­нец, чет­вер­тое и глав­ное — раз­ра­бот­чи­ки Ubuntu не со­би­ра­ют­ся от­ка­зы­вать­ся от его свое­об­ра­зия в уго­ду но­во­мод­ным тен­ден­ци­ям.&lt;br /&gt;
&lt;br /&gt;
Од­на­ко не Ubuntu еди­ным жи­во мно­го­об­ра­зие Linux’ов. Не за­бу­дем и о пра­ро­ди­теле-Debian, ко­то­рый в си­лу сво­ей «мно­го­ядер­ной» ори­ен­та­ции не мо­жет замк­нуть­ся на уни­фи­ци­ро­ван­ном Linux — и дал не­обо­зри­мый оке­ан про­из­вод­ных ди­ст­ри­бу­ти­вов. В том чис­ле та­ких лю­бо­пыт­ных, как Aptosid и Siduction, ос­но­ван­ных на «не­ста­биль­ной» вет­ке. Оче­ред­ная вер­сия Aptosid толь­ко что вы­шла. По опы­ту преж­них лет, дня­ми мож­но ожи­дать и по­яв­ле­ния све­же­го Siduction. И то­гда им бу­дет по­свя­ще­на сле­дую­щая ко­лон­ка.&lt;br /&gt;
&lt;br /&gt;
Но вот ес­ли отомрут на­ши мно­гие Linux’ы, станет... Нет, не страш­но – че­ло­ве­че­­ст­во и худ­шие бе­ды пе­ре­жи­ва­ло. Но безусловно станет скуч­но.&lt;br /&gt;
alv@posix.ru&lt;br /&gt;
&lt;br /&gt;
АЛЕКСЕЙ ФЕДОРЧУК&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
alv@posix.ru&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
==Обзоры==&lt;br /&gt;
Сегодня мы рассматриваем: &lt;br /&gt;
; [[LXF171:OpenSUSE 12.3: Один из луч­ших ди­ст­ри­бу­ти­вов Linux|OpenSUSE 12.3: Один из луч­ших ди­ст­ри­бу­ти­вов Linux ]]&lt;br /&gt;
: При­гляд­ный и креп­ко сби­тый ре­лиз — в нем вас не ждут не­при­ят­ные сюр­при­зы.&lt;br /&gt;
; [[LXF171: Короли крестоносцев II |Короли крестоносцев II  ]]&lt;br /&gt;
: На­пря­жен­ная иг­ра-стра­те­гия, пол­ная се­мей­ных ин­триг и ев­ро­пей­ских за­вое­ва­ний.&lt;br /&gt;
; [[LXF171:TeamViewer: Луч­ший ин­ст­ру­мент уда­лен­но­го ра­бо­че­го сто­ла|TeamViewer: Луч­ший ин­ст­ру­мент уда­лен­но­го ра­бо­че­го сто­ла ]]&lt;br /&gt;
: Про­прие­тар­ное кросс-плат­фор­мен­ное при­ло­же­ние, иде­аль­ное и для но­вич­ков, и для зре­лых про­фи.&lt;br /&gt;
&lt;br /&gt;
==Главное в мире Linux==&lt;br /&gt;
; [[LXF171: | ]]&lt;br /&gt;
:&lt;br /&gt;
Ка­кой ди­ст­ри­бу­тив вам боль­ше под­хо­дит? Здесь &lt;br /&gt;
пол­сот­ни &lt;br /&gt;
луч­ших, &lt;br /&gt;
по ран­гам и раз­ря­дам &lt;br /&gt;
с. 26&lt;br /&gt;
&lt;br /&gt;
==Постоянные рубрики==&lt;br /&gt;
&lt;br /&gt;
; [[LXF171:Сравнение |Сравнение]]&lt;br /&gt;
: До­лой блу­зы, кис­ти и моль­бер­ты — обой­дем­ся дос­той­ным ре­дак­то­ром изо­бра­же­ний.&lt;br /&gt;
; [[LXF171:Интервью LXF|Интервью LXF]]&lt;br /&gt;
: Сы­но­вья Кэ­ти Мал­мро­уз дос­та­ли ее «го­лу­бы­ми эк­ра­на­ми смер­ти» — при­шлось ей ос­но­вать ком­па­нию по ком­пь­ю­те­рам с Linux.&lt;br /&gt;
&lt;br /&gt;
; [[LXF171: Что за штука| Что за штука]]&lt;br /&gt;
: Набрав Ubuntu Accomplishments, получаем призы сообщества.,?&lt;br /&gt;
&lt;br /&gt;
; [[LXF171:Рубрика сисадмина|Рубрика сисадмина]]&lt;br /&gt;
: Пус­тим по­рез­вить­ся Tomcat (бой­ся, мышь!), не­множ­ко по­изу­ча­ем Java и на­пи­шем серв­лет.&lt;br /&gt;
; [[LXF171:Ответы|Ответы]]&lt;br /&gt;
: Нейл Бот­вик — про по­те­рян­ные тер­ми­на­лы, телевидение на Raspberry Pi, бес­про­вод­ные се­ти, непознаваемые файлы и про­чее.&lt;br /&gt;
&lt;br /&gt;
'''Че­рез ме­сяц''' &lt;br /&gt;
&lt;br /&gt;
Что ут­ра­тил Ubuntu? Раз­бе­рем­ся, по­че­му все по­шло на­пе­ре­ко­сяк.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Заголовок=Debian для кос­ми­ческо­го но­ут­бу­ка&lt;br /&gt;
|Ширина=42%|Содержание= &lt;br /&gt;
[[Файл:205956.png|left |100px]]&lt;br /&gt;
E.m.Baldin@inp.nsk.su&lt;br /&gt;
&lt;br /&gt;
ЕВГЕНИЙ БАЛДИН&lt;br /&gt;
&lt;br /&gt;
''Упо­мя­нул PostgreSQL на за­щи­те кан­ди­дат­ской дис­сер­та­ции по фи­зи­ке эле­мен­тар­ных час­тиц.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Спа­сем кос­мос!&lt;br /&gt;
&lt;br /&gt;
От­кры­тое пись­мо Йо­на Ти­хо­го&lt;br /&gt;
&lt;br /&gt;
В аль­тер­на­тив­ной ки­бер­дис­цип­ли­не, посвященной вы­яс­не­нию, что же луч­ше — GNU/Linux или не­что про­из­ве­ден­ное в сте­нах боль­шой и мяг­кой кор­по­ра­ции, по­сто­ян­но всплы­ва­ла ин­фор­ма­ция, что во­об­ще-то в кос­мо­се на международной орбитальной стан­ции но­ут­буки астронавтов ра­бо­та­ют под управ­ле­ни­ем за­кры­той опе­ра­ци­он­ной сис­те­мы.&lt;br /&gt;
&lt;br /&gt;
Но по­ни­ма­ние со­вре­мен­ной си­туа­ции до­б­ра­лось и до NASA, где на­ко­нец-то ре­ши­ли за­ме­нить но­ут­бу­ки на станции экземплярами с пре­дус­та­нов­лен­ным ди­ст­ри­бу­ти­вом Debian GNU/Linux. Все, те­перь GNU/Linux от­ту­да не вы­тра­вить уже ни­как. Пал еще один бас­ти­он. Хо­тя стран­но ско­рее то, что он так дол­го продер­жал­ся: ведь в кос­мо­се нуж­на ста­биль­ная и на­деж­ная сис­те­ма, ко­то­рую мож­но пол­но­стью кон­тро­ли­ро­вать.&lt;br /&gt;
&lt;br /&gt;
В кос­мо­се те­перь все бу­дет хо­ро­шо, а на Зем­ле по­ка еще мно­го че­го нуж­но бу­дет сде­лать. С дру­гой сто­ро­ны, до­ве­рие к от­кры­тым про­ек­там по­сто­ян­но по­вы­ша­ет­ся, при­чем не толь­ко из-за идео­ло­гии или бес­плат­но­сти, но из-за то­го, что они эле­мен­тар­но луч­ше.&lt;br /&gt;
&lt;br /&gt;
11 мая 2013 го­да рус­ский раз­дел Ви­ки­пе­дии про­шел ру­беж в мил­ли­он ста­тей! На­род­ная Ви­ки­пе­дия — са­мая круп­ная из ко­гда-ли­бо су­ще­ст­во­вав­ших эн­цик­ло­пе­дий на рус­ском язы­ке. Она не толь­ко бес­плат­ная и сво­бод­ная — она во мно­гих ас­пек­тах луч­шая, и со вре­ме­нем трудами кол­лективного разума чис­ло та­ких ас­пек­тов бу­дет толь­ко уве­ли­чи­вать­ся.&lt;br /&gt;
}}&lt;br /&gt;
===Учебники===&lt;br /&gt;
; [[LXF171:Ин­тер­фейс ко­манд­ной стро­ки ва­ше­го Raspberry Pi|Ин­тер­фейс ко­манд­ной стро­ки ва­ше­го Raspberry Pi]]&lt;br /&gt;
: Бен Эве­рард пред­став­ля­ет ин­тер­фейс ко­манд­ной стро­ки в ру­ко­вод­стве к тер­ми­на­лу для на­чи­наю­щих.&lt;br /&gt;
; [[LXF171:Оцифровка фонотеки |Оцифровка фонотеки ]]&lt;br /&gt;
: На­ко­пи­лась го­ра ком­пакт-дис­ков, а к CD-плей­е­ру и по­дой­ти не­ко­гда? Джон Лэйн учит эти дис­ки обди­рать.&lt;br /&gt;
; [[LXF171:Кон­тро­ли­руйте отход ко сну и побудку своей сис­те­мы|Кон­тро­ли­руйте отход ко сну и побудку своей сис­те­мы]]&lt;br /&gt;
: Ваш ком­пь­ю­тер уме­ет от­ды­хать, да­же ко­гда не вы­клю­чен. Нейл Бот­вик по­яс­нит, как это ра­бо­та­ет.&lt;br /&gt;
; [[LXF171:AWS: Зна­ко­мим­ся с Об­ла­ком|AWS: Зна­ко­мим­ся с Об­ла­ком]]&lt;br /&gt;
: Роб До­бо­зи все свои вы­чис­ле­ния про­де­лы­ва­ет в уда­лен­ных да­та-цен­трах. При посредстве па­ры про­стых ша­гов вы то­же та­кое ос­вои­те.&lt;br /&gt;
; [[LXF171:Обеспечение качества ПО|Обеспечение качества ПО]]&lt;br /&gt;
: Джо­но Бэ­кон по­ка­зы­ва­ет, как за­ста­вить разрабатываемые при­ло­же­ния вы­пол­нять свои обя­зан­но­сти. Этак лучше, чем после слушать жалобы.&lt;br /&gt;
; [[LXF171:Редактор графики Inkscape|Редактор графики Inkscape]]&lt;br /&gt;
: В вас за­бро­ди­ли со­ки ху­до­же­ст­вен­ных на­клон­но­стей? При­сое­ди­няй­тесь к Ни­ку Вей­чу — он ис­сле­ду­ет ли­де­ра про­грамм век­тор­ной гра­фи­ки в Linux.&lt;br /&gt;
; [[LXF171:Unison: Доступ к своим фай­лам|Unison: Доступ к своим фай­лам]]&lt;br /&gt;
: Джеймс Лит­тон син­хро­ни­зи­ру­ет свои фай­лы на всех сво­их ком­пь­ю­те­рах, не прибегая к ус­лу­га­м треть­их лиц.&lt;br /&gt;
; [[LXF171:Раз­вер­ты­вать сер­вер|Раз­вер­ты­вать сер­вер]]&lt;br /&gt;
: На­строй­ка сер­ве­ра — шту­ка весьма слож­ная, и Ма­янк Шар­ма пред­по­чел про­сто взять да за­гру­зить го­то­вень­кий.&lt;br /&gt;
; [[LXF171:Вы­чис­лять па­рал­лель­но|Вы­чис­лять па­рал­лель­но]]&lt;br /&gt;
: Ми­ха­ил Ос­тап­ке­вич и Ев­ге­ний Бал­дин по­эле­мент­но скла­ды­ва­ют два век­то­ра под ру­ко­во­дством хост-про­грам­мы.&lt;br /&gt;
; [[LXF171: Резервное копирование|Резервное копирование]]&lt;br /&gt;
: В бес­по­кой­ст­ве за цен­ную ин­фор­ма­цию Игорь Спи­рин ор­га­ни­зу­ет ре­зерв­ное ко­пи­ро­ва­ние. И вам советует организовать.&lt;br /&gt;
&lt;br /&gt;
==Учебники==&lt;br /&gt;
&lt;br /&gt;
В этом ме­ся­це вы на­у­чи­тесь…&lt;br /&gt;
; [[LXF171: | ]]&lt;br /&gt;
:&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171</id>
		<title>LXF171</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171"/>
				<updated>2018-11-18T12:32:27Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* Обзоры */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Linux Format 171 (06), Июнь 2013&lt;br /&gt;
[[Файл:lxf171_cover.jpg |center|300px ]]&lt;br /&gt;
=Содержание:=&lt;br /&gt;
''Новинки программного и аппаратного обеспечения в описании наших экспертов''&lt;br /&gt;
{{Врезка|left|Заголовок=|Ширина=37%|Содержание=Мо­но­те­изм или дуа­лизм? А мо­жет...&lt;br /&gt;
[[Файл:Fedorchuk_CMYK_fmt.png |left |100px |thumb|'''АЛЕКСЕЙ ФЕДОРЧУК.''' Тэг &amp;lt;сар­казм&amp;gt; по умол­ча­нию, смай­ли­ки по вку­су.]]&lt;br /&gt;
&lt;br /&gt;
В про­шлой ко­лон­ке (LXF170) был дан эс­киз апо­ка­лип­ти­че­­ской кар­ти­ны — за­си­лья од­но­го-един­ст­вен­но­го ис­тин­но пра­виль­но­го Linux’а, под гре­бен­ку ко­то­ро­го по­стри­гут все ди­ст­ри­бу­ти­вы.&lt;br /&gt;
&lt;br /&gt;
Та­кой сю­жет ны­не впол­не реа­лен. Но, к сча­стью, по­ка не реа­ли­зо­ван. Ибо су­ще­ст­ву­ет аль­тер­на­ти­ва — Ubuntu, не­дав­но от­празд­но­вав­ший вы­ход сво­ей оче­ред­ной вер­сии. О нем са­мом по се­бе на­пи­са­но столь­ко, что по­вто­рять­ся не­ин­те­рес­но. От­ме­тим толь­ко не­сколь­ко мо­мен­тов, важ­ных в дан­ном кон­тек­сте.&lt;br /&gt;
&lt;br /&gt;
Пер­вое — это ди­ст­ри­бу­тив с са­мой раз­ви­той ин­фра­струк­ту­рой. Вто­рое — чис­ло «на­столь­ных» его поль­зо­ва­те­лей пре­вы­ша­ет ко­ли­че­­ст­во всех ос­таль­ных «де­ск­топ­ных ли­нук­сои­дов», вме­сте взя­тых. Третье — это ди­ст­ри­бу­тив, по­ро­див­ший не­ис­чис­ли­мое мно­же­ст­во ре­мик­сов, рес­пи­нов и про­чих кло­нов. И, на­ко­нец, чет­вер­тое и глав­ное — раз­ра­бот­чи­ки Ubuntu не со­би­ра­ют­ся от­ка­зы­вать­ся от его свое­об­ра­зия в уго­ду но­во­мод­ным тен­ден­ци­ям.&lt;br /&gt;
&lt;br /&gt;
Од­на­ко не Ubuntu еди­ным жи­во мно­го­об­ра­зие Linux’ов. Не за­бу­дем и о пра­ро­ди­теле-Debian, ко­то­рый в си­лу сво­ей «мно­го­ядер­ной» ори­ен­та­ции не мо­жет замк­нуть­ся на уни­фи­ци­ро­ван­ном Linux — и дал не­обо­зри­мый оке­ан про­из­вод­ных ди­ст­ри­бу­ти­вов. В том чис­ле та­ких лю­бо­пыт­ных, как Aptosid и Siduction, ос­но­ван­ных на «не­ста­биль­ной» вет­ке. Оче­ред­ная вер­сия Aptosid толь­ко что вы­шла. По опы­ту преж­них лет, дня­ми мож­но ожи­дать и по­яв­ле­ния све­же­го Siduction. И то­гда им бу­дет по­свя­ще­на сле­дую­щая ко­лон­ка.&lt;br /&gt;
&lt;br /&gt;
Но вот ес­ли отомрут на­ши мно­гие Linux’ы, станет... Нет, не страш­но – че­ло­ве­че­­ст­во и худ­шие бе­ды пе­ре­жи­ва­ло. Но безусловно станет скуч­но.&lt;br /&gt;
alv@posix.ru&lt;br /&gt;
&lt;br /&gt;
АЛЕКСЕЙ ФЕДОРЧУК&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
alv@posix.ru&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
==Обзоры==&lt;br /&gt;
Сегодня мы рассматриваем: &lt;br /&gt;
; [[LXF171:OpenSUSE 12.3: Один из луч­ших ди­ст­ри­бу­ти­вов Linux|OpenSUSE 12.3: Один из луч­ших ди­ст­ри­бу­ти­вов Linux ]]&lt;br /&gt;
: При­гляд­ный и креп­ко сби­тый ре­лиз — в нем вас не ждут не­при­ят­ные сюр­при­зы.&lt;br /&gt;
; [[LXF171: Короли крестоносцев II |Короли крестоносцев II  ]]&lt;br /&gt;
: На­пря­жен­ная иг­ра-стра­те­гия, пол­ная се­мей­ных ин­триг и ев­ро­пей­ских за­вое­ва­ний.&lt;br /&gt;
; [[LXF171:TeamViewer: Луч­ший ин­ст­ру­мент уда­лен­но­го ра­бо­че­го сто­ла|TeamViewer: Луч­ший ин­ст­ру­мент уда­лен­но­го ра­бо­че­го сто­ла ]]&lt;br /&gt;
: Про­прие­тар­ное кросс-плат­фор­мен­ное при­ло­же­ние, иде­аль­ное и для но­вич­ков, и для зре­лых про­фи.&lt;br /&gt;
&lt;br /&gt;
==Главное в мире Linux==&lt;br /&gt;
; [[LXF171: | ]]&lt;br /&gt;
:&lt;br /&gt;
Ка­кой ди­ст­ри­бу­тив вам боль­ше под­хо­дит? Здесь &lt;br /&gt;
пол­сот­ни &lt;br /&gt;
луч­ших, &lt;br /&gt;
по ран­гам и раз­ря­дам &lt;br /&gt;
с. 26&lt;br /&gt;
&lt;br /&gt;
==Постоянные рубрики==&lt;br /&gt;
; [[LXF171: | ]]&lt;br /&gt;
: &lt;br /&gt;
&lt;br /&gt;
Че­рез ме­сяц 112&lt;br /&gt;
&lt;br /&gt;
Что ут­ра­тил Ubuntu? Раз­бе­рем­ся, по­че­му все по­шло на­пе­ре­ко­сяк.&lt;br /&gt;
&lt;br /&gt;
; [[LXF171:Сравнение |Сравнение]]&lt;br /&gt;
: До­лой блу­зы, кис­ти и моль­бер­ты — обой­дем­ся дос­той­ным ре­дак­то­ром изо­бра­же­ний.&lt;br /&gt;
; [[LXF171:Интервью LXF|Интервью LXF]]&lt;br /&gt;
: Сы­но­вья Кэ­ти Мал­мро­уз дос­та­ли ее «го­лу­бы­ми эк­ра­на­ми смер­ти» — при­шлось ей ос­но­вать ком­па­нию по ком­пь­ю­те­рам с Linux.&lt;br /&gt;
&lt;br /&gt;
; [[LXF171: Что за штука| Что за штука]]&lt;br /&gt;
: Набрав Ubuntu Accomplishments, получаем призы сообщества.,?&lt;br /&gt;
&lt;br /&gt;
; [[LXF171:Рубрика сисадмина|Рубрика сисадмина]]&lt;br /&gt;
: Пус­тим по­рез­вить­ся Tomcat (бой­ся, мышь!), не­множ­ко по­изу­ча­ем Java и на­пи­шем серв­лет.&lt;br /&gt;
; [[LXF171:Ответы|Ответы]]&lt;br /&gt;
: Нейл Бот­вик — про по­те­рян­ные тер­ми­на­лы, телевидение на Raspberry Pi, бес­про­вод­ные се­ти, непознаваемые файлы и про­чее.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Через месяц'''&lt;br /&gt;
Мы рас­по­ло­жим 50 луч­ших ди­ст­ри­бу­ти­вов в по­ряд­ке убы­вания.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Заголовок=Debian для кос­ми­ческо­го но­ут­бу­ка&lt;br /&gt;
|Ширина=42%|Содержание= &lt;br /&gt;
[[Файл:205956.png|left |100px]]&lt;br /&gt;
E.m.Baldin@inp.nsk.su&lt;br /&gt;
&lt;br /&gt;
ЕВГЕНИЙ БАЛДИН&lt;br /&gt;
&lt;br /&gt;
''Упо­мя­нул PostgreSQL на за­щи­те кан­ди­дат­ской дис­сер­та­ции по фи­зи­ке эле­мен­тар­ных час­тиц.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Спа­сем кос­мос!&lt;br /&gt;
&lt;br /&gt;
От­кры­тое пись­мо Йо­на Ти­хо­го&lt;br /&gt;
&lt;br /&gt;
В аль­тер­на­тив­ной ки­бер­дис­цип­ли­не, посвященной вы­яс­не­нию, что же луч­ше — GNU/Linux или не­что про­из­ве­ден­ное в сте­нах боль­шой и мяг­кой кор­по­ра­ции, по­сто­ян­но всплы­ва­ла ин­фор­ма­ция, что во­об­ще-то в кос­мо­се на международной орбитальной стан­ции но­ут­буки астронавтов ра­бо­та­ют под управ­ле­ни­ем за­кры­той опе­ра­ци­он­ной сис­те­мы.&lt;br /&gt;
&lt;br /&gt;
Но по­ни­ма­ние со­вре­мен­ной си­туа­ции до­б­ра­лось и до NASA, где на­ко­нец-то ре­ши­ли за­ме­нить но­ут­бу­ки на станции экземплярами с пре­дус­та­нов­лен­ным ди­ст­ри­бу­ти­вом Debian GNU/Linux. Все, те­перь GNU/Linux от­ту­да не вы­тра­вить уже ни­как. Пал еще один бас­ти­он. Хо­тя стран­но ско­рее то, что он так дол­го продер­жал­ся: ведь в кос­мо­се нуж­на ста­биль­ная и на­деж­ная сис­те­ма, ко­то­рую мож­но пол­но­стью кон­тро­ли­ро­вать.&lt;br /&gt;
&lt;br /&gt;
В кос­мо­се те­перь все бу­дет хо­ро­шо, а на Зем­ле по­ка еще мно­го че­го нуж­но бу­дет сде­лать. С дру­гой сто­ро­ны, до­ве­рие к от­кры­тым про­ек­там по­сто­ян­но по­вы­ша­ет­ся, при­чем не толь­ко из-за идео­ло­гии или бес­плат­но­сти, но из-за то­го, что они эле­мен­тар­но луч­ше.&lt;br /&gt;
&lt;br /&gt;
11 мая 2013 го­да рус­ский раз­дел Ви­ки­пе­дии про­шел ру­беж в мил­ли­он ста­тей! На­род­ная Ви­ки­пе­дия — са­мая круп­ная из ко­гда-ли­бо су­ще­ст­во­вав­ших эн­цик­ло­пе­дий на рус­ском язы­ке. Она не толь­ко бес­плат­ная и сво­бод­ная — она во мно­гих ас­пек­тах луч­шая, и со вре­ме­нем трудами кол­лективного разума чис­ло та­ких ас­пек­тов бу­дет толь­ко уве­ли­чи­вать­ся.&lt;br /&gt;
}}&lt;br /&gt;
Учебники&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Заголовок=Debian для кос­ми­ческо­го но­ут­бу­ка&lt;br /&gt;
|Ширина=42%|Содержание= &lt;br /&gt;
[[Файл:205956.png|left |100px]]&lt;br /&gt;
E.m.Baldin@inp.nsk.su&lt;br /&gt;
&lt;br /&gt;
ЕВГЕНИЙ БАЛДИН&lt;br /&gt;
&lt;br /&gt;
''Упо­мя­нул PostgreSQL на за­щи­те кан­ди­дат­ской дис­сер­та­ции по фи­зи­ке эле­мен­тар­ных час­тиц.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Спа­сем кос­мос!&lt;br /&gt;
&lt;br /&gt;
От­кры­тое пись­мо Йо­на Ти­хо­го&lt;br /&gt;
&lt;br /&gt;
В аль­тер­на­тив­ной ки­бер­дис­цип­ли­не, посвященной вы­яс­не­нию, что же луч­ше — GNU/Linux или не­что про­из­ве­ден­ное в сте­нах боль­шой и мяг­кой кор­по­ра­ции, по­сто­ян­но всплы­ва­ла ин­фор­ма­ция, что во­об­ще-то в кос­мо­се на международной орбитальной стан­ции но­ут­буки астронавтов ра­бо­та­ют под управ­ле­ни­ем за­кры­той опе­ра­ци­он­ной сис­те­мы.&lt;br /&gt;
&lt;br /&gt;
Но по­ни­ма­ние со­вре­мен­ной си­туа­ции до­б­ра­лось и до NASA, где на­ко­нец-то ре­ши­ли за­ме­нить но­ут­бу­ки на станции экземплярами с пре­дус­та­нов­лен­ным ди­ст­ри­бу­ти­вом Debian GNU/Linux. Все, те­перь GNU/Linux от­ту­да не вы­тра­вить уже ни­как. Пал еще один бас­ти­он. Хо­тя стран­но ско­рее то, что он так дол­го продер­жал­ся: ведь в кос­мо­се нуж­на ста­биль­ная и на­деж­ная сис­те­ма, ко­то­рую мож­но пол­но­стью кон­тро­ли­ро­вать.&lt;br /&gt;
&lt;br /&gt;
В кос­мо­се те­перь все бу­дет хо­ро­шо, а на Зем­ле по­ка еще мно­го че­го нуж­но бу­дет сде­лать. С дру­гой сто­ро­ны, до­ве­рие к от­кры­тым про­ек­там по­сто­ян­но по­вы­ша­ет­ся, при­чем не толь­ко из-за идео­ло­гии или бес­плат­но­сти, но из-за то­го, что они эле­мен­тар­но луч­ше.&lt;br /&gt;
&lt;br /&gt;
11 мая 2013 го­да рус­ский раз­дел Ви­ки­пе­дии про­шел ру­беж в мил­ли­он ста­тей! На­род­ная Ви­ки­пе­дия — са­мая круп­ная из ко­гда-ли­бо су­ще­ст­во­вав­ших эн­цик­ло­пе­дий на рус­ском язы­ке. Она не толь­ко бес­плат­ная и сво­бод­ная — она во мно­гих ас­пек­тах луч­шая, и со вре­ме­нем трудами кол­лективного разума чис­ло та­ких ас­пек­тов бу­дет толь­ко уве­ли­чи­вать­ся.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Учебники===&lt;br /&gt;
; [[LXF171:Ин­тер­фейс ко­манд­ной стро­ки ва­ше­го Raspberry Pi|Ин­тер­фейс ко­манд­ной стро­ки ва­ше­го Raspberry Pi]]&lt;br /&gt;
: Бен Эве­рард пред­став­ля­ет ин­тер­фейс ко­манд­ной стро­ки в ру­ко­вод­стве к тер­ми­на­лу для на­чи­наю­щих.&lt;br /&gt;
; [[LXF171:Оцифровка фонотеки |Оцифровка фонотеки ]]&lt;br /&gt;
: На­ко­пи­лась го­ра ком­пакт-дис­ков, а к CD-плей­е­ру и по­дой­ти не­ко­гда? Джон Лэйн учит эти дис­ки обди­рать.&lt;br /&gt;
; [[LXF171:Кон­тро­ли­руйте отход ко сну и побудку своей сис­те­мы|Кон­тро­ли­руйте отход ко сну и побудку своей сис­те­мы]]&lt;br /&gt;
: Ваш ком­пь­ю­тер уме­ет от­ды­хать, да­же ко­гда не вы­клю­чен. Нейл Бот­вик по­яс­нит, как это ра­бо­та­ет.&lt;br /&gt;
; [[LXF171:AWS: Зна­ко­мим­ся с Об­ла­ком|AWS: Зна­ко­мим­ся с Об­ла­ком]]&lt;br /&gt;
: Роб До­бо­зи все свои вы­чис­ле­ния про­де­лы­ва­ет в уда­лен­ных да­та-цен­трах. При посредстве па­ры про­стых ша­гов вы то­же та­кое ос­вои­те.&lt;br /&gt;
&lt;br /&gt;
; [[LXF171:Обеспечение качества ПО|Обеспечение качества ПО]]&lt;br /&gt;
: Джо­но Бэ­кон по­ка­зы­ва­ет, как за­ста­вить разрабатываемые при­ло­же­ния вы­пол­нять свои обя­зан­но­сти. Этак лучше, чем после слушать жалобы.&lt;br /&gt;
&lt;br /&gt;
; [[LXF171:Редактор графики Inkscape|Редактор графики Inkscape]]&lt;br /&gt;
: В вас за­бро­ди­ли со­ки ху­до­же­ст­вен­ных на­клон­но­стей? При­сое­ди­няй­тесь к Ни­ку Вей­чу — он ис­сле­ду­ет ли­де­ра про­грамм век­тор­ной гра­фи­ки в Linux.&lt;br /&gt;
&lt;br /&gt;
; [[LXF171:Unison: Доступ к своим фай­лам|Unison: Доступ к своим фай­лам]]&lt;br /&gt;
: Джеймс Лит­тон син­хро­ни­зи­ру­ет свои фай­лы на всех сво­их ком­пь­ю­те­рах, не прибегая к ус­лу­га­м треть­их лиц.&lt;br /&gt;
; [[LXF171:Раз­вер­ты­вать сер­вер|Раз­вер­ты­вать сер­вер]]&lt;br /&gt;
: На­строй­ка сер­ве­ра — шту­ка весьма слож­ная, и Ма­янк Шар­ма пред­по­чел про­сто взять да за­гру­зить го­то­вень­кий.&lt;br /&gt;
; [[LXF171:Вы­чис­лять па­рал­лель­но|Вы­чис­лять па­рал­лель­но]]&lt;br /&gt;
: Ми­ха­ил Ос­тап­ке­вич и Ев­ге­ний Бал­дин по­эле­мент­но скла­ды­ва­ют два век­то­ра под ру­ко­во­дством хост-про­грам­мы.&lt;br /&gt;
; [[LXF171: Резервное копирование|Резервное копирование]]&lt;br /&gt;
: В бес­по­кой­ст­ве за цен­ную ин­фор­ма­цию Игорь Спи­рин ор­га­ни­зу­ет ре­зерв­ное ко­пи­ро­ва­ние. И вам советует организовать.&lt;br /&gt;
; [[LXF171:|LXF171:]]&lt;br /&gt;
&lt;br /&gt;
==Учебники==&lt;br /&gt;
&lt;br /&gt;
В этом ме­ся­це вы на­у­чи­тесь…&lt;br /&gt;
; [[LXF171: | ]]&lt;br /&gt;
:&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:_%D0%A0%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5</id>
		<title>LXF171: Резервное копирование</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:_%D0%A0%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5"/>
				<updated>2018-11-18T12:30:34Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: Новая страница: «Категория: Учебники == Bacula: Ре­зерв­ное ко­пи­ро­ва­ние == ''Игорь Спи­рин ус­та­нав­ли…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Учебники]]&lt;br /&gt;
== Bacula: Ре­зерв­ное ко­пи­ро­ва­ние ==&lt;br /&gt;
''Игорь Спи­рин ус­та­нав­ли­ва­ет сер­вер сис­те­мы ре­зерв­но­го ко­пи­ро­ва­ния.''&lt;br /&gt;
[[Файл:Spirin_Igor_fmt.png |left | thumb|100px|'''Наш эксперт''' Игорь Спи­рин — ве­ду­щий ин­же­нер ООО «Га­зин­форм­сер­вис». Его ув­ле­че­ние GNU/Linux со вре­ме­нем пе­ре­рос­ло в ин­те­рес­ную ра­бо­ту. В сво­бод­ное вре­мя лю­бит что-ни­будь «све­жень­кое» по­ста­вить из вет­ки Debian unstable...&lt;br /&gt;
]] &lt;br /&gt;
На­стро­ен­ная IT-ин­фра­струк­ту­ра пред­при­ятия на­деж­но ра­бо­та­ет? У вас поя­ви­лось сво­бод­ное вре­мя? Есть не­до­заг­ру­жен­ный Linux-сер­вер? Са­мое вре­мя соз­дать сис­те­му ре­зерв­но­го ко­пи­ро­ва­ния. Возь­мем за ос­но­ву од­но­го из пред­ста­ви­те­лей сво­бод­но­го про­грамм­но­го обес­пе­че­ния — Bacula.&lt;br /&gt;
&lt;br /&gt;
По­че­му, соб­ст­вен­но, Bacula, а не дру­гое ПО? Вот ар­гу­мен­ты в за­щи­ту Bacula:&lt;br /&gt;
&lt;br /&gt;
» Bacula яв­ля­ет­ся кросс-плат­фор­мен­ной се­те­вой кли­ент-сер­вер­ной про­грам­мой ре­зерв­но­го ко­пи­ро­ва­ния, ис­поль­зую­щей для пе­ре­да­чи дан­ных про­то­кол TCP/IP.&lt;br /&gt;
&lt;br /&gt;
» Ар­хи­тек­ту­ра ПО име­ет мо­дуль­ную струк­ту­ру, в ней из­на­чаль­но за­ло­же­на воз­мож­ность мас­шта­би­ро­ва­ния.&lt;br /&gt;
&lt;br /&gt;
» Про­ект Bacula су­ще­ст­ву­ет дос­та­точ­но дав­но — «дет­ские бо­лез­ни» из­жи­ты.&lt;br /&gt;
&lt;br /&gt;
Пред­ла­гае­мая струк­ту­ра сис­те­мы ре­зерв­но­го ко­пи­ро­ва­ния на ос­но­ве СПО Bacula при­во­дит­ся на рис. 1.&lt;br /&gt;
[[Файл:1_sxema_opt.jpeg |left | thumb|500px|&amp;gt; Рис. 1. Струк­ту­ра сис­те­мы ре­зерв­но­го ко­пи­ро­ва­ния.]] &lt;br /&gt;
Оз­на­ко­мим­ся с ком­по­нен­та­ми:&lt;br /&gt;
&lt;br /&gt;
» Сис­те­ма управ­ле­ния ба­зы дан­ных (СУБД) — не­об­хо­ди­мый ком­по­нент для ра­бо­ты Bacula.&lt;br /&gt;
&lt;br /&gt;
» Catalog daemon — за­да­вае­мые па­ра­мет­ры ра­бо­ты на­хо­дят­ся в сек­ции Catalog {…} фай­ла /etc/bacula/bacula-dir.conf.&lt;br /&gt;
&lt;br /&gt;
» Director daemon (DD) — го­во­ря му­зы­каль­ным язы­ком, это «ди­ри­жер», ко­то­рый ру­ко­во­дит сла­жен­ной ра­бо­той ком­по­нен­тов со­глас­но на­строй­кам в /etc/bacula/bacula-dir.conf.&lt;br /&gt;
&lt;br /&gt;
» Storage — фи­зи­че­­ские уст­рой­ст­ва хра­не­ния ин­фор­ма­ции, как дис­ко­вые, так и лен­точ­ные. Их па­ра­мет­ры и пе­ре­чень про­пи­сы­ва­ют­ся в сек­ции Device {…} фай­ла /etc/bacula/bacula-sd.conf.&lt;br /&gt;
&lt;br /&gt;
» Storage daemon (SD) — задаются в файле /etc/bacula/bacula-sd.conf.&lt;br /&gt;
&lt;br /&gt;
» File daemon (FD) — взаи­мо­дей­ст­ву­ет с сер­ве­ром с со­от­вет­ст­вии с фай­лом /bacula-fd.conf.&lt;br /&gt;
&lt;br /&gt;
Бег­ло изу­чив ар­хи­тек­ту­ру сис­те­мы, при­сту­пим к глав­но­му: ус­та­нов­ке и ба­зо­вой на­строй­ке ком­по­нен­тов Bacula. Ус­та­нав­ли­вать бу­дем Bacula на сер­вер с ОС Debian (вы­пуск stable). От име­ни root выполним в команду&lt;br /&gt;
&lt;br /&gt;
apt-get update &amp;amp;&amp;amp; apt-get -y install bacula bacula-director-mysql bacula-sd-mysql bacula-fd bacula-doc&lt;br /&gt;
&lt;br /&gt;
В процессе установки инсталлятор установит СУБД MySQL, если ранее она не была установлена, и попросит задать пароль администратора СУБД. Далее идет процесс настройки пакета bacula-director-mysql; указываем пароль для DD, используемый для входа в СУБД. Вот, в общем-то, и все — инсталляция завершена. Проверим состояние компонентов ПО Bacula, выполнив команды service bacula-director status (состояние DD — “bacula-dir is running”); service bacula -sd status (состояние SD — “bacula-sd is running”); service bacula -fd status (состояние File daemon — “bacula-fd is running”).&lt;br /&gt;
&lt;br /&gt;
Получив на выходе заветное “... is running”, приступим к настройке нашего сервера системы резервного копирования.&lt;br /&gt;
&lt;br /&gt;
Настройку начнем с Storage daemon’а — файла /etc/bacula/bacula-sd.conf. Поправим вначале секцию Storage {…}, сделав параметр SDAddress неактивным подстановкой в начало строки символа #, а затем секцию Device {…} — задав значение параметра Archive Device, указав путь к файлу устройства (/dev/...) либо каталог, в котором, собственно, и будут размещаться наши резервные копии. На рис. 2 показан пример. После внесения правок в файл параметров SD сохраняем изменения и проверяем их корректность командой&lt;br /&gt;
&lt;br /&gt;
bacula-sd -c /etc/bacula/bacula-sd.conf -t&lt;br /&gt;
&lt;br /&gt;
Если в результате вышеуказанной команды на экране не по­явились ошибки, значит, базовая настройка SD благополучно завершена, и самое время настроить другой компонент Bacula — DD. Так что зай­мем­ся правкой конфигурационного файла /etc/bacula/bacula-dir.conf нашего сервера резервного копирования.&lt;br /&gt;
&lt;br /&gt;
Начнем с секции Director {…}, где присвоим новое, явно большее значение Maximum Concurrent Jobs; в нашем случае для всех компонентов выставим значение, равное 40. Далее параметр DirAddress сделаем неактивным, поставив в начале строки символ #, и тем самым разрешим взаимодействовать DD с инструмен­тами управления bconsole и BAT (Bacula Administration Tool), подключаемыми как локально, так и удаленно.&lt;br /&gt;
&lt;br /&gt;
Да, и еще, не позабудем в каждой секции Pool {…} добавлять переменную Label Format = «LabelName-${Year}_${Month}_${Day}».&lt;br /&gt;
&lt;br /&gt;
После внесенных правок в файл параметров DD, со­хра­ним изменения и проверим их корректность командой&lt;br /&gt;
&lt;br /&gt;
bacula-dir -c /etc/bacula/bacula-dir.conf -t&lt;br /&gt;
&lt;br /&gt;
Далее выполним перезапуск компонентов Bacula командой&lt;br /&gt;
&lt;br /&gt;
service bacula-sd restart &amp;amp;&amp;amp; service bacula-director restart&lt;br /&gt;
&lt;br /&gt;
Основной фрагмент файла настроек DD приведен на рис. 3. Цветом выделены настраиваемые параметры.&lt;br /&gt;
&lt;br /&gt;
Да­лее сле­ду­ет установить и настроить инструмент управления Bacula — Bacula Administration Tool (BAT).&lt;br /&gt;
&lt;br /&gt;
===Установка BAT===&lt;br /&gt;
&lt;br /&gt;
Установку ВАТ выполняется на том же компьютере, с которого мы в дальнейшем собираемся управлять системой резервного копирования.&lt;br /&gt;
&lt;br /&gt;
Установку BAT под Linux делает команда apt-get install bacula-console-qt; что­бы ус­та­но­вить BAT под ОС семейства Windows, спер­ва скачаем последнюю версию инсталлятора по ссылке http://sourceforge.net/projects/bacula/files/Win32_64/ и за­пус­тим ее. По ходу установки BAT инсталлятор запросит параметры DD, находящиеся в секции Director {…} файла /etc/bacula/bacula-dir.conf. Установка под обеими ОС проста и дополнительных пояснений обычно не требует.&lt;br /&gt;
&lt;br /&gt;
После инсталляции сле­ду­ет настроить BAT — под ОС семейства Linux правим файл /etc/bacula/bat.conf. Покончив с настройкой, запустим BAT; и если в процессе настройки были заданы верные значения параметров, то на экране монитора появится окно консоли управления Bacula, с сообщением об удачном подключении к DD. Вид консоли BAT показан на рис. 4.&lt;br /&gt;
&lt;br /&gt;
Далее, используя BAT, проверим выполнение резервного копирования файлов СУБД нашего сервера резервного копирования, с помощью установленного ранее пакета bacula-fd.&lt;br /&gt;
&lt;br /&gt;
В открытой консоли управления BAT вы­бе­ри­те и откройте страницу Jobs [За­да­ния], в поле открывшейся страницы вы­бе­ри­те задание BackupCatalog, правой клавишей мыши вы­бе­ри­те подпункт Run Job [За­пус­тить за­да­ние] и в появившемся окне вы­бе­ри­те нужные параметры (по умолчанию) и нажать OK. Для контроля выполнения ранее выбранного задания перейдем на страницу Jobs Run [За­пу­щен­ные за­да­ния] и просмотрим состояние задания BackupCatalog. Описанные действия пояснены на рис. 5 – 7.&lt;br /&gt;
&lt;br /&gt;
Если действия по установке и базовой настройке выполнялись правильно, то результат не заставит се­бя ждать — “Completed successfully [Ус­пеш­ное за­вер­ше­ние]”.&lt;br /&gt;
&lt;br /&gt;
Успешно создав резервную копию сервера системы резервного копирования, приступим к установке и настройке дополнительного инструмента мониторинга выполнения заданий резервного копирования — Bacula demon status monitor или просто traymonitor.&lt;br /&gt;
&lt;br /&gt;
Установка traymonitor:&lt;br /&gt;
&lt;br /&gt;
» Под ОС семейства Linux устанавливаем пакет bacula-traymonitor командой apt-get install bacula-traymonitor;&lt;br /&gt;
&lt;br /&gt;
» Под ОС семейства Windows установка выполняется анало­гично установке BAT, только в меню инсталлятора отмечается компонент traymonitor.&lt;br /&gt;
&lt;br /&gt;
Но установка — это еще не все; на­до будет настроить параметры подключения к DD и SD. Параметры подключений к DD берем из секции Console {…} файла /etc/bacula/bacula-dir.conf, а для подключения к SD из секции Director {…} c активным параметром Monitor файла /etc/bacula/bacula-sd.conf. После выполнения вышеуказанных действий запускаем traymonitor и, в случае успеха, наблюдаем значок дискеты, повисший в сис­тем­ном лот­ке на рабочем столе, и при необходимости разворачиваем окно консоли. Вид развернутой консоли traymonitor’а показан на рис. 8.&lt;br /&gt;
&lt;br /&gt;
Продолжение следует... далее нам предстоят установка FD на ОС Windows, Solaris и AIX и создание правил резервного копирования, а также выработка практиче­ских рекомендаций по разбивке пулов, томов. |&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:1_sxema_opt.jpeg</id>
		<title>Файл:1 sxema opt.jpeg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:1_sxema_opt.jpeg"/>
				<updated>2018-11-18T12:30:16Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Spirin_Igor_fmt.png</id>
		<title>Файл:Spirin Igor fmt.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Spirin_Igor_fmt.png"/>
				<updated>2018-11-18T12:24:12Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:%D0%92%D1%8B%C2%AD%D1%87%D0%B8%D1%81%C2%AD%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D0%B0%C2%AD%D1%80%D0%B0%D0%BB%C2%AD%D0%BB%D0%B5%D0%BB%D1%8C%C2%AD%D0%BD%D0%BE</id>
		<title>LXF171:Вы­чис­лять па­рал­лель­но</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:%D0%92%D1%8B%C2%AD%D1%87%D0%B8%D1%81%C2%AD%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D0%B0%C2%AD%D1%80%D0%B0%D0%BB%C2%AD%D0%BB%D0%B5%D0%BB%D1%8C%C2%AD%D0%BD%D0%BE"/>
				<updated>2018-11-18T12:19:18Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* OpenCL: Стан­дарт для бу­ду­ще­го */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Учебники]]&lt;br /&gt;
== OpenCL: Стан­дарт для бу­ду­ще­го ==&lt;br /&gt;
''Ми­ха­ил Ос­тап­ке­вич и Ев­ге­ний Бал­дин оты­ска­ли спо­соб при­звать не­сколь­ко раз­но­тип­ных вы­чис­ли­те­лей под зна­ме­на од­ной про­грам­мы''.&lt;br /&gt;
[[Файл:Lxf168Exper.png  |left | thumb|100px|'''Наш эксперт''' Михаил Остапкевич &lt;br /&gt;
Романтик, очарованный компьютерами и создаваемыми в них идеальными мирами; верит, что сложнейшие новые технологии могут и должны служить во благо человечеству.]] &lt;br /&gt;
[[Файл:Lxf168Expert2.png |left | thumb|100px|'''Наш эксперт''' Ев­ге­ний Бал­дин Физик, который действительно знает, что такое нехватка вычислительных ресурсов.]] &lt;br /&gt;
Вы пла­ни­руе­те за­гру­зить на­гло про­стаи­ваю­щие про­цес­со­ры, но еще не оп­ре­де­ли­лись с лю­би­мой ар­хи­тек­ту­рой? Вы не про­тив за­гру­зить ви­део­кар­ту, при­чем не обя­за­тель­но ви­део­кар­ту фир­мы N, а в пер­спек­ти­ве пе­ре­не­сти про­грам­му на эн­тер­прайз­ный Intel Xeon Phi и ин­ди-про­цес­сор Epiphany, или про­шить ее код в про­грам­ми­руе­мую ло­ги­че­­скую ин­те­граль­ную схе­му — ПЛИС? То­гда OpenCL — ваш вы­бор, а кро­ме то­го, свет­лое бу­ду­щее па­рал­лель­но­го про­грам­ми­ро­ва­ния!&lt;br /&gt;
&lt;br /&gt;
===От­ку­да и за­чем все это?===&lt;br /&gt;
&lt;br /&gt;
OpenCL (Open Computing Language) — это стан­дарт, пред­ло­жен­ный Apple в 2008 го­ду. Как и MPI, он по­зво­ля­ет соз­да­вать плат­фор­мен­но-не­за­ви­си­мые па­рал­лель­ные про­грам­мы. Но ес­ли MPI ори­ен­ти­ро­ван на муль­ти­ком­пь­ю­те­ры, то OpenCL рас­счи­тан на муль­ти­про­цес­со­ры (на­при­мер, SMP-сис­те­мы или сис­те­мы с мно­го­ядер­ны­ми про­цес­со­ра­ми), GPU и все­воз­мож­ные ус­ко­ри­те­ли. Идея Apple за­клю­ча­лась в том, что­бы ра­зо­гнать свой гра­фи­че­­ский ин­тер­фейс с по­мо­щью про­стаи­ваю­щих спе­циа­ли­зи­ро­ван­ных мощ­но­стей во вре­мя не­иг­ро­вой дея­тель­но­сти. Чуть по­го­дя к Apple ре­ши­ла примк­нуть фир­ма AMD, у ко­то­рой на тот мо­мент уже был свой соб­ст­вен­ный ве­ло­си­пед Close To Metal, ко­то­рый она уби­ла в поль­зу от­кры­то­го стан­дар­та. Те­перь OpenCL офи­ци­аль­но под­дер­жи­ва­ют фак­ти­че­­ски все ос­нов­ные про­из­во­ди­те­ли вы­чис­ли­тель­ной тех­ни­ки, вклю­чая IBM, Intel, AMD и NVIDIA. Раз­ра­бот­кой OpenCL за­ни­ма­ет­ся не­ком­мер­че­­ская не­за­ви­си­мая ор­га­ни­за­ция Khronos Group (http://www.khronos.org/).&lt;br /&gt;
&lt;br /&gt;
Есть не­сколь­ко реа­ли­за­ций OpenCL для раз­лич­ных вы­чис­ли­те­лей: CPU (IA-32, AMD64, ARM, STL Cell, Intel Xeon Phi), GPU (NVIDIA, AMD, S3 Imagination Technologies PowerVR) и да­же ПЛИС (Xilinx, Altera). На­род­ная су­пер­ком­пь­ю­тер­ная ар­хи­тек­ту­ра Epiphany от Adapteva так­же име­ет SDK OpenCL. В пер­спек­ти­ве поя­вят­ся реа­ли­за­ции для про­цес­со­ров ZiiLabs ZMS-40 и циф­ро­вых сиг­на­ль­ных про­цес­со­ров TI. OpenCL по­зво­ля­ет ра­бо­тать как с па­рал­ле­лиз­мом по дан­ным, ко­гда од­на и та же опе­ра­ция од­но­вре­мен­но при­ме­ня­ет­ся к раз­ным ком­плек­там дан­ных, так и с па­рал­ле­лиз­мом на уров­не за­дач, ко­гда не­за­ви­си­мые по­то­ки ко­манд ра­бо­та­ют од­но­вре­мен­но и вы­пол­ня­ют раз­ные функ­ции.&lt;br /&gt;
&lt;br /&gt;
В ми­ре со­вре­мен­ных вы­чис­ли­тель­ных сис­тем есть весь­ма раз­но­об­раз­ный и не­од­но­род­ный на­бор вы­чис­ли­те­лей. Во-пер­вых, есть мощ­ные цен­траль­ные про­цес­со­ры, спо­соб­ные вы­пол­нять од­но­вре­мен­но не­боль­шое чис­ло по­то­ков ко­манд (ни­тей, threads). Так­же лег­ко дос­туп­ны гра­фи­че­­ские про­цес­со­ры, ко­то­рые мож­но ис­поль­зо­вать для сче­та. Счет на чис­ло ни­тей в со­вре­мен­ных гра­фи­че­­ских про­цес­со­рах идет уже на ты­ся­чи, хоть они и не та­кие «тол­стые», как ни­ти цен­траль­но­го про­цес­со­ра. Есть и дру­гие разно­об­раз­ные спе­циа­ли­зи­ро­ван­ные вы­чис­ли­тель­ные ус­ко­ри­тели (ак­се­ле­ра­то­ры) — на­при­мер, ПЛИС’ы (FPGA) или сиг­наль­ные про­цес­со­ры (DSP).&lt;br /&gt;
&lt;br /&gt;
Да­же в со­вер­шен­но обыч­ном ком­пь­ю­те­ре уже до­воль­но дав­но со­жи­тель­ст­ву­ют не­сколь­ко раз­но­тип­ных вы­чис­ли­те­лей — как ми­ни­мум один про­цес­сор и гра­фи­че­­ская кар­та. А ес­ли по­смот­реть на са­мые вы­со­ко­про­из­во­ди­тель­ные кла­сте­ры, то раз­ме­ще­ние в их уз­лах не­сколь­ких мно­го­ядер­ных цен­траль­ных про­цес­со­ров и не­сколь­ких GPU ста­ло те­перь уже прак­ти­че­­ски стан­дарт­ным. Но на этом эво­лю­ция не за­кон­чи­лась. Сле­дую­щий шаг на пу­ти ус­ко­ре­ния ви­дит­ся в до­бав­ле­нии в вы­чис­ли­тель­ный узел ПЛИС’ов, ло­ги­ка ра­бо­ты ко­то­рых мо­жет мно­го­крат­но пе­ре­про­грам­ми­ро­вать­ся, а дос­ти­жи­мая про­из­во­ди­тель­ность вы­чис­ле­ний в ря­де по­лез­ных слу­ча­ев на по­ря­док вы­ше да­же чем у вы­со­ко­про­из­во­ди­тель­ных GPU.&lt;br /&gt;
&lt;br /&gt;
Ра­нее в рам­ках дан­ной се­рии бы­ло рас­ска­за­но о тех­но­ло­гии CUDA. Эта тех­но­ло­гия по­зво­ля­ет эф­фек­тив­но ис­поль­зо­вать для па­рал­лель­но­го сче­та ши­ро­кий спектр уст­ройств GPU от NVIDIA пря­мо здесь и сей­час. Но как быть, ес­ли у нас есть гра­фи­че­­ский про­цес­сор от дру­го­го про­из­во­ди­те­ля? Или что де­лать, ес­ли мы хо­тим, что­бы на­ша про­грам­ма без пе­ре­дел­ки мог­ла счи­тать не толь­ко на GPU, но и на яд­рах цен­траль­но­го про­цес­со­ра?&lt;br /&gt;
&lt;br /&gt;
Как-то со­вер­шен­но не хо­чет­ся пе­ре­пи­сы­вать про­грам­му за­но­во ка­ж­дый раз, ко­гда объ­яв­ля­ет­ся но­вый вид вы­чис­ли­те­лей. OpenCL в ка­кой-то ме­ре по­зво­ля­ет из­бе­жать это­го. Цель соз­да­ния OpenCL — дать еди­ную тех­но­ло­гию по­строе­ния про­грамм на раз­но­род­ных вы­чис­ли­те­лях. На­пи­сав толь­ко од­ну про­грам­му, мож­но за­пус­тить ее фак­ти­че­­ски на всех па­рал­лель­ных уст­рой­ст­вах. А ес­ли сей­час это­го сде­лать нель­зя — то это не на­дол­го. Бо­лее то­го, OpenCL по­зво­лит за­пус­тить про­грам­му, на­пи­сан­ную се­го­дня, на вы­чис­ли­те­ле, ко­то­рый соз­дадут в бу­ду­щем, да­же без необ­хо­ди­мо­сти пе­ре­ком­пи­ли­ро­вать ее за­но­во! Сле­ду­ет, од­на­ко, осоз­на­вать, что хоть пра­виль­но «твик­ну­тая» про­грам­ма под со­от­вет­ст­вую­щую ар­хи­тек­ту­ру не ус­ту­па­ет по про­из­во­ди­тель­но­сти той же CUDA, но при пе­ре­но­се на прин­ци­пи­аль­но дру­гой вы­чис­ли­тель с другой про­из­во­ди­тель­но­стью без­ус­лов­но мо­гут воз­ник­нуть серь­ез­ные про­бле­мы.&lt;br /&gt;
&lt;br /&gt;
===Сло­ва­рик===&lt;br /&gt;
&lt;br /&gt;
В OpenCL ап­па­рат­ное обес­пе­че­ние под­раз­де­ля­ет­ся на две час­ти: од­на «хост-ма­ши­на» и од­но или не­сколь­ко уст­ройств OpenCL — при­мер­но так, как это по­ка­за­но на ри­сун­ке. Хост-ма­ши­на — это обыч­ный ком­пь­ю­тер, на цен­траль­ном про­цес­со­ре ко­то­ро­го вы­пол­ня­ет­ся про­грам­ма, ко­ор­ди­ни­рую­щая ход вы­чис­ле­ний. Уст­рой­ст­во OpenCL — это уст­рой­ст­во, ис­поль­зуе­мое для вы­пол­не­ния вы­чис­ле­ний. В ка­че­­ст­ве уст­рой­ст­ва OpenCL мо­гут, на­при­мер, ис­поль­зо­вать­ся GPU или сам про­цес­сор хост-ма­ши­ны.&lt;br /&gt;
&lt;br /&gt;
Уст­рой­ст­во OpenCL со­сто­ит из вы­чис­ли­тель­ных мо­ду­лей [compute unit], ка­ж­дый из ко­то­рых мо­жет вы­пол­нять свой по­ток ко­манд. Вы­чис­ли­тель­ный мо­дуль со­дер­жит об­ра­ба­ты­ваю­щие эле­мен­ты (ОЭ), ка­ж­дый из ко­то­рых од­но­вре­мен­но с ос­таль­ны­ми об­ра­ба­ты­ваю­щим эле­мен­та­ми об­ра­ба­ты­ва­ет свой ком­плект дан­ных.&lt;br /&gt;
&lt;br /&gt;
Ес­ли в ка­че­­ст­ве OpenCL-уст­рой­ст­ва ис­поль­зу­ет­ся GPU, то в нем мо­жет быть 8 – 16 вы­чис­ли­тель­ных мо­ду­лей, ка­ж­дый из ко­то­рых со­дер­жит до не­сколь­ких де­сят­ков об­ра­ба­ты­ваю­щих эле­мен­тов. Ес­ли в ка­че­­ст­ве OpenCL-уст­рой­ст­ва ис­поль­зу­ет­ся CPU, то чис­ло вы­чис­ли­тель­ных мо­ду­лей в нем сов­па­да­ет с чис­лом ядер, или в два раза боль­ше не­го, ес­ли в яд­ре под­дер­жи­ва­ет­ся тех­но­ло­гия HyperThreading, а в ка­ж­дом та­ком вы­чис­ли­тель­ном мо­ду­ле толь­ко один об­ра­ба­ты­ваю­щий эле­мент.&lt;br /&gt;
&lt;br /&gt;
OpenCL-при­ло­же­ние со­сто­ит из двух час­тей: хост-про­грам­мы и счет­ной про­грам­мы. Хост-про­грам­ма иг­ра­ет цен­траль­ную роль. Она соз­да­ет оче­ре­ди для вы­пол­не­ния вы­чис­ле­ний счет­ной про­грам­мой, ини­ции­ру­ет пе­ре­ме­ще­ния дан­ных ме­ж­ду хост-ма­ши­ной и уст­рой­ст­ва­ми OpenCL, а так­же за­пус­ка­ет на ис­пол­не­ние функ­ции счет­ной про­грам­мы. Счет­ная про­грам­ма иг­ра­ет под­чи­нен­ную роль. Она со­сто­ит из на­бо­ра функ­ций, про­из­во­дя­щих вы­чис­ле­ния. Те ее функ­ции, ко­то­рые мож­но вы­зы­вать из хост-про­грам­мы, на­зы­ва­ют яд­ра­ми. Ини­циа­то­ром за­пус­ка яд­ра на ис­пол­не­ние обыч­но вы­сту­па­ет хост-про­грам­ма. При этом за­прос на его за­пуск раз­ме­ща­ет­ся в оче­ре­ди. Ти­пич­ный по­ря­док ис­пол­не­ния за­про­сов в оче­ре­ди — в по­ряд­ке по­сту­п­ле­ния за­про­сов в нее, хо­тя OpenCL по­зво­ля­ет отой­ти от это­го ес­те­ст­вен­но­го пра­ви­ла. За­пуск яд­ра за­клю­ча­ет­ся в соз­да­нии боль­шо­го чис­ла про­цес­сов для его ис­пол­не­ния. Все эти про­цес­сы бу­дут вы­пол­нять од­ну и ту же функ­цию, ко­то­рая за­про­грам­ми­ро­ва­на в яд­ре, но ка­ж­дый из них бу­дет об­ра­ба­ты­вать свой фраг­мент дан­ных. Рус­скоя­зыч­ный тер­мин для этих про­цес­сов еще не ус­то­ял­ся, по­это­му ис­поль­зу­ем тер­мин «ра­бо­чий эле­мент» (от англ. Work-item).&lt;br /&gt;
&lt;br /&gt;
Оп­ре­де­лить, ка­кой фраг­мент дан­ных нуж­но об­ра­ба­ты­вать в дан­ном ра­бо­чем эле­мен­те, мож­но по его уни­каль­но­му иден­ти­фи­ка­то­ру. В за­ви­си­мо­сти от ха­рак­те­ра об­ра­ба­ты­вае­мых дан­ных в ка­че­­ст­ве иден­ти­фи­ка­то­ра мож­но ис­поль­зо­вать один, два или три це­ло­чис­лен­ных ин­дек­са.&lt;br /&gt;
&lt;br /&gt;
Ра­бо­чий эле­мент мо­жет ис­пол­нять­ся на од­ном или не­сколь­ких об­ра­ба­ты­ваю­щих эле­мен­тах. Ра­бо­чие эле­мен­ты, ис­пол­няе­мые на од­ном вы­чис­ли­тель­ном мо­ду­ле, об­ра­зу­ют ра­бо­чую груп­пу [work-group]. Ес­ли чис­ло об­ра­ба­ты­ваю­щих эле­мен­тов боль­ше чис­ла ра­бо­чих эле­мен­тов, то воз­мож­но их од­но­вре­мен­ное ис­пол­не­ние. Од­на­ко го­раз­до ча­ще воз­ни­ка­ет си­туа­ция, ко­гда ра­бо­чих эле­мен­тов боль­ше, чем об­ра­ба­ты­ваю­щих. То­гда ис­пол­нить сра­зу все ра­бо­чие эле­мен­ты не­воз­мож­но, и ор­га­ни­зу­ет­ся их по­сле­до­ва­тель­ное ис­пол­не­ние на об­ра­ба­ты­ваю­щих эле­мен­тах.&lt;br /&gt;
&lt;br /&gt;
Ре­аль­на си­туа­ция, ко­гда в од­ном ра­бо­чем эле­мен­те тре­бу­ют­ся дан­ные, вы­чис­ляе­мые в дру­гом, ко­то­рый, мо­жет быть, еще не на­чи­нал ис­пол­нять­ся. В этом слу­чае для кор­рект­ной об­ра­бот­ки тре­бу­ет­ся ис­поль­зо­ва­ние син­хро­ни­за­ции, при ко­то­рой ра­бо­чий эле­мент при­ос­та­нав­ли­ва­ет­ся до то­го мо­мен­та, ко­гда тре­буе­мые ему дан­ные бу­дут по­счи­та­ны. Рас­ста­нов­ка то­чек син­хро­ни­за­ции — это про­сто не­ис­чер­пае­мый ис­точ­ник раз­ло­жен­ных на до­ро­ге раз­но­го ро­да «граб­лей». Без хо­ро­ше­го ал­го­рит­ма вы­чис­ле­ний лег­ко за­гу­бить про­из­во­ди­тель­ность па­рал­лель­ной про­грам­мы, по­это­му кро­ме про­грам­ми­ст­ских на­вы­ков, спе­циа­ли­стам по па­рал­лель­ным вы­чис­ле­ни­ям не­об­хо­ди­ма фун­да­мен­таль­ная ма­те­ма­ти­че­­ская под­го­тов­ка.&lt;br /&gt;
&lt;br /&gt;
Раз­ные реа­ли­за­ции OpenCL мо­гут со­су­ще­ст­во­вать на од­ной хост-ма­ши­не. Бо­лее то­го, их мож­но од­но­вре­мен­но ис­поль­зо­вать в од­ной хост-про­грам­ме. Фор­маль­но они пред­став­ля­ют­ся как от­дель­ные «OpenCL-плат­фор­мы», ка­ж­дая из ко­то­рых со­дер­жит на­бор под­дер­жи­вае­мых кон­крет­но ими OpenCL-уст­ройств. Од­но и то же уст­рой­ст­во мо­жет при­сут­ст­во­вать в бо­лее чем од­ной плат­фор­ме. На­при­мер, цен­траль­ный про­цес­сор Intel Core2 Quad Q8300 мо­жет быть пе­ре­чис­лен как в реа­ли­за­ции Intel OpenCL, так и в AMD OpenCL. При этом на хост-ма­ши­не мо­жет быть ус­та­нов­лен па­кет CUDA, ко­то­рый, кро­ме все­го про­че­го, так­же со­дер­жит реа­ли­за­цию OpenCL. В плат­фор­ме, со­от­вет­ст­вую­щей ему, бу­дет пе­ре­чис­ле­но од­но уст­рой­ст­во GPU, на­при­мер, NVIDIA GTS250. Со­всем аб­ст­ра­ги­ро­вать­ся, ес­те­ст­вен­но, не уда­ст­ся, так как не­об­хо­ди­мо хо­тя бы при­мер­но пред­став­лять, где про­грам­ма бу­дет счи­тать­ся, но стан­дар­ти­за­ция пра­виль­ная.&lt;br /&gt;
[[Файл: |right | thumb|100px|]] &lt;br /&gt;
Па­мять OpenCL-уст­рой­ст­ва от­де­ле­на от па­мя­ти хост-ма­ши­ны. Пе­ред на­ча­лом вы­чис­ле­ний не­об­хо­ди­мо ско­пи­ро­вать ис­ход­ные дан­ные из ос­нов­ной па­мя­ти хост-ма­ши­ны в гло­баль­ную па­мять OpenCL-уст­рой­ст­ва, а по­сле за­вер­ше­ния вы­чис­ле­ний пе­ре­мес­тить ре­зуль­та­ты об­рат­но. Гло­баль­ная па­мять дос­туп­на всем ра­бо­чим эле­мен­там счет­ной про­грам­мы. Кро­ме нее, OpenCL-уст­рой­ст­во име­ет кон­стант­ную, ло­каль­ную и соб­ст­вен­ную па­мять [private memory]. Кон­стант­ная па­мять дос­туп­на всем ра­бо­чим эле­мен­там по чте­нию. За­пи­сы­вать в нее мож­но из хост-про­грам­мы. Ло­каль­ная па­мять мо­жет ис­поль­зо­вать­ся толь­ко ра­бо­чи­ми эле­мен­та­ми од­ной ра­бо­чей груп­пы. Соб­ст­вен­ная па­мять дос­туп­на толь­ко од­но­му ра­бо­че­му эле­мен­ту. Та­кое раз­де­ле­ние на ти­пы па­мя­ти по­зво­ля­ет бо­лее пол­но ис­поль­зо­вать осо­бен­но­сти гра­фи­че­­ских ус­ко­ри­те­лей. В ча­ст­но­сти, в слу­чае GPU ло­каль­ная па­мять про­еци­ру­ет­ся на раз­де­ляе­мую, а соб­ст­вен­ная — на ре­ги­ст­ро­вую; обе они су­ще­ст­вен­но бы­ст­рее гло­баль­ной. При ис­поль­зо­ва­нии же цен­траль­но­го про­цес­со­ра в ка­че­­ст­ве OpenCL-уст­рой­ст­ва гло­баль­ная, ло­каль­ная и соб­ст­вен­ная па­мя­ти про­еци­ру­ют­ся на ос­нов­ную па­мять, и ско­рость их ра­бо­ты со­от­вет­ст­вен­но оди­на­ко­ва.&lt;br /&gt;
&lt;br /&gt;
В стан­дар­те OpenCL опи­сан функ­цио­наль­ный ин­тер­фейс для хост-ма­ши­ны, язык “OpenCL C” для реа­ли­за­ции счет­ной про­грам­мы и функ­цио­наль­ный ин­тер­фейс для OpenCL-уст­рой­ст­ва.&lt;br /&gt;
&lt;br /&gt;
Ин­тер­фейс для хост-ма­ши­ны — это тот на­бор функ­ций, ко­то­рый мож­но вы­зы­вать из хост-про­грам­мы, на­пи­сан­ной, на­при­мер, на C. Эти функ­ции по­зво­ля­ют по­лу­чать спи­сок OpenCL-уст­ройств, оп­ре­де­лять их па­ра­мет­ры (clGetPlatformIDs, clGetPlatformInfo), ком­пи­ли­ро­вать счет­ную про­грам­му (clCreateProgramWithSource), вы­де­лять и ос­во­бо­ж­дать па­мять на OpenCL-уст­рой­ст­ве (clCreateBuffer, clReleaseMemObject), пе­ре­сы­лать дан­ные (clEnqueueReadBuffer, clEnqueueWriteBuffer), за­пус­кать вы­чис­ле­ния (clEnqueueNDRangeKernel) и осу­ще­ст­в­лять син­хро­ни­за­цию на OpenCL-уст­рой­ст­вах.&lt;br /&gt;
&lt;br /&gt;
Язык OpenCL C ос­но­ван на стан­дарт­ном C, од­на­ко в нем нет стан­дарт­ной биб­лио­те­ки функ­ций ANSI C и ее за­го­ло­воч­ных фай­лов, ука­за­те­лей на функ­ции, мас­си­вов пе­ре­мен­ной дли­ны и би­то­вых по­лей, а так­же в нем за­пре­ще­на ре­кур­сия. Но, с дру­гой сто­ро­ны, в не­го до­бав­ле­ны ра­бо­чие эле­мен­ты, ра­бо­чие груп­пы, век­тор­ные ти­пы, син­хро­ни­за­ция и ква­ли­фи­ка­то­ры ад­рес­но­го про­стран­ст­ва, ко­то­рые оп­ре­де­ля­ют, в гло­баль­ной, ло­каль­ной или соб­ст­вен­ной па­мя­ти рас­по­ла­га­ют­ся дан­ные.&lt;br /&gt;
&lt;br /&gt;
===Сбор­ка про­грам­мы===&lt;br /&gt;
&lt;br /&gt;
OpenCL C вклю­чен в биб­лио­те­ку для хост-про­грам­мы и вы­зы­ва­ется че­рез ин­тер­фейс для хост-ма­ши­ны. Ком­пи­ля­ция счет­ной про­грам­мы про­из­во­дит­ся в про­цес­се ра­бо­ты хост-про­грам­мы. Это по­зво­ля­ет на­страи­вать­ся на ис­поль­зо­ва­ние то­го или ино­го уст­рой­ст­ва OpenCL в про­цес­се вы­пол­не­ния про­грам­мы. Так­же это даст воз­мож­ность ис­пол­нять OpenCL-про­грам­му без пе­ре­ком­пи­ля­ции хост-про­грам­мы да­же на тех уст­рой­ст­вах, ко­то­рые еще не раз­ра­бо­та­ны. В от­ли­чие от CUDA или MPI, ком­пи­ля­ция OpenCL-про­грам­мы не тре­бу­ет за­пус­ка пре­про­цес­со­ра, хо­тя и не ис­клю­ча­ет его:&lt;br /&gt;
&lt;br /&gt;
gcc helloworld.c -o helloworld -lOpenCL&lt;br /&gt;
&lt;br /&gt;
Воз­мож­но, при ком­пи­ля­ции при­дет­ся ука­зать ме­сто­по­ло­же­ние за­го­ло­воч­ных фай­лов и биб­лио­те­ки libOpenCL. Пред­по­ла­га­ет­ся, что со­от­вет­ст­вую­щие драй­ве­ра и SDK для имею­щих­ся вы­чис­ли­тель­ных уст­ройств уже ус­та­нов­ле­ны. Ес­ли вы не в кур­се, о чем тут го­во­рит­ся, то для оку­чи­ва­ния GPU от Nvidia име­ет смысл за­гля­нуть по ад­ре­су https://developer.nvidia.com/opencl, для Intel есть со­от­вет­ст­вую­щий ре­сурс http://software.intel.com/en-us/vcsource/tools/opencl, а в слу­чае ви­део­кар­ты от AMD мож­но по­рыть­ся на сай­те http://developer.amd.com.&lt;br /&gt;
&lt;br /&gt;
Ин­тер­фейс для вы­чис­ли­тель­но­го уст­рой­ст­ва по­зво­ля­ет ра­бо­тать с ра­бо­чи­ми эле­мен­та­ми и век­тор­ны­ми дан­ны­ми и про­из­во­дить син­хро­ни­за­цию по­то­ков, и со­дер­жит боль­шое чис­ло ма­те­ма­ти­че­­ских и гео­мет­ри­че­­ских функ­ций, функ­ций пе­ча­ти, от­лад­ки, асин­хрон­но­го ко­пи­ро­ва­ния ме­ж­ду раз­ны­ми ви­да­ми па­мя­ти.&lt;br /&gt;
&lt;br /&gt;
===При­мер хост-про­грам­мы===&lt;br /&gt;
&lt;br /&gt;
В ти­пич­ной хост-про­грам­ме мож­но вы­де­лить сле­дую­щие эта­пы ра­бо­ты:&lt;br /&gt;
&lt;br /&gt;
1 Оп­ре­де­ле­ние дос­туп­ных уст­ройств OpenCL и их ха­рак­те­ри­стик.&lt;br /&gt;
&lt;br /&gt;
2 Фор­ми­ро­ва­ние кон­тек­ста, ко­то­рый вклю­ча­ет вы­бран­ные для ис­поль­зо­ва­ния уст­рой­ст­ва и на­строй­ки.&lt;br /&gt;
&lt;br /&gt;
3 Соз­да­ние оче­ре­ди ко­манд.&lt;br /&gt;
&lt;br /&gt;
4 Соз­да­ние дво­ич­но­го ис­пол­няе­мо­го ко­да счет­ной про­грам­мы по ее ис­ход­но­му тек­сту.&lt;br /&gt;
&lt;br /&gt;
5 Дек­ла­ра­ция яд­ра в дво­ич­ном ко­де счет­ной про­грам­мы.&lt;br /&gt;
&lt;br /&gt;
6 Ре­зер­ви­ро­ва­ние па­мя­ти в OpenCL-уст­рой­ст­вах и ко­пи­ро­ва­ние ту­да дан­ных для счет­ной про­грам­мы.&lt;br /&gt;
&lt;br /&gt;
7 Ини­циа­ли­за­ция за­пус­ка ядер на счет.&lt;br /&gt;
&lt;br /&gt;
8 Ко­пи­ро­ва­ние ре­зуль­та­тов вы­чис­ле­ния из па­мя­ти OpenCL-уст­рой­ст­ва в ос­нов­ную па­мять хост-ма­ши­ны и ос­во­бо­ж­де­ние бло­ков па­мя­ти, за­ре­зер­ви­ро­ван­ных ра­нее на OpenCL-уст­рой­ст­вах.&lt;br /&gt;
&lt;br /&gt;
9 Ос­во­бо­ж­де­ние ре­сур­сов и уда­ле­ние соз­дан­ные ра­нее объ­ек­тов в хост-про­грам­ме по ра­бо­те с OpenCL.&lt;br /&gt;
&lt;br /&gt;
Рас­смот­рим при­мер про­стей­шей хост-про­грам­мы по­эле­мент­но­го сло­же­ния двух век­то­ров.&lt;br /&gt;
&lt;br /&gt;
Для на­ча­ла нуж­но под­клю­чить OpenCL-ин­тер­фейс для хост-про­грам­мы (воз­мож­но, для ва­шей реа­ли­за­ции OpenCL путь до за­го­ло­воч­но­го фай­ла бу­дет не­мно­го дру­гой):&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;CL/opencl.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Под­клю­ча­ем стан­дарт­ные за­го­ло­воч­ные фай­лы:&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для удоб­ст­ва оп­ре­де­ля­ем кон­стан­ты:&lt;br /&gt;
&lt;br /&gt;
 #define TEST1_OPENCL1_BUF1_SIZE1 4096&lt;br /&gt;
&lt;br /&gt;
 #define SIZE 5 // За­да­ние раз­ме­ра век­то­ров&lt;br /&gt;
&lt;br /&gt;
До­бав­ля­ем ис­ход­ник счет­ной про­грам­мы, со­дер­жа­щей яд­ро vadd для сло­же­ния двух чи­сел:&lt;br /&gt;
&lt;br /&gt;
const char *vaddsrc =&lt;br /&gt;
&lt;br /&gt;
“__kernel void vadd(“&lt;br /&gt;
&lt;br /&gt;
“ __global float *d_A,”&lt;br /&gt;
&lt;br /&gt;
“ __global float *d_B,”&lt;br /&gt;
&lt;br /&gt;
“ __global float *d_C”&lt;br /&gt;
&lt;br /&gt;
“){“&lt;br /&gt;
&lt;br /&gt;
“ unsigned int n;”&lt;br /&gt;
&lt;br /&gt;
“”&lt;br /&gt;
&lt;br /&gt;
// По­лу­че­ние уни­каль­но­го иден­ти­фи­ка­то­ра ра­бо­че­го эле­мен­та&lt;br /&gt;
&lt;br /&gt;
“ n = get_global_id(0);”&lt;br /&gt;
&lt;br /&gt;
“ d_C[n] = d_A[n] + d_B[n];”&lt;br /&gt;
&lt;br /&gt;
”}”;&lt;br /&gt;
&lt;br /&gt;
Здесь d_A и d_B — ука­за­те­ли на складываемые век­то­ры в гло­баль­ной па­мя­ти, d_A — ука­за­тель на ре­зуль­ти­рую­щий век­тор.&lt;br /&gt;
&lt;br /&gt;
Оп­ре­де­ля­ем век­то­ры в ос­нов­ной па­мя­ти хост-ком­пь­ю­те­ра:&lt;br /&gt;
&lt;br /&gt;
float hostdata_A[SIZE] = {10., 20., 30., 40., 50.};&lt;br /&gt;
&lt;br /&gt;
float hostdata_B[SIZE] = {1., 2., 3., 4., 5.};&lt;br /&gt;
&lt;br /&gt;
float hostdata_C[SIZE];&lt;br /&gt;
&lt;br /&gt;
char clcompileflags[TEST1_OPENCL1_BUF1_SIZE1];&lt;br /&gt;
&lt;br /&gt;
char buf[TEST1_OPENCL1_BUF1_SIZE1];&lt;br /&gt;
&lt;br /&gt;
// Од­но­мер­ное про­стран­ст­во уни­каль­ных иден­ти­фи­ка­то­ров ра­бо­чих эле­мен­тов&lt;br /&gt;
&lt;br /&gt;
size_t sizeWork[1] = {SIZE};&lt;br /&gt;
&lt;br /&gt;
На­чи­на­ем про­грам­му с оп­ре­де­ле­ния вспо­мо­га­тель­ных пе­ре­мен­ных:&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
&lt;br /&gt;
// Код ошиб­ки, ко­то­рый воз­вра­ща­ет­ся OpenCL-функ­ция­ми&lt;br /&gt;
&lt;br /&gt;
cl_int clerr;&lt;br /&gt;
&lt;br /&gt;
// Ко­ли­че­ст­во дос­туп­ных OpenCL-плат­форм&lt;br /&gt;
&lt;br /&gt;
cl_uint qty_platforms = 0;&lt;br /&gt;
&lt;br /&gt;
// Спи­сок иден­ти­фи­ка­то­ров OpenCL-плат­форм&lt;br /&gt;
&lt;br /&gt;
cl_platform_id* platforms;&lt;br /&gt;
&lt;br /&gt;
cl_uint ui;&lt;br /&gt;
&lt;br /&gt;
// Ко­ли­че­ст­во дос­туп­ных OpenCL-уст­ройств для ка­ж­дой плат­фор­мы&lt;br /&gt;
&lt;br /&gt;
cl_uint *qty_devices;&lt;br /&gt;
&lt;br /&gt;
cl_device_id **devices;&lt;br /&gt;
&lt;br /&gt;
cl_uint i;&lt;br /&gt;
&lt;br /&gt;
// Де­ск­рип­тор кон­тек­ста&lt;br /&gt;
&lt;br /&gt;
cl_context context1;&lt;br /&gt;
&lt;br /&gt;
size_t parmsz;&lt;br /&gt;
&lt;br /&gt;
// Де­ск­рип­тор оче­ре­ди ко­манд&lt;br /&gt;
&lt;br /&gt;
cl_command_queue queue1;&lt;br /&gt;
&lt;br /&gt;
cl_program program1;&lt;br /&gt;
&lt;br /&gt;
// Де­ск­рип­тор объ­ек­та яд­ра&lt;br /&gt;
&lt;br /&gt;
cl_kernel kernel1;&lt;br /&gt;
&lt;br /&gt;
Оп­ре­де­ля­ем ука­за­те­ли на век­то­ры A и B с ис­ход­ны­ми дан­ны­ми и век­тор C с ре­зуль­ти­рую­щи­ми дан­ны­ми в гло­баль­ной па­мя­ти:&lt;br /&gt;
&lt;br /&gt;
cl_mem remotedata_A;&lt;br /&gt;
&lt;br /&gt;
cl_mem remotedata_B;&lt;br /&gt;
&lt;br /&gt;
cl_mem remotedata_C;&lt;br /&gt;
&lt;br /&gt;
Этап 1 Оп­ре­де­ле­ние дос­туп­ных OpenCL-уст­ройств.&lt;br /&gt;
&lt;br /&gt;
// Оп­ре­де­ле­ние чис­ла OpenCL-плат­форм&lt;br /&gt;
&lt;br /&gt;
clerr = clGetPlatformIDs(0, NULL, &amp;amp;qty_platforms);&lt;br /&gt;
&lt;br /&gt;
// Об­ра­бот­ка оши­бок&lt;br /&gt;
&lt;br /&gt;
if(clerr != CL_SUCCESS){&lt;br /&gt;
&lt;br /&gt;
fprintf(stderr, “Ошиб­ка, код = %d.\n”, clerr);&lt;br /&gt;
&lt;br /&gt;
// Да­лее ана­ло­гич­ные бло­ки опу­ще­ны&lt;br /&gt;
&lt;br /&gt;
return 1;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Вы­де­ле­ние па­мя­ти для хра­не­ния ин­фор­ма­ции о кон­фи­гу­ра­ции и па­ра­мет­ров уст­ройств&lt;br /&gt;
&lt;br /&gt;
platforms = (cl_platform_id*)&lt;br /&gt;
&lt;br /&gt;
malloc(sizeof(cl_platform_id)*qty_platforms);&lt;br /&gt;
&lt;br /&gt;
devices = (cl_device_id**)&lt;br /&gt;
&lt;br /&gt;
malloc(sizeof(cl_device_id*)*qty_platforms);&lt;br /&gt;
&lt;br /&gt;
qty_devices = (cl_uint*)malloc(sizeof(cl_uint)*qty_platforms);&lt;br /&gt;
&lt;br /&gt;
// Об­ра­бот­ка оши­бок вы­де­ле­ния па­мя­ти здесь и да­лее опу­ще­на&lt;br /&gt;
&lt;br /&gt;
// По­лу­че­ние спи­ска иден­ти­фи­ка­то­ров плат­форм&lt;br /&gt;
&lt;br /&gt;
clerr = clGetPlatformIDs(qty_platforms, platforms, NULL);&lt;br /&gt;
&lt;br /&gt;
for (ui=0; ui &amp;lt; qty_platforms; ui++){&lt;br /&gt;
&lt;br /&gt;
// По­лу­че­ние ко­ли­че­ст­ва имею­щих­ся OpenCL-уст­ройств для ка­ж­дой плат­фор­мы&lt;br /&gt;
&lt;br /&gt;
clerr = clGetDeviceIDs(platforms[ui], CL_DEVICE_TYPE_ALL, 0, NULL, &amp;amp;qty_devices[ui]);&lt;br /&gt;
&lt;br /&gt;
// По­лу­че­ние спи­ска иден­ти­фи­ка­то­ров OpenCL-уст­ройств&lt;br /&gt;
&lt;br /&gt;
if(qty_devices[ui]){&lt;br /&gt;
&lt;br /&gt;
devices[ui] = (cl_device_id*)&lt;br /&gt;
&lt;br /&gt;
malloc(qty_devices[ui] * sizeof(cl_device_id));&lt;br /&gt;
&lt;br /&gt;
clerr = clGetDeviceIDs(platforms[ui], CL_DEVICE_TYPE_ALL, qty_devices[ui], devices[ui], NULL);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Этап 2 Фор­ми­ро­ва­ние кон­тек­ста. Соз­да­ет­ся кон­текст, в ко­то­рый вклю­че­ны OpenCL-уст­рой­ст­ва плат­фор­мы 0 (уп­ро­ще­ние):&lt;br /&gt;
&lt;br /&gt;
clerr = CL_SUCCESS;&lt;br /&gt;
&lt;br /&gt;
context1 = clCreateContext(0, qty_devices[0], devices[0], NULL, NULL, &amp;amp;clerr);&lt;br /&gt;
&lt;br /&gt;
Этап 3 Соз­да­ние оче­ре­ди ко­манд. Оче­редь соз­да­ет­ся для ну­ле­во­го уст­рой­ст­ва ну­ле­вой плат­фор­мы:&lt;br /&gt;
&lt;br /&gt;
queue1 = clCreateCommandQueue(context1, devices[0][0], 0, &amp;amp;clerr);&lt;br /&gt;
&lt;br /&gt;
Этап 4 Ком­пи­ля­ция счет­ной про­грам­мы.&lt;br /&gt;
&lt;br /&gt;
program1 = clCreateProgramWithSource(context1, 1, &amp;amp;vaddsrc, NULL, &amp;amp;clerr);&lt;br /&gt;
&lt;br /&gt;
snprintf(clcompileflags, TEST1_OPENCL1_BUF1_SIZE1, “-cl-mad-enable”);&lt;br /&gt;
&lt;br /&gt;
clerr = clBuildProgram(program1, 0, NULL, clcompileflags, NULL, NULL);&lt;br /&gt;
&lt;br /&gt;
Этап 5 Дек­ла­ра­ция яд­ра в счет­ной про­грам­ме.&lt;br /&gt;
&lt;br /&gt;
kernel1 = clCreateKernel(program1, “vadd”, &amp;amp;clerr);&lt;br /&gt;
&lt;br /&gt;
Этап 6 Ре­зер­ви­ро­ва­ние па­мя­ти в OpenCL-уст­рой­ст­ве. При этом век­то­ры A и B с исход­ными дан­ными ко­пи­ру­ют­ся из ос­нов­ной па­мя­ти хост-ма­ши­ны в па­мять OpenCL-уст­рой­ст­ва.&lt;br /&gt;
&lt;br /&gt;
remotedata_A = clCreateBuffer( context1, CL_MEM_READ_ONLY |CL_MEM_COPY_HOST_PTR, sizeof(int) * SIZE, hostdata_A, NULL);&lt;br /&gt;
&lt;br /&gt;
remotedata_B = clCreateBuffer(context1, CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR, sizeof(int) * SIZE, hostdata_B, NULL);&lt;br /&gt;
&lt;br /&gt;
remotedata_C = clCreateBuffer(context1, CL_MEM_WRITE_ONLY | CL_MEM_COPY_HOST_PTR, sizeof(int) * SIZE, hostdata_C, NULL);&lt;br /&gt;
&lt;br /&gt;
Этап 7 За­пуск яд­ра на вы­чис­ле­ния.&lt;br /&gt;
&lt;br /&gt;
clSetKernelArg(kernel1, 0, sizeof(cl_mem), (void*)&amp;amp;remotedata_A);&lt;br /&gt;
&lt;br /&gt;
clSetKernelArg(kernel1, 1, sizeof(cl_mem), (void*)&amp;amp;remotedata_B);&lt;br /&gt;
&lt;br /&gt;
clSetKernelArg(kernel1, 2, sizeof(cl_mem), (void*)&amp;amp;remotedata_C);&lt;br /&gt;
&lt;br /&gt;
clerr = clEnqueueNDRangeKernel(queue1, kernel1, 1, NULL, sizeWork, NULL, 0, NULL, NULL);&lt;br /&gt;
&lt;br /&gt;
Этап 8 Ко­пи­ро­ва­ние ре­зуль­та­тов в ос­нов­ную па­мять хост-ма­ши­ны и ос­во­бо­ж­де­ние па­мя­ти в OpenCL-уст­рой­ст­ве.&lt;br /&gt;
&lt;br /&gt;
// Ко­пи­ро­ва­ние ре­зуль­ти­рую­ще­го век­то­ра&lt;br /&gt;
&lt;br /&gt;
clEnqueueReadBuffer(queue1, remotedata_C, CL_TRUE, 0, SIZE * sizeof(int), hostdata_C, 0, NULL, NULL);&lt;br /&gt;
&lt;br /&gt;
// Ос­во­бо­ж­де­ние па­мя­ти на OpenCL-уст­рой­ст­ве&lt;br /&gt;
&lt;br /&gt;
clReleaseMemObject(remotedata_A);&lt;br /&gt;
&lt;br /&gt;
clReleaseMemObject(remotedata_B);&lt;br /&gt;
&lt;br /&gt;
clReleaseMemObject(remotedata_C);&lt;br /&gt;
&lt;br /&gt;
Этап 9 Ос­во­бо­ж­де­ние ре­сур­сов.&lt;br /&gt;
&lt;br /&gt;
clReleaseKernel(kernel1);&lt;br /&gt;
&lt;br /&gt;
clReleaseProgram(program1);&lt;br /&gt;
&lt;br /&gt;
clReleaseCommandQueue(queue1);&lt;br /&gt;
&lt;br /&gt;
clReleaseContext(context1);&lt;br /&gt;
&lt;br /&gt;
free(qty_devices);&lt;br /&gt;
&lt;br /&gt;
free(devices);&lt;br /&gt;
&lt;br /&gt;
free(platforms);&lt;br /&gt;
&lt;br /&gt;
А те­перь на­ко­нец-то мож­но вы­дох­нуть и рас­пе­ча­тать ре­зуль­ти­рую­щий век­тор:&lt;br /&gt;
&lt;br /&gt;
for(i = 0; i &amp;lt; SIZE; i++)&lt;br /&gt;
&lt;br /&gt;
printf(“ %f\n”, hostdata_C[i]);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
{{Врезка|right|Заголовок=Об­рат­ная связь |Ширина=10%|Содержание=При­гла­ша­ем вы­ска­зать­ся по­тен­ци­аль­ных ав­то­ров ста­тей по па­рал­лель­ным вы­чис­лениям – цен­ные пред­ло­жения, кри­ти­ку и со­ве­ты при­сы­лай­те по элек­трон­ной поч­те: ostap@ssd.sscc.ru, E.M.Baldin@inp.nsk.su.}} &lt;br /&gt;
Не­смот­ря на ви­ди­мую слож­ность, рас­смот­рен­ный при­мер мак­си­маль­но уп­ро­щен. В ча­ст­но­сти, мы про­из­во­ди­ли счет на фик­си­ро­ван­ном ну­ле­вом уст­рой­ст­ве ну­ле­вой плат­фор­мы. В ре­аль­но­сти мы пред­по­чли бы бо­лее осоз­нан­но вы­брать уст­рой­ст­во для сче­та — на­при­мер, воз­мож­но, за­хо­те­ли бы по­ис­кать сна­ча­ла GPU от NVIDIA. Для это­го в функ­ции clGetDeviceIDs не­об­хо­ди­мо за­ме­нить CL_DEVICE_TYPE_ALL на CL_DEVICE_TYPE_GPU.&lt;br /&gt;
&lt;br /&gt;
В бо­лее слож­ных реа­ли­за­ци­ях счет мо­жет про­из­во­дить­ся на не­сколь­ких раз­но­тип­ных OpenCL-уст­рой­ст­вах. Ти­пич­ная схе­ма ор­га­ни­за­ции та­ко­го сче­та за­клю­ча­ет­ся в соз­да­нии не­сколь­ких кон­тек­стов или не­сколь­ких оче­ре­дей в од­ном кон­тек­сте, ка­ж­дая из ко­то­рых ас­со­ции­ро­ва­на с не­ко­то­рым уст­рой­ст­вом.&lt;br /&gt;
&lt;br /&gt;
Дру­гое уп­ро­ще­ние свя­за­но с тем, что текст счет­ной про­грам­мы с ядром мы хра­ним как кон­стан­ту в хост-про­грам­ме. Счет­ных про­грамм и их ядер мо­жет быть дос­та­точ­но мно­го, и в пол­но­цен­ной реа­ли­за­ции име­ет смысл хра­нить их в от­дель­ных фай­лах и за­гру­жать при не­об­хо­ди­мо­сти.&lt;br /&gt;
&lt;br /&gt;
В за­клю­че­ние не­об­хо­ди­мо от­ме­тить, что ис­поль­зо­ва­ние OpenCL не ис­клю­ча­ет воз­мож­ность при­ме­не­ния дру­гих тех­но­ло­гий по­строе­ния па­рал­лель­ных про­грамм в од­ной про­грам­ме. На­при­мер, на кла­сте­рах с мно­го­про­цес­сор­ны­ми уз­ла­ми или уз­ла­ми с GPU це­ле­со­об­раз­но стро­ить гиб­рид­ные про­грам­мы на ба­зе OpenCL и MPI. OpenCL в них бу­дет от­ве­чать за ор­га­ни­за­цию па­рал­лель­но­го сче­та внут­ри од­но­го уз­ла, а MPI — за па­рал­лель­ное ис­пол­не­ние на уров­не кла­сте­ра, ме­ж­ду не­сколь­ки­ми уз­ла­ми. |&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:%D0%92%D1%8B%C2%AD%D1%87%D0%B8%D1%81%C2%AD%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D0%B0%C2%AD%D1%80%D0%B0%D0%BB%C2%AD%D0%BB%D0%B5%D0%BB%D1%8C%C2%AD%D0%BD%D0%BE</id>
		<title>LXF171:Вы­чис­лять па­рал­лель­но</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:%D0%92%D1%8B%C2%AD%D1%87%D0%B8%D1%81%C2%AD%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D0%B0%C2%AD%D1%80%D0%B0%D0%BB%C2%AD%D0%BB%D0%B5%D0%BB%D1%8C%C2%AD%D0%BD%D0%BE"/>
				<updated>2018-11-18T12:06:18Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: Новая страница: «Категория: Учебники == OpenCL: Стан­дарт для бу­ду­ще­го == ''Ми­ха­ил Ос­тап­ке­вич и Ев­г…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Учебники]]&lt;br /&gt;
== OpenCL: Стан­дарт для бу­ду­ще­го ==&lt;br /&gt;
''Ми­ха­ил Ос­тап­ке­вич и Ев­ге­ний Бал­дин оты­ска­ли спо­соб при­звать не­сколь­ко раз­но­тип­ных вы­чис­ли­те­лей под зна­ме­на од­ной про­грам­мы''.&lt;br /&gt;
[[Файл: |left | thumb|100px|'''Наш эксперт'''&lt;br /&gt;
&lt;br /&gt;
Михаил Остапкевич &lt;br /&gt;
Романтик, очарованный компьютерами и создаваемыми в них идеальными мирами; верит, что сложнейшие новые технологии могут и должны служить во благо человечеству.]] &lt;br /&gt;
[[Файл: |left | thumb|100px|]] &lt;br /&gt;
Вы пла­ни­руе­те за­гру­зить на­гло про­стаи­ваю­щие про­цес­со­ры, но еще не оп­ре­де­ли­лись с лю­би­мой ар­хи­тек­ту­рой? Вы не про­тив за­гру­зить ви­део­кар­ту, при­чем не обя­за­тель­но ви­део­кар­ту фир­мы N, а в пер­спек­ти­ве пе­ре­не­сти про­грам­му на эн­тер­прайз­ный Intel Xeon Phi и ин­ди-про­цес­сор Epiphany, или про­шить ее код в про­грам­ми­руе­мую ло­ги­че­­скую ин­те­граль­ную схе­му — ПЛИС? То­гда OpenCL — ваш вы­бор, а кро­ме то­го, свет­лое бу­ду­щее па­рал­лель­но­го про­грам­ми­ро­ва­ния!&lt;br /&gt;
&lt;br /&gt;
От­ку­да и за­чем все это?&lt;br /&gt;
&lt;br /&gt;
OpenCL (Open Computing Language) — это стан­дарт, пред­ло­жен­ный Apple в 2008 го­ду. Как и MPI, он по­зво­ля­ет соз­да­вать плат­фор­мен­но-не­за­ви­си­мые па­рал­лель­ные про­грам­мы. Но ес­ли MPI ори­ен­ти­ро­ван на муль­ти­ком­пь­ю­те­ры, то OpenCL рас­счи­тан на муль­ти­про­цес­со­ры (на­при­мер, SMP-сис­те­мы или сис­те­мы с мно­го­ядер­ны­ми про­цес­со­ра­ми), GPU и все­воз­мож­ные ус­ко­ри­те­ли. Идея Apple за­клю­ча­лась в том, что­бы ра­зо­гнать свой гра­фи­че­­ский ин­тер­фейс с по­мо­щью про­стаи­ваю­щих спе­циа­ли­зи­ро­ван­ных мощ­но­стей во вре­мя не­иг­ро­вой дея­тель­но­сти. Чуть по­го­дя к Apple ре­ши­ла примк­нуть фир­ма AMD, у ко­то­рой на тот мо­мент уже был свой соб­ст­вен­ный ве­ло­си­пед Close To Metal, ко­то­рый она уби­ла в поль­зу от­кры­то­го стан­дар­та. Те­перь OpenCL офи­ци­аль­но под­дер­жи­ва­ют фак­ти­че­­ски все ос­нов­ные про­из­во­ди­те­ли вы­чис­ли­тель­ной тех­ни­ки, вклю­чая IBM, Intel, AMD и NVIDIA. Раз­ра­бот­кой OpenCL за­ни­ма­ет­ся не­ком­мер­че­­ская не­за­ви­си­мая ор­га­ни­за­ция Khronos Group (http://www.khronos.org/).&lt;br /&gt;
&lt;br /&gt;
Есть не­сколь­ко реа­ли­за­ций OpenCL для раз­лич­ных вы­чис­ли­те­лей: CPU (IA-32, AMD64, ARM, STL Cell, Intel Xeon Phi), GPU (NVIDIA, AMD, S3 Imagination Technologies PowerVR) и да­же ПЛИС (Xilinx, Altera). На­род­ная су­пер­ком­пь­ю­тер­ная ар­хи­тек­ту­ра Epiphany от Adapteva так­же име­ет SDK OpenCL. В пер­спек­ти­ве поя­вят­ся реа­ли­за­ции для про­цес­со­ров ZiiLabs ZMS-40 и циф­ро­вых сиг­на­ль­ных про­цес­со­ров TI. OpenCL по­зво­ля­ет ра­бо­тать как с па­рал­ле­лиз­мом по дан­ным, ко­гда од­на и та же опе­ра­ция од­но­вре­мен­но при­ме­ня­ет­ся к раз­ным ком­плек­там дан­ных, так и с па­рал­ле­лиз­мом на уров­не за­дач, ко­гда не­за­ви­си­мые по­то­ки ко­манд ра­бо­та­ют од­но­вре­мен­но и вы­пол­ня­ют раз­ные функ­ции.&lt;br /&gt;
&lt;br /&gt;
В ми­ре со­вре­мен­ных вы­чис­ли­тель­ных сис­тем есть весь­ма раз­но­об­раз­ный и не­од­но­род­ный на­бор вы­чис­ли­те­лей. Во-пер­вых, есть мощ­ные цен­траль­ные про­цес­со­ры, спо­соб­ные вы­пол­нять од­но­вре­мен­но не­боль­шое чис­ло по­то­ков ко­манд (ни­тей, threads). Так­же лег­ко дос­туп­ны гра­фи­че­­ские про­цес­со­ры, ко­то­рые мож­но ис­поль­зо­вать для сче­та. Счет на чис­ло ни­тей в со­вре­мен­ных гра­фи­че­­ских про­цес­со­рах идет уже на ты­ся­чи, хоть они и не та­кие «тол­стые», как ни­ти цен­траль­но­го про­цес­со­ра. Есть и дру­гие разно­об­раз­ные спе­циа­ли­зи­ро­ван­ные вы­чис­ли­тель­ные ус­ко­ри­тели (ак­се­ле­ра­то­ры) — на­при­мер, ПЛИС’ы (FPGA) или сиг­наль­ные про­цес­со­ры (DSP).&lt;br /&gt;
&lt;br /&gt;
Да­же в со­вер­шен­но обыч­ном ком­пь­ю­те­ре уже до­воль­но дав­но со­жи­тель­ст­ву­ют не­сколь­ко раз­но­тип­ных вы­чис­ли­те­лей — как ми­ни­мум один про­цес­сор и гра­фи­че­­ская кар­та. А ес­ли по­смот­реть на са­мые вы­со­ко­про­из­во­ди­тель­ные кла­сте­ры, то раз­ме­ще­ние в их уз­лах не­сколь­ких мно­го­ядер­ных цен­траль­ных про­цес­со­ров и не­сколь­ких GPU ста­ло те­перь уже прак­ти­че­­ски стан­дарт­ным. Но на этом эво­лю­ция не за­кон­чи­лась. Сле­дую­щий шаг на пу­ти ус­ко­ре­ния ви­дит­ся в до­бав­ле­нии в вы­чис­ли­тель­ный узел ПЛИС’ов, ло­ги­ка ра­бо­ты ко­то­рых мо­жет мно­го­крат­но пе­ре­про­грам­ми­ро­вать­ся, а дос­ти­жи­мая про­из­во­ди­тель­ность вы­чис­ле­ний в ря­де по­лез­ных слу­ча­ев на по­ря­док вы­ше да­же чем у вы­со­ко­про­из­во­ди­тель­ных GPU.&lt;br /&gt;
&lt;br /&gt;
Ра­нее в рам­ках дан­ной се­рии бы­ло рас­ска­за­но о тех­но­ло­гии CUDA. Эта тех­но­ло­гия по­зво­ля­ет эф­фек­тив­но ис­поль­зо­вать для па­рал­лель­но­го сче­та ши­ро­кий спектр уст­ройств GPU от NVIDIA пря­мо здесь и сей­час. Но как быть, ес­ли у нас есть гра­фи­че­­ский про­цес­сор от дру­го­го про­из­во­ди­те­ля? Или что де­лать, ес­ли мы хо­тим, что­бы на­ша про­грам­ма без пе­ре­дел­ки мог­ла счи­тать не толь­ко на GPU, но и на яд­рах цен­траль­но­го про­цес­со­ра?&lt;br /&gt;
&lt;br /&gt;
Как-то со­вер­шен­но не хо­чет­ся пе­ре­пи­сы­вать про­грам­му за­но­во ка­ж­дый раз, ко­гда объ­яв­ля­ет­ся но­вый вид вы­чис­ли­те­лей. OpenCL в ка­кой-то ме­ре по­зво­ля­ет из­бе­жать это­го. Цель соз­да­ния OpenCL — дать еди­ную тех­но­ло­гию по­строе­ния про­грамм на раз­но­род­ных вы­чис­ли­те­лях. На­пи­сав толь­ко од­ну про­грам­му, мож­но за­пус­тить ее фак­ти­че­­ски на всех па­рал­лель­ных уст­рой­ст­вах. А ес­ли сей­час это­го сде­лать нель­зя — то это не на­дол­го. Бо­лее то­го, OpenCL по­зво­лит за­пус­тить про­грам­му, на­пи­сан­ную се­го­дня, на вы­чис­ли­те­ле, ко­то­рый соз­дадут в бу­ду­щем, да­же без необ­хо­ди­мо­сти пе­ре­ком­пи­ли­ро­вать ее за­но­во! Сле­ду­ет, од­на­ко, осоз­на­вать, что хоть пра­виль­но «твик­ну­тая» про­грам­ма под со­от­вет­ст­вую­щую ар­хи­тек­ту­ру не ус­ту­па­ет по про­из­во­ди­тель­но­сти той же CUDA, но при пе­ре­но­се на прин­ци­пи­аль­но дру­гой вы­чис­ли­тель с другой про­из­во­ди­тель­но­стью без­ус­лов­но мо­гут воз­ник­нуть серь­ез­ные про­бле­мы.&lt;br /&gt;
&lt;br /&gt;
Сло­ва­рик&lt;br /&gt;
&lt;br /&gt;
В OpenCL ап­па­рат­ное обес­пе­че­ние под­раз­де­ля­ет­ся на две час­ти: од­на «хост-ма­ши­на» и од­но или не­сколь­ко уст­ройств OpenCL — при­мер­но так, как это по­ка­за­но на ри­сун­ке. Хост-ма­ши­на — это обыч­ный ком­пь­ю­тер, на цен­траль­ном про­цес­со­ре ко­то­ро­го вы­пол­ня­ет­ся про­грам­ма, ко­ор­ди­ни­рую­щая ход вы­чис­ле­ний. Уст­рой­ст­во OpenCL — это уст­рой­ст­во, ис­поль­зуе­мое для вы­пол­не­ния вы­чис­ле­ний. В ка­че­­ст­ве уст­рой­ст­ва OpenCL мо­гут, на­при­мер, ис­поль­зо­вать­ся GPU или сам про­цес­сор хост-ма­ши­ны.&lt;br /&gt;
&lt;br /&gt;
Уст­рой­ст­во OpenCL со­сто­ит из вы­чис­ли­тель­ных мо­ду­лей [compute unit], ка­ж­дый из ко­то­рых мо­жет вы­пол­нять свой по­ток ко­манд. Вы­чис­ли­тель­ный мо­дуль со­дер­жит об­ра­ба­ты­ваю­щие эле­мен­ты (ОЭ), ка­ж­дый из ко­то­рых од­но­вре­мен­но с ос­таль­ны­ми об­ра­ба­ты­ваю­щим эле­мен­та­ми об­ра­ба­ты­ва­ет свой ком­плект дан­ных.&lt;br /&gt;
&lt;br /&gt;
Ес­ли в ка­че­­ст­ве OpenCL-уст­рой­ст­ва ис­поль­зу­ет­ся GPU, то в нем мо­жет быть 8 – 16 вы­чис­ли­тель­ных мо­ду­лей, ка­ж­дый из ко­то­рых со­дер­жит до не­сколь­ких де­сят­ков об­ра­ба­ты­ваю­щих эле­мен­тов. Ес­ли в ка­че­­ст­ве OpenCL-уст­рой­ст­ва ис­поль­зу­ет­ся CPU, то чис­ло вы­чис­ли­тель­ных мо­ду­лей в нем сов­па­да­ет с чис­лом ядер, или в два раза боль­ше не­го, ес­ли в яд­ре под­дер­жи­ва­ет­ся тех­но­ло­гия HyperThreading, а в ка­ж­дом та­ком вы­чис­ли­тель­ном мо­ду­ле толь­ко один об­ра­ба­ты­ваю­щий эле­мент.&lt;br /&gt;
&lt;br /&gt;
OpenCL-при­ло­же­ние со­сто­ит из двух час­тей: хост-про­грам­мы и счет­ной про­грам­мы. Хост-про­грам­ма иг­ра­ет цен­траль­ную роль. Она соз­да­ет оче­ре­ди для вы­пол­не­ния вы­чис­ле­ний счет­ной про­грам­мой, ини­ции­ру­ет пе­ре­ме­ще­ния дан­ных ме­ж­ду хост-ма­ши­ной и уст­рой­ст­ва­ми OpenCL, а так­же за­пус­ка­ет на ис­пол­не­ние функ­ции счет­ной про­грам­мы. Счет­ная про­грам­ма иг­ра­ет под­чи­нен­ную роль. Она со­сто­ит из на­бо­ра функ­ций, про­из­во­дя­щих вы­чис­ле­ния. Те ее функ­ции, ко­то­рые мож­но вы­зы­вать из хост-про­грам­мы, на­зы­ва­ют яд­ра­ми. Ини­циа­то­ром за­пус­ка яд­ра на ис­пол­не­ние обыч­но вы­сту­па­ет хост-про­грам­ма. При этом за­прос на его за­пуск раз­ме­ща­ет­ся в оче­ре­ди. Ти­пич­ный по­ря­док ис­пол­не­ния за­про­сов в оче­ре­ди — в по­ряд­ке по­сту­п­ле­ния за­про­сов в нее, хо­тя OpenCL по­зво­ля­ет отой­ти от это­го ес­те­ст­вен­но­го пра­ви­ла. За­пуск яд­ра за­клю­ча­ет­ся в соз­да­нии боль­шо­го чис­ла про­цес­сов для его ис­пол­не­ния. Все эти про­цес­сы бу­дут вы­пол­нять од­ну и ту же функ­цию, ко­то­рая за­про­грам­ми­ро­ва­на в яд­ре, но ка­ж­дый из них бу­дет об­ра­ба­ты­вать свой фраг­мент дан­ных. Рус­скоя­зыч­ный тер­мин для этих про­цес­сов еще не ус­то­ял­ся, по­это­му ис­поль­зу­ем тер­мин «ра­бо­чий эле­мент» (от англ. Work-item).&lt;br /&gt;
&lt;br /&gt;
Оп­ре­де­лить, ка­кой фраг­мент дан­ных нуж­но об­ра­ба­ты­вать в дан­ном ра­бо­чем эле­мен­те, мож­но по его уни­каль­но­му иден­ти­фи­ка­то­ру. В за­ви­си­мо­сти от ха­рак­те­ра об­ра­ба­ты­вае­мых дан­ных в ка­че­­ст­ве иден­ти­фи­ка­то­ра мож­но ис­поль­зо­вать один, два или три це­ло­чис­лен­ных ин­дек­са.&lt;br /&gt;
&lt;br /&gt;
Ра­бо­чий эле­мент мо­жет ис­пол­нять­ся на од­ном или не­сколь­ких об­ра­ба­ты­ваю­щих эле­мен­тах. Ра­бо­чие эле­мен­ты, ис­пол­няе­мые на од­ном вы­чис­ли­тель­ном мо­ду­ле, об­ра­зу­ют ра­бо­чую груп­пу [work-group]. Ес­ли чис­ло об­ра­ба­ты­ваю­щих эле­мен­тов боль­ше чис­ла ра­бо­чих эле­мен­тов, то воз­мож­но их од­но­вре­мен­ное ис­пол­не­ние. Од­на­ко го­раз­до ча­ще воз­ни­ка­ет си­туа­ция, ко­гда ра­бо­чих эле­мен­тов боль­ше, чем об­ра­ба­ты­ваю­щих. То­гда ис­пол­нить сра­зу все ра­бо­чие эле­мен­ты не­воз­мож­но, и ор­га­ни­зу­ет­ся их по­сле­до­ва­тель­ное ис­пол­не­ние на об­ра­ба­ты­ваю­щих эле­мен­тах.&lt;br /&gt;
&lt;br /&gt;
Ре­аль­на си­туа­ция, ко­гда в од­ном ра­бо­чем эле­мен­те тре­бу­ют­ся дан­ные, вы­чис­ляе­мые в дру­гом, ко­то­рый, мо­жет быть, еще не на­чи­нал ис­пол­нять­ся. В этом слу­чае для кор­рект­ной об­ра­бот­ки тре­бу­ет­ся ис­поль­зо­ва­ние син­хро­ни­за­ции, при ко­то­рой ра­бо­чий эле­мент при­ос­та­нав­ли­ва­ет­ся до то­го мо­мен­та, ко­гда тре­буе­мые ему дан­ные бу­дут по­счи­та­ны. Рас­ста­нов­ка то­чек син­хро­ни­за­ции — это про­сто не­ис­чер­пае­мый ис­точ­ник раз­ло­жен­ных на до­ро­ге раз­но­го ро­да «граб­лей». Без хо­ро­ше­го ал­го­рит­ма вы­чис­ле­ний лег­ко за­гу­бить про­из­во­ди­тель­ность па­рал­лель­ной про­грам­мы, по­это­му кро­ме про­грам­ми­ст­ских на­вы­ков, спе­циа­ли­стам по па­рал­лель­ным вы­чис­ле­ни­ям не­об­хо­ди­ма фун­да­мен­таль­ная ма­те­ма­ти­че­­ская под­го­тов­ка.&lt;br /&gt;
&lt;br /&gt;
Раз­ные реа­ли­за­ции OpenCL мо­гут со­су­ще­ст­во­вать на од­ной хост-ма­ши­не. Бо­лее то­го, их мож­но од­но­вре­мен­но ис­поль­зо­вать в од­ной хост-про­грам­ме. Фор­маль­но они пред­став­ля­ют­ся как от­дель­ные «OpenCL-плат­фор­мы», ка­ж­дая из ко­то­рых со­дер­жит на­бор под­дер­жи­вае­мых кон­крет­но ими OpenCL-уст­ройств. Од­но и то же уст­рой­ст­во мо­жет при­сут­ст­во­вать в бо­лее чем од­ной плат­фор­ме. На­при­мер, цен­траль­ный про­цес­сор Intel Core2 Quad Q8300 мо­жет быть пе­ре­чис­лен как в реа­ли­за­ции Intel OpenCL, так и в AMD OpenCL. При этом на хост-ма­ши­не мо­жет быть ус­та­нов­лен па­кет CUDA, ко­то­рый, кро­ме все­го про­че­го, так­же со­дер­жит реа­ли­за­цию OpenCL. В плат­фор­ме, со­от­вет­ст­вую­щей ему, бу­дет пе­ре­чис­ле­но од­но уст­рой­ст­во GPU, на­при­мер, NVIDIA GTS250. Со­всем аб­ст­ра­ги­ро­вать­ся, ес­те­ст­вен­но, не уда­ст­ся, так как не­об­хо­ди­мо хо­тя бы при­мер­но пред­став­лять, где про­грам­ма бу­дет счи­тать­ся, но стан­дар­ти­за­ция пра­виль­ная.&lt;br /&gt;
&lt;br /&gt;
Па­мять OpenCL-уст­рой­ст­ва от­де­ле­на от па­мя­ти хост-ма­ши­ны. Пе­ред на­ча­лом вы­чис­ле­ний не­об­хо­ди­мо ско­пи­ро­вать ис­ход­ные дан­ные из ос­нов­ной па­мя­ти хост-ма­ши­ны в гло­баль­ную па­мять OpenCL-уст­рой­ст­ва, а по­сле за­вер­ше­ния вы­чис­ле­ний пе­ре­мес­тить ре­зуль­та­ты об­рат­но. Гло­баль­ная па­мять дос­туп­на всем ра­бо­чим эле­мен­там счет­ной про­грам­мы. Кро­ме нее, OpenCL-уст­рой­ст­во име­ет кон­стант­ную, ло­каль­ную и соб­ст­вен­ную па­мять [private memory]. Кон­стант­ная па­мять дос­туп­на всем ра­бо­чим эле­мен­там по чте­нию. За­пи­сы­вать в нее мож­но из хост-про­грам­мы. Ло­каль­ная па­мять мо­жет ис­поль­зо­вать­ся толь­ко ра­бо­чи­ми эле­мен­та­ми од­ной ра­бо­чей груп­пы. Соб­ст­вен­ная па­мять дос­туп­на толь­ко од­но­му ра­бо­че­му эле­мен­ту. Та­кое раз­де­ле­ние на ти­пы па­мя­ти по­зво­ля­ет бо­лее пол­но ис­поль­зо­вать осо­бен­но­сти гра­фи­че­­ских ус­ко­ри­те­лей. В ча­ст­но­сти, в слу­чае GPU ло­каль­ная па­мять про­еци­ру­ет­ся на раз­де­ляе­мую, а соб­ст­вен­ная — на ре­ги­ст­ро­вую; обе они су­ще­ст­вен­но бы­ст­рее гло­баль­ной. При ис­поль­зо­ва­нии же цен­траль­но­го про­цес­со­ра в ка­че­­ст­ве OpenCL-уст­рой­ст­ва гло­баль­ная, ло­каль­ная и соб­ст­вен­ная па­мя­ти про­еци­ру­ют­ся на ос­нов­ную па­мять, и ско­рость их ра­бо­ты со­от­вет­ст­вен­но оди­на­ко­ва.&lt;br /&gt;
&lt;br /&gt;
В стан­дар­те OpenCL опи­сан функ­цио­наль­ный ин­тер­фейс для хост-ма­ши­ны, язык “OpenCL C” для реа­ли­за­ции счет­ной про­грам­мы и функ­цио­наль­ный ин­тер­фейс для OpenCL-уст­рой­ст­ва.&lt;br /&gt;
&lt;br /&gt;
Ин­тер­фейс для хост-ма­ши­ны — это тот на­бор функ­ций, ко­то­рый мож­но вы­зы­вать из хост-про­грам­мы, на­пи­сан­ной, на­при­мер, на C. Эти функ­ции по­зво­ля­ют по­лу­чать спи­сок OpenCL-уст­ройств, оп­ре­де­лять их па­ра­мет­ры (clGetPlatformIDs, clGetPlatformInfo), ком­пи­ли­ро­вать счет­ную про­грам­му (clCreateProgramWithSource), вы­де­лять и ос­во­бо­ж­дать па­мять на OpenCL-уст­рой­ст­ве (clCreateBuffer, clReleaseMemObject), пе­ре­сы­лать дан­ные (clEnqueueReadBuffer, clEnqueueWriteBuffer), за­пус­кать вы­чис­ле­ния (clEnqueueNDRangeKernel) и осу­ще­ст­в­лять син­хро­ни­за­цию на OpenCL-уст­рой­ст­вах.&lt;br /&gt;
&lt;br /&gt;
Язык OpenCL C ос­но­ван на стан­дарт­ном C, од­на­ко в нем нет стан­дарт­ной биб­лио­те­ки функ­ций ANSI C и ее за­го­ло­воч­ных фай­лов, ука­за­те­лей на функ­ции, мас­си­вов пе­ре­мен­ной дли­ны и би­то­вых по­лей, а так­же в нем за­пре­ще­на ре­кур­сия. Но, с дру­гой сто­ро­ны, в не­го до­бав­ле­ны ра­бо­чие эле­мен­ты, ра­бо­чие груп­пы, век­тор­ные ти­пы, син­хро­ни­за­ция и ква­ли­фи­ка­то­ры ад­рес­но­го про­стран­ст­ва, ко­то­рые оп­ре­де­ля­ют, в гло­баль­ной, ло­каль­ной или соб­ст­вен­ной па­мя­ти рас­по­ла­га­ют­ся дан­ные.&lt;br /&gt;
&lt;br /&gt;
Сбор­ка про­грам­мы&lt;br /&gt;
&lt;br /&gt;
OpenCL C вклю­чен в биб­лио­те­ку для хост-про­грам­мы и вы­зы­ва­ется че­рез ин­тер­фейс для хост-ма­ши­ны. Ком­пи­ля­ция счет­ной про­грам­мы про­из­во­дит­ся в про­цес­се ра­бо­ты хост-про­грам­мы. Это по­зво­ля­ет на­страи­вать­ся на ис­поль­зо­ва­ние то­го или ино­го уст­рой­ст­ва OpenCL в про­цес­се вы­пол­не­ния про­грам­мы. Так­же это даст воз­мож­ность ис­пол­нять OpenCL-про­грам­му без пе­ре­ком­пи­ля­ции хост-про­грам­мы да­же на тех уст­рой­ст­вах, ко­то­рые еще не раз­ра­бо­та­ны. В от­ли­чие от CUDA или MPI, ком­пи­ля­ция OpenCL-про­грам­мы не тре­бу­ет за­пус­ка пре­про­цес­со­ра, хо­тя и не ис­клю­ча­ет его:&lt;br /&gt;
&lt;br /&gt;
gcc helloworld.c -o helloworld -lOpenCL&lt;br /&gt;
&lt;br /&gt;
Воз­мож­но, при ком­пи­ля­ции при­дет­ся ука­зать ме­сто­по­ло­же­ние за­го­ло­воч­ных фай­лов и биб­лио­те­ки libOpenCL. Пред­по­ла­га­ет­ся, что со­от­вет­ст­вую­щие драй­ве­ра и SDK для имею­щих­ся вы­чис­ли­тель­ных уст­ройств уже ус­та­нов­ле­ны. Ес­ли вы не в кур­се, о чем тут го­во­рит­ся, то для оку­чи­ва­ния GPU от Nvidia име­ет смысл за­гля­нуть по ад­ре­су https://developer.nvidia.com/opencl, для Intel есть со­от­вет­ст­вую­щий ре­сурс http://software.intel.com/en-us/vcsource/tools/opencl, а в слу­чае ви­део­кар­ты от AMD мож­но по­рыть­ся на сай­те http://developer.amd.com.&lt;br /&gt;
&lt;br /&gt;
Ин­тер­фейс для вы­чис­ли­тель­но­го уст­рой­ст­ва по­зво­ля­ет ра­бо­тать с ра­бо­чи­ми эле­мен­та­ми и век­тор­ны­ми дан­ны­ми и про­из­во­дить син­хро­ни­за­цию по­то­ков, и со­дер­жит боль­шое чис­ло ма­те­ма­ти­че­­ских и гео­мет­ри­че­­ских функ­ций, функ­ций пе­ча­ти, от­лад­ки, асин­хрон­но­го ко­пи­ро­ва­ния ме­ж­ду раз­ны­ми ви­да­ми па­мя­ти.&lt;br /&gt;
&lt;br /&gt;
При­мер хост-про­грам­мы&lt;br /&gt;
&lt;br /&gt;
В ти­пич­ной хост-про­грам­ме мож­но вы­де­лить сле­дую­щие эта­пы ра­бо­ты:&lt;br /&gt;
&lt;br /&gt;
1 Оп­ре­де­ле­ние дос­туп­ных уст­ройств OpenCL и их ха­рак­те­ри­стик.&lt;br /&gt;
&lt;br /&gt;
2 Фор­ми­ро­ва­ние кон­тек­ста, ко­то­рый вклю­ча­ет вы­бран­ные для ис­поль­зо­ва­ния уст­рой­ст­ва и на­строй­ки.&lt;br /&gt;
&lt;br /&gt;
3 Соз­да­ние оче­ре­ди ко­манд.&lt;br /&gt;
&lt;br /&gt;
4 Соз­да­ние дво­ич­но­го ис­пол­няе­мо­го ко­да счет­ной про­грам­мы по ее ис­ход­но­му тек­сту.&lt;br /&gt;
&lt;br /&gt;
5 Дек­ла­ра­ция яд­ра в дво­ич­ном ко­де счет­ной про­грам­мы.&lt;br /&gt;
&lt;br /&gt;
6 Ре­зер­ви­ро­ва­ние па­мя­ти в OpenCL-уст­рой­ст­вах и ко­пи­ро­ва­ние ту­да дан­ных для счет­ной про­грам­мы.&lt;br /&gt;
&lt;br /&gt;
7 Ини­циа­ли­за­ция за­пус­ка ядер на счет.&lt;br /&gt;
&lt;br /&gt;
8 Ко­пи­ро­ва­ние ре­зуль­та­тов вы­чис­ле­ния из па­мя­ти OpenCL-уст­рой­ст­ва в ос­нов­ную па­мять хост-ма­ши­ны и ос­во­бо­ж­де­ние бло­ков па­мя­ти, за­ре­зер­ви­ро­ван­ных ра­нее на OpenCL-уст­рой­ст­вах.&lt;br /&gt;
&lt;br /&gt;
9 Ос­во­бо­ж­де­ние ре­сур­сов и уда­ле­ние соз­дан­ные ра­нее объ­ек­тов в хост-про­грам­ме по ра­бо­те с OpenCL.&lt;br /&gt;
&lt;br /&gt;
Рас­смот­рим при­мер про­стей­шей хост-про­грам­мы по­эле­мент­но­го сло­же­ния двух век­то­ров.&lt;br /&gt;
&lt;br /&gt;
Для на­ча­ла нуж­но под­клю­чить OpenCL-ин­тер­фейс для хост-про­грам­мы (воз­мож­но, для ва­шей реа­ли­за­ции OpenCL путь до за­го­ло­воч­но­го фай­ла бу­дет не­мно­го дру­гой):&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;CL/opencl.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Под­клю­ча­ем стан­дарт­ные за­го­ло­воч­ные фай­лы:&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для удоб­ст­ва оп­ре­де­ля­ем кон­стан­ты:&lt;br /&gt;
&lt;br /&gt;
#define TEST1_OPENCL1_BUF1_SIZE1 4096&lt;br /&gt;
&lt;br /&gt;
#define SIZE 5 // За­да­ние раз­ме­ра век­то­ров&lt;br /&gt;
&lt;br /&gt;
До­бав­ля­ем ис­ход­ник счет­ной про­грам­мы, со­дер­жа­щей яд­ро vadd для сло­же­ния двух чи­сел:&lt;br /&gt;
&lt;br /&gt;
const char *vaddsrc =&lt;br /&gt;
&lt;br /&gt;
“__kernel void vadd(“&lt;br /&gt;
&lt;br /&gt;
“ __global float *d_A,”&lt;br /&gt;
&lt;br /&gt;
“ __global float *d_B,”&lt;br /&gt;
&lt;br /&gt;
“ __global float *d_C”&lt;br /&gt;
&lt;br /&gt;
“){“&lt;br /&gt;
&lt;br /&gt;
“ unsigned int n;”&lt;br /&gt;
&lt;br /&gt;
“”&lt;br /&gt;
&lt;br /&gt;
// По­лу­че­ние уни­каль­но­го иден­ти­фи­ка­то­ра ра­бо­че­го эле­мен­та&lt;br /&gt;
&lt;br /&gt;
“ n = get_global_id(0);”&lt;br /&gt;
&lt;br /&gt;
“ d_C[n] = d_A[n] + d_B[n];”&lt;br /&gt;
&lt;br /&gt;
”}”;&lt;br /&gt;
&lt;br /&gt;
Здесь d_A и d_B — ука­за­те­ли на складываемые век­то­ры в гло­баль­ной па­мя­ти, d_A — ука­за­тель на ре­зуль­ти­рую­щий век­тор.&lt;br /&gt;
&lt;br /&gt;
Оп­ре­де­ля­ем век­то­ры в ос­нов­ной па­мя­ти хост-ком­пь­ю­те­ра:&lt;br /&gt;
&lt;br /&gt;
float hostdata_A[SIZE] = {10., 20., 30., 40., 50.};&lt;br /&gt;
&lt;br /&gt;
float hostdata_B[SIZE] = {1., 2., 3., 4., 5.};&lt;br /&gt;
&lt;br /&gt;
float hostdata_C[SIZE];&lt;br /&gt;
&lt;br /&gt;
char clcompileflags[TEST1_OPENCL1_BUF1_SIZE1];&lt;br /&gt;
&lt;br /&gt;
char buf[TEST1_OPENCL1_BUF1_SIZE1];&lt;br /&gt;
&lt;br /&gt;
// Од­но­мер­ное про­стран­ст­во уни­каль­ных иден­ти­фи­ка­то­ров ра­бо­чих эле­мен­тов&lt;br /&gt;
&lt;br /&gt;
size_t sizeWork[1] = {SIZE};&lt;br /&gt;
&lt;br /&gt;
На­чи­на­ем про­грам­му с оп­ре­де­ле­ния вспо­мо­га­тель­ных пе­ре­мен­ных:&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
&lt;br /&gt;
// Код ошиб­ки, ко­то­рый воз­вра­ща­ет­ся OpenCL-функ­ция­ми&lt;br /&gt;
&lt;br /&gt;
cl_int clerr;&lt;br /&gt;
&lt;br /&gt;
// Ко­ли­че­ст­во дос­туп­ных OpenCL-плат­форм&lt;br /&gt;
&lt;br /&gt;
cl_uint qty_platforms = 0;&lt;br /&gt;
&lt;br /&gt;
// Спи­сок иден­ти­фи­ка­то­ров OpenCL-плат­форм&lt;br /&gt;
&lt;br /&gt;
cl_platform_id* platforms;&lt;br /&gt;
&lt;br /&gt;
cl_uint ui;&lt;br /&gt;
&lt;br /&gt;
// Ко­ли­че­ст­во дос­туп­ных OpenCL-уст­ройств для ка­ж­дой плат­фор­мы&lt;br /&gt;
&lt;br /&gt;
cl_uint *qty_devices;&lt;br /&gt;
&lt;br /&gt;
cl_device_id **devices;&lt;br /&gt;
&lt;br /&gt;
cl_uint i;&lt;br /&gt;
&lt;br /&gt;
// Де­ск­рип­тор кон­тек­ста&lt;br /&gt;
&lt;br /&gt;
cl_context context1;&lt;br /&gt;
&lt;br /&gt;
size_t parmsz;&lt;br /&gt;
&lt;br /&gt;
// Де­ск­рип­тор оче­ре­ди ко­манд&lt;br /&gt;
&lt;br /&gt;
cl_command_queue queue1;&lt;br /&gt;
&lt;br /&gt;
cl_program program1;&lt;br /&gt;
&lt;br /&gt;
// Де­ск­рип­тор объ­ек­та яд­ра&lt;br /&gt;
&lt;br /&gt;
cl_kernel kernel1;&lt;br /&gt;
&lt;br /&gt;
Оп­ре­де­ля­ем ука­за­те­ли на век­то­ры A и B с ис­ход­ны­ми дан­ны­ми и век­тор C с ре­зуль­ти­рую­щи­ми дан­ны­ми в гло­баль­ной па­мя­ти:&lt;br /&gt;
&lt;br /&gt;
cl_mem remotedata_A;&lt;br /&gt;
&lt;br /&gt;
cl_mem remotedata_B;&lt;br /&gt;
&lt;br /&gt;
cl_mem remotedata_C;&lt;br /&gt;
&lt;br /&gt;
Этап 1 Оп­ре­де­ле­ние дос­туп­ных OpenCL-уст­ройств.&lt;br /&gt;
&lt;br /&gt;
// Оп­ре­де­ле­ние чис­ла OpenCL-плат­форм&lt;br /&gt;
&lt;br /&gt;
clerr = clGetPlatformIDs(0, NULL, &amp;amp;qty_platforms);&lt;br /&gt;
&lt;br /&gt;
// Об­ра­бот­ка оши­бок&lt;br /&gt;
&lt;br /&gt;
if(clerr != CL_SUCCESS){&lt;br /&gt;
&lt;br /&gt;
fprintf(stderr, “Ошиб­ка, код = %d.\n”, clerr);&lt;br /&gt;
&lt;br /&gt;
// Да­лее ана­ло­гич­ные бло­ки опу­ще­ны&lt;br /&gt;
&lt;br /&gt;
return 1;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Вы­де­ле­ние па­мя­ти для хра­не­ния ин­фор­ма­ции о кон­фи­гу­ра­ции и па­ра­мет­ров уст­ройств&lt;br /&gt;
&lt;br /&gt;
platforms = (cl_platform_id*)&lt;br /&gt;
&lt;br /&gt;
malloc(sizeof(cl_platform_id)*qty_platforms);&lt;br /&gt;
&lt;br /&gt;
devices = (cl_device_id**)&lt;br /&gt;
&lt;br /&gt;
malloc(sizeof(cl_device_id*)*qty_platforms);&lt;br /&gt;
&lt;br /&gt;
qty_devices = (cl_uint*)malloc(sizeof(cl_uint)*qty_platforms);&lt;br /&gt;
&lt;br /&gt;
// Об­ра­бот­ка оши­бок вы­де­ле­ния па­мя­ти здесь и да­лее опу­ще­на&lt;br /&gt;
&lt;br /&gt;
// По­лу­че­ние спи­ска иден­ти­фи­ка­то­ров плат­форм&lt;br /&gt;
&lt;br /&gt;
clerr = clGetPlatformIDs(qty_platforms, platforms, NULL);&lt;br /&gt;
&lt;br /&gt;
for (ui=0; ui &amp;lt; qty_platforms; ui++){&lt;br /&gt;
&lt;br /&gt;
// По­лу­че­ние ко­ли­че­ст­ва имею­щих­ся OpenCL-уст­ройств для ка­ж­дой плат­фор­мы&lt;br /&gt;
&lt;br /&gt;
clerr = clGetDeviceIDs(platforms[ui], CL_DEVICE_TYPE_ALL, 0, NULL, &amp;amp;qty_devices[ui]);&lt;br /&gt;
&lt;br /&gt;
// По­лу­че­ние спи­ска иден­ти­фи­ка­то­ров OpenCL-уст­ройств&lt;br /&gt;
&lt;br /&gt;
if(qty_devices[ui]){&lt;br /&gt;
&lt;br /&gt;
devices[ui] = (cl_device_id*)&lt;br /&gt;
&lt;br /&gt;
malloc(qty_devices[ui] * sizeof(cl_device_id));&lt;br /&gt;
&lt;br /&gt;
clerr = clGetDeviceIDs(platforms[ui], CL_DEVICE_TYPE_ALL, qty_devices[ui], devices[ui], NULL);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Этап 2 Фор­ми­ро­ва­ние кон­тек­ста. Соз­да­ет­ся кон­текст, в ко­то­рый вклю­че­ны OpenCL-уст­рой­ст­ва плат­фор­мы 0 (уп­ро­ще­ние):&lt;br /&gt;
&lt;br /&gt;
clerr = CL_SUCCESS;&lt;br /&gt;
&lt;br /&gt;
context1 = clCreateContext(0, qty_devices[0], devices[0], NULL, NULL, &amp;amp;clerr);&lt;br /&gt;
&lt;br /&gt;
Этап 3 Соз­да­ние оче­ре­ди ко­манд. Оче­редь соз­да­ет­ся для ну­ле­во­го уст­рой­ст­ва ну­ле­вой плат­фор­мы:&lt;br /&gt;
&lt;br /&gt;
queue1 = clCreateCommandQueue(context1, devices[0][0], 0, &amp;amp;clerr);&lt;br /&gt;
&lt;br /&gt;
Этап 4 Ком­пи­ля­ция счет­ной про­грам­мы.&lt;br /&gt;
&lt;br /&gt;
program1 = clCreateProgramWithSource(context1, 1, &amp;amp;vaddsrc, NULL, &amp;amp;clerr);&lt;br /&gt;
&lt;br /&gt;
snprintf(clcompileflags, TEST1_OPENCL1_BUF1_SIZE1, “-cl-mad-enable”);&lt;br /&gt;
&lt;br /&gt;
clerr = clBuildProgram(program1, 0, NULL, clcompileflags, NULL, NULL);&lt;br /&gt;
&lt;br /&gt;
Этап 5 Дек­ла­ра­ция яд­ра в счет­ной про­грам­ме.&lt;br /&gt;
&lt;br /&gt;
kernel1 = clCreateKernel(program1, “vadd”, &amp;amp;clerr);&lt;br /&gt;
&lt;br /&gt;
Этап 6 Ре­зер­ви­ро­ва­ние па­мя­ти в OpenCL-уст­рой­ст­ве. При этом век­то­ры A и B с исход­ными дан­ными ко­пи­ру­ют­ся из ос­нов­ной па­мя­ти хост-ма­ши­ны в па­мять OpenCL-уст­рой­ст­ва.&lt;br /&gt;
&lt;br /&gt;
remotedata_A = clCreateBuffer( context1, CL_MEM_READ_ONLY |CL_MEM_COPY_HOST_PTR, sizeof(int) * SIZE, hostdata_A, NULL);&lt;br /&gt;
&lt;br /&gt;
remotedata_B = clCreateBuffer(context1, CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR, sizeof(int) * SIZE, hostdata_B, NULL);&lt;br /&gt;
&lt;br /&gt;
remotedata_C = clCreateBuffer(context1, CL_MEM_WRITE_ONLY | CL_MEM_COPY_HOST_PTR, sizeof(int) * SIZE, hostdata_C, NULL);&lt;br /&gt;
&lt;br /&gt;
Этап 7 За­пуск яд­ра на вы­чис­ле­ния.&lt;br /&gt;
&lt;br /&gt;
clSetKernelArg(kernel1, 0, sizeof(cl_mem), (void*)&amp;amp;remotedata_A);&lt;br /&gt;
&lt;br /&gt;
clSetKernelArg(kernel1, 1, sizeof(cl_mem), (void*)&amp;amp;remotedata_B);&lt;br /&gt;
&lt;br /&gt;
clSetKernelArg(kernel1, 2, sizeof(cl_mem), (void*)&amp;amp;remotedata_C);&lt;br /&gt;
&lt;br /&gt;
clerr = clEnqueueNDRangeKernel(queue1, kernel1, 1, NULL, sizeWork, NULL, 0, NULL, NULL);&lt;br /&gt;
&lt;br /&gt;
Этап 8 Ко­пи­ро­ва­ние ре­зуль­та­тов в ос­нов­ную па­мять хост-ма­ши­ны и ос­во­бо­ж­де­ние па­мя­ти в OpenCL-уст­рой­ст­ве.&lt;br /&gt;
&lt;br /&gt;
// Ко­пи­ро­ва­ние ре­зуль­ти­рую­ще­го век­то­ра&lt;br /&gt;
&lt;br /&gt;
clEnqueueReadBuffer(queue1, remotedata_C, CL_TRUE, 0, SIZE * sizeof(int), hostdata_C, 0, NULL, NULL);&lt;br /&gt;
&lt;br /&gt;
// Ос­во­бо­ж­де­ние па­мя­ти на OpenCL-уст­рой­ст­ве&lt;br /&gt;
&lt;br /&gt;
clReleaseMemObject(remotedata_A);&lt;br /&gt;
&lt;br /&gt;
clReleaseMemObject(remotedata_B);&lt;br /&gt;
&lt;br /&gt;
clReleaseMemObject(remotedata_C);&lt;br /&gt;
&lt;br /&gt;
Этап 9 Ос­во­бо­ж­де­ние ре­сур­сов.&lt;br /&gt;
&lt;br /&gt;
clReleaseKernel(kernel1);&lt;br /&gt;
&lt;br /&gt;
clReleaseProgram(program1);&lt;br /&gt;
&lt;br /&gt;
clReleaseCommandQueue(queue1);&lt;br /&gt;
&lt;br /&gt;
clReleaseContext(context1);&lt;br /&gt;
&lt;br /&gt;
free(qty_devices);&lt;br /&gt;
&lt;br /&gt;
free(devices);&lt;br /&gt;
&lt;br /&gt;
free(platforms);&lt;br /&gt;
&lt;br /&gt;
А те­перь на­ко­нец-то мож­но вы­дох­нуть и рас­пе­ча­тать ре­зуль­ти­рую­щий век­тор:&lt;br /&gt;
&lt;br /&gt;
for(i = 0; i &amp;lt; SIZE; i++)&lt;br /&gt;
&lt;br /&gt;
printf(“ %f\n”, hostdata_C[i]);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Не­смот­ря на ви­ди­мую слож­ность, рас­смот­рен­ный при­мер мак­си­маль­но уп­ро­щен. В ча­ст­но­сти, мы про­из­во­ди­ли счет на фик­си­ро­ван­ном ну­ле­вом уст­рой­ст­ве ну­ле­вой плат­фор­мы. В ре­аль­но­сти мы пред­по­чли бы бо­лее осоз­нан­но вы­брать уст­рой­ст­во для сче­та — на­при­мер, воз­мож­но, за­хо­те­ли бы по­ис­кать сна­ча­ла GPU от NVIDIA. Для это­го в функ­ции clGetDeviceIDs не­об­хо­ди­мо за­ме­нить CL_DEVICE_TYPE_ALL на CL_DEVICE_TYPE_GPU.&lt;br /&gt;
&lt;br /&gt;
В бо­лее слож­ных реа­ли­за­ци­ях счет мо­жет про­из­во­дить­ся на не­сколь­ких раз­но­тип­ных OpenCL-уст­рой­ст­вах. Ти­пич­ная схе­ма ор­га­ни­за­ции та­ко­го сче­та за­клю­ча­ет­ся в соз­да­нии не­сколь­ких кон­тек­стов или не­сколь­ких оче­ре­дей в од­ном кон­тек­сте, ка­ж­дая из ко­то­рых ас­со­ции­ро­ва­на с не­ко­то­рым уст­рой­ст­вом.&lt;br /&gt;
&lt;br /&gt;
Дру­гое уп­ро­ще­ние свя­за­но с тем, что текст счет­ной про­грам­мы с ядром мы хра­ним как кон­стан­ту в хост-про­грам­ме. Счет­ных про­грамм и их ядер мо­жет быть дос­та­точ­но мно­го, и в пол­но­цен­ной реа­ли­за­ции име­ет смысл хра­нить их в от­дель­ных фай­лах и за­гру­жать при не­об­хо­ди­мо­сти.&lt;br /&gt;
&lt;br /&gt;
В за­клю­че­ние не­об­хо­ди­мо от­ме­тить, что ис­поль­зо­ва­ние OpenCL не ис­клю­ча­ет воз­мож­ность при­ме­не­ния дру­гих тех­но­ло­гий по­строе­ния па­рал­лель­ных про­грамм в од­ной про­грам­ме. На­при­мер, на кла­сте­рах с мно­го­про­цес­сор­ны­ми уз­ла­ми или уз­ла­ми с GPU це­ле­со­об­раз­но стро­ить гиб­рид­ные про­грам­мы на ба­зе OpenCL и MPI. OpenCL в них бу­дет от­ве­чать за ор­га­ни­за­цию па­рал­лель­но­го сче­та внут­ри од­но­го уз­ла, а MPI — за па­рал­лель­ное ис­пол­не­ние на уров­не кла­сте­ра, ме­ж­ду не­сколь­ки­ми уз­ла­ми. |&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B0%D0%B7%C2%AD%D0%B2%D0%B5%D1%80%C2%AD%D1%82%D1%8B%C2%AD%D0%B2%D0%B0%D1%82%D1%8C_%D1%81%D0%B5%D1%80%C2%AD%D0%B2%D0%B5%D1%80</id>
		<title>LXF171:Раз­вер­ты­вать сер­вер</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B0%D0%B7%C2%AD%D0%B2%D0%B5%D1%80%C2%AD%D1%82%D1%8B%C2%AD%D0%B2%D0%B0%D1%82%D1%8C_%D1%81%D0%B5%D1%80%C2%AD%D0%B2%D0%B5%D1%80"/>
				<updated>2018-11-18T11:46:35Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* Управ­ле­ние че­рез Webmin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Учебники]]&lt;br /&gt;
'''Вир­туа­ли­за­ция. Раз­ве­рните web-при­ло­же­ния и управ­ляй­те ими в вир­ту­аль­ных мо­ду­лях.'''&lt;br /&gt;
== Turnkey Linux: Web-мо­ду­ли ==&lt;br /&gt;
''Ма­янк Шар­ма хочет ухитриться и web-приложения настроить, и пальчики при этом не обжечь.''&lt;br /&gt;
[[Файл:LXF170.tut pi.expert.png  |left | thumb|100px|'''Наш эксперт''' Фа­нат от­кры­того ПО Ма­янк Шар­ма был пи­шу­щим ре­дак­то­ром Linux.com и печатал­ся в LinuxToday, Digg и PC Plus]] &lt;br /&gt;
Раз­во­ра­чи­вать web-при­ло­же­ния с се­те­вым дос­ту­пом на web-сер­ве­ре — ва­ри­ант не для ка­ж­до­го. Во-пер­вых, нуж­но от­лич­но знать кон­фи­гу­ра­цию сво­ей се­ти. Вдоба­вок web-при­ло­же­ни­ям нуж­на ку­ча ин­фра­струк­тур­ных про­грамм, от сер­ве­ров баз дан­ных до биб­лио­тек, и на­страи­вать их со­вме­ст­ную ра­бо­ту мож­но ча­са­ми. А ес­ли поль­зо­ва­те­ли при­ло­же­ния бу­дут об­ра­щать­ся к нему из­вне, при­дет­ся тща­тель­но ис­сле­до­вать кон­фи­гу­ра­цию web-сер­ве­ра на пред­мет дыр в безопасности.&lt;br /&gt;
&lt;br /&gt;
И здесь на по­мощь при­хо­дит Turnkey Linux. Из его вир­ту­аль­ных мо­ду­лей но­вый сер­вер раз­во­ра­чи­ва­ет­ся поч­ти мгно­вен­но. Вир­ту­аль­ный мо­дуль Turnkey — са­мо­дос­та­точ­ная сис­те­ма, со­дер­жа­щая пол­но­функ­цио­наль­ный эк­зем­п­ляр web-при­ло­же­ния с уре­зан­ным на­бо­ром ком­по­нен­тов опе­ра­ци­он­ной сис­те­мы. Сис­те­ма ра­бо­та­ет из ко­роб­ки, и ее мож­но раз­вер­нуть на «го­лом же­ле­зе» или вир­ту­аль­ном уст­рой­ст­ве.&lt;br /&gt;
&lt;br /&gt;
Turnkey Linux ис­поль­зу­ет JeOS (Just Enough Operating System — ми­ни­маль­но не­об­хо­ди­мую ОС), это по­зво­ля­ет умень­шить раз­мер об­раза. На дан­ный мо­мент все мо­ду­ли Turnkey Linux ба­зи­ру­ют­ся на Debian 6.0.5 Squeeze. Эта ба­за, с не­ко­то­ры­ми до­пол­ни­тель­ны­ми при­ло­же­ния­ми, ко­то­рых нет в офи­ци­аль­ных ре­по­зи­то­ри­ях Debian, об­ра­зу­ет ос­нов­ной вир­ту­аль­ный мо­дуль Turnkey Linux — Core (см. врез­ку), на ко­то­ром стро­ят­ся все ос­таль­ные мо­ду­ли.&lt;br /&gt;
&lt;br /&gt;
На­при­мер, в вир­ту­аль­ном мо­ду­ле WordPress ис­поль­зу­ет­ся по­след­няя вер­сия WordPress в ми­ни­маль­ной сис­те­ме Debian. Что­бы управ­лять CMS бы­ло про­ще, в вир­ту­аль­ной сис­те­ме так­же есть ме­ха­низм за­груз­ки по­след­них об­нов­ле­ний.&lt;br /&gt;
&lt;br /&gt;
Для удоб­ст­ва в вир­ту­аль­ный мо­дуль так­же вве­де­но боль­ше де­сят­ка по­пу­ляр­ных пла­ги­нов WordPress, и, ра­зу­ме­ет­ся, мож­но ус­та­но­вить еще, как и в лю­бой дру­гой ус­та­нов­ке WordPress. Раз­ра­бот­чи­ки так­же по­зво­ля­ют на­стро­ить ав­то­ма­ти­че­­ское об­нов­ле­ние пла­ги­нов в вир­ту­аль­ном мо­ду­ле. Удоб­нее все­го то, что управ­лять вир­ту­аль­ным мо­ду­лем мож­но че­рез SSL-под­клю­че­ние.&lt;br /&gt;
&lt;br /&gt;
В чет­вер­тую го­дов­щи­ну Turnkey Linux вы­шел ре­лиз 12.0 биб­лио­тек вир­ту­аль­ных мо­ду­лей, и те­перь он вклю­ча­ет бо­лее 100 web-при­ло­же­ний. В до­пол­не­ние к WordPress под­дер­жи­ва­ют­ся дру­гие по­пу­ляр­ные и не очень по­пу­ляр­ные сис­те­мы управ­ле­ния кон­тен­том, та­кие как Joomla, Drupal, Concrete5, Elgg, Clipbucket и т. д.&lt;br /&gt;
&lt;br /&gt;
Есть так­же мо­ду­ли, яв­ляю­щие­ся пре­крас­ны­ми плат­фор­ма­ми для раз­ра­бот­ки при­ло­же­ний; на­при­мер, стек LAMP, мо­дуль .NET для раз­вер­ты­ва­ния web-при­ло­же­ний .NET в Linux и раз­лич­ные вер­сии SDK Google AppEngine. Ес­ли вам ин­те­рес­но, все мо­дули Turnkey Linux на 100 % со­сто­ят из от­кры­то­го ко­да и бес­плат­ны для за­груз­ки.&lt;br /&gt;
&lt;br /&gt;
===Сред­ст­ва ре­мес­ла===&lt;br /&gt;
&lt;br /&gt;
Мо­ду­ли Turnkey Linux дос­туп­ны в раз­лич­ных фор­ма­тах в за­ви­си­мо­сти от уст­ройств, на ко­то­рых вы хо­ти­те их раз­во­ра­чи­вать. Од­на­ко важ­но то, что по­сле на­строй­ки и за­пус­ка они пре­дос­тав­ляют вам оди­на­ко­вый ин­тер­фейс для раз­вер­ты­ва­ния и управ­ле­ния web-при­ло­же­ни­ем. На дан­ный мо­мент ка­ж­дый вир­ту­аль­ный мо­дуль Turnkey Linux дос­ту­пен в шес­ти фор­ма­тах. Из мо­ду­ля в фор­ма­те ISO мож­но ус­та­но­вить вир­ту­аль­ный мо­дуль на фи­зи­че­­ский ком­пь­ю­тер, а так­же на вир­ту­аль­ные ма­ши­ны. Это об­раз Live CD, в ко­то­ром для ус­та­нов­ки сис­те­мы ис­поль­зу­ет­ся мо­ди­фи­ци­ро­ван­ный ус­та­нов­щик Debian.&lt;br /&gt;
&lt;br /&gt;
Хо­тя ISO-об­раз при­го­ден для ус­та­нов­ки на вир­ту­аль­ную ма­ши­ну, он не оп­ти­ми­зи­ро­ван для вир­ту­аль­ных уст­ройств. Луч­ше бу­дет взять об­раз ли­бо VMDK, ли­бо OVF. Пер­вый пред­на­зна­чен для уст­ройств с рас­ши­ре­ния­ми вир­туа­ли­за­ции, на­при­мер, Intel VT-x, а вто­рой по­ла­дит и с бо­лее ста­ры­ми уст­рой­ст­ва­ми. И об­ра­зы OVF, и об­ра­зы VMDK бу­дут ра­бо­тать в бес­плат­ных про­грам­мах вир­туа­ли­за­ции VirtualBox и VMware Player. Сбор­ки OpenStack, как сле­ду­ет из на­зва­ния, оп­ти­ми­зи­ро­ва­ны для раз­вер­ты­ва­ния на об­лач­ной плат­фор­ме OpenStack. Ана­ло­гич­но, сбор­ки OpenVZ и Xen — для со­от­вет­ст­вую­щих вир­туа­ли­за­ци­он­ных сред.&lt;br /&gt;
&lt;br /&gt;
Раз­ме­ры мо­ду­лей раз­лич­ны, но боль­шин­ст­во из них ме­нее 300 МБ, а ISO-об­ра­зы мень­ше, чем об­ра­зы со­от­вет­ст­вую­щих вир­ту­аль­ных ре­ше­ний.&lt;br /&gt;
&lt;br /&gt;
===Гад­жет, вперед!===&lt;br /&gt;
&lt;br /&gt;
Пер­вый шаг по­сле за­груз­ки мо­ду­ля из ре­по­зи­то­рия Turnkey Linux — за­пус­тить его. Этот шаг за­ви­сит от ти­па вир­ту­аль­но­го мо­ду­ля.&lt;br /&gt;
&lt;br /&gt;
Ес­ли вы за­гру­зи­ли ISO-об­раз, за­пи­ши­те его на диск и за­гру­зи­тесь с не­го. По­сле это­го следуй­те ин­ст­рук­ция­м из врез­ки «Ус­та­новим вир­ту­аль­ный мо­дуль» для ус­та­нов­ки и на­строй­ки мо­ду­ля.&lt;br /&gt;
&lt;br /&gt;
Об­раз OVF мож­но им­пор­ти­ро­вать в VirtualBox, зай­дя в File &amp;gt; Import Appliance [Файл &amp;gt; Им­пор­ти­ро­вать мо­дуль]; при этом соз­да­ст­ся вир­ту­аль­ная ма­ши­на с на­строй­ка­ми из мо­ду­ля. А ес­ли у вас об­раз VMDK, сна­ча­ла нуж­но соз­дать вир­ту­аль­ную ма­ши­ну в VirtualBox, как обыч­но, но вме­сто соз­да­ния но­во­го вир­ту­аль­но­го дис­ка вы­брать имеющийся об­раз и ука­зать за­гру­жен­ный файл об­раза VMDK.&lt;br /&gt;
{{Врезка|right|Заголовок=Скорая помощь |Ширина=10%|Содержание=В ка­на­ле Turnkey Linux на YouTube есть мно­го ро­ли­ков с ин­ст­рук­ция­ми: www.youtube.com/turnkeylinux. &lt;br /&gt;
}} &lt;br /&gt;
По­сле это­го за­пус­кай­те вир­ту­аль­ную ма­ши­ну. Не­важ­но, ус­та­нав­ли­ва­ли ли вы мо­дуль из фай­ла ISO или вос­поль­зо­ва­лись го­то­вым: про­цесс на­строй­ки один. Он опи­сан во врез­ке «На­строи­м вир­ту­аль­ный мо­дуль».&lt;br /&gt;
&lt;br /&gt;
На­стро­ен­ный мо­дуль ав­то­ма­ти­че­­ски за­гру­зит­ся, и поя­вит­ся кон­соль на­строй­ки со ссыл­ка­ми на ути­ли­ты и сер­ви­сы, за­пу­щен­ные в вир­ту­аль­ном мо­ду­ле.&lt;br /&gt;
&lt;br /&gt;
Во всех мо­ду­лях есть как ми­ни­мум две ути­ли­ты. Web-обо­лоч­ка вы­зы­ва­ет эму­ля­тор тер­ми­на­ла Shell-in-a-Box на ос­но­ве AJAX, с по­мо­щью ко­то­ро­го осуществляется вход на уда­лен­ный сер­вер из брау­зе­ра.&lt;br /&gt;
&lt;br /&gt;
===Управ­ле­ние че­рез Webmin===&lt;br /&gt;
&lt;br /&gt;
Кро­ме то­го, есть web-ути­ли­та на­строй­ки Webmin — с ее по­мо­щью мож­но ме­нять все на­строй­ки на уда­лен­ном сер­ве­ре: на­при­мер, на­страи­вать за­да­ния cron, про­смат­ри­вать лог-фай­лы и управ­лять вы­пол­няю­щи­ми­ся про­цес­са­ми. Ес­ли в ва­шем мо­ду­ле есть при­ло­же­ние, ра­бо­таю­щее с MySQL, в нем так­же бу­дет PHPMyAdmin для ад­ми­ни­ст­ри­ро­ва­ния баз дан­ных MySQL.&lt;br /&gt;
{{Врезка|left|Заголовок=TurnKey Core |Ширина=20%|Содержание=Все вир­ту­аль­ные мо­ду­ли Turnkey Linux стро­ят­ся по­верх мо­ду­ля Turnkey Core. Кро­ме ди­ст­ри­бу­ти­ва Debian 6.0.5, в нем есть все ком­по­нен­ты, не­об­хо­ди­мые всем про­чим мо­ду­лям.&lt;br /&gt;
&lt;br /&gt;
В мо­ду­ле Core так­же на­строе­на ав­то­ма­ти­че­­ская за­груз­ка об­нов­ле­ний безо­пас­но­сти для ус­та­нов­лен­ных ком­по­нен­тов из офи­ци­аль­ных ре­по­зи­то­ри­ев Debian. По умол­ча­нию Turnkey по­про­сит об­но­вить­ся во вре­мя ус­та­нов­ки, а так­же ка­ж­дую ночь в 4 ча­са ут­ра. Так­же в мо­ду­ле Core есть все спе­циа­ли­зи­ро­ван­ные ути­ли­ты TurnKey Linux для ре­зерв­но­го ко­пи­ро­ва­ния и ми­гра­ции сер­ве­ров, web-обо­лоч­ка AJAX и ин­тер­фейс удаленного управ­ле­ния Webmin.&lt;br /&gt;
&lt;br /&gt;
Хо­тя мо­дуль Core дос­ту­пен для за­груз­ки, боль­шин­ст­ву поль­зо­ва­те­лей он бу­дет не слиш­ком ин­те­ре­сен. Ес­ли вы хо­ти­те раз­вер­нуть соб­ст­вен­ное web-при­ло­же­ние, луч­ше вос­поль­зо­вать­ся го­то­вым мо­ду­лем, та­ким как LAMP или LAPP. К мо­ду­лю Core луч­ше все­го при­ме­нять на­бор скрип­тов TKLPatch для на­строй­ки мо­ду­ля. &lt;br /&gt;
}} &lt;br /&gt;
Кон­соль так­же вы­во­дит ин­фор­ма­цию по под­клю­че­нию к мо­ду­лю че­рез SSH/SFTP и ад­рес, по ко­то­ро­му за­пу­ще­но при­ло­же­ние, по­стро­ен­ное на ба­зе это­го вир­ту­аль­но­го мо­ду­ля. По это­му ад­ре­су к при­ло­же­нию мож­но об­ра­тить­ся из лю­бой точ­ки се­ти и на­стро­ить его точ­но так же, как ес­ли бы вы ус­та­но­ви­ли его вруч­ную.&lt;br /&gt;
&lt;br /&gt;
Turnkey Linux не мо­ди­фи­ци­ру­ет при­ло­же­ния, и при не­об­хо­ди­мо­сти мож­но об­ра­тить­ся к офи­ци­аль­ной до­ку­мен­та­ции лю­бо­го при­ло­же­ния.&lt;br /&gt;
&lt;br /&gt;
Ес­ли на­до из­ме­нить файл при на­строй­ке web-при­ло­же­ния, мож­но под­клю­чить­ся к мо­ду­лю по SSH или вос­поль­зо­вать­ся web-обо­лоч­кой че­рез HTTPS. Что­бы ско­пи­ро­вать файл в мо­дуль, про­сто под­клю­чи­тесь к не­му лю­бым FTP-кли­ен­том, ис­поль­зуя па­роль ад­ми­ни­ст­ра­то­ра, за­дан­ный при на­строй­ке мо­ду­ля.&lt;br /&gt;
&lt;br /&gt;
===У ха­ба===&lt;br /&gt;
&lt;br /&gt;
На­ря­ду с са­ми­ми мо­ду­ля­ми в Turnkey Linux есть не­сколь­ко спе­ци­аль­ных ути­лит, ко­то­рые по­мо­гут управ­лять мо­ду­ля­ми. Глав­ная — Turnkey Hub. С ее по­мо­щью мож­но за­пус­кать мо­ду­ли Turnkey на об­ла­ке Amazon EC2 и управ­лять ими. В мо­ду­лях, соз­дан­ных на EC2 с по­мо­щью Hub, ис­поль­зу­ет­ся оп­ти­ми­зи­ро­ван­ная, но ре­дак­ти­руе­мая по­ли­ти­ка бранд­мау­эра. По умол­ча­нию раз­ре­шен тра­фик толь­ко че­рез пор­ты, ис­поль­зуе­мые при­ло­же­ни­ем.&lt;br /&gt;
{{Врезка|left|Заголовок=Скорая помощь |Ширина=10%|Содержание=Убе­ди­тесь, что в вир­ту­аль­ной ма­ши­не на­стро­ен адап­тер «мост», что­бы мож­но бы­ло об­ра­щать­ся к ней с лю­бо­го ком­пь­ю­те­ра се­ти. &lt;br /&gt;
}} &lt;br /&gt;
С по­мо­щью Hub так­же мож­но на­блю­дать за уда­лен­ны­ми сер­ве­ра­ми и от­сле­жи­вать ис­поль­зо­ва­ние про­цес­со­ра, опе­ра­ции вво­да/вы­во­да и се­те­вой тра­фик. Hub так­же уп­ро­ща­ет бо­лее слож­ные опе­ра­ции, на­при­мер, под­клю­че­ние дис­ков NAS к уда­лен­ным об­лач­ным сер­ве­рам.&lt;br /&gt;
&lt;br /&gt;
Есть еще ути­ли­та ре­зерв­но­го ко­пи­ро­ва­ния и ми­гра­ции — Turnkey Linux Backup and Migration (TKLBAM). По умол­ча­нию она пред­на­зна­че­на для ра­бо­ты с об­лач­ным сер­ви­сом Amazon S3. На­стро­ить по­ве­де­ние ути­ли­ты мож­но в мо­ду­ле Webmin Backup and Migration [Ре­зерв­ное ко­пи­ро­ва­ние и ми­гра­ция], а про­смат­ри­вать ре­зерв­ные ко­пии и управ­лять ими — из Hub.&lt;br /&gt;
&lt;br /&gt;
И Hub, и TKLBAM бес­плат­ны, но для ре­зерв­но­го ко­пи­ро­ва­ния на Amazon S3 нуж­но за­ре­ги­ст­ри­ро­вать­ся на об­лач­ном сер­ви­се. Од­на­ко сер­вис до­воль­но де­шев: рас­хо­ды со­ставят не бо­лее £ 0,07 за ГБ в ме­сяц, а но­вые поль­зо­ва­те­ли по­лу­ча­ют 5 ГБ бес­плат­но.&lt;br /&gt;
&lt;br /&gt;
Кро­ме то­го, с по­мо­щью TKLBAM мож­но вруч­ную соз­да­вать и вос­ста­нав­ли­вать ре­зерв­ные ко­пии фай­лов ло­каль­но. Пусть вы под­клю­чи­ли ло­каль­ный диск к вир­ту­аль­но­му мо­ду­лю в точ­ке /mnt/backupdrive; за­пус­ти­те обо­лоч­ку и вве­ди­те сле­дую­щие ко­ман­ды:&lt;br /&gt;
&lt;br /&gt;
$ tklbam-backup --address file:///mnt/backupdrive/tklbam/backup&lt;br /&gt;
&lt;br /&gt;
$ tklbam-escrow /mnt/backupdrive/tklbam/key&lt;br /&gt;
&lt;br /&gt;
Ключ escrow [за­ло­го­вый] мож­но ис­поль­зо­вать для ау­тен­ти­фи­ка­ции и вос­ста­нов­ле­ния ре­зерв­ной ко­пии да­же в дру­гом мо­ду­ле TurnKey та­ким об­ра­зом:&lt;br /&gt;
&lt;br /&gt;
$ tklbam-restore --address file:///mnt/backupdrive/tklbam/backup --keyfile=/mnt/backupdrive/tklbam/key&lt;br /&gt;
&lt;br /&gt;
Не те­ряй­те ключ escrow. С его по­мо­щью мож­но вос­ста­но­вить ре­зерв­ную ко­пию, да­же ес­ли вы за­бы­ли па­роль­ную фра­зу за­шиф­ро­ван­ных ре­зерв­ных ко­пий.&lt;br /&gt;
&lt;br /&gt;
Еще один туз в ру­ка­ве Turnkey Linux — его бес­плат­ный сер­вис ди­на­ми­че­­ско­­го DNS tklapp.com. Он по­зво­ля­ет об­ра­щать­ся к мо­ду­лю из­вне се­ти и да­ет ему удоб­ное для за­по­ми­на­ния имя.&lt;br /&gt;
&lt;br /&gt;
Для на­строй­ки сер­ви­са ис­поль­зу­ет­ся ути­ли­та HubDNS, ко­то­рая ус­та­нов­ле­на во всех мо­ду­лях Turnkey Linux. Пе­ред на­строй­кой зай­ди­те в свою учет­ную за­пись Turnkey Hub и пе­ре­пи­ши­те свой ключ Hub API с вклад­ки User Profile [Про­филь поль­зо­ва­те­ля]. За­тем от­крой­те тер­ми­нал и вве­ди­те сле­дую­щие ко­ман­ды:&lt;br /&gt;
&lt;br /&gt;
$ hubdns-init HUB_APIKEY foo.tklapp.com&lt;br /&gt;
&lt;br /&gt;
$ hubdns-update&lt;br /&gt;
&lt;br /&gt;
Го­то­во. За­ме­ни­те HUB_APIKEY на свой ключ, а foo — на же­лае­мое имя сер­ве­ра. Ес­ли оно дос­туп­но, HubDNS за­ре­зер­ви­рует его для вас. Вто­рая ко­ман­да свя­жет ваш IP-ад­рес с соз­дан­ным име­нем до­ме­на. Да­вай­те вос­поль­зу­ем­ся мо­ду­лем Torrent Server и вер­нем ста­рый не­нуж­ный ком­пь­ю­тер к жиз­ни, пре­вра­тив его в тор­рент-сер­вер без мо­ни­то­ра.&lt;br /&gt;
&lt;br /&gt;
За­гру­зи­те ISO-об­раз, за­пи­ши­те его на ком­пакт-диск и ус­та­но­ви­те его на ком­пь­ю­те­ре с по­мо­щью ус­та­нов­щи­ка. Те­перь за­пус­ти­те брау­зер на дру­гом ком­пь­ю­те­ре той же се­ти и вве­ди­те в ад­рес­ную стро­ку IP-ад­рес сер­ве­ра. От­кро­ет­ся па­нель управ­ле­ния тор­рент-сер­ве­ра.&lt;br /&gt;
&lt;br /&gt;
Изю­мин­ка это­го мо­ду­ля — брау­зер­ный фай­ло­вый ме­нед­жер AjaXplorer, в ко­то­ром мож­но ра­бо­тать с фай­ла­ми и ка­та­ло­га­ми. У при­ло­же­ния удоб­ный ин­тер­фейс, и есть мо­биль­ные вер­сии для iOS и Android.&lt;br /&gt;
&lt;br /&gt;
===Трудолюбивый ос­лик===&lt;br /&gt;
&lt;br /&gt;
Что­бы за­гру­жать тор­рен­ты, нуж­но под­клю­чить мо­дуль к сво­ему эк­зем­п­ля­ру MLDonkey [donkey — англ. ослик]. Для это­го зай­ди­те в ин­тер­фейс Basic [Ос­нов­ной], пе­рей­ди­те на вклад­ку Clients [Кли­ен­ты] и на­жми­те кноп­ку Connect [Под­клю­чить] ря­дом с сер­ве­ром, за­пу­щен­ном на 127.0.0.1:4001.&lt;br /&gt;
&lt;br /&gt;
Те­перь от­крой­те свой лю­би­мый тор­рент-тре­кер и ско­пи­руй­те ссыл­ку на файл .torrent, ко­то­рый хо­ти­те за­гру­зить. В ин­тер­фей­се Basic пе­рей­ди­те на вклад­ку Links [Ссыл­ки], вставь­те URL в тек­сто­вое по­ле и на­жми­те кноп­ку Load Link [За­гру­зить ссыл­ку] для за­груз­ки тор­рен­та.&lt;br /&gt;
&lt;br /&gt;
За­гру­жен­ный тор­рент ска­ни­ру­ет­ся встро­ен­ным ан­ти­ви­ру­сом ClamAV и по­ме­ща­ет­ся в ка­та­лог /var/lib/mldonkey/incoming.&lt;br /&gt;
&lt;br /&gt;
С по­мо­щью MLDonkey вы сможете еще и раз­да­вать свои тор­рен­ты. Поскольку все уже на­строе­но, пе­рей­ди­те на ин­тер­фейс Advanced [Про­дви­ну­тый] в па­не­ли управ­ле­ния и пе­рей­ди­те на Help+ &amp;gt; Sysinfo [Справ­ка &amp;gt; Ин­фор­ма­ция о сис­те­ме] для про­смот­ра па­ра­мет­ров. Ка­та­ло­ги по умол­ча­нию при­ве­де­ны вни­зу стра­ни­цы.&lt;br /&gt;
&lt;br /&gt;
MLDonkey по­зво­ля­ет раз­да­вать как от­дель­ные фай­лы (на­при­мер, my-fav-distro.iso), так и груп­пы фай­лов в ка­та­ло­гах (на­при­мер, the_top_distros/). Что­бы раз­да­вать ин­ди­ви­ду­аль­ные фай­лы, по­мес­ти­те их в ка­та­лог /var/lib/mldonkey/incoming/files. Для раз­да­чи ка­та­ло­гов по­мес­ти­те их в ка­та­лог /var/lib/mldonk&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|Заголовок= Скорая помощь&lt;br /&gt;
|Ширина=10%|Содержание= В Turnkey Linux в об­щей слож­но­сти 606 за­гру­жае­мых мо­ду­лей сум­мар­ным объ­е­мом 120 ГБ.ey/incoming/directories.}} &lt;br /&gt;
Те­перь на­до соз­дать файл .torrent — для это­го ну­жен тре­кер, ко­то­рый опо­вес­тит о на­ли­чии это­го фай­ла дру­гих кли­ен­тов. По умол­ча­нию MLDonkey от­сле­жи­ва­ет тор­рен­ты в ло­каль­ной се­ти с по­мо­щью IP-ад­ре­са сер­ве­ра, на ко­то­ром за­пу­щен.&lt;br /&gt;
&lt;br /&gt;
Что­бы вос­поль­зо­вать­ся внеш­ним тре­ке­ром, придется из­ме­нить на­строй­ки MLDonkey. Са­мый про­стой спо­соб это сде­лать — пе­рей­ти к на­строй­кам кли­ен­та [Client] в ос­нов­ном ин­тер­фей­се и взгля­нуть на по­ле BT-default_tracker. По умол­ча­нию оно пус­то — это оз­на­ча­ет, что ис­поль­зу­ет­ся ло­каль­ный тре­кер.&lt;br /&gt;
&lt;br /&gt;
Что­бы ука­зать внеш­ний тре­кер, вве­ди­те его ад­рес в по­ле, на­при­мер, http://bit.ly/zJ4xF6, это тре­кер для LinuxTracker.org. Те­перь пе­рей­ди­те в ин­тер­фейс Advanced и вве­ди­те ко­ман­ду compute_torrent в боль­шое тек­сто­вое по­ле, что­бы ука­зать фай­лы, ко­то­рые нуж­но раз­дать.&lt;br /&gt;
&lt;br /&gt;
На­при­мер, compute_torrent/srv/storage/incoming/files/my-fav-distro.iso сге­не­ри­ру­ет файл .torrent в ка­та­ло­ге /var/lib/mldonkey/torrents/seeded. Те­перь пе­рей­ди­те в Transfers &amp;gt; Uploads [Пе­ре­да­ча &amp;gt; За­груз­ки], что­бы убе­дить­ся, что тор­рен­ты благополучно раз­да­ют­ся.&lt;br /&gt;
&lt;br /&gt;
Вот и все. Те­перь мож­но ос­та­вить за­гру­жен­ные фай­лы и за­ра­ба­ты­вать оч­ки от сво­их одноранговых парт­не­ров-пи­ров [peer] за раз­да­чу тор­рен­тов. |&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B0%D0%B7%C2%AD%D0%B2%D0%B5%D1%80%C2%AD%D1%82%D1%8B%C2%AD%D0%B2%D0%B0%D1%82%D1%8C_%D1%81%D0%B5%D1%80%C2%AD%D0%B2%D0%B5%D1%80</id>
		<title>LXF171:Раз­вер­ты­вать сер­вер</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B0%D0%B7%C2%AD%D0%B2%D0%B5%D1%80%C2%AD%D1%82%D1%8B%C2%AD%D0%B2%D0%B0%D1%82%D1%8C_%D1%81%D0%B5%D1%80%C2%AD%D0%B2%D0%B5%D1%80"/>
				<updated>2018-11-18T11:46:06Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Учебники]]&lt;br /&gt;
'''Вир­туа­ли­за­ция. Раз­ве­рните web-при­ло­же­ния и управ­ляй­те ими в вир­ту­аль­ных мо­ду­лях.'''&lt;br /&gt;
== Turnkey Linux: Web-мо­ду­ли ==&lt;br /&gt;
''Ма­янк Шар­ма хочет ухитриться и web-приложения настроить, и пальчики при этом не обжечь.''&lt;br /&gt;
[[Файл:LXF170.tut pi.expert.png  |left | thumb|100px|'''Наш эксперт''' Фа­нат от­кры­того ПО Ма­янк Шар­ма был пи­шу­щим ре­дак­то­ром Linux.com и печатал­ся в LinuxToday, Digg и PC Plus]] &lt;br /&gt;
Раз­во­ра­чи­вать web-при­ло­же­ния с се­те­вым дос­ту­пом на web-сер­ве­ре — ва­ри­ант не для ка­ж­до­го. Во-пер­вых, нуж­но от­лич­но знать кон­фи­гу­ра­цию сво­ей се­ти. Вдоба­вок web-при­ло­же­ни­ям нуж­на ку­ча ин­фра­струк­тур­ных про­грамм, от сер­ве­ров баз дан­ных до биб­лио­тек, и на­страи­вать их со­вме­ст­ную ра­бо­ту мож­но ча­са­ми. А ес­ли поль­зо­ва­те­ли при­ло­же­ния бу­дут об­ра­щать­ся к нему из­вне, при­дет­ся тща­тель­но ис­сле­до­вать кон­фи­гу­ра­цию web-сер­ве­ра на пред­мет дыр в безопасности.&lt;br /&gt;
&lt;br /&gt;
И здесь на по­мощь при­хо­дит Turnkey Linux. Из его вир­ту­аль­ных мо­ду­лей но­вый сер­вер раз­во­ра­чи­ва­ет­ся поч­ти мгно­вен­но. Вир­ту­аль­ный мо­дуль Turnkey — са­мо­дос­та­точ­ная сис­те­ма, со­дер­жа­щая пол­но­функ­цио­наль­ный эк­зем­п­ляр web-при­ло­же­ния с уре­зан­ным на­бо­ром ком­по­нен­тов опе­ра­ци­он­ной сис­те­мы. Сис­те­ма ра­бо­та­ет из ко­роб­ки, и ее мож­но раз­вер­нуть на «го­лом же­ле­зе» или вир­ту­аль­ном уст­рой­ст­ве.&lt;br /&gt;
&lt;br /&gt;
Turnkey Linux ис­поль­зу­ет JeOS (Just Enough Operating System — ми­ни­маль­но не­об­хо­ди­мую ОС), это по­зво­ля­ет умень­шить раз­мер об­раза. На дан­ный мо­мент все мо­ду­ли Turnkey Linux ба­зи­ру­ют­ся на Debian 6.0.5 Squeeze. Эта ба­за, с не­ко­то­ры­ми до­пол­ни­тель­ны­ми при­ло­же­ния­ми, ко­то­рых нет в офи­ци­аль­ных ре­по­зи­то­ри­ях Debian, об­ра­зу­ет ос­нов­ной вир­ту­аль­ный мо­дуль Turnkey Linux — Core (см. врез­ку), на ко­то­ром стро­ят­ся все ос­таль­ные мо­ду­ли.&lt;br /&gt;
&lt;br /&gt;
На­при­мер, в вир­ту­аль­ном мо­ду­ле WordPress ис­поль­зу­ет­ся по­след­няя вер­сия WordPress в ми­ни­маль­ной сис­те­ме Debian. Что­бы управ­лять CMS бы­ло про­ще, в вир­ту­аль­ной сис­те­ме так­же есть ме­ха­низм за­груз­ки по­след­них об­нов­ле­ний.&lt;br /&gt;
&lt;br /&gt;
Для удоб­ст­ва в вир­ту­аль­ный мо­дуль так­же вве­де­но боль­ше де­сят­ка по­пу­ляр­ных пла­ги­нов WordPress, и, ра­зу­ме­ет­ся, мож­но ус­та­но­вить еще, как и в лю­бой дру­гой ус­та­нов­ке WordPress. Раз­ра­бот­чи­ки так­же по­зво­ля­ют на­стро­ить ав­то­ма­ти­че­­ское об­нов­ле­ние пла­ги­нов в вир­ту­аль­ном мо­ду­ле. Удоб­нее все­го то, что управ­лять вир­ту­аль­ным мо­ду­лем мож­но че­рез SSL-под­клю­че­ние.&lt;br /&gt;
&lt;br /&gt;
В чет­вер­тую го­дов­щи­ну Turnkey Linux вы­шел ре­лиз 12.0 биб­лио­тек вир­ту­аль­ных мо­ду­лей, и те­перь он вклю­ча­ет бо­лее 100 web-при­ло­же­ний. В до­пол­не­ние к WordPress под­дер­жи­ва­ют­ся дру­гие по­пу­ляр­ные и не очень по­пу­ляр­ные сис­те­мы управ­ле­ния кон­тен­том, та­кие как Joomla, Drupal, Concrete5, Elgg, Clipbucket и т. д.&lt;br /&gt;
&lt;br /&gt;
Есть так­же мо­ду­ли, яв­ляю­щие­ся пре­крас­ны­ми плат­фор­ма­ми для раз­ра­бот­ки при­ло­же­ний; на­при­мер, стек LAMP, мо­дуль .NET для раз­вер­ты­ва­ния web-при­ло­же­ний .NET в Linux и раз­лич­ные вер­сии SDK Google AppEngine. Ес­ли вам ин­те­рес­но, все мо­дули Turnkey Linux на 100 % со­сто­ят из от­кры­то­го ко­да и бес­плат­ны для за­груз­ки.&lt;br /&gt;
&lt;br /&gt;
===Сред­ст­ва ре­мес­ла===&lt;br /&gt;
&lt;br /&gt;
Мо­ду­ли Turnkey Linux дос­туп­ны в раз­лич­ных фор­ма­тах в за­ви­си­мо­сти от уст­ройств, на ко­то­рых вы хо­ти­те их раз­во­ра­чи­вать. Од­на­ко важ­но то, что по­сле на­строй­ки и за­пус­ка они пре­дос­тав­ляют вам оди­на­ко­вый ин­тер­фейс для раз­вер­ты­ва­ния и управ­ле­ния web-при­ло­же­ни­ем. На дан­ный мо­мент ка­ж­дый вир­ту­аль­ный мо­дуль Turnkey Linux дос­ту­пен в шес­ти фор­ма­тах. Из мо­ду­ля в фор­ма­те ISO мож­но ус­та­но­вить вир­ту­аль­ный мо­дуль на фи­зи­че­­ский ком­пь­ю­тер, а так­же на вир­ту­аль­ные ма­ши­ны. Это об­раз Live CD, в ко­то­ром для ус­та­нов­ки сис­те­мы ис­поль­зу­ет­ся мо­ди­фи­ци­ро­ван­ный ус­та­нов­щик Debian.&lt;br /&gt;
&lt;br /&gt;
Хо­тя ISO-об­раз при­го­ден для ус­та­нов­ки на вир­ту­аль­ную ма­ши­ну, он не оп­ти­ми­зи­ро­ван для вир­ту­аль­ных уст­ройств. Луч­ше бу­дет взять об­раз ли­бо VMDK, ли­бо OVF. Пер­вый пред­на­зна­чен для уст­ройств с рас­ши­ре­ния­ми вир­туа­ли­за­ции, на­при­мер, Intel VT-x, а вто­рой по­ла­дит и с бо­лее ста­ры­ми уст­рой­ст­ва­ми. И об­ра­зы OVF, и об­ра­зы VMDK бу­дут ра­бо­тать в бес­плат­ных про­грам­мах вир­туа­ли­за­ции VirtualBox и VMware Player. Сбор­ки OpenStack, как сле­ду­ет из на­зва­ния, оп­ти­ми­зи­ро­ва­ны для раз­вер­ты­ва­ния на об­лач­ной плат­фор­ме OpenStack. Ана­ло­гич­но, сбор­ки OpenVZ и Xen — для со­от­вет­ст­вую­щих вир­туа­ли­за­ци­он­ных сред.&lt;br /&gt;
&lt;br /&gt;
Раз­ме­ры мо­ду­лей раз­лич­ны, но боль­шин­ст­во из них ме­нее 300 МБ, а ISO-об­ра­зы мень­ше, чем об­ра­зы со­от­вет­ст­вую­щих вир­ту­аль­ных ре­ше­ний.&lt;br /&gt;
&lt;br /&gt;
===Гад­жет, вперед!===&lt;br /&gt;
&lt;br /&gt;
Пер­вый шаг по­сле за­груз­ки мо­ду­ля из ре­по­зи­то­рия Turnkey Linux — за­пус­тить его. Этот шаг за­ви­сит от ти­па вир­ту­аль­но­го мо­ду­ля.&lt;br /&gt;
&lt;br /&gt;
Ес­ли вы за­гру­зи­ли ISO-об­раз, за­пи­ши­те его на диск и за­гру­зи­тесь с не­го. По­сле это­го следуй­те ин­ст­рук­ция­м из врез­ки «Ус­та­новим вир­ту­аль­ный мо­дуль» для ус­та­нов­ки и на­строй­ки мо­ду­ля.&lt;br /&gt;
&lt;br /&gt;
Об­раз OVF мож­но им­пор­ти­ро­вать в VirtualBox, зай­дя в File &amp;gt; Import Appliance [Файл &amp;gt; Им­пор­ти­ро­вать мо­дуль]; при этом соз­да­ст­ся вир­ту­аль­ная ма­ши­на с на­строй­ка­ми из мо­ду­ля. А ес­ли у вас об­раз VMDK, сна­ча­ла нуж­но соз­дать вир­ту­аль­ную ма­ши­ну в VirtualBox, как обыч­но, но вме­сто соз­да­ния но­во­го вир­ту­аль­но­го дис­ка вы­брать имеющийся об­раз и ука­зать за­гру­жен­ный файл об­раза VMDK.&lt;br /&gt;
{{Врезка|right|Заголовок=Скорая помощь |Ширина=10%|Содержание=В ка­на­ле Turnkey Linux на YouTube есть мно­го ро­ли­ков с ин­ст­рук­ция­ми: www.youtube.com/turnkeylinux. &lt;br /&gt;
}} &lt;br /&gt;
По­сле это­го за­пус­кай­те вир­ту­аль­ную ма­ши­ну. Не­важ­но, ус­та­нав­ли­ва­ли ли вы мо­дуль из фай­ла ISO или вос­поль­зо­ва­лись го­то­вым: про­цесс на­строй­ки один. Он опи­сан во врез­ке «На­строи­м вир­ту­аль­ный мо­дуль».&lt;br /&gt;
&lt;br /&gt;
На­стро­ен­ный мо­дуль ав­то­ма­ти­че­­ски за­гру­зит­ся, и поя­вит­ся кон­соль на­строй­ки со ссыл­ка­ми на ути­ли­ты и сер­ви­сы, за­пу­щен­ные в вир­ту­аль­ном мо­ду­ле.&lt;br /&gt;
&lt;br /&gt;
Во всех мо­ду­лях есть как ми­ни­мум две ути­ли­ты. Web-обо­лоч­ка вы­зы­ва­ет эму­ля­тор тер­ми­на­ла Shell-in-a-Box на ос­но­ве AJAX, с по­мо­щью ко­то­ро­го осуществляется вход на уда­лен­ный сер­вер из брау­зе­ра.&lt;br /&gt;
&lt;br /&gt;
===Управ­ле­ние че­рез Webmin===&lt;br /&gt;
&lt;br /&gt;
Кро­ме то­го, есть web-ути­ли­та на­строй­ки Webmin — с ее по­мо­щью мож­но ме­нять все на­строй­ки на уда­лен­ном сер­ве­ре: на­при­мер, на­страи­вать за­да­ния cron, про­смат­ри­вать лог-фай­лы и управ­лять вы­пол­няю­щи­ми­ся про­цес­са­ми. Ес­ли в ва­шем мо­ду­ле есть при­ло­же­ние, ра­бо­таю­щее с MySQL, в нем так­же бу­дет PHPMyAdmin для ад­ми­ни­ст­ри­ро­ва­ния баз дан­ных MySQL.&lt;br /&gt;
{{Врезка|left|Заголовок=TurnKey Core |Ширина=10%|Содержание=Все вир­ту­аль­ные мо­ду­ли Turnkey Linux стро­ят­ся по­верх мо­ду­ля Turnkey Core. Кро­ме ди­ст­ри­бу­ти­ва Debian 6.0.5, в нем есть все ком­по­нен­ты, не­об­хо­ди­мые всем про­чим мо­ду­лям.&lt;br /&gt;
&lt;br /&gt;
В мо­ду­ле Core так­же на­строе­на ав­то­ма­ти­че­­ская за­груз­ка об­нов­ле­ний безо­пас­но­сти для ус­та­нов­лен­ных ком­по­нен­тов из офи­ци­аль­ных ре­по­зи­то­ри­ев Debian. По умол­ча­нию Turnkey по­про­сит об­но­вить­ся во вре­мя ус­та­нов­ки, а так­же ка­ж­дую ночь в 4 ча­са ут­ра. Так­же в мо­ду­ле Core есть все спе­циа­ли­зи­ро­ван­ные ути­ли­ты TurnKey Linux для ре­зерв­но­го ко­пи­ро­ва­ния и ми­гра­ции сер­ве­ров, web-обо­лоч­ка AJAX и ин­тер­фейс удаленного управ­ле­ния Webmin.&lt;br /&gt;
&lt;br /&gt;
Хо­тя мо­дуль Core дос­ту­пен для за­груз­ки, боль­шин­ст­ву поль­зо­ва­те­лей он бу­дет не слиш­ком ин­те­ре­сен. Ес­ли вы хо­ти­те раз­вер­нуть соб­ст­вен­ное web-при­ло­же­ние, луч­ше вос­поль­зо­вать­ся го­то­вым мо­ду­лем, та­ким как LAMP или LAPP. К мо­ду­лю Core луч­ше все­го при­ме­нять на­бор скрип­тов TKLPatch для на­строй­ки мо­ду­ля. &lt;br /&gt;
}} &lt;br /&gt;
Кон­соль так­же вы­во­дит ин­фор­ма­цию по под­клю­че­нию к мо­ду­лю че­рез SSH/SFTP и ад­рес, по ко­то­ро­му за­пу­ще­но при­ло­же­ние, по­стро­ен­ное на ба­зе это­го вир­ту­аль­но­го мо­ду­ля. По это­му ад­ре­су к при­ло­же­нию мож­но об­ра­тить­ся из лю­бой точ­ки се­ти и на­стро­ить его точ­но так же, как ес­ли бы вы ус­та­но­ви­ли его вруч­ную.&lt;br /&gt;
&lt;br /&gt;
Turnkey Linux не мо­ди­фи­ци­ру­ет при­ло­же­ния, и при не­об­хо­ди­мо­сти мож­но об­ра­тить­ся к офи­ци­аль­ной до­ку­мен­та­ции лю­бо­го при­ло­же­ния.&lt;br /&gt;
&lt;br /&gt;
Ес­ли на­до из­ме­нить файл при на­строй­ке web-при­ло­же­ния, мож­но под­клю­чить­ся к мо­ду­лю по SSH или вос­поль­зо­вать­ся web-обо­лоч­кой че­рез HTTPS. Что­бы ско­пи­ро­вать файл в мо­дуль, про­сто под­клю­чи­тесь к не­му лю­бым FTP-кли­ен­том, ис­поль­зуя па­роль ад­ми­ни­ст­ра­то­ра, за­дан­ный при на­строй­ке мо­ду­ля.&lt;br /&gt;
&lt;br /&gt;
===У ха­ба===&lt;br /&gt;
&lt;br /&gt;
На­ря­ду с са­ми­ми мо­ду­ля­ми в Turnkey Linux есть не­сколь­ко спе­ци­аль­ных ути­лит, ко­то­рые по­мо­гут управ­лять мо­ду­ля­ми. Глав­ная — Turnkey Hub. С ее по­мо­щью мож­но за­пус­кать мо­ду­ли Turnkey на об­ла­ке Amazon EC2 и управ­лять ими. В мо­ду­лях, соз­дан­ных на EC2 с по­мо­щью Hub, ис­поль­зу­ет­ся оп­ти­ми­зи­ро­ван­ная, но ре­дак­ти­руе­мая по­ли­ти­ка бранд­мау­эра. По умол­ча­нию раз­ре­шен тра­фик толь­ко че­рез пор­ты, ис­поль­зуе­мые при­ло­же­ни­ем.&lt;br /&gt;
{{Врезка|left|Заголовок=Скорая помощь |Ширина=10%|Содержание=Убе­ди­тесь, что в вир­ту­аль­ной ма­ши­не на­стро­ен адап­тер «мост», что­бы мож­но бы­ло об­ра­щать­ся к ней с лю­бо­го ком­пь­ю­те­ра се­ти. &lt;br /&gt;
}} &lt;br /&gt;
С по­мо­щью Hub так­же мож­но на­блю­дать за уда­лен­ны­ми сер­ве­ра­ми и от­сле­жи­вать ис­поль­зо­ва­ние про­цес­со­ра, опе­ра­ции вво­да/вы­во­да и се­те­вой тра­фик. Hub так­же уп­ро­ща­ет бо­лее слож­ные опе­ра­ции, на­при­мер, под­клю­че­ние дис­ков NAS к уда­лен­ным об­лач­ным сер­ве­рам.&lt;br /&gt;
&lt;br /&gt;
Есть еще ути­ли­та ре­зерв­но­го ко­пи­ро­ва­ния и ми­гра­ции — Turnkey Linux Backup and Migration (TKLBAM). По умол­ча­нию она пред­на­зна­че­на для ра­бо­ты с об­лач­ным сер­ви­сом Amazon S3. На­стро­ить по­ве­де­ние ути­ли­ты мож­но в мо­ду­ле Webmin Backup and Migration [Ре­зерв­ное ко­пи­ро­ва­ние и ми­гра­ция], а про­смат­ри­вать ре­зерв­ные ко­пии и управ­лять ими — из Hub.&lt;br /&gt;
&lt;br /&gt;
И Hub, и TKLBAM бес­плат­ны, но для ре­зерв­но­го ко­пи­ро­ва­ния на Amazon S3 нуж­но за­ре­ги­ст­ри­ро­вать­ся на об­лач­ном сер­ви­се. Од­на­ко сер­вис до­воль­но де­шев: рас­хо­ды со­ставят не бо­лее £ 0,07 за ГБ в ме­сяц, а но­вые поль­зо­ва­те­ли по­лу­ча­ют 5 ГБ бес­плат­но.&lt;br /&gt;
&lt;br /&gt;
Кро­ме то­го, с по­мо­щью TKLBAM мож­но вруч­ную соз­да­вать и вос­ста­нав­ли­вать ре­зерв­ные ко­пии фай­лов ло­каль­но. Пусть вы под­клю­чи­ли ло­каль­ный диск к вир­ту­аль­но­му мо­ду­лю в точ­ке /mnt/backupdrive; за­пус­ти­те обо­лоч­ку и вве­ди­те сле­дую­щие ко­ман­ды:&lt;br /&gt;
&lt;br /&gt;
$ tklbam-backup --address file:///mnt/backupdrive/tklbam/backup&lt;br /&gt;
&lt;br /&gt;
$ tklbam-escrow /mnt/backupdrive/tklbam/key&lt;br /&gt;
&lt;br /&gt;
Ключ escrow [за­ло­го­вый] мож­но ис­поль­зо­вать для ау­тен­ти­фи­ка­ции и вос­ста­нов­ле­ния ре­зерв­ной ко­пии да­же в дру­гом мо­ду­ле TurnKey та­ким об­ра­зом:&lt;br /&gt;
&lt;br /&gt;
$ tklbam-restore --address file:///mnt/backupdrive/tklbam/backup --keyfile=/mnt/backupdrive/tklbam/key&lt;br /&gt;
&lt;br /&gt;
Не те­ряй­те ключ escrow. С его по­мо­щью мож­но вос­ста­но­вить ре­зерв­ную ко­пию, да­же ес­ли вы за­бы­ли па­роль­ную фра­зу за­шиф­ро­ван­ных ре­зерв­ных ко­пий.&lt;br /&gt;
&lt;br /&gt;
Еще один туз в ру­ка­ве Turnkey Linux — его бес­плат­ный сер­вис ди­на­ми­че­­ско­­го DNS tklapp.com. Он по­зво­ля­ет об­ра­щать­ся к мо­ду­лю из­вне се­ти и да­ет ему удоб­ное для за­по­ми­на­ния имя.&lt;br /&gt;
&lt;br /&gt;
Для на­строй­ки сер­ви­са ис­поль­зу­ет­ся ути­ли­та HubDNS, ко­то­рая ус­та­нов­ле­на во всех мо­ду­лях Turnkey Linux. Пе­ред на­строй­кой зай­ди­те в свою учет­ную за­пись Turnkey Hub и пе­ре­пи­ши­те свой ключ Hub API с вклад­ки User Profile [Про­филь поль­зо­ва­те­ля]. За­тем от­крой­те тер­ми­нал и вве­ди­те сле­дую­щие ко­ман­ды:&lt;br /&gt;
&lt;br /&gt;
$ hubdns-init HUB_APIKEY foo.tklapp.com&lt;br /&gt;
&lt;br /&gt;
$ hubdns-update&lt;br /&gt;
&lt;br /&gt;
Го­то­во. За­ме­ни­те HUB_APIKEY на свой ключ, а foo — на же­лае­мое имя сер­ве­ра. Ес­ли оно дос­туп­но, HubDNS за­ре­зер­ви­рует его для вас. Вто­рая ко­ман­да свя­жет ваш IP-ад­рес с соз­дан­ным име­нем до­ме­на. Да­вай­те вос­поль­зу­ем­ся мо­ду­лем Torrent Server и вер­нем ста­рый не­нуж­ный ком­пь­ю­тер к жиз­ни, пре­вра­тив его в тор­рент-сер­вер без мо­ни­то­ра.&lt;br /&gt;
&lt;br /&gt;
За­гру­зи­те ISO-об­раз, за­пи­ши­те его на ком­пакт-диск и ус­та­но­ви­те его на ком­пь­ю­те­ре с по­мо­щью ус­та­нов­щи­ка. Те­перь за­пус­ти­те брау­зер на дру­гом ком­пь­ю­те­ре той же се­ти и вве­ди­те в ад­рес­ную стро­ку IP-ад­рес сер­ве­ра. От­кро­ет­ся па­нель управ­ле­ния тор­рент-сер­ве­ра.&lt;br /&gt;
&lt;br /&gt;
Изю­мин­ка это­го мо­ду­ля — брау­зер­ный фай­ло­вый ме­нед­жер AjaXplorer, в ко­то­ром мож­но ра­бо­тать с фай­ла­ми и ка­та­ло­га­ми. У при­ло­же­ния удоб­ный ин­тер­фейс, и есть мо­биль­ные вер­сии для iOS и Android.&lt;br /&gt;
&lt;br /&gt;
===Трудолюбивый ос­лик===&lt;br /&gt;
&lt;br /&gt;
Что­бы за­гру­жать тор­рен­ты, нуж­но под­клю­чить мо­дуль к сво­ему эк­зем­п­ля­ру MLDonkey [donkey — англ. ослик]. Для это­го зай­ди­те в ин­тер­фейс Basic [Ос­нов­ной], пе­рей­ди­те на вклад­ку Clients [Кли­ен­ты] и на­жми­те кноп­ку Connect [Под­клю­чить] ря­дом с сер­ве­ром, за­пу­щен­ном на 127.0.0.1:4001.&lt;br /&gt;
&lt;br /&gt;
Те­перь от­крой­те свой лю­би­мый тор­рент-тре­кер и ско­пи­руй­те ссыл­ку на файл .torrent, ко­то­рый хо­ти­те за­гру­зить. В ин­тер­фей­се Basic пе­рей­ди­те на вклад­ку Links [Ссыл­ки], вставь­те URL в тек­сто­вое по­ле и на­жми­те кноп­ку Load Link [За­гру­зить ссыл­ку] для за­груз­ки тор­рен­та.&lt;br /&gt;
&lt;br /&gt;
За­гру­жен­ный тор­рент ска­ни­ру­ет­ся встро­ен­ным ан­ти­ви­ру­сом ClamAV и по­ме­ща­ет­ся в ка­та­лог /var/lib/mldonkey/incoming.&lt;br /&gt;
&lt;br /&gt;
С по­мо­щью MLDonkey вы сможете еще и раз­да­вать свои тор­рен­ты. Поскольку все уже на­строе­но, пе­рей­ди­те на ин­тер­фейс Advanced [Про­дви­ну­тый] в па­не­ли управ­ле­ния и пе­рей­ди­те на Help+ &amp;gt; Sysinfo [Справ­ка &amp;gt; Ин­фор­ма­ция о сис­те­ме] для про­смот­ра па­ра­мет­ров. Ка­та­ло­ги по умол­ча­нию при­ве­де­ны вни­зу стра­ни­цы.&lt;br /&gt;
&lt;br /&gt;
MLDonkey по­зво­ля­ет раз­да­вать как от­дель­ные фай­лы (на­при­мер, my-fav-distro.iso), так и груп­пы фай­лов в ка­та­ло­гах (на­при­мер, the_top_distros/). Что­бы раз­да­вать ин­ди­ви­ду­аль­ные фай­лы, по­мес­ти­те их в ка­та­лог /var/lib/mldonkey/incoming/files. Для раз­да­чи ка­та­ло­гов по­мес­ти­те их в ка­та­лог /var/lib/mldonk&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|Заголовок= Скорая помощь&lt;br /&gt;
|Ширина=10%|Содержание= В Turnkey Linux в об­щей слож­но­сти 606 за­гру­жае­мых мо­ду­лей сум­мар­ным объ­е­мом 120 ГБ.ey/incoming/directories.}} &lt;br /&gt;
Те­перь на­до соз­дать файл .torrent — для это­го ну­жен тре­кер, ко­то­рый опо­вес­тит о на­ли­чии это­го фай­ла дру­гих кли­ен­тов. По умол­ча­нию MLDonkey от­сле­жи­ва­ет тор­рен­ты в ло­каль­ной се­ти с по­мо­щью IP-ад­ре­са сер­ве­ра, на ко­то­ром за­пу­щен.&lt;br /&gt;
&lt;br /&gt;
Что­бы вос­поль­зо­вать­ся внеш­ним тре­ке­ром, придется из­ме­нить на­строй­ки MLDonkey. Са­мый про­стой спо­соб это сде­лать — пе­рей­ти к на­строй­кам кли­ен­та [Client] в ос­нов­ном ин­тер­фей­се и взгля­нуть на по­ле BT-default_tracker. По умол­ча­нию оно пус­то — это оз­на­ча­ет, что ис­поль­зу­ет­ся ло­каль­ный тре­кер.&lt;br /&gt;
&lt;br /&gt;
Что­бы ука­зать внеш­ний тре­кер, вве­ди­те его ад­рес в по­ле, на­при­мер, http://bit.ly/zJ4xF6, это тре­кер для LinuxTracker.org. Те­перь пе­рей­ди­те в ин­тер­фейс Advanced и вве­ди­те ко­ман­ду compute_torrent в боль­шое тек­сто­вое по­ле, что­бы ука­зать фай­лы, ко­то­рые нуж­но раз­дать.&lt;br /&gt;
&lt;br /&gt;
На­при­мер, compute_torrent/srv/storage/incoming/files/my-fav-distro.iso сге­не­ри­ру­ет файл .torrent в ка­та­ло­ге /var/lib/mldonkey/torrents/seeded. Те­перь пе­рей­ди­те в Transfers &amp;gt; Uploads [Пе­ре­да­ча &amp;gt; За­груз­ки], что­бы убе­дить­ся, что тор­рен­ты благополучно раз­да­ют­ся.&lt;br /&gt;
&lt;br /&gt;
Вот и все. Те­перь мож­но ос­та­вить за­гру­жен­ные фай­лы и за­ра­ба­ты­вать оч­ки от сво­их одноранговых парт­не­ров-пи­ров [peer] за раз­да­чу тор­рен­тов. |&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B0%D0%B7%C2%AD%D0%B2%D0%B5%D1%80%C2%AD%D1%82%D1%8B%C2%AD%D0%B2%D0%B0%D1%82%D1%8C_%D1%81%D0%B5%D1%80%C2%AD%D0%B2%D0%B5%D1%80</id>
		<title>LXF171:Раз­вер­ты­вать сер­вер</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B0%D0%B7%C2%AD%D0%B2%D0%B5%D1%80%C2%AD%D1%82%D1%8B%C2%AD%D0%B2%D0%B0%D1%82%D1%8C_%D1%81%D0%B5%D1%80%C2%AD%D0%B2%D0%B5%D1%80"/>
				<updated>2018-11-18T11:45:34Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: Новая страница: «Категория: Учебники '''Вир­туа­ли­за­ция. Раз­ве­рните web-при­ло­же­ния и управ­ляй­т…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Учебники]]&lt;br /&gt;
'''Вир­туа­ли­за­ция. Раз­ве­рните web-при­ло­же­ния и управ­ляй­те ими в вир­ту­аль­ных мо­ду­лях.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Turnkey Linux: Web-мо­ду­ли ==&lt;br /&gt;
&lt;br /&gt;
''Ма­янк Шар­ма хочет ухитриться и web-приложения настроить, и пальчики при этом не обжечь.''&lt;br /&gt;
[[Файл:LXF170.tut pi.expert.png  |left | thumb|100px|'''Наш эксперт''' Фа­нат от­кры­того ПО Ма­янк Шар­ма был пи­шу­щим ре­дак­то­ром Linux.com и печатал­ся в LinuxToday, Digg и PC Plus]] &lt;br /&gt;
Раз­во­ра­чи­вать web-при­ло­же­ния с се­те­вым дос­ту­пом на web-сер­ве­ре — ва­ри­ант не для ка­ж­до­го. Во-пер­вых, нуж­но от­лич­но знать кон­фи­гу­ра­цию сво­ей се­ти. Вдоба­вок web-при­ло­же­ни­ям нуж­на ку­ча ин­фра­струк­тур­ных про­грамм, от сер­ве­ров баз дан­ных до биб­лио­тек, и на­страи­вать их со­вме­ст­ную ра­бо­ту мож­но ча­са­ми. А ес­ли поль­зо­ва­те­ли при­ло­же­ния бу­дут об­ра­щать­ся к нему из­вне, при­дет­ся тща­тель­но ис­сле­до­вать кон­фи­гу­ра­цию web-сер­ве­ра на пред­мет дыр в безопасности.&lt;br /&gt;
&lt;br /&gt;
И здесь на по­мощь при­хо­дит Turnkey Linux. Из его вир­ту­аль­ных мо­ду­лей но­вый сер­вер раз­во­ра­чи­ва­ет­ся поч­ти мгно­вен­но. Вир­ту­аль­ный мо­дуль Turnkey — са­мо­дос­та­точ­ная сис­те­ма, со­дер­жа­щая пол­но­функ­цио­наль­ный эк­зем­п­ляр web-при­ло­же­ния с уре­зан­ным на­бо­ром ком­по­нен­тов опе­ра­ци­он­ной сис­те­мы. Сис­те­ма ра­бо­та­ет из ко­роб­ки, и ее мож­но раз­вер­нуть на «го­лом же­ле­зе» или вир­ту­аль­ном уст­рой­ст­ве.&lt;br /&gt;
&lt;br /&gt;
Turnkey Linux ис­поль­зу­ет JeOS (Just Enough Operating System — ми­ни­маль­но не­об­хо­ди­мую ОС), это по­зво­ля­ет умень­шить раз­мер об­раза. На дан­ный мо­мент все мо­ду­ли Turnkey Linux ба­зи­ру­ют­ся на Debian 6.0.5 Squeeze. Эта ба­за, с не­ко­то­ры­ми до­пол­ни­тель­ны­ми при­ло­же­ния­ми, ко­то­рых нет в офи­ци­аль­ных ре­по­зи­то­ри­ях Debian, об­ра­зу­ет ос­нов­ной вир­ту­аль­ный мо­дуль Turnkey Linux — Core (см. врез­ку), на ко­то­ром стро­ят­ся все ос­таль­ные мо­ду­ли.&lt;br /&gt;
&lt;br /&gt;
На­при­мер, в вир­ту­аль­ном мо­ду­ле WordPress ис­поль­зу­ет­ся по­след­няя вер­сия WordPress в ми­ни­маль­ной сис­те­ме Debian. Что­бы управ­лять CMS бы­ло про­ще, в вир­ту­аль­ной сис­те­ме так­же есть ме­ха­низм за­груз­ки по­след­них об­нов­ле­ний.&lt;br /&gt;
&lt;br /&gt;
Для удоб­ст­ва в вир­ту­аль­ный мо­дуль так­же вве­де­но боль­ше де­сят­ка по­пу­ляр­ных пла­ги­нов WordPress, и, ра­зу­ме­ет­ся, мож­но ус­та­но­вить еще, как и в лю­бой дру­гой ус­та­нов­ке WordPress. Раз­ра­бот­чи­ки так­же по­зво­ля­ют на­стро­ить ав­то­ма­ти­че­­ское об­нов­ле­ние пла­ги­нов в вир­ту­аль­ном мо­ду­ле. Удоб­нее все­го то, что управ­лять вир­ту­аль­ным мо­ду­лем мож­но че­рез SSL-под­клю­че­ние.&lt;br /&gt;
&lt;br /&gt;
В чет­вер­тую го­дов­щи­ну Turnkey Linux вы­шел ре­лиз 12.0 биб­лио­тек вир­ту­аль­ных мо­ду­лей, и те­перь он вклю­ча­ет бо­лее 100 web-при­ло­же­ний. В до­пол­не­ние к WordPress под­дер­жи­ва­ют­ся дру­гие по­пу­ляр­ные и не очень по­пу­ляр­ные сис­те­мы управ­ле­ния кон­тен­том, та­кие как Joomla, Drupal, Concrete5, Elgg, Clipbucket и т. д.&lt;br /&gt;
&lt;br /&gt;
Есть так­же мо­ду­ли, яв­ляю­щие­ся пре­крас­ны­ми плат­фор­ма­ми для раз­ра­бот­ки при­ло­же­ний; на­при­мер, стек LAMP, мо­дуль .NET для раз­вер­ты­ва­ния web-при­ло­же­ний .NET в Linux и раз­лич­ные вер­сии SDK Google AppEngine. Ес­ли вам ин­те­рес­но, все мо­дули Turnkey Linux на 100 % со­сто­ят из от­кры­то­го ко­да и бес­плат­ны для за­груз­ки.&lt;br /&gt;
&lt;br /&gt;
===Сред­ст­ва ре­мес­ла===&lt;br /&gt;
&lt;br /&gt;
Мо­ду­ли Turnkey Linux дос­туп­ны в раз­лич­ных фор­ма­тах в за­ви­си­мо­сти от уст­ройств, на ко­то­рых вы хо­ти­те их раз­во­ра­чи­вать. Од­на­ко важ­но то, что по­сле на­строй­ки и за­пус­ка они пре­дос­тав­ляют вам оди­на­ко­вый ин­тер­фейс для раз­вер­ты­ва­ния и управ­ле­ния web-при­ло­же­ни­ем. На дан­ный мо­мент ка­ж­дый вир­ту­аль­ный мо­дуль Turnkey Linux дос­ту­пен в шес­ти фор­ма­тах. Из мо­ду­ля в фор­ма­те ISO мож­но ус­та­но­вить вир­ту­аль­ный мо­дуль на фи­зи­че­­ский ком­пь­ю­тер, а так­же на вир­ту­аль­ные ма­ши­ны. Это об­раз Live CD, в ко­то­ром для ус­та­нов­ки сис­те­мы ис­поль­зу­ет­ся мо­ди­фи­ци­ро­ван­ный ус­та­нов­щик Debian.&lt;br /&gt;
&lt;br /&gt;
Хо­тя ISO-об­раз при­го­ден для ус­та­нов­ки на вир­ту­аль­ную ма­ши­ну, он не оп­ти­ми­зи­ро­ван для вир­ту­аль­ных уст­ройств. Луч­ше бу­дет взять об­раз ли­бо VMDK, ли­бо OVF. Пер­вый пред­на­зна­чен для уст­ройств с рас­ши­ре­ния­ми вир­туа­ли­за­ции, на­при­мер, Intel VT-x, а вто­рой по­ла­дит и с бо­лее ста­ры­ми уст­рой­ст­ва­ми. И об­ра­зы OVF, и об­ра­зы VMDK бу­дут ра­бо­тать в бес­плат­ных про­грам­мах вир­туа­ли­за­ции VirtualBox и VMware Player. Сбор­ки OpenStack, как сле­ду­ет из на­зва­ния, оп­ти­ми­зи­ро­ва­ны для раз­вер­ты­ва­ния на об­лач­ной плат­фор­ме OpenStack. Ана­ло­гич­но, сбор­ки OpenVZ и Xen — для со­от­вет­ст­вую­щих вир­туа­ли­за­ци­он­ных сред.&lt;br /&gt;
&lt;br /&gt;
Раз­ме­ры мо­ду­лей раз­лич­ны, но боль­шин­ст­во из них ме­нее 300 МБ, а ISO-об­ра­зы мень­ше, чем об­ра­зы со­от­вет­ст­вую­щих вир­ту­аль­ных ре­ше­ний.&lt;br /&gt;
&lt;br /&gt;
===Гад­жет, вперед!===&lt;br /&gt;
&lt;br /&gt;
Пер­вый шаг по­сле за­груз­ки мо­ду­ля из ре­по­зи­то­рия Turnkey Linux — за­пус­тить его. Этот шаг за­ви­сит от ти­па вир­ту­аль­но­го мо­ду­ля.&lt;br /&gt;
&lt;br /&gt;
Ес­ли вы за­гру­зи­ли ISO-об­раз, за­пи­ши­те его на диск и за­гру­зи­тесь с не­го. По­сле это­го следуй­те ин­ст­рук­ция­м из врез­ки «Ус­та­новим вир­ту­аль­ный мо­дуль» для ус­та­нов­ки и на­строй­ки мо­ду­ля.&lt;br /&gt;
&lt;br /&gt;
Об­раз OVF мож­но им­пор­ти­ро­вать в VirtualBox, зай­дя в File &amp;gt; Import Appliance [Файл &amp;gt; Им­пор­ти­ро­вать мо­дуль]; при этом соз­да­ст­ся вир­ту­аль­ная ма­ши­на с на­строй­ка­ми из мо­ду­ля. А ес­ли у вас об­раз VMDK, сна­ча­ла нуж­но соз­дать вир­ту­аль­ную ма­ши­ну в VirtualBox, как обыч­но, но вме­сто соз­да­ния но­во­го вир­ту­аль­но­го дис­ка вы­брать имеющийся об­раз и ука­зать за­гру­жен­ный файл об­раза VMDK.&lt;br /&gt;
{{Врезка|right|Заголовок=Скорая помощь |Ширина=10%|Содержание=В ка­на­ле Turnkey Linux на YouTube есть мно­го ро­ли­ков с ин­ст­рук­ция­ми: www.youtube.com/turnkeylinux. &lt;br /&gt;
}} &lt;br /&gt;
По­сле это­го за­пус­кай­те вир­ту­аль­ную ма­ши­ну. Не­важ­но, ус­та­нав­ли­ва­ли ли вы мо­дуль из фай­ла ISO или вос­поль­зо­ва­лись го­то­вым: про­цесс на­строй­ки один. Он опи­сан во врез­ке «На­строи­м вир­ту­аль­ный мо­дуль».&lt;br /&gt;
&lt;br /&gt;
На­стро­ен­ный мо­дуль ав­то­ма­ти­че­­ски за­гру­зит­ся, и поя­вит­ся кон­соль на­строй­ки со ссыл­ка­ми на ути­ли­ты и сер­ви­сы, за­пу­щен­ные в вир­ту­аль­ном мо­ду­ле.&lt;br /&gt;
&lt;br /&gt;
Во всех мо­ду­лях есть как ми­ни­мум две ути­ли­ты. Web-обо­лоч­ка вы­зы­ва­ет эму­ля­тор тер­ми­на­ла Shell-in-a-Box на ос­но­ве AJAX, с по­мо­щью ко­то­ро­го осуществляется вход на уда­лен­ный сер­вер из брау­зе­ра.&lt;br /&gt;
&lt;br /&gt;
===Управ­ле­ние че­рез Webmin===&lt;br /&gt;
&lt;br /&gt;
Кро­ме то­го, есть web-ути­ли­та на­строй­ки Webmin — с ее по­мо­щью мож­но ме­нять все на­строй­ки на уда­лен­ном сер­ве­ре: на­при­мер, на­страи­вать за­да­ния cron, про­смат­ри­вать лог-фай­лы и управ­лять вы­пол­няю­щи­ми­ся про­цес­са­ми. Ес­ли в ва­шем мо­ду­ле есть при­ло­же­ние, ра­бо­таю­щее с MySQL, в нем так­же бу­дет PHPMyAdmin для ад­ми­ни­ст­ри­ро­ва­ния баз дан­ных MySQL.&lt;br /&gt;
{{Врезка|left|Заголовок=TurnKey Core |Ширина=10%|Содержание=Все вир­ту­аль­ные мо­ду­ли Turnkey Linux стро­ят­ся по­верх мо­ду­ля Turnkey Core. Кро­ме ди­ст­ри­бу­ти­ва Debian 6.0.5, в нем есть все ком­по­нен­ты, не­об­хо­ди­мые всем про­чим мо­ду­лям.&lt;br /&gt;
&lt;br /&gt;
В мо­ду­ле Core так­же на­строе­на ав­то­ма­ти­че­­ская за­груз­ка об­нов­ле­ний безо­пас­но­сти для ус­та­нов­лен­ных ком­по­нен­тов из офи­ци­аль­ных ре­по­зи­то­ри­ев Debian. По умол­ча­нию Turnkey по­про­сит об­но­вить­ся во вре­мя ус­та­нов­ки, а так­же ка­ж­дую ночь в 4 ча­са ут­ра. Так­же в мо­ду­ле Core есть все спе­циа­ли­зи­ро­ван­ные ути­ли­ты TurnKey Linux для ре­зерв­но­го ко­пи­ро­ва­ния и ми­гра­ции сер­ве­ров, web-обо­лоч­ка AJAX и ин­тер­фейс удаленного управ­ле­ния Webmin.&lt;br /&gt;
&lt;br /&gt;
Хо­тя мо­дуль Core дос­ту­пен для за­груз­ки, боль­шин­ст­ву поль­зо­ва­те­лей он бу­дет не слиш­ком ин­те­ре­сен. Ес­ли вы хо­ти­те раз­вер­нуть соб­ст­вен­ное web-при­ло­же­ние, луч­ше вос­поль­зо­вать­ся го­то­вым мо­ду­лем, та­ким как LAMP или LAPP. К мо­ду­лю Core луч­ше все­го при­ме­нять на­бор скрип­тов TKLPatch для на­строй­ки мо­ду­ля. &lt;br /&gt;
}} &lt;br /&gt;
Кон­соль так­же вы­во­дит ин­фор­ма­цию по под­клю­че­нию к мо­ду­лю че­рез SSH/SFTP и ад­рес, по ко­то­ро­му за­пу­ще­но при­ло­же­ние, по­стро­ен­ное на ба­зе это­го вир­ту­аль­но­го мо­ду­ля. По это­му ад­ре­су к при­ло­же­нию мож­но об­ра­тить­ся из лю­бой точ­ки се­ти и на­стро­ить его точ­но так же, как ес­ли бы вы ус­та­но­ви­ли его вруч­ную.&lt;br /&gt;
&lt;br /&gt;
Turnkey Linux не мо­ди­фи­ци­ру­ет при­ло­же­ния, и при не­об­хо­ди­мо­сти мож­но об­ра­тить­ся к офи­ци­аль­ной до­ку­мен­та­ции лю­бо­го при­ло­же­ния.&lt;br /&gt;
&lt;br /&gt;
Ес­ли на­до из­ме­нить файл при на­строй­ке web-при­ло­же­ния, мож­но под­клю­чить­ся к мо­ду­лю по SSH или вос­поль­зо­вать­ся web-обо­лоч­кой че­рез HTTPS. Что­бы ско­пи­ро­вать файл в мо­дуль, про­сто под­клю­чи­тесь к не­му лю­бым FTP-кли­ен­том, ис­поль­зуя па­роль ад­ми­ни­ст­ра­то­ра, за­дан­ный при на­строй­ке мо­ду­ля.&lt;br /&gt;
&lt;br /&gt;
===У ха­ба===&lt;br /&gt;
&lt;br /&gt;
На­ря­ду с са­ми­ми мо­ду­ля­ми в Turnkey Linux есть не­сколь­ко спе­ци­аль­ных ути­лит, ко­то­рые по­мо­гут управ­лять мо­ду­ля­ми. Глав­ная — Turnkey Hub. С ее по­мо­щью мож­но за­пус­кать мо­ду­ли Turnkey на об­ла­ке Amazon EC2 и управ­лять ими. В мо­ду­лях, соз­дан­ных на EC2 с по­мо­щью Hub, ис­поль­зу­ет­ся оп­ти­ми­зи­ро­ван­ная, но ре­дак­ти­руе­мая по­ли­ти­ка бранд­мау­эра. По умол­ча­нию раз­ре­шен тра­фик толь­ко че­рез пор­ты, ис­поль­зуе­мые при­ло­же­ни­ем.&lt;br /&gt;
{{Врезка|left|Заголовок=Скорая помощь |Ширина=10%|Содержание=Убе­ди­тесь, что в вир­ту­аль­ной ма­ши­не на­стро­ен адап­тер «мост», что­бы мож­но бы­ло об­ра­щать­ся к ней с лю­бо­го ком­пь­ю­те­ра се­ти. &lt;br /&gt;
}} &lt;br /&gt;
С по­мо­щью Hub так­же мож­но на­блю­дать за уда­лен­ны­ми сер­ве­ра­ми и от­сле­жи­вать ис­поль­зо­ва­ние про­цес­со­ра, опе­ра­ции вво­да/вы­во­да и се­те­вой тра­фик. Hub так­же уп­ро­ща­ет бо­лее слож­ные опе­ра­ции, на­при­мер, под­клю­че­ние дис­ков NAS к уда­лен­ным об­лач­ным сер­ве­рам.&lt;br /&gt;
&lt;br /&gt;
Есть еще ути­ли­та ре­зерв­но­го ко­пи­ро­ва­ния и ми­гра­ции — Turnkey Linux Backup and Migration (TKLBAM). По умол­ча­нию она пред­на­зна­че­на для ра­бо­ты с об­лач­ным сер­ви­сом Amazon S3. На­стро­ить по­ве­де­ние ути­ли­ты мож­но в мо­ду­ле Webmin Backup and Migration [Ре­зерв­ное ко­пи­ро­ва­ние и ми­гра­ция], а про­смат­ри­вать ре­зерв­ные ко­пии и управ­лять ими — из Hub.&lt;br /&gt;
&lt;br /&gt;
И Hub, и TKLBAM бес­плат­ны, но для ре­зерв­но­го ко­пи­ро­ва­ния на Amazon S3 нуж­но за­ре­ги­ст­ри­ро­вать­ся на об­лач­ном сер­ви­се. Од­на­ко сер­вис до­воль­но де­шев: рас­хо­ды со­ставят не бо­лее £ 0,07 за ГБ в ме­сяц, а но­вые поль­зо­ва­те­ли по­лу­ча­ют 5 ГБ бес­плат­но.&lt;br /&gt;
&lt;br /&gt;
Кро­ме то­го, с по­мо­щью TKLBAM мож­но вруч­ную соз­да­вать и вос­ста­нав­ли­вать ре­зерв­ные ко­пии фай­лов ло­каль­но. Пусть вы под­клю­чи­ли ло­каль­ный диск к вир­ту­аль­но­му мо­ду­лю в точ­ке /mnt/backupdrive; за­пус­ти­те обо­лоч­ку и вве­ди­те сле­дую­щие ко­ман­ды:&lt;br /&gt;
&lt;br /&gt;
$ tklbam-backup --address file:///mnt/backupdrive/tklbam/backup&lt;br /&gt;
&lt;br /&gt;
$ tklbam-escrow /mnt/backupdrive/tklbam/key&lt;br /&gt;
&lt;br /&gt;
Ключ escrow [за­ло­го­вый] мож­но ис­поль­зо­вать для ау­тен­ти­фи­ка­ции и вос­ста­нов­ле­ния ре­зерв­ной ко­пии да­же в дру­гом мо­ду­ле TurnKey та­ким об­ра­зом:&lt;br /&gt;
&lt;br /&gt;
$ tklbam-restore --address file:///mnt/backupdrive/tklbam/backup --keyfile=/mnt/backupdrive/tklbam/key&lt;br /&gt;
&lt;br /&gt;
Не те­ряй­те ключ escrow. С его по­мо­щью мож­но вос­ста­но­вить ре­зерв­ную ко­пию, да­же ес­ли вы за­бы­ли па­роль­ную фра­зу за­шиф­ро­ван­ных ре­зерв­ных ко­пий.&lt;br /&gt;
&lt;br /&gt;
Еще один туз в ру­ка­ве Turnkey Linux — его бес­плат­ный сер­вис ди­на­ми­че­­ско­­го DNS tklapp.com. Он по­зво­ля­ет об­ра­щать­ся к мо­ду­лю из­вне се­ти и да­ет ему удоб­ное для за­по­ми­на­ния имя.&lt;br /&gt;
&lt;br /&gt;
Для на­строй­ки сер­ви­са ис­поль­зу­ет­ся ути­ли­та HubDNS, ко­то­рая ус­та­нов­ле­на во всех мо­ду­лях Turnkey Linux. Пе­ред на­строй­кой зай­ди­те в свою учет­ную за­пись Turnkey Hub и пе­ре­пи­ши­те свой ключ Hub API с вклад­ки User Profile [Про­филь поль­зо­ва­те­ля]. За­тем от­крой­те тер­ми­нал и вве­ди­те сле­дую­щие ко­ман­ды:&lt;br /&gt;
&lt;br /&gt;
$ hubdns-init HUB_APIKEY foo.tklapp.com&lt;br /&gt;
&lt;br /&gt;
$ hubdns-update&lt;br /&gt;
&lt;br /&gt;
Го­то­во. За­ме­ни­те HUB_APIKEY на свой ключ, а foo — на же­лае­мое имя сер­ве­ра. Ес­ли оно дос­туп­но, HubDNS за­ре­зер­ви­рует его для вас. Вто­рая ко­ман­да свя­жет ваш IP-ад­рес с соз­дан­ным име­нем до­ме­на. Да­вай­те вос­поль­зу­ем­ся мо­ду­лем Torrent Server и вер­нем ста­рый не­нуж­ный ком­пь­ю­тер к жиз­ни, пре­вра­тив его в тор­рент-сер­вер без мо­ни­то­ра.&lt;br /&gt;
&lt;br /&gt;
За­гру­зи­те ISO-об­раз, за­пи­ши­те его на ком­пакт-диск и ус­та­но­ви­те его на ком­пь­ю­те­ре с по­мо­щью ус­та­нов­щи­ка. Те­перь за­пус­ти­те брау­зер на дру­гом ком­пь­ю­те­ре той же се­ти и вве­ди­те в ад­рес­ную стро­ку IP-ад­рес сер­ве­ра. От­кро­ет­ся па­нель управ­ле­ния тор­рент-сер­ве­ра.&lt;br /&gt;
&lt;br /&gt;
Изю­мин­ка это­го мо­ду­ля — брау­зер­ный фай­ло­вый ме­нед­жер AjaXplorer, в ко­то­ром мож­но ра­бо­тать с фай­ла­ми и ка­та­ло­га­ми. У при­ло­же­ния удоб­ный ин­тер­фейс, и есть мо­биль­ные вер­сии для iOS и Android.&lt;br /&gt;
&lt;br /&gt;
===Трудолюбивый ос­лик===&lt;br /&gt;
&lt;br /&gt;
Что­бы за­гру­жать тор­рен­ты, нуж­но под­клю­чить мо­дуль к сво­ему эк­зем­п­ля­ру MLDonkey [donkey — англ. ослик]. Для это­го зай­ди­те в ин­тер­фейс Basic [Ос­нов­ной], пе­рей­ди­те на вклад­ку Clients [Кли­ен­ты] и на­жми­те кноп­ку Connect [Под­клю­чить] ря­дом с сер­ве­ром, за­пу­щен­ном на 127.0.0.1:4001.&lt;br /&gt;
&lt;br /&gt;
Те­перь от­крой­те свой лю­би­мый тор­рент-тре­кер и ско­пи­руй­те ссыл­ку на файл .torrent, ко­то­рый хо­ти­те за­гру­зить. В ин­тер­фей­се Basic пе­рей­ди­те на вклад­ку Links [Ссыл­ки], вставь­те URL в тек­сто­вое по­ле и на­жми­те кноп­ку Load Link [За­гру­зить ссыл­ку] для за­груз­ки тор­рен­та.&lt;br /&gt;
&lt;br /&gt;
За­гру­жен­ный тор­рент ска­ни­ру­ет­ся встро­ен­ным ан­ти­ви­ру­сом ClamAV и по­ме­ща­ет­ся в ка­та­лог /var/lib/mldonkey/incoming.&lt;br /&gt;
&lt;br /&gt;
С по­мо­щью MLDonkey вы сможете еще и раз­да­вать свои тор­рен­ты. Поскольку все уже на­строе­но, пе­рей­ди­те на ин­тер­фейс Advanced [Про­дви­ну­тый] в па­не­ли управ­ле­ния и пе­рей­ди­те на Help+ &amp;gt; Sysinfo [Справ­ка &amp;gt; Ин­фор­ма­ция о сис­те­ме] для про­смот­ра па­ра­мет­ров. Ка­та­ло­ги по умол­ча­нию при­ве­де­ны вни­зу стра­ни­цы.&lt;br /&gt;
&lt;br /&gt;
MLDonkey по­зво­ля­ет раз­да­вать как от­дель­ные фай­лы (на­при­мер, my-fav-distro.iso), так и груп­пы фай­лов в ка­та­ло­гах (на­при­мер, the_top_distros/). Что­бы раз­да­вать ин­ди­ви­ду­аль­ные фай­лы, по­мес­ти­те их в ка­та­лог /var/lib/mldonkey/incoming/files. Для раз­да­чи ка­та­ло­гов по­мес­ти­те их в ка­та­лог /var/lib/mldonk&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|Заголовок= Скорая помощь&lt;br /&gt;
|Ширина=10%|Содержание= В Turnkey Linux в об­щей слож­но­сти 606 за­гру­жае­мых мо­ду­лей сум­мар­ным объ­е­мом 120 ГБ.ey/incoming/directories.}} &lt;br /&gt;
Те­перь на­до соз­дать файл .torrent — для это­го ну­жен тре­кер, ко­то­рый опо­вес­тит о на­ли­чии это­го фай­ла дру­гих кли­ен­тов. По умол­ча­нию MLDonkey от­сле­жи­ва­ет тор­рен­ты в ло­каль­ной се­ти с по­мо­щью IP-ад­ре­са сер­ве­ра, на ко­то­ром за­пу­щен.&lt;br /&gt;
&lt;br /&gt;
Что­бы вос­поль­зо­вать­ся внеш­ним тре­ке­ром, придется из­ме­нить на­строй­ки MLDonkey. Са­мый про­стой спо­соб это сде­лать — пе­рей­ти к на­строй­кам кли­ен­та [Client] в ос­нов­ном ин­тер­фей­се и взгля­нуть на по­ле BT-default_tracker. По умол­ча­нию оно пус­то — это оз­на­ча­ет, что ис­поль­зу­ет­ся ло­каль­ный тре­кер.&lt;br /&gt;
&lt;br /&gt;
Что­бы ука­зать внеш­ний тре­кер, вве­ди­те его ад­рес в по­ле, на­при­мер, http://bit.ly/zJ4xF6, это тре­кер для LinuxTracker.org. Те­перь пе­рей­ди­те в ин­тер­фейс Advanced и вве­ди­те ко­ман­ду compute_torrent в боль­шое тек­сто­вое по­ле, что­бы ука­зать фай­лы, ко­то­рые нуж­но раз­дать.&lt;br /&gt;
&lt;br /&gt;
На­при­мер, compute_torrent/srv/storage/incoming/files/my-fav-distro.iso сге­не­ри­ру­ет файл .torrent в ка­та­ло­ге /var/lib/mldonkey/torrents/seeded. Те­перь пе­рей­ди­те в Transfers &amp;gt; Uploads [Пе­ре­да­ча &amp;gt; За­груз­ки], что­бы убе­дить­ся, что тор­рен­ты благополучно раз­да­ют­ся.&lt;br /&gt;
&lt;br /&gt;
Вот и все. Те­перь мож­но ос­та­вить за­гру­жен­ные фай­лы и за­ра­ба­ты­вать оч­ки от сво­их одноранговых парт­не­ров-пи­ров [peer] за раз­да­чу тор­рен­тов. |&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:Unison:_%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF_%D0%BA_%D1%81%D0%B2%D0%BE%D0%B8%D0%BC_%D1%84%D0%B0%D0%B9%C2%AD%D0%BB%D0%B0%D0%BC</id>
		<title>LXF171:Unison: Доступ к своим фай­лам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:Unison:_%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF_%D0%BA_%D1%81%D0%B2%D0%BE%D0%B8%D0%BC_%D1%84%D0%B0%D0%B9%C2%AD%D0%BB%D0%B0%D0%BC"/>
				<updated>2018-11-18T11:32:24Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Учебники]]&lt;br /&gt;
== Unison: Доступ к своим фай­лам ==&lt;br /&gt;
[[Файл:LXF162.tut passwords.2.png |left | thumb|100px|'''Наш эксперт''' Джеймс Лит­тон за­ни­мал ру­ко­во­дя­щие долж­но­сти в не­сколь­ких ор­га­ни­за­ци­ях и яв­ля­ет­ся парт­не­ром и ди­рек­то­ром Identity Automation LP.]] &lt;br /&gt;
Хо­ти­те разделять сво­и дан­ные между раз­ными сис­темами без про­блем с при­ват­но­стью и соб­ст­вен­но­стью на них? Джеймс Лит­тон по­ка­зы­ва­ет, как.&lt;br /&gt;
&lt;br /&gt;
При мыс­лях о сво­их дан­ных у мно­гих из нас воз­ни­ка­ет внут­рен­няя борь­ба: мы по­дыс­ки­ва­ем наи­луч­ший спо­соб га­ран­ти­ро­вать их со­хран­ность. В преж­ние вре­ме­на все дан­ные уме­ща­лись на не­сколь­ких дис­ке­тах; по­том мы пе­ре­шли к лен­там, CD, DVD, NAS и, на­ко­нец, к об­лач­ным хра­ни­ли­щам.&lt;br /&gt;
&lt;br /&gt;
Рас­смот­рев ти­пич­ную стра­те­гию управ­ле­ния дан­ны­ми, мы об­на­ру­жим, что за­час­тую она фраг­мен­тар­на и не­эф­фек­тив­на. Ва­ши по­все­днев­ные фай­лы, воз­мож­но, хра­нят­ся на Dropbox, что по­зво­ля­ет лег­ко раз­де­лять их ме­ж­ду раз­ны­ми ком­пь­ю­те­ра­ми, ко­то­ры­ми вы ре­гу­ляр­но поль­зуе­тесь. Этот ва­ри­ант пре­крас­но под­хо­дит для элек­трон­ных таб­лиц, баз дан­ных и до­ку­мен­тов — все вме­сте это до­воль­но скром­ный объ­ем дан­ных. Но ко­гда до­хо­дит до фо­то­гра­фий, му­зы­ки и филь­мов, на­чи­на­ют­ся про­бле­мы. Для фай­лов муль­ти­ме­диа нуж­но го­раз­до боль­ше мес­та, и они час­то ока­зы­ва­ют­ся на до­маш­нем сер­ве­ре NAS, и, воз­мож­но, вре­мя от вре­ме­ни ко­пи­ру­ют­ся на внеш­ний USB-диск.&lt;br /&gt;
{{Врезка|left|Заголовок= Сис­тем­ные ка­та­ло­ги Unison|Ширина=20%|Содержание=В Linux Unison соз­даст под­ка­та­лог .unison в $HOME. В OS X сис­тем­ный ка­та­лог соз­да­ет­ся в ~/Library/Application Support/Unison. Мно­гие поль­зо­ва­те­ли Mac пред­поч­тут сис­тем­ный ка­та­лог в сти­ле Linux. К сча­стью, Unison бу­дет поль­зо­вать­ся ка­та­ло­гом ~/.unison, ес­ли он су­ще­ст­ву­ет. Что­бы его соз­дать, вы­пол­ни­те сле­дую­щую ко­ман­ду:&lt;br /&gt;
&lt;br /&gt;
mkdir ~/.unison}} &lt;br /&gt;
Пред­по­ло­жим, что об­щий объ­ем ва­ших дан­ных — 500 ГБ, и вы хо­ти­те со­брать их все в од­ном мес­те. Та­кое по­зво­ля­ет сделать Dropbox — за $ 499 в год, и это, че­ст­но го­во­ря, до­воль­но ра­зум­ная це­на, но мно­гим из нас не нра­вит­ся то, что их дан­ные бу­дут на­хо­дить­ся на сер­ве­рах Amazon S3 и вый­дут из-под кон­тро­ля. Дан­ные мож­но за­шиф­ро­вать, но с их кон­фи­ден­ци­аль­но­стью и соб­ст­вен­но­стью на них не все так про­сто. Что­бы из­ба­вить­ся от этих не­дос­тат­ков, ис­сле­ду­ем ва­ри­ан­ты по­строе­ния соб­ст­вен­ной сис­те­мы.&lt;br /&gt;
&lt;br /&gt;
===Аль­тер­на­тив­ные ре­ше­ния===&lt;br /&gt;
&lt;br /&gt;
На пер­вый взгляд, су­ще­ст­ву­ют от­но­си­тель­но про­стые для реа­ли­за­ции ре­ше­ния, та­кие как OwnCloud и Sparkleshare. Оба вы­гля­дят про­стей­шим спо­со­бом соз­дать пол­но­цен­ную за­ме­ну Dropbox, но ес­ли по­ду­мать о за­да­чах это­го про­ек­та, то нам во­все не нуж­но реа­ли­зо­вы­вать всю функ­цио­наль­ность Dropbox. Дру­ги­ми сло­ва­ми, нам не нуж­ны ни web-ин­тер­фейс, ни воз­мож­ность де­лить­ся фай­ла­ми с дру­ги­ми, а нуж­на толь­ко воз­мож­ность вы­бо­роч­но раз­де­лять фай­лы ме­ж­ду ком­пь­ю­те­ра­ми. То есть луч­ше бы взять что-ни­будь по­лег­че Sparkleshare или OwnCloud.&lt;br /&gt;
&lt;br /&gt;
Учи­ты­вая про­сто­ту и воз­мож­но­сти ре­ше­ний для ко­манд­ной стро­ки, пре­дос­тав­ляе­мые rsync, эта ути­ли­та при­хо­дит на ум пер­вой. Од­на­ко про­бле­ма rsync в том, что она не при­спо­соб­ле­на для дву­сто­рон­ней син­хро­ни­за­ции. У нее есть не­сколь­ко по­лез­ных оп­ций, по­зво­ляю­щих до­воль­но близ­ко по­доб­рать­ся к дву­сто­рон­ней син­хро­ни­за­ции, но дос­тичь таковой пол­но­стью нель­зя. Хо­ро­шая ил­лю­ст­ра­ция — от­сут­ст­вие эф­фек­тив­но­го спо­со­ба ре­ак­ции на уда­ле­ние фай­лов. Су­ще­ст­ву­ют спо­со­бы это обой­ти, ко­то­рые вклю­ча­ют со­хра­не­ние вы­во­да в лог-фай­лы, срав­не­ние и уда­ле­ние, но это из­лиш­не ус­лож­ня­ет де­ло.&lt;br /&gt;
{{Врезка|right|Заголовок=Ге­не­ра­ция па­ры клю­чей |Ширина=30%|Содержание=Важ­но по­ни­мать, что под­клю­че­ние по SSH без па­ро­ля не­сет в се­бе эле­мент рис­ка. Ес­ли до­ве­рен­ный ком­пь­ю­тер бу­дет ском­про­ме­ти­ро­ван, зло­умыш­лен­ник смо­жет по­лу­чить пря­мой дос­туп к сер­ве­ру. Что­бы управ­лять этим рис­ком, луч­ше все­го соз­дать учет­ную за­пись на сер­ве­ре спе­ци­аль­но для син­хро­ни­за­ции Unison, у ко­то­ро­го бу­дет очень ог­ра­ни­чен­ный дос­туп к дру­гим сер­ви­сам.&lt;br /&gt;
&lt;br /&gt;
Для ге­не­ра­ции па­ры клю­чей за­пус­ти­те ssh-keygen, и на эк­ра­не поя­вят­ся не­сколь­ко со­об­ще­ний, тре­бую­щих вво­да дан­ных.&lt;br /&gt;
&lt;br /&gt;
Enter file in which to save the key [Вве­ди­те имя фай­ла, где со­хра­нит­ся ключ]:&lt;br /&gt;
&lt;br /&gt;
Мож­но ос­та­вить ва­ри­ант по умол­ча­нию, про­сто на­жав Enter.&lt;br /&gt;
&lt;br /&gt;
Enter passphrase [Вве­ди­те па­роль­ную фра­зу]:&lt;br /&gt;
&lt;br /&gt;
Мы хо­тим поль­зо­вать­ся SSH без па­ро­ля, по­это­му па­роль­ная фра­за не нуж­на. Про­сто на­жми­те Enter.&lt;br /&gt;
&lt;br /&gt;
Enter same passphrase again [Вве­ди­те па­роль­ную фра­зу еще раз]:&lt;br /&gt;
&lt;br /&gt;
Под­твер­ди­те па­роль­ную фра­зу на­жа­ти­ем Enter. &lt;br /&gt;
}} &lt;br /&gt;
Ес­ли не­об­хо­дим про­стой сер­вер для ре­зерв­но­го ко­пи­ро­ва­ния дан­ных, на­хо­дя­щих­ся на од­ном ком­пь­ю­те­ре, rsync пре­крас­но по­дой­дет, но нам нуж­но не­что бо­лее ин­тел­лек­ту­аль­ное, по­это­му мы об­ра­тим­ся к Unison. Unison — ути­ли­та син­хро­ни­за­ции фай­лов, ра­бо­таю­щая в Linux, BSD, OS X и Windows. Она по­зво­ля­ет син­хро­ни­зи­ро­вать на­бор фай­лов и ка­та­ло­гов, ко­то­рые хра­нятся в раз­ных мес­тах, пу­тем рас­про­стра­не­ния из­ме­не­ний ме­ж­ду на­бо­ра­ми.&lt;br /&gt;
&lt;br /&gt;
Пре­ж­де чем рас­су­ж­дать о стра­те­гии, важ­но по­нять, как имен­но ра­бо­та­ет Unison. На са­мом ба­зо­вом уров­не Unison под­дер­жи­вает па­ры ре­п­лик син­хро­ни­зи­ро­ван­ны­ми. Уло­ви­ли сло­во «па­ры»? При ка­ж­дом за­пус­ке Unison он син­хро­ни­зи­ру­ет две ре­п­ли­ки, и ни­че­го боль­ше. Ес­ли ре­п­лик боль­ше двух, по­тре­бу­ет­ся хо­ро­шо про­ду­ман­ная схе­ма, ко­то­рая га­ран­ти­ру­ет, что дан­ные син­хро­ни­зи­ру­ют­ся имен­но так, как мы во­об­ра­жа­ем.&lt;br /&gt;
&lt;br /&gt;
===Ре­п­ли­ки===&lt;br /&gt;
&lt;br /&gt;
Те­перь уме­ст­но спро­сить: «А что та­кое ре­п­ли­ка?» По-про­сто­му, ре­п­ли­ка — это на­бор фай­лов и ка­та­ло­гов. Ре­п­ли­ки мо­гут со­от­вет­ст­во­вать раз­ным хос­там, но это не обя­за­тель­но. Что­бы луч­ше по­нять идею, пред­ставь­те, что у вас есть ком­пь­ю­тер до­ма и ком­пь­ю­тер в офи­се, и вы хо­ти­те, что­бы до­маш­ний ка­та­лог ав­то­ма­ти­че­­ски син­хро­ни­зи­ро­вал­ся ме­ж­ду эти­ми ком­пь­ю­те­ра­ми. Пусть у вас так­же есть внеш­ние USB-дис­ки для ре­зерв­ных ко­пий до­ма и в офи­се. В этот сце­на­рий во­вле­че­но все­го два ком­пь­ю­те­ра, но ре­п­лик Unison че­ты­ре.&lt;br /&gt;
&lt;br /&gt;
За­ду­мав­шись о том, ка­кую струк­ту­ру син­хро­ни­за­ции вы­брать, вы по­лу­чи­те раз­лич­ные «то­по­ло­гии», ко­то­рые по­хо­жи на из­вест­ные се­те­вые то­по­ло­гии — ли­ния, звез­да, сет­ка, коль­цо и дру­гие. Опи­сан­ный вы­ше сце­на­рий со­от­вет­ст­ву­ет ли­ней­ной мо­дели, но луч­ший спо­соб ор­га­ни­за­ции на­шей сис­те­мы — с по­мо­щью ха­ба и мо­де­ли «звез­да». В такой кон­фи­гу­ра­ции в цен­тре на­хо­дится сер­вер, и на ка­ж­дом из ком­пь­ю­те­ров имеет­ся один про­филь Unison, ко­то­рый син­хро­ни­зи­ру­ет дан­ные с сер­ве­ром; эту схе­му мы и реа­ли­зу­ем на на­шем уро­ке.&lt;br /&gt;
&lt;br /&gt;
Для на­ше­го тес­то­во­го слу­чая рас­смот­рим си­туа­цию, при ко­то­рой на ре­гу­ляр­ной ос­но­ве ис­поль­зу­ют­ся че­ты­ре ком­пь­ю­те­ра: офис­ный на­столь­ный ком­пь­ю­тер, до­маш­ний на­столь­ный ком­пь­ю­тер, до­маш­ний но­ут­бук и но­ут­бук для по­ез­док. Мы за­ме­ним Dropbox на всех этих че­ты­рех ком­пь­ю­те­рах. На двух ком­пь­ю­те­рах ус­та­нов­ле­на Mac OS X, на двух дру­гих — Linux.&lt;br /&gt;
&lt;br /&gt;
При ра­бо­те с Unison важ­но обес­пе­чить, что­бы на всех сис­те­мах, уча­ст­вую­щих в син­хро­ни­за­ции, бы­ла ус­та­нов­ле­на од­на и та же вер­сия про­грам­мы. Вос­поль­зу­ем­ся вер­си­ей 2.40, это по­след­ний ста­биль­ный ре­лиз.&lt;br /&gt;
&lt;br /&gt;
На плат­фор­ме Mac за­гру­зи­те гра­фи­че­скую обо­лоч­ку вер­сии 2.40.69 с сай­та http://alan.petitepomme.net/unison/index.html. Смон­ти­руй­те dmg и ско­пи­руй­те Unison в ка­та­лог при­ло­же­ний. Те­перь от­крой­те Unison, и про­грам­ма по­про­сит вас ус­та­но­вить вер­сию ути­ли­ты для ко­манд­ной стро­ки — ска­жи­те «да». Ути­ли­та ус­та­но­вит­ся в /usr/bin/. Для про­вер­ки вы­пол­ни­те ко­ман­ду&lt;br /&gt;
&lt;br /&gt;
unison -version&lt;br /&gt;
&lt;br /&gt;
Unison долж­ен вы­вес­ти но­мер вер­сии — 2.40.69. В Ubuntu 12.04 Unison мож­но ус­та­но­вить из ре­по­зи­то­ри­ев Ubuntu, ско­ман­до­вав&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install unison&lt;br /&gt;
&lt;br /&gt;
Про­ве­рить ус­та­нов­ку мож­но ко­ман­дой&lt;br /&gt;
&lt;br /&gt;
unison -version&lt;br /&gt;
&lt;br /&gt;
Про­грам­ма долж­на вы­вес­ти но­мер вер­сии — 2.40.65. Те­перь мож­но соз­дать про­филь Unison. Про­филь оп­ре­де­ля­ет, как Unison бу­дет син­хро­ни­зи­ро­вать две ре­п­ли­ки. Соз­да­дим файл про­фи­ля под на­зва­ни­ем lxfsync.prf в на­шем сис­тем­ном ка­та­ло­ге Unison:&lt;br /&gt;
&lt;br /&gt;
root = /home/lxf/Unison&lt;br /&gt;
&lt;br /&gt;
root = ssh://lxf@example.com//home/lxf/Unison&lt;br /&gt;
&lt;br /&gt;
fastcheck = true&lt;br /&gt;
&lt;br /&gt;
batch = true&lt;br /&gt;
&lt;br /&gt;
force = newer&lt;br /&gt;
&lt;br /&gt;
times = true&lt;br /&gt;
&lt;br /&gt;
sshargs = -C&lt;br /&gt;
&lt;br /&gt;
Стро­ки 1 и 2 за­да­ют ме­сто­по­ло­же­ние ре­п­лик. Стро­ка 3 ве­лит Unison применять вре­мя из­ме­не­ния и раз­мер фай­ла как «псевдо­но­ме­р уз­ла» при ска­ни­ро­ва­нии ре­п­лик на на­ли­чие из­ме­не­ний, вме­сто счи­ты­ва­ния со­дер­жи­мо­го ка­ж­до­го фай­ла це­ли­ком. Стро­ка 4 от­клю­ча­ет ин­тер­фейс поль­зо­ва­те­ля. Стро­ка 5 ве­лит Unison брать файл с по­след­ним вре­ме­нем из­ме­не­ния. Стро­ка 6 оз­на­ча­ет, что бу­дет со­хра­нять­ся вре­мя из­ме­не­ния фай­лов; и, на­ко­нец, в стро­ке 7 вклю­ча­ет­ся сжа­тие SSH для уве­ли­че­ния про­из­во­ди­тель­но­сти. За­ме­ча­ние об оп­ции times: увы, она не под­дер­жи­ва­ет ка­та­ло­ги. При ко­пи­ро­ва­нии ка­та­ло­га вре­мя его соз­да­ния бу­дет со­от­вет­ст­во­вать соз­да­нию ка­та­ло­га ко­пии, а не ис­ход­но­го ка­та­ло­га.&lt;br /&gt;
&lt;br /&gt;
Те­перь мы го­то­вы к пер­вич­ной син­хро­ни­за­ции. Для на­ча­ла вы­бе­ри­те один из ком­пь­ю­те­ров, соз­дай­те ко­пию ка­та­ло­га Dropbox и на­зо­ви­те ее Unison.&lt;br /&gt;
&lt;br /&gt;
cp -r ~/Dropbox ~/Unison&lt;br /&gt;
&lt;br /&gt;
За­тем мы под­клю­чим­ся к на­ше­му сер­ве­ру Unison че­рез SSH и соз­да­дим со­от­вет­ст­вую­щий ка­та­лог, в ко­то­рый бу­дут син­хро­ни­зи­ро­вать­ся на­ши че­ты­ре ком­пь­ю­те­ра.&lt;br /&gt;
&lt;br /&gt;
mkdir ~/Unison&lt;br /&gt;
&lt;br /&gt;
===Син­хро­ни­зи­ру­ем на­ши дан­ные===&lt;br /&gt;
&lt;br /&gt;
Те­перь нуж­но пе­ре­мес­тить ко­пию дан­ных с но­ут­бу­ка на сер­вер. Что­бы убе­дить­ся в шиф­ро­ва­нии дан­ных при пе­ре­да­че ме­ж­ду ком­пь­ю­те­ра­ми, взгля­ни­те на па­ра­мет­ры: с их по­мо­щью мы ука­за­ли, что для под­клю­че­ния к уда­лен­ной ре­п­ли­ке нуж­но поль­зо­вать­ся SSH. Син­хро­ни­за­ция за­пус­ка­ет­ся сле­дую­щей ко­ман­дой:&lt;br /&gt;
&lt;br /&gt;
unison -ui text lxfsync&lt;br /&gt;
&lt;br /&gt;
Пер­вые два па­ра­мет­ра ве­лят Unison за­пус­кать­ся в тек­сто­вом ре­жи­ме. Тре­тий па­ра­метр — имя про­фи­ля, ко­то­рый мы хо­тим ис­поль­зо­вать.&lt;br /&gt;
&lt;br /&gt;
По окон­ча­нии син­хро­ни­за­ции Unison дол­жен со­об­щить ко­ли­че­­ст­во пе­ре­дан­ных эле­мен­тов. Ес­ли не­ко­то­рые эле­мен­ты бы­ли про­пу­ще­ны или воз­ник­ли ошиб­ки, под­роб­ную ин­фор­ма­цию о тран­зак­ции мож­но по­лу­чить, за­гля­нув в файл жур­на­ла — ~/unison.log.При за­пус­ке Unison вы ви­де­ли, что вас про­сят вве­сти па­роль учет­ной за­пи­си на сер­ве­ре. А так как мы со­би­ра­ем­ся ав­то­ма­ти­зи­ро­вать этот про­цесс, ау­тен­ти­фи­ка­ция долж­на про­хо­дить без ва­шего вме­ша­тель­ст­ва.&lt;br /&gt;
&lt;br /&gt;
Что­бы дос­тичь этой це­ли, вос­поль­зу­ем­ся ау­тен­ти­фи­ка­ци­ей SSH по клю­чу. Для это­го на ка­ж­дом ком­пь­ю­те­ре, син­хро­ни­зи­руе­мом с сер­ве­ром, нуж­но сге­не­ри­ро­вать уни­каль­ный ключ. Что­бы сде­лать это на но­ут­бу­ке, вы­пол­ни­те сле­дую­щую ко­ман­ду:&lt;br /&gt;
&lt;br /&gt;
ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
По­сле это­го в ка­та­ло­ге ~/.ssh долж­но поя­вить­ся два фай­ла: id_rsa и id_rsa.pub. Файл id_rsa.pub — наш пуб­лич­ный ключ, и его нуж­но ско­пи­ро­вать на сер­вер, что­бы де­мон SSH мог до­ве­рять это­му клю­чу. Пе­ре­мес­тим файл ко­ман­дой scp:&lt;br /&gt;
&lt;br /&gt;
scp ~/.ssh/id_rsa.pub lxf@example.com:~/.ssh/Computer1.pub&lt;br /&gt;
&lt;br /&gt;
Те­перь нуж­но пре­ду­пре­дить де­мон SSH на сер­ве­ре, что­бы он до­ве­рял это­му клю­чу. Для это­го под­клю­чим­ся к сер­ве­ру по SSH и ско­ман­ду­ем:&lt;br /&gt;
&lt;br /&gt;
cat ~/.ssh/Computer1.pub &amp;gt;&amp;gt; authorized_keys&lt;br /&gt;
&lt;br /&gt;
Что­бы про­ве­рить на­шу ра­бо­ту, сно­ва за­пус­тим ко­ман­ду Unison с но­ут­бу­ка. Ес­ли все в порядке, на сей раз у нас не спро­сят па­роль:&lt;br /&gt;
&lt;br /&gt;
unison -ui text lxfsync&lt;br /&gt;
{{Врезка|right|Заголовок= |Ширина=30%|Содержание=Яр­лык для Unity Launcher&lt;br /&gt;
&lt;br /&gt;
Ино­гда вам за­хо­чет­ся за­пус­тить про­цесс син­хро­ни­за­ции вруч­ную, а не ждать, по­ка это сде­ла­ет cron. На­при­мер, вы про­си­де­ли над до­ку­мен­том весь ра­бо­чий день, но по­том хо­ти­те еще по­ра­бо­тать с ним из до­ма. Пря­мо пе­ред вы­клю­че­ни­ем сис­те­мы мож­но за­пус­тить скрипт син­хро­ни­за­ции и вы­пол­нить при­ну­ди­тель­ное об­нов­ле­ние, и до­ма вы смо­же­те на­чать пря­мо с об­нов­лен­но­го до­ку­мен­та.&lt;br /&gt;
&lt;br /&gt;
От­кры­вать тер­ми­нал ка­ж­дый раз для за­пус­ка скрип­та не­удоб­но; луч­ше все­го соз­дать икон­ку и до­ба­вить ее в Unity Launcher. Для это­го соз­дай­те файл sync.desktop в /usr/share/applications/:&lt;br /&gt;
&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
&lt;br /&gt;
Version 1.0&lt;br /&gt;
&lt;br /&gt;
Name=Unison&lt;br /&gt;
&lt;br /&gt;
Type=Application&lt;br /&gt;
&lt;br /&gt;
Categories=Application&lt;br /&gt;
&lt;br /&gt;
Exec=/home/lxf/sync.sh&lt;br /&gt;
&lt;br /&gt;
Terminal=true&lt;br /&gt;
&lt;br /&gt;
Icon=/home/lxf/.unison/sync.png&lt;br /&gt;
&lt;br /&gt;
Те­перь на­ше при­ло­же­ние поя­вит­ся в Unity, и его лег­ко под­клю­чить к Unity Launcher. &lt;br /&gt;
}} &lt;br /&gt;
Хо­тя это и не обя­за­тель­но, мно­гим нра­вит­ся, что агент Dropbox ин­фор­ми­ру­ет их о происшедших из­ме­не­ни­ях; пе­ре­не­сем эту воз­мож­ность на че­ты­ре наших ком­пь­ю­те­ра, син­хро­ни­зи­руе­мые с сер­ве­ром. Так как син­хро­ни­за­ция про­из­во­дит­ся с по­мо­щью скрип­тов обо­лоч­ки, нуж­но ус­та­но­вить ути­ли­ты, ко­то­рые по­зво­лят об­ра­тить­ся к сис­те­ме опо­ве­ще­ний ра­бо­че­го сто­ла. На плат­фор­ме Mac мож­но вос­поль­зо­вать­ся Growl по­сред­ст­вом growelnotify. На ком­пь­ю­те­рах Ubuntu вос­поль­зу­ем­ся NotifyOSD с по­мо­щью notify-send.&lt;br /&gt;
&lt;br /&gt;
На плат­фор­ме Mac за­гру­зи­те Growl 1.2.2 с growl.info. По­сле за­груз­ки смон­ти­руй­те dmg и ус­та­но­ви­те Growl, два­ж­ды щелк­нув на скрип­те Growl.pkg. От­крой­те ка­та­лог Extras, за­тем growlnotify, и ус­та­но­ви­те growlnotify, за­пус­тив скрипт growlnotify.pkg. Те­перь мож­но от­прав­лять опо­ве­ще­ния Growl с ко­манд­ной стро­ки. Что­бы это про­ве­рить, от­крой­те тер­ми­нал и вы­пол­ни­те ко­ман­ду&lt;br /&gt;
&lt;br /&gt;
growlnotify --message “Hello World”&lt;br /&gt;
&lt;br /&gt;
В Ubuntu для пе­ре­да­чи со­об­ще­ний де­мо­ну опо­ве­ще­ний ра­бо­че­го сто­ла нуж­но ус­та­но­вить биб­лио­те­ку libnotify. Ус­та­но­вить ее мож­но из ре­по­зи­то­ри­ев Ubuntu, ко­ман­дой&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install libnotify-bin&lt;br /&gt;
&lt;br /&gt;
Что­бы ее про­ве­рить, по­про­буй­те вы­пол­нить сле­дую­щую ко­ман­ду:&lt;br /&gt;
&lt;br /&gt;
notify-send “Hello World”&lt;br /&gt;
&lt;br /&gt;
Ес­ли все хо­ро­шо, ва­ши со­об­ще­ния поя­вят­ся на со­от­вет­ст­вую­щих ра­бо­чих сто­лах.&lt;br /&gt;
&lt;br /&gt;
===Объ­е­ди­ня­ем все вме­сте===&lt;br /&gt;
&lt;br /&gt;
Те­перь мы уме­ем син­хро­ни­зи­ро­вать дан­ные и от­прав­лять опо­ве­ще­ния. Да­вай­те удобства ради объ­е­ди­ним все эти действия в од­ном скрип­те.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
&lt;br /&gt;
/bin/ping -c 1 www.google.com 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
if [“$?” == 0 ]; then&lt;br /&gt;
&lt;br /&gt;
root=”/home/lxf”&lt;br /&gt;
&lt;br /&gt;
image=”$root/.unison/sync.png”&lt;br /&gt;
&lt;br /&gt;
stat=`/usr/bin/unison -ui text -logfile “$root/unison.log” lxfsync 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null | tail -1`&lt;br /&gt;
&lt;br /&gt;
if [${PIPESTATUS[0]} != 0 ]; then&lt;br /&gt;
&lt;br /&gt;
notify-send “Unison” “Sync Error” -i “$image” -t 0&lt;br /&gt;
&lt;br /&gt;
exit 1&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ ${stst:0:7} == “Nothing” ]; then&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&lt;br /&gt;
else&lt;br /&gt;
&lt;br /&gt;
stat2=`echo “$stat” | grep -Po ‘(?&amp;lt;=\().*?(?=\))’`&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
notify-send “Unison” “$stat2” -i “$image”&lt;br /&gt;
&lt;br /&gt;
else&lt;br /&gt;
&lt;br /&gt;
exit 1&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
Как ви­ди­те, наш скрипт очень прост. В стро­ке 1 за­да­ет­ся тип скрип­та (Bash). В стро­ке 2 про­ве­ря­ет­ся под­клю­че­ние к Ин­тер­не­ту. В стро­ке 3 ана­ли­зи­ру­ет­ся ре­зуль­тат про­вер­ки, и ес­ли под­клю­че­ния нет, мы пе­ре­хо­дим к стро­ке 18, в ко­то­рой скрипт за­вер­ша­ет­ся с ко­дом ошиб­ки, оз­на­чаю­щим, что син­хро­ни­за­ция за­вер­ши­лась не­удач­но.&lt;br /&gt;
&lt;br /&gt;
В том случае, ес­ли под­клю­че­ние дос­туп­но, в стро­ках 4 и 5 за­да­ют­ся не­сколь­ко пе­ре­мен­ных, по­сле че­го мы пе­ре­хо­дим к стро­ке 6. В данной стро­ке мы за­пус­ка­ем Unison, по­лу­ча­ем по­след­нюю стро­ку вы­во­да и со­хра­ня­ем ее в пе­ре­мен­ной $stat, ко­то­рой вос­поль­зу­ем­ся поз­же. В стро­ке 7 мы про­ве­ря­ем, вер­нул ли Unison код 0, оз­на­чаю­щий ус­пеш­ную син­хро­ни­за­цию. Ес­ли мы по­лу­чи­ли дру­гой код ошиб­ки, то в стро­ке 8 мы от­прав­ля­ем опо­ве­ще­ние ра­бо­че­го сто­ла об ошиб­ке син­хро­ни­за­ции.&lt;br /&gt;
&lt;br /&gt;
При ус­пеш­ном за­вер­ше­нии син­хро­ни­за­ции в стро­ке 11 мы ана­ли­зи­ру­ем пе­ре­мен­ную $stat, что­бы по­нять, вы­пол­нил ли Unison ка­кие-ли­бо дей­ст­вия. Ес­ли пер­вое сло­во в пе­ре­мен­ной — “Nothing [Ни­че­го]”, то мы вы­хо­дим из скрип­та, по­то­му что об­нов­ле­ний не бы­ло; в про­тив­ном слу­чае пе­ре­хо­дим к стро­ке 14, где по­лу­ча­ем стро­ку в круг­лых скоб­ках и со­хра­ня­ем ее в пе­ре­мен­ной $stat2, по­сле че­го пе­ре­хо­дим в стро­ку 16 и ото­бра­жа­ем ре­зуль­та­ты поль­зо­ва­те­лю.&lt;br /&gt;
&lt;br /&gt;
Что­бы все ра­бо­та­ло без на­ше­го уча­стия, скрипт дол­жен за­пус­кать­ся ре­гу­ляр­но и син­хро­ни­зи­ро­вать­ся с сер­ве­ром. С этой за­да­чей пре­крас­но спра­вит­ся cron. Да­вай­те сде­ла­ем ин­тер­вал син­хро­ни­за­ции в пять ми­нут сле­дую­щей ко­ман­дой:&lt;br /&gt;
&lt;br /&gt;
crontab -e&lt;br /&gt;
&lt;br /&gt;
Те­перь до­ба­вим сле­дую­щее:&lt;br /&gt;
&lt;br /&gt;
*/5 * * * * DISPLAY=:0 /home/lxf/sync.sh&lt;br /&gt;
&lt;br /&gt;
*/5 ве­лит cron за­пус­кать­ся ка­ж­дые пять ми­нут. Сле­дую­щие че­ты­ре звез­доч­ки ве­лят cron за­пус­кать­ся ка­ж­дые пять ми­нут ка­ж­до­го ча­са ка­ж­до­го дня ка­ж­до­го ме­ся­ца. DISPLAY=:0 на­прав­ля­ет вы­вод скрип­та на те­ку­щий мо­ни­тор.&lt;br /&gt;
&lt;br /&gt;
Вот и все! Те­перь вы обзавелись бес­плат­ной за­ме­ной Dropbox, ко­то­рая на­хо­дит­ся под ва­шим кон­тро­лем. Не­ко­то­рые из вас, не­со­мнен­но, по­ин­те­ре­су­ют­ся: а как же луч­ше все­го де­лить­ся фай­ла­ми с чле­на­ми се­мьи и друзь­я­ми? Здесь луч­ше Dropbox вам не най­ти. Про­дол­жай­те поль­зо­вать­ся бес­плат­ной учет­ной за­пи­сью и де­лить­ся фай­ла­ми по ме­ре не­об­хо­ди­мо­сти, не бес­по­ко­ясь об ос­таль­ных дан­ных. |&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:Unison:_%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF_%D0%BA_%D1%81%D0%B2%D0%BE%D0%B8%D0%BC_%D1%84%D0%B0%D0%B9%C2%AD%D0%BB%D0%B0%D0%BC</id>
		<title>LXF171:Unison: Доступ к своим фай­лам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:Unison:_%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF_%D0%BA_%D1%81%D0%B2%D0%BE%D0%B8%D0%BC_%D1%84%D0%B0%D0%B9%C2%AD%D0%BB%D0%B0%D0%BC"/>
				<updated>2018-11-18T11:30:53Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* Син­хро­ни­зи­ру­ем на­ши дан­ные */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Учебники]]&lt;br /&gt;
== Unison: Доступ к своим фай­лам ==&lt;br /&gt;
[[Файл:LXF162.tut passwords.2.png |left | thumb|100px|'''Наш эксперт''' Джеймс Лит­тон за­ни­мал ру­ко­во­дя­щие долж­но­сти в не­сколь­ких ор­га­ни­за­ци­ях и яв­ля­ет­ся парт­не­ром и ди­рек­то­ром Identity Automation LP.]] &lt;br /&gt;
Хо­ти­те разделять сво­и дан­ные между раз­ными сис­темами без про­блем с при­ват­но­стью и соб­ст­вен­но­стью на них? Джеймс Лит­тон по­ка­зы­ва­ет, как.&lt;br /&gt;
&lt;br /&gt;
При мыс­лях о сво­их дан­ных у мно­гих из нас воз­ни­ка­ет внут­рен­няя борь­ба: мы по­дыс­ки­ва­ем наи­луч­ший спо­соб га­ран­ти­ро­вать их со­хран­ность. В преж­ние вре­ме­на все дан­ные уме­ща­лись на не­сколь­ких дис­ке­тах; по­том мы пе­ре­шли к лен­там, CD, DVD, NAS и, на­ко­нец, к об­лач­ным хра­ни­ли­щам.&lt;br /&gt;
&lt;br /&gt;
Рас­смот­рев ти­пич­ную стра­те­гию управ­ле­ния дан­ны­ми, мы об­на­ру­жим, что за­час­тую она фраг­мен­тар­на и не­эф­фек­тив­на. Ва­ши по­все­днев­ные фай­лы, воз­мож­но, хра­нят­ся на Dropbox, что по­зво­ля­ет лег­ко раз­де­лять их ме­ж­ду раз­ны­ми ком­пь­ю­те­ра­ми, ко­то­ры­ми вы ре­гу­ляр­но поль­зуе­тесь. Этот ва­ри­ант пре­крас­но под­хо­дит для элек­трон­ных таб­лиц, баз дан­ных и до­ку­мен­тов — все вме­сте это до­воль­но скром­ный объ­ем дан­ных. Но ко­гда до­хо­дит до фо­то­гра­фий, му­зы­ки и филь­мов, на­чи­на­ют­ся про­бле­мы. Для фай­лов муль­ти­ме­диа нуж­но го­раз­до боль­ше мес­та, и они час­то ока­зы­ва­ют­ся на до­маш­нем сер­ве­ре NAS, и, воз­мож­но, вре­мя от вре­ме­ни ко­пи­ру­ют­ся на внеш­ний USB-диск.&lt;br /&gt;
{{Врезка|left|Заголовок= Сис­тем­ные ка­та­ло­ги Unison|Ширина=20%|Содержание=В Linux Unison соз­даст под­ка­та­лог .unison в $HOME. В OS X сис­тем­ный ка­та­лог соз­да­ет­ся в ~/Library/Application Support/Unison. Мно­гие поль­зо­ва­те­ли Mac пред­поч­тут сис­тем­ный ка­та­лог в сти­ле Linux. К сча­стью, Unison бу­дет поль­зо­вать­ся ка­та­ло­гом ~/.unison, ес­ли он су­ще­ст­ву­ет. Что­бы его соз­дать, вы­пол­ни­те сле­дую­щую ко­ман­ду:&lt;br /&gt;
&lt;br /&gt;
mkdir ~/.unison}} &lt;br /&gt;
Пред­по­ло­жим, что об­щий объ­ем ва­ших дан­ных — 500 ГБ, и вы хо­ти­те со­брать их все в од­ном мес­те. Та­кое по­зво­ля­ет сделать Dropbox — за $ 499 в год, и это, че­ст­но го­во­ря, до­воль­но ра­зум­ная це­на, но мно­гим из нас не нра­вит­ся то, что их дан­ные бу­дут на­хо­дить­ся на сер­ве­рах Amazon S3 и вый­дут из-под кон­тро­ля. Дан­ные мож­но за­шиф­ро­вать, но с их кон­фи­ден­ци­аль­но­стью и соб­ст­вен­но­стью на них не все так про­сто. Что­бы из­ба­вить­ся от этих не­дос­тат­ков, ис­сле­ду­ем ва­ри­ан­ты по­строе­ния соб­ст­вен­ной сис­те­мы.&lt;br /&gt;
&lt;br /&gt;
===Аль­тер­на­тив­ные ре­ше­ния===&lt;br /&gt;
&lt;br /&gt;
На пер­вый взгляд, су­ще­ст­ву­ют от­но­си­тель­но про­стые для реа­ли­за­ции ре­ше­ния, та­кие как OwnCloud и Sparkleshare. Оба вы­гля­дят про­стей­шим спо­со­бом соз­дать пол­но­цен­ную за­ме­ну Dropbox, но ес­ли по­ду­мать о за­да­чах это­го про­ек­та, то нам во­все не нуж­но реа­ли­зо­вы­вать всю функ­цио­наль­ность Dropbox. Дру­ги­ми сло­ва­ми, нам не нуж­ны ни web-ин­тер­фейс, ни воз­мож­ность де­лить­ся фай­ла­ми с дру­ги­ми, а нуж­на толь­ко воз­мож­ность вы­бо­роч­но раз­де­лять фай­лы ме­ж­ду ком­пь­ю­те­ра­ми. То есть луч­ше бы взять что-ни­будь по­лег­че Sparkleshare или OwnCloud.&lt;br /&gt;
&lt;br /&gt;
Учи­ты­вая про­сто­ту и воз­мож­но­сти ре­ше­ний для ко­манд­ной стро­ки, пре­дос­тав­ляе­мые rsync, эта ути­ли­та при­хо­дит на ум пер­вой. Од­на­ко про­бле­ма rsync в том, что она не при­спо­соб­ле­на для дву­сто­рон­ней син­хро­ни­за­ции. У нее есть не­сколь­ко по­лез­ных оп­ций, по­зво­ляю­щих до­воль­но близ­ко по­доб­рать­ся к дву­сто­рон­ней син­хро­ни­за­ции, но дос­тичь таковой пол­но­стью нель­зя. Хо­ро­шая ил­лю­ст­ра­ция — от­сут­ст­вие эф­фек­тив­но­го спо­со­ба ре­ак­ции на уда­ле­ние фай­лов. Су­ще­ст­ву­ют спо­со­бы это обой­ти, ко­то­рые вклю­ча­ют со­хра­не­ние вы­во­да в лог-фай­лы, срав­не­ние и уда­ле­ние, но это из­лиш­не ус­лож­ня­ет де­ло.&lt;br /&gt;
{{Врезка|right|Заголовок=Ге­не­ра­ция па­ры клю­чей |Ширина=30%|Содержание=Важ­но по­ни­мать, что под­клю­че­ние по SSH без па­ро­ля не­сет в се­бе эле­мент рис­ка. Ес­ли до­ве­рен­ный ком­пь­ю­тер бу­дет ском­про­ме­ти­ро­ван, зло­умыш­лен­ник смо­жет по­лу­чить пря­мой дос­туп к сер­ве­ру. Что­бы управ­лять этим рис­ком, луч­ше все­го соз­дать учет­ную за­пись на сер­ве­ре спе­ци­аль­но для син­хро­ни­за­ции Unison, у ко­то­ро­го бу­дет очень ог­ра­ни­чен­ный дос­туп к дру­гим сер­ви­сам.&lt;br /&gt;
&lt;br /&gt;
Для ге­не­ра­ции па­ры клю­чей за­пус­ти­те ssh-keygen, и на эк­ра­не поя­вят­ся не­сколь­ко со­об­ще­ний, тре­бую­щих вво­да дан­ных.&lt;br /&gt;
&lt;br /&gt;
Enter file in which to save the key [Вве­ди­те имя фай­ла, где со­хра­нит­ся ключ]:&lt;br /&gt;
&lt;br /&gt;
Мож­но ос­та­вить ва­ри­ант по умол­ча­нию, про­сто на­жав Enter.&lt;br /&gt;
&lt;br /&gt;
Enter passphrase [Вве­ди­те па­роль­ную фра­зу]:&lt;br /&gt;
&lt;br /&gt;
Мы хо­тим поль­зо­вать­ся SSH без па­ро­ля, по­это­му па­роль­ная фра­за не нуж­на. Про­сто на­жми­те Enter.&lt;br /&gt;
&lt;br /&gt;
Enter same passphrase again [Вве­ди­те па­роль­ную фра­зу еще раз]:&lt;br /&gt;
&lt;br /&gt;
Под­твер­ди­те па­роль­ную фра­зу на­жа­ти­ем Enter. &lt;br /&gt;
}} &lt;br /&gt;
Ес­ли не­об­хо­дим про­стой сер­вер для ре­зерв­но­го ко­пи­ро­ва­ния дан­ных, на­хо­дя­щих­ся на од­ном ком­пь­ю­те­ре, rsync пре­крас­но по­дой­дет, но нам нуж­но не­что бо­лее ин­тел­лек­ту­аль­ное, по­это­му мы об­ра­тим­ся к Unison. Unison — ути­ли­та син­хро­ни­за­ции фай­лов, ра­бо­таю­щая в Linux, BSD, OS X и Windows. Она по­зво­ля­ет син­хро­ни­зи­ро­вать на­бор фай­лов и ка­та­ло­гов, ко­то­рые хра­нятся в раз­ных мес­тах, пу­тем рас­про­стра­не­ния из­ме­не­ний ме­ж­ду на­бо­ра­ми.&lt;br /&gt;
&lt;br /&gt;
Пре­ж­де чем рас­су­ж­дать о стра­те­гии, важ­но по­нять, как имен­но ра­бо­та­ет Unison. На са­мом ба­зо­вом уров­не Unison под­дер­жи­вает па­ры ре­п­лик син­хро­ни­зи­ро­ван­ны­ми. Уло­ви­ли сло­во «па­ры»? При ка­ж­дом за­пус­ке Unison он син­хро­ни­зи­ру­ет две ре­п­ли­ки, и ни­че­го боль­ше. Ес­ли ре­п­лик боль­ше двух, по­тре­бу­ет­ся хо­ро­шо про­ду­ман­ная схе­ма, ко­то­рая га­ран­ти­ру­ет, что дан­ные син­хро­ни­зи­ру­ют­ся имен­но так, как мы во­об­ра­жа­ем.&lt;br /&gt;
&lt;br /&gt;
===Ре­п­ли­ки===&lt;br /&gt;
&lt;br /&gt;
Те­перь уме­ст­но спро­сить: «А что та­кое ре­п­ли­ка?» По-про­сто­му, ре­п­ли­ка — это на­бор фай­лов и ка­та­ло­гов. Ре­п­ли­ки мо­гут со­от­вет­ст­во­вать раз­ным хос­там, но это не обя­за­тель­но. Что­бы луч­ше по­нять идею, пред­ставь­те, что у вас есть ком­пь­ю­тер до­ма и ком­пь­ю­тер в офи­се, и вы хо­ти­те, что­бы до­маш­ний ка­та­лог ав­то­ма­ти­че­­ски син­хро­ни­зи­ро­вал­ся ме­ж­ду эти­ми ком­пь­ю­те­ра­ми. Пусть у вас так­же есть внеш­ние USB-дис­ки для ре­зерв­ных ко­пий до­ма и в офи­се. В этот сце­на­рий во­вле­че­но все­го два ком­пь­ю­те­ра, но ре­п­лик Unison че­ты­ре.&lt;br /&gt;
&lt;br /&gt;
За­ду­мав­шись о том, ка­кую струк­ту­ру син­хро­ни­за­ции вы­брать, вы по­лу­чи­те раз­лич­ные «то­по­ло­гии», ко­то­рые по­хо­жи на из­вест­ные се­те­вые то­по­ло­гии — ли­ния, звез­да, сет­ка, коль­цо и дру­гие. Опи­сан­ный вы­ше сце­на­рий со­от­вет­ст­ву­ет ли­ней­ной мо­дели, но луч­ший спо­соб ор­га­ни­за­ции на­шей сис­те­мы — с по­мо­щью ха­ба и мо­де­ли «звез­да». В такой кон­фи­гу­ра­ции в цен­тре на­хо­дится сер­вер, и на ка­ж­дом из ком­пь­ю­те­ров имеет­ся один про­филь Unison, ко­то­рый син­хро­ни­зи­ру­ет дан­ные с сер­ве­ром; эту схе­му мы и реа­ли­зу­ем на на­шем уро­ке.&lt;br /&gt;
&lt;br /&gt;
Для на­ше­го тес­то­во­го слу­чая рас­смот­рим си­туа­цию, при ко­то­рой на ре­гу­ляр­ной ос­но­ве ис­поль­зу­ют­ся че­ты­ре ком­пь­ю­те­ра: офис­ный на­столь­ный ком­пь­ю­тер, до­маш­ний на­столь­ный ком­пь­ю­тер, до­маш­ний но­ут­бук и но­ут­бук для по­ез­док. Мы за­ме­ним Dropbox на всех этих че­ты­рех ком­пь­ю­те­рах. На двух ком­пь­ю­те­рах ус­та­нов­ле­на Mac OS X, на двух дру­гих — Linux.&lt;br /&gt;
&lt;br /&gt;
При ра­бо­те с Unison важ­но обес­пе­чить, что­бы на всех сис­те­мах, уча­ст­вую­щих в син­хро­ни­за­ции, бы­ла ус­та­нов­ле­на од­на и та же вер­сия про­грам­мы. Вос­поль­зу­ем­ся вер­си­ей 2.40, это по­след­ний ста­биль­ный ре­лиз.&lt;br /&gt;
&lt;br /&gt;
На плат­фор­ме Mac за­гру­зи­те гра­фи­че­скую обо­лоч­ку вер­сии 2.40.69 с сай­та http://alan.petitepomme.net/unison/index.html. Смон­ти­руй­те dmg и ско­пи­руй­те Unison в ка­та­лог при­ло­же­ний. Те­перь от­крой­те Unison, и про­грам­ма по­про­сит вас ус­та­но­вить вер­сию ути­ли­ты для ко­манд­ной стро­ки — ска­жи­те «да». Ути­ли­та ус­та­но­вит­ся в /usr/bin/. Для про­вер­ки вы­пол­ни­те ко­ман­ду&lt;br /&gt;
&lt;br /&gt;
unison -version&lt;br /&gt;
&lt;br /&gt;
Unison долж­ен вы­вес­ти но­мер вер­сии — 2.40.69. В Ubuntu 12.04 Unison мож­но ус­та­но­вить из ре­по­зи­то­ри­ев Ubuntu, ско­ман­до­вав&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install unison&lt;br /&gt;
&lt;br /&gt;
Про­ве­рить ус­та­нов­ку мож­но ко­ман­дой&lt;br /&gt;
&lt;br /&gt;
unison -version&lt;br /&gt;
&lt;br /&gt;
Про­грам­ма долж­на вы­вес­ти но­мер вер­сии — 2.40.65. Те­перь мож­но соз­дать про­филь Unison. Про­филь оп­ре­де­ля­ет, как Unison бу­дет син­хро­ни­зи­ро­вать две ре­п­ли­ки. Соз­да­дим файл про­фи­ля под на­зва­ни­ем lxfsync.prf в на­шем сис­тем­ном ка­та­ло­ге Unison:&lt;br /&gt;
&lt;br /&gt;
root = /home/lxf/Unison&lt;br /&gt;
&lt;br /&gt;
root = ssh://lxf@example.com//home/lxf/Unison&lt;br /&gt;
&lt;br /&gt;
fastcheck = true&lt;br /&gt;
&lt;br /&gt;
batch = true&lt;br /&gt;
&lt;br /&gt;
force = newer&lt;br /&gt;
&lt;br /&gt;
times = true&lt;br /&gt;
&lt;br /&gt;
sshargs = -C&lt;br /&gt;
&lt;br /&gt;
Стро­ки 1 и 2 за­да­ют ме­сто­по­ло­же­ние ре­п­лик. Стро­ка 3 ве­лит Unison применять вре­мя из­ме­не­ния и раз­мер фай­ла как «псевдо­но­ме­р уз­ла» при ска­ни­ро­ва­нии ре­п­лик на на­ли­чие из­ме­не­ний, вме­сто счи­ты­ва­ния со­дер­жи­мо­го ка­ж­до­го фай­ла це­ли­ком. Стро­ка 4 от­клю­ча­ет ин­тер­фейс поль­зо­ва­те­ля. Стро­ка 5 ве­лит Unison брать файл с по­след­ним вре­ме­нем из­ме­не­ния. Стро­ка 6 оз­на­ча­ет, что бу­дет со­хра­нять­ся вре­мя из­ме­не­ния фай­лов; и, на­ко­нец, в стро­ке 7 вклю­ча­ет­ся сжа­тие SSH для уве­ли­че­ния про­из­во­ди­тель­но­сти. За­ме­ча­ние об оп­ции times: увы, она не под­дер­жи­ва­ет ка­та­ло­ги. При ко­пи­ро­ва­нии ка­та­ло­га вре­мя его соз­да­ния бу­дет со­от­вет­ст­во­вать соз­да­нию ка­та­ло­га ко­пии, а не ис­ход­но­го ка­та­ло­га.&lt;br /&gt;
&lt;br /&gt;
Те­перь мы го­то­вы к пер­вич­ной син­хро­ни­за­ции. Для на­ча­ла вы­бе­ри­те один из ком­пь­ю­те­ров, соз­дай­те ко­пию ка­та­ло­га Dropbox и на­зо­ви­те ее Unison.&lt;br /&gt;
&lt;br /&gt;
cp -r ~/Dropbox ~/Unison&lt;br /&gt;
&lt;br /&gt;
За­тем мы под­клю­чим­ся к на­ше­му сер­ве­ру Unison че­рез SSH и соз­да­дим со­от­вет­ст­вую­щий ка­та­лог, в ко­то­рый бу­дут син­хро­ни­зи­ро­вать­ся на­ши че­ты­ре ком­пь­ю­те­ра.&lt;br /&gt;
&lt;br /&gt;
mkdir ~/Unison&lt;br /&gt;
&lt;br /&gt;
===Син­хро­ни­зи­ру­ем на­ши дан­ные===&lt;br /&gt;
&lt;br /&gt;
Те­перь нуж­но пе­ре­мес­тить ко­пию дан­ных с но­ут­бу­ка на сер­вер. Что­бы убе­дить­ся в шиф­ро­ва­нии дан­ных при пе­ре­да­че ме­ж­ду ком­пь­ю­те­ра­ми, взгля­ни­те на па­ра­мет­ры: с их по­мо­щью мы ука­за­ли, что для под­клю­че­ния к уда­лен­ной ре­п­ли­ке нуж­но поль­зо­вать­ся SSH. Син­хро­ни­за­ция за­пус­ка­ет­ся сле­дую­щей ко­ман­дой:&lt;br /&gt;
&lt;br /&gt;
unison -ui text lxfsync&lt;br /&gt;
&lt;br /&gt;
Пер­вые два па­ра­мет­ра ве­лят Unison за­пус­кать­ся в тек­сто­вом ре­жи­ме. Тре­тий па­ра­метр — имя про­фи­ля, ко­то­рый мы хо­тим ис­поль­зо­вать.&lt;br /&gt;
&lt;br /&gt;
По окон­ча­нии син­хро­ни­за­ции Unison дол­жен со­об­щить ко­ли­че­­ст­во пе­ре­дан­ных эле­мен­тов. Ес­ли не­ко­то­рые эле­мен­ты бы­ли про­пу­ще­ны или воз­ник­ли ошиб­ки, под­роб­ную ин­фор­ма­цию о тран­зак­ции мож­но по­лу­чить, за­гля­нув в файл жур­на­ла — ~/unison.log.При за­пус­ке Unison вы ви­де­ли, что вас про­сят вве­сти па­роль учет­ной за­пи­си на сер­ве­ре. А так как мы со­би­ра­ем­ся ав­то­ма­ти­зи­ро­вать этот про­цесс, ау­тен­ти­фи­ка­ция долж­на про­хо­дить без ва­шего вме­ша­тель­ст­ва.&lt;br /&gt;
&lt;br /&gt;
Что­бы дос­тичь этой це­ли, вос­поль­зу­ем­ся ау­тен­ти­фи­ка­ци­ей SSH по клю­чу. Для это­го на ка­ж­дом ком­пь­ю­те­ре, син­хро­ни­зи­руе­мом с сер­ве­ром, нуж­но сге­не­ри­ро­вать уни­каль­ный ключ. Что­бы сде­лать это на но­ут­бу­ке, вы­пол­ни­те сле­дую­щую ко­ман­ду:&lt;br /&gt;
&lt;br /&gt;
ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
По­сле это­го в ка­та­ло­ге ~/.ssh долж­но поя­вить­ся два фай­ла: id_rsa и id_rsa.pub. Файл id_rsa.pub — наш пуб­лич­ный ключ, и его нуж­но ско­пи­ро­вать на сер­вер, что­бы де­мон SSH мог до­ве­рять это­му клю­чу. Пе­ре­мес­тим файл ко­ман­дой scp:&lt;br /&gt;
&lt;br /&gt;
scp ~/.ssh/id_rsa.pub lxf@example.com:~/.ssh/Computer1.pub&lt;br /&gt;
&lt;br /&gt;
Те­перь нуж­но пре­ду­пре­дить де­мон SSH на сер­ве­ре, что­бы он до­ве­рял это­му клю­чу. Для это­го под­клю­чим­ся к сер­ве­ру по SSH и ско­ман­ду­ем:&lt;br /&gt;
&lt;br /&gt;
cat ~/.ssh/Computer1.pub &amp;gt;&amp;gt; authorized_keys&lt;br /&gt;
&lt;br /&gt;
Что­бы про­ве­рить на­шу ра­бо­ту, сно­ва за­пус­тим ко­ман­ду Unison с но­ут­бу­ка. Ес­ли все в порядке, на сей раз у нас не спро­сят па­роль:&lt;br /&gt;
&lt;br /&gt;
unison -ui text lxfsync&lt;br /&gt;
{{Врезка|right|Заголовок= |Ширина=30%|Содержание=Яр­лык для Unity Launcher&lt;br /&gt;
&lt;br /&gt;
Ино­гда вам за­хо­чет­ся за­пус­тить про­цесс син­хро­ни­за­ции вруч­ную, а не ждать, по­ка это сде­ла­ет cron. На­при­мер, вы про­си­де­ли над до­ку­мен­том весь ра­бо­чий день, но по­том хо­ти­те еще по­ра­бо­тать с ним из до­ма. Пря­мо пе­ред вы­клю­че­ни­ем сис­те­мы мож­но за­пус­тить скрипт син­хро­ни­за­ции и вы­пол­нить при­ну­ди­тель­ное об­нов­ле­ние, и до­ма вы смо­же­те на­чать пря­мо с об­нов­лен­но­го до­ку­мен­та.&lt;br /&gt;
&lt;br /&gt;
От­кры­вать тер­ми­нал ка­ж­дый раз для за­пус­ка скрип­та не­удоб­но; луч­ше все­го соз­дать икон­ку и до­ба­вить ее в Unity Launcher. Для это­го соз­дай­те файл sync.desktop в /usr/share/applications/:&lt;br /&gt;
&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
&lt;br /&gt;
Version 1.0&lt;br /&gt;
&lt;br /&gt;
Name=Unison&lt;br /&gt;
&lt;br /&gt;
Type=Application&lt;br /&gt;
&lt;br /&gt;
Categories=Application&lt;br /&gt;
&lt;br /&gt;
Exec=/home/lxf/sync.sh&lt;br /&gt;
&lt;br /&gt;
Terminal=true&lt;br /&gt;
&lt;br /&gt;
Icon=/home/lxf/.unison/sync.png&lt;br /&gt;
&lt;br /&gt;
Те­перь на­ше при­ло­же­ние поя­вит­ся в Unity, и его лег­ко под­клю­чить к Unity Launcher. &lt;br /&gt;
}} &lt;br /&gt;
Хо­тя это и не обя­за­тель­но, мно­гим нра­вит­ся, что агент Dropbox ин­фор­ми­ру­ет их о происшедших из­ме­не­ни­ях; пе­ре­не­сем эту воз­мож­ность на че­ты­ре наших ком­пь­ю­те­ра, син­хро­ни­зи­руе­мые с сер­ве­ром. Так как син­хро­ни­за­ция про­из­во­дит­ся с по­мо­щью скрип­тов обо­лоч­ки, нуж­но ус­та­но­вить ути­ли­ты, ко­то­рые по­зво­лят об­ра­тить­ся к сис­те­ме опо­ве­ще­ний ра­бо­че­го сто­ла. На плат­фор­ме Mac мож­но вос­поль­зо­вать­ся Growl по­сред­ст­вом growelnotify. На ком­пь­ю­те­рах Ubuntu вос­поль­зу­ем­ся NotifyOSD с по­мо­щью notify-send.&lt;br /&gt;
&lt;br /&gt;
На плат­фор­ме Mac за­гру­зи­те Growl 1.2.2 с growl.info. По­сле за­груз­ки смон­ти­руй­те dmg и ус­та­но­ви­те Growl, два­ж­ды щелк­нув на скрип­те Growl.pkg. От­крой­те ка­та­лог Extras, за­тем growlnotify, и ус­та­но­ви­те growlnotify, за­пус­тив скрипт growlnotify.pkg. Те­перь мож­но от­прав­лять опо­ве­ще­ния Growl с ко­манд­ной стро­ки. Что­бы это про­ве­рить, от­крой­те тер­ми­нал и вы­пол­ни­те ко­ман­ду&lt;br /&gt;
&lt;br /&gt;
growlnotify --message “Hello World”&lt;br /&gt;
&lt;br /&gt;
В Ubuntu для пе­ре­да­чи со­об­ще­ний де­мо­ну опо­ве­ще­ний ра­бо­че­го сто­ла нуж­но ус­та­но­вить биб­лио­те­ку libnotify. Ус­та­но­вить ее мож­но из ре­по­зи­то­ри­ев Ubuntu, ко­ман­дой&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install libnotify-bin&lt;br /&gt;
&lt;br /&gt;
Что­бы ее про­ве­рить, по­про­буй­те вы­пол­нить сле­дую­щую ко­ман­ду:&lt;br /&gt;
&lt;br /&gt;
notify-send “Hello World”&lt;br /&gt;
&lt;br /&gt;
Ес­ли все хо­ро­шо, ва­ши со­об­ще­ния поя­вят­ся на со­от­вет­ст­вую­щих ра­бо­чих сто­лах.&lt;br /&gt;
&lt;br /&gt;
===Объ­е­ди­ня­ем все вме­сте===&lt;br /&gt;
&lt;br /&gt;
Те­перь мы уме­ем син­хро­ни­зи­ро­вать дан­ные и от­прав­лять опо­ве­ще­ния. Да­вай­те удобства ради объ­е­ди­ним все эти действия в од­ном скрип­те.&lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
/bin/ping -c 1 www.google.com 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
if [“$?” == 0 ]; then&lt;br /&gt;
&lt;br /&gt;
root=”/home/lxf”&lt;br /&gt;
&lt;br /&gt;
image=”$root/.unison/sync.png”&lt;br /&gt;
&lt;br /&gt;
stat=`/usr/bin/unison -ui text -logfile “$root/unison.log” lxfsync 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null | tail -1`&lt;br /&gt;
&lt;br /&gt;
if [${PIPESTATUS[0]} != 0 ]; then&lt;br /&gt;
&lt;br /&gt;
notify-send “Unison” “Sync Error” -i “$image” -t 0&lt;br /&gt;
&lt;br /&gt;
exit 1&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ ${stst:0:7} == “Nothing” ]; then&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&lt;br /&gt;
else&lt;br /&gt;
&lt;br /&gt;
stat2=`echo “$stat” | grep -Po ‘(?&amp;lt;=\().*?(?=\))’`&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
notify-send “Unison” “$stat2” -i “$image”&lt;br /&gt;
&lt;br /&gt;
else&lt;br /&gt;
&lt;br /&gt;
exit 1&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
Как ви­ди­те, наш скрипт очень прост. В стро­ке 1 за­да­ет­ся тип скрип­та (Bash). В стро­ке 2 про­ве­ря­ет­ся под­клю­че­ние к Ин­тер­не­ту. В стро­ке 3 ана­ли­зи­ру­ет­ся ре­зуль­тат про­вер­ки, и ес­ли под­клю­че­ния нет, мы пе­ре­хо­дим к стро­ке 18, в ко­то­рой скрипт за­вер­ша­ет­ся с ко­дом ошиб­ки, оз­на­чаю­щим, что син­хро­ни­за­ция за­вер­ши­лась не­удач­но.&lt;br /&gt;
&lt;br /&gt;
В том случае, ес­ли под­клю­че­ние дос­туп­но, в стро­ках 4 и 5 за­да­ют­ся не­сколь­ко пе­ре­мен­ных, по­сле че­го мы пе­ре­хо­дим к стро­ке 6. В данной стро­ке мы за­пус­ка­ем Unison, по­лу­ча­ем по­след­нюю стро­ку вы­во­да и со­хра­ня­ем ее в пе­ре­мен­ной $stat, ко­то­рой вос­поль­зу­ем­ся поз­же. В стро­ке 7 мы про­ве­ря­ем, вер­нул ли Unison код 0, оз­на­чаю­щий ус­пеш­ную син­хро­ни­за­цию. Ес­ли мы по­лу­чи­ли дру­гой код ошиб­ки, то в стро­ке 8 мы от­прав­ля­ем опо­ве­ще­ние ра­бо­че­го сто­ла об ошиб­ке син­хро­ни­за­ции.&lt;br /&gt;
&lt;br /&gt;
При ус­пеш­ном за­вер­ше­нии син­хро­ни­за­ции в стро­ке 11 мы ана­ли­зи­ру­ем пе­ре­мен­ную $stat, что­бы по­нять, вы­пол­нил ли Unison ка­кие-ли­бо дей­ст­вия. Ес­ли пер­вое сло­во в пе­ре­мен­ной — “Nothing [Ни­че­го]”, то мы вы­хо­дим из скрип­та, по­то­му что об­нов­ле­ний не бы­ло; в про­тив­ном слу­чае пе­ре­хо­дим к стро­ке 14, где по­лу­ча­ем стро­ку в круг­лых скоб­ках и со­хра­ня­ем ее в пе­ре­мен­ной $stat2, по­сле че­го пе­ре­хо­дим в стро­ку 16 и ото­бра­жа­ем ре­зуль­та­ты поль­зо­ва­те­лю.&lt;br /&gt;
&lt;br /&gt;
Что­бы все ра­бо­та­ло без на­ше­го уча­стия, скрипт дол­жен за­пус­кать­ся ре­гу­ляр­но и син­хро­ни­зи­ро­вать­ся с сер­ве­ром. С этой за­да­чей пре­крас­но спра­вит­ся cron. Да­вай­те сде­ла­ем ин­тер­вал син­хро­ни­за­ции в пять ми­нут сле­дую­щей ко­ман­дой:&lt;br /&gt;
&lt;br /&gt;
crontab -e&lt;br /&gt;
&lt;br /&gt;
Те­перь до­ба­вим сле­дую­щее:&lt;br /&gt;
&lt;br /&gt;
*/5 * * * * DISPLAY=:0 /home/lxf/sync.sh&lt;br /&gt;
&lt;br /&gt;
*/5 ве­лит cron за­пус­кать­ся ка­ж­дые пять ми­нут. Сле­дую­щие че­ты­ре звез­доч­ки ве­лят cron за­пус­кать­ся ка­ж­дые пять ми­нут ка­ж­до­го ча­са ка­ж­до­го дня ка­ж­до­го ме­ся­ца. DISPLAY=:0 на­прав­ля­ет вы­вод скрип­та на те­ку­щий мо­ни­тор.&lt;br /&gt;
&lt;br /&gt;
Вот и все! Те­перь вы обзавелись бес­плат­ной за­ме­ной Dropbox, ко­то­рая на­хо­дит­ся под ва­шим кон­тро­лем. Не­ко­то­рые из вас, не­со­мнен­но, по­ин­те­ре­су­ют­ся: а как же луч­ше все­го де­лить­ся фай­ла­ми с чле­на­ми се­мьи и друзь­я­ми? Здесь луч­ше Dropbox вам не най­ти. Про­дол­жай­те поль­зо­вать­ся бес­плат­ной учет­ной за­пи­сью и де­лить­ся фай­ла­ми по ме­ре не­об­хо­ди­мо­сти, не бес­по­ко­ясь об ос­таль­ных дан­ных. |&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:Unison:_%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF_%D0%BA_%D1%81%D0%B2%D0%BE%D0%B8%D0%BC_%D1%84%D0%B0%D0%B9%C2%AD%D0%BB%D0%B0%D0%BC</id>
		<title>LXF171:Unison: Доступ к своим фай­лам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:Unison:_%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF_%D0%BA_%D1%81%D0%B2%D0%BE%D0%B8%D0%BC_%D1%84%D0%B0%D0%B9%C2%AD%D0%BB%D0%B0%D0%BC"/>
				<updated>2018-11-18T11:30:19Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* Аль­тер­на­тив­ные ре­ше­ния */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Учебники]]&lt;br /&gt;
== Unison: Доступ к своим фай­лам ==&lt;br /&gt;
[[Файл:LXF162.tut passwords.2.png |left | thumb|100px|'''Наш эксперт''' Джеймс Лит­тон за­ни­мал ру­ко­во­дя­щие долж­но­сти в не­сколь­ких ор­га­ни­за­ци­ях и яв­ля­ет­ся парт­не­ром и ди­рек­то­ром Identity Automation LP.]] &lt;br /&gt;
Хо­ти­те разделять сво­и дан­ные между раз­ными сис­темами без про­блем с при­ват­но­стью и соб­ст­вен­но­стью на них? Джеймс Лит­тон по­ка­зы­ва­ет, как.&lt;br /&gt;
&lt;br /&gt;
При мыс­лях о сво­их дан­ных у мно­гих из нас воз­ни­ка­ет внут­рен­няя борь­ба: мы по­дыс­ки­ва­ем наи­луч­ший спо­соб га­ран­ти­ро­вать их со­хран­ность. В преж­ние вре­ме­на все дан­ные уме­ща­лись на не­сколь­ких дис­ке­тах; по­том мы пе­ре­шли к лен­там, CD, DVD, NAS и, на­ко­нец, к об­лач­ным хра­ни­ли­щам.&lt;br /&gt;
&lt;br /&gt;
Рас­смот­рев ти­пич­ную стра­те­гию управ­ле­ния дан­ны­ми, мы об­на­ру­жим, что за­час­тую она фраг­мен­тар­на и не­эф­фек­тив­на. Ва­ши по­все­днев­ные фай­лы, воз­мож­но, хра­нят­ся на Dropbox, что по­зво­ля­ет лег­ко раз­де­лять их ме­ж­ду раз­ны­ми ком­пь­ю­те­ра­ми, ко­то­ры­ми вы ре­гу­ляр­но поль­зуе­тесь. Этот ва­ри­ант пре­крас­но под­хо­дит для элек­трон­ных таб­лиц, баз дан­ных и до­ку­мен­тов — все вме­сте это до­воль­но скром­ный объ­ем дан­ных. Но ко­гда до­хо­дит до фо­то­гра­фий, му­зы­ки и филь­мов, на­чи­на­ют­ся про­бле­мы. Для фай­лов муль­ти­ме­диа нуж­но го­раз­до боль­ше мес­та, и они час­то ока­зы­ва­ют­ся на до­маш­нем сер­ве­ре NAS, и, воз­мож­но, вре­мя от вре­ме­ни ко­пи­ру­ют­ся на внеш­ний USB-диск.&lt;br /&gt;
{{Врезка|left|Заголовок= Сис­тем­ные ка­та­ло­ги Unison|Ширина=20%|Содержание=В Linux Unison соз­даст под­ка­та­лог .unison в $HOME. В OS X сис­тем­ный ка­та­лог соз­да­ет­ся в ~/Library/Application Support/Unison. Мно­гие поль­зо­ва­те­ли Mac пред­поч­тут сис­тем­ный ка­та­лог в сти­ле Linux. К сча­стью, Unison бу­дет поль­зо­вать­ся ка­та­ло­гом ~/.unison, ес­ли он су­ще­ст­ву­ет. Что­бы его соз­дать, вы­пол­ни­те сле­дую­щую ко­ман­ду:&lt;br /&gt;
&lt;br /&gt;
mkdir ~/.unison}} &lt;br /&gt;
Пред­по­ло­жим, что об­щий объ­ем ва­ших дан­ных — 500 ГБ, и вы хо­ти­те со­брать их все в од­ном мес­те. Та­кое по­зво­ля­ет сделать Dropbox — за $ 499 в год, и это, че­ст­но го­во­ря, до­воль­но ра­зум­ная це­на, но мно­гим из нас не нра­вит­ся то, что их дан­ные бу­дут на­хо­дить­ся на сер­ве­рах Amazon S3 и вый­дут из-под кон­тро­ля. Дан­ные мож­но за­шиф­ро­вать, но с их кон­фи­ден­ци­аль­но­стью и соб­ст­вен­но­стью на них не все так про­сто. Что­бы из­ба­вить­ся от этих не­дос­тат­ков, ис­сле­ду­ем ва­ри­ан­ты по­строе­ния соб­ст­вен­ной сис­те­мы.&lt;br /&gt;
&lt;br /&gt;
===Аль­тер­на­тив­ные ре­ше­ния===&lt;br /&gt;
&lt;br /&gt;
На пер­вый взгляд, су­ще­ст­ву­ют от­но­си­тель­но про­стые для реа­ли­за­ции ре­ше­ния, та­кие как OwnCloud и Sparkleshare. Оба вы­гля­дят про­стей­шим спо­со­бом соз­дать пол­но­цен­ную за­ме­ну Dropbox, но ес­ли по­ду­мать о за­да­чах это­го про­ек­та, то нам во­все не нуж­но реа­ли­зо­вы­вать всю функ­цио­наль­ность Dropbox. Дру­ги­ми сло­ва­ми, нам не нуж­ны ни web-ин­тер­фейс, ни воз­мож­ность де­лить­ся фай­ла­ми с дру­ги­ми, а нуж­на толь­ко воз­мож­ность вы­бо­роч­но раз­де­лять фай­лы ме­ж­ду ком­пь­ю­те­ра­ми. То есть луч­ше бы взять что-ни­будь по­лег­че Sparkleshare или OwnCloud.&lt;br /&gt;
&lt;br /&gt;
Учи­ты­вая про­сто­ту и воз­мож­но­сти ре­ше­ний для ко­манд­ной стро­ки, пре­дос­тав­ляе­мые rsync, эта ути­ли­та при­хо­дит на ум пер­вой. Од­на­ко про­бле­ма rsync в том, что она не при­спо­соб­ле­на для дву­сто­рон­ней син­хро­ни­за­ции. У нее есть не­сколь­ко по­лез­ных оп­ций, по­зво­ляю­щих до­воль­но близ­ко по­доб­рать­ся к дву­сто­рон­ней син­хро­ни­за­ции, но дос­тичь таковой пол­но­стью нель­зя. Хо­ро­шая ил­лю­ст­ра­ция — от­сут­ст­вие эф­фек­тив­но­го спо­со­ба ре­ак­ции на уда­ле­ние фай­лов. Су­ще­ст­ву­ют спо­со­бы это обой­ти, ко­то­рые вклю­ча­ют со­хра­не­ние вы­во­да в лог-фай­лы, срав­не­ние и уда­ле­ние, но это из­лиш­не ус­лож­ня­ет де­ло.&lt;br /&gt;
{{Врезка|right|Заголовок=Ге­не­ра­ция па­ры клю­чей |Ширина=30%|Содержание=Важ­но по­ни­мать, что под­клю­че­ние по SSH без па­ро­ля не­сет в се­бе эле­мент рис­ка. Ес­ли до­ве­рен­ный ком­пь­ю­тер бу­дет ском­про­ме­ти­ро­ван, зло­умыш­лен­ник смо­жет по­лу­чить пря­мой дос­туп к сер­ве­ру. Что­бы управ­лять этим рис­ком, луч­ше все­го соз­дать учет­ную за­пись на сер­ве­ре спе­ци­аль­но для син­хро­ни­за­ции Unison, у ко­то­ро­го бу­дет очень ог­ра­ни­чен­ный дос­туп к дру­гим сер­ви­сам.&lt;br /&gt;
&lt;br /&gt;
Для ге­не­ра­ции па­ры клю­чей за­пус­ти­те ssh-keygen, и на эк­ра­не поя­вят­ся не­сколь­ко со­об­ще­ний, тре­бую­щих вво­да дан­ных.&lt;br /&gt;
&lt;br /&gt;
Enter file in which to save the key [Вве­ди­те имя фай­ла, где со­хра­нит­ся ключ]:&lt;br /&gt;
&lt;br /&gt;
Мож­но ос­та­вить ва­ри­ант по умол­ча­нию, про­сто на­жав Enter.&lt;br /&gt;
&lt;br /&gt;
Enter passphrase [Вве­ди­те па­роль­ную фра­зу]:&lt;br /&gt;
&lt;br /&gt;
Мы хо­тим поль­зо­вать­ся SSH без па­ро­ля, по­это­му па­роль­ная фра­за не нуж­на. Про­сто на­жми­те Enter.&lt;br /&gt;
&lt;br /&gt;
Enter same passphrase again [Вве­ди­те па­роль­ную фра­зу еще раз]:&lt;br /&gt;
&lt;br /&gt;
Под­твер­ди­те па­роль­ную фра­зу на­жа­ти­ем Enter. &lt;br /&gt;
}} &lt;br /&gt;
Ес­ли не­об­хо­дим про­стой сер­вер для ре­зерв­но­го ко­пи­ро­ва­ния дан­ных, на­хо­дя­щих­ся на од­ном ком­пь­ю­те­ре, rsync пре­крас­но по­дой­дет, но нам нуж­но не­что бо­лее ин­тел­лек­ту­аль­ное, по­это­му мы об­ра­тим­ся к Unison. Unison — ути­ли­та син­хро­ни­за­ции фай­лов, ра­бо­таю­щая в Linux, BSD, OS X и Windows. Она по­зво­ля­ет син­хро­ни­зи­ро­вать на­бор фай­лов и ка­та­ло­гов, ко­то­рые хра­нятся в раз­ных мес­тах, пу­тем рас­про­стра­не­ния из­ме­не­ний ме­ж­ду на­бо­ра­ми.&lt;br /&gt;
&lt;br /&gt;
Пре­ж­де чем рас­су­ж­дать о стра­те­гии, важ­но по­нять, как имен­но ра­бо­та­ет Unison. На са­мом ба­зо­вом уров­не Unison под­дер­жи­вает па­ры ре­п­лик син­хро­ни­зи­ро­ван­ны­ми. Уло­ви­ли сло­во «па­ры»? При ка­ж­дом за­пус­ке Unison он син­хро­ни­зи­ру­ет две ре­п­ли­ки, и ни­че­го боль­ше. Ес­ли ре­п­лик боль­ше двух, по­тре­бу­ет­ся хо­ро­шо про­ду­ман­ная схе­ма, ко­то­рая га­ран­ти­ру­ет, что дан­ные син­хро­ни­зи­ру­ют­ся имен­но так, как мы во­об­ра­жа­ем.&lt;br /&gt;
&lt;br /&gt;
===Ре­п­ли­ки===&lt;br /&gt;
&lt;br /&gt;
Те­перь уме­ст­но спро­сить: «А что та­кое ре­п­ли­ка?» По-про­сто­му, ре­п­ли­ка — это на­бор фай­лов и ка­та­ло­гов. Ре­п­ли­ки мо­гут со­от­вет­ст­во­вать раз­ным хос­там, но это не обя­за­тель­но. Что­бы луч­ше по­нять идею, пред­ставь­те, что у вас есть ком­пь­ю­тер до­ма и ком­пь­ю­тер в офи­се, и вы хо­ти­те, что­бы до­маш­ний ка­та­лог ав­то­ма­ти­че­­ски син­хро­ни­зи­ро­вал­ся ме­ж­ду эти­ми ком­пь­ю­те­ра­ми. Пусть у вас так­же есть внеш­ние USB-дис­ки для ре­зерв­ных ко­пий до­ма и в офи­се. В этот сце­на­рий во­вле­че­но все­го два ком­пь­ю­те­ра, но ре­п­лик Unison че­ты­ре.&lt;br /&gt;
&lt;br /&gt;
За­ду­мав­шись о том, ка­кую струк­ту­ру син­хро­ни­за­ции вы­брать, вы по­лу­чи­те раз­лич­ные «то­по­ло­гии», ко­то­рые по­хо­жи на из­вест­ные се­те­вые то­по­ло­гии — ли­ния, звез­да, сет­ка, коль­цо и дру­гие. Опи­сан­ный вы­ше сце­на­рий со­от­вет­ст­ву­ет ли­ней­ной мо­дели, но луч­ший спо­соб ор­га­ни­за­ции на­шей сис­те­мы — с по­мо­щью ха­ба и мо­де­ли «звез­да». В такой кон­фи­гу­ра­ции в цен­тре на­хо­дится сер­вер, и на ка­ж­дом из ком­пь­ю­те­ров имеет­ся один про­филь Unison, ко­то­рый син­хро­ни­зи­ру­ет дан­ные с сер­ве­ром; эту схе­му мы и реа­ли­зу­ем на на­шем уро­ке.&lt;br /&gt;
&lt;br /&gt;
Для на­ше­го тес­то­во­го слу­чая рас­смот­рим си­туа­цию, при ко­то­рой на ре­гу­ляр­ной ос­но­ве ис­поль­зу­ют­ся че­ты­ре ком­пь­ю­те­ра: офис­ный на­столь­ный ком­пь­ю­тер, до­маш­ний на­столь­ный ком­пь­ю­тер, до­маш­ний но­ут­бук и но­ут­бук для по­ез­док. Мы за­ме­ним Dropbox на всех этих че­ты­рех ком­пь­ю­те­рах. На двух ком­пь­ю­те­рах ус­та­нов­ле­на Mac OS X, на двух дру­гих — Linux.&lt;br /&gt;
&lt;br /&gt;
При ра­бо­те с Unison важ­но обес­пе­чить, что­бы на всех сис­те­мах, уча­ст­вую­щих в син­хро­ни­за­ции, бы­ла ус­та­нов­ле­на од­на и та же вер­сия про­грам­мы. Вос­поль­зу­ем­ся вер­си­ей 2.40, это по­след­ний ста­биль­ный ре­лиз.&lt;br /&gt;
&lt;br /&gt;
На плат­фор­ме Mac за­гру­зи­те гра­фи­че­скую обо­лоч­ку вер­сии 2.40.69 с сай­та http://alan.petitepomme.net/unison/index.html. Смон­ти­руй­те dmg и ско­пи­руй­те Unison в ка­та­лог при­ло­же­ний. Те­перь от­крой­те Unison, и про­грам­ма по­про­сит вас ус­та­но­вить вер­сию ути­ли­ты для ко­манд­ной стро­ки — ска­жи­те «да». Ути­ли­та ус­та­но­вит­ся в /usr/bin/. Для про­вер­ки вы­пол­ни­те ко­ман­ду&lt;br /&gt;
&lt;br /&gt;
unison -version&lt;br /&gt;
&lt;br /&gt;
Unison долж­ен вы­вес­ти но­мер вер­сии — 2.40.69. В Ubuntu 12.04 Unison мож­но ус­та­но­вить из ре­по­зи­то­ри­ев Ubuntu, ско­ман­до­вав&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install unison&lt;br /&gt;
&lt;br /&gt;
Про­ве­рить ус­та­нов­ку мож­но ко­ман­дой&lt;br /&gt;
&lt;br /&gt;
unison -version&lt;br /&gt;
&lt;br /&gt;
Про­грам­ма долж­на вы­вес­ти но­мер вер­сии — 2.40.65. Те­перь мож­но соз­дать про­филь Unison. Про­филь оп­ре­де­ля­ет, как Unison бу­дет син­хро­ни­зи­ро­вать две ре­п­ли­ки. Соз­да­дим файл про­фи­ля под на­зва­ни­ем lxfsync.prf в на­шем сис­тем­ном ка­та­ло­ге Unison:&lt;br /&gt;
&lt;br /&gt;
root = /home/lxf/Unison&lt;br /&gt;
&lt;br /&gt;
root = ssh://lxf@example.com//home/lxf/Unison&lt;br /&gt;
&lt;br /&gt;
fastcheck = true&lt;br /&gt;
&lt;br /&gt;
batch = true&lt;br /&gt;
&lt;br /&gt;
force = newer&lt;br /&gt;
&lt;br /&gt;
times = true&lt;br /&gt;
&lt;br /&gt;
sshargs = -C&lt;br /&gt;
&lt;br /&gt;
Стро­ки 1 и 2 за­да­ют ме­сто­по­ло­же­ние ре­п­лик. Стро­ка 3 ве­лит Unison применять вре­мя из­ме­не­ния и раз­мер фай­ла как «псевдо­но­ме­р уз­ла» при ска­ни­ро­ва­нии ре­п­лик на на­ли­чие из­ме­не­ний, вме­сто счи­ты­ва­ния со­дер­жи­мо­го ка­ж­до­го фай­ла це­ли­ком. Стро­ка 4 от­клю­ча­ет ин­тер­фейс поль­зо­ва­те­ля. Стро­ка 5 ве­лит Unison брать файл с по­след­ним вре­ме­нем из­ме­не­ния. Стро­ка 6 оз­на­ча­ет, что бу­дет со­хра­нять­ся вре­мя из­ме­не­ния фай­лов; и, на­ко­нец, в стро­ке 7 вклю­ча­ет­ся сжа­тие SSH для уве­ли­че­ния про­из­во­ди­тель­но­сти. За­ме­ча­ние об оп­ции times: увы, она не под­дер­жи­ва­ет ка­та­ло­ги. При ко­пи­ро­ва­нии ка­та­ло­га вре­мя его соз­да­ния бу­дет со­от­вет­ст­во­вать соз­да­нию ка­та­ло­га ко­пии, а не ис­ход­но­го ка­та­ло­га.&lt;br /&gt;
&lt;br /&gt;
Те­перь мы го­то­вы к пер­вич­ной син­хро­ни­за­ции. Для на­ча­ла вы­бе­ри­те один из ком­пь­ю­те­ров, соз­дай­те ко­пию ка­та­ло­га Dropbox и на­зо­ви­те ее Unison.&lt;br /&gt;
&lt;br /&gt;
cp -r ~/Dropbox ~/Unison&lt;br /&gt;
&lt;br /&gt;
За­тем мы под­клю­чим­ся к на­ше­му сер­ве­ру Unison че­рез SSH и соз­да­дим со­от­вет­ст­вую­щий ка­та­лог, в ко­то­рый бу­дут син­хро­ни­зи­ро­вать­ся на­ши че­ты­ре ком­пь­ю­те­ра.&lt;br /&gt;
&lt;br /&gt;
mkdir ~/Unison&lt;br /&gt;
&lt;br /&gt;
===Син­хро­ни­зи­ру­ем на­ши дан­ные===&lt;br /&gt;
&lt;br /&gt;
Те­перь нуж­но пе­ре­мес­тить ко­пию дан­ных с но­ут­бу­ка на сер­вер. Что­бы убе­дить­ся в шиф­ро­ва­нии дан­ных при пе­ре­да­че ме­ж­ду ком­пь­ю­те­ра­ми, взгля­ни­те на па­ра­мет­ры: с их по­мо­щью мы ука­за­ли, что для под­клю­че­ния к уда­лен­ной ре­п­ли­ке нуж­но поль­зо­вать­ся SSH. Син­хро­ни­за­ция за­пус­ка­ет­ся сле­дую­щей ко­ман­дой:&lt;br /&gt;
&lt;br /&gt;
unison -ui text lxfsync&lt;br /&gt;
&lt;br /&gt;
Пер­вые два па­ра­мет­ра ве­лят Unison за­пус­кать­ся в тек­сто­вом ре­жи­ме. Тре­тий па­ра­метр — имя про­фи­ля, ко­то­рый мы хо­тим ис­поль­зо­вать.&lt;br /&gt;
&lt;br /&gt;
По окон­ча­нии син­хро­ни­за­ции Unison дол­жен со­об­щить ко­ли­че­­ст­во пе­ре­дан­ных эле­мен­тов. Ес­ли не­ко­то­рые эле­мен­ты бы­ли про­пу­ще­ны или воз­ник­ли ошиб­ки, под­роб­ную ин­фор­ма­цию о тран­зак­ции мож­но по­лу­чить, за­гля­нув в файл жур­на­ла — ~/unison.log.При за­пус­ке Unison вы ви­де­ли, что вас про­сят вве­сти па­роль учет­ной за­пи­си на сер­ве­ре. А так как мы со­би­ра­ем­ся ав­то­ма­ти­зи­ро­вать этот про­цесс, ау­тен­ти­фи­ка­ция долж­на про­хо­дить без ва­шего вме­ша­тель­ст­ва.&lt;br /&gt;
&lt;br /&gt;
Что­бы дос­тичь этой це­ли, вос­поль­зу­ем­ся ау­тен­ти­фи­ка­ци­ей SSH по клю­чу. Для это­го на ка­ж­дом ком­пь­ю­те­ре, син­хро­ни­зи­руе­мом с сер­ве­ром, нуж­но сге­не­ри­ро­вать уни­каль­ный ключ. Что­бы сде­лать это на но­ут­бу­ке, вы­пол­ни­те сле­дую­щую ко­ман­ду:&lt;br /&gt;
&lt;br /&gt;
ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
По­сле это­го в ка­та­ло­ге ~/.ssh долж­но поя­вить­ся два фай­ла: id_rsa и id_rsa.pub. Файл id_rsa.pub — наш пуб­лич­ный ключ, и его нуж­но ско­пи­ро­вать на сер­вер, что­бы де­мон SSH мог до­ве­рять это­му клю­чу. Пе­ре­мес­тим файл ко­ман­дой scp:&lt;br /&gt;
&lt;br /&gt;
scp ~/.ssh/id_rsa.pub lxf@example.com:~/.ssh/Computer1.pub&lt;br /&gt;
&lt;br /&gt;
Те­перь нуж­но пре­ду­пре­дить де­мон SSH на сер­ве­ре, что­бы он до­ве­рял это­му клю­чу. Для это­го под­клю­чим­ся к сер­ве­ру по SSH и ско­ман­ду­ем:&lt;br /&gt;
&lt;br /&gt;
cat ~/.ssh/Computer1.pub &amp;gt;&amp;gt; authorized_keys&lt;br /&gt;
&lt;br /&gt;
Что­бы про­ве­рить на­шу ра­бо­ту, сно­ва за­пус­тим ко­ман­ду Unison с но­ут­бу­ка. Ес­ли все в порядке, на сей раз у нас не спро­сят па­роль:&lt;br /&gt;
&lt;br /&gt;
unison -ui text lxfsync&lt;br /&gt;
{{Врезка|right|Заголовок= |Ширина=10%|Содержание=Яр­лык для Unity Launcher&lt;br /&gt;
&lt;br /&gt;
Ино­гда вам за­хо­чет­ся за­пус­тить про­цесс син­хро­ни­за­ции вруч­ную, а не ждать, по­ка это сде­ла­ет cron. На­при­мер, вы про­си­де­ли над до­ку­мен­том весь ра­бо­чий день, но по­том хо­ти­те еще по­ра­бо­тать с ним из до­ма. Пря­мо пе­ред вы­клю­че­ни­ем сис­те­мы мож­но за­пус­тить скрипт син­хро­ни­за­ции и вы­пол­нить при­ну­ди­тель­ное об­нов­ле­ние, и до­ма вы смо­же­те на­чать пря­мо с об­нов­лен­но­го до­ку­мен­та.&lt;br /&gt;
&lt;br /&gt;
От­кры­вать тер­ми­нал ка­ж­дый раз для за­пус­ка скрип­та не­удоб­но; луч­ше все­го соз­дать икон­ку и до­ба­вить ее в Unity Launcher. Для это­го соз­дай­те файл sync.desktop в /usr/share/applications/:&lt;br /&gt;
&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
&lt;br /&gt;
Version 1.0&lt;br /&gt;
&lt;br /&gt;
Name=Unison&lt;br /&gt;
&lt;br /&gt;
Type=Application&lt;br /&gt;
&lt;br /&gt;
Categories=Application&lt;br /&gt;
&lt;br /&gt;
Exec=/home/lxf/sync.sh&lt;br /&gt;
&lt;br /&gt;
Terminal=true&lt;br /&gt;
&lt;br /&gt;
Icon=/home/lxf/.unison/sync.png&lt;br /&gt;
&lt;br /&gt;
Те­перь на­ше при­ло­же­ние поя­вит­ся в Unity, и его лег­ко под­клю­чить к Unity Launcher. &lt;br /&gt;
}} &lt;br /&gt;
Хо­тя это и не обя­за­тель­но, мно­гим нра­вит­ся, что агент Dropbox ин­фор­ми­ру­ет их о происшедших из­ме­не­ни­ях; пе­ре­не­сем эту воз­мож­ность на че­ты­ре наших ком­пь­ю­те­ра, син­хро­ни­зи­руе­мые с сер­ве­ром. Так как син­хро­ни­за­ция про­из­во­дит­ся с по­мо­щью скрип­тов обо­лоч­ки, нуж­но ус­та­но­вить ути­ли­ты, ко­то­рые по­зво­лят об­ра­тить­ся к сис­те­ме опо­ве­ще­ний ра­бо­че­го сто­ла. На плат­фор­ме Mac мож­но вос­поль­зо­вать­ся Growl по­сред­ст­вом growelnotify. На ком­пь­ю­те­рах Ubuntu вос­поль­зу­ем­ся NotifyOSD с по­мо­щью notify-send.&lt;br /&gt;
&lt;br /&gt;
На плат­фор­ме Mac за­гру­зи­те Growl 1.2.2 с growl.info. По­сле за­груз­ки смон­ти­руй­те dmg и ус­та­но­ви­те Growl, два­ж­ды щелк­нув на скрип­те Growl.pkg. От­крой­те ка­та­лог Extras, за­тем growlnotify, и ус­та­но­ви­те growlnotify, за­пус­тив скрипт growlnotify.pkg. Те­перь мож­но от­прав­лять опо­ве­ще­ния Growl с ко­манд­ной стро­ки. Что­бы это про­ве­рить, от­крой­те тер­ми­нал и вы­пол­ни­те ко­ман­ду&lt;br /&gt;
&lt;br /&gt;
growlnotify --message “Hello World”&lt;br /&gt;
&lt;br /&gt;
В Ubuntu для пе­ре­да­чи со­об­ще­ний де­мо­ну опо­ве­ще­ний ра­бо­че­го сто­ла нуж­но ус­та­но­вить биб­лио­те­ку libnotify. Ус­та­но­вить ее мож­но из ре­по­зи­то­ри­ев Ubuntu, ко­ман­дой&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install libnotify-bin&lt;br /&gt;
&lt;br /&gt;
Что­бы ее про­ве­рить, по­про­буй­те вы­пол­нить сле­дую­щую ко­ман­ду:&lt;br /&gt;
&lt;br /&gt;
notify-send “Hello World”&lt;br /&gt;
&lt;br /&gt;
Ес­ли все хо­ро­шо, ва­ши со­об­ще­ния поя­вят­ся на со­от­вет­ст­вую­щих ра­бо­чих сто­лах.&lt;br /&gt;
&lt;br /&gt;
===Объ­е­ди­ня­ем все вме­сте===&lt;br /&gt;
&lt;br /&gt;
Те­перь мы уме­ем син­хро­ни­зи­ро­вать дан­ные и от­прав­лять опо­ве­ще­ния. Да­вай­те удобства ради объ­е­ди­ним все эти действия в од­ном скрип­те.&lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
/bin/ping -c 1 www.google.com 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
if [“$?” == 0 ]; then&lt;br /&gt;
&lt;br /&gt;
root=”/home/lxf”&lt;br /&gt;
&lt;br /&gt;
image=”$root/.unison/sync.png”&lt;br /&gt;
&lt;br /&gt;
stat=`/usr/bin/unison -ui text -logfile “$root/unison.log” lxfsync 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null | tail -1`&lt;br /&gt;
&lt;br /&gt;
if [${PIPESTATUS[0]} != 0 ]; then&lt;br /&gt;
&lt;br /&gt;
notify-send “Unison” “Sync Error” -i “$image” -t 0&lt;br /&gt;
&lt;br /&gt;
exit 1&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ ${stst:0:7} == “Nothing” ]; then&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&lt;br /&gt;
else&lt;br /&gt;
&lt;br /&gt;
stat2=`echo “$stat” | grep -Po ‘(?&amp;lt;=\().*?(?=\))’`&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
notify-send “Unison” “$stat2” -i “$image”&lt;br /&gt;
&lt;br /&gt;
else&lt;br /&gt;
&lt;br /&gt;
exit 1&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
Как ви­ди­те, наш скрипт очень прост. В стро­ке 1 за­да­ет­ся тип скрип­та (Bash). В стро­ке 2 про­ве­ря­ет­ся под­клю­че­ние к Ин­тер­не­ту. В стро­ке 3 ана­ли­зи­ру­ет­ся ре­зуль­тат про­вер­ки, и ес­ли под­клю­че­ния нет, мы пе­ре­хо­дим к стро­ке 18, в ко­то­рой скрипт за­вер­ша­ет­ся с ко­дом ошиб­ки, оз­на­чаю­щим, что син­хро­ни­за­ция за­вер­ши­лась не­удач­но.&lt;br /&gt;
&lt;br /&gt;
В том случае, ес­ли под­клю­че­ние дос­туп­но, в стро­ках 4 и 5 за­да­ют­ся не­сколь­ко пе­ре­мен­ных, по­сле че­го мы пе­ре­хо­дим к стро­ке 6. В данной стро­ке мы за­пус­ка­ем Unison, по­лу­ча­ем по­след­нюю стро­ку вы­во­да и со­хра­ня­ем ее в пе­ре­мен­ной $stat, ко­то­рой вос­поль­зу­ем­ся поз­же. В стро­ке 7 мы про­ве­ря­ем, вер­нул ли Unison код 0, оз­на­чаю­щий ус­пеш­ную син­хро­ни­за­цию. Ес­ли мы по­лу­чи­ли дру­гой код ошиб­ки, то в стро­ке 8 мы от­прав­ля­ем опо­ве­ще­ние ра­бо­че­го сто­ла об ошиб­ке син­хро­ни­за­ции.&lt;br /&gt;
&lt;br /&gt;
При ус­пеш­ном за­вер­ше­нии син­хро­ни­за­ции в стро­ке 11 мы ана­ли­зи­ру­ем пе­ре­мен­ную $stat, что­бы по­нять, вы­пол­нил ли Unison ка­кие-ли­бо дей­ст­вия. Ес­ли пер­вое сло­во в пе­ре­мен­ной — “Nothing [Ни­че­го]”, то мы вы­хо­дим из скрип­та, по­то­му что об­нов­ле­ний не бы­ло; в про­тив­ном слу­чае пе­ре­хо­дим к стро­ке 14, где по­лу­ча­ем стро­ку в круг­лых скоб­ках и со­хра­ня­ем ее в пе­ре­мен­ной $stat2, по­сле че­го пе­ре­хо­дим в стро­ку 16 и ото­бра­жа­ем ре­зуль­та­ты поль­зо­ва­те­лю.&lt;br /&gt;
&lt;br /&gt;
Что­бы все ра­бо­та­ло без на­ше­го уча­стия, скрипт дол­жен за­пус­кать­ся ре­гу­ляр­но и син­хро­ни­зи­ро­вать­ся с сер­ве­ром. С этой за­да­чей пре­крас­но спра­вит­ся cron. Да­вай­те сде­ла­ем ин­тер­вал син­хро­ни­за­ции в пять ми­нут сле­дую­щей ко­ман­дой:&lt;br /&gt;
&lt;br /&gt;
crontab -e&lt;br /&gt;
&lt;br /&gt;
Те­перь до­ба­вим сле­дую­щее:&lt;br /&gt;
&lt;br /&gt;
*/5 * * * * DISPLAY=:0 /home/lxf/sync.sh&lt;br /&gt;
&lt;br /&gt;
*/5 ве­лит cron за­пус­кать­ся ка­ж­дые пять ми­нут. Сле­дую­щие че­ты­ре звез­доч­ки ве­лят cron за­пус­кать­ся ка­ж­дые пять ми­нут ка­ж­до­го ча­са ка­ж­до­го дня ка­ж­до­го ме­ся­ца. DISPLAY=:0 на­прав­ля­ет вы­вод скрип­та на те­ку­щий мо­ни­тор.&lt;br /&gt;
&lt;br /&gt;
Вот и все! Те­перь вы обзавелись бес­плат­ной за­ме­ной Dropbox, ко­то­рая на­хо­дит­ся под ва­шим кон­тро­лем. Не­ко­то­рые из вас, не­со­мнен­но, по­ин­те­ре­су­ют­ся: а как же луч­ше все­го де­лить­ся фай­ла­ми с чле­на­ми се­мьи и друзь­я­ми? Здесь луч­ше Dropbox вам не най­ти. Про­дол­жай­те поль­зо­вать­ся бес­плат­ной учет­ной за­пи­сью и де­лить­ся фай­ла­ми по ме­ре не­об­хо­ди­мо­сти, не бес­по­ко­ясь об ос­таль­ных дан­ных. |&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:Unison:_%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF_%D0%BA_%D1%81%D0%B2%D0%BE%D0%B8%D0%BC_%D1%84%D0%B0%D0%B9%C2%AD%D0%BB%D0%B0%D0%BC</id>
		<title>LXF171:Unison: Доступ к своим фай­лам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:Unison:_%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF_%D0%BA_%D1%81%D0%B2%D0%BE%D0%B8%D0%BC_%D1%84%D0%B0%D0%B9%C2%AD%D0%BB%D0%B0%D0%BC"/>
				<updated>2018-11-18T11:29:45Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* Unison: Доступ к своим фай­лам */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Учебники]]&lt;br /&gt;
== Unison: Доступ к своим фай­лам ==&lt;br /&gt;
[[Файл:LXF162.tut passwords.2.png |left | thumb|100px|'''Наш эксперт''' Джеймс Лит­тон за­ни­мал ру­ко­во­дя­щие долж­но­сти в не­сколь­ких ор­га­ни­за­ци­ях и яв­ля­ет­ся парт­не­ром и ди­рек­то­ром Identity Automation LP.]] &lt;br /&gt;
Хо­ти­те разделять сво­и дан­ные между раз­ными сис­темами без про­блем с при­ват­но­стью и соб­ст­вен­но­стью на них? Джеймс Лит­тон по­ка­зы­ва­ет, как.&lt;br /&gt;
&lt;br /&gt;
При мыс­лях о сво­их дан­ных у мно­гих из нас воз­ни­ка­ет внут­рен­няя борь­ба: мы по­дыс­ки­ва­ем наи­луч­ший спо­соб га­ран­ти­ро­вать их со­хран­ность. В преж­ние вре­ме­на все дан­ные уме­ща­лись на не­сколь­ких дис­ке­тах; по­том мы пе­ре­шли к лен­там, CD, DVD, NAS и, на­ко­нец, к об­лач­ным хра­ни­ли­щам.&lt;br /&gt;
&lt;br /&gt;
Рас­смот­рев ти­пич­ную стра­те­гию управ­ле­ния дан­ны­ми, мы об­на­ру­жим, что за­час­тую она фраг­мен­тар­на и не­эф­фек­тив­на. Ва­ши по­все­днев­ные фай­лы, воз­мож­но, хра­нят­ся на Dropbox, что по­зво­ля­ет лег­ко раз­де­лять их ме­ж­ду раз­ны­ми ком­пь­ю­те­ра­ми, ко­то­ры­ми вы ре­гу­ляр­но поль­зуе­тесь. Этот ва­ри­ант пре­крас­но под­хо­дит для элек­трон­ных таб­лиц, баз дан­ных и до­ку­мен­тов — все вме­сте это до­воль­но скром­ный объ­ем дан­ных. Но ко­гда до­хо­дит до фо­то­гра­фий, му­зы­ки и филь­мов, на­чи­на­ют­ся про­бле­мы. Для фай­лов муль­ти­ме­диа нуж­но го­раз­до боль­ше мес­та, и они час­то ока­зы­ва­ют­ся на до­маш­нем сер­ве­ре NAS, и, воз­мож­но, вре­мя от вре­ме­ни ко­пи­ру­ют­ся на внеш­ний USB-диск.&lt;br /&gt;
{{Врезка|left|Заголовок= Сис­тем­ные ка­та­ло­ги Unison|Ширина=20%|Содержание=В Linux Unison соз­даст под­ка­та­лог .unison в $HOME. В OS X сис­тем­ный ка­та­лог соз­да­ет­ся в ~/Library/Application Support/Unison. Мно­гие поль­зо­ва­те­ли Mac пред­поч­тут сис­тем­ный ка­та­лог в сти­ле Linux. К сча­стью, Unison бу­дет поль­зо­вать­ся ка­та­ло­гом ~/.unison, ес­ли он су­ще­ст­ву­ет. Что­бы его соз­дать, вы­пол­ни­те сле­дую­щую ко­ман­ду:&lt;br /&gt;
&lt;br /&gt;
mkdir ~/.unison}} &lt;br /&gt;
Пред­по­ло­жим, что об­щий объ­ем ва­ших дан­ных — 500 ГБ, и вы хо­ти­те со­брать их все в од­ном мес­те. Та­кое по­зво­ля­ет сделать Dropbox — за $ 499 в год, и это, че­ст­но го­во­ря, до­воль­но ра­зум­ная це­на, но мно­гим из нас не нра­вит­ся то, что их дан­ные бу­дут на­хо­дить­ся на сер­ве­рах Amazon S3 и вый­дут из-под кон­тро­ля. Дан­ные мож­но за­шиф­ро­вать, но с их кон­фи­ден­ци­аль­но­стью и соб­ст­вен­но­стью на них не все так про­сто. Что­бы из­ба­вить­ся от этих не­дос­тат­ков, ис­сле­ду­ем ва­ри­ан­ты по­строе­ния соб­ст­вен­ной сис­те­мы.&lt;br /&gt;
&lt;br /&gt;
===Аль­тер­на­тив­ные ре­ше­ния===&lt;br /&gt;
&lt;br /&gt;
На пер­вый взгляд, су­ще­ст­ву­ют от­но­си­тель­но про­стые для реа­ли­за­ции ре­ше­ния, та­кие как OwnCloud и Sparkleshare. Оба вы­гля­дят про­стей­шим спо­со­бом соз­дать пол­но­цен­ную за­ме­ну Dropbox, но ес­ли по­ду­мать о за­да­чах это­го про­ек­та, то нам во­все не нуж­но реа­ли­зо­вы­вать всю функ­цио­наль­ность Dropbox. Дру­ги­ми сло­ва­ми, нам не нуж­ны ни web-ин­тер­фейс, ни воз­мож­ность де­лить­ся фай­ла­ми с дру­ги­ми, а нуж­на толь­ко воз­мож­ность вы­бо­роч­но раз­де­лять фай­лы ме­ж­ду ком­пь­ю­те­ра­ми. То есть луч­ше бы взять что-ни­будь по­лег­че Sparkleshare или OwnCloud.&lt;br /&gt;
&lt;br /&gt;
Учи­ты­вая про­сто­ту и воз­мож­но­сти ре­ше­ний для ко­манд­ной стро­ки, пре­дос­тав­ляе­мые rsync, эта ути­ли­та при­хо­дит на ум пер­вой. Од­на­ко про­бле­ма rsync в том, что она не при­спо­соб­ле­на для дву­сто­рон­ней син­хро­ни­за­ции. У нее есть не­сколь­ко по­лез­ных оп­ций, по­зво­ляю­щих до­воль­но близ­ко по­доб­рать­ся к дву­сто­рон­ней син­хро­ни­за­ции, но дос­тичь таковой пол­но­стью нель­зя. Хо­ро­шая ил­лю­ст­ра­ция — от­сут­ст­вие эф­фек­тив­но­го спо­со­ба ре­ак­ции на уда­ле­ние фай­лов. Су­ще­ст­ву­ют спо­со­бы это обой­ти, ко­то­рые вклю­ча­ют со­хра­не­ние вы­во­да в лог-фай­лы, срав­не­ние и уда­ле­ние, но это из­лиш­не ус­лож­ня­ет де­ло.&lt;br /&gt;
{{Врезка|right|Заголовок=Ге­не­ра­ция па­ры клю­чей |Ширина=10%|Содержание=Важ­но по­ни­мать, что под­клю­че­ние по SSH без па­ро­ля не­сет в се­бе эле­мент рис­ка. Ес­ли до­ве­рен­ный ком­пь­ю­тер бу­дет ском­про­ме­ти­ро­ван, зло­умыш­лен­ник смо­жет по­лу­чить пря­мой дос­туп к сер­ве­ру. Что­бы управ­лять этим рис­ком, луч­ше все­го соз­дать учет­ную за­пись на сер­ве­ре спе­ци­аль­но для син­хро­ни­за­ции Unison, у ко­то­ро­го бу­дет очень ог­ра­ни­чен­ный дос­туп к дру­гим сер­ви­сам.&lt;br /&gt;
&lt;br /&gt;
Для ге­не­ра­ции па­ры клю­чей за­пус­ти­те ssh-keygen, и на эк­ра­не поя­вят­ся не­сколь­ко со­об­ще­ний, тре­бую­щих вво­да дан­ных.&lt;br /&gt;
&lt;br /&gt;
Enter file in which to save the key [Вве­ди­те имя фай­ла, где со­хра­нит­ся ключ]:&lt;br /&gt;
&lt;br /&gt;
Мож­но ос­та­вить ва­ри­ант по умол­ча­нию, про­сто на­жав Enter.&lt;br /&gt;
&lt;br /&gt;
Enter passphrase [Вве­ди­те па­роль­ную фра­зу]:&lt;br /&gt;
&lt;br /&gt;
Мы хо­тим поль­зо­вать­ся SSH без па­ро­ля, по­это­му па­роль­ная фра­за не нуж­на. Про­сто на­жми­те Enter.&lt;br /&gt;
&lt;br /&gt;
Enter same passphrase again [Вве­ди­те па­роль­ную фра­зу еще раз]:&lt;br /&gt;
&lt;br /&gt;
Под­твер­ди­те па­роль­ную фра­зу на­жа­ти­ем Enter. &lt;br /&gt;
}} &lt;br /&gt;
Ес­ли не­об­хо­дим про­стой сер­вер для ре­зерв­но­го ко­пи­ро­ва­ния дан­ных, на­хо­дя­щих­ся на од­ном ком­пь­ю­те­ре, rsync пре­крас­но по­дой­дет, но нам нуж­но не­что бо­лее ин­тел­лек­ту­аль­ное, по­это­му мы об­ра­тим­ся к Unison. Unison — ути­ли­та син­хро­ни­за­ции фай­лов, ра­бо­таю­щая в Linux, BSD, OS X и Windows. Она по­зво­ля­ет син­хро­ни­зи­ро­вать на­бор фай­лов и ка­та­ло­гов, ко­то­рые хра­нятся в раз­ных мес­тах, пу­тем рас­про­стра­не­ния из­ме­не­ний ме­ж­ду на­бо­ра­ми.&lt;br /&gt;
&lt;br /&gt;
Пре­ж­де чем рас­су­ж­дать о стра­те­гии, важ­но по­нять, как имен­но ра­бо­та­ет Unison. На са­мом ба­зо­вом уров­не Unison под­дер­жи­вает па­ры ре­п­лик син­хро­ни­зи­ро­ван­ны­ми. Уло­ви­ли сло­во «па­ры»? При ка­ж­дом за­пус­ке Unison он син­хро­ни­зи­ру­ет две ре­п­ли­ки, и ни­че­го боль­ше. Ес­ли ре­п­лик боль­ше двух, по­тре­бу­ет­ся хо­ро­шо про­ду­ман­ная схе­ма, ко­то­рая га­ран­ти­ру­ет, что дан­ные син­хро­ни­зи­ру­ют­ся имен­но так, как мы во­об­ра­жа­ем.&lt;br /&gt;
&lt;br /&gt;
===Ре­п­ли­ки===&lt;br /&gt;
&lt;br /&gt;
Те­перь уме­ст­но спро­сить: «А что та­кое ре­п­ли­ка?» По-про­сто­му, ре­п­ли­ка — это на­бор фай­лов и ка­та­ло­гов. Ре­п­ли­ки мо­гут со­от­вет­ст­во­вать раз­ным хос­там, но это не обя­за­тель­но. Что­бы луч­ше по­нять идею, пред­ставь­те, что у вас есть ком­пь­ю­тер до­ма и ком­пь­ю­тер в офи­се, и вы хо­ти­те, что­бы до­маш­ний ка­та­лог ав­то­ма­ти­че­­ски син­хро­ни­зи­ро­вал­ся ме­ж­ду эти­ми ком­пь­ю­те­ра­ми. Пусть у вас так­же есть внеш­ние USB-дис­ки для ре­зерв­ных ко­пий до­ма и в офи­се. В этот сце­на­рий во­вле­че­но все­го два ком­пь­ю­те­ра, но ре­п­лик Unison че­ты­ре.&lt;br /&gt;
&lt;br /&gt;
За­ду­мав­шись о том, ка­кую струк­ту­ру син­хро­ни­за­ции вы­брать, вы по­лу­чи­те раз­лич­ные «то­по­ло­гии», ко­то­рые по­хо­жи на из­вест­ные се­те­вые то­по­ло­гии — ли­ния, звез­да, сет­ка, коль­цо и дру­гие. Опи­сан­ный вы­ше сце­на­рий со­от­вет­ст­ву­ет ли­ней­ной мо­дели, но луч­ший спо­соб ор­га­ни­за­ции на­шей сис­те­мы — с по­мо­щью ха­ба и мо­де­ли «звез­да». В такой кон­фи­гу­ра­ции в цен­тре на­хо­дится сер­вер, и на ка­ж­дом из ком­пь­ю­те­ров имеет­ся один про­филь Unison, ко­то­рый син­хро­ни­зи­ру­ет дан­ные с сер­ве­ром; эту схе­му мы и реа­ли­зу­ем на на­шем уро­ке.&lt;br /&gt;
&lt;br /&gt;
Для на­ше­го тес­то­во­го слу­чая рас­смот­рим си­туа­цию, при ко­то­рой на ре­гу­ляр­ной ос­но­ве ис­поль­зу­ют­ся че­ты­ре ком­пь­ю­те­ра: офис­ный на­столь­ный ком­пь­ю­тер, до­маш­ний на­столь­ный ком­пь­ю­тер, до­маш­ний но­ут­бук и но­ут­бук для по­ез­док. Мы за­ме­ним Dropbox на всех этих че­ты­рех ком­пь­ю­те­рах. На двух ком­пь­ю­те­рах ус­та­нов­ле­на Mac OS X, на двух дру­гих — Linux.&lt;br /&gt;
&lt;br /&gt;
При ра­бо­те с Unison важ­но обес­пе­чить, что­бы на всех сис­те­мах, уча­ст­вую­щих в син­хро­ни­за­ции, бы­ла ус­та­нов­ле­на од­на и та же вер­сия про­грам­мы. Вос­поль­зу­ем­ся вер­си­ей 2.40, это по­след­ний ста­биль­ный ре­лиз.&lt;br /&gt;
&lt;br /&gt;
На плат­фор­ме Mac за­гру­зи­те гра­фи­че­скую обо­лоч­ку вер­сии 2.40.69 с сай­та http://alan.petitepomme.net/unison/index.html. Смон­ти­руй­те dmg и ско­пи­руй­те Unison в ка­та­лог при­ло­же­ний. Те­перь от­крой­те Unison, и про­грам­ма по­про­сит вас ус­та­но­вить вер­сию ути­ли­ты для ко­манд­ной стро­ки — ска­жи­те «да». Ути­ли­та ус­та­но­вит­ся в /usr/bin/. Для про­вер­ки вы­пол­ни­те ко­ман­ду&lt;br /&gt;
&lt;br /&gt;
unison -version&lt;br /&gt;
&lt;br /&gt;
Unison долж­ен вы­вес­ти но­мер вер­сии — 2.40.69. В Ubuntu 12.04 Unison мож­но ус­та­но­вить из ре­по­зи­то­ри­ев Ubuntu, ско­ман­до­вав&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install unison&lt;br /&gt;
&lt;br /&gt;
Про­ве­рить ус­та­нов­ку мож­но ко­ман­дой&lt;br /&gt;
&lt;br /&gt;
unison -version&lt;br /&gt;
&lt;br /&gt;
Про­грам­ма долж­на вы­вес­ти но­мер вер­сии — 2.40.65. Те­перь мож­но соз­дать про­филь Unison. Про­филь оп­ре­де­ля­ет, как Unison бу­дет син­хро­ни­зи­ро­вать две ре­п­ли­ки. Соз­да­дим файл про­фи­ля под на­зва­ни­ем lxfsync.prf в на­шем сис­тем­ном ка­та­ло­ге Unison:&lt;br /&gt;
&lt;br /&gt;
root = /home/lxf/Unison&lt;br /&gt;
&lt;br /&gt;
root = ssh://lxf@example.com//home/lxf/Unison&lt;br /&gt;
&lt;br /&gt;
fastcheck = true&lt;br /&gt;
&lt;br /&gt;
batch = true&lt;br /&gt;
&lt;br /&gt;
force = newer&lt;br /&gt;
&lt;br /&gt;
times = true&lt;br /&gt;
&lt;br /&gt;
sshargs = -C&lt;br /&gt;
&lt;br /&gt;
Стро­ки 1 и 2 за­да­ют ме­сто­по­ло­же­ние ре­п­лик. Стро­ка 3 ве­лит Unison применять вре­мя из­ме­не­ния и раз­мер фай­ла как «псевдо­но­ме­р уз­ла» при ска­ни­ро­ва­нии ре­п­лик на на­ли­чие из­ме­не­ний, вме­сто счи­ты­ва­ния со­дер­жи­мо­го ка­ж­до­го фай­ла це­ли­ком. Стро­ка 4 от­клю­ча­ет ин­тер­фейс поль­зо­ва­те­ля. Стро­ка 5 ве­лит Unison брать файл с по­след­ним вре­ме­нем из­ме­не­ния. Стро­ка 6 оз­на­ча­ет, что бу­дет со­хра­нять­ся вре­мя из­ме­не­ния фай­лов; и, на­ко­нец, в стро­ке 7 вклю­ча­ет­ся сжа­тие SSH для уве­ли­че­ния про­из­во­ди­тель­но­сти. За­ме­ча­ние об оп­ции times: увы, она не под­дер­жи­ва­ет ка­та­ло­ги. При ко­пи­ро­ва­нии ка­та­ло­га вре­мя его соз­да­ния бу­дет со­от­вет­ст­во­вать соз­да­нию ка­та­ло­га ко­пии, а не ис­ход­но­го ка­та­ло­га.&lt;br /&gt;
&lt;br /&gt;
Те­перь мы го­то­вы к пер­вич­ной син­хро­ни­за­ции. Для на­ча­ла вы­бе­ри­те один из ком­пь­ю­те­ров, соз­дай­те ко­пию ка­та­ло­га Dropbox и на­зо­ви­те ее Unison.&lt;br /&gt;
&lt;br /&gt;
cp -r ~/Dropbox ~/Unison&lt;br /&gt;
&lt;br /&gt;
За­тем мы под­клю­чим­ся к на­ше­му сер­ве­ру Unison че­рез SSH и соз­да­дим со­от­вет­ст­вую­щий ка­та­лог, в ко­то­рый бу­дут син­хро­ни­зи­ро­вать­ся на­ши че­ты­ре ком­пь­ю­те­ра.&lt;br /&gt;
&lt;br /&gt;
mkdir ~/Unison&lt;br /&gt;
&lt;br /&gt;
===Син­хро­ни­зи­ру­ем на­ши дан­ные===&lt;br /&gt;
&lt;br /&gt;
Те­перь нуж­но пе­ре­мес­тить ко­пию дан­ных с но­ут­бу­ка на сер­вер. Что­бы убе­дить­ся в шиф­ро­ва­нии дан­ных при пе­ре­да­че ме­ж­ду ком­пь­ю­те­ра­ми, взгля­ни­те на па­ра­мет­ры: с их по­мо­щью мы ука­за­ли, что для под­клю­че­ния к уда­лен­ной ре­п­ли­ке нуж­но поль­зо­вать­ся SSH. Син­хро­ни­за­ция за­пус­ка­ет­ся сле­дую­щей ко­ман­дой:&lt;br /&gt;
&lt;br /&gt;
unison -ui text lxfsync&lt;br /&gt;
&lt;br /&gt;
Пер­вые два па­ра­мет­ра ве­лят Unison за­пус­кать­ся в тек­сто­вом ре­жи­ме. Тре­тий па­ра­метр — имя про­фи­ля, ко­то­рый мы хо­тим ис­поль­зо­вать.&lt;br /&gt;
&lt;br /&gt;
По окон­ча­нии син­хро­ни­за­ции Unison дол­жен со­об­щить ко­ли­че­­ст­во пе­ре­дан­ных эле­мен­тов. Ес­ли не­ко­то­рые эле­мен­ты бы­ли про­пу­ще­ны или воз­ник­ли ошиб­ки, под­роб­ную ин­фор­ма­цию о тран­зак­ции мож­но по­лу­чить, за­гля­нув в файл жур­на­ла — ~/unison.log.При за­пус­ке Unison вы ви­де­ли, что вас про­сят вве­сти па­роль учет­ной за­пи­си на сер­ве­ре. А так как мы со­би­ра­ем­ся ав­то­ма­ти­зи­ро­вать этот про­цесс, ау­тен­ти­фи­ка­ция долж­на про­хо­дить без ва­шего вме­ша­тель­ст­ва.&lt;br /&gt;
&lt;br /&gt;
Что­бы дос­тичь этой це­ли, вос­поль­зу­ем­ся ау­тен­ти­фи­ка­ци­ей SSH по клю­чу. Для это­го на ка­ж­дом ком­пь­ю­те­ре, син­хро­ни­зи­руе­мом с сер­ве­ром, нуж­но сге­не­ри­ро­вать уни­каль­ный ключ. Что­бы сде­лать это на но­ут­бу­ке, вы­пол­ни­те сле­дую­щую ко­ман­ду:&lt;br /&gt;
&lt;br /&gt;
ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
По­сле это­го в ка­та­ло­ге ~/.ssh долж­но поя­вить­ся два фай­ла: id_rsa и id_rsa.pub. Файл id_rsa.pub — наш пуб­лич­ный ключ, и его нуж­но ско­пи­ро­вать на сер­вер, что­бы де­мон SSH мог до­ве­рять это­му клю­чу. Пе­ре­мес­тим файл ко­ман­дой scp:&lt;br /&gt;
&lt;br /&gt;
scp ~/.ssh/id_rsa.pub lxf@example.com:~/.ssh/Computer1.pub&lt;br /&gt;
&lt;br /&gt;
Те­перь нуж­но пре­ду­пре­дить де­мон SSH на сер­ве­ре, что­бы он до­ве­рял это­му клю­чу. Для это­го под­клю­чим­ся к сер­ве­ру по SSH и ско­ман­ду­ем:&lt;br /&gt;
&lt;br /&gt;
cat ~/.ssh/Computer1.pub &amp;gt;&amp;gt; authorized_keys&lt;br /&gt;
&lt;br /&gt;
Что­бы про­ве­рить на­шу ра­бо­ту, сно­ва за­пус­тим ко­ман­ду Unison с но­ут­бу­ка. Ес­ли все в порядке, на сей раз у нас не спро­сят па­роль:&lt;br /&gt;
&lt;br /&gt;
unison -ui text lxfsync&lt;br /&gt;
{{Врезка|right|Заголовок= |Ширина=10%|Содержание=Яр­лык для Unity Launcher&lt;br /&gt;
&lt;br /&gt;
Ино­гда вам за­хо­чет­ся за­пус­тить про­цесс син­хро­ни­за­ции вруч­ную, а не ждать, по­ка это сде­ла­ет cron. На­при­мер, вы про­си­де­ли над до­ку­мен­том весь ра­бо­чий день, но по­том хо­ти­те еще по­ра­бо­тать с ним из до­ма. Пря­мо пе­ред вы­клю­че­ни­ем сис­те­мы мож­но за­пус­тить скрипт син­хро­ни­за­ции и вы­пол­нить при­ну­ди­тель­ное об­нов­ле­ние, и до­ма вы смо­же­те на­чать пря­мо с об­нов­лен­но­го до­ку­мен­та.&lt;br /&gt;
&lt;br /&gt;
От­кры­вать тер­ми­нал ка­ж­дый раз для за­пус­ка скрип­та не­удоб­но; луч­ше все­го соз­дать икон­ку и до­ба­вить ее в Unity Launcher. Для это­го соз­дай­те файл sync.desktop в /usr/share/applications/:&lt;br /&gt;
&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
&lt;br /&gt;
Version 1.0&lt;br /&gt;
&lt;br /&gt;
Name=Unison&lt;br /&gt;
&lt;br /&gt;
Type=Application&lt;br /&gt;
&lt;br /&gt;
Categories=Application&lt;br /&gt;
&lt;br /&gt;
Exec=/home/lxf/sync.sh&lt;br /&gt;
&lt;br /&gt;
Terminal=true&lt;br /&gt;
&lt;br /&gt;
Icon=/home/lxf/.unison/sync.png&lt;br /&gt;
&lt;br /&gt;
Те­перь на­ше при­ло­же­ние поя­вит­ся в Unity, и его лег­ко под­клю­чить к Unity Launcher. &lt;br /&gt;
}} &lt;br /&gt;
Хо­тя это и не обя­за­тель­но, мно­гим нра­вит­ся, что агент Dropbox ин­фор­ми­ру­ет их о происшедших из­ме­не­ни­ях; пе­ре­не­сем эту воз­мож­ность на че­ты­ре наших ком­пь­ю­те­ра, син­хро­ни­зи­руе­мые с сер­ве­ром. Так как син­хро­ни­за­ция про­из­во­дит­ся с по­мо­щью скрип­тов обо­лоч­ки, нуж­но ус­та­но­вить ути­ли­ты, ко­то­рые по­зво­лят об­ра­тить­ся к сис­те­ме опо­ве­ще­ний ра­бо­че­го сто­ла. На плат­фор­ме Mac мож­но вос­поль­зо­вать­ся Growl по­сред­ст­вом growelnotify. На ком­пь­ю­те­рах Ubuntu вос­поль­зу­ем­ся NotifyOSD с по­мо­щью notify-send.&lt;br /&gt;
&lt;br /&gt;
На плат­фор­ме Mac за­гру­зи­те Growl 1.2.2 с growl.info. По­сле за­груз­ки смон­ти­руй­те dmg и ус­та­но­ви­те Growl, два­ж­ды щелк­нув на скрип­те Growl.pkg. От­крой­те ка­та­лог Extras, за­тем growlnotify, и ус­та­но­ви­те growlnotify, за­пус­тив скрипт growlnotify.pkg. Те­перь мож­но от­прав­лять опо­ве­ще­ния Growl с ко­манд­ной стро­ки. Что­бы это про­ве­рить, от­крой­те тер­ми­нал и вы­пол­ни­те ко­ман­ду&lt;br /&gt;
&lt;br /&gt;
growlnotify --message “Hello World”&lt;br /&gt;
&lt;br /&gt;
В Ubuntu для пе­ре­да­чи со­об­ще­ний де­мо­ну опо­ве­ще­ний ра­бо­че­го сто­ла нуж­но ус­та­но­вить биб­лио­те­ку libnotify. Ус­та­но­вить ее мож­но из ре­по­зи­то­ри­ев Ubuntu, ко­ман­дой&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install libnotify-bin&lt;br /&gt;
&lt;br /&gt;
Что­бы ее про­ве­рить, по­про­буй­те вы­пол­нить сле­дую­щую ко­ман­ду:&lt;br /&gt;
&lt;br /&gt;
notify-send “Hello World”&lt;br /&gt;
&lt;br /&gt;
Ес­ли все хо­ро­шо, ва­ши со­об­ще­ния поя­вят­ся на со­от­вет­ст­вую­щих ра­бо­чих сто­лах.&lt;br /&gt;
&lt;br /&gt;
===Объ­е­ди­ня­ем все вме­сте===&lt;br /&gt;
&lt;br /&gt;
Те­перь мы уме­ем син­хро­ни­зи­ро­вать дан­ные и от­прав­лять опо­ве­ще­ния. Да­вай­те удобства ради объ­е­ди­ним все эти действия в од­ном скрип­те.&lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
/bin/ping -c 1 www.google.com 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
if [“$?” == 0 ]; then&lt;br /&gt;
&lt;br /&gt;
root=”/home/lxf”&lt;br /&gt;
&lt;br /&gt;
image=”$root/.unison/sync.png”&lt;br /&gt;
&lt;br /&gt;
stat=`/usr/bin/unison -ui text -logfile “$root/unison.log” lxfsync 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null | tail -1`&lt;br /&gt;
&lt;br /&gt;
if [${PIPESTATUS[0]} != 0 ]; then&lt;br /&gt;
&lt;br /&gt;
notify-send “Unison” “Sync Error” -i “$image” -t 0&lt;br /&gt;
&lt;br /&gt;
exit 1&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ ${stst:0:7} == “Nothing” ]; then&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&lt;br /&gt;
else&lt;br /&gt;
&lt;br /&gt;
stat2=`echo “$stat” | grep -Po ‘(?&amp;lt;=\().*?(?=\))’`&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
notify-send “Unison” “$stat2” -i “$image”&lt;br /&gt;
&lt;br /&gt;
else&lt;br /&gt;
&lt;br /&gt;
exit 1&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
Как ви­ди­те, наш скрипт очень прост. В стро­ке 1 за­да­ет­ся тип скрип­та (Bash). В стро­ке 2 про­ве­ря­ет­ся под­клю­че­ние к Ин­тер­не­ту. В стро­ке 3 ана­ли­зи­ру­ет­ся ре­зуль­тат про­вер­ки, и ес­ли под­клю­че­ния нет, мы пе­ре­хо­дим к стро­ке 18, в ко­то­рой скрипт за­вер­ша­ет­ся с ко­дом ошиб­ки, оз­на­чаю­щим, что син­хро­ни­за­ция за­вер­ши­лась не­удач­но.&lt;br /&gt;
&lt;br /&gt;
В том случае, ес­ли под­клю­че­ние дос­туп­но, в стро­ках 4 и 5 за­да­ют­ся не­сколь­ко пе­ре­мен­ных, по­сле че­го мы пе­ре­хо­дим к стро­ке 6. В данной стро­ке мы за­пус­ка­ем Unison, по­лу­ча­ем по­след­нюю стро­ку вы­во­да и со­хра­ня­ем ее в пе­ре­мен­ной $stat, ко­то­рой вос­поль­зу­ем­ся поз­же. В стро­ке 7 мы про­ве­ря­ем, вер­нул ли Unison код 0, оз­на­чаю­щий ус­пеш­ную син­хро­ни­за­цию. Ес­ли мы по­лу­чи­ли дру­гой код ошиб­ки, то в стро­ке 8 мы от­прав­ля­ем опо­ве­ще­ние ра­бо­че­го сто­ла об ошиб­ке син­хро­ни­за­ции.&lt;br /&gt;
&lt;br /&gt;
При ус­пеш­ном за­вер­ше­нии син­хро­ни­за­ции в стро­ке 11 мы ана­ли­зи­ру­ем пе­ре­мен­ную $stat, что­бы по­нять, вы­пол­нил ли Unison ка­кие-ли­бо дей­ст­вия. Ес­ли пер­вое сло­во в пе­ре­мен­ной — “Nothing [Ни­че­го]”, то мы вы­хо­дим из скрип­та, по­то­му что об­нов­ле­ний не бы­ло; в про­тив­ном слу­чае пе­ре­хо­дим к стро­ке 14, где по­лу­ча­ем стро­ку в круг­лых скоб­ках и со­хра­ня­ем ее в пе­ре­мен­ной $stat2, по­сле че­го пе­ре­хо­дим в стро­ку 16 и ото­бра­жа­ем ре­зуль­та­ты поль­зо­ва­те­лю.&lt;br /&gt;
&lt;br /&gt;
Что­бы все ра­бо­та­ло без на­ше­го уча­стия, скрипт дол­жен за­пус­кать­ся ре­гу­ляр­но и син­хро­ни­зи­ро­вать­ся с сер­ве­ром. С этой за­да­чей пре­крас­но спра­вит­ся cron. Да­вай­те сде­ла­ем ин­тер­вал син­хро­ни­за­ции в пять ми­нут сле­дую­щей ко­ман­дой:&lt;br /&gt;
&lt;br /&gt;
crontab -e&lt;br /&gt;
&lt;br /&gt;
Те­перь до­ба­вим сле­дую­щее:&lt;br /&gt;
&lt;br /&gt;
*/5 * * * * DISPLAY=:0 /home/lxf/sync.sh&lt;br /&gt;
&lt;br /&gt;
*/5 ве­лит cron за­пус­кать­ся ка­ж­дые пять ми­нут. Сле­дую­щие че­ты­ре звез­доч­ки ве­лят cron за­пус­кать­ся ка­ж­дые пять ми­нут ка­ж­до­го ча­са ка­ж­до­го дня ка­ж­до­го ме­ся­ца. DISPLAY=:0 на­прав­ля­ет вы­вод скрип­та на те­ку­щий мо­ни­тор.&lt;br /&gt;
&lt;br /&gt;
Вот и все! Те­перь вы обзавелись бес­плат­ной за­ме­ной Dropbox, ко­то­рая на­хо­дит­ся под ва­шим кон­тро­лем. Не­ко­то­рые из вас, не­со­мнен­но, по­ин­те­ре­су­ют­ся: а как же луч­ше все­го де­лить­ся фай­ла­ми с чле­на­ми се­мьи и друзь­я­ми? Здесь луч­ше Dropbox вам не най­ти. Про­дол­жай­те поль­зо­вать­ся бес­плат­ной учет­ной за­пи­сью и де­лить­ся фай­ла­ми по ме­ре не­об­хо­ди­мо­сти, не бес­по­ко­ясь об ос­таль­ных дан­ных. |&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:Unison:_%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF_%D0%BA_%D1%81%D0%B2%D0%BE%D0%B8%D0%BC_%D1%84%D0%B0%D0%B9%C2%AD%D0%BB%D0%B0%D0%BC</id>
		<title>LXF171:Unison: Доступ к своим фай­лам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:Unison:_%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF_%D0%BA_%D1%81%D0%B2%D0%BE%D0%B8%D0%BC_%D1%84%D0%B0%D0%B9%C2%AD%D0%BB%D0%B0%D0%BC"/>
				<updated>2018-11-18T10:15:55Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: Новая страница: «Категория: Учебники == Unison: Доступ к своим фай­лам == [[Файл: |left | thumb|100px|'''Наш эксперт''' Дж…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Учебники]]&lt;br /&gt;
== Unison: Доступ к своим фай­лам ==&lt;br /&gt;
[[Файл: |left | thumb|100px|'''Наш эксперт''' Джеймс Лит­тон за­ни­мал ру­ко­во­дя­щие долж­но­сти в не­сколь­ких ор­га­ни­за­ци­ях и яв­ля­ет­ся парт­не­ром и ди­рек­то­ром Identity Automation LP.]] &lt;br /&gt;
Хо­ти­те разделять сво­и дан­ные между раз­ными сис­темами без про­блем с при­ват­но­стью и соб­ст­вен­но­стью на них? Джеймс Лит­тон по­ка­зы­ва­ет, как.&lt;br /&gt;
&lt;br /&gt;
При мыс­лях о сво­их дан­ных у мно­гих из нас воз­ни­ка­ет внут­рен­няя борь­ба: мы по­дыс­ки­ва­ем наи­луч­ший спо­соб га­ран­ти­ро­вать их со­хран­ность. В преж­ние вре­ме­на все дан­ные уме­ща­лись на не­сколь­ких дис­ке­тах; по­том мы пе­ре­шли к лен­там, CD, DVD, NAS и, на­ко­нец, к об­лач­ным хра­ни­ли­щам.&lt;br /&gt;
&lt;br /&gt;
Рас­смот­рев ти­пич­ную стра­те­гию управ­ле­ния дан­ны­ми, мы об­на­ру­жим, что за­час­тую она фраг­мен­тар­на и не­эф­фек­тив­на. Ва­ши по­все­днев­ные фай­лы, воз­мож­но, хра­нят­ся на Dropbox, что по­зво­ля­ет лег­ко раз­де­лять их ме­ж­ду раз­ны­ми ком­пь­ю­те­ра­ми, ко­то­ры­ми вы ре­гу­ляр­но поль­зуе­тесь. Этот ва­ри­ант пре­крас­но под­хо­дит для элек­трон­ных таб­лиц, баз дан­ных и до­ку­мен­тов — все вме­сте это до­воль­но скром­ный объ­ем дан­ных. Но ко­гда до­хо­дит до фо­то­гра­фий, му­зы­ки и филь­мов, на­чи­на­ют­ся про­бле­мы. Для фай­лов муль­ти­ме­диа нуж­но го­раз­до боль­ше мес­та, и они час­то ока­зы­ва­ют­ся на до­маш­нем сер­ве­ре NAS, и, воз­мож­но, вре­мя от вре­ме­ни ко­пи­ру­ют­ся на внеш­ний USB-диск.&lt;br /&gt;
&lt;br /&gt;
Пред­по­ло­жим, что об­щий объ­ем ва­ших дан­ных — 500 ГБ, и вы хо­ти­те со­брать их все в од­ном мес­те. Та­кое по­зво­ля­ет сделать Dropbox — за $ 499 в год, и это, че­ст­но го­во­ря, до­воль­но ра­зум­ная це­на, но мно­гим из нас не нра­вит­ся то, что их дан­ные бу­дут на­хо­дить­ся на сер­ве­рах Amazon S3 и вый­дут из-под кон­тро­ля. Дан­ные мож­но за­шиф­ро­вать, но с их кон­фи­ден­ци­аль­но­стью и соб­ст­вен­но­стью на них не все так про­сто. Что­бы из­ба­вить­ся от этих не­дос­тат­ков, ис­сле­ду­ем ва­ри­ан­ты по­строе­ния соб­ст­вен­ной сис­те­мы.&lt;br /&gt;
&lt;br /&gt;
Аль­тер­на­тив­ные ре­ше­ния&lt;br /&gt;
&lt;br /&gt;
На пер­вый взгляд, су­ще­ст­ву­ют от­но­си­тель­но про­стые для реа­ли­за­ции ре­ше­ния, та­кие как OwnCloud и Sparkleshare. Оба вы­гля­дят про­стей­шим спо­со­бом соз­дать пол­но­цен­ную за­ме­ну Dropbox, но ес­ли по­ду­мать о за­да­чах это­го про­ек­та, то нам во­все не нуж­но реа­ли­зо­вы­вать всю функ­цио­наль­ность Dropbox. Дру­ги­ми сло­ва­ми, нам не нуж­ны ни web-ин­тер­фейс, ни воз­мож­ность де­лить­ся фай­ла­ми с дру­ги­ми, а нуж­на толь­ко воз­мож­ность вы­бо­роч­но раз­де­лять фай­лы ме­ж­ду ком­пь­ю­те­ра­ми. То есть луч­ше бы взять что-ни­будь по­лег­че Sparkleshare или OwnCloud.&lt;br /&gt;
&lt;br /&gt;
Учи­ты­вая про­сто­ту и воз­мож­но­сти ре­ше­ний для ко­манд­ной стро­ки, пре­дос­тав­ляе­мые rsync, эта ути­ли­та при­хо­дит на ум пер­вой. Од­на­ко про­бле­ма rsync в том, что она не при­спо­соб­ле­на для дву­сто­рон­ней син­хро­ни­за­ции. У нее есть не­сколь­ко по­лез­ных оп­ций, по­зво­ляю­щих до­воль­но близ­ко по­доб­рать­ся к дву­сто­рон­ней син­хро­ни­за­ции, но дос­тичь таковой пол­но­стью нель­зя. Хо­ро­шая ил­лю­ст­ра­ция — от­сут­ст­вие эф­фек­тив­но­го спо­со­ба ре­ак­ции на уда­ле­ние фай­лов. Су­ще­ст­ву­ют спо­со­бы это обой­ти, ко­то­рые вклю­ча­ют со­хра­не­ние вы­во­да в лог-фай­лы, срав­не­ние и уда­ле­ние, но это из­лиш­не ус­лож­ня­ет де­ло.&lt;br /&gt;
&lt;br /&gt;
Ес­ли не­об­хо­дим про­стой сер­вер для ре­зерв­но­го ко­пи­ро­ва­ния дан­ных, на­хо­дя­щих­ся на од­ном ком­пь­ю­те­ре, rsync пре­крас­но по­дой­дет, но нам нуж­но не­что бо­лее ин­тел­лек­ту­аль­ное, по­это­му мы об­ра­тим­ся к Unison. Unison — ути­ли­та син­хро­ни­за­ции фай­лов, ра­бо­таю­щая в Linux, BSD, OS X и Windows. Она по­зво­ля­ет син­хро­ни­зи­ро­вать на­бор фай­лов и ка­та­ло­гов, ко­то­рые хра­нятся в раз­ных мес­тах, пу­тем рас­про­стра­не­ния из­ме­не­ний ме­ж­ду на­бо­ра­ми.&lt;br /&gt;
&lt;br /&gt;
Пре­ж­де чем рас­су­ж­дать о стра­те­гии, важ­но по­нять, как имен­но ра­бо­та­ет Unison. На са­мом ба­зо­вом уров­не Unison под­дер­жи­вает па­ры ре­п­лик син­хро­ни­зи­ро­ван­ны­ми. Уло­ви­ли сло­во «па­ры»? При ка­ж­дом за­пус­ке Unison он син­хро­ни­зи­ру­ет две ре­п­ли­ки, и ни­че­го боль­ше. Ес­ли ре­п­лик боль­ше двух, по­тре­бу­ет­ся хо­ро­шо про­ду­ман­ная схе­ма, ко­то­рая га­ран­ти­ру­ет, что дан­ные син­хро­ни­зи­ру­ют­ся имен­но так, как мы во­об­ра­жа­ем.&lt;br /&gt;
&lt;br /&gt;
Ре­п­ли­ки&lt;br /&gt;
&lt;br /&gt;
Те­перь уме­ст­но спро­сить: «А что та­кое ре­п­ли­ка?» По-про­сто­му, ре­п­ли­ка — это на­бор фай­лов и ка­та­ло­гов. Ре­п­ли­ки мо­гут со­от­вет­ст­во­вать раз­ным хос­там, но это не обя­за­тель­но. Что­бы луч­ше по­нять идею, пред­ставь­те, что у вас есть ком­пь­ю­тер до­ма и ком­пь­ю­тер в офи­се, и вы хо­ти­те, что­бы до­маш­ний ка­та­лог ав­то­ма­ти­че­­ски син­хро­ни­зи­ро­вал­ся ме­ж­ду эти­ми ком­пь­ю­те­ра­ми. Пусть у вас так­же есть внеш­ние USB-дис­ки для ре­зерв­ных ко­пий до­ма и в офи­се. В этот сце­на­рий во­вле­че­но все­го два ком­пь­ю­те­ра, но ре­п­лик Unison че­ты­ре.&lt;br /&gt;
&lt;br /&gt;
За­ду­мав­шись о том, ка­кую струк­ту­ру син­хро­ни­за­ции вы­брать, вы по­лу­чи­те раз­лич­ные «то­по­ло­гии», ко­то­рые по­хо­жи на из­вест­ные се­те­вые то­по­ло­гии — ли­ния, звез­да, сет­ка, коль­цо и дру­гие. Опи­сан­ный вы­ше сце­на­рий со­от­вет­ст­ву­ет ли­ней­ной мо­дели, но луч­ший спо­соб ор­га­ни­за­ции на­шей сис­те­мы — с по­мо­щью ха­ба и мо­де­ли «звез­да». В такой кон­фи­гу­ра­ции в цен­тре на­хо­дится сер­вер, и на ка­ж­дом из ком­пь­ю­те­ров имеет­ся один про­филь Unison, ко­то­рый син­хро­ни­зи­ру­ет дан­ные с сер­ве­ром; эту схе­му мы и реа­ли­зу­ем на на­шем уро­ке.&lt;br /&gt;
&lt;br /&gt;
Для на­ше­го тес­то­во­го слу­чая рас­смот­рим си­туа­цию, при ко­то­рой на ре­гу­ляр­ной ос­но­ве ис­поль­зу­ют­ся че­ты­ре ком­пь­ю­те­ра: офис­ный на­столь­ный ком­пь­ю­тер, до­маш­ний на­столь­ный ком­пь­ю­тер, до­маш­ний но­ут­бук и но­ут­бук для по­ез­док. Мы за­ме­ним Dropbox на всех этих че­ты­рех ком­пь­ю­те­рах. На двух ком­пь­ю­те­рах ус­та­нов­ле­на Mac OS X, на двух дру­гих — Linux.&lt;br /&gt;
&lt;br /&gt;
При ра­бо­те с Unison важ­но обес­пе­чить, что­бы на всех сис­те­мах, уча­ст­вую­щих в син­хро­ни­за­ции, бы­ла ус­та­нов­ле­на од­на и та же вер­сия про­грам­мы. Вос­поль­зу­ем­ся вер­си­ей 2.40, это по­след­ний ста­биль­ный ре­лиз.&lt;br /&gt;
&lt;br /&gt;
На плат­фор­ме Mac за­гру­зи­те гра­фи­че­скую обо­лоч­ку вер­сии 2.40.69 с сай­та http://alan.petitepomme.net/unison/index.html. Смон­ти­руй­те dmg и ско­пи­руй­те Unison в ка­та­лог при­ло­же­ний. Те­перь от­крой­те Unison, и про­грам­ма по­про­сит вас ус­та­но­вить вер­сию ути­ли­ты для ко­манд­ной стро­ки — ска­жи­те «да». Ути­ли­та ус­та­но­вит­ся в /usr/bin/. Для про­вер­ки вы­пол­ни­те ко­ман­ду&lt;br /&gt;
&lt;br /&gt;
unison -version&lt;br /&gt;
&lt;br /&gt;
Unison долж­ен вы­вес­ти но­мер вер­сии — 2.40.69. В Ubuntu 12.04 Unison мож­но ус­та­но­вить из ре­по­зи­то­ри­ев Ubuntu, ско­ман­до­вав&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install unison&lt;br /&gt;
&lt;br /&gt;
Про­ве­рить ус­та­нов­ку мож­но ко­ман­дой&lt;br /&gt;
&lt;br /&gt;
unison -version&lt;br /&gt;
&lt;br /&gt;
Про­грам­ма долж­на вы­вес­ти но­мер вер­сии — 2.40.65. Те­перь мож­но соз­дать про­филь Unison. Про­филь оп­ре­де­ля­ет, как Unison бу­дет син­хро­ни­зи­ро­вать две ре­п­ли­ки. Соз­да­дим файл про­фи­ля под на­зва­ни­ем lxfsync.prf в на­шем сис­тем­ном ка­та­ло­ге Unison:&lt;br /&gt;
&lt;br /&gt;
root = /home/lxf/Unison&lt;br /&gt;
&lt;br /&gt;
root = ssh://lxf@example.com//home/lxf/Unison&lt;br /&gt;
&lt;br /&gt;
fastcheck = true&lt;br /&gt;
&lt;br /&gt;
batch = true&lt;br /&gt;
&lt;br /&gt;
force = newer&lt;br /&gt;
&lt;br /&gt;
times = true&lt;br /&gt;
&lt;br /&gt;
sshargs = -C&lt;br /&gt;
&lt;br /&gt;
Стро­ки 1 и 2 за­да­ют ме­сто­по­ло­же­ние ре­п­лик. Стро­ка 3 ве­лит Unison применять вре­мя из­ме­не­ния и раз­мер фай­ла как «псевдо­но­ме­р уз­ла» при ска­ни­ро­ва­нии ре­п­лик на на­ли­чие из­ме­не­ний, вме­сто счи­ты­ва­ния со­дер­жи­мо­го ка­ж­до­го фай­ла це­ли­ком. Стро­ка 4 от­клю­ча­ет ин­тер­фейс поль­зо­ва­те­ля. Стро­ка 5 ве­лит Unison брать файл с по­след­ним вре­ме­нем из­ме­не­ния. Стро­ка 6 оз­на­ча­ет, что бу­дет со­хра­нять­ся вре­мя из­ме­не­ния фай­лов; и, на­ко­нец, в стро­ке 7 вклю­ча­ет­ся сжа­тие SSH для уве­ли­че­ния про­из­во­ди­тель­но­сти. За­ме­ча­ние об оп­ции times: увы, она не под­дер­жи­ва­ет ка­та­ло­ги. При ко­пи­ро­ва­нии ка­та­ло­га вре­мя его соз­да­ния бу­дет со­от­вет­ст­во­вать соз­да­нию ка­та­ло­га ко­пии, а не ис­ход­но­го ка­та­ло­га.&lt;br /&gt;
&lt;br /&gt;
Те­перь мы го­то­вы к пер­вич­ной син­хро­ни­за­ции. Для на­ча­ла вы­бе­ри­те один из ком­пь­ю­те­ров, соз­дай­те ко­пию ка­та­ло­га Dropbox и на­зо­ви­те ее Unison.&lt;br /&gt;
&lt;br /&gt;
cp -r ~/Dropbox ~/Unison&lt;br /&gt;
&lt;br /&gt;
За­тем мы под­клю­чим­ся к на­ше­му сер­ве­ру Unison че­рез SSH и соз­да­дим со­от­вет­ст­вую­щий ка­та­лог, в ко­то­рый бу­дут син­хро­ни­зи­ро­вать­ся на­ши че­ты­ре ком­пь­ю­те­ра.&lt;br /&gt;
&lt;br /&gt;
mkdir ~/Unison&lt;br /&gt;
&lt;br /&gt;
Син­хро­ни­зи­ру­ем на­ши дан­ные&lt;br /&gt;
&lt;br /&gt;
Те­перь нуж­но пе­ре­мес­тить ко­пию дан­ных с но­ут­бу­ка на сер­вер. Что­бы убе­дить­ся в шиф­ро­ва­нии дан­ных при пе­ре­да­че ме­ж­ду ком­пь­ю­те­ра­ми, взгля­ни­те на па­ра­мет­ры: с их по­мо­щью мы ука­за­ли, что для под­клю­че­ния к уда­лен­ной ре­п­ли­ке нуж­но поль­зо­вать­ся SSH. Син­хро­ни­за­ция за­пус­ка­ет­ся сле­дую­щей ко­ман­дой:&lt;br /&gt;
&lt;br /&gt;
unison -ui text lxfsync&lt;br /&gt;
&lt;br /&gt;
Пер­вые два па­ра­мет­ра ве­лят Unison за­пус­кать­ся в тек­сто­вом ре­жи­ме. Тре­тий па­ра­метр — имя про­фи­ля, ко­то­рый мы хо­тим ис­поль­зо­вать.&lt;br /&gt;
&lt;br /&gt;
По окон­ча­нии син­хро­ни­за­ции Unison дол­жен со­об­щить ко­ли­че­­ст­во пе­ре­дан­ных эле­мен­тов. Ес­ли не­ко­то­рые эле­мен­ты бы­ли про­пу­ще­ны или воз­ник­ли ошиб­ки, под­роб­ную ин­фор­ма­цию о тран­зак­ции мож­но по­лу­чить, за­гля­нув в файл жур­на­ла — ~/unison.log.При за­пус­ке Unison вы ви­де­ли, что вас про­сят вве­сти па­роль учет­ной за­пи­си на сер­ве­ре. А так как мы со­би­ра­ем­ся ав­то­ма­ти­зи­ро­вать этот про­цесс, ау­тен­ти­фи­ка­ция долж­на про­хо­дить без ва­шего вме­ша­тель­ст­ва.&lt;br /&gt;
&lt;br /&gt;
Что­бы дос­тичь этой це­ли, вос­поль­зу­ем­ся ау­тен­ти­фи­ка­ци­ей SSH по клю­чу. Для это­го на ка­ж­дом ком­пь­ю­те­ре, син­хро­ни­зи­руе­мом с сер­ве­ром, нуж­но сге­не­ри­ро­вать уни­каль­ный ключ. Что­бы сде­лать это на но­ут­бу­ке, вы­пол­ни­те сле­дую­щую ко­ман­ду:&lt;br /&gt;
&lt;br /&gt;
ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
По­сле это­го в ка­та­ло­ге ~/.ssh долж­но поя­вить­ся два фай­ла: id_rsa и id_rsa.pub. Файл id_rsa.pub — наш пуб­лич­ный ключ, и его нуж­но ско­пи­ро­вать на сер­вер, что­бы де­мон SSH мог до­ве­рять это­му клю­чу. Пе­ре­мес­тим файл ко­ман­дой scp:&lt;br /&gt;
&lt;br /&gt;
scp ~/.ssh/id_rsa.pub lxf@example.com:~/.ssh/Computer1.pub&lt;br /&gt;
&lt;br /&gt;
Те­перь нуж­но пре­ду­пре­дить де­мон SSH на сер­ве­ре, что­бы он до­ве­рял это­му клю­чу. Для это­го под­клю­чим­ся к сер­ве­ру по SSH и ско­ман­ду­ем:&lt;br /&gt;
&lt;br /&gt;
cat ~/.ssh/Computer1.pub &amp;gt;&amp;gt; authorized_keys&lt;br /&gt;
&lt;br /&gt;
Что­бы про­ве­рить на­шу ра­бо­ту, сно­ва за­пус­тим ко­ман­ду Unison с но­ут­бу­ка. Ес­ли все в порядке, на сей раз у нас не спро­сят па­роль:&lt;br /&gt;
&lt;br /&gt;
unison -ui text lxfsync&lt;br /&gt;
&lt;br /&gt;
Хо­тя это и не обя­за­тель­но, мно­гим нра­вит­ся, что агент Dropbox ин­фор­ми­ру­ет их о происшедших из­ме­не­ни­ях; пе­ре­не­сем эту воз­мож­ность на че­ты­ре наших ком­пь­ю­те­ра, син­хро­ни­зи­руе­мые с сер­ве­ром. Так как син­хро­ни­за­ция про­из­во­дит­ся с по­мо­щью скрип­тов обо­лоч­ки, нуж­но ус­та­но­вить ути­ли­ты, ко­то­рые по­зво­лят об­ра­тить­ся к сис­те­ме опо­ве­ще­ний ра­бо­че­го сто­ла. На плат­фор­ме Mac мож­но вос­поль­зо­вать­ся Growl по­сред­ст­вом growelnotify. На ком­пь­ю­те­рах Ubuntu вос­поль­зу­ем­ся NotifyOSD с по­мо­щью notify-send.&lt;br /&gt;
&lt;br /&gt;
На плат­фор­ме Mac за­гру­зи­те Growl 1.2.2 с growl.info. По­сле за­груз­ки смон­ти­руй­те dmg и ус­та­но­ви­те Growl, два­ж­ды щелк­нув на скрип­те Growl.pkg. От­крой­те ка­та­лог Extras, за­тем growlnotify, и ус­та­но­ви­те growlnotify, за­пус­тив скрипт growlnotify.pkg. Те­перь мож­но от­прав­лять опо­ве­ще­ния Growl с ко­манд­ной стро­ки. Что­бы это про­ве­рить, от­крой­те тер­ми­нал и вы­пол­ни­те ко­ман­ду&lt;br /&gt;
&lt;br /&gt;
growlnotify --message “Hello World”&lt;br /&gt;
&lt;br /&gt;
В Ubuntu для пе­ре­да­чи со­об­ще­ний де­мо­ну опо­ве­ще­ний ра­бо­че­го сто­ла нуж­но ус­та­но­вить биб­лио­те­ку libnotify. Ус­та­но­вить ее мож­но из ре­по­зи­то­ри­ев Ubuntu, ко­ман­дой&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install libnotify-bin&lt;br /&gt;
&lt;br /&gt;
Что­бы ее про­ве­рить, по­про­буй­те вы­пол­нить сле­дую­щую ко­ман­ду:&lt;br /&gt;
&lt;br /&gt;
notify-send “Hello World”&lt;br /&gt;
&lt;br /&gt;
Ес­ли все хо­ро­шо, ва­ши со­об­ще­ния поя­вят­ся на со­от­вет­ст­вую­щих ра­бо­чих сто­лах.&lt;br /&gt;
&lt;br /&gt;
Объ­е­ди­ня­ем все вме­сте&lt;br /&gt;
&lt;br /&gt;
Те­перь мы уме­ем син­хро­ни­зи­ро­вать дан­ные и от­прав­лять опо­ве­ще­ния. Да­вай­те удобства ради объ­е­ди­ним все эти действия в од­ном скрип­те.&lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
/bin/ping -c 1 www.google.com 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
if [“$?” == 0 ]; then&lt;br /&gt;
&lt;br /&gt;
root=”/home/lxf”&lt;br /&gt;
&lt;br /&gt;
image=”$root/.unison/sync.png”&lt;br /&gt;
&lt;br /&gt;
stat=`/usr/bin/unison -ui text -logfile “$root/unison.log” lxfsync 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null | tail -1`&lt;br /&gt;
&lt;br /&gt;
if [${PIPESTATUS[0]} != 0 ]; then&lt;br /&gt;
&lt;br /&gt;
notify-send “Unison” “Sync Error” -i “$image” -t 0&lt;br /&gt;
&lt;br /&gt;
exit 1&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ ${stst:0:7} == “Nothing” ]; then&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&lt;br /&gt;
else&lt;br /&gt;
&lt;br /&gt;
stat2=`echo “$stat” | grep -Po ‘(?&amp;lt;=\().*?(?=\))’`&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
notify-send “Unison” “$stat2” -i “$image”&lt;br /&gt;
&lt;br /&gt;
else&lt;br /&gt;
&lt;br /&gt;
exit 1&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
Как ви­ди­те, наш скрипт очень прост. В стро­ке 1 за­да­ет­ся тип скрип­та (Bash). В стро­ке 2 про­ве­ря­ет­ся под­клю­че­ние к Ин­тер­не­ту. В стро­ке 3 ана­ли­зи­ру­ет­ся ре­зуль­тат про­вер­ки, и ес­ли под­клю­че­ния нет, мы пе­ре­хо­дим к стро­ке 18, в ко­то­рой скрипт за­вер­ша­ет­ся с ко­дом ошиб­ки, оз­на­чаю­щим, что син­хро­ни­за­ция за­вер­ши­лась не­удач­но.&lt;br /&gt;
&lt;br /&gt;
В том случае, ес­ли под­клю­че­ние дос­туп­но, в стро­ках 4 и 5 за­да­ют­ся не­сколь­ко пе­ре­мен­ных, по­сле че­го мы пе­ре­хо­дим к стро­ке 6. В данной стро­ке мы за­пус­ка­ем Unison, по­лу­ча­ем по­след­нюю стро­ку вы­во­да и со­хра­ня­ем ее в пе­ре­мен­ной $stat, ко­то­рой вос­поль­зу­ем­ся поз­же. В стро­ке 7 мы про­ве­ря­ем, вер­нул ли Unison код 0, оз­на­чаю­щий ус­пеш­ную син­хро­ни­за­цию. Ес­ли мы по­лу­чи­ли дру­гой код ошиб­ки, то в стро­ке 8 мы от­прав­ля­ем опо­ве­ще­ние ра­бо­че­го сто­ла об ошиб­ке син­хро­ни­за­ции.&lt;br /&gt;
&lt;br /&gt;
При ус­пеш­ном за­вер­ше­нии син­хро­ни­за­ции в стро­ке 11 мы ана­ли­зи­ру­ем пе­ре­мен­ную $stat, что­бы по­нять, вы­пол­нил ли Unison ка­кие-ли­бо дей­ст­вия. Ес­ли пер­вое сло­во в пе­ре­мен­ной — “Nothing [Ни­че­го]”, то мы вы­хо­дим из скрип­та, по­то­му что об­нов­ле­ний не бы­ло; в про­тив­ном слу­чае пе­ре­хо­дим к стро­ке 14, где по­лу­ча­ем стро­ку в круг­лых скоб­ках и со­хра­ня­ем ее в пе­ре­мен­ной $stat2, по­сле че­го пе­ре­хо­дим в стро­ку 16 и ото­бра­жа­ем ре­зуль­та­ты поль­зо­ва­те­лю.&lt;br /&gt;
&lt;br /&gt;
Что­бы все ра­бо­та­ло без на­ше­го уча­стия, скрипт дол­жен за­пус­кать­ся ре­гу­ляр­но и син­хро­ни­зи­ро­вать­ся с сер­ве­ром. С этой за­да­чей пре­крас­но спра­вит­ся cron. Да­вай­те сде­ла­ем ин­тер­вал син­хро­ни­за­ции в пять ми­нут сле­дую­щей ко­ман­дой:&lt;br /&gt;
&lt;br /&gt;
crontab -e&lt;br /&gt;
&lt;br /&gt;
Те­перь до­ба­вим сле­дую­щее:&lt;br /&gt;
&lt;br /&gt;
*/5 * * * * DISPLAY=:0 /home/lxf/sync.sh&lt;br /&gt;
&lt;br /&gt;
*/5 ве­лит cron за­пус­кать­ся ка­ж­дые пять ми­нут. Сле­дую­щие че­ты­ре звез­доч­ки ве­лят cron за­пус­кать­ся ка­ж­дые пять ми­нут ка­ж­до­го ча­са ка­ж­до­го дня ка­ж­до­го ме­ся­ца. DISPLAY=:0 на­прав­ля­ет вы­вод скрип­та на те­ку­щий мо­ни­тор.&lt;br /&gt;
&lt;br /&gt;
Вот и все! Те­перь вы обзавелись бес­плат­ной за­ме­ной Dropbox, ко­то­рая на­хо­дит­ся под ва­шим кон­тро­лем. Не­ко­то­рые из вас, не­со­мнен­но, по­ин­те­ре­су­ют­ся: а как же луч­ше все­го де­лить­ся фай­ла­ми с чле­на­ми се­мьи и друзь­я­ми? Здесь луч­ше Dropbox вам не най­ти. Про­дол­жай­те поль­зо­вать­ся бес­плат­ной учет­ной за­пи­сью и де­лить­ся фай­ла­ми по ме­ре не­об­хо­ди­мо­сти, не бес­по­ко­ясь об ос­таль­ных дан­ных. |&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8_Inkscape</id>
		<title>LXF171:Редактор графики Inkscape</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8_Inkscape"/>
				<updated>2018-11-18T09:17:56Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* Шаг за ша­гом: Де­ла­ем «синь­ку» изо­бра­же­ния */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[Категория: Учебники]]&lt;br /&gt;
== Inkscape: Ко­пия-«синька» ==&lt;br /&gt;
''Соз­дай­те весь­ма де­таль­ный ри­су­нок без осо­бо­го тру­да. Про­сты­ми эф­фек­та­ми Inkscape Ник Вейч до­би­ва­ет­ся по­тря­саю­щих ре­зуль­та­тов.''&lt;br /&gt;
[[Файл:Nick_v2_fmt.png |left | thumb|100px|'''Наш эксперт'''. Ко­гда на­чи­нал­ся LXF, его дер­жа­ли на пла­ву толь­ко скрип­ты Bash от Ни­ка Вей­ча. По­том их за­ме­ни­ли «лю­ди», и это, по мне­нию Ни­ка, ста­ло яв­ным ша­гом на­зад...]] &lt;br /&gt;
Ес­ли вам нуж­но что-то на­ри­со­вать, с Inkscape это па­ра пус­тя­ков. Inkscape не толь­ко име­ет об­шир­ный на­бор по­лез­ных и в об­щем про­стых для по­ни­ма­ния ин­ст­ру­мен­тов, но и ра­бо­та­ет с SVG, стан­дарт­ным фор­ма­том век­тор­ной гра­фи­ки. Та­лант­ли­вый ху­дож­ник смо­жет соз­да­вать в Inkscape уди­ви­тель­ные ве­щи; и да­же ес­ли у вас ру­ки-крю­ки, год­ные раз­ве что удер­жать ку­сок ме­ла, вы при из­вест­ных уси­ли­ях со­стря­пае­те впол­не при­лич­ное изо­бра­же­ние.&lt;br /&gt;
&lt;br /&gt;
Наш урок объ­яс­нит вам не­ко­то­рые «скры­тые» функ­ции ри­со­ва­ния Inkscape, по­сред­ст­вом прак­ти­че­­ско­­го уп­раж­не­ния. Да не так уж эти функ­ции и «скры­ты», про­сто их час­то не за­ме­ча­ют или они ка­жут­ся слиш­ком слож­ны­ми, что­бы за них брать­ся. Мы при­от­кро­ем за­ве­су тай­ны, ок­ру­жаю­щей при­ме­не­ние эф­фек­тов, рас­ши­ре­ний и фильт­ров, что­бы в ито­ге по­лу­чить изо­бра­же­ние в сти­ле «от­си­нен­ной» ко­пии, ко­то­рая вы­гля­дит не слиш­ком иде­аль­но — в дан­ном слу­чае не­дос­тат­ки изо­бра­же­ния вве­де­ны на­ме­рен­но.&lt;br /&gt;
&lt;br /&gt;
Воз­мож­но, вы уже при­ме­ня­ли фильт­ры рань­ше — поч­ти на­вер­ня­ка, ес­ли за­ни­ма­лись в Inkscape рас­тро­вы­ми изо­бра­же­ния­ми. К рас­тру обыч­но об­ра­ща­ют­ся, ко­гда в изо­бра­же­нии на­до до­ба­вить тек­сту­ры, и, че­ст­но го­во­ря, при на­ли­чии дос­той­ной го­то­вой тек­сту­ры соз­да­ние то­го же са­мо­го эф­фек­та по­тре­бу­ет де­ся­тую до­лю на­ших уси­лий. По­че­му бы нам так и не по­сту­пить?&lt;br /&gt;
&lt;br /&gt;
Рас­тро­вые изо­бра­же­ния не толь­ко не­ма­ло ве­сят — они так­же не мас­шта­би­ру­ют­ся. При ра­бо­те с век­тор­ным изо­бра­же­ни­ем о мас­шта­бе вол­но­вать­ся не­за­чем: изо­бра­же­ние все рав­но ос­та­нет­ся уз­на­вае­мым, по­сколь­ку по­строе­но ис­клю­чи­тель­но из форм, а те со­хра­ня­ют­ся в лю­бом раз­ме­ре. По­это­му не ме­ша­ет знать, как соз­дать эф­фект рас­тро­во­го изо­бра­же­ния, ис­поль­зуя все­го лишь обыч­ные фор­мы и не­мно­го про­це­дур­ной ма­гии от Inkscape.&lt;br /&gt;
&lt;br /&gt;
Не­дос­та­ток про­це­дур­ных ме­то­дов в том, что не­ко­то­рые из них, в за­ви­си­мо­сти от вы­бран­но­го па­ра­мет­ра, мо­гут затребовать из­ряд­ные ре­сур­сы CPU на рен­де­ринг. Ви­дя, как над­са­жа­ет­ся ваш ком­пь­ю­тер, пы­та­ясь вос­соз­дать изо­бра­же­ние на эк­ра­не, вы, воз­мож­но, за­хо­ти­те не­мно­го сни­зить ин­тен­сив­ность эф­фек­тов.&lt;br /&gt;
&lt;br /&gt;
===Шаг за ша­гом: Де­ла­ем «синь­ку» изо­бра­же­ния===&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.in_opt.jpeg |left | thumb|500px|1 Сде­ла­ем си­ний фон&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сна­ча­ла соз­да­дим си­ний пря­мо­уголь­ник — он бу­дет фо­ном на­ше­го изо­бра­же­ния. Вы­бе­ри­те цвет Navy [мор­ской] в па­лит­ре вни­зу ок­на Inkscape. За­тем вы­бе­ри­те ин­ст­ру­мент Пря­мо­уголь­ник в па­не­ли ин­ст­ру­мен­тов сбо­ку и соз­дай­те пря­мо­уголь­ник прак­ти­че­­ски во всю ши­ри­ну стра­ни­цы. Из­ме­нить стра­ни­цу, что­бы он луч­ше ту­да впи­сы­вал­ся, мы еще ус­пе­ем, так что не спе­ши­те в ре­жим пей­за­жа. Не­ко­то­рые из при­ме­няе­мых эф­фек­тов за­ви­сят от ис­ход­но­го раз­ме­ра фо­на, и у вас мо­гут по­лу­чить­ся дру­гие ре­зуль­та­ты, ес­ли вы ре­ши­те соз­дать вер­сию фор­ма­та A0; или, по край­ней ме­ре, вам при­дет­ся на­стро­ить не­ко­то­рые па­ра­мет­ры.]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt2.jpeg |right | thumb|500px|2 До­ба­вим сы­ру&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Да, все вер­но, мы до­ба­вим эф­фект сы­ра. Тек­сту­ра фо­на при­даст ему вид под­лин­ной ко­пии-синь­ки. Глав­ное — не пе­ре­брать, по­то­му что все же хо­чет­ся рас­по­знать изо­бра­же­ние, ко­гда оно бу­дет го­то­во. Эф­фект, ко­то­рый вы най­де­те в Filters &amp;gt; Overlays &amp;gt; Blue Cheese [Фильт­ры &amp;gt; На­ло­же­ния &amp;gt; Си­ний сыр] при­даст ва­ше­му фо­ну не­сколь­ко по­мя­тый вид. Из­лиш­не­го шу­ма не до­ба­вит­ся, и ри­су­нок ос­та­нет­ся раз­бор­чи­вым; эф­фект не осо­бо ре­сур­со­ем­кий, так что вам не при­дет­ся ча­са­ми ждать об­нов­ле­ния эк­ра­на.]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt1.jpeg |left | thumb|500px|3 Соз­да­дим но­вый слой&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мы не хо­тим слу­чай­но ис­пор­тить фон, по­это­му наи­луч­шим вы­хо­дом бу­дет соз­дать по­верх не­го но­вый слой и раз­мес­тить ри­су­нок на нем. Для на­ча­ла на­до за­бло­ки­ро­вать те­ку­щий слой (щелк­ни­те по знач­ку с зам­ком в се­ре­ди­не стро­ки со­стоя­ния вни­зу эк­ра­на). За­тем вы­бе­ри­те Select Layer &amp;gt; Add Layer... [Вы­брать слой &amp;gt; До­ба­вить слой] в ме­ню. Вве­ди­те имя но­во­го слоя и про­верь­те, что­бы он был на­стро­ен на Above Current Layer [Над те­ку­щим сло­ем]. Пе­ре­клю­чать­ся ме­ж­ду слоя­ми лег­ко: вы­би­рай­те нуж­ный слой из всплы­ваю­ще­го ме­ню в се­ре­ди­не стро­ки со­стоя­ния.]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt3.jpeg |right | thumb|500px|4 На­ри­су­ем что-ни­будь&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По­ра на на­шей синь­ке что-то изо­бра­зить. Мож­но на­чать с пе­ре­тас­ки­ва­ния пря­мо­уголь­ни­ка для об­рам­ле­ния об­лас­ти, по­кры­той на­шим сыр­ным фо­ном. Имен­но эта фи­гу­ра час­то встре­ча­ет­ся на тех­ни­че­­ских чер­те­жах и синь­ках. Кста­ти, вы мо­же­те до­ба­вить стоп­ку пря­мо­уголь­нич­ков в ниж­нем пра­вом уг­лу, на ма­нер штам­па. От­крой­те свой­ст­ва Fill and Stroke [За­лив­ка и штри­хи] (Ctrl+Shift+F) и вы­ставь­те их в No Fill [Без за­лив­ки] и Solid stroke [Сплош­ной штрих], при­мер­но на 10 % се­ро­го. Тол­щи­ну на­строй­те на свое ус­мот­ре­ние.]]&lt;br /&gt;
[[Файл: LXF165.tut_inkscape.i_opt4.jpeg|left | thumb|500px|5 Что-ни­будь до­ба­вим&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Те­перь у нас есть шаб­лон лис­та для ри­сун­ков (хо­ро­шей иде­ей бу­дет со­хра­нить его для бу­ду­ще­го упот­реб­ле­ния), и мож­но на­чать ри­со­вать на нем. Ес­ли у вас уже есть псев­до­ка­ран­даш­ные ри­сун­ки, ко­то­рые вы бы хо­те­ли до­ба­вить, са­мое вре­мя сде­лать это, но ес­ли у вас нет ни­че­го, дос­та­точ­но по­хо­же­го на тех­ни­че­­ский чер­теж, не­сколь­ко со­че­та­ний кла­виш вам по­мо­гут. Ин­ст­ру­мен­том Ка­ран­даш (Shift + F6) на­ри­суй­те тре­уголь­ник. Это станет на­мно­го про­ще, ес­ли удер­жи­вать кла­ви­шу Ctrl, ко­то­рая по­мо­жет про­во­дить пря­мые ли­нии и де­лать ров­ные уг­лы.]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt6.jpeg |right | thumb|500px|6 Транс­фор­ми­ру­ем с Render&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вы­де­лив тре­уголь­ник, вы­бе­ри­те Extensions &amp;gt; Render &amp;gt; Draw From Triangle... [Рас­ши­ре­ния &amp;gt; Рен­де­ринг &amp;gt; Ри­со­вать из тре­уголь­ни­ка] — поя­вит­ся ок­но с мас­сой оп­ций по гео­мет­ри­че­­ским фи­гу­рам, соз­да­вае­мым из тре­уголь­ни­ка. По­экс­пе­ри­мен­ти­руй­те с ни­ми: щелк­ни­те по Live preview [Пред­про­смотр] — и уви­ди­те, на что спо­соб­на ка­ж­дая из них. Это де­мон­ст­ри­ру­ет мощь не­ко­то­рых рас­ши­ре­ний, ко­то­рые уме­ют ри­со­вать объ­ек­ты за вас или рас­ши­рять то, что на­ри­со­ва­ли вы. Вни­ма­тель­но оз­на­комь­тесь с ме­ню Render [Рен­де­ринг]: в нем есть еще мно­го че­го ин­те­рес­но­го!]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt5.jpeg |left | thumb|500px|7 Им­пор­ти­ру­ем что-ни­будь еще&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ес­ли вы не умее­те ри­со­вать, а рас­ши­ре­ния не пред­ла­га­ют вам ни­че­го под­хо­дя­ще­го, вы­ход есть: одол­жи­те ри­су­нок! При вы­бо­ре File &amp;gt; Import from Open Clip Art library [Файл &amp;gt; Им­пор­ти­ро­вать из биб­лио­те­ки кли­пар­та] пе­ред ва­ми поя­вит­ся ок­но с па­ра­мет­ра­ми по­ис­ка, по ко­то­рым вы най­де­те лю­бые изо­бра­же­ния от Creative Commons.&lt;br /&gt;
&lt;br /&gt;
Мне по­ду­ма­лось, что не­пло­хо бу­дет смот­реть­ся вит­ру­ви­ан­ский че­ло­век Ле­о­нар­до да Вин­чи, и тут же на­шлось аж три та­ких. Наш пре­дос­тав­лен поль­зо­ва­те­лем YDL, и он вы­гля­дит очень под­хо­дя­ще для то­го, что мы на­ме­ре­ны сде­лать да­лее — за­ста­вим его вы­гля­деть до­воль­но не­ряш­ли­во! По­сле его им­пор­та мо­жет по­на­до­бить­ся из­ме­нить раз­мер и при­стро­ить изо­бра­же­ние на долж­ную по­зи­цию.]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt7.jpeg |right | thumb|500px|8 При­да­дим вид эс­ки­за&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Од­на из функ­ций Inkscape, ко­то­рой уде­ля­ет­ся ма­ло вни­ма­ния — это эф­фек­ты Path [Кон­тур]. Они от­час­ти по­хо­жи на фильт­ры или рас­ши­ре­ния, но из­ме­ня­ют кон­тур. Здесь есть из че­го вы­би­рать, но сей­час мы хо­тим ис­поль­зо­вать Sketch [На­бро­сок]. Вы­де­лив объ­ект, на­жми­те на Shift + Ctrl + 7, что­бы вы­вес­ти диа­ло­го­вое ок­но Path Effect [Эф­фект кон­ту­ра]. Вы­бе­ри­те Sketch из всплы­ваю­ще­го ме­ню, за­тем на­жми­те на кноп­ку Add [До­ба­вить]. Она из­ме­нит кон­тур, за­ме­нив ка­ж­дую кри­вую не­ким ко­ли­че­­ст­вом ли­ний, сход­ных с ори­ги­на­лом. По­во­зи­тесь с на­строй­ка­ми, по­ка не добь­е­тесь нуж­но­го эф­фек­та — но не до­бав­ляй­те слиш­ком мно­го «дро­жа­ния» или ли­ний, ина­че ри­су­нок пре­вра­тит­ся в пол­ную не­раз­бе­ри­ху.]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt8.jpeg |left | thumb|500px|9 До­ба­вим текст&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А те­перь на­ше­му до­ку­мен­ту ну­жен текст, но не ка­кой по­па­ло. Мож­но по­тра­тить веч­ность на по­иск под­хо­дя­ще­го шриф­та, на­по­ми­наю­ще­го че­ло­ве­че­­ский по­черк, но во­об­ще-то по­дой­дет лю­бой шрифт; мы за­ста­вим его вы­гля­деть ру­ко­пис­ным с по­мо­щью эф­фек­тов. Вы­бе­ри­те шрифт и впи­ши­те текст. Я со­ве­тую брус­ча­тый шрифт вро­де OpenSans, или, по край­ней ме­ре, шрифт без за­се­чек. До­бавь­те его с по­мо­щью ин­ст­ру­мен­та Text [Текст], и по­за­боть­тесь вы­де­лить оп­цию Bold [Жир­ный] в па­не­ли ин­ст­ру­мен­тов — чем мас­сив­нее он бу­дет, тем луч­ше для это­го эф­фек­та.]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape._opt10.jpeg|right | thumb|500px|10 Пре­об­ра­зу­ем текст&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При­ме­нить к тек­сту эф­фек­ты Path сра­зу нель­зя, по­сколь­ку текст все-та­ки не кон­тур. За­то мож­но пре­вра­тить текст в кон­тур. Вы­де­ли­те его и за­тем вы­бе­ри­те Path &amp;gt; Object To Path [Кон­тур &amp;gt; Пре­об­ра­зо­вать объ­ект в кон­тур]. От­ны­не ваш текст уже не дос­ту­пен в ви­де тек­ста, он стал сгруп­пи­ро­ван­ной под­бор­кой кон­ту­ров. По­ка они сгруп­пи­ро­ва­ны, ис­поль­зуй­те свой­ст­ва Fill and Stroke, что­бы при­дать им се­рый цвет и от­сут­ст­вие за­лив­ки. Те­перь вы­бе­ри­те Edit &amp;gt; Duplicate [Ре­дак­ти­ро­вать &amp;gt; Дуб­ли­ро­вать] для соз­да­ния точ­ной ко­пии. Имен­но ко­пию мы пре­вра­тим в ка­ра­ку­ли, а ори­ги­нал ос­та­нет­ся ка­ким был, что­бы текст ос­та­вал­ся чи­тае­мым по­сле то­го, как мы до­ба­вим цвет. Раз­груп­пи­руй­те кон­ту­ры, вы­бе­ри­те для за­трав­ки ка­кой-ни­будь сим­па­тич­ный и не­слож­ный, за­тем на­жми­те Shift + Ctrl + 7, что­бы сно­ва от­крыть Path Effects Editor [Ре­дак­тор эф­фек­тов кон­ту­ров].]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt9.jpeg |left | thumb|500px|11 Пре­вра­тим текст в ка­ра­ку­ли&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На этот раз вы­бе­ри­те и до­бавь­те Hatches (rough) [Штри­хов­ка (гру­бо)]. Не ис­клю­че­но, что фи­гу­ра бу­дет вы­гля­деть за­ля­пан­ной. На па­не­ли Fill and Stroke про­верь­те, что Fill от­клю­че­на, и умень­шай­те тол­щи­ну штри­ха, по­ка ли­нии не ста­нут раз­ли­чи­мы. Мож­но на­стро­ить штри­хов­ку че­рез длин­ный спи­сок оп­ций, но на­мно­го про­ще до­бить­ся же­лае­мо­го эф­фек­та в ре­жи­ме ‘live’. Пе­ре­клю­чи­тесь на ин­ст­ру­мент Node [Узел] (тот, ко­то­рый под обыч­ным ука­за­те­лем), и те­перь в фи­гу­ре вы долж­ны ви­деть два жел­тых ром­ба и не­сколь­ко дру­гих то­чек. По­вер­ти­те верх­ним ром­бом, ме­няя гус­то­ту и на­клон штри­хов­ки, что­бы до­бить­ся нуж­но­го эф­фек­та (ес­ли та­щить ромб к цен­тру объ­ек­та, гус­то­та штри­хов­ки уве­ли­чи­ва­ет­ся).]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape._opt11.jpeg |right | thumb|500px|12 Ра­бо­та­ем с хит­ро­ум­ны­ми фи­гу­ра­ми&lt;br /&gt;
&lt;br /&gt;
В не­ко­то­рых фи­гу­рах есть от­вер­стия, и это про­бле­ма. Эф­фект Hatches не слиш­ком хо­ро­шо с та­ким справ­ля­ет­ся и как бы за­пол­ня­ет их два­ж­ды. Не­сколь­ко не­ле­пый, но эф­фек­тив­ный спо­соб спра­вить­ся с про­бле­мой — сно­ва про­дуб­ли­ро­вать фи­гу­ру. С по­мо­щью ре­дак­то­ра Node уда­ли­те внеш­ний кон­тур, ос­та­вив толь­ко внут­рен­ний, за­тем за­пол­ни­те его и при­ме­ни­те лю­бые эф­фек­ты, что­бы он вы­гля­дел так же, как фон. Это до­воль­но уто­ми­тель­но, но за­то эф­фек­тив­но, и уж вся­ко про­ще, чем ри­со­вать все эти ка­ра­ку­ли са­мо­му! ]]&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8_Inkscape</id>
		<title>LXF171:Редактор графики Inkscape</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8_Inkscape"/>
				<updated>2018-11-18T09:16:39Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* Шаг за ша­гом: Де­ла­ем «синь­ку» изо­бра­же­ния */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[Категория: Учебники]]&lt;br /&gt;
== Inkscape: Ко­пия-«синька» ==&lt;br /&gt;
''Соз­дай­те весь­ма де­таль­ный ри­су­нок без осо­бо­го тру­да. Про­сты­ми эф­фек­та­ми Inkscape Ник Вейч до­би­ва­ет­ся по­тря­саю­щих ре­зуль­та­тов.''&lt;br /&gt;
[[Файл:Nick_v2_fmt.png |left | thumb|100px|'''Наш эксперт'''. Ко­гда на­чи­нал­ся LXF, его дер­жа­ли на пла­ву толь­ко скрип­ты Bash от Ни­ка Вей­ча. По­том их за­ме­ни­ли «лю­ди», и это, по мне­нию Ни­ка, ста­ло яв­ным ша­гом на­зад...]] &lt;br /&gt;
Ес­ли вам нуж­но что-то на­ри­со­вать, с Inkscape это па­ра пус­тя­ков. Inkscape не толь­ко име­ет об­шир­ный на­бор по­лез­ных и в об­щем про­стых для по­ни­ма­ния ин­ст­ру­мен­тов, но и ра­бо­та­ет с SVG, стан­дарт­ным фор­ма­том век­тор­ной гра­фи­ки. Та­лант­ли­вый ху­дож­ник смо­жет соз­да­вать в Inkscape уди­ви­тель­ные ве­щи; и да­же ес­ли у вас ру­ки-крю­ки, год­ные раз­ве что удер­жать ку­сок ме­ла, вы при из­вест­ных уси­ли­ях со­стря­пае­те впол­не при­лич­ное изо­бра­же­ние.&lt;br /&gt;
&lt;br /&gt;
Наш урок объ­яс­нит вам не­ко­то­рые «скры­тые» функ­ции ри­со­ва­ния Inkscape, по­сред­ст­вом прак­ти­че­­ско­­го уп­раж­не­ния. Да не так уж эти функ­ции и «скры­ты», про­сто их час­то не за­ме­ча­ют или они ка­жут­ся слиш­ком слож­ны­ми, что­бы за них брать­ся. Мы при­от­кро­ем за­ве­су тай­ны, ок­ру­жаю­щей при­ме­не­ние эф­фек­тов, рас­ши­ре­ний и фильт­ров, что­бы в ито­ге по­лу­чить изо­бра­же­ние в сти­ле «от­си­нен­ной» ко­пии, ко­то­рая вы­гля­дит не слиш­ком иде­аль­но — в дан­ном слу­чае не­дос­тат­ки изо­бра­же­ния вве­де­ны на­ме­рен­но.&lt;br /&gt;
&lt;br /&gt;
Воз­мож­но, вы уже при­ме­ня­ли фильт­ры рань­ше — поч­ти на­вер­ня­ка, ес­ли за­ни­ма­лись в Inkscape рас­тро­вы­ми изо­бра­же­ния­ми. К рас­тру обыч­но об­ра­ща­ют­ся, ко­гда в изо­бра­же­нии на­до до­ба­вить тек­сту­ры, и, че­ст­но го­во­ря, при на­ли­чии дос­той­ной го­то­вой тек­сту­ры соз­да­ние то­го же са­мо­го эф­фек­та по­тре­бу­ет де­ся­тую до­лю на­ших уси­лий. По­че­му бы нам так и не по­сту­пить?&lt;br /&gt;
&lt;br /&gt;
Рас­тро­вые изо­бра­же­ния не толь­ко не­ма­ло ве­сят — они так­же не мас­шта­би­ру­ют­ся. При ра­бо­те с век­тор­ным изо­бра­же­ни­ем о мас­шта­бе вол­но­вать­ся не­за­чем: изо­бра­же­ние все рав­но ос­та­нет­ся уз­на­вае­мым, по­сколь­ку по­строе­но ис­клю­чи­тель­но из форм, а те со­хра­ня­ют­ся в лю­бом раз­ме­ре. По­это­му не ме­ша­ет знать, как соз­дать эф­фект рас­тро­во­го изо­бра­же­ния, ис­поль­зуя все­го лишь обыч­ные фор­мы и не­мно­го про­це­дур­ной ма­гии от Inkscape.&lt;br /&gt;
&lt;br /&gt;
Не­дос­та­ток про­це­дур­ных ме­то­дов в том, что не­ко­то­рые из них, в за­ви­си­мо­сти от вы­бран­но­го па­ра­мет­ра, мо­гут затребовать из­ряд­ные ре­сур­сы CPU на рен­де­ринг. Ви­дя, как над­са­жа­ет­ся ваш ком­пь­ю­тер, пы­та­ясь вос­соз­дать изо­бра­же­ние на эк­ра­не, вы, воз­мож­но, за­хо­ти­те не­мно­го сни­зить ин­тен­сив­ность эф­фек­тов.&lt;br /&gt;
&lt;br /&gt;
===Шаг за ша­гом: Де­ла­ем «синь­ку» изо­бра­же­ния===&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.in_opt.jpeg |left | thumb|500px|1 Сде­ла­ем си­ний фон&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сна­ча­ла соз­да­дим си­ний пря­мо­уголь­ник — он бу­дет фо­ном на­ше­го изо­бра­же­ния. Вы­бе­ри­те цвет Navy [мор­ской] в па­лит­ре вни­зу ок­на Inkscape. За­тем вы­бе­ри­те ин­ст­ру­мент Пря­мо­уголь­ник в па­не­ли ин­ст­ру­мен­тов сбо­ку и соз­дай­те пря­мо­уголь­ник прак­ти­че­­ски во всю ши­ри­ну стра­ни­цы. Из­ме­нить стра­ни­цу, что­бы он луч­ше ту­да впи­сы­вал­ся, мы еще ус­пе­ем, так что не спе­ши­те в ре­жим пей­за­жа. Не­ко­то­рые из при­ме­няе­мых эф­фек­тов за­ви­сят от ис­ход­но­го раз­ме­ра фо­на, и у вас мо­гут по­лу­чить­ся дру­гие ре­зуль­та­ты, ес­ли вы ре­ши­те соз­дать вер­сию фор­ма­та A0; или, по край­ней ме­ре, вам при­дет­ся на­стро­ить не­ко­то­рые па­ра­мет­ры.]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt2.jpeg |right | thumb|500px|2 До­ба­вим сы­ру&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Да, все вер­но, мы до­ба­вим эф­фект сы­ра. Тек­сту­ра фо­на при­даст ему вид под­лин­ной ко­пии-синь­ки. Глав­ное — не пе­ре­брать, по­то­му что все же хо­чет­ся рас­по­знать изо­бра­же­ние, ко­гда оно бу­дет го­то­во. Эф­фект, ко­то­рый вы най­де­те в Filters &amp;gt; Overlays &amp;gt; Blue Cheese [Фильт­ры &amp;gt; На­ло­же­ния &amp;gt; Си­ний сыр] при­даст ва­ше­му фо­ну не­сколь­ко по­мя­тый вид. Из­лиш­не­го шу­ма не до­ба­вит­ся, и ри­су­нок ос­та­нет­ся раз­бор­чи­вым; эф­фект не осо­бо ре­сур­со­ем­кий, так что вам не при­дет­ся ча­са­ми ждать об­нов­ле­ния эк­ра­на.]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt1.jpeg |left | thumb|500px|3 Соз­да­дим но­вый слой&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мы не хо­тим слу­чай­но ис­пор­тить фон, по­это­му наи­луч­шим вы­хо­дом бу­дет соз­дать по­верх не­го но­вый слой и раз­мес­тить ри­су­нок на нем. Для на­ча­ла на­до за­бло­ки­ро­вать те­ку­щий слой (щелк­ни­те по знач­ку с зам­ком в се­ре­ди­не стро­ки со­стоя­ния вни­зу эк­ра­на). За­тем вы­бе­ри­те Select Layer &amp;gt; Add Layer... [Вы­брать слой &amp;gt; До­ба­вить слой] в ме­ню. Вве­ди­те имя но­во­го слоя и про­верь­те, что­бы он был на­стро­ен на Above Current Layer [Над те­ку­щим сло­ем]. Пе­ре­клю­чать­ся ме­ж­ду слоя­ми лег­ко: вы­би­рай­те нуж­ный слой из всплы­ваю­ще­го ме­ню в се­ре­ди­не стро­ки со­стоя­ния.]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt3.jpeg |right | thumb|500px|4 На­ри­су­ем что-ни­будь&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По­ра на на­шей синь­ке что-то изо­бра­зить. Мож­но на­чать с пе­ре­тас­ки­ва­ния пря­мо­уголь­ни­ка для об­рам­ле­ния об­лас­ти, по­кры­той на­шим сыр­ным фо­ном. Имен­но эта фи­гу­ра час­то встре­ча­ет­ся на тех­ни­че­­ских чер­те­жах и синь­ках. Кста­ти, вы мо­же­те до­ба­вить стоп­ку пря­мо­уголь­нич­ков в ниж­нем пра­вом уг­лу, на ма­нер штам­па. От­крой­те свой­ст­ва Fill and Stroke [За­лив­ка и штри­хи] (Ctrl+Shift+F) и вы­ставь­те их в No Fill [Без за­лив­ки] и Solid stroke [Сплош­ной штрих], при­мер­но на 10 % се­ро­го. Тол­щи­ну на­строй­те на свое ус­мот­ре­ние.]]&lt;br /&gt;
[[Файл: LXF165.tut_inkscape.i_opt4.jpeg|left | thumb|500px|5 Что-ни­будь до­ба­вим&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Те­перь у нас есть шаб­лон лис­та для ри­сун­ков (хо­ро­шей иде­ей бу­дет со­хра­нить его для бу­ду­ще­го упот­реб­ле­ния), и мож­но на­чать ри­со­вать на нем. Ес­ли у вас уже есть псев­до­ка­ран­даш­ные ри­сун­ки, ко­то­рые вы бы хо­те­ли до­ба­вить, са­мое вре­мя сде­лать это, но ес­ли у вас нет ни­че­го, дос­та­точ­но по­хо­же­го на тех­ни­че­­ский чер­теж, не­сколь­ко со­че­та­ний кла­виш вам по­мо­гут. Ин­ст­ру­мен­том Ка­ран­даш (Shift + F6) на­ри­суй­те тре­уголь­ник. Это станет на­мно­го про­ще, ес­ли удер­жи­вать кла­ви­шу Ctrl, ко­то­рая по­мо­жет про­во­дить пря­мые ли­нии и де­лать ров­ные уг­лы.]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt6.jpeg |right | thumb|500px|6 Транс­фор­ми­ру­ем с Render&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вы­де­лив тре­уголь­ник, вы­бе­ри­те Extensions &amp;gt; Render &amp;gt; Draw From Triangle... [Рас­ши­ре­ния &amp;gt; Рен­де­ринг &amp;gt; Ри­со­вать из тре­уголь­ни­ка] — поя­вит­ся ок­но с мас­сой оп­ций по гео­мет­ри­че­­ским фи­гу­рам, соз­да­вае­мым из тре­уголь­ни­ка. По­экс­пе­ри­мен­ти­руй­те с ни­ми: щелк­ни­те по Live preview [Пред­про­смотр] — и уви­ди­те, на что спо­соб­на ка­ж­дая из них. Это де­мон­ст­ри­ру­ет мощь не­ко­то­рых рас­ши­ре­ний, ко­то­рые уме­ют ри­со­вать объ­ек­ты за вас или рас­ши­рять то, что на­ри­со­ва­ли вы. Вни­ма­тель­но оз­на­комь­тесь с ме­ню Render [Рен­де­ринг]: в нем есть еще мно­го че­го ин­те­рес­но­го!]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt5.jpeg |left | thumb|500px|7 Им­пор­ти­ру­ем что-ни­будь еще&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ес­ли вы не умее­те ри­со­вать, а рас­ши­ре­ния не пред­ла­га­ют вам ни­че­го под­хо­дя­ще­го, вы­ход есть: одол­жи­те ри­су­нок! При вы­бо­ре File &amp;gt; Import from Open Clip Art library [Файл &amp;gt; Им­пор­ти­ро­вать из биб­лио­те­ки кли­пар­та] пе­ред ва­ми поя­вит­ся ок­но с па­ра­мет­ра­ми по­ис­ка, по ко­то­рым вы най­де­те лю­бые изо­бра­же­ния от Creative Commons.&lt;br /&gt;
&lt;br /&gt;
Мне по­ду­ма­лось, что не­пло­хо бу­дет смот­реть­ся вит­ру­ви­ан­ский че­ло­век Ле­о­нар­до да Вин­чи, и тут же на­шлось аж три та­ких. Наш пре­дос­тав­лен поль­зо­ва­те­лем YDL, и он вы­гля­дит очень под­хо­дя­ще для то­го, что мы на­ме­ре­ны сде­лать да­лее — за­ста­вим его вы­гля­деть до­воль­но не­ряш­ли­во! По­сле его им­пор­та мо­жет по­на­до­бить­ся из­ме­нить раз­мер и при­стро­ить изо­бра­же­ние на долж­ную по­зи­цию.]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt7.jpeg |right | thumb|500px|8 При­да­дим вид эс­ки­за&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Од­на из функ­ций Inkscape, ко­то­рой уде­ля­ет­ся ма­ло вни­ма­ния — это эф­фек­ты Path [Кон­тур]. Они от­час­ти по­хо­жи на фильт­ры или рас­ши­ре­ния, но из­ме­ня­ют кон­тур. Здесь есть из че­го вы­би­рать, но сей­час мы хо­тим ис­поль­зо­вать Sketch [На­бро­сок]. Вы­де­лив объ­ект, на­жми­те на Shift + Ctrl + 7, что­бы вы­вес­ти диа­ло­го­вое ок­но Path Effect [Эф­фект кон­ту­ра]. Вы­бе­ри­те Sketch из всплы­ваю­ще­го ме­ню, за­тем на­жми­те на кноп­ку Add [До­ба­вить]. Она из­ме­нит кон­тур, за­ме­нив ка­ж­дую кри­вую не­ким ко­ли­че­­ст­вом ли­ний, сход­ных с ори­ги­на­лом. По­во­зи­тесь с на­строй­ка­ми, по­ка не добь­е­тесь нуж­но­го эф­фек­та — но не до­бав­ляй­те слиш­ком мно­го «дро­жа­ния» или ли­ний, ина­че ри­су­нок пре­вра­тит­ся в пол­ную не­раз­бе­ри­ху.]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt8.jpeg |left | thumb|500px|9 До­ба­вим текст&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А те­перь на­ше­му до­ку­мен­ту ну­жен текст, но не ка­кой по­па­ло. Мож­но по­тра­тить веч­ность на по­иск под­хо­дя­ще­го шриф­та, на­по­ми­наю­ще­го че­ло­ве­че­­ский по­черк, но во­об­ще-то по­дой­дет лю­бой шрифт; мы за­ста­вим его вы­гля­деть ру­ко­пис­ным с по­мо­щью эф­фек­тов. Вы­бе­ри­те шрифт и впи­ши­те текст. Я со­ве­тую брус­ча­тый шрифт вро­де OpenSans, или, по край­ней ме­ре, шрифт без за­се­чек. До­бавь­те его с по­мо­щью ин­ст­ру­мен­та Text [Текст], и по­за­боть­тесь вы­де­лить оп­цию Bold [Жир­ный] в па­не­ли ин­ст­ру­мен­тов — чем мас­сив­нее он бу­дет, тем луч­ше для это­го эф­фек­та.]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape._opt10.jpeg|right | thumb|500px|10 Пре­об­ра­зу­ем текст&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При­ме­нить к тек­сту эф­фек­ты Path сра­зу нель­зя, по­сколь­ку текст все-та­ки не кон­тур. За­то мож­но пре­вра­тить текст в кон­тур. Вы­де­ли­те его и за­тем вы­бе­ри­те Path &amp;gt; Object To Path [Кон­тур &amp;gt; Пре­об­ра­зо­вать объ­ект в кон­тур]. От­ны­не ваш текст уже не дос­ту­пен в ви­де тек­ста, он стал сгруп­пи­ро­ван­ной под­бор­кой кон­ту­ров. По­ка они сгруп­пи­ро­ва­ны, ис­поль­зуй­те свой­ст­ва Fill and Stroke, что­бы при­дать им се­рый цвет и от­сут­ст­вие за­лив­ки. Те­перь вы­бе­ри­те Edit &amp;gt; Duplicate [Ре­дак­ти­ро­вать &amp;gt; Дуб­ли­ро­вать] для соз­да­ния точ­ной ко­пии. Имен­но ко­пию мы пре­вра­тим в ка­ра­ку­ли, а ори­ги­нал ос­та­нет­ся ка­ким был, что­бы текст ос­та­вал­ся чи­тае­мым по­сле то­го, как мы до­ба­вим цвет. Раз­груп­пи­руй­те кон­ту­ры, вы­бе­ри­те для за­трав­ки ка­кой-ни­будь сим­па­тич­ный и не­слож­ный, за­тем на­жми­те Shift + Ctrl + 7, что­бы сно­ва от­крыть Path Effects Editor [Ре­дак­тор эф­фек­тов кон­ту­ров].]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt9.jpeg |left | thumb|500px|11 Пре­вра­тим текст в ка­ра­ку­ли&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На этот раз вы­бе­ри­те и до­бавь­те Hatches (rough) [Штри­хов­ка (гру­бо)]. Не ис­клю­че­но, что фи­гу­ра бу­дет вы­гля­деть за­ля­пан­ной. На па­не­ли Fill and Stroke про­верь­те, что Fill от­клю­че­на, и умень­шай­те тол­щи­ну штри­ха, по­ка ли­нии не ста­нут раз­ли­чи­мы. Мож­но на­стро­ить штри­хов­ку че­рез длин­ный спи­сок оп­ций, но на­мно­го про­ще до­бить­ся же­лае­мо­го эф­фек­та в ре­жи­ме ‘live’. Пе­ре­клю­чи­тесь на ин­ст­ру­мент Node [Узел] (тот, ко­то­рый под обыч­ным ука­за­те­лем), и те­перь в фи­гу­ре вы долж­ны ви­деть два жел­тых ром­ба и не­сколь­ко дру­гих то­чек. По­вер­ти­те верх­ним ром­бом, ме­няя гус­то­ту и на­клон штри­хов­ки, что­бы до­бить­ся нуж­но­го эф­фек­та (ес­ли та­щить ромб к цен­тру объ­ек­та, гус­то­та штри­хов­ки уве­ли­чи­ва­ет­ся).]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape._opt11.jpeg |right | thumb|500px|12 Ра­бо­та­ем с хит­ро­ум­ны­ми фи­гу­ра­ми&lt;br /&gt;
&lt;br /&gt;
В не­ко­то­рых фи­гу­рах есть от­вер­стия, и это про­бле­ма. Эф­фект Hatches не слиш­ком хо­ро­шо с та­ким справ­ля­ет­ся и как бы за­пол­ня­ет их два­ж­ды. Не­сколь­ко не­ле­пый, но эф­фек­тив­ный спо­соб спра­вить­ся с про­бле­мой — сно­ва про­дуб­ли­ро­вать фи­гу­ру. С по­мо­щью ре­дак­то­ра Node уда­ли­те внеш­ний кон­тур, ос­та­вив толь­ко внут­рен­ний, за­тем за­пол­ни­те его и при­ме­ни­те лю­бые эф­фек­ты, что­бы он вы­гля­дел так же, как фон. Это до­воль­но уто­ми­тель­но, но за­то эф­фек­тив­но, и уж вся­ко про­ще, чем ри­со­вать все эти ка­ра­ку­ли са­мо­му! |]]&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8_Inkscape</id>
		<title>LXF171:Редактор графики Inkscape</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8_Inkscape"/>
				<updated>2018-11-18T09:08:39Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* Шаг за ша­гом: Де­ла­ем «синь­ку» изо­бра­же­ния */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[Категория: Учебники]]&lt;br /&gt;
== Inkscape: Ко­пия-«синька» ==&lt;br /&gt;
''Соз­дай­те весь­ма де­таль­ный ри­су­нок без осо­бо­го тру­да. Про­сты­ми эф­фек­та­ми Inkscape Ник Вейч до­би­ва­ет­ся по­тря­саю­щих ре­зуль­та­тов.''&lt;br /&gt;
[[Файл:Nick_v2_fmt.png |left | thumb|100px|'''Наш эксперт'''. Ко­гда на­чи­нал­ся LXF, его дер­жа­ли на пла­ву толь­ко скрип­ты Bash от Ни­ка Вей­ча. По­том их за­ме­ни­ли «лю­ди», и это, по мне­нию Ни­ка, ста­ло яв­ным ша­гом на­зад...]] &lt;br /&gt;
Ес­ли вам нуж­но что-то на­ри­со­вать, с Inkscape это па­ра пус­тя­ков. Inkscape не толь­ко име­ет об­шир­ный на­бор по­лез­ных и в об­щем про­стых для по­ни­ма­ния ин­ст­ру­мен­тов, но и ра­бо­та­ет с SVG, стан­дарт­ным фор­ма­том век­тор­ной гра­фи­ки. Та­лант­ли­вый ху­дож­ник смо­жет соз­да­вать в Inkscape уди­ви­тель­ные ве­щи; и да­же ес­ли у вас ру­ки-крю­ки, год­ные раз­ве что удер­жать ку­сок ме­ла, вы при из­вест­ных уси­ли­ях со­стря­пае­те впол­не при­лич­ное изо­бра­же­ние.&lt;br /&gt;
&lt;br /&gt;
Наш урок объ­яс­нит вам не­ко­то­рые «скры­тые» функ­ции ри­со­ва­ния Inkscape, по­сред­ст­вом прак­ти­че­­ско­­го уп­раж­не­ния. Да не так уж эти функ­ции и «скры­ты», про­сто их час­то не за­ме­ча­ют или они ка­жут­ся слиш­ком слож­ны­ми, что­бы за них брать­ся. Мы при­от­кро­ем за­ве­су тай­ны, ок­ру­жаю­щей при­ме­не­ние эф­фек­тов, рас­ши­ре­ний и фильт­ров, что­бы в ито­ге по­лу­чить изо­бра­же­ние в сти­ле «от­си­нен­ной» ко­пии, ко­то­рая вы­гля­дит не слиш­ком иде­аль­но — в дан­ном слу­чае не­дос­тат­ки изо­бра­же­ния вве­де­ны на­ме­рен­но.&lt;br /&gt;
&lt;br /&gt;
Воз­мож­но, вы уже при­ме­ня­ли фильт­ры рань­ше — поч­ти на­вер­ня­ка, ес­ли за­ни­ма­лись в Inkscape рас­тро­вы­ми изо­бра­же­ния­ми. К рас­тру обыч­но об­ра­ща­ют­ся, ко­гда в изо­бра­же­нии на­до до­ба­вить тек­сту­ры, и, че­ст­но го­во­ря, при на­ли­чии дос­той­ной го­то­вой тек­сту­ры соз­да­ние то­го же са­мо­го эф­фек­та по­тре­бу­ет де­ся­тую до­лю на­ших уси­лий. По­че­му бы нам так и не по­сту­пить?&lt;br /&gt;
&lt;br /&gt;
Рас­тро­вые изо­бра­же­ния не толь­ко не­ма­ло ве­сят — они так­же не мас­шта­би­ру­ют­ся. При ра­бо­те с век­тор­ным изо­бра­же­ни­ем о мас­шта­бе вол­но­вать­ся не­за­чем: изо­бра­же­ние все рав­но ос­та­нет­ся уз­на­вае­мым, по­сколь­ку по­строе­но ис­клю­чи­тель­но из форм, а те со­хра­ня­ют­ся в лю­бом раз­ме­ре. По­это­му не ме­ша­ет знать, как соз­дать эф­фект рас­тро­во­го изо­бра­же­ния, ис­поль­зуя все­го лишь обыч­ные фор­мы и не­мно­го про­це­дур­ной ма­гии от Inkscape.&lt;br /&gt;
&lt;br /&gt;
Не­дос­та­ток про­це­дур­ных ме­то­дов в том, что не­ко­то­рые из них, в за­ви­си­мо­сти от вы­бран­но­го па­ра­мет­ра, мо­гут затребовать из­ряд­ные ре­сур­сы CPU на рен­де­ринг. Ви­дя, как над­са­жа­ет­ся ваш ком­пь­ю­тер, пы­та­ясь вос­соз­дать изо­бра­же­ние на эк­ра­не, вы, воз­мож­но, за­хо­ти­те не­мно­го сни­зить ин­тен­сив­ность эф­фек­тов.&lt;br /&gt;
&lt;br /&gt;
===Шаг за ша­гом: Де­ла­ем «синь­ку» изо­бра­же­ния===&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.in_opt.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt2.jpeg |right | thumb|500px|]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt1.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt3.jpeg |right | thumb|500px|]]&lt;br /&gt;
[[Файл: LXF165.tut_inkscape.i_opt4.jpeg|left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt6.jpeg |right | thumb|500px|]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt5.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt7.jpeg |right | thumb|500px|]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt8.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape._opt10.jpeg|right | thumb|500px|]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt9.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape._opt11.jpeg |right | thumb|500px|]]&lt;br /&gt;
LXF165.tut inkscape. opt10.jpeg &lt;br /&gt;
LXF165.tut_inkscape.i_opt8.jpeg&lt;br /&gt;
LXF165.tut inkscape. opt11.jpeg&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8_Inkscape</id>
		<title>LXF171:Редактор графики Inkscape</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8_Inkscape"/>
				<updated>2018-11-18T09:03:38Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* Шаг за ша­гом: Де­ла­ем «синь­ку» изо­бра­же­ния */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[Категория: Учебники]]&lt;br /&gt;
== Inkscape: Ко­пия-«синька» ==&lt;br /&gt;
''Соз­дай­те весь­ма де­таль­ный ри­су­нок без осо­бо­го тру­да. Про­сты­ми эф­фек­та­ми Inkscape Ник Вейч до­би­ва­ет­ся по­тря­саю­щих ре­зуль­та­тов.''&lt;br /&gt;
[[Файл:Nick_v2_fmt.png |left | thumb|100px|'''Наш эксперт'''. Ко­гда на­чи­нал­ся LXF, его дер­жа­ли на пла­ву толь­ко скрип­ты Bash от Ни­ка Вей­ча. По­том их за­ме­ни­ли «лю­ди», и это, по мне­нию Ни­ка, ста­ло яв­ным ша­гом на­зад...]] &lt;br /&gt;
Ес­ли вам нуж­но что-то на­ри­со­вать, с Inkscape это па­ра пус­тя­ков. Inkscape не толь­ко име­ет об­шир­ный на­бор по­лез­ных и в об­щем про­стых для по­ни­ма­ния ин­ст­ру­мен­тов, но и ра­бо­та­ет с SVG, стан­дарт­ным фор­ма­том век­тор­ной гра­фи­ки. Та­лант­ли­вый ху­дож­ник смо­жет соз­да­вать в Inkscape уди­ви­тель­ные ве­щи; и да­же ес­ли у вас ру­ки-крю­ки, год­ные раз­ве что удер­жать ку­сок ме­ла, вы при из­вест­ных уси­ли­ях со­стря­пае­те впол­не при­лич­ное изо­бра­же­ние.&lt;br /&gt;
&lt;br /&gt;
Наш урок объ­яс­нит вам не­ко­то­рые «скры­тые» функ­ции ри­со­ва­ния Inkscape, по­сред­ст­вом прак­ти­че­­ско­­го уп­раж­не­ния. Да не так уж эти функ­ции и «скры­ты», про­сто их час­то не за­ме­ча­ют или они ка­жут­ся слиш­ком слож­ны­ми, что­бы за них брать­ся. Мы при­от­кро­ем за­ве­су тай­ны, ок­ру­жаю­щей при­ме­не­ние эф­фек­тов, рас­ши­ре­ний и фильт­ров, что­бы в ито­ге по­лу­чить изо­бра­же­ние в сти­ле «от­си­нен­ной» ко­пии, ко­то­рая вы­гля­дит не слиш­ком иде­аль­но — в дан­ном слу­чае не­дос­тат­ки изо­бра­же­ния вве­де­ны на­ме­рен­но.&lt;br /&gt;
&lt;br /&gt;
Воз­мож­но, вы уже при­ме­ня­ли фильт­ры рань­ше — поч­ти на­вер­ня­ка, ес­ли за­ни­ма­лись в Inkscape рас­тро­вы­ми изо­бра­же­ния­ми. К рас­тру обыч­но об­ра­ща­ют­ся, ко­гда в изо­бра­же­нии на­до до­ба­вить тек­сту­ры, и, че­ст­но го­во­ря, при на­ли­чии дос­той­ной го­то­вой тек­сту­ры соз­да­ние то­го же са­мо­го эф­фек­та по­тре­бу­ет де­ся­тую до­лю на­ших уси­лий. По­че­му бы нам так и не по­сту­пить?&lt;br /&gt;
&lt;br /&gt;
Рас­тро­вые изо­бра­же­ния не толь­ко не­ма­ло ве­сят — они так­же не мас­шта­би­ру­ют­ся. При ра­бо­те с век­тор­ным изо­бра­же­ни­ем о мас­шта­бе вол­но­вать­ся не­за­чем: изо­бра­же­ние все рав­но ос­та­нет­ся уз­на­вае­мым, по­сколь­ку по­строе­но ис­клю­чи­тель­но из форм, а те со­хра­ня­ют­ся в лю­бом раз­ме­ре. По­это­му не ме­ша­ет знать, как соз­дать эф­фект рас­тро­во­го изо­бра­же­ния, ис­поль­зуя все­го лишь обыч­ные фор­мы и не­мно­го про­це­дур­ной ма­гии от Inkscape.&lt;br /&gt;
&lt;br /&gt;
Не­дос­та­ток про­це­дур­ных ме­то­дов в том, что не­ко­то­рые из них, в за­ви­си­мо­сти от вы­бран­но­го па­ра­мет­ра, мо­гут затребовать из­ряд­ные ре­сур­сы CPU на рен­де­ринг. Ви­дя, как над­са­жа­ет­ся ваш ком­пь­ю­тер, пы­та­ясь вос­соз­дать изо­бра­же­ние на эк­ра­не, вы, воз­мож­но, за­хо­ти­те не­мно­го сни­зить ин­тен­сив­ность эф­фек­тов.&lt;br /&gt;
&lt;br /&gt;
===Шаг за ша­гом: Де­ла­ем «синь­ку» изо­бра­же­ния===&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.in_opt.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt2.jpeg |right | thumb|500px|]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt1.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt3.jpeg |right | thumb|500px|]]&lt;br /&gt;
[[Файл: LXF165.tut_inkscape.i_opt4.jpeg|left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt6.jpeg |right | thumb|500px|]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt5.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt7.jpeg |right | thumb|500px|]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt8.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape._opt10.jpeg|right | thumb|500px|]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt9.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt11.jpeg |right | thumb|500px|]]&lt;br /&gt;
LXF165.tut inkscape. opt10.jpeg &lt;br /&gt;
LXF165.tut_inkscape.i_opt8.jpeg&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8_Inkscape</id>
		<title>LXF171:Редактор графики Inkscape</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8_Inkscape"/>
				<updated>2018-11-18T09:02:37Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* Шаг за ша­гом: Де­ла­ем «синь­ку» изо­бра­же­ния */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[Категория: Учебники]]&lt;br /&gt;
== Inkscape: Ко­пия-«синька» ==&lt;br /&gt;
''Соз­дай­те весь­ма де­таль­ный ри­су­нок без осо­бо­го тру­да. Про­сты­ми эф­фек­та­ми Inkscape Ник Вейч до­би­ва­ет­ся по­тря­саю­щих ре­зуль­та­тов.''&lt;br /&gt;
[[Файл:Nick_v2_fmt.png |left | thumb|100px|'''Наш эксперт'''. Ко­гда на­чи­нал­ся LXF, его дер­жа­ли на пла­ву толь­ко скрип­ты Bash от Ни­ка Вей­ча. По­том их за­ме­ни­ли «лю­ди», и это, по мне­нию Ни­ка, ста­ло яв­ным ша­гом на­зад...]] &lt;br /&gt;
Ес­ли вам нуж­но что-то на­ри­со­вать, с Inkscape это па­ра пус­тя­ков. Inkscape не толь­ко име­ет об­шир­ный на­бор по­лез­ных и в об­щем про­стых для по­ни­ма­ния ин­ст­ру­мен­тов, но и ра­бо­та­ет с SVG, стан­дарт­ным фор­ма­том век­тор­ной гра­фи­ки. Та­лант­ли­вый ху­дож­ник смо­жет соз­да­вать в Inkscape уди­ви­тель­ные ве­щи; и да­же ес­ли у вас ру­ки-крю­ки, год­ные раз­ве что удер­жать ку­сок ме­ла, вы при из­вест­ных уси­ли­ях со­стря­пае­те впол­не при­лич­ное изо­бра­же­ние.&lt;br /&gt;
&lt;br /&gt;
Наш урок объ­яс­нит вам не­ко­то­рые «скры­тые» функ­ции ри­со­ва­ния Inkscape, по­сред­ст­вом прак­ти­че­­ско­­го уп­раж­не­ния. Да не так уж эти функ­ции и «скры­ты», про­сто их час­то не за­ме­ча­ют или они ка­жут­ся слиш­ком слож­ны­ми, что­бы за них брать­ся. Мы при­от­кро­ем за­ве­су тай­ны, ок­ру­жаю­щей при­ме­не­ние эф­фек­тов, рас­ши­ре­ний и фильт­ров, что­бы в ито­ге по­лу­чить изо­бра­же­ние в сти­ле «от­си­нен­ной» ко­пии, ко­то­рая вы­гля­дит не слиш­ком иде­аль­но — в дан­ном слу­чае не­дос­тат­ки изо­бра­же­ния вве­де­ны на­ме­рен­но.&lt;br /&gt;
&lt;br /&gt;
Воз­мож­но, вы уже при­ме­ня­ли фильт­ры рань­ше — поч­ти на­вер­ня­ка, ес­ли за­ни­ма­лись в Inkscape рас­тро­вы­ми изо­бра­же­ния­ми. К рас­тру обыч­но об­ра­ща­ют­ся, ко­гда в изо­бра­же­нии на­до до­ба­вить тек­сту­ры, и, че­ст­но го­во­ря, при на­ли­чии дос­той­ной го­то­вой тек­сту­ры соз­да­ние то­го же са­мо­го эф­фек­та по­тре­бу­ет де­ся­тую до­лю на­ших уси­лий. По­че­му бы нам так и не по­сту­пить?&lt;br /&gt;
&lt;br /&gt;
Рас­тро­вые изо­бра­же­ния не толь­ко не­ма­ло ве­сят — они так­же не мас­шта­би­ру­ют­ся. При ра­бо­те с век­тор­ным изо­бра­же­ни­ем о мас­шта­бе вол­но­вать­ся не­за­чем: изо­бра­же­ние все рав­но ос­та­нет­ся уз­на­вае­мым, по­сколь­ку по­строе­но ис­клю­чи­тель­но из форм, а те со­хра­ня­ют­ся в лю­бом раз­ме­ре. По­это­му не ме­ша­ет знать, как соз­дать эф­фект рас­тро­во­го изо­бра­же­ния, ис­поль­зуя все­го лишь обыч­ные фор­мы и не­мно­го про­це­дур­ной ма­гии от Inkscape.&lt;br /&gt;
&lt;br /&gt;
Не­дос­та­ток про­це­дур­ных ме­то­дов в том, что не­ко­то­рые из них, в за­ви­си­мо­сти от вы­бран­но­го па­ра­мет­ра, мо­гут затребовать из­ряд­ные ре­сур­сы CPU на рен­де­ринг. Ви­дя, как над­са­жа­ет­ся ваш ком­пь­ю­тер, пы­та­ясь вос­соз­дать изо­бра­же­ние на эк­ра­не, вы, воз­мож­но, за­хо­ти­те не­мно­го сни­зить ин­тен­сив­ность эф­фек­тов.&lt;br /&gt;
&lt;br /&gt;
===Шаг за ша­гом: Де­ла­ем «синь­ку» изо­бра­же­ния===&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.in_opt.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt2.jpeg |right | thumb|500px|]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt1.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt3.jpeg |right | thumb|500px|]]&lt;br /&gt;
[[Файл: LXF165.tut_inkscape.i_opt4.jpeg|left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt6.jpeg |right | thumb|500px|]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt5.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt7.jpeg |right | thumb|500px|]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt8.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt10.jpeg|right | thumb|500px|]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt9.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt11.jpeg |right | thumb|500px|]]&lt;br /&gt;
LXF165.tut inkscape. opt10.jpeg &lt;br /&gt;
LXF165.tut_inkscape.i_opt8.jpeg&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape.i_opt8.jpeg</id>
		<title>Файл:LXF165.tut inkscape.i opt8.jpeg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape.i_opt8.jpeg"/>
				<updated>2018-11-18T09:00:50Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape._opt10.jpeg</id>
		<title>Файл:LXF165.tut inkscape. opt10.jpeg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape._opt10.jpeg"/>
				<updated>2018-11-18T08:48:11Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: Olkol загружена новая версия «Файл:LXF165.tut inkscape. opt10.jpeg»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8_Inkscape</id>
		<title>LXF171:Редактор графики Inkscape</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8_Inkscape"/>
				<updated>2018-11-18T08:46:48Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* Шаг за ша­гом: Де­ла­ем «синь­ку» изо­бра­же­ния */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[Категория: Учебники]]&lt;br /&gt;
== Inkscape: Ко­пия-«синька» ==&lt;br /&gt;
''Соз­дай­те весь­ма де­таль­ный ри­су­нок без осо­бо­го тру­да. Про­сты­ми эф­фек­та­ми Inkscape Ник Вейч до­би­ва­ет­ся по­тря­саю­щих ре­зуль­та­тов.''&lt;br /&gt;
[[Файл:Nick_v2_fmt.png |left | thumb|100px|'''Наш эксперт'''. Ко­гда на­чи­нал­ся LXF, его дер­жа­ли на пла­ву толь­ко скрип­ты Bash от Ни­ка Вей­ча. По­том их за­ме­ни­ли «лю­ди», и это, по мне­нию Ни­ка, ста­ло яв­ным ша­гом на­зад...]] &lt;br /&gt;
Ес­ли вам нуж­но что-то на­ри­со­вать, с Inkscape это па­ра пус­тя­ков. Inkscape не толь­ко име­ет об­шир­ный на­бор по­лез­ных и в об­щем про­стых для по­ни­ма­ния ин­ст­ру­мен­тов, но и ра­бо­та­ет с SVG, стан­дарт­ным фор­ма­том век­тор­ной гра­фи­ки. Та­лант­ли­вый ху­дож­ник смо­жет соз­да­вать в Inkscape уди­ви­тель­ные ве­щи; и да­же ес­ли у вас ру­ки-крю­ки, год­ные раз­ве что удер­жать ку­сок ме­ла, вы при из­вест­ных уси­ли­ях со­стря­пае­те впол­не при­лич­ное изо­бра­же­ние.&lt;br /&gt;
&lt;br /&gt;
Наш урок объ­яс­нит вам не­ко­то­рые «скры­тые» функ­ции ри­со­ва­ния Inkscape, по­сред­ст­вом прак­ти­че­­ско­­го уп­раж­не­ния. Да не так уж эти функ­ции и «скры­ты», про­сто их час­то не за­ме­ча­ют или они ка­жут­ся слиш­ком слож­ны­ми, что­бы за них брать­ся. Мы при­от­кро­ем за­ве­су тай­ны, ок­ру­жаю­щей при­ме­не­ние эф­фек­тов, рас­ши­ре­ний и фильт­ров, что­бы в ито­ге по­лу­чить изо­бра­же­ние в сти­ле «от­си­нен­ной» ко­пии, ко­то­рая вы­гля­дит не слиш­ком иде­аль­но — в дан­ном слу­чае не­дос­тат­ки изо­бра­же­ния вве­де­ны на­ме­рен­но.&lt;br /&gt;
&lt;br /&gt;
Воз­мож­но, вы уже при­ме­ня­ли фильт­ры рань­ше — поч­ти на­вер­ня­ка, ес­ли за­ни­ма­лись в Inkscape рас­тро­вы­ми изо­бра­же­ния­ми. К рас­тру обыч­но об­ра­ща­ют­ся, ко­гда в изо­бра­же­нии на­до до­ба­вить тек­сту­ры, и, че­ст­но го­во­ря, при на­ли­чии дос­той­ной го­то­вой тек­сту­ры соз­да­ние то­го же са­мо­го эф­фек­та по­тре­бу­ет де­ся­тую до­лю на­ших уси­лий. По­че­му бы нам так и не по­сту­пить?&lt;br /&gt;
&lt;br /&gt;
Рас­тро­вые изо­бра­же­ния не толь­ко не­ма­ло ве­сят — они так­же не мас­шта­би­ру­ют­ся. При ра­бо­те с век­тор­ным изо­бра­же­ни­ем о мас­шта­бе вол­но­вать­ся не­за­чем: изо­бра­же­ние все рав­но ос­та­нет­ся уз­на­вае­мым, по­сколь­ку по­строе­но ис­клю­чи­тель­но из форм, а те со­хра­ня­ют­ся в лю­бом раз­ме­ре. По­это­му не ме­ша­ет знать, как соз­дать эф­фект рас­тро­во­го изо­бра­же­ния, ис­поль­зуя все­го лишь обыч­ные фор­мы и не­мно­го про­це­дур­ной ма­гии от Inkscape.&lt;br /&gt;
&lt;br /&gt;
Не­дос­та­ток про­це­дур­ных ме­то­дов в том, что не­ко­то­рые из них, в за­ви­си­мо­сти от вы­бран­но­го па­ра­мет­ра, мо­гут затребовать из­ряд­ные ре­сур­сы CPU на рен­де­ринг. Ви­дя, как над­са­жа­ет­ся ваш ком­пь­ю­тер, пы­та­ясь вос­соз­дать изо­бра­же­ние на эк­ра­не, вы, воз­мож­но, за­хо­ти­те не­мно­го сни­зить ин­тен­сив­ность эф­фек­тов.&lt;br /&gt;
&lt;br /&gt;
===Шаг за ша­гом: Де­ла­ем «синь­ку» изо­бра­же­ния===&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.in_opt.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt2.jpeg |right | thumb|500px|]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt1.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt3.jpeg |right | thumb|500px|]]&lt;br /&gt;
[[Файл: LXF165.tut_inkscape.i_opt4.jpeg|left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt6.jpeg |right | thumb|500px|]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt5.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt7.jpeg |right | thumb|500px|]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape._opt8.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt10.jpeg|right | thumb|500px|]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt9.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape._opt11.jpeg |right | thumb|500px|]]&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8_Inkscape</id>
		<title>LXF171:Редактор графики Inkscape</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8_Inkscape"/>
				<updated>2018-11-18T08:39:44Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* Шаг за ша­гом: Де­ла­ем «синь­ку» изо­бра­же­ния */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[Категория: Учебники]]&lt;br /&gt;
== Inkscape: Ко­пия-«синька» ==&lt;br /&gt;
''Соз­дай­те весь­ма де­таль­ный ри­су­нок без осо­бо­го тру­да. Про­сты­ми эф­фек­та­ми Inkscape Ник Вейч до­би­ва­ет­ся по­тря­саю­щих ре­зуль­та­тов.''&lt;br /&gt;
[[Файл:Nick_v2_fmt.png |left | thumb|100px|'''Наш эксперт'''. Ко­гда на­чи­нал­ся LXF, его дер­жа­ли на пла­ву толь­ко скрип­ты Bash от Ни­ка Вей­ча. По­том их за­ме­ни­ли «лю­ди», и это, по мне­нию Ни­ка, ста­ло яв­ным ша­гом на­зад...]] &lt;br /&gt;
Ес­ли вам нуж­но что-то на­ри­со­вать, с Inkscape это па­ра пус­тя­ков. Inkscape не толь­ко име­ет об­шир­ный на­бор по­лез­ных и в об­щем про­стых для по­ни­ма­ния ин­ст­ру­мен­тов, но и ра­бо­та­ет с SVG, стан­дарт­ным фор­ма­том век­тор­ной гра­фи­ки. Та­лант­ли­вый ху­дож­ник смо­жет соз­да­вать в Inkscape уди­ви­тель­ные ве­щи; и да­же ес­ли у вас ру­ки-крю­ки, год­ные раз­ве что удер­жать ку­сок ме­ла, вы при из­вест­ных уси­ли­ях со­стря­пае­те впол­не при­лич­ное изо­бра­же­ние.&lt;br /&gt;
&lt;br /&gt;
Наш урок объ­яс­нит вам не­ко­то­рые «скры­тые» функ­ции ри­со­ва­ния Inkscape, по­сред­ст­вом прак­ти­че­­ско­­го уп­раж­не­ния. Да не так уж эти функ­ции и «скры­ты», про­сто их час­то не за­ме­ча­ют или они ка­жут­ся слиш­ком слож­ны­ми, что­бы за них брать­ся. Мы при­от­кро­ем за­ве­су тай­ны, ок­ру­жаю­щей при­ме­не­ние эф­фек­тов, рас­ши­ре­ний и фильт­ров, что­бы в ито­ге по­лу­чить изо­бра­же­ние в сти­ле «от­си­нен­ной» ко­пии, ко­то­рая вы­гля­дит не слиш­ком иде­аль­но — в дан­ном слу­чае не­дос­тат­ки изо­бра­же­ния вве­де­ны на­ме­рен­но.&lt;br /&gt;
&lt;br /&gt;
Воз­мож­но, вы уже при­ме­ня­ли фильт­ры рань­ше — поч­ти на­вер­ня­ка, ес­ли за­ни­ма­лись в Inkscape рас­тро­вы­ми изо­бра­же­ния­ми. К рас­тру обыч­но об­ра­ща­ют­ся, ко­гда в изо­бра­же­нии на­до до­ба­вить тек­сту­ры, и, че­ст­но го­во­ря, при на­ли­чии дос­той­ной го­то­вой тек­сту­ры соз­да­ние то­го же са­мо­го эф­фек­та по­тре­бу­ет де­ся­тую до­лю на­ших уси­лий. По­че­му бы нам так и не по­сту­пить?&lt;br /&gt;
&lt;br /&gt;
Рас­тро­вые изо­бра­же­ния не толь­ко не­ма­ло ве­сят — они так­же не мас­шта­би­ру­ют­ся. При ра­бо­те с век­тор­ным изо­бра­же­ни­ем о мас­шта­бе вол­но­вать­ся не­за­чем: изо­бра­же­ние все рав­но ос­та­нет­ся уз­на­вае­мым, по­сколь­ку по­строе­но ис­клю­чи­тель­но из форм, а те со­хра­ня­ют­ся в лю­бом раз­ме­ре. По­это­му не ме­ша­ет знать, как соз­дать эф­фект рас­тро­во­го изо­бра­же­ния, ис­поль­зуя все­го лишь обыч­ные фор­мы и не­мно­го про­це­дур­ной ма­гии от Inkscape.&lt;br /&gt;
&lt;br /&gt;
Не­дос­та­ток про­це­дур­ных ме­то­дов в том, что не­ко­то­рые из них, в за­ви­си­мо­сти от вы­бран­но­го па­ра­мет­ра, мо­гут затребовать из­ряд­ные ре­сур­сы CPU на рен­де­ринг. Ви­дя, как над­са­жа­ет­ся ваш ком­пь­ю­тер, пы­та­ясь вос­соз­дать изо­бра­же­ние на эк­ра­не, вы, воз­мож­но, за­хо­ти­те не­мно­го сни­зить ин­тен­сив­ность эф­фек­тов.&lt;br /&gt;
&lt;br /&gt;
===Шаг за ша­гом: Де­ла­ем «синь­ку» изо­бра­же­ния===&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.in_opt.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt2.jpeg |right | thumb|500px|]]&lt;br /&gt;
[[LXF165.tut_inkscape.i_opt1.jpeg.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt3.jpeg.jpeg |right | thumb|500px|]]&lt;br /&gt;
&lt;br /&gt;
[[Файл: LXF165.tut_inkscape.i_opt4.jpeg|left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt6.jpeg |right | thumb|500px|]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt5.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt7.jpeg |right | thumb|500px|]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape._opt8.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt10.jpeg|right | thumb|500px|]]&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt9.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape._opt11.jpeg |right | thumb|500px|]]&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape._opt11.jpeg</id>
		<title>Файл:LXF165.tut inkscape. opt11.jpeg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape._opt11.jpeg"/>
				<updated>2018-11-18T08:39:25Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape.i_opt9.jpeg</id>
		<title>Файл:LXF165.tut inkscape.i opt9.jpeg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape.i_opt9.jpeg"/>
				<updated>2018-11-18T08:38:31Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape._opt10.jpeg</id>
		<title>Файл:LXF165.tut inkscape. opt10.jpeg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape._opt10.jpeg"/>
				<updated>2018-11-18T08:33:57Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape.i_opt7.jpeg</id>
		<title>Файл:LXF165.tut inkscape.i opt7.jpeg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape.i_opt7.jpeg"/>
				<updated>2018-11-18T08:32:17Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape.i_opt5.jpeg</id>
		<title>Файл:LXF165.tut inkscape.i opt5.jpeg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape.i_opt5.jpeg"/>
				<updated>2018-11-18T08:31:24Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape.i_opt6.jpeg</id>
		<title>Файл:LXF165.tut inkscape.i opt6.jpeg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape.i_opt6.jpeg"/>
				<updated>2018-11-18T08:29:52Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape.i_opt4.jpeg</id>
		<title>Файл:LXF165.tut inkscape.i opt4.jpeg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape.i_opt4.jpeg"/>
				<updated>2018-11-18T08:27:04Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape.i_opt3.jpeg</id>
		<title>Файл:LXF165.tut inkscape.i opt3.jpeg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape.i_opt3.jpeg"/>
				<updated>2018-11-18T08:25:38Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape.i_opt1.jpeg</id>
		<title>Файл:LXF165.tut inkscape.i opt1.jpeg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape.i_opt1.jpeg"/>
				<updated>2018-11-18T08:24:40Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape.i_opt2.jpeg</id>
		<title>Файл:LXF165.tut inkscape.i opt2.jpeg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape.i_opt2.jpeg"/>
				<updated>2018-11-18T08:20:55Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8_Inkscape</id>
		<title>LXF171:Редактор графики Inkscape</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8_Inkscape"/>
				<updated>2018-11-18T08:20:33Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* Шаг за ша­гом: Де­ла­ем «синь­ку» изо­бра­же­ния */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[Категория: Учебники]]&lt;br /&gt;
== Inkscape: Ко­пия-«синька» ==&lt;br /&gt;
''Соз­дай­те весь­ма де­таль­ный ри­су­нок без осо­бо­го тру­да. Про­сты­ми эф­фек­та­ми Inkscape Ник Вейч до­би­ва­ет­ся по­тря­саю­щих ре­зуль­та­тов.''&lt;br /&gt;
[[Файл:Nick_v2_fmt.png |left | thumb|100px|'''Наш эксперт'''. Ко­гда на­чи­нал­ся LXF, его дер­жа­ли на пла­ву толь­ко скрип­ты Bash от Ни­ка Вей­ча. По­том их за­ме­ни­ли «лю­ди», и это, по мне­нию Ни­ка, ста­ло яв­ным ша­гом на­зад...]] &lt;br /&gt;
Ес­ли вам нуж­но что-то на­ри­со­вать, с Inkscape это па­ра пус­тя­ков. Inkscape не толь­ко име­ет об­шир­ный на­бор по­лез­ных и в об­щем про­стых для по­ни­ма­ния ин­ст­ру­мен­тов, но и ра­бо­та­ет с SVG, стан­дарт­ным фор­ма­том век­тор­ной гра­фи­ки. Та­лант­ли­вый ху­дож­ник смо­жет соз­да­вать в Inkscape уди­ви­тель­ные ве­щи; и да­же ес­ли у вас ру­ки-крю­ки, год­ные раз­ве что удер­жать ку­сок ме­ла, вы при из­вест­ных уси­ли­ях со­стря­пае­те впол­не при­лич­ное изо­бра­же­ние.&lt;br /&gt;
&lt;br /&gt;
Наш урок объ­яс­нит вам не­ко­то­рые «скры­тые» функ­ции ри­со­ва­ния Inkscape, по­сред­ст­вом прак­ти­че­­ско­­го уп­раж­не­ния. Да не так уж эти функ­ции и «скры­ты», про­сто их час­то не за­ме­ча­ют или они ка­жут­ся слиш­ком слож­ны­ми, что­бы за них брать­ся. Мы при­от­кро­ем за­ве­су тай­ны, ок­ру­жаю­щей при­ме­не­ние эф­фек­тов, рас­ши­ре­ний и фильт­ров, что­бы в ито­ге по­лу­чить изо­бра­же­ние в сти­ле «от­си­нен­ной» ко­пии, ко­то­рая вы­гля­дит не слиш­ком иде­аль­но — в дан­ном слу­чае не­дос­тат­ки изо­бра­же­ния вве­де­ны на­ме­рен­но.&lt;br /&gt;
&lt;br /&gt;
Воз­мож­но, вы уже при­ме­ня­ли фильт­ры рань­ше — поч­ти на­вер­ня­ка, ес­ли за­ни­ма­лись в Inkscape рас­тро­вы­ми изо­бра­же­ния­ми. К рас­тру обыч­но об­ра­ща­ют­ся, ко­гда в изо­бра­же­нии на­до до­ба­вить тек­сту­ры, и, че­ст­но го­во­ря, при на­ли­чии дос­той­ной го­то­вой тек­сту­ры соз­да­ние то­го же са­мо­го эф­фек­та по­тре­бу­ет де­ся­тую до­лю на­ших уси­лий. По­че­му бы нам так и не по­сту­пить?&lt;br /&gt;
&lt;br /&gt;
Рас­тро­вые изо­бра­же­ния не толь­ко не­ма­ло ве­сят — они так­же не мас­шта­би­ру­ют­ся. При ра­бо­те с век­тор­ным изо­бра­же­ни­ем о мас­шта­бе вол­но­вать­ся не­за­чем: изо­бра­же­ние все рав­но ос­та­нет­ся уз­на­вае­мым, по­сколь­ку по­строе­но ис­клю­чи­тель­но из форм, а те со­хра­ня­ют­ся в лю­бом раз­ме­ре. По­это­му не ме­ша­ет знать, как соз­дать эф­фект рас­тро­во­го изо­бра­же­ния, ис­поль­зуя все­го лишь обыч­ные фор­мы и не­мно­го про­це­дур­ной ма­гии от Inkscape.&lt;br /&gt;
&lt;br /&gt;
Не­дос­та­ток про­це­дур­ных ме­то­дов в том, что не­ко­то­рые из них, в за­ви­си­мо­сти от вы­бран­но­го па­ра­мет­ра, мо­гут затребовать из­ряд­ные ре­сур­сы CPU на рен­де­ринг. Ви­дя, как над­са­жа­ет­ся ваш ком­пь­ю­тер, пы­та­ясь вос­соз­дать изо­бра­же­ние на эк­ра­не, вы, воз­мож­но, за­хо­ти­те не­мно­го сни­зить ин­тен­сив­ность эф­фек­тов.&lt;br /&gt;
&lt;br /&gt;
===Шаг за ша­гом: Де­ла­ем «синь­ку» изо­бра­же­ния===&lt;br /&gt;
[[Файл:LXF165.tut_inkscape.in_opt.jpeg |left | thumb|500px|]] &lt;br /&gt;
[[Файл:LXF165.tut_inkscape.i_opt2.jpeg |right | thumb|500px|]]&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape.in_opt.jpeg</id>
		<title>Файл:LXF165.tut inkscape.in opt.jpeg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF165.tut_inkscape.in_opt.jpeg"/>
				<updated>2018-11-18T08:16:18Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8_Inkscape</id>
		<title>LXF171:Редактор графики Inkscape</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8_Inkscape"/>
				<updated>2018-11-18T08:14:27Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: /* Inkscape: Ко­пия-«синька» */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[Категория: Учебники]]&lt;br /&gt;
== Inkscape: Ко­пия-«синька» ==&lt;br /&gt;
''Соз­дай­те весь­ма де­таль­ный ри­су­нок без осо­бо­го тру­да. Про­сты­ми эф­фек­та­ми Inkscape Ник Вейч до­би­ва­ет­ся по­тря­саю­щих ре­зуль­та­тов.''&lt;br /&gt;
[[Файл:Nick_v2_fmt.png |left | thumb|100px|'''Наш эксперт'''. Ко­гда на­чи­нал­ся LXF, его дер­жа­ли на пла­ву толь­ко скрип­ты Bash от Ни­ка Вей­ча. По­том их за­ме­ни­ли «лю­ди», и это, по мне­нию Ни­ка, ста­ло яв­ным ша­гом на­зад...]] &lt;br /&gt;
Ес­ли вам нуж­но что-то на­ри­со­вать, с Inkscape это па­ра пус­тя­ков. Inkscape не толь­ко име­ет об­шир­ный на­бор по­лез­ных и в об­щем про­стых для по­ни­ма­ния ин­ст­ру­мен­тов, но и ра­бо­та­ет с SVG, стан­дарт­ным фор­ма­том век­тор­ной гра­фи­ки. Та­лант­ли­вый ху­дож­ник смо­жет соз­да­вать в Inkscape уди­ви­тель­ные ве­щи; и да­же ес­ли у вас ру­ки-крю­ки, год­ные раз­ве что удер­жать ку­сок ме­ла, вы при из­вест­ных уси­ли­ях со­стря­пае­те впол­не при­лич­ное изо­бра­же­ние.&lt;br /&gt;
&lt;br /&gt;
Наш урок объ­яс­нит вам не­ко­то­рые «скры­тые» функ­ции ри­со­ва­ния Inkscape, по­сред­ст­вом прак­ти­че­­ско­­го уп­раж­не­ния. Да не так уж эти функ­ции и «скры­ты», про­сто их час­то не за­ме­ча­ют или они ка­жут­ся слиш­ком слож­ны­ми, что­бы за них брать­ся. Мы при­от­кро­ем за­ве­су тай­ны, ок­ру­жаю­щей при­ме­не­ние эф­фек­тов, рас­ши­ре­ний и фильт­ров, что­бы в ито­ге по­лу­чить изо­бра­же­ние в сти­ле «от­си­нен­ной» ко­пии, ко­то­рая вы­гля­дит не слиш­ком иде­аль­но — в дан­ном слу­чае не­дос­тат­ки изо­бра­же­ния вве­де­ны на­ме­рен­но.&lt;br /&gt;
&lt;br /&gt;
Воз­мож­но, вы уже при­ме­ня­ли фильт­ры рань­ше — поч­ти на­вер­ня­ка, ес­ли за­ни­ма­лись в Inkscape рас­тро­вы­ми изо­бра­же­ния­ми. К рас­тру обыч­но об­ра­ща­ют­ся, ко­гда в изо­бра­же­нии на­до до­ба­вить тек­сту­ры, и, че­ст­но го­во­ря, при на­ли­чии дос­той­ной го­то­вой тек­сту­ры соз­да­ние то­го же са­мо­го эф­фек­та по­тре­бу­ет де­ся­тую до­лю на­ших уси­лий. По­че­му бы нам так и не по­сту­пить?&lt;br /&gt;
&lt;br /&gt;
Рас­тро­вые изо­бра­же­ния не толь­ко не­ма­ло ве­сят — они так­же не мас­шта­би­ру­ют­ся. При ра­бо­те с век­тор­ным изо­бра­же­ни­ем о мас­шта­бе вол­но­вать­ся не­за­чем: изо­бра­же­ние все рав­но ос­та­нет­ся уз­на­вае­мым, по­сколь­ку по­строе­но ис­клю­чи­тель­но из форм, а те со­хра­ня­ют­ся в лю­бом раз­ме­ре. По­это­му не ме­ша­ет знать, как соз­дать эф­фект рас­тро­во­го изо­бра­же­ния, ис­поль­зуя все­го лишь обыч­ные фор­мы и не­мно­го про­це­дур­ной ма­гии от Inkscape.&lt;br /&gt;
&lt;br /&gt;
Не­дос­та­ток про­це­дур­ных ме­то­дов в том, что не­ко­то­рые из них, в за­ви­си­мо­сти от вы­бран­но­го па­ра­мет­ра, мо­гут затребовать из­ряд­ные ре­сур­сы CPU на рен­де­ринг. Ви­дя, как над­са­жа­ет­ся ваш ком­пь­ю­тер, пы­та­ясь вос­соз­дать изо­бра­же­ние на эк­ра­не, вы, воз­мож­но, за­хо­ти­те не­мно­го сни­зить ин­тен­сив­ность эф­фек­тов.&lt;br /&gt;
&lt;br /&gt;
===Шаг за ша­гом: Де­ла­ем «синь­ку» изо­бра­же­ния===&lt;br /&gt;
[[Файл: |left | thumb|500px|]] &lt;br /&gt;
[[Файл: |right | thumb|500px|]]&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Nick_v2_fmt.png</id>
		<title>Файл:Nick v2 fmt.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Nick_v2_fmt.png"/>
				<updated>2018-11-18T08:14:15Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8_Inkscape</id>
		<title>LXF171:Редактор графики Inkscape</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8_Inkscape"/>
				<updated>2018-11-18T08:13:02Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: Новая страница: « Категория: Учебники == Inkscape: Ко­пия-«синька» == ''Соз­дай­те весь­ма де­таль­ный ри­су­…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[Категория: Учебники]]&lt;br /&gt;
== Inkscape: Ко­пия-«синька» ==&lt;br /&gt;
''Соз­дай­те весь­ма де­таль­ный ри­су­нок без осо­бо­го тру­да. Про­сты­ми эф­фек­та­ми Inkscape Ник Вейч до­би­ва­ет­ся по­тря­саю­щих ре­зуль­та­тов.''&lt;br /&gt;
[[Файл: |left | thumb|100px|'''Наш эксперт'''. Ко­гда на­чи­нал­ся LXF, его дер­жа­ли на пла­ву толь­ко скрип­ты Bash от Ни­ка Вей­ча. По­том их за­ме­ни­ли «лю­ди», и это, по мне­нию Ни­ка, ста­ло яв­ным ша­гом на­зад...]] &lt;br /&gt;
Ес­ли вам нуж­но что-то на­ри­со­вать, с Inkscape это па­ра пус­тя­ков. Inkscape не толь­ко име­ет об­шир­ный на­бор по­лез­ных и в об­щем про­стых для по­ни­ма­ния ин­ст­ру­мен­тов, но и ра­бо­та­ет с SVG, стан­дарт­ным фор­ма­том век­тор­ной гра­фи­ки. Та­лант­ли­вый ху­дож­ник смо­жет соз­да­вать в Inkscape уди­ви­тель­ные ве­щи; и да­же ес­ли у вас ру­ки-крю­ки, год­ные раз­ве что удер­жать ку­сок ме­ла, вы при из­вест­ных уси­ли­ях со­стря­пае­те впол­не при­лич­ное изо­бра­же­ние.&lt;br /&gt;
&lt;br /&gt;
Наш урок объ­яс­нит вам не­ко­то­рые «скры­тые» функ­ции ри­со­ва­ния Inkscape, по­сред­ст­вом прак­ти­че­­ско­­го уп­раж­не­ния. Да не так уж эти функ­ции и «скры­ты», про­сто их час­то не за­ме­ча­ют или они ка­жут­ся слиш­ком слож­ны­ми, что­бы за них брать­ся. Мы при­от­кро­ем за­ве­су тай­ны, ок­ру­жаю­щей при­ме­не­ние эф­фек­тов, рас­ши­ре­ний и фильт­ров, что­бы в ито­ге по­лу­чить изо­бра­же­ние в сти­ле «от­си­нен­ной» ко­пии, ко­то­рая вы­гля­дит не слиш­ком иде­аль­но — в дан­ном слу­чае не­дос­тат­ки изо­бра­же­ния вве­де­ны на­ме­рен­но.&lt;br /&gt;
&lt;br /&gt;
Воз­мож­но, вы уже при­ме­ня­ли фильт­ры рань­ше — поч­ти на­вер­ня­ка, ес­ли за­ни­ма­лись в Inkscape рас­тро­вы­ми изо­бра­же­ния­ми. К рас­тру обыч­но об­ра­ща­ют­ся, ко­гда в изо­бра­же­нии на­до до­ба­вить тек­сту­ры, и, че­ст­но го­во­ря, при на­ли­чии дос­той­ной го­то­вой тек­сту­ры соз­да­ние то­го же са­мо­го эф­фек­та по­тре­бу­ет де­ся­тую до­лю на­ших уси­лий. По­че­му бы нам так и не по­сту­пить?&lt;br /&gt;
&lt;br /&gt;
Рас­тро­вые изо­бра­же­ния не толь­ко не­ма­ло ве­сят — они так­же не мас­шта­би­ру­ют­ся. При ра­бо­те с век­тор­ным изо­бра­же­ни­ем о мас­шта­бе вол­но­вать­ся не­за­чем: изо­бра­же­ние все рав­но ос­та­нет­ся уз­на­вае­мым, по­сколь­ку по­строе­но ис­клю­чи­тель­но из форм, а те со­хра­ня­ют­ся в лю­бом раз­ме­ре. По­это­му не ме­ша­ет знать, как соз­дать эф­фект рас­тро­во­го изо­бра­же­ния, ис­поль­зуя все­го лишь обыч­ные фор­мы и не­мно­го про­це­дур­ной ма­гии от Inkscape.&lt;br /&gt;
&lt;br /&gt;
Не­дос­та­ток про­це­дур­ных ме­то­дов в том, что не­ко­то­рые из них, в за­ви­си­мо­сти от вы­бран­но­го па­ра­мет­ра, мо­гут затребовать из­ряд­ные ре­сур­сы CPU на рен­де­ринг. Ви­дя, как над­са­жа­ет­ся ваш ком­пь­ю­тер, пы­та­ясь вос­соз­дать изо­бра­же­ние на эк­ра­не, вы, воз­мож­но, за­хо­ти­те не­мно­го сни­зить ин­тен­сив­ность эф­фек­тов.&lt;br /&gt;
&lt;br /&gt;
===Шаг за ша­гом: Де­ла­ем «синь­ку» изо­бра­же­ния===&lt;br /&gt;
[[Файл: |left | thumb|500px|]] &lt;br /&gt;
[[Файл: |right | thumb|500px|]]&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:%D0%9E%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B0_%D0%9F%D0%9E</id>
		<title>LXF171:Обеспечение качества ПО</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:%D0%9E%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B0_%D0%9F%D0%9E"/>
				<updated>2018-11-18T06:57:33Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Учебники]]&lt;br /&gt;
== Тес­ти­ро­ва­ние: Да­ешь ка­че­ст­во ПО ==&lt;br /&gt;
''Джо­но Бэ­кон ис­сле­ду­ет мир ав­то­ма­ти­че­ско­го и руч­но­го тес­ти­ро­ва­ния, что­бы по­мочь вам сде­лать свое при­ло­же­ние проч­ным, как ска­ла.''&lt;br /&gt;
[[Файл: |left | thumb|100px|'''Наш эксперт''' Джо­но Бэ­кон — ме­нед­жер со­об­ще­ст­ва Ubuntu, ав­тор The Art Of Community [Ис­кус­ст­во Со­об­ще­ст­ва] и ос­но­ва­тель еже­год­ной встре­чи Community Leadership Summit.]]&lt;br /&gt;
Ка­че­­ст­во — клю­че­вой фак­тор для лю­бой про­грам­мы. Не­важ­но, на­сколь­ко со­вре­мен­ны ва­ши функ­ции, на­сколь­ко впе­чат­ля­ет ваш ин­тер­фейс или на­сколь­ко уни­каль­но ва­ше при­ло­же­ние: ес­ли оно не­на­деж­но ра­бо­та­ет, им пе­ре­ста­нут поль­зо­вать­ся.&lt;br /&gt;
&lt;br /&gt;
Од­на­ко ка­че­­ст­во важ­но не толь­ко для обес­пе­че­ния поль­зо­ва­те­лю при­ят­ной ра­бо­ты — оно важ­но так­же для то­го, что­бы ва­ше со­об­ще­ст­во чув­ст­во­ва­ло се­бя сча­ст­ли­вым и пре­дан­ным ва­ше­му при­ло­же­нию. Пло­хое ка­че­­ст­во от­ра­жа­ет­ся на всех, кто от­стаи­вает ин­те­ре­сы со­об­ще­ст­ва, а вам ведь не на­до, что­бы ва­ше со­об­ще­ст­во по­сто­ян­но по­лу­ча­ло жа­ло­бы на пло­хое ка­че­­ст­во про­грам­мы и на ошиб­ки в ней.&lt;br /&gt;
&lt;br /&gt;
Соз­да­ние вы­со­ко­ка­че­­ст­вен­но­го ПО оз­на­ча­ет по­ни­ма­ние про­цес­сов Quality Assurance (QA, Обес­пе­че­ние ка­че­­ст­ва). Не­ко­то­рые из вас, воз­мож­но, уже зна­ко­мы с QA, и ас­со­ции­ру­ют его с от­сле­жи­ва­ни­ем оши­бок и тес­ти­ро­ва­ни­ем про­грамм. В це­лом это пра­виль­но, но эф­фек­тив­ное QA в мень­шей сте­пе­ни от­но­сит­ся к со­об­ще­ни­ям о де­фек­тах и от­сле­жи­ва­нию их, а в боль­шей сте­пе­ни — к обес­пе­че­нию ка­че­­ст­ва ва­ше­го ПО. Ины­ми сло­ва­ми, луч­ше по­ста­рать­ся обес­пе­чить вы­со­кое ка­че­­ст­во вы­пус­кае­мо­го ПО, что­бы в нем во­об­ще не бы­ло оши­бок, а не от­лич­ные про­цес­сы для со­об­ще­ния об об­на­ру­жен­ных ошиб­ках.&lt;br /&gt;
&lt;br /&gt;
Что­бы обес­пе­чить ка­че­­ст­во, тре­бу­ет­ся эф­фек­тив­ное тес­ти­ро­ва­ние ко­да, из­го­няю­щее из ко­да как мож­но боль­ше оши­бок. И эта за­да­ча на­мно­го слож­нее, чем мож­но ожи­дать. С од­ной сто­ро­ны, все­гда мож­но про­тес­ти­ро­вать раз­ные час­ти ко­да и про­ве­рить, ра­бо­та­ют ли они, как по­ло­же­но; но как быть в тех слу­ча­ях, ко­гда код ра­бо­та­ет в не­обыч­ных ус­ло­ви­ях или с не­обыч­ны­ми дан­ны­ми? При этом воз­ни­ка­ют ху­же все­го от­сле­жи­вае­мые про­бле­мы, а так­же гон­ки, ко­гда раз­ные вет­ки ко­да ис­пол­ня­ют­ся в раз­ное вре­мя.&lt;br /&gt;
&lt;br /&gt;
Что­бы до­бить­ся на­шей це­ли, обес­пе­че­ния ка­че­­ст­ва, луч­шим ме­то­дом бу­дет при­ме­нить мно­го­гран­ный под­ход к тес­ти­ро­ва­нию. В идеа­ле на­до про­тес­ти­ро­вать наш код по­блоч­но, а так­же про­тес­ти­ро­вать все функ­ции с точ­ки зре­ния поль­зо­ва­те­ля. Ог­ра­ни­чив­шись од­ной из этих за­дач, долж­ный уро­вень ка­че­­ст­ва вы не обес­пе­чи­те; а вы­пол­нив обе, ста­не­те го­раз­до бли­же к нир­ва­не ста­биль­но­сти ПО.&lt;br /&gt;
&lt;br /&gt;
===По­блоч­ное тес­ти­ро­ва­ние===&lt;br /&gt;
&lt;br /&gt;
Са­мая важ­ная фор­ма тес­ти­ро­ва­ния, ко­то­рую нуж­но встро­ить в ва­ше при­ло­же­ние, это блоч­ное тес­ти­ро­ва­ние. Ог­ром­ное ко­ли­че­­ст­во про­грамм на­пи­са­но на функ­цио­наль­ных объ­ект­но-ори­ен­ти­ро­ван­ных язы­ках про­грам­ми­ро­ва­ния, в ко­то­рых код раз­би­ва­ет­ся на функ­ции мно­го­крат­но­го ис­поль­зо­ва­ния, ко­то­рые слу­жат спе­ци­аль­ным це­лям. На­при­мер, у вас, воз­мож­но, есть функ­ция, ко­то­рая пи­шет файл на диск, или кон­вер­ти­ру­ет дан­ные в дру­гой тип, или воз­вра­ща­ет web-стра­ни­цу с web-сер­ве­ра. По­блоч­ное тес­ти­ро­ва­ние раз­ра­бо­та­но для то­го, что­бы все эти раз­но­род­ные функ­ции ра­бо­та­ли как по­ла­га­ет­ся и до­би­ва­лись же­лае­мо­го ре­зуль­та­та.&lt;br /&gt;
&lt;br /&gt;
Об­щая фи­ло­со­фия по­блоч­но­го тес­ти­ро­ва­ния за­клю­ча­ет­ся в том, что у вас есть тест для ка­ж­дой функ­ции в ва­шем при­ло­же­нии. Во мно­гих про­грамм­ных про­ек­тах но­вую функ­цию не при­мут в ко­до­вую ба­зу про­ек­та, по­ка не бу­дет про­тес­ти­ро­ван со­от­вет­ст­вую­щий блок. Ана­ло­гич­но, но­вые функ­ции и по­прав­ки не по­па­дут в про­грам­му, по­ка не прой­дут блоч­но­го тес­ти­ро­ва­ния. Это обес­пе­чи­ва­ет на­деж­ный спо­соб про­вер­ки, что но­вые кус­ки ко­да не­ча­ян­но не на­ру­шат уже отлаженные функ­ции ва­шей программы.&lt;br /&gt;
&lt;br /&gt;
Есть мно­же­ст­во раз­ных сред для на­пи­са­ния блоч­ных тес­тов, и не­уди­ви­тель­но, что мно­гие из них от­но­сят­ся имен­но к то­му язы­ку, на ко­то­ром на­пи­сан код. В этой ста­тье я по­ка­жу вам, как ис­поль­зо­вать мо­дуль unittest, яв­ляю­щий­ся ча­стью Python; од­на­ко струк­ту­ра соз­да­ния тес­та мо­жет ис­поль­зо­вать­ся в боль­шин­ст­ве дру­гих тес­то­вых сред.&lt;br /&gt;
&lt;br /&gt;
Пре­ж­де чем при­сту­пать к соз­да­нию тес­та, пред­по­ло­жим, что у нас есть про­стой класс со сле­дую­щи­ми функ­ция­ми:&lt;br /&gt;
&lt;br /&gt;
class MyClass():&lt;br /&gt;
&lt;br /&gt;
def return_true(self):&lt;br /&gt;
&lt;br /&gt;
return True&lt;br /&gt;
&lt;br /&gt;
def get_version(self):&lt;br /&gt;
&lt;br /&gt;
version = “1.0”&lt;br /&gt;
&lt;br /&gt;
return version&lt;br /&gt;
&lt;br /&gt;
def get_file(self, fileloc):&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
&lt;br /&gt;
with open(fileloc) as f: return True&lt;br /&gt;
&lt;br /&gt;
except IOError as e:&lt;br /&gt;
&lt;br /&gt;
return False&lt;br /&gt;
&lt;br /&gt;
Функ­ций здесь три:&lt;br /&gt;
&lt;br /&gt;
» return_true() В та­ком ви­де это са­мая бес­полез­ная из всех ко­гда-ли­бо на­пи­сан­ных функ­ций; но вы пред­ставь­те, что она де­ла­ет не­что осмысленное и за­тем воз­вра­ща­ет True.&lt;br /&gt;
&lt;br /&gt;
» get_version() Эта функ­ция про­сто воз­вра­ща­ет те­ку­щую вер­сию ПО в ка­че­­ст­ве стро­ко­вой пе­ре­мен­ной. Она мо­жет быть по­лез­на при на­пи­са­нии API, что­бы кли­ент взял пра­виль­ную вер­сию API.&lt;br /&gt;
&lt;br /&gt;
» get_file() Эта функ­ция про­ве­ря­ет, су­ще­ст­ву­ет ли ука­зан­ный файл.&lt;br /&gt;
&lt;br /&gt;
Все эти функ­ции воз­вра­ща­ют дан­ные, и нам на­до на­пи­сать тест бло­ка, про­ве­ряю­щий, что вер­ну­лись пра­виль­ные дан­ные. Ес­ли воз­вра­ща­ют­ся дру­гие дан­ные (на­при­мер, False вме­сто True), зна­чит, блоч­ный тест не про­хо­дит.&lt;br /&gt;
&lt;br /&gt;
Да­вай­те сна­ча­ла до­ба­вим ут­вер­жде­ния import, ко­то­рые мы бу­дем ис­поль­зо­вать в этой ста­тье, а по­том до­ба­вим при­ве­ден­ный вы­ше класс:&lt;br /&gt;
&lt;br /&gt;
import unittest&lt;br /&gt;
&lt;br /&gt;
import tempfile&lt;br /&gt;
&lt;br /&gt;
import os, sys, shutil&lt;br /&gt;
&lt;br /&gt;
class MyClass():&lt;br /&gt;
&lt;br /&gt;
def return_true(self):&lt;br /&gt;
&lt;br /&gt;
return True&lt;br /&gt;
&lt;br /&gt;
def get_version(self):&lt;br /&gt;
&lt;br /&gt;
version = “1.0”&lt;br /&gt;
&lt;br /&gt;
return version&lt;br /&gt;
&lt;br /&gt;
def get_file(self, fileloc):&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
&lt;br /&gt;
with open(fileloc) as f: return True&lt;br /&gt;
&lt;br /&gt;
except IOError as e:&lt;br /&gt;
&lt;br /&gt;
return False&lt;br /&gt;
&lt;br /&gt;
Теперь создайте свой первый тест, в данном случае — для функции return_true(). Под кодом, который мы только что добавили (код см. выше), вставьте следующее:&lt;br /&gt;
&lt;br /&gt;
class Tests(unittest.TestCase):&lt;br /&gt;
&lt;br /&gt;
def test_return_true(self):&lt;br /&gt;
&lt;br /&gt;
myclass = MyClass()&lt;br /&gt;
&lt;br /&gt;
value = myclass.return_true()&lt;br /&gt;
&lt;br /&gt;
self.assertTrue(value)&lt;br /&gt;
&lt;br /&gt;
if __name__ == ‘__main__’:&lt;br /&gt;
&lt;br /&gt;
unittest.main()&lt;br /&gt;
&lt;br /&gt;
Здесь мы создаем новый класс unittest под названием Tests. Внутри этого класса мы создаем блочный тест для каждой функции. Как ви­ди­те, мы добавили наш первый блочный тест, под названием test_return_true().&lt;br /&gt;
&lt;br /&gt;
Для начала мы создаем экземпляр класса MyClass, который тестируется, а затем запускаем функцию и пишем результат в value.&lt;br /&gt;
&lt;br /&gt;
Следующий наш шаг — про­вер­ка, являются ли данные в value тем, что мы ожидали. С этой це­лью мы выполняем утверждение. Утверждение проверяет, соответствует ли пе­ре­да­вае­мая ему величина тому, что оно ожидает. В этом тесте мы используем assertTrue(), являющееся частью библиотеки unittest, чтобы проверить, является ли value истинной (True), как мы рассчитываем.&lt;br /&gt;
&lt;br /&gt;
Затем в кон­це исходника мы запускаем функцию main() модуля unittest, чтобы провести тесты.&lt;br /&gt;
&lt;br /&gt;
Что­бы запустить свои тесты и узнать, пройдут ли они, просто выполните скрипт, и вы должны увидеть следующее:&lt;br /&gt;
&lt;br /&gt;
jono@forge:~/Desktop$ python tests.py .&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Ran 1 test in 0.000s&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Здесь мы запустили один тест, и он прошел отлично. ‘.’ над линией показывает, что тест пройден. Чтобы проверить, не провалился ли тест, измените return True на return False в функции return_true() и снова запустите скрипт. Теперь на экране должно появиться&lt;br /&gt;
&lt;br /&gt;
jono@forge:~/Desktop$ python tests.py&lt;br /&gt;
&lt;br /&gt;
F&lt;br /&gt;
&lt;br /&gt;
==================================================&lt;br /&gt;
&lt;br /&gt;
===================&lt;br /&gt;
&lt;br /&gt;
FAIL: test_return_true (__main__.Tests)&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
&lt;br /&gt;
File “tests.py”, line 35, in test_return_true&lt;br /&gt;
&lt;br /&gt;
self.assertTrue(value)&lt;br /&gt;
&lt;br /&gt;
AssertionError: False is not true&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Ran 1 test in 0.000s&lt;br /&gt;
&lt;br /&gt;
FAILED (failures=1)&lt;br /&gt;
&lt;br /&gt;
Здесь тест не пройден, и указана причина провала.&lt;br /&gt;
&lt;br /&gt;
Давайте напишем второй тест, чтобы проверить, возвращает ли get_version() правильную версию. В этом случае нам не нужно тестировать кон­крет­но версию 1.0, поскольку версии регулярно из­ме­ня­ют­ся. Вместо этого сле­ду­ет убедиться, что функция возвращает переменную, например, 1.0 или 1.5, и мы будем считать эту переменную соответствующим номером версии (поскольку никакой другой код не вносит данные в эту функцию).&lt;br /&gt;
&lt;br /&gt;
Чтобы добавить дан­ный тест, вставьте та­кую функцию в класс Tests:&lt;br /&gt;
&lt;br /&gt;
def test_get_version(self):&lt;br /&gt;
&lt;br /&gt;
myclass = MyClass()&lt;br /&gt;
&lt;br /&gt;
version = myclass.get_version()&lt;br /&gt;
&lt;br /&gt;
self.assertTrue(isinstance(version, basestring))&lt;br /&gt;
&lt;br /&gt;
Здесь мы снова создали экземпляр класса MyClass, запустили get_version() и вывели результат в version.&lt;br /&gt;
&lt;br /&gt;
Теперь нам надо протестировать, является ли version переменной. Для этого мы используем isinstance(), чтобы проверить, относится ли version к формату Basestring, и, если это так, то вернется True; затем мы проверим это в функции assertTrue(), чтобы вернуть результат утверждения. Сно­ва запустив скрипт, мы увидим:&lt;br /&gt;
&lt;br /&gt;
jono@forge:~/Desktop$ python tests.py&lt;br /&gt;
&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Ran 2 tests in 0.000s&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Здесь видно, что проведено два теста, и над ли­ни­ей поставлено по точке за каждый удачно пройденный тест.&lt;br /&gt;
&lt;br /&gt;
И снова, если вы хотите, чтобы тест не про­шел, от­ре­дак­ти­руй­те исходную функцию, на сей раз изменив “1.0” на 1.0 (удалите кавычки, превратив единицу в число вместо переменной) и перезапустите скрипт, чтобы увидеть провал.&lt;br /&gt;
&lt;br /&gt;
Для нашего финального теста я хочу поговорить о важных частях написания блочных тестов — подготовке и закрытии.&lt;br /&gt;
&lt;br /&gt;
Вы, возможно, заметили, что наши функции не работают с реальными данными. Например, если нужно провести блочный тест, чтобы увидеть, содержит ли определенного типа файл определенный тип данных, как провести этот тест и узнать, что данные, которые мы вводим в функцию — это данные, соответствующие тому типу, на который мы рассчитываем? Конечно, данные могут быть другими, что может послужить причиной провала теста, даже если данные были приемлемы.&lt;br /&gt;
&lt;br /&gt;
Чтобы решить эту проблему, модуль unittest (и многие другие среды тестирования) позволяет запускать эквивалент создателя классов, при­ме­ни­мый для создания пробных данных для теста. Точно так же есть эквивалент де­ст­рук­то­ра классов, который можно использовать для последующего удаления этой тестовой среды. Рассмотрим нашу последнюю функцию, для которой мы хотим написать тест:&lt;br /&gt;
&lt;br /&gt;
def get_file(self, fileloc):&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
&lt;br /&gt;
with open(fileloc) as f: return True&lt;br /&gt;
&lt;br /&gt;
except IOError as e:&lt;br /&gt;
&lt;br /&gt;
return False&lt;br /&gt;
&lt;br /&gt;
В данном случае функция проверяет, существует ли файл, и если да, то возвращает True; в противном случае появляется ошибка IOError, и функция возвращает False. Для эффективного тестирования этой функции нам нужно знать, действительно ли существует файл, который мы ей передаем.&lt;br /&gt;
&lt;br /&gt;
Вот тут пригодится папка /tmp в вашем компьютере. Мы автоматиче­ски создадим несколько файлов в /tmp, чтобы точно знать те файлы, которые наш блочный тест будет использовать в каче­стве исходных данных.&lt;br /&gt;
&lt;br /&gt;
Для этого добавьте следующую функцию в ваш класс Tests:&lt;br /&gt;
&lt;br /&gt;
def setUp(self):&lt;br /&gt;
&lt;br /&gt;
self.temp_path = ‘/tmp/testingtemp/’&lt;br /&gt;
&lt;br /&gt;
if not os.path.exists(self.temp_path): os.mkdir(self.temp_path)&lt;br /&gt;
&lt;br /&gt;
for i in range(1, 6):&lt;br /&gt;
&lt;br /&gt;
file = open(os.path.join(self.temp_path, str(i) + “.txt”), ‘w’)&lt;br /&gt;
&lt;br /&gt;
file.write(‘foo’)&lt;br /&gt;
&lt;br /&gt;
file.close()&lt;br /&gt;
&lt;br /&gt;
Здесь мы создаем нашу функцию setup (эквивалент создателя классов). Для этого создается функция под названием setUp(), определяется местоположение в /tmp для сохранения наших файлов, проверяется, существует ли эта директория, и затем создается пять небольших текстовых файлов под названием 1.txt, 2.txt, и т. д.&lt;br /&gt;
&lt;br /&gt;
Когда мы запускаем наши тесты, функция setUp() запускается перед выполнением любого теста. По завершении этой функции у нас будет пять текстовых файлов в /tmp/Testingtemp, которые мы используем в тестах. Это обеспечит готовность нашей тестовой среды перед запуском тестов.&lt;br /&gt;
&lt;br /&gt;
Давайте теперь создадим тест:&lt;br /&gt;
&lt;br /&gt;
def test_get_file(self):&lt;br /&gt;
&lt;br /&gt;
myclass = MyClass()&lt;br /&gt;
&lt;br /&gt;
value = myclass.get_file(“/tmp/testingtemp/1.txt”)&lt;br /&gt;
&lt;br /&gt;
self.assertTrue(value)&lt;br /&gt;
&lt;br /&gt;
Здесь мы создаем экземпляр класса MyClass, запускаем функцию get_file() и передаем ей один из файлов, созданных с помощью setUp(). Техниче­ски нам нужно создать один текстовый файл, но мне показалось ве­се­лее создать пять. Затем тест проверит, является ли величина, возвращаемая из get_file(), истинной (True). Если это так, тест пройден. Запустив скрипт, мы увидим:&lt;br /&gt;
&lt;br /&gt;
jono@forge:~/Desktop$ python tests.py&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Ran 3 tests in 0.001s&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Как видите, все три теста пройдены успешно.&lt;br /&gt;
&lt;br /&gt;
===Удаление тестовых данных===&lt;br /&gt;
&lt;br /&gt;
Хотя /tmp периодиче­ски вы­чи­ща­ет­ся системой, и наши тестовые данные будут удалены, хо­ро­шим то­ном счи­та­ет­ся пре­ду­смот­реть функцию, очи­щаю­щую от тестовых данных. Для этого создадим функцию tearDown() в классе Tests:&lt;br /&gt;
&lt;br /&gt;
def tearDown(self):&lt;br /&gt;
&lt;br /&gt;
temp_path = ‘/tmp/testingtemp/’&lt;br /&gt;
&lt;br /&gt;
shutil.rmtree(self.temp_path)&lt;br /&gt;
&lt;br /&gt;
Эта функция просто удаляет директорию из /tmp. Теперь, запустив тесты и заглянув в /tmp после их завершения, вы увидите, что тестовых данных там нет.&lt;br /&gt;
&lt;br /&gt;
Конечно, есть много других функций и возможностей в модуле unittest, но я советую заглянуть в руководство пользова­теля на http://docs.python.org/release/2.6.6/library/unittest.html, где вы найдете более подробную информацию, или в документацию тестовой среды, которой вы пользуетесь.&lt;br /&gt;
&lt;br /&gt;
===Тестирование функций===&lt;br /&gt;
&lt;br /&gt;
Блочные тесты являются важной частью разработки ПО, и я настоятельно рекомендую вам обзавестись пакетом блочных тестов для ваших приложений, желательно с тестом для каждой функции. Однако блочные тесты — это только проверка функциональных возможностей кода. И они совершенно не выявляют неожиданных результатов при ра­бо­те приложения.&lt;br /&gt;
&lt;br /&gt;
Среди примеров таких неожиданных результатов могут быть:&lt;br /&gt;
&lt;br /&gt;
» рендеринг ошибок в графиче­ских приложениях;&lt;br /&gt;
&lt;br /&gt;
» сломанные или не отвечающие графиче­ские виджеты;&lt;br /&gt;
&lt;br /&gt;
» проблема недоступности сетевого соединения;&lt;br /&gt;
&lt;br /&gt;
» текст в графиче­ском приложении занимает слишком много места на экране.&lt;br /&gt;
&lt;br /&gt;
» Приложения работают со сбоями или с ошибками.&lt;br /&gt;
&lt;br /&gt;
» Проблемы интеграции приложения с другими компонентами системы (например, с темами).&lt;br /&gt;
&lt;br /&gt;
Любой из этих сценариев может возникать при благополучно пройденном наборе блочных тестов. И это оставляет нам две возможности тестирования функций: тесты рабочего стола и ручные тесты.&lt;br /&gt;
&lt;br /&gt;
Тесты рабочего стола — это автоматиче­ские тесты, имитирующие щелчки мышью в приложении и оценивающие результаты этих щелчков на предмет их соответствия ожиданиям. Есть два основных подхода к проведению этих тестов:&lt;br /&gt;
&lt;br /&gt;
» Уровень доступности — эти тесты создаются инициирую­щими событиями с помощью среды доступности на рабочем столе (той же среды, которая используется инструментами доступа, например, программами для чтения с экрана).&lt;br /&gt;
&lt;br /&gt;
» Снимки с экрана — эти тесты основаны на том, что делается серия скриншотов, и затем сравниваются функции приложения с частями скриншота этого приложения (например, панель инструментов приложения соответствует панели инструментов на скриншоте).&lt;br /&gt;
&lt;br /&gt;
И хотя обе эти техники бы­ва­ют полезны, они предполагают наличие не­ких технологий (например, среды доступности или настроенного набора скриншотов, которые соответствуют теме рабочего стола). По­это­му от­сы­лаю вас к инструментам, используемым для опробования этих подходов (в наборе инструментов Desktop Testing Tools), а вместо этого мы сконцентрируемся на ручных тестах, при­ло­жи­мых ко всему.&lt;br /&gt;
&lt;br /&gt;
===Ручное тестирование===&lt;br /&gt;
&lt;br /&gt;
Ручные тесты — это подборка небольших предписывающих инструкций, которые мы просим выполнить пользователя для соз­дания ожидаемого результата, а затем просим пользователя сравнить этот результат с долж­ным.&lt;br /&gt;
&lt;br /&gt;
Инструменты для предоставления пользователю ручных тестов (например, Ubuntu test tracker) в первую очередь предназначены для перечисления тестов и предоставления места для сохранения результатов тестирования. Однако в реальности вы можете использовать для этого другие инструменты, например, wiki или электронную таблицу для хранения результатов.&lt;br /&gt;
&lt;br /&gt;
Создание ручных тестов может показаться не слож­нее, чем написание нескольких инструкций, однако вам надо подойти к этому более методично, чтобы вы точно смогли протестировать все необходимые части вашего приложения, и чтобы каждый тест работал как надо и выдавал те результаты, которых вы и ожидали. Мы не хотим, чтобы тест провалился из-за того, что ваши инструкции неточны и пользователь их недопонял и нажал не там.&lt;br /&gt;
&lt;br /&gt;
Первый шаг в написании отличного ручного теста — это определение точного списка того, что на­до тестировать. Например, для текстового редактора рабочего стола нужно будет протестировать:&lt;br /&gt;
&lt;br /&gt;
» операции с файлами (загрузка/сохранение/перезапись);&lt;br /&gt;
&lt;br /&gt;
» добавление, редактирование, удаление и перемещение текста;&lt;br /&gt;
&lt;br /&gt;
» такие функции, как проверка правописания, поиск, замена, статистика по словам, и т. д.&lt;br /&gt;
&lt;br /&gt;
Составив список требований, можете приступать к написанию тестов, которые будут выполнять пользователи.&lt;br /&gt;
&lt;br /&gt;
Но пре­ж­де чем за­ба­ра­ба­нить по клавиатуре, обдумайте, какие основные тесты вам нужны — те, что отсутствуют в виде блочных тестов или в иной форме тестирования. Когда мы просим пользователей провести ручное тес­ти­ро­ва­ние, мы не рассчитываем, что они про­си­дят за тес­та­ми четыре часа; это весьма скоро им надоест. Ку­да прак­тич­нее попросить их уделить 20 минут и протестировать самые проблемные или рискованные области вашего приложения, чтобы и нужное тестирование обеспечить, и не ввергнуть пользователя в тоску.&lt;br /&gt;
&lt;br /&gt;
Помня о том, какие вам нужны тесты, создайте в текстовом редакторе новый документ, чтобы написать их, и присвойте каждому тесту номер и идентификатор. Например:&lt;br /&gt;
&lt;br /&gt;
ED-001 file-loading&lt;br /&gt;
&lt;br /&gt;
ED-002 file-editing&lt;br /&gt;
&lt;br /&gt;
ED-003 file-saving&lt;br /&gt;
&lt;br /&gt;
Для каждого теста добавьте описание того, что он делает. Описание должно быть высокоуровневым, но подробным настолько, чтобы быть понятным людям, незнакомым с тестом и приложением. Например:&lt;br /&gt;
&lt;br /&gt;
ED-001 file-loading Загружает текстовый файл в редактор, готовый к редактированию.&lt;br /&gt;
&lt;br /&gt;
ED-002 file-editing Редактирует текстовый файл посредством ввода, удаления и перемещения текста.&lt;br /&gt;
&lt;br /&gt;
ED-003 file-saving Со­хра­ня­ет текст в но­вый файл.&lt;br /&gt;
&lt;br /&gt;
За­тем за­до­ку­мен­ти­руй­те все настройки, которые должен сделать пользователь перед запуском теста. Например, для ED-001 — должен ли файл, который он загружает, быть в определенной кодировке и должен ли он загружаться с жесткого диска или с устройства или из сетевого ресурса? Это должно быть ясно указано. Например:&lt;br /&gt;
&lt;br /&gt;
Подготовка: используйте TextEditor 1.0 и загрузите текст в формате UTF-8 с локального жесткого диска.&lt;br /&gt;
&lt;br /&gt;
Теперь для каждого теста напишите набор действий, объясняющих, как проводить тест. Например, для ED-001:&lt;br /&gt;
&lt;br /&gt;
1 Щелкните по пункту меню File.&lt;br /&gt;
&lt;br /&gt;
2 Щелкните пункт Открыть... внутри меню File.&lt;br /&gt;
&lt;br /&gt;
3 Используя выбор файла, выберите текстовый файл (текстовый файл показан небольшим значком с блокнотом и должен иметь расширение .txt).&lt;br /&gt;
&lt;br /&gt;
Каждый тест дол­жен включать не более 10 – 15 действий; если их будет больше, это просто убьет пользователя.&lt;br /&gt;
&lt;br /&gt;
Теперь внятно и четко опишите ожидаемый результат теста. Например, для ED-001:&lt;br /&gt;
&lt;br /&gt;
Результат: Тек­сто­вый файл загружается, и весь текст отображается в текстовом режиме со всеми пе­ре­во­да­ми строки и возвратами ка­рет­ки.&lt;br /&gt;
&lt;br /&gt;
Получившийся у вас готовый тест должен выглядеть приблизительно так:&lt;br /&gt;
&lt;br /&gt;
ED-001 file-loading Загрузка текста в редактор, готовый к редактированию.&lt;br /&gt;
&lt;br /&gt;
Подготовка: используйте TextEditor 1.0 и загрузите текст в формате UTF-8 с локального жесткого диска.&lt;br /&gt;
&lt;br /&gt;
1 Щелкните по пункту в меню File.&lt;br /&gt;
&lt;br /&gt;
2 Щелкните пункт Открыть… в меню File.&lt;br /&gt;
&lt;br /&gt;
3 Ис­поль­зуя вы­бор фай­ла, вы­бе­ри­те тек­сто­вый файл (тек­сто­вый файл по­ка­зан не­боль­шим знач­ком с блок­но­том и дол­жен иметь рас­ши­ре­ние .txt).&lt;br /&gt;
&lt;br /&gt;
Результат: Текстовый файл загружается и весь текст отображается в текстовом режиме со всеми новыми строками, и носитель возвращается.&lt;br /&gt;
&lt;br /&gt;
Затем пользователь должен сообщить о том пройден ли тест (PASS) или не пройден (FAIL), когда он получит результат, следуя всем перечисленным инструкциям. Поздравляем, теперь у вас есть ручной тест! |&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Заголовок= Ин­ст­ру­мен­ты тес­ти­ро­ва­ния|Ширина=98%|Содержание=Вот несколько полезных инструментов для тестирования графиче­ских приложений:&lt;br /&gt;
&lt;br /&gt;
» Sikuli Script http://www.sikuli.org&lt;br /&gt;
&lt;br /&gt;
» Linux Desktop Testing Project http://ldtp.freedesktop.org&lt;br /&gt;
&lt;br /&gt;
» Dogtail https://fedorahosted.org/dogtail&lt;br /&gt;
&lt;br /&gt;
» SWTBot http://eclipse.org/swtbot }}&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:%D0%9E%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B0_%D0%9F%D0%9E</id>
		<title>LXF171:Обеспечение качества ПО</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:%D0%9E%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B0_%D0%9F%D0%9E"/>
				<updated>2018-11-18T06:56:08Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: Новая страница: «Категория: Учебники == Тес­ти­ро­ва­ние: Да­ешь ка­че­ст­во ПО == ''Джо­но Бэ­кон ис­сле…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Учебники]]&lt;br /&gt;
== Тес­ти­ро­ва­ние: Да­ешь ка­че­ст­во ПО ==&lt;br /&gt;
''Джо­но Бэ­кон ис­сле­ду­ет мир ав­то­ма­ти­че­ско­го и руч­но­го тес­ти­ро­ва­ния, что­бы по­мочь вам сде­лать свое при­ло­же­ние проч­ным, как ска­ла.''&lt;br /&gt;
[[Файл: |left | thumb|100px|'''Наш эксперт''' Джо­но Бэ­кон — ме­нед­жер со­об­ще­ст­ва Ubuntu, ав­тор The Art Of Community [Ис­кус­ст­во Со­об­ще­ст­ва] и ос­но­ва­тель еже­год­ной встре­чи Community Leadership Summit.]]&lt;br /&gt;
Ка­че­­ст­во — клю­че­вой фак­тор для лю­бой про­грам­мы. Не­важ­но, на­сколь­ко со­вре­мен­ны ва­ши функ­ции, на­сколь­ко впе­чат­ля­ет ваш ин­тер­фейс или на­сколь­ко уни­каль­но ва­ше при­ло­же­ние: ес­ли оно не­на­деж­но ра­бо­та­ет, им пе­ре­ста­нут поль­зо­вать­ся.&lt;br /&gt;
&lt;br /&gt;
Од­на­ко ка­че­­ст­во важ­но не толь­ко для обес­пе­че­ния поль­зо­ва­те­лю при­ят­ной ра­бо­ты — оно важ­но так­же для то­го, что­бы ва­ше со­об­ще­ст­во чув­ст­во­ва­ло се­бя сча­ст­ли­вым и пре­дан­ным ва­ше­му при­ло­же­нию. Пло­хое ка­че­­ст­во от­ра­жа­ет­ся на всех, кто от­стаи­вает ин­те­ре­сы со­об­ще­ст­ва, а вам ведь не на­до, что­бы ва­ше со­об­ще­ст­во по­сто­ян­но по­лу­ча­ло жа­ло­бы на пло­хое ка­че­­ст­во про­грам­мы и на ошиб­ки в ней.&lt;br /&gt;
&lt;br /&gt;
Соз­да­ние вы­со­ко­ка­че­­ст­вен­но­го ПО оз­на­ча­ет по­ни­ма­ние про­цес­сов Quality Assurance (QA, Обес­пе­че­ние ка­че­­ст­ва). Не­ко­то­рые из вас, воз­мож­но, уже зна­ко­мы с QA, и ас­со­ции­ру­ют его с от­сле­жи­ва­ни­ем оши­бок и тес­ти­ро­ва­ни­ем про­грамм. В це­лом это пра­виль­но, но эф­фек­тив­ное QA в мень­шей сте­пе­ни от­но­сит­ся к со­об­ще­ни­ям о де­фек­тах и от­сле­жи­ва­нию их, а в боль­шей сте­пе­ни — к обес­пе­че­нию ка­че­­ст­ва ва­ше­го ПО. Ины­ми сло­ва­ми, луч­ше по­ста­рать­ся обес­пе­чить вы­со­кое ка­че­­ст­во вы­пус­кае­мо­го ПО, что­бы в нем во­об­ще не бы­ло оши­бок, а не от­лич­ные про­цес­сы для со­об­ще­ния об об­на­ру­жен­ных ошиб­ках.&lt;br /&gt;
&lt;br /&gt;
Что­бы обес­пе­чить ка­че­­ст­во, тре­бу­ет­ся эф­фек­тив­ное тес­ти­ро­ва­ние ко­да, из­го­няю­щее из ко­да как мож­но боль­ше оши­бок. И эта за­да­ча на­мно­го слож­нее, чем мож­но ожи­дать. С од­ной сто­ро­ны, все­гда мож­но про­тес­ти­ро­вать раз­ные час­ти ко­да и про­ве­рить, ра­бо­та­ют ли они, как по­ло­же­но; но как быть в тех слу­ча­ях, ко­гда код ра­бо­та­ет в не­обыч­ных ус­ло­ви­ях или с не­обыч­ны­ми дан­ны­ми? При этом воз­ни­ка­ют ху­же все­го от­сле­жи­вае­мые про­бле­мы, а так­же гон­ки, ко­гда раз­ные вет­ки ко­да ис­пол­ня­ют­ся в раз­ное вре­мя.&lt;br /&gt;
&lt;br /&gt;
Что­бы до­бить­ся на­шей це­ли, обес­пе­че­ния ка­че­­ст­ва, луч­шим ме­то­дом бу­дет при­ме­нить мно­го­гран­ный под­ход к тес­ти­ро­ва­нию. В идеа­ле на­до про­тес­ти­ро­вать наш код по­блоч­но, а так­же про­тес­ти­ро­вать все функ­ции с точ­ки зре­ния поль­зо­ва­те­ля. Ог­ра­ни­чив­шись од­ной из этих за­дач, долж­ный уро­вень ка­че­­ст­ва вы не обес­пе­чи­те; а вы­пол­нив обе, ста­не­те го­раз­до бли­же к нир­ва­не ста­биль­но­сти ПО.&lt;br /&gt;
&lt;br /&gt;
===По­блоч­ное тес­ти­ро­ва­ние===&lt;br /&gt;
&lt;br /&gt;
Са­мая важ­ная фор­ма тес­ти­ро­ва­ния, ко­то­рую нуж­но встро­ить в ва­ше при­ло­же­ние, это блоч­ное тес­ти­ро­ва­ние. Ог­ром­ное ко­ли­че­­ст­во про­грамм на­пи­са­но на функ­цио­наль­ных объ­ект­но-ори­ен­ти­ро­ван­ных язы­ках про­грам­ми­ро­ва­ния, в ко­то­рых код раз­би­ва­ет­ся на функ­ции мно­го­крат­но­го ис­поль­зо­ва­ния, ко­то­рые слу­жат спе­ци­аль­ным це­лям. На­при­мер, у вас, воз­мож­но, есть функ­ция, ко­то­рая пи­шет файл на диск, или кон­вер­ти­ру­ет дан­ные в дру­гой тип, или воз­вра­ща­ет web-стра­ни­цу с web-сер­ве­ра. По­блоч­ное тес­ти­ро­ва­ние раз­ра­бо­та­но для то­го, что­бы все эти раз­но­род­ные функ­ции ра­бо­та­ли как по­ла­га­ет­ся и до­би­ва­лись же­лае­мо­го ре­зуль­та­та.&lt;br /&gt;
&lt;br /&gt;
Об­щая фи­ло­со­фия по­блоч­но­го тес­ти­ро­ва­ния за­клю­ча­ет­ся в том, что у вас есть тест для ка­ж­дой функ­ции в ва­шем при­ло­же­нии. Во мно­гих про­грамм­ных про­ек­тах но­вую функ­цию не при­мут в ко­до­вую ба­зу про­ек­та, по­ка не бу­дет про­тес­ти­ро­ван со­от­вет­ст­вую­щий блок. Ана­ло­гич­но, но­вые функ­ции и по­прав­ки не по­па­дут в про­грам­му, по­ка не прой­дут блоч­но­го тес­ти­ро­ва­ния. Это обес­пе­чи­ва­ет на­деж­ный спо­соб про­вер­ки, что но­вые кус­ки ко­да не­ча­ян­но не на­ру­шат уже отлаженные функ­ции ва­шей программы.&lt;br /&gt;
&lt;br /&gt;
Есть мно­же­ст­во раз­ных сред для на­пи­са­ния блоч­ных тес­тов, и не­уди­ви­тель­но, что мно­гие из них от­но­сят­ся имен­но к то­му язы­ку, на ко­то­ром на­пи­сан код. В этой ста­тье я по­ка­жу вам, как ис­поль­зо­вать мо­дуль unittest, яв­ляю­щий­ся ча­стью Python; од­на­ко струк­ту­ра соз­да­ния тес­та мо­жет ис­поль­зо­вать­ся в боль­шин­ст­ве дру­гих тес­то­вых сред.&lt;br /&gt;
&lt;br /&gt;
Пре­ж­де чем при­сту­пать к соз­да­нию тес­та, пред­по­ло­жим, что у нас есть про­стой класс со сле­дую­щи­ми функ­ция­ми:&lt;br /&gt;
&lt;br /&gt;
class MyClass():&lt;br /&gt;
&lt;br /&gt;
def return_true(self):&lt;br /&gt;
&lt;br /&gt;
return True&lt;br /&gt;
&lt;br /&gt;
def get_version(self):&lt;br /&gt;
&lt;br /&gt;
version = “1.0”&lt;br /&gt;
&lt;br /&gt;
return version&lt;br /&gt;
&lt;br /&gt;
def get_file(self, fileloc):&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
&lt;br /&gt;
with open(fileloc) as f: return True&lt;br /&gt;
&lt;br /&gt;
except IOError as e:&lt;br /&gt;
&lt;br /&gt;
return False&lt;br /&gt;
&lt;br /&gt;
Функ­ций здесь три:&lt;br /&gt;
&lt;br /&gt;
» return_true() В та­ком ви­де это са­мая бес­полез­ная из всех ко­гда-ли­бо на­пи­сан­ных функ­ций; но вы пред­ставь­те, что она де­ла­ет не­что осмысленное и за­тем воз­вра­ща­ет True.&lt;br /&gt;
&lt;br /&gt;
» get_version() Эта функ­ция про­сто воз­вра­ща­ет те­ку­щую вер­сию ПО в ка­че­­ст­ве стро­ко­вой пе­ре­мен­ной. Она мо­жет быть по­лез­на при на­пи­са­нии API, что­бы кли­ент взял пра­виль­ную вер­сию API.&lt;br /&gt;
&lt;br /&gt;
» get_file() Эта функ­ция про­ве­ря­ет, су­ще­ст­ву­ет ли ука­зан­ный файл.&lt;br /&gt;
&lt;br /&gt;
Все эти функ­ции воз­вра­ща­ют дан­ные, и нам на­до на­пи­сать тест бло­ка, про­ве­ряю­щий, что вер­ну­лись пра­виль­ные дан­ные. Ес­ли воз­вра­ща­ют­ся дру­гие дан­ные (на­при­мер, False вме­сто True), зна­чит, блоч­ный тест не про­хо­дит.&lt;br /&gt;
&lt;br /&gt;
Да­вай­те сна­ча­ла до­ба­вим ут­вер­жде­ния import, ко­то­рые мы бу­дем ис­поль­зо­вать в этой ста­тье, а по­том до­ба­вим при­ве­ден­ный вы­ше класс:&lt;br /&gt;
&lt;br /&gt;
import unittest&lt;br /&gt;
&lt;br /&gt;
import tempfile&lt;br /&gt;
&lt;br /&gt;
import os, sys, shutil&lt;br /&gt;
&lt;br /&gt;
class MyClass():&lt;br /&gt;
&lt;br /&gt;
def return_true(self):&lt;br /&gt;
&lt;br /&gt;
return True&lt;br /&gt;
&lt;br /&gt;
def get_version(self):&lt;br /&gt;
&lt;br /&gt;
version = “1.0”&lt;br /&gt;
&lt;br /&gt;
return version&lt;br /&gt;
&lt;br /&gt;
def get_file(self, fileloc):&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
&lt;br /&gt;
with open(fileloc) as f: return True&lt;br /&gt;
&lt;br /&gt;
except IOError as e:&lt;br /&gt;
&lt;br /&gt;
return False&lt;br /&gt;
&lt;br /&gt;
Теперь создайте свой первый тест, в данном случае — для функции return_true(). Под кодом, который мы только что добавили (код см. выше), вставьте следующее:&lt;br /&gt;
&lt;br /&gt;
class Tests(unittest.TestCase):&lt;br /&gt;
&lt;br /&gt;
def test_return_true(self):&lt;br /&gt;
&lt;br /&gt;
myclass = MyClass()&lt;br /&gt;
&lt;br /&gt;
value = myclass.return_true()&lt;br /&gt;
&lt;br /&gt;
self.assertTrue(value)&lt;br /&gt;
&lt;br /&gt;
if __name__ == ‘__main__’:&lt;br /&gt;
&lt;br /&gt;
unittest.main()&lt;br /&gt;
&lt;br /&gt;
Здесь мы создаем новый класс unittest под названием Tests. Внутри этого класса мы создаем блочный тест для каждой функции. Как ви­ди­те, мы добавили наш первый блочный тест, под названием test_return_true().&lt;br /&gt;
&lt;br /&gt;
Для начала мы создаем экземпляр класса MyClass, который тестируется, а затем запускаем функцию и пишем результат в value.&lt;br /&gt;
&lt;br /&gt;
Следующий наш шаг — про­вер­ка, являются ли данные в value тем, что мы ожидали. С этой це­лью мы выполняем утверждение. Утверждение проверяет, соответствует ли пе­ре­да­вае­мая ему величина тому, что оно ожидает. В этом тесте мы используем assertTrue(), являющееся частью библиотеки unittest, чтобы проверить, является ли value истинной (True), как мы рассчитываем.&lt;br /&gt;
&lt;br /&gt;
Затем в кон­це исходника мы запускаем функцию main() модуля unittest, чтобы провести тесты.&lt;br /&gt;
&lt;br /&gt;
Что­бы запустить свои тесты и узнать, пройдут ли они, просто выполните скрипт, и вы должны увидеть следующее:&lt;br /&gt;
&lt;br /&gt;
jono@forge:~/Desktop$ python tests.py .&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Ran 1 test in 0.000s&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Здесь мы запустили один тест, и он прошел отлично. ‘.’ над линией показывает, что тест пройден. Чтобы проверить, не провалился ли тест, измените return True на return False в функции return_true() и снова запустите скрипт. Теперь на экране должно появиться&lt;br /&gt;
&lt;br /&gt;
jono@forge:~/Desktop$ python tests.py&lt;br /&gt;
&lt;br /&gt;
F&lt;br /&gt;
&lt;br /&gt;
==================================================&lt;br /&gt;
&lt;br /&gt;
===================&lt;br /&gt;
&lt;br /&gt;
FAIL: test_return_true (__main__.Tests)&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
&lt;br /&gt;
File “tests.py”, line 35, in test_return_true&lt;br /&gt;
&lt;br /&gt;
self.assertTrue(value)&lt;br /&gt;
&lt;br /&gt;
AssertionError: False is not true&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Ran 1 test in 0.000s&lt;br /&gt;
&lt;br /&gt;
FAILED (failures=1)&lt;br /&gt;
&lt;br /&gt;
Здесь тест не пройден, и указана причина провала.&lt;br /&gt;
&lt;br /&gt;
Давайте напишем второй тест, чтобы проверить, возвращает ли get_version() правильную версию. В этом случае нам не нужно тестировать кон­крет­но версию 1.0, поскольку версии регулярно из­ме­ня­ют­ся. Вместо этого сле­ду­ет убедиться, что функция возвращает переменную, например, 1.0 или 1.5, и мы будем считать эту переменную соответствующим номером версии (поскольку никакой другой код не вносит данные в эту функцию).&lt;br /&gt;
&lt;br /&gt;
Чтобы добавить дан­ный тест, вставьте та­кую функцию в класс Tests:&lt;br /&gt;
&lt;br /&gt;
def test_get_version(self):&lt;br /&gt;
&lt;br /&gt;
myclass = MyClass()&lt;br /&gt;
&lt;br /&gt;
version = myclass.get_version()&lt;br /&gt;
&lt;br /&gt;
self.assertTrue(isinstance(version, basestring))&lt;br /&gt;
&lt;br /&gt;
Здесь мы снова создали экземпляр класса MyClass, запустили get_version() и вывели результат в version.&lt;br /&gt;
&lt;br /&gt;
Теперь нам надо протестировать, является ли version переменной. Для этого мы используем isinstance(), чтобы проверить, относится ли version к формату Basestring, и, если это так, то вернется True; затем мы проверим это в функции assertTrue(), чтобы вернуть результат утверждения. Сно­ва запустив скрипт, мы увидим:&lt;br /&gt;
&lt;br /&gt;
jono@forge:~/Desktop$ python tests.py&lt;br /&gt;
&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Ran 2 tests in 0.000s&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Здесь видно, что проведено два теста, и над ли­ни­ей поставлено по точке за каждый удачно пройденный тест.&lt;br /&gt;
&lt;br /&gt;
И снова, если вы хотите, чтобы тест не про­шел, от­ре­дак­ти­руй­те исходную функцию, на сей раз изменив “1.0” на 1.0 (удалите кавычки, превратив единицу в число вместо переменной) и перезапустите скрипт, чтобы увидеть провал.&lt;br /&gt;
&lt;br /&gt;
Для нашего финального теста я хочу поговорить о важных частях написания блочных тестов — подготовке и закрытии.&lt;br /&gt;
&lt;br /&gt;
Вы, возможно, заметили, что наши функции не работают с реальными данными. Например, если нужно провести блочный тест, чтобы увидеть, содержит ли определенного типа файл определенный тип данных, как провести этот тест и узнать, что данные, которые мы вводим в функцию — это данные, соответствующие тому типу, на который мы рассчитываем? Конечно, данные могут быть другими, что может послужить причиной провала теста, даже если данные были приемлемы.&lt;br /&gt;
&lt;br /&gt;
Чтобы решить эту проблему, модуль unittest (и многие другие среды тестирования) позволяет запускать эквивалент создателя классов, при­ме­ни­мый для создания пробных данных для теста. Точно так же есть эквивалент де­ст­рук­то­ра классов, который можно использовать для последующего удаления этой тестовой среды. Рассмотрим нашу последнюю функцию, для которой мы хотим написать тест:&lt;br /&gt;
&lt;br /&gt;
def get_file(self, fileloc):&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
&lt;br /&gt;
with open(fileloc) as f: return True&lt;br /&gt;
&lt;br /&gt;
except IOError as e:&lt;br /&gt;
&lt;br /&gt;
return False&lt;br /&gt;
&lt;br /&gt;
В данном случае функция проверяет, существует ли файл, и если да, то возвращает True; в противном случае появляется ошибка IOError, и функция возвращает False. Для эффективного тестирования этой функции нам нужно знать, действительно ли существует файл, который мы ей передаем.&lt;br /&gt;
&lt;br /&gt;
Вот тут пригодится папка /tmp в вашем компьютере. Мы автоматиче­ски создадим несколько файлов в /tmp, чтобы точно знать те файлы, которые наш блочный тест будет использовать в каче­стве исходных данных.&lt;br /&gt;
&lt;br /&gt;
Для этого добавьте следующую функцию в ваш класс Tests:&lt;br /&gt;
&lt;br /&gt;
def setUp(self):&lt;br /&gt;
&lt;br /&gt;
self.temp_path = ‘/tmp/testingtemp/’&lt;br /&gt;
&lt;br /&gt;
if not os.path.exists(self.temp_path): os.mkdir(self.temp_path)&lt;br /&gt;
&lt;br /&gt;
for i in range(1, 6):&lt;br /&gt;
&lt;br /&gt;
file = open(os.path.join(self.temp_path, str(i) + “.txt”), ‘w’)&lt;br /&gt;
&lt;br /&gt;
file.write(‘foo’)&lt;br /&gt;
&lt;br /&gt;
file.close()&lt;br /&gt;
&lt;br /&gt;
Здесь мы создаем нашу функцию setup (эквивалент создателя классов). Для этого создается функция под названием setUp(), определяется местоположение в /tmp для сохранения наших файлов, проверяется, существует ли эта директория, и затем создается пять небольших текстовых файлов под названием 1.txt, 2.txt, и т. д.&lt;br /&gt;
&lt;br /&gt;
Когда мы запускаем наши тесты, функция setUp() запускается перед выполнением любого теста. По завершении этой функции у нас будет пять текстовых файлов в /tmp/Testingtemp, которые мы используем в тестах. Это обеспечит готовность нашей тестовой среды перед запуском тестов.&lt;br /&gt;
&lt;br /&gt;
Давайте теперь создадим тест:&lt;br /&gt;
&lt;br /&gt;
def test_get_file(self):&lt;br /&gt;
&lt;br /&gt;
myclass = MyClass()&lt;br /&gt;
&lt;br /&gt;
value = myclass.get_file(“/tmp/testingtemp/1.txt”)&lt;br /&gt;
&lt;br /&gt;
self.assertTrue(value)&lt;br /&gt;
&lt;br /&gt;
Здесь мы создаем экземпляр класса MyClass, запускаем функцию get_file() и передаем ей один из файлов, созданных с помощью setUp(). Техниче­ски нам нужно создать один текстовый файл, но мне показалось ве­се­лее создать пять. Затем тест проверит, является ли величина, возвращаемая из get_file(), истинной (True). Если это так, тест пройден. Запустив скрипт, мы увидим:&lt;br /&gt;
&lt;br /&gt;
jono@forge:~/Desktop$ python tests.py&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Ran 3 tests in 0.001s&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Как видите, все три теста пройдены успешно.&lt;br /&gt;
&lt;br /&gt;
===Удаление тестовых данных===&lt;br /&gt;
&lt;br /&gt;
Хотя /tmp периодиче­ски вы­чи­ща­ет­ся системой, и наши тестовые данные будут удалены, хо­ро­шим то­ном счи­та­ет­ся пре­ду­смот­реть функцию, очи­щаю­щую от тестовых данных. Для этого создадим функцию tearDown() в классе Tests:&lt;br /&gt;
&lt;br /&gt;
def tearDown(self):&lt;br /&gt;
&lt;br /&gt;
temp_path = ‘/tmp/testingtemp/’&lt;br /&gt;
&lt;br /&gt;
shutil.rmtree(self.temp_path)&lt;br /&gt;
&lt;br /&gt;
Эта функция просто удаляет директорию из /tmp. Теперь, запустив тесты и заглянув в /tmp после их завершения, вы увидите, что тестовых данных там нет.&lt;br /&gt;
&lt;br /&gt;
Конечно, есть много других функций и возможностей в модуле unittest, но я советую заглянуть в руководство пользова­теля на http://docs.python.org/release/2.6.6/library/unittest.html, где вы найдете более подробную информацию, или в документацию тестовой среды, которой вы пользуетесь.&lt;br /&gt;
&lt;br /&gt;
===Тестирование функций===&lt;br /&gt;
&lt;br /&gt;
Блочные тесты являются важной частью разработки ПО, и я настоятельно рекомендую вам обзавестись пакетом блочных тестов для ваших приложений, желательно с тестом для каждой функции. Однако блочные тесты — это только проверка функциональных возможностей кода. И они совершенно не выявляют неожиданных результатов при ра­бо­те приложения.&lt;br /&gt;
&lt;br /&gt;
Среди примеров таких неожиданных результатов могут быть:&lt;br /&gt;
&lt;br /&gt;
» рендеринг ошибок в графиче­ских приложениях;&lt;br /&gt;
&lt;br /&gt;
» сломанные или не отвечающие графиче­ские виджеты;&lt;br /&gt;
&lt;br /&gt;
» проблема недоступности сетевого соединения;&lt;br /&gt;
&lt;br /&gt;
» текст в графиче­ском приложении занимает слишком много места на экране.&lt;br /&gt;
&lt;br /&gt;
» Приложения работают со сбоями или с ошибками.&lt;br /&gt;
&lt;br /&gt;
» Проблемы интеграции приложения с другими компонентами системы (например, с темами).&lt;br /&gt;
&lt;br /&gt;
Любой из этих сценариев может возникать при благополучно пройденном наборе блочных тестов. И это оставляет нам две возможности тестирования функций: тесты рабочего стола и ручные тесты.&lt;br /&gt;
&lt;br /&gt;
Тесты рабочего стола — это автоматиче­ские тесты, имитирующие щелчки мышью в приложении и оценивающие результаты этих щелчков на предмет их соответствия ожиданиям. Есть два основных подхода к проведению этих тестов:&lt;br /&gt;
&lt;br /&gt;
» Уровень доступности — эти тесты создаются инициирую­щими событиями с помощью среды доступности на рабочем столе (той же среды, которая используется инструментами доступа, например, программами для чтения с экрана).&lt;br /&gt;
&lt;br /&gt;
» Снимки с экрана — эти тесты основаны на том, что делается серия скриншотов, и затем сравниваются функции приложения с частями скриншота этого приложения (например, панель инструментов приложения соответствует панели инструментов на скриншоте).&lt;br /&gt;
&lt;br /&gt;
И хотя обе эти техники бы­ва­ют полезны, они предполагают наличие не­ких технологий (например, среды доступности или настроенного набора скриншотов, которые соответствуют теме рабочего стола). По­это­му от­сы­лаю вас к инструментам, используемым для опробования этих подходов (в наборе инструментов Desktop Testing Tools), а вместо этого мы сконцентрируемся на ручных тестах, при­ло­жи­мых ко всему.&lt;br /&gt;
&lt;br /&gt;
===Ручное тестирование===&lt;br /&gt;
&lt;br /&gt;
Ручные тесты — это подборка небольших предписывающих инструкций, которые мы просим выполнить пользователя для соз­дания ожидаемого результата, а затем просим пользователя сравнить этот результат с долж­ным.&lt;br /&gt;
&lt;br /&gt;
Инструменты для предоставления пользователю ручных тестов (например, Ubuntu test tracker) в первую очередь предназначены для перечисления тестов и предоставления места для сохранения результатов тестирования. Однако в реальности вы можете использовать для этого другие инструменты, например, wiki или электронную таблицу для хранения результатов.&lt;br /&gt;
&lt;br /&gt;
Создание ручных тестов может показаться не слож­нее, чем написание нескольких инструкций, однако вам надо подойти к этому более методично, чтобы вы точно смогли протестировать все необходимые части вашего приложения, и чтобы каждый тест работал как надо и выдавал те результаты, которых вы и ожидали. Мы не хотим, чтобы тест провалился из-за того, что ваши инструкции неточны и пользователь их недопонял и нажал не там.&lt;br /&gt;
&lt;br /&gt;
Первый шаг в написании отличного ручного теста — это определение точного списка того, что на­до тестировать. Например, для текстового редактора рабочего стола нужно будет протестировать:&lt;br /&gt;
&lt;br /&gt;
» операции с файлами (загрузка/сохранение/перезапись);&lt;br /&gt;
&lt;br /&gt;
» добавление, редактирование, удаление и перемещение текста;&lt;br /&gt;
&lt;br /&gt;
» такие функции, как проверка правописания, поиск, замена, статистика по словам, и т. д.&lt;br /&gt;
&lt;br /&gt;
Составив список требований, можете приступать к написанию тестов, которые будут выполнять пользователи.&lt;br /&gt;
&lt;br /&gt;
Но пре­ж­де чем за­ба­ра­ба­нить по клавиатуре, обдумайте, какие основные тесты вам нужны — те, что отсутствуют в виде блочных тестов или в иной форме тестирования. Когда мы просим пользователей провести ручное тес­ти­ро­ва­ние, мы не рассчитываем, что они про­си­дят за тес­та­ми четыре часа; это весьма скоро им надоест. Ку­да прак­тич­нее попросить их уделить 20 минут и протестировать самые проблемные или рискованные области вашего приложения, чтобы и нужное тестирование обеспечить, и не ввергнуть пользователя в тоску.&lt;br /&gt;
&lt;br /&gt;
Помня о том, какие вам нужны тесты, создайте в текстовом редакторе новый документ, чтобы написать их, и присвойте каждому тесту номер и идентификатор. Например:&lt;br /&gt;
&lt;br /&gt;
ED-001 file-loading&lt;br /&gt;
&lt;br /&gt;
ED-002 file-editing&lt;br /&gt;
&lt;br /&gt;
ED-003 file-saving&lt;br /&gt;
&lt;br /&gt;
Для каждого теста добавьте описание того, что он делает. Описание должно быть высокоуровневым, но подробным настолько, чтобы быть понятным людям, незнакомым с тестом и приложением. Например:&lt;br /&gt;
&lt;br /&gt;
ED-001 file-loading Загружает текстовый файл в редактор, готовый к редактированию.&lt;br /&gt;
&lt;br /&gt;
ED-002 file-editing Редактирует текстовый файл посредством ввода, удаления и перемещения текста.&lt;br /&gt;
&lt;br /&gt;
ED-003 file-saving Со­хра­ня­ет текст в но­вый файл.&lt;br /&gt;
&lt;br /&gt;
За­тем за­до­ку­мен­ти­руй­те все настройки, которые должен сделать пользователь перед запуском теста. Например, для ED-001 — должен ли файл, который он загружает, быть в определенной кодировке и должен ли он загружаться с жесткого диска или с устройства или из сетевого ресурса? Это должно быть ясно указано. Например:&lt;br /&gt;
&lt;br /&gt;
Подготовка: используйте TextEditor 1.0 и загрузите текст в формате UTF-8 с локального жесткого диска.&lt;br /&gt;
&lt;br /&gt;
Теперь для каждого теста напишите набор действий, объясняющих, как проводить тест. Например, для ED-001:&lt;br /&gt;
&lt;br /&gt;
1 Щелкните по пункту меню File.&lt;br /&gt;
&lt;br /&gt;
2 Щелкните пункт Открыть... внутри меню File.&lt;br /&gt;
&lt;br /&gt;
3 Используя выбор файла, выберите текстовый файл (текстовый файл показан небольшим значком с блокнотом и должен иметь расширение .txt).&lt;br /&gt;
&lt;br /&gt;
Каждый тест дол­жен включать не более 10 – 15 действий; если их будет больше, это просто убьет пользователя.&lt;br /&gt;
&lt;br /&gt;
Теперь внятно и четко опишите ожидаемый результат теста. Например, для ED-001:&lt;br /&gt;
&lt;br /&gt;
Результат: Тек­сто­вый файл загружается, и весь текст отображается в текстовом режиме со всеми пе­ре­во­да­ми строки и возвратами ка­рет­ки.&lt;br /&gt;
&lt;br /&gt;
Получившийся у вас готовый тест должен выглядеть приблизительно так:&lt;br /&gt;
&lt;br /&gt;
ED-001 file-loading Загрузка текста в редактор, готовый к редактированию.&lt;br /&gt;
&lt;br /&gt;
Подготовка: используйте TextEditor 1.0 и загрузите текст в формате UTF-8 с локального жесткого диска.&lt;br /&gt;
&lt;br /&gt;
1 Щелкните по пункту в меню File.&lt;br /&gt;
&lt;br /&gt;
2 Щелкните пункт Открыть… в меню File.&lt;br /&gt;
&lt;br /&gt;
3 Ис­поль­зуя вы­бор фай­ла, вы­бе­ри­те тек­сто­вый файл (тек­сто­вый файл по­ка­зан не­боль­шим знач­ком с блок­но­том и дол­жен иметь рас­ши­ре­ние .txt).&lt;br /&gt;
&lt;br /&gt;
Результат: Текстовый файл загружается и весь текст отображается в текстовом режиме со всеми новыми строками, и носитель возвращается.&lt;br /&gt;
&lt;br /&gt;
Затем пользователь должен сообщить о том пройден ли тест (PASS) или не пройден (FAIL), когда он получит результат, следуя всем перечисленным инструкциям. Поздравляем, теперь у вас есть ручной тест! |&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Заголовок= Ин­ст­ру­мен­ты тес­ти­ро­ва­ния|Ширина=10%|Содержание=Вот несколько полезных инструментов для тестирования графиче­ских приложений:&lt;br /&gt;
&lt;br /&gt;
» Sikuli Script http://www.sikuli.org&lt;br /&gt;
&lt;br /&gt;
» Linux Desktop Testing Project http://ldtp.freedesktop.org&lt;br /&gt;
&lt;br /&gt;
» Dogtail https://fedorahosted.org/dogtail&lt;br /&gt;
&lt;br /&gt;
» SWTBot http://eclipse.org/swtbot }}&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF171:AWS:_%D0%97%D0%BD%D0%B0%C2%AD%D0%BA%D0%BE%C2%AD%D0%BC%D0%B8%D0%BC%C2%AD%D1%81%D1%8F_%D1%81_%D0%9E%D0%B1%C2%AD%D0%BB%D0%B0%C2%AD%D0%BA%D0%BE%D0%BC</id>
		<title>LXF171:AWS: Зна­ко­мим­ся с Об­ла­ком</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF171:AWS:_%D0%97%D0%BD%D0%B0%C2%AD%D0%BA%D0%BE%C2%AD%D0%BC%D0%B8%D0%BC%C2%AD%D1%81%D1%8F_%D1%81_%D0%9E%D0%B1%C2%AD%D0%BB%D0%B0%C2%AD%D0%BA%D0%BE%D0%BC"/>
				<updated>2018-11-18T06:47:08Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol: Новая страница: « Категория: Учебники == Ос­ваи­ва­ем и при­ме­ня­ем Amazon Web Services == ''Роб До­бо­зи из­ла­г…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[Категория: Учебники]]&lt;br /&gt;
== Ос­ваи­ва­ем и при­ме­ня­ем Amazon Web Services ==&lt;br /&gt;
''Роб До­бо­зи из­ла­га­ет все, что нуж­но знать об об­лач­ных вы­чис­ле­ни­ях, и приглаша­ет оз­на­ко­мить­ся с ни­ми, не по­тра­тив ни гро­ша.''&lt;br /&gt;
[[Файл:LXF171.tut_aws.11_amis_3.jpeg.png |left | thumb|150px|'''Наш эксперт''' Роб Добози – технический архитектор SAP, и работает с разными операционными системами, платформами и базами данных. Он работает в Linux на всех серверах, ПК, но­ут­бу­ках, роутерах, мобильных телефонах, телевизорах, медиа-плей­е­рах и Raspberry Pi, которые только есть у него дома.]] &lt;br /&gt;
Об­лач­ные сервисы — один из са­мых громких тер­ми­нов в ми­ре ИТ. Для тех, кто не впол­не пред­став­ля­ет се­бе, что это и как ими поль­зо­вать­ся, мы и под­го­то­ви­ли этот учеб­ник. Осоз­нан­но или нет, об­лач­ные сервисы в какой-либо фор­ме применя­ют многие. Вы поль­зо­ва­лись Ubuntu One, Dropbox, Netflix, Google Docs или Apple iCloud? Все это — об­лач­ные сер­ви­сы. Что же де­ла­ет сер­вис об­лач­ным? На­цио­наль­ный ин­сти­ту­т стан­дар­тов и тех­но­ло­гии [National Institute of Standards and Technology, NIST] полагает, что он дол­жен иметь та­кие ха­рак­те­ри­сти­ки:&lt;br /&gt;
&lt;br /&gt;
» Са­мо­об­слу­жи­ва­ние по тре­бо­ва­нию По­зво­ля­ет пре­дос­тав­лять по­тре­би­те­лю та­кие ре­сур­сы, как вре­мя ра­бо­ты сер­ве­ра или ме­сто на дис­ке, без че­ло­ве­че­­ско­­го уча­стия — на­при­мер, че­рез брау­зер или про­грамм­ный ин­тер­фейс при­ло­же­ния [Application Programming Interface, API]. Это оз­на­ча­ет, что вы мо­же­те при­об­ре­сти ме­сто для хра­не­ния дан­ных че­рез удоб­ный для вас брау­зер.&lt;br /&gt;
&lt;br /&gt;
» Уни­вер­саль­ный ин­тер­фейс Де­ла­ет ре­сур­сы дос­туп­ны­ми че­рез сеть и не­за­ви­си­мы­ми от обо­ру­до­ва­ния. По­это­му не долж­но иметь зна­че­ния, ис­поль­зуе­те ли вы Linux или Windows, ПК, план­шет или те­ле­фон. Прак­ти­че­­ски ка­ж­дый, кто пре­дос­тав­ля­ет об­лач­ный сер­вис, пред­ла­га­ет на вы­бор кли­ен­ты для Windows (не­ко­то­рые для Linux), Android или iOS.&lt;br /&gt;
&lt;br /&gt;
» Объ­е­ди­не­ние [pooling] ре­сур­сов По­зво­ля­ет про­вай­де­ру об­слу­жи­вать мно­же­ст­во кли­ен­тов с по­мо­щью мно­го­поль­зо­ва­тель­ской мо­де­ли и вир­туа­ли­за­ции, где ре­сур­сы ди­на­ми­че­­ски рас­пре­де­ля­ют­ся по за­про­су. Про­вай­де­ры ис­поль­зу­ют мощ­ные сер­ве­ры, ра­бо­тая с про­грам­ма­ми вир­туа­ли­за­ции (на­при­мер, KVM или vSphere), ко­то­рые по­зво­ля­ют за­пус­кать не­сколь­ко вир­ту­аль­ных сис­тем, ис­поль­зуе­мых раз­ны­ми кли­ен­та­ми.&lt;br /&gt;
&lt;br /&gt;
» Эла­стич­ность Пре­дос­тав­ля­ет воз­мож­ность бы­ст­ро из­ме­нять объ­ем ре­сур­сов по тре­бо­ва­нию. Это мо­жет уве­ли­чить про­из­во­ди­тель­ность и по­вы­сить на­деж­ность (бла­го­да­ря за­пас­ным мощ­но­стям).&lt;br /&gt;
&lt;br /&gt;
» Учет по­треб­ле­ния Оз­на­ча­ет, что об­ла­ко ав­то­ма­ти­че­­ски из­ме­ря­ет, от­сле­жи­ва­ет, кон­тро­ли­ру­ет и со­об­ща­ет о по­треб­ле­нии ре­сур­сов, обес­пе­чи­вая про­зрач­ность этих дан­ных как для про­вай­де­ра, так и для кли­ен­та.&lt;br /&gt;
&lt;br /&gt;
Об­лач­ные сер­ви­сы пре­дос­тав­ля­ют­ся по трем мо­де­лям:&lt;br /&gt;
&lt;br /&gt;
» Ин­фра­струк­ту­ра как ус­лу­га [Infrastructure as a Service, IaaS] — ба­зо­вая мо­дель сер­ви­са. IaaS пре­дос­тав­ля­ет по тре­бо­ва­нию та­кие вир­ту­аль­ные ре­сур­сы, как CPU, диск или сеть. За управ­ле­ние ре­сур­са­ми, опе­ра­ци­он­ные сис­те­мы и лю­бые при­ло­же­ния от­ве­ча­ют поль­зо­ва­те­ли. Среди примеров IaaS — Amazon EC2, Rackspace Cloud Servers или Google Compute Engine.&lt;br /&gt;
&lt;br /&gt;
» Платформа как услуга [Platform as a Service, PaaS] предоставляет пользователям платформу для разработки, обычно включающую операционную систему, среду исполнения (например, PHP или Python), базу данных и web-сервер. Вы разрабатываете и применяете приложения к облаку, и вам не надо беспокоиться о лежащих в основе компонентах. Примерами PaaS являются Amazon Elastic Beanstalk, Microsoft Azure, Google App Engine и Force.com.&lt;br /&gt;
&lt;br /&gt;
» ПО как услуга [Software as a Service, SaaS] — самая продвинутая модель сервиса; с ее помощью пользователям предоставляются приложения. Обычно пользователи не могут влиять на выбор платформы или базы данных, а в некоторых случаях даже на настройки приложения, но они получают рабочее приложение, которое выполняет их требования, и при этом им не надо беспокоиться об инфраструктуре. Оплата приложений производится за каждого пользователя или за каждую транзакцию. Среди примеров — Google Apps, Salesforce.com и Netflix.&lt;br /&gt;
&lt;br /&gt;
Последнее, о чем стоит сказать — это способы развертывания, определяющие, как облако создается и предлагается пользователю. Общественное облако доступно широкой публике. Частные облака используются исключительно одной организацией (лицом). Гибридные облака — комбинация общественных и частных.&lt;br /&gt;
===Пред­став­ля­ем Amazon Web Services (AWS)===&lt;br /&gt;
&lt;br /&gt;
AWS — это платформа, предлагающая гибкие сервисы ИТ-струк­ту­ры в ви­де web-сервисов. Звучит кра­си­во, но что это значит? По су­ти, Amazon предоставляет набор сервисов, доступных через стандартизованный интерфейс. В разных языках программирования интерфейсы разные, но на на­шем уро­ке мы рассмотрим сетевую консоль управления AWS. Следующий вопрос, который у вас, вероятно, возник: какие это сервисы? Ну, когда я заходил туда в прошлый раз, на сайте AWS было перечислено 36 продуктов, или сервисов. Они варьировались на­чи­ная с сервера, включая базы данных и хранение, и за­кан­чи­вая размещением и сетевыми сервисами. Все это довольно сложно и запутанно, поэтому мы рассмотрим некоторые из них более подробно.&lt;br /&gt;
&lt;br /&gt;
====Эластичные облачные вычисления (Elastic Cloud Computing, EC2)====&lt;br /&gt;
&lt;br /&gt;
Именно их имеют в виду большинство людей, говоря “Amazon cloud”. Они позволяют без особых проблем занимать мощности Amazon. Эти мощности расположены в разных регионах: на Востоке США (Северная Вирджиния), на Западе США (Орегон и Северная Калифорния), в ЕС (Ирландия), Азиатско-Тихоокеанском регионе (Сингапур, Токио и Сидней), Южная Америка (Сан-Паулу) и облако правительства США (GovCloud). Для нас в ЕС наиболее подходящим регионом вы­гля­дит Ирландия — особенно если вы планируете обработку личных данных, поскольку вам придется выполнять требования Закона о защите данных [Data Protection Act] от 1998 года. Каждый регион разделен на несколько зон Доступности [Availability]. Каждая зона является физиче­ски независимой инфраструктурой и разработана с целью создания высокой степени доступности.&lt;br /&gt;
&lt;br /&gt;
Указав регион и зону, которую вы хотите использовать, вы­би­рай­те оптимальную для себя опцию оплаты. Есть три возможности: On-Demand [По запросу], Reserved [Зарезервированная] и Spot [Немедленный платеж]. Если выбрать On-Demand, то начисляется почасовая оплата, без долгосрочных соглашений или предоплат. Вариант Reserved требует одноразовой предоплаты, которая резервирует один или три часа, со значительно более низкой почасовой ставкой, чем в варианте On-Demand. Вариант Spot позволяет клиентам конкурировать в борьбе за свободные мощности (прямо как на eBay). Теперь поговорим о типах EC2. Именно здесь кроется некая сложность. Есть типы M1, M3, Micro, High-Memory, High-CPU, Cluster Compute, Cluster GPU и High I/O. Большинство из них могут иметь варианты Small [Малый], Medium [Средний], Large [Крупный], Extra Large [Экстра-крупный] и Double/Quadruple Extra Large [Дважды/Четырежды экстра-крупный]. Разница в том, сколько ресурсов отводится каждому варианту. Например, M1 Large Instance имеет 7,5 GiB памяти; 2 ядра с 4 EC2 Compute Units (ECUs) в общей сложности и 850 ГБ места для хранения данных.&lt;br /&gt;
&lt;br /&gt;
Ваш выбор зависит от ва­ших по­треб­но­стей в памяти, месте на диске и мощности процессора.&lt;br /&gt;
&lt;br /&gt;
Последнее, что нужно выбрать — операционная система. Есть различные версии Linux и Windows. Все они предоставлены и запакованы в образ, именуемый Amazon Machine Image, или AMI. AMI могут содержать просто голую ОС — например, Ubuntu, или содержать также и приложения — например, MySQL или Oracle. Од­ни AMI бесплатны, а за дру­гие надо платить ежемесячно или на почасовой основе. Выбирайте с умом! Все AMI можно найти на рынке AWS, и вы сами можете создать свой собственный.&lt;br /&gt;
&lt;br /&gt;
====Хранение====&lt;br /&gt;
&lt;br /&gt;
Amazon на данный момент предлагает четыре разных вида хранения, которыми можно пользоваться с эк­зем­п­ля­ром EC2 или без не­го. Вероятно, лучше всего известен Simple Storage Service (S3). S3 — это интернет-хранение данных, предназначенное для web-приложений. Среди множества пользователей S3 — такие известные имена, как Dropbox, Ubuntu One и Minecraft. Новейшее дополнение к арсеналу сервисов хранения AWS — это Glacier, недорогой сервис хранения для архивных данных и резервных копий. Он оптимизирован для данных, доступ к которым требуется нечасто, и время загрузки у него несколько часов (как у ленточного накопителя). Ни S3, ни Glacier не могут напрямую использоваться эк­зем­п­ля­ром EC2, поэтому мы обратим более пристальное внимание на два оставшихся сервиса. Первый — это хранилище для эк­зем­п­ля­ров вир­ту­аль­ных ма­шин, которое автоматиче­ски распределяется при их запуске. Размер хранилища зависит от типа экземпляра (микроэкземпляр, который мы используем на данном уро­ке, во­об­ще не имеет хранилища).&lt;br /&gt;
&lt;br /&gt;
Важнейшее, что надо запомнить о хранилище экземпляра — то, что оно существует, только пока работает вир­ту­аль­ная ма­ши­на. Если в силу каких-либо причин она выключится, то и хранилище экземпляра будет удалено. А значит, его сле­ду­ет использовать только для чтения или для временных данных, например, /tmp. Самый важный и разносторонний тип хранилища — это Elastic Block Store (EBS), который предоставляет объемы хранения на уровне блочного устройства, виртуального диска. В отличие от хранилища экземпляра, EBS существует независимо от экземпляра EC2. Хотя объемы хранения EBS автоматиче­ски воссоздаются в Availability Zone, они не вполне надежны. Amazon заявляет о ежегодной потере данных в размере 0,1 – 0,5 %. Это намного лучше, чем обычный жесткий диск на ПК у вас дома, но все же это не 100 %. Чтобы решить эту проблему и чтобы включить резервное копирование, EBS имеет способность создавать моментальные снимки данных, хранящихся в S3. Эти моментальные снимки инкрементны, то есть сохраняются только изменения, сделанные после последнего моментального снимка. Это экономит время, требуемое для создания моментального снимка, и необходимый ему объ­ем хранилища.&lt;br /&gt;
&lt;br /&gt;
====По­чем?====&lt;br /&gt;
&lt;br /&gt;
Со всеми этими сервисами и опциями вам, вероятно, будет любопытно узнать, во сколько они вам обой­дут­ся. Хороший вопрос. Политика ценообразования AWS состоит из це­ло­го ряда элементов — что делает ее гибкой, сложной и запутанной. Во-первых, есть стоимость экземпляра, которая скла­ды­ва­ет­ся из стоимости AMI (если только вы не используете бесплатную AMI), предоплаты для зарезервированных вариантов и почасовой стоимости для зарезервированных вариантов и вариантов по запросу. Затем нужно на­ки­нуть стоимость хранилища для вашего объема и моментальных снимков EBS. Также начисляется небольшая оплата за каждый миллион запросов I/O по каждому объему EBS. Мы не коснулись ни одного из сетевых сервисов, но вам придется платить за сетевую передачу данных между Availability Zones &lt;br /&gt;
&lt;br /&gt;
и за весь исходящий интернет-трафик (входящий трафик бесплатный). И, наконец, нужно оплатить добавочные расходы — например, на мониторинг или балансировку нагрузки. Может показаться, что Amazon заставляет платить абсолютно за все, однако стоимость весьма разумная. Например, вышеупомянутый вариант M1 Large с 20-ГБ хранилищем EBS, 10 ГБ на моментальные снимки, 130 миллионами запросов I/O в месяц и 30 ГБ интернет-трафика будет стоить примерно $ 182 в месяц, если вы будете работать с ним по 12 часов в день. Круглосуточная работа без выходных обойдется в $ 306. Это может показаться слишком дорого, если вы просто хотите попробовать облачные вычисления. Но не отчаивайтесь! Amazon предлагает новым пользователям бесплатное пользование сроком на 12 месяцев. Он предлагает вам один вариант Micro, 30-ГБ хранилище EBS, 2 миллиона запросов I/O и 1-ГБ хранилище моментальных снимков. Наш урок использует бесплатный эк­зем­п­ляр, так что можете спокойно изучать основные функции AWS и совершенно ничего не тратить.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Заголовок=DECU — EC2 Compute Units |Ширина=40%|Содержание=&lt;br /&gt;
&lt;br /&gt;
Клиенты арендуют компьютерные мощности на почасовой основе вместо того, чтобы приобретать специальный процессор, и Amazon пришлось предложить общую единицу измерения мощности CPU. Ее назвали EC2 Compute Unit, или ECU. Один ECU примерно эквивалентен мощности CPU 1,0–1,2 ГГц 2007 Opteron или Xeon.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Имен­но так эк­зем­п­ля­ры EC2 Instances и раз­ные ви­ды хра­ни­лищ ра­бо­та­ют вме­сте.&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
===Курс на об­ла­ко===&lt;br /&gt;
&lt;br /&gt;
Ну вот, мы рассмотрели все кирпичи, из которых складывается основа; сложим же их вместе — и перейдем к их использованию.&lt;br /&gt;
&lt;br /&gt;
Для пер­во­го запуска экземпляра EC2 вам придется использовать AMI. Большинство экземпляров имеют локальное кратко­временное хранилище, ис­че­заю­щее по выключении экземпляра. Тома EBS могут прилагаться к экземпляру, и любой сделанный моментальный снимок хранится в S3. Приложение, работающее внутри экземпляра, может также использовать S3 API для хранения любых данных в блоках памяти S3. С точки зрения расходов важно помнить, что вы платите за место, отведенное под тома EBS, моментальные снимки и блоки памяти S3 независимо от того, используете ли вы их или нет (отмечены значком $ на рисунке).&lt;br /&gt;
&lt;br /&gt;
Хорошая новость в том, что если у вас не ин­тен­сив­но ис­поль­зуе­мый зарезервированный эк­зем­п­ляр, вы платите только за время, когда ваш эк­зем­п­ляр находится в рабочем состоянии.&lt;br /&gt;
&lt;br /&gt;
Давайте начнем с регистрации на сайте AWS. На https://aws.amazon.com щелкните по кнопке Sign Up наверху страницы. Если вы делаете покупки в Amazon, то большая часть вашей информации там уже имеется. Вам придется указать данные своей кредитной карты, но не волнуйтесь — Amazon не заставит вас ни за что платить, пока не истечет срок бесплатного пользования. По завершении проверки по номеру телефона и оставшихся шагов регистрации откройте консоль на https://console.aws.amazon.com. Это главный интерфейс управления всеми сервисами AWS. Теперь щелкните по EC2 Service, чтобы запустить EC2 Dashboard.&lt;br /&gt;
&lt;br /&gt;
Прежде чем что-либо делать, измените регион в верхней правой части с региона по умолчанию (N. Virginia) на Ирландию (Ireland), поскольку все экземпляры EC2 будут созданы в выбранном на текущий момент регионе.&lt;br /&gt;
&lt;br /&gt;
За шесть шагов, описанных на следующей странице, мы создадим новый эк­зем­п­ляр и убедимся, что он работает.&lt;br /&gt;
&lt;br /&gt;
Когда эк­зем­п­ляр за­ра­бо­та­ет, вы должны суметь соединиться с ним через SSH на его публичное имя DNS. Не паникуйте, если вам не удастся соединиться с ним сразу после запуска: у DNS может уйти одна-две минуты на обновление. Щелкните правой кнопкой по варианту и в меню выберите Connect. Есть две опции соединения. Вторая позволяет напрямую соединяться из браузера, если у вас установлена Java. Первая, которую мы собираемся испробовать, предназначена для соединения из командной строки. Следуйте инструкциям на экране. Единственное отличие в том, что в системах на базе Ubuntu надо заменить root на ubuntu:&lt;br /&gt;
&lt;br /&gt;
cd Downloads&lt;br /&gt;
&lt;br /&gt;
chmod 400 MyKeyPair.pem&lt;br /&gt;
&lt;br /&gt;
ssh -i MyKeyPair.pem ubuntu@&amp;lt;public_DNS_of_your_instance&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можете исследовать свой эк­зем­п­ляр. Попробуйте проверить память (free) и место на диске (df -h). Чтобы попробовать сделать что-то поинтереснее, давайте установим web-сервер Apache и соединимся с ним:&lt;br /&gt;
&lt;br /&gt;
apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
service apache2 start&lt;br /&gt;
&lt;br /&gt;
Как только вы увидите сообщение, подтверждающее, что сервер работает, попробуйте соединиться с ним с помощью своего web-браузера. Чтобы убедиться, что это ваш сервер, измените файл /var/www/index.html с помощью своего любимого редактора, например, Vi или nano, и перезагрузите страницу в своем браузере. Если вы не видите сделанных вами изменений, проверьте, сохранили ли вы файл в редакторе, и попробуйте снова. Если у вас получилось — отлично! Используйте свой облачный сервер для какого-нибудь крутого проекта. Помните, что пределы скрыты далеко за облаками!&lt;br /&gt;
&lt;br /&gt;
'''1 Запустите Instance Wizard&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Сначала щелкните по кнопке Launch Instance [Запустить экземпляр]. По умолчанию будет выбран классиче­ский Wizard [Мастер]. Нажмите на Continue [Продолжить]. На стадии AMI можете выбрать, с помощью какого AMI вы хотите запустить свой эк­зем­п­ляр. В этом руководстве мы будем использовать Ubuntu Server 12.04.1 LTS.&lt;br /&gt;
&lt;br /&gt;
'''2 Дан­ные об эк­зем­п­ля­ре&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
На шаге Details [Подробнее] может выбрать количе­ство экземпляров, которые вы хотите запустить (мы остановились на одном) и тип экземпляра (мы будем использовать T1 Micro, поскольку он бесплатный). Здесь вы можете решить, в какой Availability zone [Зоне доступности] вам нужно запустить свой эк­зем­п­ляр. На данный момент можете выбрать No Preference [Без предпочтений].&lt;br /&gt;
&lt;br /&gt;
'''3 Расширенная информация по экземпляру&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
В первом окне Options [Варианты] щелкните по опции Termination Protection [Защита от прерывания] и нажмите на Continue, чтобы перейти к настройке хранилища. Здесь вы можете изменить тома EBS, прилагаемые к экземпляру, но сейчас просто нажмите Continue. Третье окно позволит вам добавлять тэги к экземпляру, чтобы вы смогли распознать его впоследствии.&lt;br /&gt;
&lt;br /&gt;
'''4 Создание пары ключей&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Пара публичный/приватный ключ требуется для того, чтобы открыть SSH-соединение, поскольку варианты EC2 не используют пароль по умолчанию. Выберите имя для вашей пары ключей (вы можете иметь разные имена для разных систем) и нажмите Create &amp;amp; Download your Key Pair [Создать и загрузить вашу пару ключей]. Сохраните файл, когда этого потребует ваш браузер.&lt;br /&gt;
&lt;br /&gt;
'''5 Настройки брандмауэра'''&lt;br /&gt;
&lt;br /&gt;
Группы безопасности определяют то, к чему может быть получен доступ в вашем экземпляре. По умолчанию разрешен только SSH (порт 22). Давайте добавим HTTP из выпадающего меню. Не забудьте нажать Add Rule [Добавить правило], чтобы и 22, и 80 появились в списке портов.&lt;br /&gt;
&lt;br /&gt;
'''6 Обзор и запуск'''&lt;br /&gt;
&lt;br /&gt;
Проверьте настройки и запустите эк­зем­п­ляр. На странице Instance Overview [Обзор экземпляра] вы можете увидеть подробную информацию по экземпляру и его статусу. Запуск займет у вас не более одной-двух минут. Щелкнув правой кнопкой по экземпляру, вы сможете выполнять основные действия, такие как запуск/остановка или изменение настроек экземпляра. |&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	</feed>