Lfrmt 06 2016

Page 1

DVD ДАРОМ!

13 РАБОЧИХ СТОЛОВ

70

страниц учебников и статей! » Используем Bluetooth на Pi 3 » Fedora защитит ПК » Вскрытие micro:bit от BBC Академия кодинга: Станем светилами в Rust и Swift

Главное в мире Linux Июнь 2016  № 6 (210)

ХАКНЕМ РАБОЧИЙ СТОЛ! Спроектируем себе идеальное рабочее окружение Linux » Построим его на Gnome 3 или KDE 5 » Выберем менеджер окон » Ускорим интерфейс ...и пусть оно будет красивым!

Герои Raspberry Pi Люди со всего мира съехались, чтобы пообщаться с Pi Foundation Празднование 4-летия сообщества Pi  с. 34

Новый Pi 3

Взаимодействуем с ним через Bluetooth

Сравнение

GnuPlot

Редактируем вместе

Данные — это красиво

» Работаем слаженно в лучших многопользовательских редакторах

» Превратим Большие Данные в картины музейной ценности

ПОДПИСНЫЕ ИНДЕКСЫ В КАТАЛОГАХ Агентство «Роспечать» — 36343, «Почта России» — 11932, «Пресса России» — 90959


iteleradio.ru


Приветствие

Что мы делаем » Мы поддерживаем открытое сообщество, предоставляя источник информации и площадку для обмена мнениями. » Мы помогаем всем читателям получить от Linux максимум пользы, публикуя статьи в разделе «Учебники»: здесь каждый найдет что-то по своему вкусу. » Мы выпускаем весь код, появляющийся на страницах раздела «Учебники», по лицензии GNU GPLv3. » Мы стремимся предоставлять точные, актуальные и непред­ взятые сведения обо всем, что касается Linux и свободного ПО.

Кто мы На сей раз мы спро­си­ли на­ших экс­пер­тов: мы тут тол­ку­ем о по­строе­нии соб­ст­вен­но­го ра­бо­че­го сто­ла Linux — а ка­кую са­мую боль­шую вещь вы ко­гда-ли­бо по­строи­ли?

Джон­ни Бид­велл

Са­мую боль­шую вещь я по­стро­ил вме­сте с же­ной — это наш пер­вый дом (ок­ре­щен­ный Крас­ным) в граф­ст­ве Кент. Вто­рая по­сле нее, я ду­маю, се­рия пе­ре­во­дов ис­ланд­ских саг на анг­лий­ский язык или, воз­мож­но, моя фир­ма де­ко­ра­тив­но­го ис­к ус­ст­ва. Прав­да, это из мо­ей про­шлой жиз­ни, ко­гда я был Уиль­я­мом Мор­ри­сом.

Третья волна

»»

Нейл Бот­вик

Это кро­ме по­строе­ния ди­ст­ри­бу­ти­ва с 13 ра­бо­чи­ ми сто­ла­ми, вклю­чая из­ряд­ную мо­ро­к у с initrd, что­бы всё это за­ра­бо­та­ло вме­сте? Я по­стро­ил се­бе дом, прой­дя от пер­вич­но­го чер­те­жа че­рез все ста­дии строи­тель­ст­ва. Сам, всё сам... То есть как это — Minecraft не в счет?!

Мэтью Хэнсон

Са­мая боль­шая вещь, ко­то­рую я ко­гда-ли­бо стро­ил, ве­ро­ят­но, иг­ро­вой ПК, ко­то­рым я поль­зу­юсь и сей­час, не­при­лич­но мощ­ный: с дву­мя то­по­вы­ми GTX980 Ti и нереаль­ны­ми 32 ГБ ОЗУ DDR4. По-вашему, это пе­ре­бор? Со­гла­сен, но для иг­ры на Linux луч­ше не бы­ва­ет.

Лес Па­ун­дер

Я пом­ню свой пер­вый про­ект Arduino: сбор­к у све­ то­дио­дов, ку­п­лен­ную в ма­га­зи­не «всё-за-фунт», ко­то­рую я взло­мал, что­бы под­све­чи­вать кноп­к у при на­жа­тии. То­гда я и под­сел на элек­тро­ни­к у — это по­зна­ко­ми­ло ме­ня с куль­т у­рой «са­мо­дел­ки­ных», а за­тем с Raspberry Pi.

Ма­янк Шар­ма

Я люб­лю всё, что я ни стро­ил. От Лон­дон­ско­го мос­та до Дувр­ско­го зам­ка. Не по­ве­ри­те, я доль­ше во­зил­ся с авиа­нос­цем Enterprise, чем с кос­ми­че­­ским ко­раб­ лем! Что? Minecraft не в счет? Хм, в та­ком слу­чае мне при­дет­ся вер­нуть­ся в ваш мир. [Ред.: — И хва­тит уже иг­рать­ся!]

Ва­лен­тин Си­ни­цын

Ну, од­на­ж ­ды я сло­жил поч­ти двух­мет­ро­вую баш­ню из бру­соч­ков — это счи­та­ет­ся? Нет? То­гда пусть это бу­дет драй­вер к фо­то­рам­ке Samsung, по­зво­ляю­щий ис­поль­зо­вать ее как USB-дис­плей. Так, а где же это он у ме­ня?..

Raspberry Pi Foundation исполнилось четыре года. Впечатляют и циф­ ры, и факты: 8 миллионов проданных устройств, активнейшее сооб­ щество разработчиков и энтузиастов проекта, сотни мероприятий, де­ сятки книг... Комментарии излишни. Побочным эффектом стало резкое снижение цен на другие подобные ком­ пьютеры. «Невидимая рука рынка» сделала свое дело. Raspberry Pi Zero за $ 5 наглядно показывает, сколько на самом деле стоит современная электроника, а «старшие» модели — что она «умеет». По моим субъективным ощущениям, RPi 2 и 3 по производительности не уступают настольным компьютерам десяти­ летней давности. Даже «тяжелые» приложения, наподобие LibreOffice, работают со вполне приемлемой скоростью, а цена и энергопотребление устройства умень­шились примерно в 20 раз. Осмелюсь заявить, что мы имеем дело с «третьей волной» персональных компьютеров. Первой предлагаю считать Apple I, ZX Spectrum и им подобные, а второй — машины т. н. «стандартной архитектуры» х86. Третье поколение отличается от преды­д ущих в первую очередь тем, что процессор, чипсет и, в случае Rasp­ berry Pi, память интегрированы в единую «систему на кристалле (System-onChip, SoC)», и потенциал такой конструкции далеко не исчерпан. Новая эпоха только начинается!

Кирилл Степанов Главный редактор » info@linuxformat.ru

Как с нами связаться Письма для публикации: letters@linuxformat.ru Подписка и предыдущие номера: subscribe@linuxformat.ru Техническая поддержка: answers@linuxformat.ru Общие вопросы: info@linuxformat.ru Проблемы с дисками: disks@linuxformat.ru Вопросы распространения: sales@linuxformat.ru Сайт: www.linuxformat.ru, группа «ВКонтакте»: vk.com/linuxform > Адрес редакции: Россия, Санкт-Петербург, пр. Медиков, 5, корп. 7 > Телефон редакции: (812) 309-0686. Дополнительная информация на с. 112

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 1




Содержание «Изобрести самолет — ничто. Построить — уже что-то. Но летать — это всё!» Отто Лилиенталь

Обзоры Chakra ���������������������������� 12 Быть может, этот дистрибутив с многообеща­ ющим названием очистит наши магиче­ские меридианы и исцелит мирские печали; окунемся в эзотерику.

Tiny Core 7.0 ��������������������� 13 Разглядываем в микроскоп свежую версию Tiny Core Linux — посмотрим, что же нам удастся обнаружить...

> Tiny Core — для тех, кто любит всё миниатюрное.

React OS 0.4 ��������������������� 14

ХАКНЕМ ДЕСКТОП! Соберите себе рабочий стол сами: только тогда вы будете в нем уверены. Начните на с. 26

Срав­не­ние: Групповые редакторы  с. 20

Версия Windows с открытым исходным кодом; а оно кому-нибудь надо? Прямо и не знаем, но так и быть, разберемся.

FlexiHub 2.2 ���������������������� 15 Коммерче­ское решение по управлению и общему доступу к USB-устройствам через сети TCP/IP. Работает ли это и стоит ли затраченных денег? Спустим с цепи ракетный запуск с USB.

Fairphone 2 ���������������������� 16 Телефоны — штука нудная, но этот по край­ ней мере вносит в занудство новизну: этиче­ские соображения, модульность и открытость. К тому же поддерживает Sailfish OS, что куда интереснее.

Интервью > Обновления с ходу не разглядишь, но сменность модулей — это уже круто.

Superhot �������������������������� 17 Игра позиционирует себя как супер-жаркая, но мы-то отнеслись к ней с прохладцей.

Сообщество Pi — это не просто горстка лю‑ дей, которые возятся с железом. Празднуем 4-летие сообщества Pi  c. 34


ание на обороте »

На ва­шем бес­плат­ном DVD Сборка Ubuntu

ЭКСКЛЮЗИВ

64­битный

» 13 рабочих столов вам на пробу! » Новейшее ядро 4.2 » Богатый комплект приложений

Arch Bang

Лучший дистрибутив для слабых машин!

Window Maker 32­битный

Интерфейс NeXTSTEP, работающий в Debian

По­ба­луй­те се­бя и лю­би­мых под­пис­кой на LXF!

Ubuntu + 13 рабочих столов, ArchBang 2016.03, Window Maker 0.95.7

о Доступнre! o в AppSt

»»Ка­ж­дый ме­сяц — толь­ко луч­шие ди­ст­ри­бу­ти­вы

32­битный

LIVE­ДИСК: ГОТОВ К РАБОТЕ ВСЕ НЕОБХОДИМОЕ ДЛЯ СТАРТА В LINUX

ПЛЮС: HotPicks, Сравнение, и не только!  с. 106

Поль­зо­ва­те­лям Raspberry Pi

www.linuxformat.ru/subscribe

Ищи­те в номере

Новости Pi �������������������� 93

Z3 на ОС Tizen ������������������������ 39 Смартфон для корпоративного использования усиленно заботится о безопасности. Для Tizen уже готово MDM-решение по контролю и защите устройств.

Raspberry Pi сам себя продает и обзаводится движками квестов, а WD выпустила диск на 314 ГБ — это ли не комплимент Pi?

Raspberry Pi 3 ��������������� 93

BBC Micro:bit �������������������������� 40

Не полюбить его невозможно.

Мы обозрели и протестировали один из самых маленьких в мире программируемых компьютеров, и он нам понравился! Для школьников и не только.

Ubuntu Mate ����������������� 94 Как живется на Pi 3 оптимизированноому Ubuntu с новым ARM v7?

BleachBit ������������������������������ 44

Pi 3 Bluetooth ���������������� 95

Подойдет ли программа полного и окончательного удаления данных истинным параноикам?

Установите Bluetooth на своем новом Pi 3!

Академия кодинга

Учебники Основы Linux

Rust ���������������������������������������������� 84

Ключевые утилиты ������������ 54

Тем, кому надоел ненадежный, постоянно «падающий» код: выход есть! Поможет программирование на Rust.

Запускаем программы в условиях, отличаю­ щихся от реальных.

To-Do и Swift ����������������������������������� 88

Основы терминала

Всё, что вам надо для упорядочивания вашей жизни — составить список невыполненных дел, причем непременно на Swift.

Как управлять своими файлами из черноты терминала.

Привет, комп! �������������������� 58 Сделай сам

Отличное NAS ������������������� 60 Построим NAS для бедных из запчастей, подобранных на помойке.

Постоянные рубрики

Основы Linux

Новости �������������������� 6

Интервью LXF ����������� 34

HotPicks ����������������� 100

Архиватор оказался уязвим, Chrome игнорирует Flash, Pi Zero добавил разъем, появились новые чипы ARM, школьников США протестиро­ вали на знание IТ, 3D-печать резко ускорилась и одновременно подеше­ вела, информацию защитит eToken, а Toshiba выпустила 8‑ТБ диск.

Мартин О’Хэнлон, Бен Наттел, Мария Кеведо и Джеймс Митчелл — о сообществе Raspberry Pi, клубах кодинга и обучении школьников программированию.

Отведайте горяченького! Луч­ шие в мире новинки свободного ПО: Cellwriter, FromScratch, Htop, LibreOffice, Logwatch, MComix, Notesup, Pop, Pop, Win!, Raincat, Retroshare, Wammu.

Вести мобильных ОС ����������� 18 Android Wear набирает очки, IoT возможен на смартфонах, начата разработка российско мобильной ОС, а OC Tizen обзавелась первыми IТ-решениями.

Сравнение ��������������� 20 Гуртом и батьку бить сподручнее! А уж работать над документами — тем более. И вот вам редакторы для совместной деятельности: Etherpad Lite, Firepad, Gobby, Hackpad, OwnCloud Documents.

Рубрика сисадмина ���� 48 М-р Браун озаботился мониторингом сисадминов нового поколения — нет, это не массовый замер всплеска кровяного давления у сотрудников редакции перед закрытием номера, а слежение за серверами.

Ответы ������������������� 96 ВАШИ ПРОБЛЕМЫ РЕШЕНЫ! Нейл Ботвик — про проблемы с пере­ дачей файлов по сети при помощи Dukto, неработающие функциональ­ ные клавиши, отсутствующий рабо­ чий стол Mint, проблемы с загрузкой Lenovo, удаленные рабочие столы, установку дистрибутива при наличии ложного RAID.

Диск Linux Format ����� 106 Содержимое двустороннего DVD этого месяца.

Пропустили номер? ��� 108 И совершенно зря, ведь в LXF209 рассказывалось, как, встроив в ваше оборудование Linux, научить его летать — и в прямом, и в переносном смысле.

Через месяц ������������ 112 C Ubuntu 16.04 началась Конвер­ генция. И настал конец времен — Ubuntu заполонило всё вокруг... ну, по крайней мере оккупировало нашу обложку.

Многие тысячи их... ������������ 64 Наслаждайтесь Linux с друзьями — да так, чтобы все были довольны. Безопасность!

Fedora Security Lab ������������� 66 Вашей сети явно не помешает аудит от Fedora. Производим в графики

Gnuplot рисует ������������������� 70 Даже если данные хранятся в облаке, их всё равно можно представить эффектно. И снова графья

Scilab рисует тоже �������������� 74 Программа математиче­ских расчетов умеет показывать свой товар лицом. CRIU

Пробуем в деле ����������������� 78 Рассмотрим простейший сценарий восстанов­ ления состояния процесса. Pygame

Вслед за Майком ��������������� 80 В порядке полемики, создадим игру на Python, пользуясь библиотекой Pygame.


Новости

Новости В ЭТОМ НОМЕРЕ: Рис­ко­вый ар­хи­ва­тор » Chrome без Flash » Pi Zero с плю­сом » ARM ло­мит » IT-гра­мо­теи: тес­ты оза­да­чи­ли » Ско­ро­ст­ной прин­тер » Клю­чи­ки-за­моч­ки » Еще 8 ТБ

И ТЫ, 7‑ZIP?!

Уяз­ви­мо­сти в ар­хи­ва­то­ре »»Рубрику готовил АНДРЕЙ ГОНДАРЕНКОВ

Поль­зо­ва­те­лям 7‑Zip ре­ко­мен­ду­ет­ся сроч­но об­но­вить­ся до вер­сии 16.00.

Д

ве уяз­ви­мо­сти, “out-of-bounds read” и пе­ре­пол­не­ние «ку­чи», най­денные в 7‑Zip ис­с ле­д о­в а­т е­л я­м и Cisco Talos и ис­прав­лен­ные в на­ча­ле мая, мог­ ли ском­про­ме­ти­ро­вать мно­гие про­грамм­ ные про­дук ­ты и уст­рой­ст­ва, по­став­ляе­мые в ком­плек­те с от­кры­той биб­лио­те­кой для ар­х и­ви­ро­ва­ния фай­лов: пре­ды­д у­щ ие ис­ сле­до­ва­ния не раз по­ка­зы­ва­ли, что боль­ шин­ст­во раз­ра­бот­чи­ков прак­ти­че­­ски не от­ сле­ж и­в а­ю т уяз­в и­м о­с ти в ис­п оль­з уе­м ом ими сто­р он­н ем ко­д е и ред­ко об­н ов ­л я­ю т биб­лио­те­ки, вклю­чае­мые в свои про­ек ­ты. Уяз­ви­мость “out-of-bounds read” (CVE2016‑2335) про­я в­л я­е т­с я при об­р а­б от­ ке 7‑Zip фай­лов в фор­ма­те Universal Disk

Format (UDF), а пе­ре­пол­не­ние «ку­чи» (CVE2016‑2334) мо­жет про­изой­ти при об­ра­бот­ ке сжа­тых фай­лов биб­лио­те­кой zlib. «Обе уяз­ви­мо­сти яв­ля­ют­ся ре­зуль­та­том не­кор­р ект­н ой про­в ер­к и вво­д а. По­с коль­ ку дан­ные мо­г ут по­сту­пать из по­тен­ци­а ль­ но не­на­деж­но­го ис­точ­ни­ка, про­вер­ка вход­ ных дан­ных име­ет ре­шаю­щее зна­че­ние для безо­п ас­н о­с ти лю­б о­г о при­л о­же­ния. 7‑Zip под ­дер­ж и­в а­е т­с я все­ми ос­нов­ны­ми плат­ фор­ма­ми и яв­ля­ет­ся од­ной из са­мых по­ пу­ляр­ных се­го­дня в ис­поль­зо­ва­нии ути­лит для ар­х и­в а­ц ии, — пи­ш ут ис­с ле­д о­в а­т е ­ли Cisco Talos в сво­ем бло­ге. — Поль­зо­ва­те­ли бу­д ут удив­ле­ны, об­на­ру ­жив, сколь­ко про­ дук ­тов и уст­ройств за­тро­ну ­то».

> В но­вей­шей вер­ сии 7-Zip 16.00 уяз­ ви­мо­сти ис­прав­ ле­ны, но во мно­гих дру­гих про­дук­тах дей­ст­ву­ют ус­та­ рев­шие и ском­ про­ме­ти­ро­ван­ные биб­лио­те­ки. По­иск Google по­ка­зы­ва­ет, что 7‑Zip ис­ поль­зу­ет­ся во мно­г их про­ек ­т ах, вклю­чая уст­рой­ст­ва обес­пе­че­ния безо­пас­но­сти и ан­ ти­ви­рус­ные ре­ше­ния. Мно­гие соб­ст­вен­ные кор­по­ра­тив­ные при­ло­же­ния так ­же ис­поль­ зу­ют 7‑Zip. Уяз­ви­мо­сти ар­хи­ва­то­ра под­вер­ га­ют рис­к у эти про­дук­ты.

HTML5 — НАШЕ ВСЕ!

Google Chrome в IV квар­та­ле

К

IV квар­та­лу те­к у­ще­го го­да Google на­м е­р е­н а сде­л ать HTML5 ос­ нов­ным ин­т ер­ф ей­с ом в Chrome, кроме «бе­ло­го» спи­ска из 10 сай­тов, на ко­ то­рых за­пуск Adobe Flash Player раз­ре­шат. Согласно об­на­ро­до­ван­ному пла­ну Google “HTML5 by Default”, Adobe Flash Player попреж­не­му бу­дет вхо­дить в со­став брау­зе­ра Chrome, од­на­ко по­се­щае­мый сайт о его на­ ли­чии по умол­ча­нию из­ве­щать­ся не бу­дет. Ес ­л и сайт под ­д ер­ж и­в а­е т HTML5, по­ след­ний бу­дет ин­тер­фей­сом по умол­ча­нию. Ес­ли же сай­т у нужен Flash, при пер­вом по­ се­ще­нии в верх­у стра­ни­цы ото­бра­зит­ся на­ по­ми­на­ние, пред ­ла­гаю­щее раз­ре­шить или 6  |  LXF210 Июнь 2016

от­ка­зать­ся от вы­пол­не­ния Flash. При одоб­ ре­нии поль­зо­ва­те­ля, Chrome про­ин­фор­ми­ ру­ет сайт о на­ли­чии Flash Player и об­но­вит стра­ни­ц у. При по­с ле­д ую­щих по­се­ще­ни­я х это­го до­ме­на на­чаль­ный вы­бор поль­зо­ва­ те­ля, видимо, ос­та­нет­ся в си­ле, хо­тя Google все еще ра­бо­та­ет над оп­ция­ми для бу­ду­щих на­по­ми­на­ний. Ра­нее Google пре­д у­пре­ди­ла о бло­ки­ро­ва­нии с 30 ию­ня по­ка­за AdWords и DoubleClick Digital Marketing через Flash — по­ми­мо при­ня­тия дру­гих мер по сниже­нию его ро­ли. Пе­чаль­но из­вест­на под­вер­жен­ ность Flash Player раз­лич­ным уяз­ви­мо­стям. В те­че­ние го­да браузер Chrome бу­дет по­ став­лять­ся с пе­рио­ди­че­­ски об­нов­ляе­мым

бе­лым спи­ском из 10 круп­ней­ших сай­тов с Flash (та­ких как YouTube, Facebook, Ama­ zon, Mail.ru, Yahoo.com, VK.com, Live.com, Yandex.ru, OK.ru). Кор­по­ра­тив­ным поль­зо­ ва­те­лям пре­дос­тавят вы­бо­р по­ли­ти­ки «все­ гда за­пус­кать со­дер­жи­мое Flash».

> У поль­зо­ва­те­лей Chrome бу­дут за­ пра­ши­вать раз­ре­ ше­ние на за­пуск Flash Player для кон­крет­но­го сай­та.

www.linuxformat.ru/subscribe

Ис­точ­ни­ки: www.pcworld.com; www.computerworld.com

Google по умол­ча­нию за­бло­ки­ру­ет ин­фор­ми­ро­ва­ние сай­тов о на­ли­чии про­иг­ры­ ва­те­ля Flash в сво­ем брау­зе­ре.


Новости ОБОРУДОВАНИЕ

Raspberry Pi Zero об­нов­лен До­пол­ни­тель­но встро­ен­ный разъ­ем для под­клю­че­ния ка­ме­ры не по­вли­ял на це­ну.

О

б­н ов­л ен­н ый Raspberry Pi Zero, в ог­ра­ни­чен­ных ко­ли­че­­ст­вах дос­ туп­ный у та­ких по­став­щи­ков, как Pi Hut и Pimoroni, поч­ти иден­ти­чен ори­ги­ на ­лу. От­ли­чие за­к лю­ча­ет­ся в до­бав­лен­ном на пра­вый край пе­чат­ной пла­ты разъ­е­ме, к ко­то­ро­му на гиб­ком шлей­фе под­к лю­ча­ ет­с я офи­ц и­а ль­н ый мо­д уль Raspberry Pi camera. Соз ­д а­тель Raspberry Pi Эбен Ап­ тон [Eben Upton] ут­вер­ж да­ет, что от­сут­ст­вие разъ­е­м а для под­к лю­ч е­ния ка­м е­р ы бы­л о наи­бо­лее час­то упо­ми­нае­мой поль­зо­ва­те­ ля­ми функ­ци­ей, не­об­хо­ди­мой Pi Zero. Ко­ ман­да вос­поль­зо­ва ­лась пау­зой пе­ред на­ча­ лом за­пус­ка в про­из­вод­ст­во но­вой мо­де­ли Raspberry Pi 3, что­бы пе­ре­ра­бо­тать пла­т у. За ­дей­с т ­во­в ан тот же са­мый разъ­ем FPC,

что и ис­поль­зуе­мый в Compute Module De­ velopment Kit. Вы­пу­щен­ный в про­шлом го­ду, Zero име­ ет са­мый ма­лень­кий форм-фак­тор сре­ди рас­т у­ще­го се­мей­с т­ва уст­ройств Raspber­ ry Pi (его раз­ме­ры все­го 65 × 30 мм). В этой мо­д е­л и ис­п оль­з у­е т­с я тот же SoC Broad­ com BCM2835, что и в ори­ги­наль­ном Rasp­ berry Pi, но с бо­лее вы­со­кой так­то­вой час­ то­той 1 ГГц и 512 МБ па­мя­т и. Од­на­ко для дос­ти­же­ния ком­пакт­ных раз­ме­ров (и низ­ кой це­н ы) по­т ре­б о­в а­л ись ком­п ро­м ис­с ы: для эко­но­мии про­с тран­с т­ва пла­та Pi Zero уком­п лек ­т о­в а­н а ми­н иа­т юр­н ы­м и разъ­ ема­­ми и не располагает не­ко­то­рыми воз­ мож ­н о­с тями дру ­г их мо­д е ­л ей Raspberry Pi, вклю­чая порт Ethernet и разъ­е­мы для

> Че­рез шлейф дли­ ной 15 см мо­дуль ка­ме­ры под­клю­ чен к мо­ди­фи­ци­ро­ ван­но­му Raspberry Pi Zero.

под­к лю­че­ния ка­ме­ры и дис­плея. Об­нов­ле­ ние Pi Zero уст­ра­ня­ет хо­тя бы один из упо­ мя­ну ­тых недо­с­тат­ков, причем без наращи­ вания це­ны. «Уже вы­пу­ще­но 30 тыс. но­вых Zero, и мы бу­дем про­из­во­дить еще бо­лее 1 тыс. еже­д нев­но, по­к а не удов­ле­т во­рим весь спрос», ска­зал Ап­тон.

МАЛ, ДА УДАЛ!

Бур­ный про­гресс ARM Воз­ник­нут ли у Intel про­бле­мы на рын­ке сер­ве­ров?

Ис­точ­ни­ки: www.theinquirer.net; www.computerworld.com

Н

а вы­с тав­к е Computex ком­п а­н ии Cavium и Marvell пред­ста­ви­ли но­ вые чи­пы ARM для сер­ве­ров и бы­ то­вых уст­ройств. Чи­пы на ARM уже при­выч­ но до­ми­ни­ру­ют в смарт­фо­нах и план­ше­тах, но пред­став­лен­ные на со­сто­яв­шей­ся в на­ ча­ле ию­ня в Тай­бэе вы­став­ке Computex но­ вин­ки от Cavium и Marvell де­мон­ст­ри­ру­ют дос­та­точ­ную зре­лость та­ких про­цес­со­ров для ис­поль­зо­ва­ния на сер­ве­рах. Сер­ве­ры ARM рас­смат­ри­ва­ют­ся в ка­че­­ст­ве энер­го­ эф­фек ­тив­ной аль­тер­на­ти­вы сис­те­мам Intel x86, и, хо­тя сер­вер­ные чи­пы ARM су­ще­ст­ву­ ют дос­та­точ­но дав­но, их ши­ро­ко­му рас­про­ стра­не­нию ме­ша­ли раз­лич­ные ап­па­рат­ные и про­грамм­ные про­бле­мы. Те­перь же под­ держ­к а па­мя­т и DDR4, но­вей­ших I/O и се­ те­вых тех­но­ло­гий де­ла­ет сер­вер­ные чи­пы ARM все бо­лее кон­к у­рен­то­спо­соб­ны­ми. По дан­ным IDC, в 2015 г. на рын­ке чи­ пов для сер­в е­р ов Intel за­н и­м а ­л а 99,2  %, при этом про­из­во­ди­те­ли сер­вер­ных чи­пов ARM в те­че­ние мно­гих лет пы­та­ют­ся соз­ дать свою аль­тер­на­ти­ву Intel Xeon. Ана­ли­ти­ ки AMD, еще од­но­го про­из­во­ди­те­ля чи­пов для сер­ве­ров, уве­ре­ны, что к 2020 г. до­ля ARM в этом сег­мен­те со­ста­вит 20 %. На Computex ком­па­ния Cavium показала ThunderX2, сер­вер­ный про­цес­сор вто­ро­го

по­ко­л е­н ия на ос­н о­в е про­е к ­т а соб­с т­в ен­ ной раз­ра­бот­к и. Его про­из­во­ди­тель­ность при­мер­но вдвое вы­ше пред­ше­с т­вен­ни­к а, ThunderX, пред­став­лен­но­го бо­лее чем 2 го­ да на­зад. Двух­со­кет­ный сер­вер с про­цес­ со­ром ThunderX2 мо­жет иметь до 108 ядер CPU и 3 ТБ па­мя­ти. Мак­си­маль­ная так­то­ вая час­то­та ThunderX2 со­став­ля­ет 3.0 ГГц, за­дей­ст­во­ва­ны но­вые тех­но­ло­гии I/O, под­ дер­жи­ва­ет­ся по­след­няя па­мять DDR4: все вме­с те зна­ч и­т ель­н о по­в ы­ш а­е т ско­р ость сер­ве­ра. По оцен­ке Cavium, у ThunderX2 ве­ ли­чи­на internal interconnect в 2,5 вы­ше, чем у ThunderX. ThunderX2 пред­на­зна­чен для се­т е­вых сер­ви­с ов и Rack-сер­ве­ров. Сер­ве­ры ARM пред­став­ля­ют ин­те­рес для «об­лач­ных» раз­ вер­ты­ва­ний; этот чип мо­жет най­ти при­ме­ не­ние в ги­пер­мас­ш та­би­руе­мых кон­фи­г у­ ра­ц и­я х. Cavium не на ­зва ­ла сро­ков, ко­гда но­вин­ка бу­дет дос­т уп­на, од­на­ко та­кой ав­ то­ри­тет­ный вен­дор как Gigabyte уже объ­ я­в ил о по­с тав­к ах сер­в ер­н ых про­д ук ­т ов с ThunderX2. Про­из­во­ди­тель­ность но­вых ли­не­ек ARMbased чи­п ов Marvell Armada 7000 и 8000 зна­чи ­т ель­но ус ­т у ­па­е т Cavium ThunderX2, по­сколь­ку ори­ен­ти­ро­ва­ны они, глав­ным об­ ра­зом, на уст­рой­с т­ва хра­не­ния и се­те­вые

уст­рой­ст­ва. Од­на­ко мо­г ут ис­поль­зо­вать­ся и в сер­ве­рах на­чаль­но­го уров­ня. Armada ос­ но­ва­на на про­ек­те ARM Cortex-A72, ко­то­рый так­же ис­поль­зу­ет­ся в смарт­фо­нах. От ти­по­во­го Cortex-A72 для смарт­фо­нов но­вые чи­пы от­ли­ча­ет под­держ­ка вир­т уа­ли­ за­ц ии, па­мя ­т и DDR4, кор­р ек­ц ия оши­б ок, Gigabit ethernet и мно­гих про­то­ко­лов хра­ не­ния и I/O. Чи­пы дос­т уп­ны в 2‑ и 4‑ядер­ ной кон­фи­г у­ра­ц и­я х, с так ­то­вой час­то­той до 2.0 ГГц. Да­т ы на­ча ­ла по­с та­вок Marvell так­же не на­зы­ва­ет.

> Про­де­мон­ст­ри­ро­ван за­пуск бе­та-вер­сии FreeBSD на сер­вер­ных 64-бит­ных чи­пах ARM от Cavium.

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 7


Новости УЧАЩИЕСЯ

Не­ожи­дан­ные ре­зуль­та­ты Школь­ни­ков США про­тес­ти­ро­ва­ли на ин­же­нер­ную и тех­но­ло­ги­че­скую гра­мот­ность.

О

б­на­ро­до­ван­ные не­д ав­но ре­зуль­ та­ты про­ве­ден­ных в 2014 г. про­ ек­том National Assessment of Edu­ cational Progress (NEAP) при пра­ви­тель­ст­ве США тес ­т ов по­к а ­з а ­л и, что 45  % де­в о­ чек-вось­м и­к ласс­н иц луч­ш е спра­в и­л ись с пред ­л о­ж ен­н ы­м и за ­д а­н ия­м и, чем 42  % юно­шей. Это был пер­вый тест по тех­но­ло­ ги­че­­ской и ин­же­нер­ной гра­мот­но­сти (TEL) от NEAP для Nation Report Card, где так­ же оце­ни­ва­ют­ся на­вы­ки уча­щих­ся по эко­ но­ми­ке, гео­г ра­фии, ма­те­ма­т и­ке, чте­нию, ес­те­ст­во­зна­нию и ис­то­рии США. TEL про­ шли 21500 вось­ми­к ласс­ни­ков в 840 го­су­ дар­ст­вен­ных и ча­ст­ных шко­лах по всей тер­ ри­т о­р ии США. Пред­м ет­н ы­м и раз­д е­л а­м и TEL бы­ли «Тех­но­ло­гии и об­ще­ст­во [Technol­ ogy and Society]», «Ди­зайн и сис­те­мы [De­ sign and Systems]», «Ин­фор­ма­ци­он­но-ком­ му­ни­к а­ц и­он­ные тех­но­ло­г ии (ICT)», тогда как «прак ­т и­к а» за­т ра­г и­в а ­ла «По­ни­ма­ние тех­но­ло­г и­че­­ских прин­ци­пов [Understand­ ing Technological Principles]», «Раз­ра­бот­ка

ре­ш е­н ий и дос­т и­ж е­н ие це­л ей [Develop­ ing Solutions and Achieving Goals]», «Об­ще­ ние и со­труд­ни­че­­ст­во [Communicating and Collaborating]». Прак ­т и­че­­с кие за ­д а­чи ICT вклю­ч а ­ли, например, соз ­д а­ние кон ­т ен ­т а для сай ­т а и про­д ви ­же­ние Цен ­т ра от­д ы ­х а под­ро­ст­ков. В ито­ге, де­вуш­ки обош­ли юно­шей в раз­ де­л ах ICT, Communicating and Collaborat­ ing, а так­же Developing Solutions and Achiev­ ing Goals. По­ми­мо ген­дер­ной, от­ме­че­на раз­ни­ц а ре­зуль­та­тов в за­ви­си­мо­сти от ра­со­вой/эт­ ни­че­­с кой при­над ­леж­но­с ти тес­т и­руе­мых. Оцен­к у proficient [хо­ро­шо] или вы­ше по­лу­ чи­ли 56 % бе­лых уча­щих­ся, 56 % уча­щих­ся ази­ат­ско­го про­ис­хо­ж ­де­ния, 18  % аф­роа­ме­ ри­кан­ских и 28 % ис­па­ноя­зыч­ных уча­щих­ ся. NEAP от­ме­ча­ет, что ре­зуль­та­ты бе­лых и чер­ных де­ву­шек вы­ше, чем у их свер­с т­ ни­ков муж­ско­го по­ла, в то вре­мя как у ази­ ат­ских и ла­ти­но­аме­ри­кан­ских юно­шей и де­ ву­шек ре­зуль­та­ты на од­ном уров­не.

> Срав­ни­тельные ре­зуль­та­ты де­ ву­шек и юно­ шей в раз­де­лах ICT content area и Communicating and Collaborating.

В рам­ках тес­ти­ро­ва­ния NEAP так­же оп­ ро­сил уча­щих­ся об ис­точ­ни­ках их зна­ний о тех­н о­л о­г и­я х и ин­же­н ер­н ом ис­к ус­с т­в е. Для 63 % та­ко­вы­ми яв­ля­ют­ся рас­ска­зы чле­ нов се­мьи, 13 % по­лу­чи­ли свои зна­ния са­ мо­стоя­тель­но, и толь­ко 13 % на­зва­ли сво­их учи­те­лей. В це­лом же лишь 43 % вось­ми­ класс­ни­ков в этих тес­тах по­лу­чи­ли оцен­ ку proficient или вы­ше, при этом ре­зуль­та­ты TEL ока­за­лись луч­ше, чем в лю­бой дру­гой об­лас­ти.

3D-ПЕЧАТЬ

Пе­чат­ная ре­во­лю­ция HP

К

ом­па­ния Hewlett Packard го­то­ва на­ чать вы­пуск «пер­вых в ми­ре» про­ мыш­лен­ных 3D-прин­те­ров, по­зво­ ляю­щих в ус­ло­ви­ях про­из­вод­с т­ва бы­с т­ро соз­д а­в ать объ­ек­т ы-про­т о­т и­пы или да­же не­боль­шие пар­тии про­дук­ции. Ре­ше­ние HP Jet Fusion 3D Printing раз­ра­бо­та­но для вы­ пус­к а де­т а ­л ей про­мыш­л ен­н о­г о ка­ч е­­с т­в а до 10 раз бы­ст­рее и вдвое де­шев­ле ны­неш­ них ком­мер­че­­ских сис­тем 3D-пе­ча­ти. Порт­ф о­л ио HP из­н а­ч аль­н о вклю­ч а­е т 2 мо­д е ­ли. Вы­п уск HP Jet Fusion 3D 4200, пред­на­зна­чен­но­го для соз­д а­ния про­то­ти­ пов и вы­пус­ка мел­ко­се­рий­ных пар­тий, нач­ нет­ся в кон­це 2016 г. HP Jet Fusion 3D 3200, бо­лее ори­ен­ти­ро­ван­ный на соз­д а­ние про­ то­ти­пов и пред­ла­гаю­щий улуч­шен­ную про­ из­во­ди­тель­ность при мень­шей се­бе­с тои­ мо­с ти, пла­н и­р у­е т­с я к вы­п ус­к у в 2017 г. На сай ­т е HP уже воз­м о­ж ен пред ­з а­к аз (http://www.hp.com/go/3Dcontactus), но це­ ны не из де­ше­вых: HP Jet Fusion 3D 3200 дос­т у­п ен за $130 тыс. (око­л о €90 тыс.), 8  |  LXF210 Июнь 2016

в то вре­мя как це­на пол­но­го ком­плекс­но­ го ре­ш е­ния, вклю­ч аю­щ е­г о прин­т ер и от­ дель­н ую Processing Station, на­ч и­н а­е т­с я с $155 тыс. (око­ло €108 тыс.). Для про­грес­са в об­лас­ти про­мыш­лен­ ной 3D пе­ча­ти HP при­зна ­ла не­об­хо­ди­мым взаи­мо­дей­с т­вие с парт­нер­ской эко­си­с те­ мой и от­кры­ты­ми плат­фор­ма­ми, и зая­ви­ ла, что уже ра­бо­та­ет, сре­ди про­чих, с BMW, Siemens, Materialise, Autodesk и Proto Labs. Со­труд­ни­че­­с т­во с та­ки­ми про­из­во­ди­те­ля­ ми ПО как Siemens и Autodesk, по­зво­ля­ет HP пре­дос­тав­лять сво­им кли­ен­там пол­ное ком­плекс­ное ре­ше­ние, от про­цес­са про­ек­ ти­ро­ва­ния до пе­ча­ти. А в со­че­та­нии с ра­бо­ чей стан­ци­ей HP Sprout Pro, объ­е­ди­няю­щей ПК со ска­не­ром и про­ек­то­ром, кли­ен­ты мо­ гут вы­пол­нить пол­ную оциф­ров­к у сво­его про­из­вод­ст­вен­но­го про­цес­са. Тех­но­ло­гия пе­ча­ти HP пре­ду­смат­ри­ва­ет по­слой­ное соз­да­ние объ­ек ­та пу ­тем тер­ми­ че­­ско­­го за­кре­п­ле­ния по­рош­ко­во­го пла­сти­ ко­во­го ма­те­риа ­ла с примене­ни­ем аген­тов,

> 3D-прин­тер HP Jet Fusion 3D 4200 (спра­ва) и стан­ция Processing Station.

www.linuxformat.ru/subscribe

ак ­т и­ви­зи­рую­щ их или за­мед ­ляю­щ их про­ цесс для обес­пе­че­ния тре­буе­мо­го ре­зуль­ та­та. Пре­иму­ще­ст­во про­цес­са HP Jet Fusion в том, что весь слой ук­ла­ды­ва­ет­ся за один про­х од, в от­л и­ч ие от фо­к у­с и­р ую­щ ей­с я на од­ной точ­ке пе­чат­ной го­лов­ки, а так­же тех­но­ло­гии спе­ка­ния по­рош­ков (Selective Laser Sintering). Кроме прин­те­ра, при под­ го­тов­ке пра­виль­но­го со­че­та­ния ма­те­риа­лов для кон­крет­ной ра­бо­ты внут­ри Build Unit, а так ­же для очи­ст­ки по­сле пе­ча­ти, про­цес­с HP вовлекает от­дель­ную станцию обработ­ ки, об­слу­живающую не­сколь­ко прин­те­ров.

Ис­точ­ники: www.zdnet.com; www.theinquirer.net

Ре­ше­ние Jet Fusion в 10 раз бы­ст­рее ны­неш­них ком­мер­че­­ских 3D-прин­те­ров.



Новости ЗАЩИТА ДАННЫХ

Ис­пы­та­ния прой­де­ны Сис­те­ма Dallas Lock Linux с элек­трон­ны­ми клю­ча­ми eToken ра­бо­та­ет кор­рект­но. под управ­ле­ни­ем сле­дую­щих ОС се­мей­ст­ва Linux: Debian 7.8 (systemd), CentOS 7.0, Red Hat Enterprise Linux Server 7.0, Fedora 20, openSUSE 13.2. Со­в ме­с т­н о с про­д ук ­т ом для Windows-плат­форм Dallas Lock 8.0 воз­ можно по­с трое­ние ком­плекс­ной сис­те­мы за­щи­ты ин­фор­ма­ции в ге­те­ро­ген­ной сре­де. Осо­бен­ность про­д ук ­т а — его сер­висори­ен­ти­ро­ван­ная ар­хи­тек ­т у­ра, пригодная для за­щи­ты слож­ных рас­пре­де­лен­ных сис­ тем с по­вы­шен­ными тре­бо­ва­ниями к мас­ шта­би­руе­мо­сти и управ­ляе­мо­сти. Из­де­лие на­хо­дит­с я в про­цес­се сер­т и­ фи­ка­ции (ре­ше­ние ФСТЭК Рос­сии №  4792 от 19.03.2015), пла­но­вый срок окон­ча­ния ко­то­рой — II квар­тал 2016 г. Элек ­т рон­н ый USB-ключ eToken PRO (Java) — это пер­с о­н аль­н ое сред­с т ­во ау­ тен­т и­ф и­к а­ц ии и за­щ и­щ ен­н о­г о хра­н е­ния поль­зо­ва­тель­ских дан­ных, ап­па­рат­но под­ дер­жи­ваю­щее ра­бо­т у с циф­ро­вы­ми сер­ти­ фи­ка­та­ми и элек­трон­ной под­пи­сью. Для его кор­рект­ной ра­бо­ты с СЗИ НСД Dallas Lock Linux не­об­хо­ди­мы Linux CCID Driver, а так­же SafeNet Aithentication Client 9.0 для Linux.

Вышел Sysdig Falco — ин­ст­ру­мент кон­тро­ля безо­пас­но­сти фи­зи­че­ ­ских и вир­т у­а ль­ных ма­шин, мо­ни­то­рин­га ра­бо­ты сис­те­мы, кон­тей­не­ров и при­ло­ же­ний, фик­са­ции от­к ло­не­ний от ти­по­ вого по­ве­де­ния. Ис­точ­ник: sysdig.com

»

В осен­ней ста­биль­ной вет­ке Chro­ me OS реа ­ли­зуют рас­про­стра­не­ние Android-при­ло­же­ний че­рез Google Play. Ис­точ­ник: chrome.googleblog.com

»

Со­сто­ял­ся пер­вый офи­ци­а ль­ный вы­пуск плат­фор­мы Horizon (до­к у­ мен­то-ори­ен­ти­ро­ван­ная СУБД в фор­ма­те JSON) от про­ек­та RethinkDB. Ис­точ­ник: horizon.io

»

В про­ек­ты GNU во­шел ди­ст­ри­бу ­тив Libreboot (сво­бод­ный форк Core­ Boot), со сво­бод­ной от дво­ич­ных вста­вок за­ме­ной про­прие­тар­ных BIOS и UEFI. Ис­точ­ник: lists.gnu.org

»

HDD Toshiba X300 8TB К се­мей­ст­ву же­ст­ких дис­ков клас­са high-end от Toshiba до­ба­ви­лась 8‑ТБ мо­дель.

T

10  |  LXF210 Июнь 2016

Nokia, со­хра­нив­шая пра­ва на ин­тел­лек ­т у­а ль­ную соб­ст­вен­ ность и бренд, пре­дос­тав­ила эти права фин­ской ком­па­нии HMD, для вы­пус­ка смарт­фо­нов и план­ше­тов на Android. Ис­точ­ник: company.nokia.com

»

ДИСКОТЕКА

oshiba пред­с та­ви­ла но­вый вы­со­ко­ про­и з­в о­д и­т ель­н ый же­с т­к ий диск д ля мощ­н ых на­с толь­н ых ра­б о­ чих стан­ц ий, ПК «все-в-од­ном», иг ­ро­вых и до­м аш­них ме­д иа-ком­пь­ю­т е­р ов. В ори­ ен­т и­ро­в ан­ном на поль­зо­в а­т е­лей с вы­с о­ ки­м и за­п ро­с а­м и к про­и з­в о­д и­т ель­н о­с ти (гра­фи­че­­ские ди­зай­не­ры, гей­ме­ры и т.  п.) се­мей­ст­ве 3,5‑дюй­мо­вых HDD Toshiba X300 поя­ви­лась мо­дель ем­ко­с тью 8 ТБ. Ско­ро­ сть диска — 7200 об./мин., а бу­фер 128 МБ и двух­сту­пен­ча­тый при­вод по­вы­ша­ют ско­ рость и точ­ность чте­ния/за­пи­си и сво­д ят на нет влия­ние виб­ра­ци­и на по­зи­цио­ни­ро­ ва­ние го­лов­ки. X300 8TB пред ­ла­га­ет фор­ мат раз­мет­ки Advanced Format и тех­но­ло­ гию для по­вы­ше­ния бы­ст­ро­дей­ст­вия Native Command Queuing. Под­дер­ж и­ва­ют­ся пер­ пен­д и­к у­ляр­ная маг­нит­ная за­пись (PMR),

Из но­ви­нок systemd 230: чи­ст­ка про­цес­сов по за­вер­ше­нии се­ан­са, под­держ­ка уни­фи­ци­ро­ван­ной ие­рар­хии cgroup, на­строй­ка прокси ARP для се­ те­во­го ин­тер­фей­са, соз­да­ние вир­т у­ аль­ных пря­мых се­те­вых лин­ков ме­ж ­д у кон­тей­не­ра­ми. Ис­точ­ник: lists.freedesktop.org

»

с плот­н остью хра­н е­ния в три раза вы­ш е тра­ди­ци­он­ной, и тех­но­ло­г ия за­пи­си TMR (Tunnel Magneto-Resistive). Диск ос­на­щен дат­чи­ком уда­ра, за­дей­ст­во­ва­на тех­но­ло­гия за­щи­ты дан­ных Ramp Loading Technology. Про­из­во­ди­тель­ность пор­та SATA — 6,0 Гб/c, сред­няя за­держ­ка — 4,17 мс. В спе­ци­фи­ка­ ци­ях не при­во­дится надежность по­ка­за­те­ля «Уро­вень не­вос­ста­но­ви­мых оши­бок (UER)» чте­ния, но The Inquirer ут­вер­ж да­ет, что она со­став­ля­ет впе­чат­ляю­щие 1 × 10E14. Минувший год был труд­ным для Toshi­ ba, ком­п а­ния стре­мит­с я на­в ер­с тать упу­ щен­ное, и ры­нок HDD- и SSD-на­ко­пи­те­лей становится для нее од­ним из клю­ч е­вых. Ли­ней­ка мо­де­лей X300, на 4, 5 и 6 ТБ, за­пу­ щена в сен­тяб­ре 2015 г. Це­на X300 8TB со­ ста­вит €262 (око­ло 28 тыс. руб.), на диск да­ ет­ся стан­дарт­ная двух­лет­няя га­ран­тия. |

Krita 3.0 пе­ре­ве­ден на Qt 5 и KDE Frameworks 5, по­лу­чил ин­ст­ру­ менты соз­да­ния ри­со­ван­ной по­кад­ро­вой ани­ма­ции и рас­ши­рил ра­бо­т у со слоя­ми. Ис­точ­ник: krita.org

»

Се­те­вая ОС OpenSwitch от HP пе­ре­ шла под эгиду The Linux Foundation, по­лу­чив ста­т ус со­вме­ст­но­го про­ек ­та. Ис­точ­ник: www.linuxfoundation.org

»

Соз­да­тель ownCloud Франк Кар­ ли­чек [Frank Karlitschek] объ­я­вил о соз­да­нии фор­ка про­ек­та — Nextcloud. Ис­точ­ник: karlitschek.de

» > Но­вый 3,5-дюй­ мо­вый на­ко­пи­тель ем­ко­стью 8 ТБ от­ лично по­дой­дет про­дви­ну­тым поль­ зо­ва­те­лям, ко­то­ рым важ­ны мак­си­ маль­ная функ­цио­ наль­ность и боль­ шой объ­ем.

www.linuxformat.ru/subscribe

Пре­мьер РФ Д.  Мед­ве­дев под­пи­сал по­ста­нов­ле­ние о соз­да­нии еди­ной сре­ды об­ме­на и со­пос­тав­ле­ния дан­ных государственных инфоре­сур­сов, обес­пе­ че­ния од­но­крат­но­го вво­да таких дан­ных, дос­т у­па го­сор­га­нов и граждан к пол­ной, дос­то­вер­ной и ак ­т у­а ль­ной ин­фор­ма­ции. Ис­точ­ник: government.ru

»

Источники: www.aladdin-rd.ru; www.theinquirer.net

К

ом­па­нии «Алад­дин Р. Д.» и «Кон­ фи­д ент», рос­с ий­с кие раз­р а­б от­ чи­к и и по­с тав­щи­к и ре­ше­ний для обес­п е­ч е­н ия ин­ф ор­м а­ц и­о н­н ой безо­п ас­ но­с ти, за­в ер­ш или тес­т о­в ые ис­п ы­т а­н ия на со­вмес­т и­мость сво­и х про­д ук ­тов. Сер­ ти­ф и­к а­т а­м и вза­и м­н ой со­в мес­т и­м о­с ти под­т вер­ж да­е т­с я кор­р ект­н ость ра­б о­т ы сис­те­мы за­щи­ты ин­фор­ма­ции от не­с анк­ цио­ни­ро­ван­но­го дос­т у­па (СЗИ НСД) Dallas Lock Linux (про­грамм­ный ком­плекс средств за­щи­ты ин­фор­ма­ции в ОС се­мей­ст­ва Linux) с USB-то­ке­на­ми eToken PRO (Java). СЗИ НСД Dallas Lock Linux — сис­те­ма на­к лад­н о­г о ти­п а для за­щ и ­т ы от не­с анк­ цио­н и­р о­в ан­н о­г о дос­т у­п а ин­ф ор­м а­ц и­о н­ ных сис­те­м, в том чис­ле го­су­дар­ст­вен­ных, пер­со­наль­ных дан­ных, ав­то­ма­ти­зи­ро­ван­ ных сис­те­мах до клас­са 1Г вклю­чи­тель­но, ав­т о­м а­т и­з и­р о­в ан­н ых сис­т е­м ах управ­л е­ ния про­из­вод­ст­вен­ны­ми и тех­но­ло­ги­че­­ски­­ ми про­цес­са­ми до 1 клас­са вклю­чи­тель­но. Ус ­т а­нав ­ливается на ПК, но­у т ­бу ­к и, сер­ве­ ры и тех­ни­че­­ские сред­с т­ва с под­держ­кой вир­т у­а ль­ных сред. Под ­дер­ж и­ва­ет ра­бо­т у

Новости короткой строкой


Обзоры Новинки программного и аппаратного обеспечения в описании наших экспертов АЛЕКСЕЙ ФЕДОРЧУК Тэг <сар­казм> по умол­ча­нию, смай­ли­ки по вку­су.

Ubuntu + Cinna­ mon = Cintu

Ц

ель данной ко­лон­ки — сооб­ щить о по­яв­ле­нии сис­те­ мы, пред­став­ляю­щей со­бой микст из ба­зо­вых ком­по­нен­тов Ubun­ tu и сре­ды Cinnamon. C именем Cintu, об­ра­зо­ван­ным от ее ти­т уль­ных со­ став­ляю­щих. Уди­вить но­вым ди­ст­ ри­бу ­ти­вом Linux в на­ши дни труд­но. Осо­бен­но ес­ли в его ос­но­ве — Ubun­ tu, как буд­то нароч­но пред­на­зна­чен­ ная для кон­вей­ер­но­го про­из­вод­ст­ва ди­ст­ри­бу ­ти­вов «раз­ной сте­пе­ни са­ мо­стоя­тель­но­сти», варь­и­рую­щейся от до­бав­ле­ния «фир­мен­ных» ути­лит до при­кру­чи­ва­ния «не­скуч­ных обо­ ев». Но на этом фо­не Cintu вы­де­ля­ет­ ся не­ко­то­ры­ми осо­бен­но­стя­ми. Это не ди­ст­ри­бу­ти­в, ибо не вклю­ ча­ет спе­ци­фи­че­­ских ком­по­нен­тов; не име­ет свое­го ре­по­зи­то­рия; а глав­ ное — не намерен за­вое­ва­ть или из­ ме­нить мир пу­тем вне­дре­ния на ПК ка­ж ­дого поль­зо­ва­теля. Это так­же не фор­к или кло­н од­но­го из Ubuntu’­ идов. Нет, это сис­те­ма, со­б­ран­ная с «ну­ле­во­го цик­ла», об­ще­го для всех ди­ст­ри­бу ­ти­вов это­го се­мей­ст­ва, над­ стро­ен­но­го сре­дой Cinnamon с ее поч­ ти един­ст­вен­ным штат­ным при­ло­ же­ни­ем Nemo, ме­нед ­же­ром фай­ло­в. Всё ос­таль­ное надо ус­та­нав­ли­вать по­тен­­ци­а ль­ным при­ме­ни­те­лям, со­ гласно свои­м вку­са­м, по­треб­но­стя­м и воз­мож­но­стя­м. Прав­да, жизнь по­ ка­за­ла, что столь ас­ке­ти­че­­ская ком­ плек ­та­ция ослож­няет да ­же пер­вич­ ное зна­ком­ст­во, и со­став ба­зо­вых при­ло­же­ний уве­ли­чили. Из­го­тови­ли и ре­дак­цию, уком­плек­то­ван­ную по вку­су ее сбор­щи­ка. И ны­не обе ре­ дак­ции дос­т уп­ны уз­ким кру­гам ши­ ро­ких на­род­ных масс, а под­роб­но­сти ищите здесь: http://alv.me/?p=12538. alv@posix.ru

Сегодня мы рассматриваем: Chakra 2016.02 ���������� 12

FlexiHub 2.2 �������������� 15

Ди­ст­ри­бу ­тив Linuxс гиб­рид­ной мо­ де­лью ре­ли­зов дер­жит ста­биль­ны­ ми сис­тем­ные про­грам­ми и биб­лио­ те­ки, об­нов­ляя поль­зо­ва­тель­ские при­ло­же­ния.

Под­пи­сав­шись на эту про­грам­му, вы смо­же­те уда ­лен­но под­к лю­чать­ ся к USB-уст­рой­ст­вам, под­сое­ди­нен­ ным к дру­гим ком­пь­ю­те­рам. Больше не надо будет выдергивать флешку, чтобы подключить сканер.

Tiny Core 7.0 ������������� 13 Ре­а ль­но кро­шеч­ный ди­ст­ри­бу ­тив це­ли­ком уме­щ а­ет­ся в опе­ра­тив­ной па­мя­ти, по­это­му быстр и от­зыв­чив. Ком­пь­ю­те­ры-ста­рич­ки при­д ут в уми­ле­ние.

Fairphone 2 �������������� 16 Смарт­фон с мо­д уль­ным ди­зай­ном убе­ре­жет ок­ру­жаю­щ ую сре­д у, ми­ ни­ми­зи­ро­вав свал­ки электроники: его не­ис­прав­ные ком­по­нен­ты лег­ко за­ме­нять.

React OS 0.4 �������������� 14 Учу­ди­ли: пе­ред ва­ми — по­пыт­ка соз­ дать операционную систему с от­ кры­тым ис­ход­ным ко­дом, дво­ичносо­вмес­ти­мую с при­ло­же­ния­ми и драй­ве­ра­ми Windows.

SuperHot ������������������ 17 Не ус­пе­ешь увер­нуть­ся — и ты уже убит. Но не так-то про­сто удается уворачиваться, ес­ли ты на ­хо­дишь­ся в лиф­те, а кру­гом одни вра­ги...

> «Синий-синий, презеленый» Fairphone 2 — фанат идеи.

Tiny Core 7.0

SuperHot

> Графический интерфейс Tiny Core отличается известным аскетизмом.

> Недруги с бейсбольными битами настигают... но если вы остановитесь, действие тоже замрет.

Сравнение: Групповые ре­дак­то­ры  с. 20 Etherpad Lite

Firepad

Hackpad

OwnCloud Documents

Gobby

В да­ле­ком Сред­не­ве­ко­вье ма­ну­­ скрип­ты бы­ли кол­лек­тив­ны­ми тру­да­ ми пе­ре­пис­чи­ков: каждый норовил добавить что-то от себя. В на­ше вре­ мя над до­ку­мен­та­ми то­же ра­бо­та­ют со­об­ща. Вперед — в про­шлое?

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 11


Обзоры Ди­ст­ри­бу­тив Linux

Chakra 2016.02 Из­ну­рен­ный мяг­кой зи­мой вме­сто ле­та и уре­за­ни­ем бюд­же­та, Джон­ни Бид­велл на­де­ет­ся, что тол­ко­вое прополаскивание Chakra сгла­дит его мир­ские не­взго­ды. Вкратце » Лег­ко­вес­ный ди­ст­ри­бу­тив, про­ти­вя­щий­ся тен­ден­ции ди­ ст­ри­бу­ти­во-ори­ ен­ти­ро­ван­ных ра­бо­чих сто­лов, Chakra при­зван обес­пе­чить «пол­ но­цен­ную ра­бо­т у в KDE». Он со­хра­ ня­ет все воз­мож­ но­сти на­строй­ки и эле­гант­ность Arch и до­пол­ня­ ет их про­стым ус­та­нов­щи­ком, кра­си­во на­стро­ ен­ным ра­бо­чим сто­лом Plasma 5 и соб­ст­вен­ны­ ми ин­ст­ру­мен­ та­ми Qt для по­ все­днев­ных за­дач сис­тем­но­го ад­ми­ни­ст­ра­то­ра.

Ж

изнь труд­н а, как вы­б ор ди­ ст ­р и­б у ­т и­в а Linux: с не­п ре­ рыв­ным об­нов­ле­ни­ем или же с фик­с и­р о­в ан­н ы­м и вы­п ус­к а­м и? А ес­л и с фик­си­ро­ван­ны­ми, то с ка­кой пе­рио­дич­ но­стью вы­пус­ков? И где гра­ни­ца для вклю­ че­ния но­во­го про­грамм­но­го обес­пе­че­ния в ка­ж ­дом вы­пус­ке? Ди­ст­ри­бу­ти­вы с фик­ си­ро­ван­ным гра­фи­ком вы­пус­ков долж­ны быть ста­биль­нее, но из-за бур­но­го гра­фи­ ка вы­хо­дов мно­гих по­пу­ляр­ных про­ек ­тов они ус­та­ре­вают к мо­мен­т у вы­пус­ка. Для на­ столь­но­го ди­с т ­ри­бу ­т и­в а это пло­хо, и яв­ ля­ет­ся од­ной из при­чин уси­лен­ной ра­бо­ты по шес­т и­ме­с яч­но­м у гра­фи­к у. Не­ко­то­рые па­ке­ты вы­со­ко­го уров­ня мож­но об­нов­лять, не за­тра­ги­вая их за­ви­си­мо­сти, но то­гда тре­ бу­ют­ся вре­мя и уси­лия на про­вер­к у, и боль­ шин­с т­в о ди­с т­р и­б у ­т и­в ов за­м о­р а ­ж и­в а­ю т вер­сию про­грам­мы для ре­ли­за, вы­пус­кая толь­ко ис­прав­ле­ния оши­бок безо­пас­но­сти. А это раз­дра­жа­ет поль­зо­ва­те­лей. В Chakra Linux под­дер­жи­ва­ется гибрид­ ная мо­дель вы­пус­ка, не так дав­но при­ня­тая в openSUSE LEAP: ос­нов­ные сис­тем­ные про­ грам­мы и биб­лио­те­к и ос­т а­ют­с я ста­биль­ ны­ми, а ори­ен­ти­ро­ван­ные на поль­зо­ва­те­ля при­ло­же­ния вы­со­ко­го уров­ня об­нов­ля­ют­ся чаще. Ин­т уи­тив­но это долж­но дать луч­шее из обо­их ми­ров, но не все­гда всё так про­сто. Ино­гда но­вые вер­сии при­ло­же­ний кос­вен­но за­ви­сят от но­вых воз­мож­но­с тей яд­ра или бо­лее но­вых биб­лио­тек, и в та­ких слу­ча­ях нель­зя обес­пе­чить но­вый па­кет без зна­чи­ тель­ных уси­лий упа­ков­щ и­ков. Поль­зо­в а­ те­лям при­дет­ся ли­бо упа­ко­вы­вать са­мим, ли­бо шесть ме­ся­цев ждать об­нов­ле­ния. Chakra базируется на Arch Linux — все­ ми лю­би­мом ди­с т­ри­бу ­ти­ве не­пре­рывн­о­го

Свой­ст­ва на­вскид­ку

Calligra Office

Ус­та­нов­щик Calamares

Вклю­ча­ет офис­ный па­кет на Qt5, спо­соб­ный на рав­ ных по­тя­гать­ся с вез­де­су­ щим LibreOffice.

Нет под­держ­ки LVM и шиф­ ро­ва­ния дис­ков, но ди­ле­ танты из­бав­ле­ны от мук руч­но­го раз­бие­ния.

12  |  LXF210 Июнь 2016

> Гра­фи­че­ский ме­нед­жер па­ке­тов в Chakra — OctoPi, но так­же дос­ту­пен и pacman. об­нов­ле­ния, но лю­бят Arch Linux уж ни­как не за удоб­ст­во. Как и Manjaro, Chakra вло­жил мно­го уси­лий в обес­пе­че­ние дру­же­люб­ной сре­ды по­верх Arch, ис­поль­зо­вав лег­кий не­ за­ви­си­мый ус­та­нов­щик Calamares, так что кош­м ар тек­с то­вой про­ц е­д у­ры ус­т а­нов­к и Arch пол­н о­с тью уст­р а­н ен. Тем не ме­н ее, Chakra все же при­дер­жи­ва­ет­ся фи­ло­со­фии Arch — KISS [Keep It Simple, Stupid — «будь про­ще, ду­рень»], так что он не для тех поль­ зо­ва­те­лей, ко­то­рые стра­шат­ся ко­манд­ной стро­ки, и поч­ти на­вер­ня­ка не для на­чи­наю­ щих ли­нук­сои­дов. Для управ­ле­ния па­ке­та­ ми Arch ис­поль­зу­ет­ся всё тот же pacman, но есть и гра­фи­че­­ская обо­лоч­ка, под на­зва­ ни­ем Octopi. Как и в Arch User Repository, па­ ке­ты со­об­ще­ст­ва мо­г ут быть пред­став­ле­ны в Chakra Community Repository (CCR). По­ка офи­ци­а ль­ные ре­по­зи­то­рии не на­пол­нят­ся, мно­гие поль­зо­ва­тели долж­ны бу­д ут со­би­ рать па­ке­ты от­сю­да.

ОС ми­гом за­гру­жа­ет­ся во впе­чат­ляю­ще изы­скан­ный ра­бо­чий стол Plasma 5. На live CD или в ус­та­нов­ке по умол­ча­нию вы не най­ де­т е ни еди­но­г о при ­ло­же­ния на GTK, так как Chakra стре­мит­ся иметь «чис­тый KDE/ Qt» прямо из ко­роб­ки. Во­об­ще это вы­рос­ ло из KDEMod, про­ек­та Arch Linux по раз­ бие­нию на мо­ду­ли не­ко­гда мо­но­лит­но­го па­ ке­та KDE. При­ло­же­ния на GTK до­ба­вить все рав­но мож­но (ведь ис­к лю­че­ние при­ло­же­ ний вро­де GIMP, Firefox, Inkscape и т. п. от­ толк­ну­ло бы мно­гих поль­зо­ва­те­лей), но все они со­б­ра­ны в от­дель­ный ре­по­зи­то­рий. Та­ кая на­столь­ная мо­но­к уль­т у­ра — от­лич­ная идея, хо­т я и не очень но­вая. Так или ина­ че, здо­ро­во уви­деть еще один ди­ст­ри­бу­тив, пред­став­ляю­щий Plasma 5. |

Чис­тые KDE и Qt

Chakra 2016.02

По­сле ус­та­нов­ки Chakra за­ни­ма­ет чуть бо­ лее 5 ГБ, что на се­го­дняш­ний день впол­не стан­дарт­но. На мо­мент тес­ти­ро­ва­ния ба­зо­ вые па­ке­ты вклю­ча­ли яд­ро 4.2.6. Кро­ме то­ го, вер­сии systemd, X.org и GCC от­ста­вали от дос ­т уп­н ых в Arch. Гра­ф и­ч е­­с кий стек так­же чуть стар­ше, что влия­ет на гра­фи­че­ ­ские драй­ве­ра: пока еще нет па­кета для но­ во­го драй­ве­ра AMDGPU. Как и ожи­да­лось, ком­п о­н ен­т ы вы­с о­ко­г о уров­н я (та­к ие как Plasma, Kframeworks и Kapplications) со­от­ вет­ст­ву­ют вер­си­ям Arch.

www.linuxformat.ru/subscribe

Вер­дикт Раз­ра­бот­чик: Neophytos Kolokotronis Сайт: https://chakraos.org Ли­цен­зия: Раз­ные

Функ­цио­наль­ность 7/10 Бы­ст­ро­дей­ст­вие 8/10 Удоб­ст­во в ра­бо­те 8/10 До­ку­мен­та­ция 7/10 » Лег­кий, ста­биль­ный и эле­гант­ ный ди­ст­ри­бу­тив, идеа­лен для тех, кто хочет уз­нать боль­ше о Linux, но бо­ится Arch.

Рей­тинг 8/10


Ди­ст­ри­бу­тив Linux Обзоры

Tiny Core Linux 7.0 Боль­шой лю­би­тель вся­ких ми­ниа­тюр­ных шту­чек, Джон­ни Бид­велл на­це­п­ля­ет очки и рас­смат­ри­ва­ет по­след­нюю вер­сию Tiny Core Linux. Вкратце » Ди­ст­ри­бу­тив, обес­пе­чи­ваю­ щий ми­ни­ма­лизм, как ни­ка­кой дру­ гой. Идеа­лен для ус­та­рев­ших ПК, бла­го­да­ря низ­ ким тре­бо­ва­ни­ ям к обо­ру­до­ва­ нию. Он ра­бо­та­ет бы­ст­ро из ОЗУ, а ма­лый об­раз ус­та­нов­ки при не­об­хо­ди­мо­сти мо­жет быть рас­ ши­рен. Под­хо­дит для про­дви­ну­тых поль­зо­ва­те­лей, ко­то­рым ну ­жен гиб­кий ди­ст­ри­бу­ тив, или поль­зо­ ва­те­лей со сред­ ней под­го­тов­кой, же­лаю­щих по­ про­бо­вать свои си­лы. См. так­же: Lubuntu, Puppy Linux.

Р

ань­ше луч­шим ди­ст­ри­бу­ти­вом Linux для тех, кто ищет дей­ст­ви­тель­но ми­ ни­маль­ный, был Damn Small Linux (DSL). К со­жа­ле­нию, по­след­ний ре­лиз это­ го ве­те­ра­на был еще в 2008 г. Tiny Core на­ чи­нал­с я как вет­к а DSL, но с тех пор был пе­ре­пи­сан и те­перь мо­жет счи­тать­ся са­мо­ стоя­тель­ным. Ос­нов­ной об­раз Core — это все­го 11 МБ, а ес­ли вам ну­жен гра­фи­че­­ский ин­т ер­ф ейс, мож­н о ис­п оль­з о­в ать об­р аз TinyCore — все­го 16 МБ. Есть так­же боль­ ший об­раз CorePlus, «из ко­роб­ки» обес­пе­чи­ ваю­щий под­держ­ку Wi-Fi и не­аме­ри­кан­ских рас­к ла­док кла­виа­т у­ры, а так­же вы­бор окон­ ных ме­нед ­же­ров. Дос­т уп­ны экс­пе­ри­мен­ таль­ные Pi- и 64‑раз­ряд­ные вер­сии. Tiny под ­д ер­ж и­в а­е т не­с коль­ко ре­ж и­ мов ра­бо­ты: об­лач­ный (Cloud Mode), ко­гда он ра­бо­та­ет как live CD; ре­жим USB-флеш­ ки (USB Stick Mode), ко­гда он ра­бо­та­ет liveди­с т­ри­бу ­ти­вом с со­хра­няе­мым на­ко­пи­те­ лем USB; или USB Stick Boot Mode — гиб­рид двух пре­ды­ду­щих. Tiny так­же мож­но ус­та­ но­вить на же­ст­кий диск, но не обыч­ным по­ ряд­ком. ОС со­сто­ит все­го из двух фай­лов: яд­ро и сжа­тый об­раз сис­те­мы. И ес­ли у вас уже ус­та­нов­лен дру­гой Linux, не­за­чем соз­ да­вать но­вый раз­дел для Tiny: про­сто по­ло­ жи­те эти фай­лы ту­да, где Grub су­ме­ет его уви­деть и соз­дать для не­го про­стой пункт ме­ню. При за­п ус­ке Tiny рас­па­ко­вы­в а­ет­с я в опе­ра­тив­ную па­мять, по­это­му он быстр и от­зыв­чив. Гра­фи­че­­ский ин­тер­фейс Tiny ос­но­ван на FLWM на ба­зе FLTK, и тем, кто из­ба­ло­ ван со­вре­мен­ны­ми ра­бо­чи­ми сто­ла­ми, по­ ка ­жет­ся спар­тан­ским. Он ще­го­ля­ет па­не­ лью за­пус­ка в сти­ле ран­ней OSX, по ко­то­рой

Свой­ст­ва на­вскид­ку

От­лич­но сфор­ми­ро­ван­ный Оче­вид­но ми­ниа­тюр­ный ди­ ст­ри­бу­тив, ко­то­рый за­ме­ча­ тель­но по­ла­дит и с вет­хим 486 с 32 МБ ОЗУ.

Ме­нед­жер при­ло­же­ний Ме­нед­жер пред­ла­га­ет па­ кеты программ, и ус­та­но­вит их ли­бо на время те­ку­щего се­анса, ли­бо на по­сто­ян­ной ос­но­ве.

> Вот боль­шин­ст­во гра­фи­че­ских при­ло­же­ний из ба­зо­вой ус­та­нов­ки. За­меть­те, что не­ко­то­рые бо­ну­сы мы все же по­лу­ча­ем — ти­па псев­допро­зрач­но­сти в тер­ми­на­ле. за­бав­но сколь­зить. Щелк­нув пра­вой кноп­ кой мы­ши на ра­бо­чем сто­ле, мож­но вы­зы­ вать ме­н ю при ­л о­же­н ий в сти ­л е OpenBox или FluxBox. Следует от­м е­т ить, что Tiny ни в коем случае не для на­чи­наю­щих. Об­ раз по умол­ча­нию со­с то­и т из яд­р а 4.2.9, BusyBox, гра­фи­че­­ско­­го ин­тер­фей­са... и всё. Есть не­сколь­ко при­ми­тив­ных гра­фи­че­­ских при­ло­же­ний, вклю­чая сер­вис-ме­нед ­жер, тек­с то­вый ре­д ак­тор и ме­нед­жер па­ке­тов, но идея в том, что вы до­бав­ляе­те всё, что тре­бу­ет­ся, а-ля Arch: на­при­мер, не труд­но за­ме­нить BusyBox на coreutils и util-linux для луч­шей со­вмес­ти­мо­сти с GNU. Ко­ли­че­­ст­во дос­т уп­ных па­ке­тов (око­ло 2000) впе­чат­ля­ ет, хотя и не срав­ни­мо с ос­нов­ны­ми ди­с т­ ри­бу­ти­ва­ми (на­при­мер, в Debian их 40 000).

Ак­тив­ное со­об­ще­ст­во Дос­т уп­ны па­ке­ты обыч­ных про­грамм при­ ем­ле­мой све­же­сти, а ме­нее из­вест­ные мо­ гут ли­б о со­б и­р ать­с я вруч­н ую, ли­б о упа­ ко­вы­в ать­с я от­д ель­но в па­ке­т ы TCZ. Этот про­цесс про­ще, чем, ска­жем, соз­да­ние па­ ке­тов Debian, но тре­бу­е т руч­но­го вме­ша­ тель­ст­ва. К сча­стью, су­ще­ст­ву­ет ак­тив­ное со­об­ще­ст­во, ко­то­рое мно­гие не­офи­ци­а ль­ ные па­ке­ты сде­ла­ло дос­т уп­ны­ми. До­пол­ ни­тель­ные па­ке­ты за­гру ­жа­ют­ся и рас­па­ко­ вы­ва­ют­ся в ди­рек­то­рию, ко­то­рая (как home) при­мон­ти­ро­ва­на все­гда. Су­ще­ст­ву­ет ряд хо­ро­шо до­к у­мен­ти­ро­ ван­ных про­грамм за­груз­ки, ко­то­рые мо­г ут

www.linuxformat.ru/subscribe

быть пе­ре­д а­ны че­рез яд ­ро при ин­ц и­ден­ тах с ап­па­рат­ным обес­пе­че­ни­ем: на­при­мер, нередко случается, что USB-уст­р ой­с т­в а не успевают об­на­ру ­жи­ться за вре­мя ожи­ да­ния по умол­ча­нию, и это ис­прав ­ля­ет­с я до­бав­ле­ни­ем waitusb=10. Гра­фи­че­­ский ин­ ст­р у­м ент ус­т а­н ов­к и об­р аза CorePlus уп­ ро­щ а­е т про­ц есс ус ­т а­н ов­к и на же­с т ­к ий диск или USB-на­ко­пи­тель. Воз­мо­жен (од­ нако не ре­ко­м ен­д у­е т­с я) так на­зы­в ае­мый ре­ж им Scatter Mode — то­гда фай­л о­в ая сис ­т е­ма рас­па­ко­вы­в а­е т­с я на раз ­дел (как в обыч­ной ОС); но из-за этого все пре­иму­ ще­с т­в а ра­б о­т ы из опе­р а­т ив­н ой па­м я­т и те­ря­ют­ся. |

Вер­дикт Tiny Core Linux 7.0 Раз­ра­бот­чик: Ко­ман­да Tiny Core Сайт: http://tinycorelinux.net Ли­цен­зия: GPL 2

Функ­цио­наль­ность 6/10 Бы­ст­ро­дей­ст­вие 8/10 Удоб­ст­во в ра­бо­те 6/10 До­ку­мен­та­ция 7/10 » Пре­вос­ход­но обес­пе­чи­ва­ет то, для че­го пред­на­зна­чен. Хо­тя яв­но не рас­счи­тан на мас­сы.

Рей­тинг 7/10 Июнь 2016 LXF210  | 13


Обзоры Ди­ст­ри­бу­тив Linux

ReactOS 0.4.0 Тре­пе­щи­те в стра­хе: Джон­ни Бид­велл рас­смат­ри­ва­ет то, что обе­ща­ет пря­мую заме­ну Windows для не спо­соб­ных из­ба­вить­ся от дур­ных при­вы­чек. Вкратце » Бес­плат­ная и лег­кая ОС, два­ дцать лет в раз­ ра­бот­ке, стре­ мит­ся к пол­ной со­вмес­ти­мо­сти с про­грамм­ным обес­пе­че­ни­ем и драй­ве­ра­ми Windows. Те­перь с улуч­шен­ной под­держ­кой бес­ про­вод­ной се­ти, но­вой сис­те­мой сбор­ки на ос­но­ ве cmake и мно­ го­чис­лен­ными улуч­ше­ния­ми в гра­фи­че­­ском сте­ке. Не­смот­ ря на ее воз­раст, раз­ра­бот­чи­ки пре­ду­пре­ж­да­ют, что ОС пока экс­ пе­ри­мен­таль­ная.

Р

ас­кро­ем це­ли и ха­рак­тер ReactOS, по­с коль­к у их очень лег­ко из­в ра­ тить. ReactOS на­це­лен на соз­да­ние ОС с от­кры­тым ис­ход­ным ко­дом, дво­ичносо­вмес­ти­мой с при­ло­же­ния­ми и драй­ве­ра­ ми Windows. В ко­неч­ном сче­те это сво­дит­ся к по­г о­н е за це ­лью не толь­ко дви ­ж у ­щ ей­ ся, но (из-за за­к ры ­т о­с ти всех ас­п ек ­т ов Windows) и не­ви­ди­мой. Ма­ло то­го, ко­манда долж­на быть очень ак­к у­рат­ной в об­рат­ном ин­жи­ни­рин­ге, что­бы со­блю­сти за­кон об ав­ тор­с ком пра­в е. По­э то­м у за ­д ерж ­к и в вы­ пус­к е окон­ч а­т ель­н ой (или бе­т а) вер­с ии впол­не про­сти­тель­ны. В на­с тоя­щее вре­мя ReactOS ста­ра­ет­ся пред­ло­жить яд­ро, со­вмес­ти­мое с Windows NT 5.2 (Server 2003), и поль­зо­ва­тель­ский уро­в ень, со­в мес­т и­м ый с NT 6.3 (Win­ dows 8.1). Это ка­те­го­ри­че­­ски не Wine, ра­ бо­таю­щий по­верх Linux — нель­зя на­жать Ctrl + Alt + что-то-еще и спря­тать­ся от кноп­ ки Пуск в вир­т у­а ль­ном тер­ми­на­ле, нель­зя да ­же за­пус­кать ис­пол­няе­мые фай­лы Linux. Что­бы за­пу­тать де­ло, в Wine и ReactOS есть не­ко­то­рый об­щий код, а имен­но — реа­ли­ за­ция Wine раз­лич­ных служб и биб­лио­тек Win32. Мож­н о ска­ч ать и live CD, и ус­т а­н ов­ щик ReactOS. Live CD вне VirtualBox нор­ маль­но не ра­бо­тал, но мож­но бы­ло ис­поль­ зо­в ать ус­т а­н о­в оч­ный но­с и­т ель. Про­ц есс за­г руз­к и вы­д а­ет ад ­ре­с а уст ­ройств в сти­ ле Windows, и, ес­т е­с т­вен­но, пер­вые впе­ чат­ле­ния от внеш­не­го ви­д а та­к ие же, как от Windows 2000 или XP в клас­си­че­­ском ре­ жи­ме. Но малость по­щел­кав мы­шью, вы на­ чинаете по­ни­мать, что всё это бед­но­ва­то.

Свой­ст­ва на­вскид­ку

Нос­таль­гия по ‘95

Ме­нед­жер при­ло­же­ний

Ус­та­нов­щик с си­ним фо­ном на­ве­ва­ет вос­по­ми­на­ния, как и знакомое со­об­ще­ние о не­воз­мож­но­сти оп­ре­де­ лить ACPI.

Про­грамм­ное обес­пе­че­ние раз­би­то на ка­те­го­рии для ва­ше­го удоб­ст­ва. Не всё еще об­нов­ле­но, но всё ра­бо­та­ет.

14  |  LXF210 Июнь 2016

> Windows Past: вы да­же мо­же­те по­лу­чить дос­туп к рее­ст­ру из Мой ком­пь­ю­тер. Ну да, все ос­нов­ные при­ло­же­ния Windows (Sound Recorder, Wordpad и т. д) присутству­ ют, но они ма ­ло­ин ­те­рес­ны. Наи­бо­лее за­ мет­н о от­с ут­с т­в ие web-брау­з е­р а, что от­ части раз­дра­жа­ет, так как это яв­но ка­нал, по ко­то­ро­му поль­зо­ва­те­ли Windows по­лу­ ча­ю т про­г рамм­н ое обес­п е­ч е­н ие. Уч­т ите, вы­бор до­воль­но-таки невелик, но ка­те­го­ рия Ин­тер­нет и се­ти дей­ст­ви­тель­но вклю­ чала па­ру вер­сий Firefox и Opera и не­сколь­ ко ме­нее из­вест­ных брау­зе­ров. Вы так­же обнаружите Steam и ста­рую вер­сию (4.4) LibreOffice.

Ши­ро­ко ша­гая Все про­грам­мы в Дис­пет­че­ре при­ло­же­ний бы ­ли про­тес ­т и­ро­в а­ны в ReactOS. То есть нель­зя ска­з ать, что всё это ра­б о­т а­е т со­ всем как ожи­да­лось, но ко­гда это не­зна­чи­ тель­ные про­бле­мы, как пра­ви­ло, их мож­но обой­ти, изу­чая баг-тре­кер. Воо­ру ­ж ив­шись (в ос­нов­ном) ра­бо­чим web-брау­з е­р ом, мы смог­л и изу­ч ать со­ вмес­ти­мость вне ре­ко­мен­до­ван­ных пред­ ло­ж е­н ий ReactOS. Ре ­з уль­т а­т ы не вдох­ нов­ля­ли. Ста­рые вер­сии драй­ве­ров Nvidia втис­н уть на ReactOS уда­лось, но в Steam все рав­но иг­рать во что-ни­будь бы­ло нель­ зя. Стран­н о, что в ReactOS име­е т­с я под­ держ­ка NTFS толь­ко на чте­ние. Од­на­ко 0.4 пред ­ла­га­ет под­держ­к у «из ко­роб­ки» фай­ ло­вых сис­тем ext2, 3 и 4, а так­же под­дер­ жи­ва­ет уст­рой­ст­ва SATA в ви­де улуч­ше­ния

www.linuxformat.ru/subscribe

зву­ка и под­сис­те­мы USB. Са­ма по се­бе 0.4 пред­став­ля­ет со­бой ог­ром­ный шаг впе­ред, но, увы, не­об­хо­ди­мо еще мно­го ги­гант­ских прыж­ков, пре­ж ­де чем про­ект ста­нет по­лез­ ным для масс. Вес­к ую при­чи­ну ис­поль­зо­вать ReactOS най ­т и труд­но: лю­д и, же ­лаю­щ ие ра­бо­т ать в по­след­них вер­си­ях Office или Photoshop, бу­д ут раз­оча­ро­ва­ны, а лю­д ям, пред­по­чи­ таю­щ им бо­лее ста­рые (или про­с то бо­лее при­выч­ные) брен­ды для Windows, бы­ло бы луч­ше с Wine или да­же с ВМ. Это во­об­ще-то по­зор — ReactOS име­ет по­хваль­ную цель, и ко­ман­да до­би­лась не­ве­ро­ят­но­го про­грес­ са на пу­ти к ее дос­ти­же­нию. |

Вер­дикт ReactOS 0.4.0 Раз­ра­бот­чик: The ReactOS Project Сайт: www.reactos.org Ли­цен­зия: GPL 2 (час­тич­но BSD/дру­гие)

Функ­цио­наль­ность 4/10 Бы­ст­ро­дей­ст­вие 5/10 Удоб­ст­во в ра­бо­те 8/10 До­ку­мен­та­ция 7/10 » Ко­гда-ни­будь это бу­дет DOSBox нового по­ко­ле­ния, но по­ка — раз­ве что пред­мет лю­бо­пыт­ст­ва.

Рей­тинг 5/10


USB че­рез TCP Обзоры

FlexiHub 2.2 Ник Пирс вы­яс­ня­ет, мо­жет ли Flexihub вы­пол­нить обе­ща­ние пре­дос­та­вить вам уда­лен­ный дос­туп к лю­бо­му USB-уст­рой­ст­ву, под­клю­чен­но­му к ва­шей сис­те­ме. Вкратце » FlexiHub — про­ грам­ма, ко­то­рая при под­пис­ке вы­ да­ет уда­лен­ный дос­т уп к USBуст­рой­ст­вам, под­к лю­чен­ным к дру­гим Linux-, Windows- или Mac-ком­пь­ю­те­ рам, под­к лю­чен­ ным к ло­каль­ной се­ти или Ин­тер­ не­т у. См. так­же: USB/IP Project.

Н

а­дое­ло пе­ре­под­к лю­чать USB-ка­ бель для ска­не­ра? Или хо­ти­те од­ ним глаз­ком взгля­н уть на свой дом че­р ез web-ка­м е­р у, под­к лю­ч ен­н ую к до­м аш­н е­м у ПК? Или, мо­ж ет быть, хо­ тите что-то на­пе­ча­тать в пу ­ти? Воз­мож­но, FlexiHub — имен­но тот ин­с т­ру­мент, ко­то­ рый вам ну­жен. Ус­та­но­ви­те его на ис­ход­ ном и це­ле­вом ком­пь­ю­те­рах (Windows, Mac и Linux че­р ез RPM- и Deb-па­ке­т ы — всё под­дер­жи­ва­ет­ся), соз­дай­те учет­ную за­пись FlexiHub, и — впе­ред. Поч­ти сразу. Для на­ча­ла, есть бес­плат­ный ва­ри­ант, но он боль­ше по­хож на ог­ра­ни­чен­ную проб­ ную вер­с ию. Он в ос­нов­ном ог­р а­ни­чи­в а­ ет вас од­ним USB-уст­рой­с т­вом за раз ме­ ж ­ду дву­мя ком­пь­ю­те­ра­ми, с ог­ра­ни­че­ни­ем на связь до 20 ми­нут. Мы рас­смот­ре­ли под­ пис­к у на­чаль­но­го уров­ня Basic за $ 7 в ме­ сяц, ко­то­рая да­ет дос­т уп к трем ком­пь­ю­те­ рам и двум од­но­вре­мен­но под­к лю­чен­ным USB-уст­рой­ст­вам. Это не особенно щед­ро, но мож­но по край­ней ме­ре от­к лю­чать од­но уст­рой­с т­во с целью под­к лю­че­ния дру­го­ го, а дос­тиг­нув ли­ми­та ПК, от­к лю­чи­те один из них че­р ез на­с трой­к и учет­н ой за­п и­с и, что­бы ос­во­бо­дить ме­сто для ново­го. Ин ­т ер­ф ейс FlexHub оди­н а­ков на всех плат­фор­мах. По­сле вхо­да по­яв­ля­ет­ся спи­ сок всех уст­ройств USB на этом ком­пь­ю ­ те­р е, а так ­же все дос ­т уп­н ые уст ­р ой­с т­в а на дру­г их. Они обо­зна­ча­ют­с я так же, как их на­зва­ли на хос­те — это­го обыч­но дос­ та­точ­но, что­бы уз­нать, которое из них ка­ кое — и уст­рой­ст­ва мож­но пе­ре­име­но­вать, как толь­ко вы под­твер­ди­те свою лич­ность. Ря­д ом с уст ­р ой­с т ­в а­м и ва­ш е­г о ком­ пь­ю­те­ра вы уви­ди ­те кноп­к и, по­ме­чен­ные

Свой­ст­ва на­вскид­ку

По­лу­че­ние драй­ве­ра

Сжа­тие

Вам по­на­до­бят­ся драй­ве­ ры для всех USB-уст­ройств, к ко­то­рым нужен дос­туп — под­клю­чи­те и ус­та­но­ви­те драй­вер.

По­вы­ша­ет про­из­во­ди­тель­ ность благодаря сжа­тию дан­ных, которые пере­ да­ются с уст­рой­ст­ва на уст­рой­ст­во.

> На­до под­клю­чить­ся к уст­рой­ст­ву USB по се­ти или да­же че­рез Ин­тер­нет? FlexHub мо­жет стать от­ве­том на ва­ши мо­лит­вы. Lock и Unlock — бло­к и­р ов­к а уст­р ой­с т­в а скры­ва­ет его и де­ла­ет не­дос­т уп­ным, а уст­ рой­с т ­в а вво­д а бло­к и­р о­в а­н ы по умол­ч а­ нию. До­с туп­ные уст­рой­с т­ва на дру­гих ПК по­ка­за­ны с удоб­ной кноп­кой Connect. На­ жмите ее, и уст­рой­ст­во USB пе­ре­на­пра­вит­ ся на ваш ПК по ло­каль­ной се­ти, ли­бо че­рез со­е ди­не­ние UDP или сер­вер пе­ре­а д ­ре­с а­ ции FlexiHub, ес­ли вы под­к лю­чае­тесь че­ рез Ин­тер­нет.

Труд­но­сти ком­му­ни­ка­ции По­с ле под­к лю­че­ния уст­рой­с т­во ра­бо­т а­ет так, как буд­то оно фи­зи­че­­ски под­к лю­чено к ва­ше­му ПК — ус­та­но­ви­те не­об­хо­ди­мые драй­ве­ры, и, на­де­юсь, вы смо­же­те управ­ лять им уда­лен­но. Это в тео­рии; но на прак­ ти­ке это не все­гда так. Во-пер­вых, есть про­ бле­ма по­ис­ка драй­ве­ров для Linux, и да­же то­гда ус­пех не все­гда га­ран­ти­ро­ван. Мно­гое за­ви­сит от то­го, что вы под­к лю­ чае­те. Windows-ПК пре­крас­но под­к лю­чит­ся к че­му угод­но, но Linux бо­лее при­ве­ред ­лив: на­при­мер, на­ша web-ка­ме­ра Logitech пре­ крас­но ра­бо­та­ла при под­к лю­че­нии к дру­ го­м у Linux-ПК, но от­к а­з а­л ась ра­б о­т ать при под­к лю­че­нии к ком­пь­ю­те­ру с Windows. У нас так­же бы­ли про­бле­мы с раз­лич­ны­ми уст­рой­ст­ва­ми хра­не­ния дан­ных, и да­же ко­ гда две ма­ши­ны с Ubuntu со­еди­ня­лись друг с дру­гом, ос­та­ва­лось бес­по­кой­ст­во, ка­кие но­си­те­ли бу­дут ра­бо­тать. Вы­вод та­кой: пре­ ж ­де чем по­ла­гать­ся на не­кое уст­рой­с т­во, не­об­хо­ди­мо убе­дить­ся, что по­сле под­к лю­ че­ния оно бу­дет ра­бо­то­спо­соб­но. Ес ­л и все-та­к и у вас по­л у ­ч и ­л ось, вам ста­нет яс­но, что FlexiHub ра­бо­та­ет хо­ро­шо,

www.linuxformat.ru/subscribe

и в на­шей ло­каль­ной се­ти уст­рой­ст­ва бы­ли бы­с т­ры­ми и от­зыв­чи­вы­ми. Тем не ме­нее, есть и дру­гие не­при­ят­но­сти: со­еди­не­ния те­ ря­ют­ся, ко­гда хос­ты за­сы­па­ют, и нет спо­со­ ба пре­дот­вра­тить это дис­тан­ци­он­но. Так­же от­сут­ст­ву­ет под­роб­ная до­к у­мен­та­ция, и нет ни Ча­ВО, ни фо­ру­мов, что­бы по­лу­чить под­ держ­к у. Мы так­же счи­та­ем, что под­пис­ка Basic до­ро­го­ва­та для до­воль­но ог­ра­ни­чен­ но­го чис­ла со­е ди­не­ний и уз­лов, ко­то­рые она под­дер­жи­ва­ет. И не по­мо­га­ет тот факт, что бо­л ее вы­с о­к ий уро­в ень Professional обой­дет­ся вам в $ 19 в ме­сяц за 20 ком­пь­ ю­те­ров и 10 од­но­вре­мен­ных под­к лю­че­ний. Тем не ме­нее, FlexHub — не­с о­мнен­но ум­ный спо­соб уда­лен­но­го дос­т у­па к USBуст­рой­ст­вам; но сна­ча ­ла не­об­хо­ди­мо ис­пы­ тать уст­рой­ст­ва, к ко­то­рым вы хо­ти­те по­лу­ чать дос­т уп. |

Вер­дикт FlexiHub 2.2 Раз­ра­бот­чик: Eltima Software Сайт: www.flexihub.com Це­на: От $ 7/ме­сяц

Функ­цио­наль­ность 7/10 Бы­ст­ро­дей­ст­вие 8/10 Удоб­ст­во в ра­бо­те 6/10 До­ку­мен­та­ция 5/10 » Ес­ли про­стить от­сут­ст­вие под­ держ­ки, то FlexHub — ра­бо­таю­щий спо­соб уда­лен­но­го под­клю­че­ния к USB-уст­рой­ст­вам.

Рей­тинг 7/10 Июнь 2016 LXF210  | 15


Обзоры Смарт­фон

Fairphone 2 Вто­рая вер­сия смарт­фо­на, со­че­таю­ще­го в се­бе эти­че­­ские прин­ци­пы и мо­дуль­ный ди­зайн, со­гре­ла ду­шу Дэ­ви­ду Нил­ду. > Эти­ка плюс мо­дуль­ность: новый под­ход к смарт­фо­нам.

Спе­ци­фи­ка­ция

» ОС Android 5.1, Sailfish OS 2.0 » Эк­ран 5-дюй­ мо­вый IPS LCD, 1080×1920, Gorilla Glass 3 » Про­цес­сор Qualcomm Snapdragon 801, 4 яд­ра, 2,26 ГГц Krait 400 » GPU Adreno 330 » ОЗУ 2 ГБ » Внут­рен­няя память 32 ГБ » Ка­ме­ра 8 Мп, 2 Мп » Ак­к у­му­ля­тор 2420 мА·ч » Пор­ты USB 2.0 с OTG, мик­ро-SD » Связь Wi-Fi dual-band 802.11b/g/n/ac, BLuetooth 4.0 LE, A-GPS, FM-ра­дио » Дат­чи­ки Внеш­ней ос­ве­ щен­но­сти и бли­ зо­сти объ­ек ­та, 3-осе­вой ком­пас, 3D-аксе­ле­ро­метр, 3D-ги­ро­скоп » Га­ба­ри­ты 143×73×11 мм » Вес 168 г

16  |  LXF210 Июнь 2016

У

ж ка­к им-ка­к им, а обыч­н ым Fair­ pho­ne 2 не на­зо­вешь. Сде­лав став­ ку на дол­го­веч­ность и ре­мон­то­при­ год­ность от­дель­ных ком­по­нен­тов, вме­сто то­го, что­бы вклю­чать­ся в гон­к у за пе­ре­до­ вы­ми ха­рак­те­ри­сти­ка­ми, этот те­ле­фон для тех, кто ду­ма­ет об эко­ло­гии — и хо­ро­шо бы та­ки­ми бы­ли все. У соз ­д а­т е ­лей бы ­ла двой­ная цель: вопер­в ых, из­г о­т о­в ить смарт­ф он из эти­ч е­ ­с ки и тех ­ни­че­­с ки на ­д еж ­ных ма­т е­риа ­лов, во-вто­р ых, умень­ш ить ко­ли­ч е­­с т­в о элек­ трон­ных от ­хо­дов за счет мо­д уль­но­го под­ хо­д а, бла­г о­д а­р я ко­т о­р о­м у труб­к у бу­д ет лег­ко по­чи­нить (а в бу­д у­щем, воз­мож­но, и об­нов­лять). Fairphone 2 име­е т при­в ле­к а­т ель­н ый, но не­обыч­ный внеш­ний вид: зад­няя часть кор­пу­са те­ле­фо­на, ко­то­рый нам при­сла­ли, бы­ла про­зрач­ной, так что все ком­по­нен­ты бы­ли на ви­ду, как под рент­ге­ном (хо­тя до­ ступ­ны и дру­гие па­не­ли). Внут­рен­ние мо­ду­ли — все­го семь ком­ по­нен­тов, от ка­ме­ры до ди­на­ми­ка — лег­ко за­ме­нить. И — да, ак­к у­му­ля­тор в нем то­же съем­ный. Что­бы ра­зо­брать те­ле­фон, по­на­ до­бит­ся лишь не­боль­шая от­верт­ка Philips. По­ме­нять ба­зо­вый мо­дуль ка­ме­ры на луч­ ший нель­зя (по край­ней ме­ре, по­ка), но ес­ли ори­ги­нал по­вре­ж ­ден, вы мо­же­те за­ка­зать дру­гой на­пря­мую от Fairphone, вме­сто то­го, что­бы вы­бра­сы­вать труб­к у це­ли­ком. Не со­ всем Google Project Аrа, но в том же ду­хе. 5‑дюй­мо­вый IPS-дис­плей (1080  × 1920 пик­се­лей — весьма со­лид­ные 441 на дюйм)

ра­бо­та­ет в пол­ном HD-раз­ре­ше­нии, так что эк­ран чет­кий и поч­ти столь же яр­кий, как лю­би­мые Samsung AMOLED. В ос­но­ве это­го эти­че­­ски-про­д у­ман­но­ го смарт­ф о­н а — че­т ы­р ехъ­я­д ер­ный про­ цес­сор Snapdragon 801 с час­то­той 2,26 ГГц и 2 ГБ опе­ра­тив­ной па­мя­ти. Те­ле­фон име­ ет 32 ГБ внут­рен­ней па­мя­ти (и не за­будь­те про слот кар­ты па­мя­ти, о ко­то­ром го­во­ри­ лось вы­ше), без ка­ких-ли­бо дос­т уп­ных мо­ ди­фи­ка­ций, за ис­к лю­че­ни­ем вы­ше­упо­мя­ ну ­т ых цвет ­ных па­не ­лей. При на ­ли­чии ОС и не­сколь­ких ус­та­нов­лен­ных при­ло­же­ний, объ­ем сво­бод­ной па­мя­ти на на­шем тес­то­ вом те­ле­фо­не со­ста­вил 23 ГБ.

Че­ст­ный тру­же­ник В мно­го­ядер­ном тес­те GeekBench 3 ре­зуль­ тат Fairphone 2 со­с та­вил в сред­н ем 2347 [боль­ше — луч­ше, — прим. ред.]. Наш ста­ рый зна­ко­мый Nexus 5X запо­л у­чил 2990, в то время как один из луч­ших бюд­жет­ных те­ле­фо­нов про­шло­го го­да, не­дав­но вы­пу­ щен­ный Moto G, оси­лил 1590. 8‑ме­га­пик­сель­ная зад­няя ка­ме­ра Fair­ pho­ne 2 ра­бо­та­ет доб­ро­со­ве­ст­но, но не бо­ лее то­го. Кро­ме то­го, в ка­че­­ст­ве штат­но­го при­ло­же­ния ка­ме­ры вы по­лу­чае­те Lollipop (с HDR и тай­м е­р ом), а не чуть бо­л ее со­ вре­м ен­н ый ва­р и­а нт, как на уст­р ой­с т­в ах Marshmellow. Ак­к у­м у­л я­т ор на­ш у стан­д арт­н ую про­ вер­к у про­ш ел не слиш­ком хо­р о­ш о. При не­п ре­р ыв­н ом про­и г­р ы­в а­н ии HD-ви­д ео вы­с о­кой чет­ко­с ти на адап­т ив­ном уров­не

www.linuxformat.ru/subscribe

яр­к о­с ти в те­ч е­н ие 90 ми­н ут за­р яд упал со 100 % до 69 %. А при по­втор­ном про­хо­ж­ де­нии с мак­си­маль­ным уров­нем гром­ко­сти и яр­ко­сти — со 100 % до ни­чтож­ных 42 %. Для срав­не­ния, Nexus 5X при пол­ной яр­ ко­сти спи­ки­ро­вал до 68 %. И всё же, глав­ный во­прос — хо­ти­те ли вы иметь те­ле­фон, который соз­дан­на бла­ го лю­дям и пла­не­те, на ко­то­рой мы жи­вем? При­выч­ные фак­то­ры — спе­ци­фи­ка­ции, ди­ зайн, про­и з­в о­д и­т ель­н ость — здесь вто­ рич­ны, и в ито­ге труд­но ме­рить Fairphone 2 обыч­ной мер­кой. По­ми­мо данных эти­че­ ­ских ус­та­но­вок, в нем вряд ли есть что-то вы­даю­щее­ся, но ес­ли вам важ­но всё в со­во­ куп­но­сти, то­гда это со­вер­шен­но но­вый под­ ход к те­ле­фо­нам. |

Вер­дикт Fairphone 2 Раз­ра­бот­чик: Fairphone Сайт: www.fairphone.com Це­на: Ј 400

Функ­цио­наль­ность 9/10 Про­из­во­ди­тель­ность 6/10 Удоб­ст­во в ра­бо­те 9/10 Оп­рав­дан­ность це­ны 7/10 » Впе­чат­ля­ет не ка­че­ст­во, а са­ма идея — для ус­пе­ха на­до бы улуч­шить ком­по­нен­ты.

Рей­тинг 8/10


Игра Обзоры

Superhot Бить по мор­де без­ли­ких не­зна­ком­цев сро­ду не бы­ло так ве­се­ло, ска­зал Фил Сэ­видж, рас­ква­сив нам но­сы. Спе­ци­фи­ка­ция Ми­ни­маль­ные » ОС Steam OS, Ubuntu 14.04 LTS » Про­цес­сор Intel Core 2 Quad Q6600, 2,4 ГГц, AMD Phenom II X3 B77 » Гра­фи­че­ский про­цес­сор GeForce GTX 650, Radeon HD 6770, 1 ГБ VRAM » ОЗУ 4 ГБ » Диск 3 ГБ

В

ы на ­хо­д и ­т есь в лиф­т е, в ок ­ру ­же­ нии трех воо­ру ­жен­ных про­т ив­ни­ ков, го­то­вых от­крыть огонь. На миг на эк­ра­не по­яв­ля­ют­с я сло­в а «РАЗБОРКИ В ЛИФТЕ». Вы на­но­си­те удар то­му, что сле­ ва, обез­о­ру­жи­вая его. По­ка вы пы­тае­тесь пой­м ать в воз ­д у ­хе па ­д аю­щ ий пис ­т о­л ет, вас уби­ва­ют — мет­ким вы­стре­лом од­но­го из ос­тав­ших­ся вра­гов. На­жи­мае­те r для пе­ ре­за­груз­ки и на­чи­нае­те за­но­во. Уда­р яе­т е пар­н я сле­в а. Уби­т ы. На ­ж и­ мае­т е r. Уда­р яе­т е пар­н я сле­в а, дви­г а­я сь при этом на не­го, уво­ра­чи­вае­тесь от пу­ли. Хва­тае­те пис­то­лет и обо­ра­чи­вае­тесь. Уби­ ты. На­жи­мае­те r. Бье­те, дви­гае­тесь, не об­ ра­щая вни­ма­ния на пис­то­лет, по­во­ра­чи­вае­ тесь, вмазывае­те вто­рому и третье­му. Еще па­ра уда­ров, и с ни­ми по­кон­че­но. Со­х ра­ няе­тесь, под­ни­мае­те с по­ла пис­то­лет, пово­ ра­чи­вае­тесь к по­след­не­му вра­г у и стре­ля­ ете. Раз­да­ет­ся пу­ле­мет­ная оче­редь. Две­ри лиф­та от­кры­ва­ют­ся, за ни­ми — но­вые лю­ ди. Вы обо­ра­чи­вае­тесь, но слиш­ком позд­но. Опять уби­ты. Эпи­зод в лиф­те вы­ра­жа­ет всю суть Su­ per­hot — ком­пакт­ный, вы­ве­рен­ный; ка­ж ­дый из 30 или око­ло то­го уров­ней иг­ры — это от­ дель­ный мик­ро­косм. Вер­нее, да­же не уров­ ней — это не­что боль­шее. В Superhot есть сце­на­рии. И в ка­ж ­дом — соб­ст­вен­ная «раз­ бор­ка в лиф­те», от­дель­ный по­во­рот в сю­ же­те бое­ви­ка, ко­гда де­ло пах­нет жа­ре­ным. Сдел­ка про­шла не­удач­но. Бар­мен по­тя­нул­ ся за пис­то­ле­том. В иг­ре нет прак­ти­че­­ски ни­че­го лиш­не­го, и боль­шин­ст­во сце­на­ри­ев не­за­бы­вае­мы и по­ра­жа­ют тем, как они уст­ рое­ны и по­да­ны. И в ка­ж ­дом вы в мень­шин­с т­ве, и вам не хва­та­ет ору­жия. Лю­бая пу­ля мо­жет вас убить и, вслед­с т ­в ие ви­д е­н ия от пер­в о­г о

> Боль­шин­ст­во сце­на­ри­ев не­за­бы­вае­мы и за­хва­ты­ваю­щи.

> Взаи­мо­связь вре­ме­ни и про­стран­ст­ва ро­ж­да­ет са­мые ба­лет­ные сце­ны боя. ли­ца, ре­а ль­но мо­жет. На пер­вом уров­не ми­ ни­ма­ли­стич­ный шрифт на эк­ра­не со­об­ща­ет вам: вре­мя дви­жет­ся толь­ко вме­сте с ва­ми. Ес­ли вы ос­та­нав­ли­вае­тесь, дей­ст­вие за­мед­ ля­ет­ся поч­ти до не­под­виж­но­сти. Сто­ит сде­ лать шаг, и все со­рвет­ся с мес­та.

Огонь. Огонь. Про­сто огонь По­сколь­к у Superhot стре­мит­ся к дос­то­вер­ но­сти, пу­ли в нем ле­тят как в ре­а ль­но­сти. Это вам не за­мед ­лен­ные пе­ре­с трел­к и — не­р аз­р ыв­н ая связь ме­ж ­д у рас­с тоя­н и­е м и вре­ме­нем де­ла­ет воз­мож­ны­ми са­мые за­ пу­т ан­ные схе­мы дей­с т­вий. Вы бу­де­те об­ хо­дить пу­ли, бро­сать пред­ме­ты и стре­лять в ту точ­к у, где по ва­шим рас­че­там дол­жен ока­зать­ся про­тив­ник. И это ра­бо­та­ет, по­то­ му что пра­ви­ла про­ду­ма­ны. Здесь нет пе­ре­ за­ряд­ки, но ес­ли ки­нуть чем-ни­будь в во­ ору­жен­но­го про­тив­ни­ка, он бро­сит ору­жие. Бое­за­пас вы по­пол­няе­те, за­по­лу­чив но­вое ру ­ж ье — бро­с ив сво­и м, опус ­т ошенным, во вра­га и пе­ре­хва­тив его. Мы сде­ла­ли это мно­го-мно­го раз, и ка­ж ­дый раз ощу­щ а­ли свою кру ­тиз­ну. Ко­гда вы раз­бе­ре­тесь с ору­ж и­ем, вам от­кро­ют­ся но­вые тех­ни­ки боя. На­ше лю­би­ мое ору­жие — ка­та­на, им мож­но рас­се­кать пу­ли в воз­ду­хе. Здесь то­же свои тон­ко­сти. От­бро­шен­ный пис­то­лет ле­тит даль­ше, чем пу­ле­мет, так что пис­то­лет про­ще пой­мать. Си­лы в нем мень­ше, но в Superhot лю­бое ору ­жие кста­ти. В то же вре­м я, под­б и­р ать ору­ж ие — опять-таки риск. Для это­го нуж­но осо­бым

www.linuxformat.ru/subscribe

об­ра­зом перемещать­ся, а это про­дви­га­ет дей­ст­вие впе­ред. Все вме­сте пре­вра­ща­ет Superhot в не­что сред­нее ме­ж ­ду го­ло­во­лом­кой и тан­це­валь­ ной им­про­ви­за­ци­ей. Ес­ли и есть на что по­ жа­ло­вать­ся, так это на то, что ре­зуль­тат уж очень за­ви­сит от слу­чая — а имен­но, от це­ лей про­т ив­ни­к а. Са­мый сум­бур­ный план мо­ж ет сра­б о­т ать, ес ­л и их пу­л и об­хо­д ят вас сто­ро­ной. Дей­с т­вия ИИ очень при­ми­ тив­ны — вра­ги толь­ко бе­га­ют и стре­ля­ют; но это не важ­но, ведь в ре­жи­ме ре­а ль­но­ го вре­ме­ни ка ­ж ­д ый эпи­зод длит­с я все­го не­с коль­ко се­к унд. В ка­ч е­­с т ­в е стре ­л ял­к и от пер­во­го ли­ца, Superhot — ум­ная, стиль­ ная и уни­каль­ная иг­ра, но не­мно­го по­верх­ но­ст­ная. Осо­бен­ной ее де­ла­ет ско­рее со­че­ та­ние прие­мов, пре­зен­та­ции и сю­же­та. |

Вер­дикт Superhot Раз­ра­бот­чик: Superhot Team Сайт: http://superhotgame.com Це­на: Ј 18

Сю­жет 9/10 Гра­фи­ка 7/10 Ув­ле­ка­тель­ность 4/10 Оп­рав­дан­ность це­ны 6/10 » Ис­клю­чи­тель­но стиль­ная — по­жа­луй, во вред со­дер­жа­тель­но­сти. Но про­пус­тить ее нель­зя.

Рей­тинг 8/10 Июнь 2016 LXF210  | 17


Мобильные

новости НОСИМАЯ ЭЛЕКТРОНИКА

Android Wear 2.0 от Google Ав­то­ном­ные при­ло­же­ния, кла­виа­ту­ра, но­вый UI по­зво­ля­ют рас­счи­ты­вать на фо­ру у Apple Watch.

Н

а про­ш ед­ш ей в мае кон­ф е­р ен­ц ии I/O Google пред­ста­ви­ла вер­сию для раз­ра­бот­ чи­ков Android Wear 2.0 — круп­ней­ше­го, по­сле вы­хо­да в сен­тяб­ре 2014 г., об­нов­ле­ния сво­ей плат­фор­мы для «ум­ных» ча­сов. Со­г лас­н о опуб­л и­к о­в ан­н ым в ян­в а­р е дан­ ным, в 2015 г. до­ля Android Wear в про­д а­же «ум­ ных» ча­сов со­с та­ви­ла толь­ко 10  %, по срав­не­нию с бо­лее чем 50 % у Apple. В но­вой вер­сии Android Wear вы­пол­не­на пол­ная пе­ре­с трой­ка Material De­ sign, поя­ви­лись две кла­виа­т у­ры (обычная QWERTY и с ру­ко­пис­ным вво­д ом), реа ­л и­з о­в а­н а функ­ц ия кон ­тек­с т ­ных от ­ве­тов, ко­то­рые не на ­до на­би­рать вруч­ную — по мне­нию Google, все это по­мо­жет ук­ ре­пить по­зи­ции ком­па­нии на рын­ке и обой­ти Ap­ ple Watch. В Android Wear 2.0 намечено реа­ли­зо­вать под­ держ­к у ав­то­ном­ных при­ло­же­ний, ко­то­рые те­перь не при­вя­зываются к смарт­фо­ну, а станут спо­соб­ны

на­пря­мую со­еди­нять­ся с Ин­тер­не­том по Bluetooth, Wi-Fi или се­ти мо­биль­ной свя­зи — естественно, для это­го понадобится приобрести мо­дель ча­сов, кото­ рая под­дер­жи­вает но­вую плат­фор­му. Об­нов­лен­ная плат­фор­ма Google Fit улуч­шит воз­мож­но­сти «ум­ ных» ча­сов на Android в ка­че­­ст­ве фит­нес-тре­кера. Пер­вы­ми ча­с а­ми с под­твер­ж ден­ной под ­держ­кой Android Wear 2.0 ста­ли LG Watch Urbane 2nd Edi­ tion, ко­то­рые ис­поль­зу­ют со­еди­не­ния LTE, и Hua­ wei Watch. Не­ко­то­рые эле­мен­ты но­во­го ин­тер­фей­са рас­ счи­та­ны на уст­рой­с т­во, обладаю­щее ап­па­рат­ной кноп­кой — в де­мо-при­ме­ре от Google (https://www. youtube.com/watch?v=8gLwk8o9LW0) она потре­бу­ ет­ся, что­бы от­крыть па­нель за­пус­ка при­ло­же­ний [app launcher], ко­то­рый в Android Wear 2.0 ори­ен­ти­ ро­ван на круг­лые ци­фер­бла­ты и пред­ла­га­ет ме­ню в сти­ле ка­ру­се­ли; такое ме­ню мож­но про­кру­чи­вать, дви­гая паль­цем по кра­ям дис­плея.

> Осе­нью вый­дет пер­вое зна­чи­тель­ное об­нов­ле­ние про­грамм­ной плат­фор­мы Google для но­си­мой элек­ тро­ни­ки — Android Wear 2.0. Боль­ше воз­мож­но­стей но­вая плат­фор­ма при­ не­сет раз­ра­бот­чи­кам, ко­то­рым Wear 2.0 по­мо­жет соз­д а­в ать бо­лее функ­ц ио­наль­ные ци­фер­б ла­т ы, а ПО на ос­но­ве Android N пре­дос­та­вит спе­циа­ли­ зи­ро­ван­ные API. Раз­ра­бот­чи­ки мо­г ут по­лу­чить An­ droid Wear 2.0 еще до пуб­лич­но­го ре­ли­за, ко­то­рый со­сто­ит­ся в IV квар­та­ле.

ЕСТЬ ИДЕЯ!

IoT на ста­рых смарт­фо­нах

В

хо­де Embedded Linux Conference и OpenIoT Summit, тех­н и­ч е­­с кий еван­г е­л ист Mozil­ la Дит­рих Ая­ла [Dietrich Ayala] пред­ло­жил про­стое и дос­т уп­ное ре­ше­ние для до­маш­ней ав­то­ ма­ти­за­ции: от­слу ­жив­ший свое смарт­фон спо­со­бен ре­шать мно­гие из вос­тре­бо­ван­ных в этой об­лас­ти за­дач, не тре­буя до­пол­ни­тель­но­го до­ро­го­стоя­ще­го обо­ру­до­ва­ния и не под­вер­гая рис­к у безо­пас­ность дан­н ых в об­л а­ке. Ая­л а пред­с та­в ил на­п и­с ан­н ую им на JavaScript про­грам­му “Context” для ра­бо­таю­ ще­го под управ­ле­ни­ем Firefox OS ста­ро­го смарт­фо­ на, по­зво­ляю­щую с по­мо­щью ха­ба и дат­чи­ка ор­га­ ни­зо­вать уда ­лен­ное на­блю­де­ние за до­мом. От «ум­ных» до­маш­них уст­ройств поль­зо­ва­те­лю не­об­хо­ди­мо ин­фор­ми­ро­ва­ние с уче­том кон­тек­ста о на ­ли­чии или от­сут­ст­вии шу­ма, дви­же­ния, функ­ цио­ни­ро­ва­нии ос­нов­ных сер­ви­сов. Да ­же без под­ клю­че­ния до­пол­ни­тель­ных дат­чи­ков, боль­шин­ст­во та­ких воз­мож­но­стей уже дос­т уп­ны в смарт­фо­нах, 18  |  LXF210 Июнь 2016

а не­сколь­ко ста­рых те­ле­фо­нов мож­но объ­е­ди­нить в сен­сор­ную сеть че­рез Wi-Fi или Bluetooth. Ая­ла на­ чал с на­пи­са­ния ко­да на JavaScript, ор­га­ни­зую­ще­ го по­лу­че­ние дос­т у­па к низ­ко­уров­не­вым дат­чи­кам. Кон­тек­ст­ная ин­фор­ма­ция от дат­чи­ков (све­та, уда­ ра, ак­се­ле­ро­мет­ра) пре­об­ра­зу­ет­ся в уве­дом­ле­ния, ко­то­рые, при не­об­хо­ди­мо­сти, от­прав­ля­ют­ся смарт­ фо­ном в ви­де SMS. Ме­диа-API по­зво­ля­ют вклю­ чить ка­ме­ру или мик­ро­фон, за­фик­си­ро­вав про­ис­ хо­д я­щее (в экс­пе­ри­мен­те Ая­ла для за­пи­си зву­к а ис­поль­зо­вал getUserMedia API). В даль­ней­ших пла­ нах — улуч­ше­ние под­к лю­чае­мо­сти и ин­тер­фей­сов об­на­ру ­же­ния мо­биль­ной плат­фор­мы для со­еди­ не­ния с дру­ги­ми уст­рой­ст­ва­ми. В слу­чае Firefox OS для это­го ис­поль­зу­ют­ся со­ке­ты TCP и UDP, DLNA, API для рас­по­зна­ва­ния ре­чи. Для Firefox OS да ­же не по­т ре­бо­ва ­лось за­г ру­ жае­м ое при­л о­ж е­н ие: об­м ен ин­ф ор­м а­ц и­е й осу­ ще­ст­в­ля­ет­ся че­рез web, на ка­на­ле IFTTT. Бо´льшая

www.linuxformat.ru/subscribe

> Тех­ни­че­ский еван­ге­лист Mozilla Дит­рих Ая­ла высту­па­ет на OpenIoT Summit. часть функ­цио­наль­но­сти скрип­та для Firefox OS ра­ бо­та­ет и с дру­ги­ми плат­фор­ма­ми. На https://www. youtube.com/embed/4RWSXlai6PE?list=PLGeM09tlg uZRbcUfg4rmRZ1TjpcQQFfyr дос­т уп­на пол­ная вер­ сия пре­зен­та­ции.

Ис­точ­ни­ки: www.theinquirer.net; www.linux.com

Ста­нет ли код на JavaScript «убий­цей» при­ло­же­ний для IoT?


Мобильные новости ИМПОРТОЗАМЕЩЕНИЕ

Наш кон­ку­рент Android В ОЭЗ «Ин­но­по­лис» за­пу­щен Центр раз­ра­бот­ки рос­сий­ской мо­биль­ной ОС.

Р

ос­сий­ская ком­па­ния От­кры­тая Мо­биль­ная Плат­фор­ма (Open Mobile Platform) раз­ра­ба­ ты­ва­ет свою мо­биль­ную ОС — кон­к у­рента Android. ТАСС со­об­ща­ет, что Центр раз­ра­бот­ки рос­ сий­ской мо­биль­ной опе­ра­ци­он­ной сис­те­мы (ОС) за­пу­щен в осо­бой эко­но­ми­че­­ской зо­не для IТ-ком­ па­ний «Ин­н о­п о­лис» (Та­т ар­с тан). Об этом пи­ш ет в сво­ем Twitter ми­нистр свя­зи и мас­со­вых ком­му­ни­ ка­ций РФ Ни­ко­лай Ни­ки­фо­ров. По дан­ным сис­те­мы «СПАРК», ООО «От­кры­тая мо­биль­ная плат­фор­ма», за­ре­ги­ст­ри­ро­ван­ное в Ин­но­по­ли­се в на­ча ­ле ап­ре­ ля 2016 г., че­рез ООО «Во­трон» на 80 % при­над­ле­ жит ос­но­ва­те­лю груп­пы ЕСН Гри­го­рию Бе­рез­ки­ну и на 20 % — быв­ше­му ген­ди­рек­то­ру ЕСН Ми­хаи­лу Ве­ро­зу­бу. Ген­ди­рек ­то­ром ООО «От­кры­тая мо­биль­ ная плат­фор­ма» яв­ля­ет­ся Па­вел Эй­гес, ра­нее ру­ко­ во­див­ший ком­па­ни­ей McAfee в Рос­сии и СНГ. Ис­т оч­н ик га­з е­т ы «Ком­м ер­с антъ», близ­к ий к Мин­ком­свя­зи, со­об­щил, что ОС раз­ра­ба­ты­ва­ет­ся

на ос­но­ве ком­по­нен­тов от­кры­той ОС Sailfish. Пе­ре­ го­во­ры об ис­поль­зо­ва­нии соз­да­вае­мой ОС уже ве­ дут­ся с раз­ра­бот­чи­ком смарт­фо­нов YotaPhone — Yota Devices и «Ро­сэ­лек­тро­ни­кой». В кон­це 2015 г. Ни­ки­фо­ров со­об­щал, что к мас­ со­во­му ис­поль­зо­ва­нию на рос­сий­ском рын­ке мо­ биль­ных уст­ройств с не­за­ви­си­мой ОС Sailfish мо­г ут при­сту­пить в 2016 г. Раз­р а­б от­ч ик Sailfish — ком­п а­н ия Jolla бы­ ла соз­д а­н а быв­ш и­м и со­т руд­н и­к а­м и фин­с кой Nokia, уча­с т­во­вав­ши­ми в раз­ра­бот­ке ОС с от­кры­ тым ко­дом MeeGo. Сей­час штаб-квар­ти­ра ком­па­ нии, ак­цио­не­ра­ми ко­то­рой яв­ля­ют­ся рос­сий­ские и ки ­т ай­с кие ин­в е­с то­р ы, на ­х о­д ит­с я в Гон­к он­г е. В 2013 г. поя­вил­ся пер­вый смарт­фон с ОС Sailfish, а в 2014 г. — план­шет. В мае 2015 г. Ни­ки­фо­ров про­ де­мон­ст­ри­ро­вал об­ще­ст­вен­но­сти смарт­фон Yota­ Phone на ба­зе ОС Sailfish. Ра­нее он про­во­дил ра­бо­ чую встре­чу с ру­ко­во­дством Jolla, где об­су ­ж ­да­лась

> Рос­сий­ский центр раз­ра­бот­ки но­вой мо­биль­ной опе­ра­ци­он­ной сис­те­мы от­крыл ва­кан­сии. воз­мож­ность соз­д а­ния ме­ж ­д у­на­род­но­го ин­д у­с т­ ри­а ль­но­го кон­с ор­ц иу­ма для раз­ви­т ия раз­ра­бот­ ки аль­тер­на­тив­ных про­грамм­ных про­дук­тов на ба­ зе от­кры­той ОС в со­труд­ни­че­­ст­ве с IT-ком­па­ния­ми стран БРИКС.

МЕРОПРИЯТИЯ

Tizen в Рос­сии Пер­вые IT-ре­ше­ния дебютировали на кон­фе­рен­ции Skolkovo Startup Village.

Ис­точ­ни­ки: tass.ru; tizen.ru

Н

а стар­тап-кон­фе­рен­ции Skolkovo Startup Village в ин­но­ва­ци­он­ном цен­тре «Скол­ко­ во» 2 ию­ня пред­ставили пер­вые про­то­ти­ пы IT-ре­ше­ний для кор­по­ра­тив­но­го рын­ка на ба­зе ОС Tizen, раз­ра­бо­тан­ные Samsung Electronics и рос­ сий­с ки­м и тех­н о­л о­г и­ч е­­с ки­­м и ком­п а­н ия­м и. Пер­ вая со­вме­ст­ная раз­ра­бот­ка Samsung и рос­сий­ских IT-ком­па­ний НИИ СОКБ и Ин­фо­ТеКС — улуч­шен­ ная вер­сия смарт­фо­на Samsung Z3 с повы­шенным уров­нем за­щи­ты. В Z3 бы­ли под­вер­же­ны из­ме­не­ ни­ям мо­д у­ли ОС, часть функ ­ц ий бы ­л а раз­р а­б о­ та­на с ну­ля. Ос­нов­ные из­ме­не­ния кос­ну­лись мо­ ду­лей безо­пас­но­с ти MDM API, а так ­же на­с тро­ек за­во­дской кон­фи­г у­ра­ции: вер­сию осе­ни 2015 г. бы­ ло не­об­хо­ди­мо на­страи­вать и вклю­чать в кор­по­ра­ тив­ную сеть вруч­ную, в но­вом Z3 — все по­ли­ти­ки безо­пас­но­сти при­ме­не­ны по умол­ча­нию. Ба­зо­вый прин­цип ис­поль­зо­ва­ния дан­но­го уст­рой­ст­ва — так на­зы­вае­мые «Бе­лые спи­ски»: на смарт­фон мо­жно ус­та­новить толь­ко при­ло­же­ния, не­об­хо­ди­мые за­ каз­чи­к у внут­ри кор­по­ра­тив­ной сис­те­мы. Ком­плекс­ное ре­ше­ние ком­па­нии «Спут­ник» для кор­по­ра­тив­ных кли­ен­тов — спе­ци­а ль­ная вер­сия мо­биль­но­го брау­зе­ра «Спут­ник», ко­то­рая станет безо­п ас­ной точ­кой вхо­д а во все кор­по­р а­т ив­ные

сер­ви­сы. Сейчас в брау­зер для рос­сий­ской сбор­ки ОС Tizen вхо­д ят безо­пас­ный по­иск, пре­д у­пре­ж ­де­ ние об опас­ных и вре­до­нос­ных сай­тах, мо­дуль бло­ ки­ров­ки рек­ла­мы и сле­дя­щих рек­лам­ных скрип­тов, а так­же мо­дуль бы­ст­ро­го дос­т у­па к Еди­но­му пор­та­ лу го­су­дар­ст­вен­ных ус­луг. Ком­па­ния «Сфе­р а» про­де­мон­с т­ри­ро­в а ­ла ре­ ше­ние на ба­зе Tizen для ав­то­ма­т и­за­ции мо­биль­ ных ра­бо­чих мест пер­со­на ­ла ава­рий­но-вос­ста­но­ви­ тель­ных служб и служб экс­трен­но­го реа­ги­ро­ва­ния. Мо­биль­н ое при­л о­же­ние для ре­м онт­н о­г о пер­с о­ на ­ла и сер­вис­ных ин­же­не­ров пред­ста­ви­ла ком­па­ ния MAYKOR-GMCS. Де­п ар­т а­м ент элек ­т рон­н ых из­д а­н ий ГК «Ла­н ит» про­д е­м он­с т­р и­р о­в ал ин­т е­ рак ­т ив­ные элек ­т рон­ные учеб­ни­к и на ба ­зе ОС Ti­ zen и ди­с т­ри­бу ­ц и­он­ный тер­ми­н ал для соз ­д а­ния ин­ф опро­с тран­с т­в а об­р а­з о­в а­т ель­н о­г о уч­р е­ж ­д е­ ния. Ком­па­ния Ин­фо­ТеКС пред­ста­ви­ла при­ло­же­ние ViPNet Client for Tizen, ко­то­рое по­зво­ля­ет эф­фек­ тив­но за­щи­щать пе­ре­дачу ин­фор­ма­ции ме­ж ­ду те­ ле­фон­ным уст­рой­ст­вом кли­ен­та и кор­по­ра­тив­ной се­тью, в том чис­ле и ка­нал управ­ле­ния MDM. Так­же на стен­де Тай­зен показа­ли MDM-ре­ше­ние для плат­фор­мы Tizen, обес­пе­чи­ваю­щее кон­троль и за­щи­т у мо­биль­ных уст­ройств и кор­по­ра­тив­ных

www.linuxformat.ru/subscribe

> Ан­д­рей Ти­хо­нов, пре­зи­дент Рос­сий­ской ас­со­циа­ ции «Тай­зен.ру»: «На­ша цель... сде­лать Tizen од­ной из са­мых по­пу­ляр­ных ОС в Рос­сии». дан­ных от НИИ СОКБ, и плат­фор­ма со­вме­с т­но­го ре­д ак ­т и­ро­ва­ния до­к у­мен­тов и хра­не­ния фай­лов Мой­О­фис, с поч­то­вой сис­те­му и пол­ным на­бором со­вре­мен­ных офис­ных при­ло­же­ний для всех по­пу­ ляр­ных на­столь­ных и мо­биль­ных ОС. Ком­па­ния АО «Груп­па Те­ле­ма­ти­ка-Один» соз­ дала те­ле­ма­ти­че­­ское ре­ше­ние T1 Geo для Tizen OS. Кроме ба­зо­вых сер­ви­сов кар­то­гра­фии, T1 Geo уме­ ет до­бав­лять и ото­бра­жать на кар­те мет­ки поль­зо­ ва­теля, ин­фор­мировать о те­к у­щем ме­сто­по­ло­же­ нии, мар­шру­тах и мет­ках дру­гих поль­зо­ва­те­лей. | Июнь 2016 LXF210  | 19


Сравнение Груп­по­вые ре­дак­то­ры

Сравнение Ка­ж­дый ме­сяц мы срав­ни­ва­ем тон­ны про­грамм – а вы можете отдыхать!

Груп­по­вые ре­дак­то­ры Ма­янк Шар­ма слиш­ком ле­нив, что­бы са­мо­му де­лать свою ра­бо­ту, и ищет ре­дак­то­ры для со­труд­ни­че­­ст­ва, рас­ки­ды­вая свои обя­зан­но­сти по гло­бу­су. Про наш тест... Со­вме­ст­ная ра­бо­та над до­к у­мен­том пред­по­ла­га­ет ряд про­бле­м; ос­нов­ная из них — се­те­вая за­держ­ка. Раз­ра­ бот­чи­ки долж­ны обес­пе­чить при­ме­не­ ние всех по­пра­вок от поль­зо­ва­те­лей к од­ной и той же вер­сии до­к у­мен­та, и обыч­ный спо­соб ре­шить эту за­да­ чу — цен­тра ­ли­зо­ван­ный сер­вер, ко­то­ рый на­прав­ля­ет и ин­тег­ри­ру­ет по­прав­ ки. Но то­гда до­бав­ля­ют­ся из­держ­ки на ус­та­нов­к у при­ло­же­ния, что, в свою оче­редь, яв­ля­ет­ся не­ма ­ло­важ­ным фак­ то­ром при вы­бо­ре при­ло­же­ния. Да­бы ис­ко­ре­нить ошиб­ки в ис­поль­ зо­ва­нии и оце­нить иде­а ль­ную вер­сию при­ло­же­ний, мы по воз­мож­но­сти бу­дем тес­ти­ро­вать он­лайн-де­мо, раз­ ме­щен­ные в соб­ст­вен­ной ин­фра­струк­ ту­ре,. Но при этом мы так­же бу­дем ус­та­нав­ли­вать ре­дак­то­ры в ло­каль­ной се­ти, что­бы оце­нить их про­це­д у­ру ус­та­ нов­ки. Це­лью на­ше­го Срав­не­ния бу­дет оцен­ка функ­ций, а не дол­го­вре­мен­ной ста­биль­но­сти и про­из­во­ди­тель­но­сти, ко­то­рые труд­но из­ме­рить.

На­ша под­бор­ка » Etherpad Lite » Firepad » Gobby » Hackpad » OwnCloud Documents

20  |  LXF210 Июнь 2016

О

ди­но­кие вои­те­ли 1990‑х, про­ си­ж и­ваю­щ ие но­чи на­про­лет над кла­виа­т у­рой, с­да­ли пози­ ции ко­м ан­д ам сотрудников, ра­бо­таю­щих со­вме­ст­но. От на­пи­са­ния ро­ ма­нов до соз­д а­ния ко­д а, прак­ти­че­­ски всё в на­ши дни яв­ля­ет­ся пло­дом об­щих уси­лий. В све­те все­го это­го от­дель­ные ре­д ак ­то­ры ус­т у­пи­ли ме­сто про­грам­мам, раз­ра­бо­тан­ ным, что­бы по­мочь лю­дям соз­да­вать и ра­ бо­тать над про­ек­та­ми кол­лек­тив­но. Но­вый вид ПО со­вме­ст­ной ра­бо­ты пред­ ла­г а­е т са­м ые раз­н ые фор­м ы. Раз­р а­б от­ ка про­грамм пол­но­с тью за ­хва­че­на сис­те­ ма­ми управ­л е­ния вер­с ия­ми, та­к и­ми, как

От написания ро­ма­нов до созда‑ ния ко­да, всё в наши дни яв­ля­ет­ ся пло­дом об­щих уси­лий. Subversion и Git. Од­на­ко са­мый боль­шой не­дос­т а­ток в том, что эти и дру­г ие ин­с т­ ру­мен­т ы не да­ют со­вер­шать со­вме­с т­н ую ра­бо­т у в ре­а ль­ном вре­ме­ни, вме­сто это­го вы­пол­няя слия­ние из­ме­нен­ных вер­сий до­ ку­мен­та с ори­ги­на­лом, хра­ня­щим­ся в их ре­ по­з и­т о­р и­я х. Ре­д ак ­т и­р о­в а­н ие до­к у­м ен­т а в ре­а ль­ном вре­ме­ни — де­ло дру­гое. Са­мый по­пу­ляр­ный ре­дак ­то­р со­вме­ст­ной ра­бо­ты,

www.linuxformat.ru/subscribe

ве­ро­я т­но, Google Docs, но хоть он и бес­ пла­тен, всё же это про­прие­тар­ная про­грам­ ма. Вот по­че­му в на­шем Срав­не­нии мы рас­ смат­ри­ва­ем ре­дак ­то­ры с от­кры­тым ко­дом, ко­то­рые пред ­ла­га­ют те же пре­иму­ще­с т­ва и по­зво­ля­ют ра­бо­тать над до­к у­мен­том од­ но­вре­мен­но и в ре­а ль­ном вре­ме­ни. С их по­ мо­щью вы долж­ны сла­дить и с тех­ни­че­­ски­­ ми, и с ре­дак­тор­ски­ми про­ек­та­ми.


Груп­по­вые ре­дак­то­ры Сравнение

Вес­ти тол­пу Хо­ро­шо ли от­сле­жи­ва­ют­ся уча­ст­ни­ки?

В

оз­мож­ность управ­ле­ния уча­с т­ни­ ка­ми — важ­ный кри­те­рий вы­бо­ра пра­в иль­н о­г о ре­д ак ­т о­р а со­в ме­с т­ ной ра­бо­ты. По умол­ча­нию в Etherpad имен у уча­с т­ни­ков нет, и все по­прав­ки по­ме­че­ ны од­ним цве­том. Прав ­д а, поль ­зо­в а­те ­ли мо­г ут из­ме­нить свое имя и вы­брать се­бе цвет из цве­то­во­го кру­га. Од­на­ко с на­строй­ ка­м и по умол­ч а­н ию при­л о­же­н ия силь­н о раз­оча­ру­е т поль­зо­в а­т е­лей, оза­б о­чен­ных безо­п ас­н о­с тью, по­с коль­к у без ус­т а­н ов­ ки до­пол­не­ний вы не по­лу­чи­те под­держ­ки шиф­ро­ва­ния или воз­мож­но­сти за­бло­ки­ро­ вать до­к у­мент с по­мо­щью па­ро­ля. Как и в Etherpad, уча­ст­ни­ки в Firepad мо­ гут ре­шить, ка­кое имя им взять, на­чав ра­бо­ ту над до­к у­мен­том, хо­тя цве­то­вой код вы­ брать нель­зя. По умол­ча­нию в Firepad нет ог­ра­ни­че­ния дос­т у­па или шиф­ро­ва­ния или бло­ки­ров­ки до­к у­мен­та; не­ко­то­рые из этих функ­ций мож­но до­ба­вить са­мим, адап­ти­ро­ вав код при­ме­ра, дан­ный на сай­те про­ек­та. В Gobby имя и цвет вы­би­ра­ют­ся при пер­ вом за­пус­ке, хо­тя это мож­но от­ре­дак­ти­ро­ вать в на­с трой­ках. При­ло­же­ние опо­ве­щ а­ ет о се­бе в ло­каль­ной се­ти че­рез Zeroconf,

и по­э то­м у оп­р е­д е­л я­е т­с я ав­т о­м а­т и­ч е­­с ки. По умол­ч а­н ию все под­к лю­ч ен­н ые поль­ зо­ва­те­ли име­ют дос­т уп на чте­ние/за­пись. Вы мо­же­те из­ме­нить это пра­ви­ло и оп­цио­ наль­но по­тре­бо­вать, что­бы поль­зо­ва­те­ли вво­ди­ли па­роль, пре­ж ­де чем по­лу­чить пра­ ва ре­д ак­ти­ро­ва­ния. Бо­лее то­го, Gobby ис­ поль­зу­ет са­мо­сге­не­ри­ро­ван­ные сер­ти­фи­ ка­ты для ау ­тен­ти­фи­ка­ции поль­зо­ва­те­лей, ко­то­рые мо­г ут оп­цио­наль­но за­про­сить со­ еди­не­ние че­рез за­шиф­ро­ван­ные ли­нии TLS. Hackpad по­зво­ля­е т соз­д а­т е­лям «пло­ ща ­д ок [hackpad]» при­гла­ш ать со­т руд­ни­ ков че­рез элек­трон­ную поч­т у и пред­ла­га­ет три уров­н я управ­л е­ния кон­ф и­д ен­ц и­а ль­ но­стью. Соз­дан­ные пло­щад­ки мо­г ут быть вид­ны всем, или толь­ко тем, ко­му из­вес­тен URL пло­щад­ки, или толь­ко поль­зо­ва­те­лям, при­гла­шен­ным вруч­ную. Ана ­ло­гич­но мож­ но сме­нить на­строй­ки раз­ре­ше­ний ра­бо­че­ го про­стран­ст­ва и яр­лы­ки. OwnCloud Documents по­зво­ля­ют груп­пе до 5 поль­зо­ва­те­лей со­вме­ст­но ре­дак ­ти­ро­ вать фай ­лы ODT и DOC. Раз­ре­ше­ния для до­к у­мен­т а за­д а­ют­с я во время на­с трой­к и рас­пре­де­лен­но­го дос­т у­па и при­гла­ше­нии

> В Hackpad мож­но бес­плат­но соз­дать ча­ст­ное ра­бо­чее про­стран­ ст­во для груп­пы до пя­ти поль­зо­ва­те­лей, но все ос­таль­ное сто­ит $2 с поль­зо­ва­те­ля в ме­сяц. со­т руд­н и­ков. Мож ­н о де ­л ить­с я фай ­л а­м и с дру­г и­ми поль­зо­в а­т е­ля­ми OwnCloud, да и с дру ­г и­ми поль ­зо­в а­т е ­л я­ми, пе­р е­д а­в ая пря­мую ссыл­к у на до­к у­мент. Ес­ли поль­зо­ ва­тель на­хо­дит­ся внут­ри OwnCloud, вы мо­ же­те так­же оп­ре­де­лить, может ли он де­лить до­к у ­мент с дру ­г и­ми и при­гла­ш ать боль­ ше со­труд­ни­ков. По умол­ча­нию до­к у­мент с рас­пре­де­лен­ным дос­т у­пом мо­жет ре­дак­ ти­ро­вать­ся при­гла­шен­ны­ми, но при не­об­ хо­ди­мо­сти вы мо­же­те это из­ме­нить. Так же, как и со все­ми ре­сур­са­ми с рас­пре­де­лен­ ным дос­т у­пом в OwnCloud, вы мо­же­те за­ щи­тить дос­т уп к до­к у­мен­т у па­ро­лем и да­же задать да­т у, ко­гда до­к у­мент боль­ше не бу­ дет дос­т у­пен для со­вме­ст­ной ра­бо­ты.

Вер­дикт Gobby

★★★★★ Hackpad

★★★★★ OwnCloud Documents

★★★★★ Etherpad

★★★★★ Firepad

★★★★★ » Все пред­ла­ га­ют не­плохую сте­пень кон­ тро­ля, кро­ме Firepad.

Функ­ции ре­дак­то­ра За­ме­нят ли они ва­ши лю­би­мые тек­сто­вые ре­дак­то­ры?

Х

о­тя все на­ши при­ло­же­ния обя­за­ ны быть при­в ле­к а­т ель­ны­ми для ре­д ак ­ти­ро­ва­ния, в ос­нов­ном они со­сре­до­то­че­ны на функ­ц и­я х со­вме­с т­ной ра­бо­т ы. Gobby — про­с той тек­с то­вый ре­ дак­тор, ко­то­рый да­же не по­зво­ля­ет вы­де­ лять текст жир­ным или кур­си­вом. Он так­же спо­со­бен толь­ко от­к рыть/им­пор­т и­ро­вать про­с той тек­с то­вый файл, ко­то­рый за­тем мож­но толь­ко со­хра­нить или экс­пор­ти­ро­ вать как до­к у­мен­т HTML. По­лез­ная функ­ ция для ко­де­ров — вы­де­ле­ние син­так­си­са для де­сят­ков язы­ков про­грам­ми­ро­ва­ния. Etherpad об­ла­да­ет базовыми функ­ция­ ми ре­дак ­ти­ро­ва­ния тек­ста и по­зво­ля­ет ме­ нять вы­де­ле­ние в тек­сте (жир­ный шрифт, кур­с ив и т.  д.), соз ­д а­в ать ну ­м е­р о­в ан­н ые и мар­ки­ро­ван­ные спи­ски, а так­же от­ме­нять и по­вто­рять из­ме­не­ния. Etherpad уме­ет им­ пор­ти­ро­вать и экс­пор­ти­ро­вать толь­ко про­ стой текст и до­к у ­мен ­т ы HTML, но мож­но объ­е­ди­нить его с Abiword, рас­ши­рив па­лит­ ру под­дер­жи­вае­мых фор­ма­тов до­к у­мен­тов. Функ­ции фор­ма­ти­ро­ва­ния Firepad по­ч­ти та­кие же, как в Etherpad, но вдобавок вы еще

> Для ра­бо­ты с тек­ стом Firepad при­ вле­ка­ет два внеш­ них ре­дак­то­ра, CodeMirror и Ace.

Вер­дикт Hackpad

★★★★★ OwnCloud Documents

мо­же­те встав­лять изо­бра­же­ния в тек­с то­ вый доку­мент из URL. К сожалению, в Firepad не пре­д у­смот­ре­но никакого ме­ха­низ­ ма им­пор­та и экс­пор­та до­к у­мен­тов — и это непри­ятное ограничение. Зато OwnCloud Documents справляется с ре­д ак­ти­ро­ванием до­к у­мен­тов в форма­ тах DOC и ODT, и экипирован все­ми пола­ гающимися тек­сто­вому ре­дак ­тору ин­ст­ру­ мен­та­ми фор­ма­ти­ро­ва­ния.

Hackpad, по­ми­мо обыч­но­го ре­дак ­ти­ро­ ва­ния, по­зво­ля­е т соз­д а­в ать и до­б ав­лять ин­ди­ви­д у­а ль­ный спи­сок с ок­на­ми-флаж­ ка­ми, а так­же встав­лять таб­ли­цы, изо­бра­ же­ния с ком­пь­ю­т е­р а или URL, или файл из Dropbox. Кроме тек­стовых документов, мож­н о вводить код на од­н ом из вось­м и под ­дер­жи­вае­мых язы­ков программирова­ ния, сре­ди ко­то­рых — C, C++, HTML, Java и Python.

www.linuxformat.ru/subscribe

★★★★★ Etherpad

★★★★★ Firepad

★★★★★ Gobby

★★★★★ » Hackpad — самый бо­га­тый функ­ция­ми тек­ сто­вый ре­дак­ тор из на­ше­го спи­ска.

Июнь 2016 LXF210  | 21


Сравнение Груп­по­вые ре­дак­то­ры

Ин­тер­фейс и удоб­ст­во в ра­бо­те Про­смот­рим ме­ню и функ­ции.

Х

о­тя ре­дак­то­ры в на­шем Срав­не­нии при­ме­ ня­ют­ся для вво­да и ре­дак­ти­ро­ва­ния тек­ ста, не­об­хо­д и­мость со­вме­с т­ной ра­бо­т ы в ре­а ль­ном вре­ме­ни оз­на­ча­ет, что они ис­поль­зу­ют не толь­ко па­не­ли ин­ст­ру­мен­тов, ина­че про­к у от них ма­ло. Ин­тер­фейс ка ­ж ­до­го ре­дак ­то­ра так ­же дол­жен пре­д у­с мат­ри­в ать ряд до­б а­воч­ных ком­по­нен­тов:

на­при­мер, на­до от­сле­жи­вать ра­бо­т у всех уча­ст­ни­ ков над до­к у­мен­том и вы­де­лять их прав­ки и до­пол­ не­ния в по­нят­ной ма­не­ре, что­бы из­бе­жать оши­бок и по­вто­ров. При этом гиб­кость ин­тер­фей­са и уро­вень его на­страи­вае­мо­сти так ­же оп­ре­де­ля­ют про­сто­т у ре­ дак­т ора в работе. В ко­неч­ном ито­г е да­же очень

со­лид­ный с тех­ни­че­­с кой точ­к и зре­ния ре­д ак ­тор вряд ли бу­д ет по­л е ­з ен, ес ­л и его ин­т ер­ф ейсом не­удо­бно пользоваться. Со­вме­с т­ная ра­бо­та в ре­ аль­ном вре­мени так­же тре­бу­ет об­ще­ния в ре­а ль­ном вре­ме­ни ме­ж ­д у поль­зо­ва­те­ля­ми. Хо­ро­ший ре­дак­ тор дол­жен это обес­пе­чивать, причем без ущер­ба для сво­ей ос­нов­ной функ­ции.

Etherpad Lite  ★★★★★ Etherpad ра­бо­та­ет внут­ри web-брау­зе­ра, и ин­тер­фейс его не­бо­гат. Все кноп­ки управ­ле­ния на ­хо­дят­ся на верх­ней па­не­ли, управ­ле­ние ре­дак ­ти­ро­ва­ни­ем рас­ по­ло­же­но сле­ва, а функ­ции со­вме­ст­ной ра­бо­ты и про­чее — спра­ва. Фа­на­ты кла­виа­т у­ры по достоинству оце­нят оп­ции на­ви­га­ции и управ­ле­ния ин­тер­фей­ сом с кла­виа­т у­ры. Еще од­на по­лез­ная функ­ция Etherpad — то, что он по­зво­ля­ет уча­ст­ни­кам взаи­мо­дей­ст­во­вать друг с дру­гом че­рез тек­сто­вый чат, а че­рез пла­ги­ны мож­но вклю­чить об­ще­ние по ау­дио/ви­део. Функ­ция им­пор­та/экс­пор­та по­ка ­жет вам ин­ст­рук­ции ра­бо­ты с Abiword для ис­поль­зо­ва­ния под­дер­жи­вае­мых им фор­ма­ тов фай­лов. Ус­та­но­вив Abiword, вы смо­же­те экс­пор­ти­ро­вать фай­лы PDF, DOC, а так­же ODT. Etherpad со­хра­ня­ет из­ме­не­ния ав­то­ма­ти­че­­ски, но зна­чи­мые вер­сии мож­но со­хра­нять вруч­ную и за­тем ис­поль­зо­вать пол­зу­нок на вре­мен­но´й шка­ле для про­смот­ра всех из­ме­не­ний и экс­пор­та пре­ды­ду­щих вер­сий.

Firepad  ★★★ ★★ Firepad раз­ра­бо­тан для встраи­ва­ния в бо­лее круп­ные web-при­ло­же­ния и име­ ет скром­ную струк ­т у­ру. По­ми­мо обыч­но­го управ­ле­ния ре­дак ­ти­ро­ва­ни­ем тек­ ста, мож­но из­ме­нять шрифт, его раз­мер и цвет. Firepad — один из не­мно­гих ре­ дак ­то­ров со­вме­ст­ной ра­бо­ты, ко­то­рый по­зво­ля­ет встраи­вать объ­ек ­ты внутрь до­к у­мен­та; мож­но вста­вить изо­бра­же­ния, ука­зав их URL. В Firepad вы мо­ же­те при­гла­шать дру­гих для со­вме­ст­ной ра­бо­ты над до­к у­мен­том, от­пра­вив им по элек ­трон­ной поч­те URL или про­сто твит­нув ссыл­к у из са­мо­го при­ло­же­ ния. Ин­тер­фейс раз­ме­ща­ет спи­сок поль­зо­ва­те­лей он­лайн сле­ва. Од­на­ко, в от­ ли­чие от Etherpad, поль­зо­ва­те­ли Firepad не мо­г ут об­щать­ся друг с дру­гом. Еще один не­дос­та­ток — то, что хо­тя поль­зо­ва­те­ли от­ме­че­ны цвет­ны­ми ука­за­те­ля­ ми, ре­дак­тор не вы­де­ля­ет вве­ден­ный ими текст. И да­же зная, ка­кой имен­но поль­зо­ва­тель вво­дит текст или де­ла­ет прав­ки в те­к у­щий мо­мент, со­от­не­сти ра­ нее вве­ден­ный текст с кон­крет­ным поль­зо­ва­те­лем не­воз­мож­но.

Про­сто­та ус­та­нов­ки Слож­ное ли у них раз­вер­ты­ва­ние?

Ч

то­б ы уп­р о­с тить об­щ е­н ие ме­ж ­д у уча­ст­ни­ка­ми, ре­дак ­то­ры со­вме­ст­ ной дея­тель­но­сти обыч­но ис­поль­ зу­ют цен­т ра ­ли­зо­в ан­ный сер­вер и дру­г ие ком­по­нен­ты, и ус­та­нов­ка все­го это­го мо­жет быть не­про­стым про­цес­сом. Это осо­бенно вер­но на­счет Etherpad, ко­то­ро­го нет в ре­ по­зи­то­ри­ях ди­ст­ри­бу ­ти­вов. Его ус­та­нов­ка тре­бу­ет обиль­но­го руч­но­го вме­ша­тель­ст­ва, за­то он до­воль­но про­стой и хо­ро­шо до­к у­ мен­т и­р о­в ан. Etherpad тре­бу­е т сре­д ы ис­ пол­не­ния Node.js JavaScript и ре­ко­мен­д у­ ет ком­пи­ли­ро­вать ее вруч­ную из ис­ход­ни­ка 22  |  LXF210 Июнь 2016

вме­сто ис­поль­зо­ва­ния вер­сии из ре­по­зи­то­ ри­ев ва­ше­го ди­ст­ри­бу ­ти­ва. А вот OwnCloud Documents встро­ен в ка­ че­­ст­ве офи­ци­а ль­но­го пла­ги­на в OwnCloud, сер­вер рас­пре­де­лен­но­го дос­т у­па к фай­лам. Его ус­та­нов­ка тре­бу­ет все­го лишь не­сколь­ ко щелч­ков мы­ши; но ус ­т а­нов­к а сер­ве­р а OwnCloud зай­мет не мень­ше вре­ме­ни, чем ус­т а­нов­ка лю­бо­го ре­зи­дент­но­го сер­ве­ра. Сле­дом идет Firepad, ко­то­рый на­до ин­тег­ ри­ро­вать в готовый сайт. Это мо­жет выгля­ деть слож­ным, но на са­мом де­ле до­воль­но про­с то — по двум при­чи­нам: во-пер­вых,

Вер­дикт в ка­че­­с т­ве движ­ка ис­поль­зу­ет­ся Firebase, а зна­чит, не ну­жен код на сто­ро­не сер­вера. Во-вто­рых, его мож ­но до­б а­вить к лю­б о­ му web-при­ло­же­нию, при­пи­сав не­боль­шой код JavaScript. Gobby про­ще всех в ус­та­нов­ке, по­сколь­ ку име­ет­с я в ре­по­зи­то­ри­я х боль­шин­с т­в а ди­с т­ри­бу ­т и­вов. Кро­ме то­го, он не тре­бу­ ет до­ба­воч­ных ком­по­нен­тов, по­сколь­к у ис­ поль­зу­ет Zeroconf, что­бы объ­я­вить о сво­ем при­сут­ст­вии в се­ти. И, на­ко­нец, мо­же­те ис­ поль­зо­вать Hackpad, он­лайн-сер­вис, имею­ щий оп­цию ус­та­нов­ки на ваш сер­вер.

www.linuxformat.ru/subscribe

Gobby

★★★★★ Hackpad

★★★★★ Etherpad

★★★★★ Firepad

★★★★★ OwnCloud Documents

★★★★★ » И Gobby, и Hackpad момен­таль­но гото­вы к ра­бо­те.


Груп­по­вые ре­дак­то­ры Сравнение Gobby  ★★★★ ★ В от­ли­чие от дру­гих при­ло­же­ний, Gobby в ос­нов­ном вы­гля­дит, как про­стой тек­ сто­вый ре­дак­тор с бо­ко­вы­ми па­не­ля­ми. При пер­вом за­пус­ке на­столь­ное при­ло­ же­ние про­сит вас вы­брать имя поль­зо­ва­те­ля и цвет, ко­то­рый мож­но из­ме­нить из про­сто­го ок­на Preferences [На­строй­ки] в Gobby. На ле­вой па­не­ли рас­по­ла­га­ ет­ся брау­зер до­к у­мен­тов, по­ка­зы­ваю­щий спи­сок от­кры­тых до­к у­мен­тов на ло­ каль­ном ком­пь­ю­те­ре и на уда­лен­ной ин­стал­ля­ции. Gobby ис­поль­зу­ет Zeroconf для оп­ре­де­ле­ния дру­гих ус­та­но­вок в ло­каль­ной се­ти, а под­к лю­чен­ные поль­ зо­ва­те­ли ото­бра­жа­ют­ся в пра­вой па­не­ли. Gobby так ­же по­зво­ля­ет под­к лю­чен­ ным поль­зо­ва­те­лям уча­ст­во­вать в ча­те, об­ме­ни­ва­ясь ко­рот­ки­ми со­об­ще­ния­ми в ок­не ча­та. Вне­сен­ные поль­зо­ва­те­ля­ми до­пол­не­ния и прав­ки вы­де­ля­ют­ся со­ от­вет­ст­вую­щим цве­том, и оп­цио­наль­но до­к у­мент мож­но экс­пор­ти­ро­вать как файл HTML. По­ми­мо тек­ста, Gobby под­цве­чи­ва­ет син­так­сис для не­сколь­ких де­сят­ков язы­ков.

Hackpad  ★★★★★ У это­го се­те­во­го при­ло­же­ния пе­ре­гру­жен­ный, но ин­т уи­тив­но по­нят­ный ин­тер­ фейс. В от­ли­чие от по­хо­жих при­ло­же­ний, здесь хо­ро­шо про­д у­ма­на сис­те­ма ор­га­ни­за­ции кон­тен­та. Вы на­чи­нае­те с соз­да­ния ра­бо­че­го про­стран­ст­ва, в ко­ то­ром все уча­ст­ни­ки мо­г ут соз­да­вать ра­бо­чие пло­щад­ки [pad] — их мож­но снаб­жать яр­лы­ка­ми для луч­шей ор­га­ни­за­ции. Мо­жно ог­ра­ни­чить дос­т уп к ра­ бо­че­му про­стран­ст­ву, а так­же к от­дель­ным пло­щад­кам, вво­дить текст и встраи­ вать изо­бра­же­ния и про­чие ме­диа. Ин­с т­ру­мен­т ы ре­д ак­т и­ро­ва­ния Hackpad раз­но­об­раз­ны, и им мож­но управ­лять с кла­виа­т у­ры. Есть так­же функ­ция вы­де­ ле­ния син­так­си­са в по­мощь раз­ра­бот­чи­к у. Бо­лее то­го, ес­ли вы со­хра­няе­те пло­ щад­к у с рас­ши­ре­ни­ем ти­па .html, .js или .py, текст бу­дет пра­виль­но подкра­шен для это­го язы­ка. Вы так­же мо­же­те из са­мо­го Hackpad при­гла­сить дру­гих ре­ дак­ти­ро­вать пло­щад­к у, и Hackpad от­лич­но справ­ля­ет­ся с за­да­чей со­от­не­се­ния ка ­ж ­до­го об­нов­ле­ния с поль­зо­ва­те­лем и раз­ре­ша­ет вклю­че­ние ком­мен­та­ри­ев.

OwnCloud Documents  ★★★★ ★ Ком­по­нент Documents внут­ри ос­но­ван­но­го на брау­зе­ре сер­ве­ра рас­пре­де­лен­ но­го дос­т у­па к фай­лам OwnCloud име­ет про­стой поль­зо­ва­тель­ский ин­тер­фейс. Вы мо­же­те ис­поль­зо­вать его для соз­да­ния до­к у­мен­тов ODT или за­груз­ки су­ ще­ст­вую­щих до­к у­мен­тов в лю­бом из под­дер­жи­вае­мых фор­ма­тов, и внут­ри Documents есть кноп­ка вы­да­чи дос­т у­па для при­гла­ше­ния со­труд­ни­ков. У вас есть вы­бор — вы­дать дос­т уп к до­к у­мен­т у из­нут­ри OwnCloud или че­рез пуб­ лич­ную ссыл­к у. Па­нель ре­дак ­ти­ро­ва­ния ввер­х у по­зво­ля­ет управ­лять фор­ма­ ти­ро­ва­ни­ем до­к у­мен­та и вы­би­рать сти­ли аб­за­цев. Спи­сок поль­зо­ва­те­лей, ре­ дак ­ти­рую­щих до­к у­мент, на ­хо­дит­ся в пра­вой па­не­ли. По­ми­мо вне­се­ния пра­вок в до­к у­мент, все со­труд­ни­ки мо­г ут до­бав­лять в до­к у­мент ком­мен­та­рии, и вы мо­ же­те про­смат­ри­вать их да­же по­сле ска­чи­ва­ния до­к у­мен­та из OwnCloud. Но­вые стро­ки и аб­за­цы с из­ме­не­ния­ми яс­но от­ме­че­ны, и на­ве­дя кур­сор на от­мет­ки, вы уви­ди­те, ка­кой поль­зо­ва­тель и в ка­кое вре­мя внес из­ме­не­ния.

Под­держ­ка и до­ку­мен­та­ция Ку­да об­ра­щать­ся за по­мо­щью?

Д

о­к у­мен­та­ция и под­держ­ка важ­ны для всех ви­дов про­грамм, но для та­к их се­т е­вых про­г рамм, как ре­ дак ­то­ры со­вме­с т­ной ра­бо­т ы, они при­об­ ре­та­ют жиз­нен­ную цен­ность. Gobby, са­мый про­стой из всех в ус­та­нов­ке, име­ет скуд­ную wiki на GitHub, ин­фор­ма­ции в ко­то­рой едваедва хва­та­ет на то, что­бы при­сту­пить к ра­ боте. Но этот не­дос­та­ток пе­ре­ве­ши­ва­ется ог­ром­ным ко­ли­че­­ст­вом ру­ко­водств и ин­ст­ рук­ций по все­му Ин­тер­не­т у. Да ­л ее идет Etherpad, с об­шир­н ой до­ ку ­м ен ­т а­ц и­е й на сай ­т е, в том чис ­л е wiki

Вер­дикт

и блог. Есть еще де­мо-вер­сия он­лайн и спи­ сок пуб­л ич­н ых эк­з ем­п­л я­р ов, по­з во­л яю­ щих оз­на­ко­мить­ся с про­грам­мой пе­ред тем, как стать ее поль­зо­ва­те­лем. У Firepad то­же дос­т а­точ­но до­к у­мен­т а­ции, что­бы по­мочь поль ­з о­в а­т е ­л ям ин ­т ег ­р и­р о­в ать его в су­ ще­с т­вую­щ ую ин­фра­с трук ­т у­ру. Вдо­ба­вок до­к у­мен­та­ция опи­сы­ва­ет API при­ло­же­ния, что­б ы по­м очь поль­з о­в а­т е­л ям соз­д а­в ать соб­ст­вен­ные эк­зем­п­ля­ры Firepad, и пре­ду­ смат­ри­ва­ет не­ма­ло при­ме­ров ко­д а; не­ко­ то­рые из них мож­но про­смот­реть на сай­те, а потом и ска­чать с GitHub.

Hackpad вы­к ла­д ы­в а­е т до­к у­м ен­т а­ц ию уни­каль­ным спо­со­бом: пер­вая пло­щ ад­ка, ото­бра ­жа­емая им при под­пис­ке на сер­вис, пол­на ил­лю­ст­ри­ро­ван­ны­ми ру­ко­во­дства­ми. Есть FAQ, и мо­жно на­пи­сать раз­ра­бот­чи­кам на элек ­трон­ную поч­т у насчет под­держ­ки. Все это до­пол­ня­ет­ся ря­дом офи­ци­а ль­ных и соз­дан­ных поль­зо­ва­те­ля­ми ви­део. OwnCloud как про­ект хо­ро­шо до­к у­мен­ ти­ро­ван, и Documents стал са­мой яр­кой ча­ стью ре­ли­з а 6.0 — ему по­свя­ще­ны офи­ ци­а ль­ные ви­део и не­сколь­ко ру­ко­водств, размещенных в Се­ти.

www.linuxformat.ru/subscribe

Etherpad

★★★★★ Firepad

★★★★★ Hackpad

★★★★★ OwnCloud Documents

★★★★★ Gobby

★★★★★ » На YouTube вы смо­же­те найти ру­ко­вод­ ства по всем ре­дак­то­рам.

Июнь 2016 LXF210  | 23


Сравнение Груп­по­вые ре­дак­то­ры

Пла­ги­ны и на­страи­вае­мость На­сколь­ко при­ло­же­ния под­да­ют­ся на­строй­ке?

Х

о­тя ра­бо­та с на­строй­ка­ми по умол­ ча­н ию по идее обязана уст­р аи­ вать боль­шин­ст­во поль­зо­ва­те­лей, со вре­ме­нем вам за ­хо­чет­ся при­вес­ти оп­ре­ де­лен­ные ас­пек­ты в со­от­вет­ст­вие с ва­шим сти­лем ра­бо­ты. В этом смыс­ле и Hackpad, и OwnCloud Documents силь­но огор­ча­ю т, по­сколь­к у в них ма­ло спо­со­бов ин­ди­ви­ду­ аль­но на­стро­ить ин­тер­фейс или рас­ши­рить

функ­ц ии по умол­ч а­н ию до­п ол­н е­н ия­м и либо пла­ги­на­ми. Firepad в этом от­н о­ш е­н ии чуть луч­ ше, чем Hackpad и OwnCloud. Он соз­д ан с упо­р ом на про­с то­т у рас­ш и­р яе­м о­с ти, но не с по­мо­щью пла­ги­нов, как дру­гие при­ ло­же­ния. Вме­сто это­го Firepad рас­счи­ты­ва­ ет, что вы на­пи­ше­те или адап­ти­руе­те фраг­ мен­ты ко­да.

> Сам Gobby не вы­пус­кал ос­нов­но­го ре­ли­за с 2004 г., но его ком­по­нен­ты со­вме­ст­ного ре­дак­ти­ро­ва­ния на­хо­дят­ся в ак­тив­ной раз­ра­бот­ке.

Gobby то­же не под­дер­жи­ва­ет пла­ги­ны в тра­ди­ци­он­ном смыс­ле. Для бо­лее круп­ ных ва­ри­ан­тов при­ме­не­ния мо­жно раз­вер­ нуть спе­ци­а ль­ный сер­вер Gobby под на­зва­ ни­ем Infinoted. Кли­ент Gobby до­пол­не­ний не под­дер­жи­ва­ет, а вот сер­вер рас­ши­ряется пла­г и­н а­м и (которых не од­н а дюжи­н а), и вы можете привести его к со­от­вет­ст­вию своим по­треб­но­с тям. За­то кли­ент по­зво­ ля­ет от­к лю­чать раз­ные эле­мен­ты в ин­тер­ фей­с е поль­зо­ва­те­ля и да­же на­с траи­вать по­ве­де­ние не­ко­то­рых из них. Вы так­же мо­ же­те из­ме­нять цве­то­вую схе­му ок­на ре­дак­ ти­ро­ва­ния и его шриф­ты. Рас­ши­ряе­мость — это спе­ци­а ль­ность Etherpad. Он да­ет воз­мож­ность уда­лять цве­ та ав­то­ров и из­ме­нять ин­тер­фейс, что­бы по­ка­зы­вать ок­но ча­та и спи­сок поль­зо­ва­ те­лей, ра­бо­таю­щих над до­к у­мен­том. Кро­ме то­го, Etherpad вклю­ча­ет ме­нед ­жер до­пол­ не­ний с де­сят­ка­ми пла­ги­нов, сре­ди ко­то­ рых есть весь­ма по­лез­ные. На­при­мер, один из них вме­с те с пло­щ ад­кой экс­п ор­т и­ру­ ет ин­фор­ма­цию об ав­то­ре, дру­гой — снаб­ жа­ет воз­мож­но­стью встав­ки ком­мен­та­ри­ ев, и тре­тий — до­бав­ля­ет ау­дио-/ви­деочат на ба­зе webrtc.

Вер­дикт Etherpad

★★★★★ Gobby

★★★★★ Firepad

★★★★★ Hackpad

★★★★★ OwnCloud Documents

★★★★★ » Пла­ги­ны Etherpad яв­ля­ют­ ся од­ной из силь­ ней­ших сто­рон при­ло­же­ния.

От­сле­жи­ва­ние и про­чие функ­ции Мо­гут ли они по­мочь кон­тро­ли­руе­мо­сти?

К

о­гда мно­г о со­т руд­ни­ков ра­б о­т а­ ют над до­к у­мен­том од­но­вре­мен­но, не­пло­хо со­хра­нять ста­рые вер­сии и иметь воз­мож­ность вер­нуть­ся к лю­бой из них. Кро­ме то­го, раз­ре­ше­ние сотрудни­ кам ос­тав­лять ком­мен­та­рии к до­к у­мен­т у, объ­яс­няю­щие их по­прав­ки, то­же по­ра­ду­ет мно­гих поль­зо­ва­те­лей. Ес­ли эти две функ­ции важ­ны для вас, то вы, воз­мож­но, ре­ши­те от­ка­зать­ся от Gobby и Firepad. В обо­их от­сут­ст­ву­ет управ­ле­ние вер­сия­ми, и они не по­зво­ля­ют ос ­т ав ­лять ком­мен­та­рии, хо­тя Firepad ав­то­ма­ти­че­­ски со­хра­ня­ет из­ме­не­ния в ба­зе дан­ных Firebase. Etherpad, на­про­тив, ав­то­ма­ти­че­­ски со­ хра­ня­ет из­ме­не­ния, и их мож­но со­хра­нить вруч­ную, на­жав на зна­чок со звез­дой. При­ ло­же­ние так ­же вклю­ч а­е т функ­ц ию шка­ лы вре­ме­ни, ко­то­рая по­зво­ля­ет про­кру­чи­ вать или вос­про­из­во­дить все из­ме­не­ния. По ме­ре про­крут­ки лю­бую из вер­сий мож­но экс­пор­ти­ро­вать, а ре­шив доз­во­лить ав­то­ рам до­бав­лять ком­мен­та­рии в до­к у­мен­ты, вы мо­же­те вклю­чить эту функ­ц ию че­рез 24  |  LXF210 Июнь 2016

пла­гин. До­пол­ни­тель­но ре­д ак­то­ры мо­г ут вы­дать со­вме­ст­ный дос­т уп к пло­щад­ке че­ рез URL и оп­цио­наль­но сде­лать его дос­т уп­ ным толь­ко для чте­ния. Вы так­же мо­же­те встро­ить Etherpad в до­к у­мент HTML с по­ мо­щью iframe. OwnCloud Documents то­же по­з во­л я­е т лег­ко до­б ав­л ять ком­м ен­т а­р ии и ан­н о­т а­ ции в до­к у­мен­ты. Сер­вер OwnCloud хра­нит все вер­сии для Documents. По­доб­ным же об­ра­зом вы мо­же­те вклю­чить на сер­ве­ре

пла­гин Encryption, что­бы за­шиф­ро­вать все до­к у­мен­ты. Hackpad име­ет хро­но­ло­ги­че­­ский спи­сок не­д ав­них из­ме­не­ний. От­с ю­д а вы мо­же­т е вер­нуть­ся к пре­ды­ду­щим вер­си­ям и от­сле­ жи­вать из­ме­не­ния во вре­ме­ни. Все поль­ зо­в а­т е­ли мо­г ут ос­т ав­л ять ком­м ен­т а­р ии, и мож­но так­же ак­ти­ви­ро­вать спе­ци­а ль­ный ре­ж им мо­де­ра­ции, где пред ­ла­гае­мые со­ труд­ни­ка­ми по­прав­ки бу­д ут от­прав­лять­ся вам по элек ­трон­ной поч­те на ут­вер­ж де­ние.

Вер­дикт Etherpad

★★★★★ Hackpad

★★★★★ OwnCloud Documents

★★★★★ Firepad

★★★★★ Gobby

★★★★★ > С по­мо­щью iframe до­ку­мент Etherpad до­воль­но лег­ко встро­ить в лю­бую web-стра­ни­цу.

www.linuxformat.ru/subscribe

» Из­бе­гай­те Gobby и Firepad, ес­ли вам дей­ст­ ви­тель­но нуж­но управ­ле­ние вер­сия­ми.


Груп­по­вые ре­дак­то­ры Сравнение Груп­по­вые ре­дак­то­ры

Вердикт Р

е­д ак ­т о­ры со­вме­с т ­н ой ра­б о­т ы до­ бав­л я­ю т еще од­н у пе­р е­м ен­н ую в урав­н е­н ие при­н я­т ия ре­ш е­н ий: цель. Ваш вы­бор при­ло­же­ния за­ви­сит от то­ го, как вы пла­ни­руе­т е его ис­поль ­зо­в ать. Боль­шин­ст­во из этих ин­ст­ру­мен­тов раз­ра­ бо­та­ны для кон­крет­ных ва­ри­ан­тов при­ме­ не­ния, и в дру­гих си­т уа­ци­ях пользы от них бу­дет ма­ло. Вот, напри­мер, Firepad: са­мо по се­бе, это вполне нор­м аль­н ое при­л о­же­ние, ра­б о­т а с ним не тре­бу­ет осо­бых уси­лий, и в нем есть долж ­н ые функ ­ц ии для оп­р е­д е ­л ен­ ных слу­ча­ев. Од­на­ко у не­го весь­ма спе­ци­ фи­че­­ская об­ласть при­ме­не­ния, и ес­ли вам не ну­жен ре­дак­тор со­вме­ст­ной ра­бо­ты в ре­ аль­н ом вре­м е­ни, то су­щ е­с т­ву­ю т луч­шие аль­тер­на­ти­вы. Сле­дом идет Gobby. Его уни­ каль­ный ко­зырь — про­с то­та в ис­поль­зо­ ва­нии: его мож­но при­ме­нить для со­вме­ ст­ной ра­бо­ты без осо­бых про­блем. Здесь есть ба­зо­вый ре­дак­тор и мно­же­ст­во по­лез­ ных функ ­ц ий, что де ­ла­е т его иде­а ль­ным

I

для не­боль­ших про­ек ­тов, спо­соб­ных обой­ тись без ин­те­рес­ных функ­ций ре­дак ­ти­ро­ ва­н ия, та­к их, как управ­л е­н ие вер­с ия­м и. Точ­но так же, раз­вер­нуть ос­но­ву для OwnCloud Documents от­но­си­тель­но про­сто [см. Учеб­ни­к и, стр. 92 LXF208). При­ло­же­ние так­же пред­ла­га­ет все функ­ции, тре­буе­мые неболь­шим ко­м ан­д ам в ло­к аль­н ой се­т и. Хо­тя про­грам­ма адап­ти­руе­ма и на­страи­ва­ ет­ся под удоб­ст­ва со­труд­ни­ков в лю­бой точ­ ке зем­но­го ша­ра, ком­плект ее соб­ст­вен­ных ос­лож­не­ний вы­во­д ит ее из зо­ны ин­те­ре­ са по­сто­ян­ных на­столь­ных поль­зо­ва­те­лей. И ее на­бор функ ­ц ий ин ­т ег ­ри­ро­в ан ху ­же, чем у двух ве­ду­щих здесь про­грамм. Он­лайн-сер­вис Hackpad не тре­бу­ет на­ строй­к и, бо­г ат функ­ц ия­ми и прост в ис­ поль­зо­ва­нии. Не­боль­шим ко­ман­д ам при­ ло­же­ние пред ­ла­га­ет го­то­вую web-оп­цию, а бо­лее круп­ным — оп­цию хос­тин­га. Ес­ли вы тос­к уе­те по удоб­ст­ву и у вас в ко­ман­де бо­лее пя­ти че­ло­век, не так уж до­ро­го при­ пла­тить за до­пол­ни­тель­ных поль­зо­ва­те­лей.

IV

Etherpad Lite ★★★★★

Вер­сия: 1.5.7 Сайт: www.etherpad.org Ли­цен­зия: Apache v2 » Бо­га­тый функ­ция­ми и лег­ко рас­ши­ряе­мый ре­дак­тор со­вме­ст­ной ра­бо­ты для ва­шей се­ти.

II

Вер­сия: б/н Сайт: www.hackpad.com Ли­цен­зия: Apache v2 » Он­лайн-ре­дак­тор с функ­ция­ми для не­боль­ших ко­манд, не­до­ро­ гой для боль­ших ко­манд.

III

OwnCloud Docs ★★★ ★★

Вер­сия: 8.2.2 Сайт: www.owncloud.org Ли­цен­зия: AGPL v3 » Ес­ли вы не ис­поль­зуе­те сер­вер OwnCloud, есть аль­тер­на­ти­вы и по­лу­чше.

> Один из про­ стей­ших спо­со­ бов ис­поль­зо­вать Etherpad — че­рез Turnkey Linux.

Пред­ла­га­ет наи­бо­лее час­тые функ­ции и мно‑ жество пла­ги­нов. Gobby ★★ ★★★

Вер­сия: 0.5.0 Сайт: http://gobby.github.io Ли­цен­зия: GPL v2 » Про­стой в ис­поль­зо­ва­нии для не­боль­ших ко­манд в ло­каль­ной се­ти.

V

Hackpad ★★★★ ★

Рас­смот­рев всё, мы при­су­ди­ли по­бе­д у в на­шем Срав­не­нии Etherpad. У это­го при­ ло­же­ния прак ­ти­че­­ски руч­ной, но про­с той и хо­ро­шо до­к у­мен­ти­ро­ван­ный про­цесс ус­ та­нов­к и. Оно так­же пред­ла­г а­ет наи­бо­лее час­то ис­поль­зуе­мые функ­ции и под­дер­жи­ ва­ет множество пла­ги­нов для до­бав­ле­ния вся­ко­го ро­да удобств, в том чис­ле безо­пас­ но­сти. Хо­тя для вы­да­чи его в дос­т уп поль­ зо­в а­те ­лям за пре­де ­ла­ми ло­к аль­ной се­т и оно по­тре­бу­ет не мень­ше уси­лий, чем OwnCloud Documents, бо­га­тый на­бор функ­ций де­ла­ет его дос­той­ным ва­ше­го вни­ма­ния.

Firepad ★★ ★★★

Вер­сия: 1.3.0 Сайт: https://firepad.io Ли­цен­зия: MIT » Для встраи­вае­мо­го со­вме­ст­но­го ре­дак­ти­ро­ва­ния в бо­лее круп­ных web-при­ло­же­ни­ях.

Обратная связь Со­глас­ны с на­шим ре­ше­ни­ем? Ис­поль­зуе­те дру­гой ре­дак­тор или счи­тае­те ус­ та­нов­к у слиш­ком слож­ной? Черк­ни­те па­ру строк на lxf.letters@futurenet.com.

Рас­смот­ри­те так­же...

Е

сть при­ло­же­ние с от­кры­тым ко­дом, на ко­то­ рое нам не хва­ти­ло мес­та в на­шем Срав­не­ нии: это OnlyOffice. Вер­сия для пред­при­ятия, пред­на­зна­чен­ная для ис­поль­зо­ва­ния на сер­ве­ре, бес­плат­на для ко­манд до пя­ти поль­зо­ва­те­лей. Есть так ­же он­лайн-вер­сия с под­пис­кой. Ес­ли вы не про­ тив аут­сор­син­го­во­го сер­ви­с а, есть еще Meeting­ words, ко­то­рый ра­бо­та­ет на Etherpad и упот­реб­ля­ет

его ин­тер­фейс. Сер­вис бес­п ла­тен для поль­зо­ва­ те­лей в ко­ли­че­­ст­ве до 32 че­ло­век, хо­тя при­ни­ма­ ют­ся по­жерт­во­ва­ния. Meetingwords уда ­ля­ет пло­ щад­к и, к ко­то­рым не об­ра­щ а­лись бо­лее не­де­ли. CollabEdit — еще один бес­плат­ный он­лайн-сер­вис, но он про­прие­т ар­ный, и в пер­вую оче­редь пред­ на­зна­чен для со­вме­ст­ной ра­бо­ты над ко­дом. Сер­ вис обес­п е­ч и­в а­е т об­щ е­н ие поль­з о­в а­т е­л ей друг

www.linuxformat.ru/subscribe

с дру­гом и хра­нит до­к у­мен­т ы до 60 дней. За­тем име­ет­ся Floobits, плат­ный сер­вис для со­вме­ст­ной ра­б о­т ы над про­с тым тек­с том и ко­д ом. Его уни­ каль­ный ко­зырь в том, что он по­зво­ля­ет не­сколь­ ким лю­д ям од­но­вре­мен­но ре­д ак ­т и­ро­вать лю­бой файл в сво­их лю­би­мых тек­сто­вых ре­дак­то­рах. Без о­платы вы получите пуб­лич­ны­е ра­бо­чие об­лас­ти, а при­ват­ные об­лас­ти сто­ят от $15 в ме­сяц. | Июнь 2016 LXF210  | 25


Хак­ни­те свой ра­бо­чий стол!

ХАКНИТЕ СВОЙ РАБОЧИЙ СТОЛ!

На дис 13 ра­бо­ч­кие: сто­лов х на про­бу!

Ваш рабочий стол потускнел и одряхлел? Натягивайте маску и ассистируйте Маянку Шарме в операционной: он сделает вашему рабочему столу давно назревшую пластическую операцию.

В

аш лю­би­мый ди­ст­ри­бу­тив Linux по­став­ ля­ет­ся с на­бо­ром при­ло­же­ний. Ес­ли он — один из ве­ду­щих, то уж будь­те уве­ре­ны: его раз­ра­бот­чи­ки при­ло­жи­ли мак­си­мум уси­лий, что­бы пред­ло­жить вам про­стой в ис­поль­ зо­ва­нии ме­нед­жер па­ке­тов, ра­ди за­ме­ны про­грамм по умол­ча­нию, не со­от­вет­ст­вую­щих ва­шим тре­бо­ва­ни­ям, на те, ко­то­рые им со­от­вет­ст­ву­ют. Од­на­ко что вам де­лать, ес ­ли вы хо ­т и ­т е в прин­ци­ пе из­ме­нить внеш­ний вид и ра­бо­т у ди­ст­ри­бу­ти­ва? В кон­це кон­цов, воз­ мож­ность из­ме­нять сре­ду, ко­то­рую мы да­лее бу­дем име­но­вать ра­бо­чим сто­лом, не ме­ нее важ­на, чем воз­мож­ность из­ме­нять при­ло­же­ния и биб­лио­те­ки ди­ст­ри­бу­ти­ва. Бо­л ее ши­р о­к ая эко­с и­с те­м а Linux располага­ ет не­с коль­к ими ра­б о­ч ими сто­л ами, но ка ­ж ­д ый ди­с т­ри­бу ­тив Linux идет с од­ним ра­бо­чим сто­лом по умол­ч а­н ию, лучше все­г о со­о т­в ет­с т­в ую­щ им

об­ще­м у под ­хо­д у и кон­цеп­ции; счи­т ай­те ра­бо­чий стол бро­д я­чим ор­ке­ст­ром, от­лич­но сыг­рав­шим­ся для ис­пол­не­ния ме­ло­дич­ной сим­фо­нии. При этом, в от­ли­чие от пользователей про­прие­ тар­ных ОС, линуксоиды име­ют боль­ший кон­троль и не обя­за­ны при­дер­жи­вать­ся на­стро­ек по умол­ча­

ин­ди­ви­д у­а ль­ной на­с трой­ки. Ино­гда, что­бы ра­зо­ гнать хо­ро­шо сма­зан­ную ма­ши­ну, тре­бу­ет­ся лишь слег­ка ее под­пра­вить. Ес­ли вы под ­лин­но ин­ди­ви­ ду­а ль­ны, то бо­лее спе­ц иа ­ли­зи­р о­в ан­ным под ­хо­ дом бу­дет пе­ре­к лю­чить­ся на осо­бые ком­по­нен­ты. Ра­бо­чий стол вклю­ча­е т прак ­т и­че­­с ки все, что вы ви­д и­т е, вой­д я в свою учет­н ую за­п ись поль ­з о­в а­т е ­л я: от об­л ас ­т и ра­бо­че­го сто­ла и ме­нед ­же­ра фай­ лов до фо­н а, па­н е­л ей и да­же за­ го­лов­ков окон — все эти ас­пек­т ы управ­ля­ю т­с я раз­ны­ми программ­ ными ком­по­нен­та­ми. Наш материал по­мо­жет вам на­стро­ить все ас­ пек­ты ра­бо­че­го сто­ла в соответствии с ва­шими ра­ бо­чими по­треб­но­с тями, а ес­ли предлагаемые на­ строй­к и для вас не сра­бо­т а­ют, мы по­мо­жем вам вы­б рать раз­л ичные ком­п о­н ен­т ы и объ­е­д и­н ить их для соз­д а­ния соб­с т­вен­но­го ин­ди­ви­д у­а ль­но­го ра­бо­че­го сто­ла.

Линуксоиды имеют боль­ ший кон­троль и не обя­за­ны при­дер­жи­вать­ся умол­ча­ний.

26  |  LXF210 Июнь 2016

нию. Бо­лее то­го, для сме­ны ра­бо­че­го сто­ла не­за­чем ус­та­нав­ли­вать дру­гой ди­ст­ри­бу ­тив Linux. Пе­ре­ход с од­но­го ра­бо­че­го сто­ла на дру­гой сво­дит­ся к ус­та­ нов­ке па­ке­та про­грамм и вы­бо­ру тре­буе­мо­го ра­бо­ че­го сто­ла на эк­ра­не при­гла­ше­ния. Вдо­ба­вок пе­ре­к лю­че­ние с од­но­го ра­бо­че­го сто­ ла на дру­гой — это все­го лишь один из спо­со­бов

www.linuxformat.ru/subscribe


Хак­ни­те свой ра­бо­чий стол!

П

о­п у­ляр­ные ди­с т­ри­бу ­ти­вы тру­д ят­ся в по­те ли­ца, что­бы дать вам пре­крас­ный ра­бо­чий стол со все­воз­мож­ны­ми ин­с т­ру­мен­та­ми и ути­ли­та­ми, под­хо­д я­щи­ми для са­мо­го ши­ро­ко­го диа­па­зо­на поль­зо­ва­те­лей. Зре­лые ра­бо­чие сто­лы на­ по­до­бие Gnome и KDE так­же да­ют вам ряд на­страи­вае­мых оп­ций, как мы ви­де­ли на пре­ды­ду­щих стра­ни­цах. Но хо­тя вы мо­же­те уй­ти весь­ма да­ле­ко от го­то­во­го ра­бо­че­го сто­ла, всё же их оп­ции ин­ди­ ви­ду­аль­ной на­строй­ки ог­ра­ни­че­ны. Луч­ший спо­соб из­бе­жать этой ри­гид­но­сти — соз­дать соб­ст­вен­ный. По­ка вас не бро­си­ло в дрожь, ска­жем, что мы не про­сим вас пи­ сать ра­бо­чий стол с ну­ля (ос­та­вим это до дру­го­го раза). Как мы го­ во­ри­ли, ра­бо­чий стол — это объ­е­д и­не­ние не­с коль­к их ин­д и­ви­ ду­а ль­ных ком­по­нен­тов, вклю­чае­мых по­оче­ред­но и ра­бо­таю­щих в уни­сон, что­бы обес­пе­чить раз­ные ас­пек ­ты ра­бо­че­го окружения, ко­то­рые вы ви­ди­те: на­при­мер, KDE 4 ис­поль­зу­ет ме­нед ­жер окон KWin с па­не­лью вни­зу ра­бо­че­го сто­ла, где раз­ме­ща­ет­ся про­грам­ма за­пус­ка при­ло­же­ний Kickoff вме­сте с дру­гим про­грам­ма­ми за­пус­ка и про­чи­ми вид­же­та­ми. Лег­ко­вес­ные и аль­тер­на­тив­ные ра­бо­чие сто­ лы, вро­де по­пу­ляр­ных Cinnamon и Mate, име­ют по­хо­жий внеш­ний вид и все­го лишь за­ме­ня­ют тя­же­ло­вес­ные ком­по­нен­ты об­лег­чен­ ны­ми их аль­тер­на­ти­ва­ми. Вы то­же мо­же­те в ин­ди­ви­ду­а ль­ном по­ряд­ке за­ме­нить эти ком­ по­нен­ты на те, что со­от­вет­ст­ву­ют ва­шим на­доб­но­стям. Более того,

вы мо­же­те вы­брать соб­ст­вен­ное со­че­та­ние ме­нед ­же­ра окон, па­ нели и пе­ре­к лю­ча­те­ля ра­бо­чих об­лас­тей, и т. д., и увя­зать их вме­сте в свой лич­ный ра­бо­чий стол. На сле­дую­щих стра­ни­цах мы пе­ре­чис­ лим ком­по­нен­ты, не­об­хо­ди­мые функ­цио­наль­ной сре­де ра­бо­че­ го сто­ла, и по­зна­ко­мим вас с имею­щи­ми­ся оп­ция­ми. Рас­ска­зав о ком­по­нен­тах, мы со­еди­ним их в наш, и только наш ра­бо­чий стол.

Ра­бочая столовая Важ­ней­ший ком­по­нент ра­бо­че­го сто­ла — ме­нед ­жер окон, ко­то­рый управ­ля­ет раз­ме­ще­ни­ем и внеш­ним ви­дом окон в гра­фи­че­­ском ин­ тер­фей­се. Он оп­ре­де­ля­ет гра­ни­цу ок­на и обес­пе­чи­ва­ет стро­к у за­го­ лов­ка и кноп­ки для то­го, что­бы свер­нуть ок­но, раз­вер­нуть его или за­крыть. Ме­нед­жер окон так­же управ­ля­ет раз­ме­ром ок­на. Боль­ шин­ст­во по­пу­ляр­ных ме­нед ­же­ров окон раз­ра­ба­ты­ва­ют­ся па­рал­ лель­но сре­де ра­бо­че­го сто­ла, с ко­то­рой они ис­поль­зу­ют­ся. Од­на­ко есть не­сколь­ко и та­ких, ко­то­рые мо­г ут ис­поль­зо­вать­ся от­дель­но. Имен­но они нас и ин­те­ре­су­ют, по­сколь­к у по­зво­ля­ют соз­дать ин­ди­ ви­ду­а ль­ную сре­ду, со­от­вет­ст­вую­щую ва­шим по­треб­но­стям. Мно­ гие из этих не­за­ви­си­мых ме­нед ­же­ров пред ­ла­га­ют толь­ко ос­нов­ные функ­ции управ­ле­ния ок­на­ми, без вся­ких из­ли­шеств. Один из са­мых по­пу­ляр­ных — OpenBox, и он на­столь­ко ми­ни­ма­ ли­сти­чен, что его при­сут­ст­вия вы да­же не за­ме­ти­те. Всё, что вы по­ лу­чае­те — фон без обо­ев и кур­сор. Ме­ню при­ло­же­ний по­яв­ля­ет­ся

> Ус­та­но­ви­те OpenBox Configur­ ation Manager (obconf) для на­ строй­ки раз­ных ас­пек­тов ме­не­д­ жера окон.

Ме­нед­же­ры фай­лов Не­за­ви­си­мо от то­го, как вы хо­ти­те ис­поль­зо­вать свою сис­те­му, есть од­на за­да­ча, уни­вер­саль­но вы­пол­няе­мая все­ми, и это — управ­ле­ние фай­ла­ми. Для по­мо­щи в этом про­цес­се вы мо­же­те вы­би­ рать сре­ди мно­же­ст­ва не­за­ви­си­мых ме­нед ­же­ров фай­лов. Хо­тя вам, ве­ро­ят­но, при­выч­ны Nautilus от Gnome (ко­то­рый ны­не име­ну­ет­ся про­сто Files), Dolphin от KDE и Xfce от Thunar, есть и дру­гие дос­той­ные вни­ма­ния, в том чис­ле PCManFM, Xfe и EmelFM2. У PCManFM чет­кий и не­за ­х лам­лен­ный ин­тер­ фейс, и он ис­поль­зу­ет­ся как ме­нед ­жер фай­лов по умол­ча­нию в ра­бо­чем сто­ле LXDE. PCManFM

по­зво­ля­ет от­кры­вать ди­рек ­то­рии в но­вых вклад­ках или но­вых ок­нах и мо­жет так­же ис­поль­зо­вать­ ся в двух­па­нель­ном ре­жи­ме, как и боль­шин­ст­во тра­ди­ци­он­ных ме­нед ­же­ров фай­лов. Его бо­ко­вая па­нель и стро­ка со­стоя­ния оп­цио­наль­но мо­г ут скры­вать­ся, и пред ­ла­га­ют­ся все обыч­ные удоб­ст­ва, при­ли­че­­ст­вую­щие ме­нед ­же­ру фай­лов, на­при­мер, drag-and-drop. За­тем име­ет­ся X file explorer, или Xfe. Вы­гля­дит он впол­не со­вре­мен­но, хо­тя его ин­тер­фейс пе­ре­ гру ­жен кноп­ка­ми. Ме­нед ­жер фай­лов пред ­ла­га­ет не­сколь­ко па­не­лей и име­ет ре­дак ­ти­руе­мую стро­к у на­ви­га­ции. Од­на из его при­ме­ча­тель­ных функ­ций —

www.linuxformat.ru/subscribe

спо­соб­ность за­пус­кать сес­сию root од­ним щелч­ком. Как и PCManFM, ме­нед ­жер фай­лов Xfe пред ­ла­га­ет все функ­ции, на ко­то­рые мож­но рас­счи­ты­вать в ме­ нед ­же­ре фай­лов. Поль­зо­ва­те­ли-ве­те­ра­ны, воз­мож­но, пред­поч­т ут не­что вро­де EmelFM2, ор­то­док­саль­но­го ме­нед ­же­ ра фай­лов с GUI. Он ос­но­ван на GTK2 и ис­поль­зу­ет трех­па­нель­ную струк­т у­ру, столь по­пу­ляр­ную сре­ди ме­нед ­же­ров фай­лов 1980‑х. EmelFM2 име­ет встро­ ен­ную ко­манд­ную стро­к у, на­страи­вае­мую при­вяз­к у к кла­виа­т у­ре и под­держ­к у сжа­тия и шиф­ро­ва­ния фай­лов, и со­че­тает в се­бе функ­цио­наль­ность ста­ рых ме­нед ­же­ров и удоб­ст­во но­вых.

Июнь 2016 LXF210  | 27


Хак­ни­те свой ра­бо­чий стол! толь­ко в кон­тек­ст­ном ме­ню по щелч­ку пра­вой кноп­кой. Ме­ню мож­но ис­поль­зо­вать для за­пус­ка при­ло­же­ний, ра­бо­таю­щих в ок­нах с обыч­ ны­ми кноп­ка­ми управ­ле­ния; они ве­дут се­бя так, как и пред­по­ла­га­ ет­ся на лю­бом ра­бо­чем сто­ле. Вы мо­же­те ин­ди­ви­ду­а ль­но на­стро­ ить ме­нед­жер окон с по­мо­щью от­дель­но­го кон­фи­г у­ра­то­ра obconf. Да­лее идет Fluxbox, от­ветв­ле­ние дру­го­го не­за­ви­си­мо­го ме­нед­ же­ра окон под на­зва­ни­ем Blackbox. Во Fluxbox, как и в OpenBox, ос­ нов­ное ме­ню при­ло­же­ний от­кры­ва­ет­ся щелч­ком пра­вой кноп­кой по кон­тек­ст­но­му ме­ню. Од­на­ко Fluxbox вклю­ча­ет па­нель вни­зу эк­ ра­на, где раз­ме­ща­ют­ся ми­ни­ми­зи­ро­ван­ные при­ ло­же­ния. Вы так ­же мо­же­те от­де­лить его под­ме­ ню и ос­та­вить их ви­сеть на ра­бо­чем сто­ле для бы­ст­ро­го дос­т у­па к их со­дер­жи­мо­му. Не­смот­ря на па­нель, ра­бо­чий стол до­воль­но го­лый, и ос­ тав ­ля­е т ме­с то для соз ­д а­ния ва­шей ин­д и­ви­д у­ аль­ной сре­ды. Еще один ми­ни­ма ­ли­с т­с кий ме­нед ­жер окон — Joe’s Window Manager, ши­ро­ко из­вест­ный как JWM. JWM не толь­ко вклю­ча­ет па­ нель вни­зу, но и до­бав­ля­ет ме­ню при­ло­же­ний, пе­ре­к лю­ча­тель ра­бо­ чих об­лас­тей и па­нель за­дач с ча­са­ми. При щелч­ке по эк­ра­ну JWM так­же вы­во­дит свое ме­ню — пунк­тов там не­мно­го, но их мож­но на­ стро­ить, от­ре­дак ­ти­ро­вав файл на­строй­ки JWM.

По­ми­мо этих трех, весь­ма по­пу­ляр­ных для соз­да­ния лич­но­го ра­бо­че­го сто­ла, имеется не­сколь­ко дру­гих оп­ций, сре­ди ко­то­рых — Sawfish, Ratpoison i3 и Xnomad, а так­же и мас­са дру­гих.

При­на­ря­ди­те их В сво­ем со­стоя­нии по умол­ча­нию эти ме­нед ­же­ры окон вы­гля­д ят весь­ма уны­ло и не мо­г ут по­хва­стать­ся кра­со­той по­пу­ляр­ных сред. Но нас это впол­не уст­раи­ва­ет, по­сколь­к у да­ет ши­ро­кие воз­мож­ но­с ти ис­поль­зо­вать такие ме­нед ­же­ры окон для соз­д а­ния инди­

Вы по­лу­чи­те та­кие эф­фекты, как от­бра­сы­ва­ние те­ни, не над­са­жая обо­ру­до­ва­ние.

> Ска­чай­те OpenBox Menu Editor (obmenu), что­бы соз­дать ин­ди­ви­ду­аль­ное ме­ню с час­то ис­ поль­зуе­мы­ми при­ло­же­ния­ми.

видуаль­но­го ра­бо­че­го сто­ла на ком­пь­ю­те­рах с ог­ра­ни­чен­ны­ми ре­ сур­са­ми. На обыч­ном ком­пь­ю­те­ре лег­ко на­вес­ти лоск на пус­тые ок­на с по­мо­щью ме­нед ­же­ра ком­по­зи­тин­га. Ком­по­зи­тин­гом име­ну­ет­ся со­че­та­ние гра­фи­че­­ских эле­мен­тов из от­дель­но­го ис­точ­ни­ка в еди­ное изо­бра­же­ние. Ме­нед­жер ком­ по­зи­тин­га до­бав­ля­ет ви­зу­а ль­ные ук­ра­ше­ния к уком­плек ­то­ван­ным ме­нед ­же­рам окон, ис­поль­зуя со­вре­мен­ное гра­фи­че­­ское обо­ру­до­ ва­ние. Пер­вым ме­нед­же­ром окон, раз­ра­бо­тан­ным с ну­ля для под­ держ­ки ком­по­зи­тин­га че­рез OpenGL, был Compiz, то­гда как KWin от KDE и Mutter от Gnome оба яв­ля­ют­с я ком­по­зи­ц и­он­ны­ми ме­ нед­же­ра­ми окон. И не ду­май­те, что те­ни, таю­щие ме­ню и про­зрач­ ность воз­мож­ны един­ст­вен­но в тя­же­ло­вес­ных ра­бо­чих сто­лах. Есть не­сколь­ко ме­нед ­же­ров, снаб­жаю­щих эти­ми воз­мож­но­стя­ми лег­ ко­вес­ные ра­бо­чие сто­лы, и они от­лич­но ра­бо­та­ют с не­за­ви­си­мы­ ми ме­нед ­же­ра­ми окон. Две по­пу­ляр­ные оп­ции — Xcompmgr и от­ветв­ле­ние его от­ветв­ ле­ния (Xcompmgr-dana) под на­зва­ни­ем Compton. Оба ме­нед ­же­ра ком­по­зи­ции раз­ра­бо­та­ны с це­лью при­д а­ния внеш­ней при­в ле­ка­ тель­но­с ти ме­нед ­же­рам окон, не имею­щим встро­ен­ных функ­ций ком­по­зи­тин­га. С их по­мо­щью вы по­лу­чи­те та­кие эф­фек­ты, как от­ бра­сы­ва­ние те­ни и лег­кая ани­ма­ция при по­яв­ле­нии ок­на, не над­ са ­ж ая обо­ру­до­ва­ние. У обо­и х ме­нед ­же­ров так ­же ог­ра­ни­чен­ные

Пре­крас­ные аль­тер­на­тив­ные ра­бо­чие сто­лы Budgie Раз­ра­бо­тан­ный и ис­поль­зуе­мый ди­ст­ри­бу ­ти­вом Solus, Budgie на­пи­сан с ну­ля с ис­поль­зо­ва­ни­ем ком­по­нен­тов из сте­ка Gnome. Од­ним из яр­ких мо­мен­тов яв­ля­ет­ся ме­ню Budgie, ко­то­рое раз­ны­ми спо­со­ба­ми ви­зуа ­ли­зи­ру­ет ус­та­нов­ лен­ные при­ло­же­ния. Здесь име­ет­ся уни­фи­ци­ро­ван­ный центр уве­дом­ле­ний и ин­ди­ви­д у­а ль­ной на­строй­ки под на­зва­ни­ем Raven, ко­то­рый так ­же пре­дос­тав­ ля­ет бы­ст­рый дос­т уп к ка ­лен­да­рю, управ­ле­нию ме­диа-плей­е­ром, на­строй­кам сис­те­мы и оп­ци­ям пи­та­ния. Ра­бо­чий стол лег­ко на­страи­ва­ет­ся и рас­ши­ря­ет­ся и пред ­ла­га­ет тон­кий кон­троль ин­ди­ви­ ду­а ль­ных на­стро­ек ап­пле­тов. Ра­бо­чий стол Budgie офи­ ци­а льно под­дер­ жи­ва­ет­ся в Fedora и openSUSE; кроме того, существуют под­держи­вае­мые со­об­ще­ст­вом вер­сии для дистри­ бутивов Arch Linux и Ubuntu.

28  |  LXF210 Июнь 2016

Pantheon Ра­бо­чий стол Elementary OS соз­дал се­бе ре­пу ­та­цию эле­гант­но­го и дру­же­люб­ но­го к поль­зо­ва­те­лю. Он не слиш­ком на­гру­жа­ет ва­ши сис­тем­ные ре­сур­сы, и бе­рет при­мер с ра­бо­че­го сто­ла Mac OS X, и име­ет соб­ст­вен­ный ме­нед ­жер окон на ба­зе Mutter, под на­зва­ни­ем Gala. Ра­бо­чий стол пре­крас­но ин­тег­ри­ру­ет раз­ные эле­мен­ты, та­кие, как док Plank dock, верх­нюю па­нель (под на­зва­ни­ем Wingpanel) и про­грам­му за­пус­ка при­ло­же­ний Slingshot. Поч­ти все дей­ст­вия на ра­бо­чем сто­ле ис­к ус­но ани­ми­ро­ва­ны, од­на­ко ра­бо­че­му сто­лу уда­ет­ся со­блю­сти ба­ланс фор­ мы и функ­цио­наль­но­сти: скажем, ок­на при от­кры­тии по­яв­ля­ют­ся на пе­ре­к лю­ча­ те­ле. По­ми­мо Elementary OS, Pantheon мож­но ус­та­ но­вить по­верх по­пу­ляр­ных ди­ст­ри­бу ­ти­вов, вклю­чая openSUSE, Ubuntu (с на­ строй­кой) и Arch Linux.

www.linuxformat.ru/subscribe


Хак­ни­те свой ра­бо­чий стол! > Этот ин­ди­ви­ду­ аль­ный ра­бо­чий стол ис­поль­зу­ет ме­нед­жер окон OpenBox и PCManFM в ка­че­ст­ве ме­ нед­же­ра ра­бо­че­ го сто­ла. Есть па­ роч­ка Cairo-Dock с Gkrellm и мно­же­ ст­во gDesklets.

за­ви­си­мо­сти, и их лег­ко ус­та­но­вить из офи­ци­а ль­ных ре­по­зи­то­ри­ ев са­мых по­пу­ляр­ных ди­ст­ри­бу ­ти­вов ра­бо­че­го сто­ла.

Сви­стать всех на док Мно­гие из пе­ре­чис­лен­ных на­ми ме­нед­же­ров окон вклю­ча­ют па­нель для за­пус­ка при­ло­же­ний, но мно­гие это­го и не де­ла­ют. Это хо­ро­шо, ведь то­гда мож­но ис­поль­зо­вать од­ну из бле­стя­щих пред­ла­гае­мых оп­ций. Ос­нов­ная за­да­ча па­не­ли или до­ка — по­мо­гать без осо­бых хло­пот по­лу­чить дос­т уп к наи­бо­лее час­то ис­поль­зуе­мым при­ло­же­ ни­ям. Кро­ме то­го, нам на­до, что­бы па­нель пе­ре­к лю­ча ­лась ме­ж ­ду ок­на­ми и вир­т у­а ль­ны­ми ра­бо­чи­ми сто­ла­ми. Ино­гда па­не­ли да ­же вклю­ча­ют ап­пле­ты, та­кие, как ча­сы, ка­лен­дарь и про­гноз по­го­ды. Од­ной из по­пу­ляр­ных оп­ций яв­ля­ет­ся Docky, ко­то­рый ав­то­ма­ ти­че­­ски раз­ме­ща­ет на до­ке знач­ки наи­бо­лее час­то ис­поль­зуе­мых

при­л о­же­н ий. Docky так ­же ин­т ег­р и­р у­е т в док свой­с т­в о по­и с­к а из про­г рам­мы за­п ус­к а при­ло­же­ний Gnome-do, а зна­чит, мож­но так­же ис­поль­зо­вать Docky для за­пус­ка при­ло­же­ний. Од­на­ко пом­ ни­те, что по­т реб­ность Docky в ре­с ур­с ах де ­ла­ет его не­под ­хо­д я­ щим для ста­рых ком­пь­ю­те­ров. Ес­ли вы не ог­ра­ни­че­ны ре­сур­с а­ ми, не­пре­в зой­ден­н ую внеш­нюю при­в ле­к а­тель­ность пред ­ла­г а­ет Cairo-Dock. Он уме­ет про­из­во­дить рен­де­ринг до­ка в не­сколь­ких сло­ях 3D с ис­к ус­ной ани­ма­ци­ей, и пред­ла­га­ет та­кие эф­фек­ты, как эф­фект от­ра­же­ния. Знач­ки на до­ке так­же ани­ми­ро­ва­ны, и вы мо­ жете вы­брать и ин­ди­ви­ду­а ль­но на­стро­ить на до­ке ани­ма­цию и про­ чие эф­фек ­ты. Ес­ли вы ище­те лег­ко­вес­ную аль­тер­на­ти­ву вы­ше­упо­мя­ну­тым до­ кам, то есть еще Plank. По су­ти, имен­но Plank обес­пе­чи­ва­ет ра­бо­т у Docky, ко­то­рый идет даль­ше, до­бав­ляя кра­си­вые эф­фек­ты по­верх

Deepin DE

Moksha Этот лег­ко­вес­ный ра­бо­чий стол раз­ра­бо­тан и ис­поль­зу­ет­ся Bodhi Linux. Moksha — от­ветв­ле­ние от Enlightenment 17 (E17) с ха­рак­тер­ны­ми для Bodhi из­ме­не­ния­ми, ко­то­рые раз­ра­бот­чи­ки вне­сли в ис­ход­ный код за дол­гие го­ды. Раз­ра­бот­чи­ки так­же по­чис­ти­ли пор­ти­ро­ван­ные об­рат­но от­лад­ки и функ­ции из ре­ли­зов E19 и E20. Ра­бо­чий стол весь­ма ин­т уи­ти­вен и прост в на­строй­ке, и ис­поль­зу­ет тон­ны ви­зу­а ль­но при­вле­ка­тель­ных гад ­же­тов для ото­бра ­же­ ния сис­тем­ной ин­фор­ма­ции. Ра­бо­чим сто­лом мож­но управ­лять пол­но­стью с кла­виа­т у­ры и на­стра­ивать соб­ст­вен­ные го­ря­чие кла­ви­ши. Moksha на­хо­ дит­ся в ак­тив­ной раз­ра­бот­ке, и од­ним из ос­нов­ных из­ме­не­ний в гря­д у­щем ре­ли­зе бу­дет заново пе­ре­пи­сан­ная па­нель на­строй­ки. На сай­те Moksha (www. bodhilinux.com/mokshadesktop) вы мо­же­те отыскать под­роб­ные о­писания его ус­та­нов­ки в Debian Jessie, Sabayon Linux и Arch. В Ubuntu Moksha ус­та­нав­ли­ва­ет­ ся че­рез офи­ци­а ль­ные ре­по­зи­то­рии.

Ра­бо­чий стол Deepin — ук­ра­ше­ние ди­ст­ри­бу­ти­ва Chinese Deepin. Он ос­но­ ван на HTML5 и WebKit, и для сво­их раз­но­об­раз­ных ком­по­нен­тов ис­поль­зу­ет смесь QML и Go. По­ми­мо са­мо­го ра­бо­че­го сто­ла, за­слу ­жи­ваю­щие вни­ма­ния до­мо­ро­щен­ные ком­по­нен­ты Deepin вклю­ча­ют про­грам­му за­пус­ка при­ло­же­ ний, док и центр управ­ле­ния. Как и Pantheon, ра­бо­чий стол Deepin по­вто­ря­ет удоб­ст­во в ис­поль­зо­ва­нии и эс­те­ти­к у Mac OS X и об­ла­да­ет чис­тым и не­за­гро­ мо­ж ­ден­ным ин­тер­фей­сом, в ко­то­ром нет ни­че­го, кро­ме до­ка вни­зу эк­ра­на. В Deepin име­ют­ся го­ря­чие уг­лы: верх­ний ле­вый угол от­кры­ва­ет пол­но­эк­ран­ ную про­грам­му за­пус­ка при­ло­же­ний, а ниж­ний пра­вый — всплы­ваю­щ ую бо­ко­вую па­нель. Из этой бо­ко­вой па­не­ли мож­но управ­лять все­ми ас­пек­та­ми ра­бо­че­го сто­ла, вклю­чая ме­нед­ жер за­груз­ки. Ес­ли вам по­нра­ вил­ся этот ра­бо­ чий стол, мо­же­те ус­та­но­вить его и на дру­гие ди­ст­ ри­бу­ти­вы, та­кие как Ubuntu, Arch и Manjaro.

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 29


Хак­ни­те свой ра­бо­чий стол! ос­нов­ных функ­ций Plank. В Plank име­ют­ся те­мы и встро­ен­ная па­ нель Preferences, бо­га­тая на­с трой­ка­ми. По­ми­мо это­го, есть еще Simdock, tint2 и wbar, хо­тя раз­ра­бот­чи­ки их за­бро­си­ли, и они отсут­ ствуют в ре­по­зи­то­ри­ях мно­гих ди­ст­ри­бу ­ти­вов.

Бе­рем за ос­но­ву Итак, с оп­ция­ми мы оз­на­ко­ми­лись; да­вай­те со­пос­та­вим ком­по­ ненты и соз­д а­дим ин­ди­ви­д у­а ль­ный ра­бо­чий стол. Как и во всем ос­таль­ном, вы­бор ме­нед­же­ра окон оп­ре­де­ля­ет­ся ва­ши­ми эс­те­ти­ че­­ски­­ми пред­поч­те­ния­ми и по­треб­но­стя­ми. В до­пол­не­ние к сво­им функ­ци­ям по умол­ча­нию, иде­а ль­ный ме­нед­жер окон дол­жен быть дос­та­точ­но гиб­ким, что­бы адап­ти­ро­вать­ся под на­ши тре­бо­ва­ния. С уче­том ска­зан­но­го, ме­нед­же­ром окон на на­шем ин­ди­ви­д у­а ль­ ном ра­бо­чем сто­ле бу­дет OpenBox, ко­то­рый име­ет­ся в ре­по­зи­то­ри­ ях прак­ти­че­­ски лю­бо­го ди­ст­ри­бу­ти­ва Linux. Ана ­ло­г ич­но, ре­по­зи­то­рии на­ше­го ди­с т­ри­бу ­т и­ва пред ­ла­г а­ют ряд пре­крас­ных ме­нед ­же­ров фай­лов, и мы ре­ко­мен­ду­ем по­про­бо­ вать их все, а по­том вы­брать тот, что боль­ше все­го вам по­нра­вит­ ся. Нас уст­ро­ил ме­нед­жер фай­лов PCManFM. Он дос­т у­пен вез­де, он лег­ко­вес­ный и пред­ла­га­ет удоб­ные ко­ман­ды кон­тек­ст­но­го меню при щелч­ке пра­вой кноп­кой. А глав­ное, у не­го есть соб­с т­вен­ная про­грам­ма за­пус­ка при­ло­же­ний, ко­то­рая от­лич­но нам под­хо­дит. Еще один лег­ко­вес­ный ком­по­нент, ко­то­рый мы бу­дем ис­поль­зо­ вать и ко­то­рый лег­ко дос­т у­пен в боль­шин­ст­ве ди­ст­ри­бу­ти­вов, это ме­нед ­жер ком­по­зи­тин­га Xcompmgr. По­сколь­к у на­ше обо­ру­до­ва­ние нам по­зво­ля­ет, мы по­мес­тим на свой ра­бо­чий стол Cairo-Dock ра­ди его от­лич­ных эф­фек ­тов и мно­го­чис­лен­ных оп­ций на­строй­ки. Ос­ таль­ную часть ра­бо­че­го сто­ла ис­поль­зу­ем для раз­ме­ще­ния не­ко­ то­рых ап­пле­тов, взя­тых из при­ло­же­ния gDesklets.

Всех по­стро­им Все вы­бран­ные ком­по­нен­ты лег­ко до­быть в офи­ци­а ль­ных ре­по­ зи­то­ри­ях ос­нов­ных ди­ст­ри­бу­ти­вов, та­ких, как Debian, Ubuntu, Fe­ dora и Arch Linux. Ко­гда вы ус­та­но­ви­те все ин­ди­ви­д у­а ль­ные ком­ по­ненты с по­м о­щ ью ме­нед ­же­р а па­ке­т ов сво­его ди­с т­ри­бу ­т и­в а, их нужно бу­дет объ­е­ди­нить. За­пус­ти­те тек­сто­вый ре­дак­тор и соз­ дай­те в своей до­маш­ней ди­рек­то­рии тек­сто­вый файл — на­при­мер, $ nano ~/myCustomDE.sh — и до­бавь­те в не­го сле­дую­щее: #!/bin/sh cairo-dock -o &

pcmanfm --desktop & sleep 1s pcmanfm --set-wallpaper=~/wallpaper.jpg --wallpapermode=crop xcompmgr -c -f & gdesklets & openbox Со­хра­ни­те файл и преврати­те его в ис­пол­няе­мый с по­мо­щью chmod +x ~/myCustomDE.sh. Пре­ж ­де чем ид­ти даль­ше, да­вай­те раз­ бе­рем­ся с со­дер­жа­ни­ем скрип­та, ко­то­рый мы соз­да­ли. Ис­поль­зо­ ва­ние клю­ча -o за­ста­вит Cairo-Dock ис­поль­зо­вать дви­жок OpenGL с ап­па­рат­ным ус­ко­ре­ни­ем. Сим­вол & в кон­це не­ко­то­рых строк да­ ет ди­ст­ри­бу­ти­ву ко­ман­ду пе­ре­вес­ти про­грам­му в фо­но­вый ре­жим и пе­рей­ти к сле­д ую­ще­му пунк­т у. Без это­го сим­во­ла ди­ст­ри­бу­тив за­пус­тит пер­вую стро­к у и бу­дет ждать вы­пол­не­ния всей про­грам­ мы, а уж по­том за­пус­тит сле­дую­щую стро­к у, то есть наш ра­бо­чий стол не за­гру­зит­ся. Да­лее мы ве­лим PCManFM уд­во­ить уси­лия в ка­че­­ст­ве на­ше­го ме­нед ­же­ра ра­бо­че­го сто­ла. Ве­ро­ят­но, это един­ст­вен­ный ме­нед ­жер окон, спо­соб­ный на та­кое. С по­мо­щью оп­ции --desktop мы про­сим PCManFM управ­лять ра­бо­чим сто­лом, что, сре­ди про­че­го, по­зво­лит нам раз­ме­щать на ра­бо­чем сто­ле знач­ки. По умол­ча­нию PCManFM по­ка­зы­ва­ет знач­ки для всех фай­лов и па­пок в пап­ке ~/Desktop. Ес­ли вам на ра­бо­чем сто­ле нуж­ны яр­лы­ки при­ло­же­ний, вам на­до ско­пи­ ро­вать фай­лы .desktop из /usr/share/applications в свою пап­к у Desktop: на­при­мер, cp /usr/share/applications/cheese.desktop ~/Desktop по­мес­тит на ра­бо­чий стол яр­лык при­ло­же­ния web-ка­ме­ры Cheese. Ес­ли яр­лы­ки при­ло­же­ний на ра­бо­чем сто­ле вам не нуж­ны, мо­ же­те про­пус­тить эту стро­к у. За­тем мы на се­к ун­ду при­ос­та­нав­ли­ва­ ем скрипт, что­бы PCManFM ста­би­ли­зи­ро­вал­ся, а за­тем сно­ва об­ ра­тим­ся к не­му, что­бы соз­дать обои: со­глас­но на­ще­му по­ру­че­нию, их ото­бра ­же­ние ста­но­вит­ся обя­зан­но­стью PCManFM. Ес­ли ме­нед­ же­ром ра­бо­че­го сто­ла у вас вы­бран не PCManFM, для соз­да­ния обо­ ев вы мо­же­те ис­поль­зо­вать Feh, вот так: feh --bg-fill ~/wallpaper.jpg. Оп­ция, ука­зан­ная для xcompmgr, про­сит его вклю­чить ком­по­ зи­тинг с под­держ­кой плав­ных те­ней и про­зрач­но­сти. Так­же вклю­ чит­ся эф­фект плав­но­го за­т у­ха­ния при скры­тии и вос­ста­нов­ле­нии окон. Да­лее за­пус­ти­те gDesklets. По умол­ча­нию ни­ка­кие ап­плеты не ото­бра­жа­ют­ся. Зай­дя в ра­бо­чий стол, за­пус­ти­те обо­лоч­к у и вве­ ди­те gdesklets shell, что­бы вы­вес­ти кон­фи­г у­ра­тор ап­пле­тов. По­том щелк­ни­те два­ж ­ды по лю­бо­му дос­т уп­но­му ап­пле­т у и раз­мес­ти­те

> Это лег­ко­вес­ ный ра­бо­чий стол на ба­зе OpenBox, где ра­бо­та­ет ме­ нед­жер ком­по­зи­ции Compton с Docky вни­зу и про­грам­мой за­пус­ка при­ло­же­ ний gmrun ввер­ху.

30  |  LXF210 Июнь 2016

www.linuxformat.ru/subscribe


Хак­ни­те свой ра­бо­чий стол! > Ис­поль­зуйте ши­ро­кие воз­ мож­но­сти CairoDock, что­бы сде­ лать внеш­ний вид при­вле­ка­тель­нее.

его на ра­бо­чем сто­ле. Пе­ре­за­пуск gDesklets в скрип­те обо­лоч­ки обес­пе­чит ото­бра ­же­ние до­бав­лен­ных ва­ми ап­пле­тов в их по­след­ нем из­вест­ном по­ло­же­нии. В по­след­ней стро­ке мы за­пус­ка­ем ме­ нед ­жер окон. По­за­боть­тесь, что­бы вы­зов ме­нед ­же­ра окон все­гда яв­лял­ся по­след­ней стро­кой скрип­та обо­лоч­ки, при­чем без сим­во­ ла & на кон­це.

Вне­дря­ем в жизнь Наш скрипт го­тов, и по­ра по­про­сить ме­нед­жер вхо­да в сис­те­му его за­пус­кать. При по­пыт­ке вы­звать скрипт из­нут­ри ак­тив­но­го ра­бо­ че­го сто­ла тот жал­ким об­ра­зом рух­нет, по­сколь­к у там уже ра­бо­ та­ют эк­зем­п­ля­ры за­пус­кае­мых ва­ми ком­по­нен­тов. Боль­шин­ст­во ме­нед ­же­ров вхо­да в сис­те­му со­хра­ня­ют спи­сок дос­т уп­ных ти­пов сес­сий в ди­рек ­то­рии /usr/share/xsessions. От име­ни root соз­дай­те тек­сто­вый файл — $ sudo /usr/share/xsessions/myCustomDesktop. desktop — и до­бавь­те в не­го [Desktop Entry] Name=MyCustomDesktop Comment=My very own desktop! Exec=~/myCustomDesktop.sh Type=XSession Пункт Name — это имя ва­ш е­г о ра­б о­ч е­г о сто­л а, как оно за­ пи­са­но в ме­нед­же­ре вхо­д а в сис­те­му, а Exec ука­зы­ва­ет на ме­сто раз­ме­щ е­ния соз­д ан­но­го на­ми фай­ла обо­лоч­к и, ко­то­рый бу­дет за­пус­кать раз­ные ком­по­нен­ты и соз­да­вать наш ра­бо­чий стол. Со­ хра­ни­те файл и вый­ди­те из те­к у­ще­го ра­бо­че­го сто­ла. Ваш лич­ный ра­бо­чий стол дол­жен фи­г у­ри­ро­вать в ка­че­­ст­ве оп­ции в ме­нед­же­ре

вхо­да в сис­те­му. Вы­бе­ри­те его, вве­ди­те свои дан­ные поль­зо­ва­те­ля, и вы ока­же­тесь в соб­ст­вен­ном ра­бо­чем сто­ле.

Оде­нем по-го­род­ско­му Хо­тя вы по­лу­чи­ли впол­не функ­цио­наль­ный ра­бо­чий стол, все же не­ко­то­рые ис­поль­зо­ван­ные в нем ком­по­нен­т ы, та­к ие как CairoDock, gDesklets и да­же OpenBox, ну­ж ­да­ют­ся в до­пол­ни­тель­ной на­ строй­ке. Вы мо­же­те при­нять этот ра­бо­чий стол за от­пра­вную точ­ ку и про­дол­жить ин­ди­ви­ду­а ль­ную на­строй­к у. Вно­сить из­ме­не­ния лег ­ко. Мы уже упо­ми­на ­ли, как вме­с то PCManFM в ка­че­­с т­ве ме­ нед­же­ра ра­бо­че­го сто­ла ис­поль­зо­вать для от­ри­сов­ки обо­ев Feh. Мож­но так­же за­ме­нить Cairo-Dock на дру­гой док или во­об­ще от­ка­ зать­ся от не­го, а вза­мен поль­зо­вать­ся про­грам­мой за­пус­ка при­ло­ же­ний, на­при­мер, Gnome-Do, Synapse или лег­ко­вес­ной gmrun. Все эти при­ло­же­ния раз­ра­бо­та­ны как са­мо­с тоя­тель­ные ком­по­ненты для ис­поль­зо­ва­ния внут­ри ин­ди­ви­д у­а ль­но­го ба­зо­во­го ра­бо­че­го сто­ла, по­доб­но­го на­ше­му, и ин­фор­ма­ция по их упот­реб­ле­нию хо­ ро­шо до­к у­мен­ти­ро­ва­на. Соз­да­ние соб­ст­вен­ной сре­ды ра­бо­че­го сто­ла — про­цесс, без­ ус­лов­но, бо­лее тру­до­ем­кий, чем про­сто на­строй­ка ра­бо­че­го сто­ла по умол­ча­нию в ва­шем ди­ст­ри­бу­ти­ве. Од­на­ко ре­зуль­та­ты в рав­ной ме­ре — ес­ли не боль­ше — впе­чат­ля­ют. По­трать­те не­ко­то­рое вре­мя на пред ­ло­жен­ные ком­по­нен­ты и, воз­мож­но, да ­же о­про­буй­те не­ко­ то­рые из них, на­при­мер, ме­нед­же­ры фай­лов и до­ки, в сво­ем ди­ст­ ри­бу ­ти­ве. Най­дя ком­по­нен­ты, со­от­вет­ст­вую­щие ва­шим по­треб­но­ стям, вы без осо­бо­го тру­д а смо­же­те вклю­чить их в свой лич­ный ра­бо­чий стол.

Ак­сес­суа­ры С по­мо­щью упо­мя­ну ­тых на­ми ком­по­нен­тов вы смо­ же­те соз­дать весь­ма дос­той­ный, бо­га­тый функ­ ция­ми ра­бо­чий стол, но в этот кок­тейль мож­но до­ба­вить и кое-что еще. Не­ко­то­рым лег­ко­вес­ным ме­нед ­же­рам окон не хва­та­ет воз­мож­но­сти ус­та­ но­вить обои, и для это­го вам по­на­до­бит­ся дру­гой ин­ст­ру­мент. Дву­мя из наи­бо­лее по­пу­ляр­ных яв­ля­ ют­ся Feh и Nitrogen. Feh — очень бы­ст­рый и лег­кий

ин­ст­ру­мент ко­манд­ной стро­ки для про­смот­ра изо­бра­же­ний, ко­то­рый так­же смо­жет ус­та­но­вить обои. А Nitrogen — гра­фи­че­­ская ути­ли­та, по­зво­ ляю­щая про­смат­ри­вать обои пе­ред их ус­та­нов­кой. По­пу­ляр­ны­ми ак­сес­суа­ра­ми, ко­то­рые ук­ра­ша­ют мно­гие ин­ди­ви­д у­а ль­ные ра­бо­чие сто­лы, яв­ля­ют­ся на­бо­ры ап­пле­тов и вид ­же­тов. Пол­но­функ­цио­наль­ ные ра­бо­чие сто­лы, в осо­бен­ности KDE, вклю­ча­ют

www.linuxformat.ru/subscribe

про­д у­ман­ные ме­ха­низ­мы для ук­ра­ше­ния ра­бо­че­го сто­ла ви­зу­а льно при­вле­ка­тель­ны­ми вид ­же­та­ми и ап­пле­та­ми, а не­за­ви­си­мые ме­нед ­же­ры окон, о ко­то­рых го­во­ри­лось вы­ше, такого не уме­ют. Для это­го мож­но при­ме­нить сто­рон­ние ин­ст­ру­мен­ты, на­при­мер, Adesk­top и gDeslets — их под­бор­ки ап­ пле­тов от­лич­но ла­д ят с ин­ди­ви­д у­а ль­ными ра­бо­чи­ ми сто­ла­ми.

Июнь 2016 LXF210  | 31


Хак­ни­те свой ра­бо­чий стол!

На­строй­те KDE Plasma 5 Мо­дер­ни­зи­руй­те ра­бо­чий стол по пол­ной про­грам­ме.

K

DE — один из са­м ых на­с траи­в ае­м ых ра­б о­ч их сто­л ов, и он пред­ла­га­ет ряд па­ра­мет­ров, ко­то­рые по­мо­г ут вам при­спо­со­бить его к сво­им ну ­ж­дам. Од­на­ко мно­гим поль­ зо­ва­те­лям не уда­ет­ся це­ли­ком ис­поль­зо­вать его по­тен­ци­ал изза слож­но­сти ме­нед­же­ра Сис­тем­ных На­стро­ек [System Settings]. Све­жий ре­лиз KDE 5 ис­пра­вил этот важ­ней­ший ком­по­нент, улуч­шив его струк­т у­ру и уп­ро­стив на­ви­га­цию. Вы мо­же­те рас­ши­рить имею­щие­ся в ме­нед ­же­ре Сис­тем­ных На­ стро­ек оп­ции, ус­та­но­вив KCMs (KConfig Modules), что под­го­то­вит дей­ст­вую­щий ин­тер­фейс для на­стро­ек. В ре­по­зи­то­ри­ях ва­ше­го ди­ ст­ри­бу ­ти­ва мо­ду­лей KCM не­сколь­ко: на­при­мер, есть kcm-gtk, бла­ го­да­ря ко­то­ро­му при­ло­же­ния GTK бу­дут чув­ст­во­вать се­бя на ра­бо­ чем сто­ле, как до­ма. Вы мо­же­те ус­та­но­вить kcm-gtk вме­сте с те­мой breeze-gtk. Ко­гда оба па­ке­та бу­дут ус­та­нов­ле­ны, пе­рей­ди­те в System Settings > Application Style > Gnome Application Style и убе­ди­тесь, что Breeze ус­та­нов­лен в ка­че­­ст­ве те­мы по умол­ча­нию для GTK2 и GTK3. Еще один ин­те­рес­ный мо­дуль — kcm_systemd, для управ­ле­ния Systemd, сис­те­мой ини­циа ­ли­за­ции ди­ст­ри­бу ­ти­ва. В ка­че­­ст­ве уров­ня аб­ст­рак­ции ме­ж ­д у ра­бо­чим сто­лом и при­ ло­же­ния­ми муль­ти­ме­диа KDE ис­поль­зу­ет Phonon API. Phonon API мо­жет ра­бо­тать на не­сколь­ких движ­ках. Раз­ра­бот­чи­ки KDE пред­ по­чи­та­ют VLC, а ди­ст­ри­бу­ти­вы вро­де Fedora и Kubuntu пред ­ла­га­ют дви­жок Gstreamer, во из­бе­жа­ние про­блем с ли­цен­зи­ей. Ес­ли ваш ди­ст­ри­бу ­тив по­став­ля­ет­ся с Gstreamer, вы мо­же­те пе­рей­ти на бо­лее по­пу­ляр­ный VLC, сна­ча ­ла вклю­чив ре­по­зи­то­рий Universe (в Kubun­ tu) или до­ба­вив сто­рон­ний ре­по­зи­то­рий, на­при­мер, RPMfusion (для ди­ст­ри­бу­ти­вов на ба­зе RPM ти­па Fedora). За­тем че­рез ме­нед ­жер па­ке­тов ус­та­но­ви­те па­кет phonon-qt5‑backend-vlc. По­сле ус­та­нов­ки пе­рей­ди­те в System Settings > Multimedia > Audio and Video > Back­ end и вы­бе­ри­те в ка­че­­ст­ве при­ори­тет­но­го движ­ка VLC. Вы, воз­можно, прозева­ли еще од­ну хорошую ин­ди­ви­ду­а ль­ную на­строй­к у: это спо­соб­ность KDE пе­ре­к лю­чать про­грам­мы за­пус­ка

> Для на­строй­ки спи­ска при­ло­же­ний в ме­ню щелк­ни­те пра­вой кноп­кой по ме­ню Applications [При­ло­же­ния] и вы­бе­ри­те Edit Applications [Ре­дак­ти­ро­вать при­ло­же­ния].

32  |  LXF210 Июнь 2016

при­ло­же­ний. Ра­бо­чий стол идет с не­сколь­ки­ми про­грам­ма­ми за­ пус­ка при­ло­же­ний, и пе­ре­к лю­чать­ся ме­ж ­ду ни­ми лег­ко. Щелк­ни­те пра­вой кноп­кой по знач­к у про­грам­мы за­пус­ка при­ло­же­ний на па­ не­ли за­дач и вы­бе­ри­те оп­цию Alternatives [Аль­тер­на­ти­вы]. Поя­вит­ся ок­но с имею­щи­ми­ся оп­ция­ми и их крат­ки­ми опи­са­ния­ми. По­ми­мо про­грам­мы за­пус­ка при­ло­же­ний по умол­ча­нию, Kickoff, есть так­же Lancelot, слав­ный сво­ей функ­ци­ей по­ис­ка. Имеется так­же Homerun, пол­но­эк­ран­ная про­грам­ма за­пус­ка при­ло­же­ний, пред­ла­гаю­ щая спи­сок при­ло­же­ний по ка­те­го­ри­ям.

Па­рад оп­ций Па­не­ли в KDE, где раз­ме­ща­ют­ся про­грам­мы за­пус­ка при­ло­же­ний, то­же от­лич­но на­страи­ва­ют­ся. Вы мо­же­те до­ба­вить их сколь­ко ду­ше угод­но, вклю­чая по од­ной на ка­ж ­дый мо­ни­тор, ес­ли у вас не­сколь­ ко мо­ни­то­ров, и на­стро­ить не­за­ви­си­мо друг от дру­га. Вы так­же мо­ же­те пе­ре­тас­ки­вать и до­бав­лять при­ло­же­ния, фай­лы и пап­ки на па­ нель для бы­ст­ро­го дос­т у­па. Щелк­ни­те пра­вой кноп­кой по па­не­ли и вы­бе­ри­те оп­цию Add Widgets [До­ба­вить вид ­же­ты], что­бы вы­вес­ ти па­нель Widgets. Вид­же­ты до­бав­ля­ют в па­нель раз­ную полезную ин­фор­ма­цию, и их так­же мож­но по­ме­щ ать на ра­бо­чий стол. Ис­ поль­зуй­те оп­цию Get New Widgets [Най­ти но­вые вид ­же­ты], что­бы ска­чать до­пол­ни­тель­ные вид­же­ты через по­средство Plasma AddOn Installer. Од­ним из об­щих на­ре­ка­ний по вид­же­там на ра­бо­чем сто­ле яв­ ля­ет­ся то, что они по­ка­зы­ва­ют свои ру­ко­ят­ки на­строй­ки, как толь­ко вы на­во­ди­те на них кур­сор. Что­бы это из­ме­нить, щелк­ни­те по знач­ ку с объ­е­ди­нен­ны­ми ли­ния­ми в ле­вом верх­нем уг­лу эк­ра­на и вы­бе­ ри­те Folder View или Desktop Settings, в за­ви­си­мо­сти от то­го, ка­кой рас­к лад­кой вы поль­зуе­тесь. За­тем пе­рей­ди­те во вклад­к у Tweaks и вклю­чи­те оп­цию в Widget Handling. Те­перь вид­же­ты бу­дут по­ка­ зы­вать свои ру­ко­ят­ки, толь­ко ес­ли вы бу­де­те удер­жи­вать на­жа­тие в те­че­ние оп­ре­де­лен­но­го вре­ме­ни. KDE пред ­ла­г а­ет мно­же­с т­во при­ло­же­ний с изо­би­ли­ем функ­ ций и соб­ст­вен­ным на­бо­ром на­страи­вае­мых па­ра­мет­ров. Вы да ­же мо­же­те оп­ре­де­лить по­ве­де­ние та­к их ком­по­нен­тов, как Кор­зи­на [Trash]. Щелк­ни­те пра­вой кноп­кой по знач­к у кор­зи­ны на ра­бо­чем сто­ле и вы­бе­ри ­те оп­ц ию Configure Trash Bin [На­с тро­и ть Кор­зи­ ну]. По умол­ча­нию, Кор­зи­не от­ве­де­но 10 % объ­е­ма раз­де­ла home, но этот па­ра­метр лег­ко из­ме­нить. Кор­зи­на уве­до­мит вас, ко­гда при­ бли­зит­ся к это­му пре­де­лу. Оп­цио­наль­но вы мо­же­те дать ей ко­ман­ ду ав­то­ма­ти­че­­ски уда­лять или са­мый ста­рый, или са­мый боль­шой файл, что­бы вы­сво­бо­дить ме­сто. Еще один спо­соб сэ­ко­но­мить ме­ сто — вклю­чить оп­цию пол­но­го уда ­ле­ния фай­лов, на ­хо­д я­щих­ся в кор­зи­не ука­зан­ное вре­мя. Еще од­но час­то ис­поль­зуе­мое при­ло­же­ние KDE — ме­нед ­жер фай­лов Dolphin. Что­бы воз­дей­ст­во­вать на его на­строй­ки, за­пус­тите ме­нед­жер фай­лов, щелк­ни­те по оп­ции с яр­лы­ком Control в верх­ ней па­не­ли ин­ст­ру­мен­тов и вы­бе­ри­те Configure Dolphin [На­стро­ить Dolphin]. Здесь вы мо­же­те из­ме­нить рас­по­ло­же­ние пап­ки за­пус­ка и вклю­чить ре­дак ­ти­руе­мую па­нель раз­ме­ще­ния, яв­ляю­щую­ся на­ шим фа­во­ри­том. За­тем пе­рей­ди­те на вклад­к у View Modes [Ре­жи­мы про­смот­ра], где мож­но на­страи­вать раз­ные ас­пек ­ты трех раз­ных ви­дов. Опыт­ным поль­зо­ва­те­лям сто­ит зай­ти на вклад­к у Services [Сер­ви­сы] и ис­поль­зо­вать оп­цию Download New Services [За­гру­ зить но­вые сер­ви­сы], что­бы на­пол­нить кон­тек­ст­ное ме­ню пра­во­ го щелч­ка по­лез­ны­ми оп­ция­ми — на­при­мер, ме­ню OpenVPN, ме­ню PDF и ме­ню EncFS, сре­ди про­чих.

www.linuxformat.ru/subscribe


Хак­ни­те свой ра­бо­чий стол!

На­строй­ка Gnome 3 Про­ка­чай­те свой ра­бо­чий стол.

G

nome 3 про­шел дол­г ий путь с са­мых ран­них ре­ли­зов, обоз­лил сво­их дав­них поль­зо­ва­те­лей и по­мог поя­вить­ ся на свет но­вень­ким ра­бо­чим сто­лам Cinnamon и Mate. За все эти го­ды и все по­сле­дую­щие ре­ли­зы под­ход Gnome «делайте по-на­ше­му или проваливай­те» уступил место но­во­му уров­ ню гиб­ко­сти ра­бо­че­го сто­ла, и пред­ла­га­ет ин­те­рес­ные на­страи­вае­ мые оп­ции для поль­зо­ва­те­лей, ко­то­рые хо­те­ли бы адап­ти­ро­вать свой ра­бо­чий стол. Gnome System Settings по-преж­н е­м у весь­м а при­м и­т ив­н ы по срав­не­нию с па­не­ля­ми управ­ле­ния не­ко­то­рых его кон­к у­рен­тов, на­при­мер, KDE, но все рав­но про­из­во­д ят со­лид­ное впе­чат­ле­ние. Од­на из силь­ных сто­рон Gnome 3 — его уни­фи­ци­ро­ван­ный по­иск в Activities Overview, ко­то­рый ищет со­от­вет­ст­вия в при­ло­же­ни­ях, на­строй­ках, а так­же фай­лах и пап­ках. Вы мо­же­те на­стро­ить по­иск, пе­рей­дя в System Settings > Search в раз­де­ле Personal. Что­бы из­ме­ нить мес­та про­смот­ра, на ­жми­те на зна­чок с шес­те­рен­кой. Поя­вит­ ся ок­но, где вы смо­же­те на­стро­ить спи­сок ме­сто­по­ло­же­ния по­ис­ка, от­к лю­чив имею­щие­ся и до­ба­вив но­вые. Еще од­на ин­те­рес­ная функ­ция ра­бо­че­го сто­ла, ко­то­рую час­то не за­ме­ча­ют, это его спо­соб­ность од­ним щелч­ком вклю­чать уда­ лен­ный дос­т уп или об­щий дос­т уп к фай­лам. Пе­рей­ди­те в System Settings > Sharing [Па­ра­мет­ры сис­те­мы > Раз­де­ле­ние]. Здесь вы мо­ же­те вклю­чить оп­цию Personal File Sharing [По­де­лить­ся фай­ла­ми], что­бы от­крыть общий дос­т уп к со­дер­жи­мо­му пап­ки Public внут­ ри ди­рек ­то­рии home че­рез про­то­кол WebDAV. Оп­цио­наль­но можно соз­дать и па­роль. Точ­но так же щелк­ни­те по оп­ции Screen Sharing [Общий доступ к эк­ра­ну] и вы­бе­ри­те од­ну из двух оп­ций дос­т у­па. За­тем вклю­чи­те пе­ре­к лю­ча­тель Allow Remote Control [Раз­ре­шить уда ­лен­ное управ­ле­ние]. Те­перь вы смо­же­те по­лу­чить дос­т уп к ра­ бо­че­му сто­лу Gnome, ра­бо­таю­ще­му на этом ком­пь­ю­те­ре, с лю­бо­го ком­пь­ю­те­ра в се­ти че­рез VNC. На­ша боль­ная те­ма по по­во­д у данно­го ра­бо­че­го сто­ла — от­ сут­ст­вие ие­рар­хи­че­­ско­­го ме­ню для при­ло­же­ний. Это осо­бен­но раз­ дра­жа­ет, ес­ли при­ло­же­ний в ва­шем ди­ст­ри­бу­ти­ве на ба­зе Gnome мно­го. По­сле Gnome 3.10 ра­бо­чий стол на­чал груп­пи­ро­вать не­ко­то­ рые ути­ли­ты и при­ло­же­ния по пап­кам с на­зва­ния­ми Sundry [Вся­кая Вся­чи­на] и Utilities [Ути­ли­ты]. В Gnome 3.12 и в бо­лее но­вых вер­си­ ях у вас есть оп­ция руч­ной сор­ти­ров­ки ус­та­нов­лен­ных при­ло­же­ний по ин­ди­ви­ду­а ль­но соз­дан­ным груп­пам. Для это­го за­пус­ти­те Gnome Software, пе­рей­ди­те во вклад­к у Installed [Ус­та­нов­ле­но] и на ­жми­те на кноп­к у с га­лоч­кой, ко­то­рая от­ме­тит окош­ки пе­ред при­ло­же­ния­ ми. За­тем вы­бе­ри­те при­ло­же­ния, ко­то­рые вы хо­ти­те сгруп­пи­ро­вать и на­жми­те на кноп­к у Add to Folder [До­ба­вить в пап­к у]. В этот мо­ мент вы мо­же­те на­жать на кноп­к у ‘+’ для соз­да­ния но­вой пап­ки, или вы­брать уже су­ще­ст­вую­щую, и то­гда при­ло­же­ния бу­дут рас­пре­де­ лять­ся по ка­те­го­ри­ям в этой пап­ке в Activities Overview.

И сверх то­го Что­бы обес­пе­чить еще боль­ш ую гиб­кость, ну ­жен Gnome Tweak Tool. В не­ко­то­рых ди­ст­ри­бу­ти­вах на Gnome этот ин­ст­ру­мент пред­ ус­та­нов­лен, но боль­шин­ст­во смо­г ут най­ти его в офи­ци­а ль­ных ре­ по­зи­то­ри­ях сво­его ди­ст­ри­бу ­ти­ва. Он прост в работе и пред ­ла­га­ ет воз­мож­но­с ти на­с трой­к и в ин­т уи­т ив­но по­нят­ных ка­те­го­ри­я х. Од­на из са­мых по­лез­ных на­стро­ек раз­ме­щ а­ет­ся в раз­де­ле Desk­ top, и это — воз­мож­ность ото­бра­жать знач­ки на ра­бо­чем сто­ле. Вам так­же на­до бу­дет пе­рей­ти в раз­дел Windows и вклю­чить оп­ цию вос­ста­нов­ле­ния кно­пок сво­ра­чи­ва­ния и раз­во­ра­чи­ва­ния окон

на па­не­ли за­го­лов­ка. Еще од­на воз­мож­ность до­ба­вить функ­ции в Gnome 3 — по­сред­с т­вом рас­ши­ре­ний обо­лоч­ки. Удобно будет ус­та­но­вить их с сай­та Gnome Extensions (http://extensions.gnome. org) — все­го за не­сколь­ко щелч­ков. Од­но из по­лез­ных до­пол­не­ ний — Dash to Dock, ко­то­рое бе­рет па­нель управ­ле­ния [dash] на эк­ ра­не об­зо­ра дей­ст­вий [activities overview] и раз­ме­ща­ет ее в ка­че­ ­ст­ве до­ка на ра­бо­чем сто­ле. Да­лее есть рас­ши­ре­ние Removable Drive Menu, ко­то­рое ото­бра ­жа­ет ин­ди­ка­тор на па­не­ли Gnome, что­бы по­ мочь вам управ­лять пе­ре­нос­ны­ми уст­рой­с т­в а­ми. Не­пре­мен­ное рас­ши­ре­ние для по­к лон­ни­ков ко­манд­ной стро­ки — Drop down ter­ minal, ко­то­рое при на­жа­тии на за­д ан­ную кла­ви­шу вы­во­дит ок­но тер­ми­на ­ла. Поль­зо­ва­те­ли ра­бо­че­го сто­ла Gnome ис­поль­зу­ют ба­зу дан­ных кон­фи­г у­ра­ции DConf для хра­не­ния сис­тем­ных на­стро­ек и на­стро­ ек при­ло­же­ний. Вы мо­же­те на­пря­мую вне­сти из­ме­не­ния в эту ба­

> Ис­поль­зуй­те гра­ фи­че­ский Dconf Editor, дос­туп­ ный в ре­по­зи­то­ ри­ях прак­ти­че­ски всех ди­ст­ри­бу­ти­ вов на ба­зе Gnome, что­бы изу­чить раз­ но­об­раз­ные имею­ щие­ся оп­ции для ка­ж­дой на­строй­ки.

Ин­те­рес­ная функ­ция — спо­ соб­ность од­ним щелч­ком вклю­чать уда­лен­ный дос­туп. зу дан­ных с по­мо­щью ин­ст­ру­мен­та ко­манд­ной стро­ки gsettings, что очень удоб­но, осо­бен­но для на­стро­ек, ко­то­рые не по­ка­зы­ва­ют­ся че­ рез гра­фи­че­­ские ин­ст­ру­мен­ты — на­при­мер, оп­ция Power [Пи­та­ние] па­не­ли System Settings. Ко­ман­да gsettings set org.gnome.settings-daemon.plugins.xrandr defaultmonitors-setup do-nothing обес­пе­чит ак­тив­ность но­у т­бу­ка да­же по­сле за­кры­тия его крыш­ки. Ис­поль­зуй­те так­же gsettings set org.gnome.desktop.lockdown disable-lockscreen true для от­к лю­че­ния эк­ра­на бло­ки­ров­ки. Gnome 3 име­ет так­же встро­ ен­ную про­грам­му за­пи­си скрин­ка­с тов, ко­то­рая на­чи­на­ет за­пись по на­ж а­тию кла­виш Ctrl + Alt + Shift + r. В боль­шин­с т­ве ди­с т­ри­бу­ ти­вов Gnome эта функ­ция за­пи­сы­ва­ет ви­део в те­че­ние 30 се­к унд. Что­бы за­пись шла, по­ка не кон­чит­ся ме­сто на дис­ке, на­до вве­сти gsettings set org.gnome.settings-daemon.plugins.mediakeys maxscreencast-length 0 0 (нуль) озна­ча­ет не­ог­ра­ни­чен­ную дли­тель­ность. Тут при­дет­ся ис­поль­зо­вать ком­би­на­цию кла­виш, что­бы на­чать и за­кон­чить за­ пись. Ин­ст­ру­мент gsettings очень не­пло­хо под­да­ет­ся рас­ши­ре­нию и хо­ро­шо до­к у­мен­ти­ро­ван. |

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 33


Raspberry Pi — 4 го­да

День Raspberry Pi Лес Па­ун­дер от­пра­вил­ся на ро­ди­ну Raspberry Pi, что­бы по­боль­ше уз­нать о со­об­ще­ст­ве умель­цев, об­ра­зо­вав­шем­ся во­круг не­го.

34  |  LXF210 Июнь 2016

www.linuxformat.ru/subscribe


Raspberry Pi — 4 го­да

МАРТИН О’ХЭНЛОН [Martin O’Hanlon] LXF: Мар­тин, спа­си­бо, что на­шли вре­мя с на­ми по­бе­се­ до­вать. По­пу­ляр­ность Minecraft до­воль­но бы­ст­ро при­ ве­ла вас к ус­пе­х у, и се­го­дня вы — при­знан­ный экс­перт во всем, что ка­са­ет­ся Minecraft и Pi. Мар­тин О’Хэнлон [Martin O’Hanlon]: Спа­си­ бо, что при­гла­си­ли. Ха! На ко­ро­ну экс­пер­та пол­но дру­гих пре­тен­ден­тов, но го­тов со­гла­сить­ся: ес­ли на­до на­пи­сать что-ни­будь эда­кое в Minecraft — это по мне. LXF: Minecraft счи­та­ют «дет­ской за­ба­вой»; вы соз­на­тель­но вы­бра­ли имен­но его для игр и экс­пе­ри­мен­тов? МО: На са­мом де­ле, это вы­шло со­вер­шен­но слу­ чай­н о. Как-то раз, в 2008‑м, я про­в о­д ил ве­ч ер в ком­па­нии од­но­го мое­го при­я те­ля, ра­бо­т аю­ще­ го в ин­д у­с т­рии игр. И раз­го­вор почему-то сполз к «квад­рат­ным лу­нам»; я ска­зал, что та­ко­го не бы­ ва­ет, а при­яте­ль от­ве­тил: «В Minecraft — бы­ва­ет». Я ре­шил по­про­бо­в ать, и мне по­нра­ви ­лось, а ко­ гда поя­ви­лась вер­сия для Pi, мне ста­ло ин­те­рес­но, как бы при­ме­нить ее для ко­ди­ро­ва­ния. LXF: Как же с по­мо­щью Minecraft нау­чить­ся пи­сать код? MO: Од­на из са­мых боль­шим про­блем в обу­че­нии про­грам­ми­ро­ва­нию в том, что ре­зуль­тат на вы­ходе бы­в а­е т очень скуч­ным, то есть скуч­ным бы­в а­е т тек­сто­вый вы­вод. Ка­ж ­дый раз од­ни и те же дан­ные для вво­да, кла­виа­т у­ра, ло­ги­ка, ша­ги. Но с Minecraft мы по­лу­ча­ем но­вый ме­тод вы­во­да, он ув­ле­ка­тель­ ный, и это здо­ро­во! LXF: По­то­му что по­лу­чая на­гра­ды, пол­нее ощу­ща­ешь свой про­гресс? MO: Да, в Minecraft про­ще сфор­ми­ро­вать цель обу­ че­ния. Я счи­таю, что в про­грам­ми­ро­ва­нии важ­но иметь цель; пи­с ать код ра­д и ко­д а — тоскливо. В Minecraft мы мо­жем по­ста­вить цель соз­дать мно­ же­ст­во TNT-бло­ков по все­му ми­ру, на что обыч­но ухо­д ят го­ды, но с пра­виль­ным ко­дом это мож­но сде­лать за се­к ун­ды.

LXF: То есть Minecraft по­ ОБ ОБУЧЕНИИ ПРОГРАММИРОВАНИЮ зво­ля­ет сде­лать ре­зуль­ тат ощу­ти­мее, что­бы де­ти мог­ли по­лу­чать удо­воль­ст­вие? МО: Да, суть в том, что­бы сде­лать что-то не­обыч­ное и уди­ви­т ель­ное, го­р аз­д о бо­лее ося­зае­мое, чем текст на эк­ра­не. в Minecraft. Не сек­рет, что цель ее в том, что­бы по­ мочь лю­д ям нау­чить­ся пи­сать код. И об этом там LXF: Ва­ша лю­бовь к Minecraft во­пло­ти­лась в ваш го­раз­до боль­ше, чем о Minecraft. Minecraft ну­жен со­вме­ст­ный с Дэ­ви­дом Уэй­лом бест­сел­лер. Что ско­рее для мо­ти­ва­ции мо­ло­де­жи, чтобы показать, под­виг­ло вас к на­пи­са­нию кни­ги о Minecraft? как это кру­то. МО: Я по­нял, что на­пи­са­ние ко­да к Minecraft мо­жет быть пре­крас­ным сред­ст­вом обу­че­ния про­грам­ми­ LXF: Бла­го­да­ря Pi поя­ви­лось про­грам­ми­ро­ва­ние ро­ва­нию, и по­с лед­ние не­сколь­ко лет го­рю же­ла­ фи­зи­че­­ских уст­ройств [physical computing], и все ни­ем по­де­лить­ся этим с дру­ги­ми. Со­ав­то­ром При­ эти сен­со­ры и мо­то­ры мож­но ис­поль­зо­вать клю­че­ний в Minecraft [Adventures in Minecraft] я стал в Minecraft, так ведь? с по­да­чи Дэ­ви­да Уэй­ла [David Whale]. Из­да­тель­ст­во MO: Ис­поль­зо­вать уст­рой­ст­ва в Minecraft — очень Wiley Publishing пред­ло­жи­ло ему на­пи­сать эту кни­ здо­ро­во; ко­гда с по­мо­щью све­то­дио­дов и зум­ме­ гу, и он лег­ко мог сде­лать это сам, но, ви­ди­мо, ре­ ров по­лу­ча­ет­ся ин­те­рак ­тив­ная гео­кэ­шинг-иг­ра — шил, что я мо­г у вне­сти в нее не­что но­вое, на­при­мер, это про­сто фан­та­сти­ка. Для ме­ня, это опять-та­ки рас­ска­зать о тех­ни­ках про­грам­ми­ро­ва­ния, с по­мо­ про ре­зуль­тат на вы­хо­де, он ста­но­вит­ся бо­лее кон­ щью ко­то­рых мож­но не про­сто по­ме­нять блок или крет­ным, особенно с уче­том то­го, что не ка­ж ­дый ото­бра­зить что-то на эк­ра­не. ста­нет спе­циа­ли­стом в об­лас­ти ИТ.

В про­грам­ми­ро­ва­нии важно иметь цель; пи­сать код ра­ди ко­да тоскливо.

LXF: Как вам ра­бо­та­лось с Дэ­ви­дом? МО: Очень хо­ро­шо, в осо­бен­но­сти, учи­ты­вая, что пер­вый раз мы с ним встре­ти­лись, ко­гда под­пи­сы­ ва­ли кон­тракт на кни­г у, а вто­рой — ко­гда кни­га уже вы­шла. Жи­вем мы до­воль­но да­ле­ко друг от дру­га, но еже­не­дель­но свя­зы­ва ­лись по Skype. LXF: Что вам нра­вит­ся в ва­шей кни­ге? МО: Че­ст­но го­во­ря, то, что на са­мом де­ле это кни­ га не о Minecraft, а о том, как учить про­грам­ми­ро­ ва­нию, под ви­дом соз ­д а­ния вся­к их кру ­т ых штук

www.linuxformat.ru/subscribe

LXF: Пла­ни­ру­ет­ся ли на­пи­сать про­дол­же­ние При­клю­че­ний в Minecraft? MO: Я бы с удо­воль­с т­ви­ем, но надо, что­бы поя­ вил­с я по­в од для это­г о. На­п ри­м ер, ка­к ие-то су­ ще­ст­вен­ные из­ме­не­ния в плат­фор­ме Raspberry Pi, или что­бы в Minecraft все ста ­ло «по-взрос­ло­му»... дав­но уже хо­д ят раз­го­во­ры об офи­ци­а ль­ном API, с ним про­ек­тов ста­ло бы еще боль­ше. Мне очень по ду­ше фор­мат При­клю­че­ний в Minecraft, по­сколь­ ку он ста­вит кон­крет­ные, дос­ти­жи­мые це­ли, к ко­то­ рым де­ти мо­г ут прий­ти вме­сте с ро­ди­те­ля­ми. Июнь 2016 LXF210  | 35


Raspberry Pi — 4 го­да

БЕН НАТТЕЛ [Ben Nuttal] цель это­го сою­за со­с то­ит в про­дви­же­нии зна­ний о том, как уст­рое­ны ком­пь­ю­те­ры и как на­чать за­ни­ мать­ся про­грам­ми­ро­ва­ни­ем. LXF: Со­об­ще­ст­во Raspberry Jam спо­соб­ст­во­ва­ло так­же то­му, что в рам­ках ме­ро­прия­ти­й, подобных PyCon UK, поя­ви­лись об­ра­зо­ва­тель­ные кур­сы, где раз­ра­бот­чи­ки мог­ли бы рас­ска­зать о Python учи­те­лям и де­тям. БН: Да, с Ни­ко­ла­сом Тол­лер­ве­ем [Nicholas Toller­ vey] из PyCon UK мы уже дав­но плот­но со­труд­ни­ ча­ли, но и дру­гой опыт взаи­мо­дей­ст­вия раз­ра­бот­ чи­ков и пре­по­д а­в а­т е­лей был не ме­нее удач­ным, тот же PyGame Zero Дэ­ни­эла По­упа [Daniel Pope], от­ве­тивший на во­прос «Что ме­ша­ет учи­те­лям при­ менять PyGame для обу­че­ния Python». PyGame Zero по­м ог­л а по­н ять, что PyGame слиш­ком слож­н ая биб­лио­те­ка, и при­хо­ди­лось пи­сать слиш­ком мно­го ко­да. В PyGame Zero его ста­ло го­раз­до мень­ше, что по­зво­ли­ло де­тям пи­сать в Python про­стые иг­ры.

LXF: Бен, ко­гда Raspberry Pi толь­ко поя­вил­ся, ду­ма­ли ли вы, что од­на­ж­ды ста­не­те на таком ра­бо­тать? Бен Нат­тел: Нет, я ни­ко­гда не ду­мал, что бу­д у ра­б о­т ать на Raspberry Pi Foundation. За бло­г ом я сле­дил поч­ти с са­мо­го на­ча­ла, по­сколь­к у уже то­ гда силь­но ув­ле­кал­ся Linux и про­грам­ми­ро­ва­ни­ ем, и их сме­лое за­яв­ле­ние про ком­пь­ю­тер на Linux за £ 25 бы­ло мне очень по ду­ше. Про­г рам­ми­руе­ мое уст­рой­с т­во на Linux по та­кой це­не — я про­ сто не мог его про­пус­тить. Но то­гда Raspberry Pi был ка­ким-то пред­ме­том раз­го­во­ров в Ин­тер­не­те, не свя­зан­ным со мной лич­но.

О НАЗНАЧЕНИИ GPIO ZERO

Цель — сде­лать на­пи­ са­ние ко­да не слож­ нее, чем в Scratch. в Picademy, вы­сту­па­ют с док­ла­да­ми, про­во­дят мас­ тер-клас­сы и об­су­ж ­да­ют ме­ж ­ду со­бой но­вые идеи.

LXF: Как тех­нарь, вы вы­шли из Ман­че­стер­ско­го со­об­ще­ст­ва, где бы­ли ор­га­ни­за­то­ром ме­ро­прия­ тий и поль­зо­ва­тель­ских групп. Ста­ли ос­но­ва­те­лем Manchester Raspberry Jam... БН: Да, я воз­глав ­л ял Manchester Raspberry Jam око­л о по­л у ­т о­р а лет, же ­л ая соз ­д ать со­о б­щ е­с т ­во по Raspberry Pi. При­я т ­н о бы ­л о ви­д еть, как Jam раз­ви­ва­ет­ся, объ­е­ди­няя лю­дей, ин­те­ре­сую­щих­ся Pi. Я так­же вы­ра­зил же­ла­ние стать по­с лан­ни­ком STEM, что­бы про­дви­гать обу­че­ние про­грам­ми­ро­ ва­нию сре­ди школь­ни­ков и мо­ло­де­жи.

LXF: Raspberry Pi — со­об­ще­ст­во очень спло­чен­ное и от­кры­тое для всех. БН: Да, ко­гда я на­чи­нал Manchester Raspberry Jam, это бы­ла про­с то «очеред­ная груп­па поль­зо­ва­те­ лей», ко­то­рая со­би­ра­ет­ся раз в не­де­лю по ве­че­рам, что­бы за сто­лом по­бол­тать о том, о сем. Но я ду­ мал, что для пер­во­го раза нуж­но что-то осо­бен­ ное, и до­го­во­рил­ся о суб­бот­ней встре­че, пе­рей­д я сра­зу к прак­ти­ке. Имен­но из-за прак­ти­че­­ско­­го ха­ рак­те­ра этих встреч поя­вил­ся тер­мин ‘Jam’ [англ. «тол­к уч­ка», «ту­сов­ка»]: ко­гда все ра­бо­та­ют вме­ сте, что­бы сде­лать не­что стоя­щее. Все — это учи­ те­ля, де­ти, взрос­лые, раз­ра­бот­чи­ки и т. д. В Jam мо­ жет уча­ст­во­вать кто угод­но.

LXF: То есть вы че­ло­век, ори­ен­ти­ро­ван­ный на со­об­ще­ст­во? БН: Да, ведь со­об­ще­ст­во Pi — это гло­баль­ное дви­ же­ние, а не про­сто гор­ст­ка лю­дей, ко­то­рые во­зят­ся с же­ле­зом и си­д ят на фо­ру­мах. Со­об­ще­ст­во Pi — это и ме­ро­прия­тия, та­кие как Jam, Coding Evening и Code Club. При­мер то­му — празд­но­ва­ние дня ро­ ж ­д е­н ия Raspberry Pi, ко­гда лю­д и со все­г о ми­р а съе­ха­лись, что­бы по­об­щать­ся с чле­на­ми ко­ман­ды Raspberry Pi Foundation, и в пер­вую оче­редь друг с дру ­г ом. Мы ви­д им, как учи ­т е ­л я, обу ­ч е­н ные

LXF: В Raspberry Pi Foundation вы — ме­нед­жер по управ­ле­нию со­об­ще­ст­вом; не мог­ли бы вы под­ роб­нее рас­ска­зать, о том, чем вы за­ни­мае­тесь? БН: Ме­ня дей­ст­ви­тель­но ин­те­ре­су­ет со­об­ще­ст­во, и моя роль за­к лю­ча­ет­ся в том, что­бы по­мочь со­ об­щ е­с т­в у при­в ле­ч е­н и­е м в Raspberry Pi но­в ых идей и групп, что­бы они мог­ли де­лить­ся зна­ния­ми и взаи­мо­дей­с т­во­вать, рас­ши­ряя свой по­тен­ци­а л; к при­ме­ру, не­дав­но к со­об­ще­ст­ву Raspberry Pi при­ сое­ди­нил­ся Code Club, и не по­то­му, что мы хо­тим за­ста­вить их ис­поль­зо­вать Raspberry Pi: ко­неч­ная

36  |  LXF210 Июнь 2016

LXF: Вы так­же ру­ко­во­ди­те но­вым про­ек­том, GPIO Zero; не рас­ска­же­те под­роб­нее? БН: С мо­мен­та по­яв­ле­ния Pi мы упот­ реб­ля­ли биб­лио­те­к у RPi.GPIO в каче­ стве ос­нов­ного ин­с т­ру­мента ис­поль­ зо­в а­н ия кон­т ак ­т ов GPIO. Про­б ле­м а бы­ла в том, как нау­чить поль­зо­вать­ся этой биб­лио­те­кой; для вы­пол­не­ния са­ мой про­стой за­да­чи, на­при­мер, что­бы вклю­чить или от­к лю­чить кон­такт или ис­поль­зо­вать его в ка­че­­ст­ве вхо­да или вы­хо­да, тре­бо­ва ­лась ку­ча сте­рео­тип­но­го ко­да. В GPIO Zero по­д ход го­раз­до про­ще: вы вклю­чае­ те и вы­к лю­ча­ете све­то­ди­од, тем са­мым управ­ляя объ­ек­том. Мы соз­да­ем аб­ст­рак­цию, ко­то­рая по­мо­ га­ет лю­д ям соз­д а­вать свои про­ек­ты, не отвлека­ ясь на сте­рео­тип­ный ко­д. Цель — сде­лать на­пи­са­ ние ко­да не слож­нее, чем в Scratch. GPIO Zero бу­дет ра­бо­тать с мно­же­с т­вом про­ек ­тов, число ко­то­рых мы бу­дет уве­ли­чи­вать с ка­ж ­дым ре­ли­зом. В но­вей­ шем, бла­го­д а­ря бле­стя­щей ра­бо­те Дей­ва Джон­са [Dave Jones], поя­вят­ся дат­чи­ки ульт­ра­зву­ка. Вы мо­ жете уз­нать боль­ше о биб­лио­те­ке GPIO Zero, по­се­ тив http://bit.ly/GPIOZeroLibDocs.

www.linuxformat.ru/subscribe


Raspberry Pi — 4 го­да

МАРИЯ КЕВЕДО [Maria Quevedo] МК: Да, и пред ­ла­гае­мые про­ек ­ты силь­но под­сте­ги­ ва­ют их к это­му, и ес­ли де­ти справ­ля­ют­ся бы­ст­рее, вы, как во­лон­тер, мо­же­те сти­му­ли­ро­вать их дви­ гать­ся даль­ше. LXF: Не­дав­но Code Club и Raspberry Pi ста­ли еди­ным це­лым — как это про­изош­ло? МК: Вовсе не сек­рет, что у на­ших двух ор­га­ни­за­ ций одинаковая цель — при­об­щить к про­грам­ми­ ро­в а­нию де­т ей по все­м у ми­ру. По­э то­м у для нас без­ус­лов­но име­ло смысл объ­е­ди­нить­ся и тем са­ мым стать силь­нее. LXF: То есть, объ­е­ди­няя уси­лия, вы луч­ше до­но­сите мысль о том, что про­грам­ми­ро­ва­ние бы­ва­ет за­бав­ным? МК: Да, у нас од­на цель, но не­мно­го раз­ные под­ хо­ды. Нас в про­ек­тах ин­те­ре­су­ет соб­ст­вен­но раз­ ра­бот­ка, а у Raspberry Pi фо­к ус ши­ре, в том чис­ле на про­грам­ми­ро­ва­ние фи­зи­че­­ских уст­ройств. Во­ лон­те­ры в Code Clubs мо­г ут стро­ить курс по-сво­ ему — в том чис­ле, ис­хо­дя из сво­ей спе­ци­а ль­но­сти. У нас есть клу­бы во­к руг Raspberry Pi, по­м о­г аю­ LXF: Не мог­ли бы вы рас­ска­зать нам под­роб­нее о том, кто вы и ко­го пред­став­ляе­те? Ма­рия Ке­ве­до: Здрав­ст­вуй­те, ме­ня зо­вут Ма­рия, я ди­рек­тор Code Club UK. То есть я ру­ко­во­ж у всей дея­тель­но­стью Code Club в Ве­ли­ко­бри­та­нии, в том чис­ле от­бо­ром во­лон­те­ров и ор­га­ни­за­то­ров и всем, что ка­са­ет­ся на­ше­го при­сут­ст­вия здесь. LXF: Для тех, кто еще не слы­шал о Code Club, нель­зя ли по­боль­ше о нем? МК: Code Club — это сеть во­лон­тер­с ких клу­бов вне­к ласс­но­го обу­че­ния. По боль­шей час­ти, школь­ ных, хо­т я в по­с лед­н ее вре­м я они ор­г а­н и­з у ­ю т­с я и са­ми по се­бе. В це­лом, прин­цип Code Club со­сто­ ит в том, что де­ти ос­ваи­ва­ют се­рию ре­сур­сов, что рас­счи­та­но при­мер­но на час. Мы учим трем язы­ кам: Scratch, HTML и Python. LXF: Зна­чит, в Code Club ра­бо­та­ют во­лон­те­ры — а из ка­ких от­рас­лей? МК: Са­мых раз­ных: мно­же­с т­во лю­дей из сфе­ры тех­но­ло­гии, учи­те­лей и про­с то тех, кто ув­ле­ка­ет­ ся про­грам­ми­ро­ва­ни­ем и раз­ра­бот­кой, и ра­бо­та­ ет в Code Club, что­бы раз­вить в се­б е эти зна­ния и на­вы­ки. LXF: Как воз­ник Code Club? МК: Мы на­ча­ли че­т ы­ре го­д а на­з ад, и за пер­вый год очень силь­но вы­рос­ли и во­шли в со­об­ще­ст­во. Уже че­рез не­сколь­ко не­дель поя­ви­лись сот­ни во­ лон ­те­ров и школ, же ­лаю­щ их от­к рыть свой Code Club. Сей­ч ас в Ве ­л и­ко­б ри ­т а­н ии их око­л о 4000, и мы очень гор­д им­с я та­к им рос­том, ведь за по­ след­ние ме­ся­цы мы смог­ли при­влечь еще боль­ше лю­дей. У нас есть пре­крас­ная ко­ман­да ре­гио­наль­ ных ко­ор­д и­на­то­ров по всей стра­не, на ­ла ­ж и­в аю­ щих свя­зи и взаи­мо­дей­ст­вие с те­ми, кто хо­тел бы

О ПОЛЬЗЕ

За­ня­тия в Code Club по­мо­гут де­тям раз­вить ло­ги­ку, на­вы­ки ре­ше­ния про­блем и гиб­кость ума. стать во­лон­те­ром в Code Club, и ор­г а­ни­за­ция­ми, го­то­вы­ми пре­дос­та­вить им по­ме­ще­ние для собра­ ний и занятий. LXF: Ор­га­ни­за­то­ром мо­жет стать кто угод­но? МК: Да, лю­бой, кто ув­ле­ка­ет­ся про­грам­ми­ро­ва­ни­ ем или хо­чет это­му нау­чить­ся, мо­жет ос­но­вать свой Code Club. Прин­цип на­ше­го про­ек­та в том, что де­ ти долж­ны ос­ваи­вать все по­сте­пен­но и са­мо­стоя­ тель­но. Ес­ли вы не про­грам­мист, со­ве­т у­ем на­чать изу­чать ре­сур­сы за па­ру не­дель до от­кры­тия ва­ше­ го клу­ба, что­бы быть не­мно­го впе­ре­ди и под­дер­жи­ вать тот же темп, что и у де­тей.

щие шко­лам за­дей­ст­во­вать Pi в учеб­ном про­цес­се. Мы хо­тим от­крыть де­тям мно­го раз­ных пер­спек­тив и вдох­но­вить их на то, что­бы на­чать карь­е­ру в сфе­ ре вы­чис­ле­ний. LXF: Но ведь не все де­ти ста­нут про­грам­ми­ста­ми? МК: Нет, но за­ня­тия в Code Club по­мо­г ут им раз­ вить ло­ги­к у, на­вы­ки ре­ше­ния про­блем и гиб­кость ума, по­сколь­к у им при­ходит­ся снова воз­вра­щать­ ся к сво­ему ко­ду и переделывать его для ис­прав­ле­ ния оши­бок. Путь проб и оши­бок тру­ден, но мы все долж­ны осознавать: не­уда­чи — это отнюдь не пло­ хо, и важ­но по­нять это в ран­нем воз­рас­те.

LXF: А вы про­грам­мист? МК: До при­сое­ди­не­ния к Code Club я им не бы­ла, и до сих пор мно­го­го не знаю, но те­перь я раз­би­ра­ юсь уже по­лу­чше, и нау­чи­лась это­му бла­го­да­ря ис­ поль­зо­ва­нию на­ших про­ек­тов. На са­мом де­ле, все чле­ны Code Club са­ми про­хо­д ят эти уро­к и. У нас есть свой внут­рен­ний Code Club, где мы со­би­ра­ем­ ся и ос­ваи­ва­ем не­ко­то­рые ре­сур­сы, что­бы боль­ше уз­нать о про­грам­ми­ро­ва­нии. От­сю­да и мои на­вы­ки про­грам­ми­ро­ва­ния. LXF: Вы ин­те­рес­но под­ме­ти­ли, что нуж­но ид­ти впе­ре­ди де­тей — ведь они схва­ты­ва­ют все, что свя­за­но с ко­ди­ро­ва­ни­ем и тех­но­ло­ги­ей, го­раз­до бы­ст­рее, чем взрос­лые.

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 37


Raspberry Pi — 4 го­да

ДЖЕЙМС МИТЧЕЛЛ [James Mitchell] LXF: Джеймс, вы — «наш че­ло­век в Бер­ли­не». Рас­ска­жи­те о се­бе по­под­роб­нее. Джеймс Мит­челл: При­вет, я — Джеймс, ру­ко­во­ жу Raspberry Jam Berlin, един­ст­вен­ным Raspberry Jam в Гер­ма­нии. Рань­ше был еще в Три­ре, но там те­м а­т и­к а бы ­л а ши­р е, вклю­ч ая Arduino и дру ­г ие пла­т ы. Это то­же бы ­ло ме­р о­прия ­т ие с об­р а ­зо­в а­ тель­ным ук ­ло­нов, но в це ­лом бо­лее на­по­ми­нав­ шее «ми­ни-яр­мар­к у» тех­но­ло­г ий во­к руг Arduino и Raspberry Pi. Я же ре­ш ил за­н и­м ать­с я толь­ко Raspberry Pi и всем, что с ним свя­за­но. К Arduino я то­же об­ра­ща­юсь, но очень ред­ко. LXF: Джеймс, ва­ши про­ек­ты, в том чис­ле за­мед­ лен­ная съем­ка не­ба над Бер­ли­ном и свое­об­раз­ная ма­ши­на вре­ме­ни, очень по­пу­ляр­ны в Twitter. ДМ: Да, я мно­го че­го пе­ре­про­бо­вал, как пра­ви­ло, де­мон­ст­ра­ци­он­но­го ха­рак ­те­ра, что мог­ло бы за­ин­ те­ре­со­вать лю­дей. На­при­мер, соз­дал кру ­тя­щий­ся ТАРДИС [Time And Relative Dimension(s) In Space — ма­ши­на вре­ме­ни и кос­ми­че­­ский ко­рабль из бри­ тан­ско­го те­ле­се­риа­ла «Док­тор Кто», — прим. пер.], ко­то­рый реа­ги­ро­вал на тви­ты и све­тил­ся. Я сде­лал это, что­бы во­в лечь лю­д ей, мо­т и­ви­р о­в ать их де­

ПРОЕКТЫ ДЖЕЙМСА

Я соз­дал кру­тя­щий­ся ТАРДИС, ко­то­рый реа­ги­ро­вал на тви­ты и све­тил­ся. лить­с я свои­ми про­ек ­т а­ми. И я про­с то по­р а ­ж ал­ ся, ко­гда здесь, на празд­но­в а­нии дня ро­ж ­д е­ния Pi, ко мне под­хо­ди­ли и го­во­ри­ли: «При­вет, ты же Джеймс из Бер­ли­на» — а ведь я все вре­мя жи­ву в Гер­ма­нии и ред­ко имею ка­кие-то ре­а ль­ные кон­ так­ты с Бри­та­ни­ей. LXF: Фор­мат Raspberry Jam очень на­по­ми­на­ет груп­пы поль­зо­ва­те­лей Linux — ведь это то­же ме­сто, ку­да вы при­хо­ди­те, что­бы боль­ше уз­нать о пред­ме­те?

ДМ: Да, ко­неч­но. Ду­маю, Jam’ы нуж­ны для двух це­л ей: об­м е­н а зна­н ия­м и и рас­ш и­р е­н ия со­о б­ ще­ст­ва. Это не то, что чи­тать жур­нал или ос­ваи­вать учеб­ник, си­д я до­ма в оди­ноч­к у: на Jam вы встре­ чае­тесь с людь­ми ли­цом к ли­цу, тогда как в Ин­тер­ не­те все про­ис­хо­дит по боль­шей час­ти ано­ним­но, и об­щать­ся не так удоб­но. А так вы мо­же­те вжи­вую уви­д еть фи­зи­че­­с кий про­ект, уз­нать, как он соз­ да­вал­ся, по­хва ­лить, под­смот­реть что-то для сво­ их бу­д у­щих про­ек ­тов. Жи­вое об­ще­ние по­зво­ля­ет боль­ше уз­нать о том, что необходимо для про­ек­ та. И по­зво­ля­ет на­ла­дить свя­зи в со­об­ще­ст­ве: лю­ ди уез­жа­ют с Jam, соз­да­ют но­вые про­ек­ты, ве­зут их на дру­гие Jam’ы или встре­чи, что­бы по­де­лить­ ся свои­ми зна­ния­ми, ко­то­рые пе­ре­д а­ют­ся все­м у со­об­ще­ст­ву в целом. Ин­тер­нет-со­об­ще­ст­ва — это здо­ро­во, но ре­а ль­ные со­об­ще­с т­ва го­раз­до, гора­ здо эф­фек ­тив­нее. LXF: Raspberry Pi из­ме­нил жизнь мно­гих, а ва­шу? ДМ: Raspberry Pi и его со­об­ще­с т­во су­ще­с т­вен­но из­ме­ни­ли мою жизнь: элек ­тро­ни­кой я ин­те­ре­со­ вал­с я, но до то­го, что­бы взять и со­е ди­нить па­ру про­во­доч­ков, де­ло не до­хо­ди­ло. Ко­гда поя­вил­с я Raspberry Pi, я по­д у­мал: «ОК, ма­лень­кий ком­пь­ю­ тер с опе­ра­ци­он­ной сис­те­мой». Рань­ше я ду­мал, что поль­зо­вать­ся ОС про­сто. Но ко­гда я уз­нал боль­ ше, за ­хо­те ­лось пой ­т и даль­ше, и так я уг­л у ­бил­с я

38  |  LXF210 Июнь 2016

www.linuxformat.ru/subscribe

в элек ­т ро­ни­к у, а по­т ом ре­шил по­д е ­лить­с я этим зна­ни­ем. Raspberry Pi из­ме­нил мою жизнь хо­тя бы по­то­му, что мно­го­му ме­ня нау­чил. LXF: И мно­гие свои зна­ния вы по­черп­ну­ли в со­об­ще­ст­ве Raspberry Pi? ДМ: Без­ус­лов­но, ес­ли бы не со­об­ще­ст­во, я бы, на­ вер­ное, по­пы­тал­ся как мож­но даль­ше про­дви­нуть­ ся с Arduino, но не ду­маю, что у Arduino та­кая же груп­п а под­д ерж­к и, как и у Raspberry Pi, я имею в ви­д у, вне Ин­тер­не­та. Она есть, но ко­гда я на­чал изу­чать Arduino, то как-то сра­зу его от­ло­ж ил — плат­фор­ма ин­те­рес­ная, но сра­зу не да­ет­ся. Толь­ко по­том, уз­нав боль­ше с Raspberry Pi, я вновь вер­нул­ ся к Arduino. Мне ка­жет­ся, с Raspberry Pi ра­бо­тать го­раз­до про­ще. LXF: В Raspberry Pi Foundation вас очень це­нят, ведь вы за­вое­ва­ли для них на­гра­ду в 2015‑м. ДМ: Да, на CeBIT-2015 Фонд по­л у­ч ил на­г ра­д у за вклад в раз­ви­тие от­кры­то­го ПО, и Эбен и Лиз [Ап­ тон] до­ве­ри­ли мне ее по­лу­чить, по­сколь­к у у Фон­да нет пред­ста­ви­тель­ст­ва в Гер­ма­нии. Для ме­ня ста­ ло боль­шой че­с тью сде­лать это и по­зна­ко­мить­ся с не­ко­то­ры­ми ве­ли­ки­ми людь­ми в не­мец­ком со­об­ ще­ст­ве от­кры­то­го ПО. LXF: В 2015‑м вы так­же пред­став­ля­ли Фонд на Maker Faire в Бер­ли­не? ДМ: Да, это бы­л а пер­в ая Maker Faire [Яр­м ар­к а умель­цев] в Бер­ли­не, и мне хо­те­лось вло­жить в нее свою леп­т у, как ко­гда-то бы­л о с Jam. Raspberry Pi там ни­к то не пред­с тав­л ял, и я по­п ро­с ил Лиз и Эбе­н а раз­р е­шить мне это сде­л ать. И я сде­л ал свой стенд, что­бы по­ка­зать пуб­ли­ке все воз­мож­ но­сти Raspberry Pi. |


Tizen

И мо­жет соб­ст­вен­ных смарт­фо­нов... Алек­сандр Тол­стой от­сле­жи­ва­ет про­дви­же­ние в Рос­сии мо­биль­ной ОС Tizen и девай­са, став­ше­го ее но­си­те­лем.

В

по­с лед­н ее вре­м я поя­в и­л ась но­в ая ин­ф ор­м а­ц ия о мо­ биль­ной ОС Tizen и смарт­фо­не Samsung Z3. Еще осе­нью 2015 г. в Рос­сии бы­ла сфор­ми­ро­ва­на ре­гио­наль­ная ас­со­ циа­ция «Тай­зен.ру», объ­е­ди­нив­шая раз­но­об­раз­ные оте­че­­с т­вен­ ные ком­па­нии, ко­то­рые спе­циа ­ли­зи­ру­ют­ся на ин­фор­ма­ци­он­ной безо­пас­но­с ти и за­щи­щен­ных ре­ше­ни­ях. Пер­вым ре­а ль­ным уст­ рой­ст­вом, под ко­то­рое ас­со­циа­ция ре­ши­ла раз­ра­ба­ты­вать ПО, ­стал ап­па­рат Samsung Z3 — ти­пич­ный смарт­фон сред­не­го це­но­во­го уров­ня с 5‑дюй­мо­вым эк­ра­ном и впол­не при­ем­ле­мы­ми ха­рак­те­ри­ сти­ка­ми, пред­став­лен­ный в ок­тяб­ре 2015 г. Од­на­ко в ми­ре с тех пор поя­ви­лись две раз­но­вид­но­сти этой мо­де­ли: по­тре­би­тель­ская, ко­то­ рую мож­но ку­пить в Ин­дии и не­ко­то­рых дру­гих ази­ат­ских стра­нах, и «спе­ци­а ль­ная», пред­на­зна­чен­ная для при­ме­не­ния в рос­сий­ском гос­сек ­то­ре. Фи­зи­че­­ски две мо­де­ли раз­ли­ча­ют­ся бу­к­вой в ин­дек­ се (Z300H и Z300F) и от­сут­ст­ви­ем ма­га­зи­на при­ло­же­ний TizenStore в «спе­ци­а ль­ной» вер­сии (Z300F). В Samsung по­за­бо­ти­лись о том, что­бы эн­т у­зиа­сты не смог­ли ис­поль­зо­вать об­ще­дос­т уп­ную «по­тре­ би­тель­скую» про­шив­к у от Z300H в за­щи­щен­ной мо­де­ли Z300F — у нее за­шиф­ро­ван за­груз­чик и на­ме­рен­но из­ме­не­на таб­ли­ца раз­ де­лов флэш-па­мя­ти. Стан­дарт­ная про­шив­ка в Z300F от­ли­ча ­лась не толь­ко от­сут­с т­ви­ем «ма­га­зи­на», но и об­щей ла­ко­нич­но­с тью: в сис­те­ме имелись толь­ко стан­дарт­ные ин­ст­ру­мен­ты, вро­де каль­ ку­ля­то­ра и фо­на­ри­ка, тогда как да­же ин­ст­ру­мен­та­рий раз­ра­бот­ чи­ка от­сут­ст­во­вал. Бы­ло оче­вид­но, что пе­ред на­ми за­го­тов­ка для кор­по­ра­тив­но­го ис­поль­зо­ва­ния, где смарт­фон дол­жен га­ран­ти­ро­ ван­но на ­хо­дить­ся внутри пе­ри­мет­ра безо­пас­но­сти пред­при­ятия. В мае это­го го­д а под эги­дой «Тай­зен.ру» бы­ла за­вер­ше­на ра­ бо­та над рос­сий­ской вер­си­ей Tizen 2.0, ко­то­рая по­лу­чи­ла сер­ти­ фи­к ат в Фе­д е­р аль­ной служ­б е по тех ­ни­че­­с ко­­м у и экс­порт ­но­м у кон­тро­лю (ФСТЭК) и 4‑й уро­вень кон­тро­ля от­сут­ст­вия не­дек­ла­ри­ ро­ван­ных воз­мож­но­стей — это­го дос­та­точ­но для ра­бо­ты с кон­фи­ ден­ци­а ль­ной ин­фор­ма­ци­ей. Тех­ни­че­­ские под­роб­но­сти но­вой вер­ сии рос­сий­ской Tizen 2.0 ста­ли из­вест­ны бла­го­да­ря ин­но­ва­ци­он­ной кон­фе­рен­ции Skolkovo Startup Village, где бы­ли пред­став­ле­ны пер­ вые про­то­ти­пы ИТ-ре­ше­ний оте­че­­ст­вен­ных ком­па­ний, соз­дан­ные на рос­сий­ской вер­сии ОС Tizen. Кон­фе­рен­ция про­шла в на­ча ­ле ию­ ня и рас­кры­ла не­ко­то­рые дан­ные о про­грамм­ной на­чин­ке со­циа­ли­ зи­ро­ван­ных Samsung Z3 в Рос­сии. Так, ос­нов­ную ра­бо­т у по адап­та­ ции ОС про­де­ла­ли ООО «НИИ СОКБ» и ГК «Ин­фо­Текс» (обе вхо­дят в «Тай­зен.ру»). На Z3 пре­дус­та­нов­ле­но осо­бое ПО для ра­бо­ты с кор­ по­ра­тив­ны­ми об­лач­ны­ми ре­ше­ния­ми, поч­то­вая про­грам­ма и про­ смот­рщик до­к у­мен­тов от ком­па­нии «Но­вые об­лач­ные тех­но­ло­гии», а так­же web-брау­зер, на­стро­ен­ный на ра­бо­т у с оте­че­­ст­вен­ным по­ ис­ко­ви­ком «Спут­ник». Рос­сий­ская вер­сия Z3 вклю­ча­ет сред­с т­ва ро­ди­тель­ско­го кон­тро­ля и не по­зво­лит вла­дель­цу ус­та­но­вить при­ ло­же­ния из не­до­ве­рен­но­го ис­точ­ни­ка. В бли­ж ай­ших пла­нах ас­ со­циа­ции — раз­ра­бот­к а ре­по­зи­то­рия кор­по­ра­т ив­ных при­ло­же­ ний и вы­пуск пол­но­цен­но­го офис­но­го па­ке­та Мой­­­О­фис (это бу­дет един­ст­вен­ный про­дукт для ра­бо­ты с до­к у­мен­та­ми на Tizen во­об­ще). «НИИ СОКБ» пред­ста­вил MDM-ре­ше­ние (master data manage­ ment — се­рия тех­но­ло­гий и про­грамм­ных ин­ст­ру­мен­тов для управ­ ле­ния ос­нов­ны­ми дан­ны­ми) для плат­фор­мы Tizen, обес­пе­чи­ва­ющее

> Рос­сий­ский смарт­фон на ОС Tizen об­ре­та­ет очер­та­ния.

кон­троль и за­щи­т у мо­биль­ных уст­ройств и кор­по­ра­тив­ных дан­ных. АО «Груп­па Те­ле­ма­ти­ка-Один» анон­си­ро­ва ­ло соз­да­ние те­ле­ма­ти­ че­­ско­­го ре­ше­ния T1 Geo для Tizen OS. По­ми­мо ба­зо­вых кар­то­гра­ фи­че­­ских сер­ви­сов, типа пре­дос­тав­ле­ния ин­фор­ма­ции о те­к у­щем ме­с то­по­ло­же­нии уст­рой­с т­ва на кар­те, про­к ла­ды­ва­ния мар­шру­ тов ме­ж ­ду гео­гра­фи­че­­ски­­ми точ­ка­ми, сбора, хра­не­ния и управ­ле­ ния мар­шру ­та­ми пе­ре­ме­ще­ния уст­рой­ст­ва, при­ло­же­ние T1 Geo по­ зво­ля­ет до­бав­лять и ото­бра­жать на кар­те поль­зо­ва­тель­ские мет­ки, пре­дос­тав­лять ин­фор­ма­цию о те­к у­щем ме­сто­по­ло­же­нии, мар­шру­ тах и мет­ках дру­гим поль­зо­ва­те­лям при­ло­же­ния. Пре­зи­дент ас­со­циа­ции «Тай­зен.ру» Ан­д­рей Ти­хо­нов на­де­ет­ся, что до кон­ца 2016 г. бу­дут про­да­ны до 50 ты­сяч те­ле­фо­нов Samsung Z3 с рос­сий­ским сер­ти­фи­ци­ро­ван­ным Tizen. Тем вре­ме­нем, ас­со­ циа­ция при­гла­ша­ет всех за­ин­те­ре­со­ван­ных раз­ра­бот­чи­ков при­нять уча­стие в ра­бо­те над при­ло­же­ния­ми Tizen. Ком­па­ния Смарт Ка­пи­ тал — ос­но­ва­тель IoT Smart Center — при под­держ­ке ИТ-кла­сте­ра

Ассоциация приглашает всех заинтересованных разработ‑ чиков принять участие. фон­да Скол­ко­во, и Ас­со­циа­ция Тай­зен.РУ со­вме­ст­но с парт­не­ра­ми в ию­не объ­я­ви­ли кон­к урс на луч­шие раз­ра­бот­ки на плат­фор­ме ОС Tizen. В рам­ках кон­к ур­са пла­ни­ру­ет­ся под­дер­жать раз­ви­тие про­ек­ тов, соз­даю­щих про­дук­ты и ре­ше­ния на плат­фор­ме Tizen, на­пол­ нить стек при­ло­же­ний для ОС Tizen, а так ­же сфор­ми­ро­вать еди­ ную эко­си­сте­му для раз­ра­бот­чи­ков, ин­ве­сто­ров и поль­зо­ва­те­лей. В «Тай­зен.ру» пла­ни­ру­ют при­влечь стар­та­пы в сфе­ре IoT, от­дель­ные ко­ман­ды и раз­ра­бот­чи­ков с опытом соз­да­ния го­то­вых про­дук ­тов. По­ми­мо цен­ных при­зов, ко­ман­ды-фи­на­ли­сты и по­бе­ди­те­ли по­ лу­чат шанс при­нять уча­стие в 10‑м «боль­шом» Ак­се­ле­ра­то­ре ФРИИ (биз­нес-ин­к у­ба­то­ре для раз­ви­тия ин­но­ва­ций), а так­же по­лу­чить ин­ ве­сти­ции на раз­ви­тие от фон­дов Скол­ко­во и ФРИИ, в раз­ме­ре от 1,5 до 15 млн руб. Па­рал­лель­но, от­дель­ный кон­к урс объ­я­ви­ла и ком­па­ ния Samsung. За луч­шие про­ек­ты для Tizen и Z3 ком­па­ния обещает де­мо-вер­сию смарт­фо­на, а по­бе­ди­тель по­лу­чит грант на старт биз­ не­са до 2 млн руб. от Фон­да со­дей­ст­вия ин­но­ва­ци­ям. |

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 39


BBC micro:bit

BBC micro:bit micro:bit от BBC — это ог­ром­ная ини­циа­ти­ва, соз­дан­ная, что­бы вдох­но­вить сле­­дую­­щие по­ко­ле­ния ин­же­не­ров. Ала­стер Джен­нингс при­сталь­но изу­ча­ет этот ма­лень­кий про­грам­ми­руе­мый ком­пь­ю­тер и то, что он уме­ет де­лать.

40  |  LXF210 Июнь 2016

www.linuxformat.ru/subscribe


BBC micro:bit

Вкратце » Раз­ра­бо­тан­ный для обу­че­ния, micro:bit идеа­лен в ка­че­­ст­ве вашего пер­во­го про­ грам­ми­руе­мо­го ком­пь­ю­те­ра. Его ре­дак­то­ры ко­да drag-and-drop оз­ на­ча­ют, что на­чи­ наю­щие про­грам­ ми­сты уви­дят ре­зуль­та­ты сво­ их тру­дов че­рез не­сколь­ко ми­нут.

Р

аз­ра­бо­тан­ный BBC как часть их ини­ циа­ти­вы Make It Digital [Сде­лай это циф­ро­вым], micro:bit — один из са­ мых ма ­лень­ких в ми­ре про­грам­ми­руе­мых ком­пь­ю­те­ров; вдо­ба­вок он бес­пла­тен для всех уча­щ их­с я 7‑х клас­с ов Ве ­ли­ко­бри ­т а­ нии, и его цель — вдох­но­вить сле­д ую­щее по­к ло­не­ние ин­же­не­ров и ко­де­ров. С пер­в о­г о взгля­д а ста­н о­в ит­с я яс­н о, что це ­л е­в ая ау­д и ­т о­р ия micro:bit от­л и­ч а­ ет­ся от Arduino и Raspberry Pi. У micro:bit имеются про­с тые кон­т ак ­т ы, встро­е н­н ые кноп­ки и дат­чи­ки, а так­же на­бор ЖК-дио­ дов [LED], вы­п ол­н яю­щ их роль дис­п лея при вклю­че­нии. Боль­ш ие разъ­е­м ы, они же кон ­т ак ­т ы, на пла­те пре­дос­тав­ля­ют боль­шую кон­такт­ ную по­в ерх­н ость, и к ним лег­ко при­к ре­ пить «кро­ко­ди­лы» для внеш­ней элек ­тро­ни­ ки, так что он идеа­лен для класс­ной сре­ды и бы­с т­рой раз­ра­бот­ки ма­ке­тов. Кон­так­ты вклю­ча­ю т три вхо­д а, вы­ход 3 В и Зем­лю [GND], а ме­ж ­д у ни­ми рас­по­ло­же­ны дру­гие кон­так­ты для бо­лее про­дви­ну­тых про­ек­тов. По­с ле под­к лю­че­ния к ва­ше­м у ком­пь­ ю­те­ру че­рез USB пла­та по­яв­ля­ет­ся в ви­де но­с и­т е­л я, а всё про­г рам­м и­р о­в а­н ие осу­ ще­с т­в­ля­е т­с я че­рез при­ло­же­ния на сай­т е www.microbit.co.uk, ра­бо­таю­ще­м и он­лайн, и оф­флайн. На дан­ный мо­мент сайт пред­ ла­г а­е т не­с коль­ко сред раз­р а­б от­к и ко­д а, за­ви­с я­щих от уров­ня на­вы­к а и вклю­чаю­ щих JavaScript, Block Editor, Touch Develop и MicroPython. Block Editor [Ре­дак­тор Бло­ков] раз­ра­бо­ тан для не­све­ду­щих в об­лас­ти про­грам­ми­ руе­мых ком­пь­ю­те­ров и име­ет оче­вид­ный об­р а ­з о­в а­т ель­н ый ук ­л он. Про­с тые бло­к и ко­да из на­бо­ра ка­те­го­рий, рас­по­ло­жен­но­ го сле­ва, мож­но пе­ре­тас­ки­вать и бро­сать, и ка ­ж ­дая из ка­те­го­рий впол­не яс­но на­звана и го­то­ва для ра­бо­ты. Да ­же ко­де­ры-но­вич­ки долж­ны су­меть все­го за не­сколь­ко ми­нут

Свой­ст­ва на­вскид­ку

Под­держ­ка ка­ме­ры

Встрях­нись и про­снись

Че­рез Bluetooth мож­но под­ клю­чить­ся к мно­же­ст­ву те­ ле­фо­нов Galaxy и управ­ лять ка­ме­рой.

Встро­ен­ные дат­чи­ки, вклю­ чая ак­се­ле­ро­метр, по­зво­ля­ ют бы­ст­ро соз­да­вать иг­ры или про­сто сиг­на­лы.

> Ма­лень­кий, но иде­аль­но сло­жен­ный, micro:bit дос­тав­ля­ет не­ма­ло удо­воль­ст­вия. соз­д ать про­грам­му, взаи­мо­дей­с т­вую­щ ую с пла­той, и за­жечь лам­поч­к и. На дан­ный мо­м ент, прак ­т и­ч е­­с ки един­с т­в ен­н ая про­ бле­ма с Block Editor — от­сут­ст­вие от­ме­ны дей­ст­вий, и ес­ли вы слу­чай­но уда­ли­ли раз­ дел бло­ка, это весь­ма огор­ча­ет. За­вер­шен­ную про­грам­му в лю­бой мо­ мент пе­р ед ком­п и­л я­ц и­е й и ска­ч и­в а­н и­е м мож­но про­смот­реть. Ска­чан­ный файл за­ тем на­до бу­дет вруч­ную ско­пи­ро­вать с ва­ ше­го ком­пь­ю­те­ра на micro:bit, по­сколь­к у ав­ то­ма­ти­че­­ско­­го за­груз­чи­ка по­ка не име­ет­ся. Ус­во­ив ос­но­вы, вы мо­же­т е кон­вер­т и­ ро­вать бло­ко­вый код в стро­к и, чи ­т ае­мые в сре­д е Touch Develop — она уже бли­же к стан­дарт­ным сре­дам про­грам­ми­ро­ва­ния, но все еще на­став­ля­ет про­грам­ми­ста.

Про­стые под­клю­че­ния В цен­тре то­го, что де­ла­ет micro:bit, на ­хо­дит­ ся ко­динг, но по-на­стоя­ще­му пла­та ожи­ва­ ет, ко­гда при­сое­ди­ня­ют­ся вхо­ды и вы­хо­ды, та­кие как дат­чи­ки и ис­пол­ни­тель­ные при­во­ ды. Micro:bit идет с на­бо­ром «кро­ко­ди­лов», спо­соб­ных бы­ст­ро кре­пить­ся к кон­так­там и вы­бран­но­му уст­рой­с т­ву вы­во­д а. Управ­ ле­ние лю­бым под­к лю­чен­ным уст­рой­ст­вом мо­жет осу­ще­ст­в­лять­ся про­грамм­но, че­рез код, и для про­с тых уст­ройств вво­д а, ти­па пе­ре­к лю­ча­те­ля или дат­чи­ка, есть мас­са оп­ ций ко­ди­ро­ва­ния drag-and-drop, дос­т уп­ных в Ре­дак­то­ре Бло­ков. По ме­ре рас­ши­ре­ния ва­ших по­зна­ний мож­н о бу­д ет под­к лю­чить и дру­г ие элек­ трон­н ые ком­п о­н ен­т ы, та­к ие как по­т ен­ цио­мет­ры, ис­пол­ни­тель­ные при­во­ды, LED и ди­на­ми­ки, и управ­лять ими. Он­лайн уже

www.linuxformat.ru/subscribe

дос­т уп­на мас­с а про­с тых про­ек­тов, что­бы по­к а ­з ать вам, как имен­но ка ­ж ­д ая строч­ ка ко­д а от­н о­с ит­с я к функ­ц ио­н и­р о­в а­н ию и управ­ле­нию обо­ру­до­ва­ни­ем с по­мо­щью ма­лень­ко­го ком­пь­ю­те­ра micro:bit. Бла­го­да­ря сво­ему раз­ме­ру, micro:bit — не­в е­р о­я т­н о удоб­н ый ин­с т­р у­м ент обу­ч е­ ния, ко­т о­р ый по­з во­л ит учи­т е­л ям, ро­д и­ те­лям и уче­ни­к ам (но в та­ком слу­чае вы, ве­р о­я т ­н о, уже слы ­х а ­л и о нем) по­л у ­ч ать удо­в оль­с т ­в ие от ко­д а и соз ­д а­в ать иг ­р ы, но­си­мые тех­но­ло­гии и все мыс­ли­мые уст­ рой­ст­ва. Ма ­лень­кий раз­мер и встро­ен­ные дат­чи­ки де­ла­ют micro:bit бы­ст­рым в ко­дин­ ге и ин­те­рес­ным в ис­поль­зо­ва­нии, но раз­ ра­ба­т ы­вал­ся он для обу­че­ния и яв­ля­ет­ся трам­п ли­н ом к бо­л ее слож­ным плат­ф ор­ мам, а не кон­к у ­р ен­т ом ро­д и­ч ей Arduino и Raspberry Pi. |

Вер­дикт BBC micro:bit Раз­ра­бот­чик: BBC Сайт: microbit.co.uk Це­на: Ј  14 (Бес­плат­но для се­ми­класс­ ни­ков Великобритании)

Функ­цио­наль­ность 8/10 Про­из­во­ди­тель­ность 6/10 Удоб­ст­во в ра­бо­те 8/10 Оп­рав­дан­ность це­ны 8/10 » Иде­аль­ный вы­бор для но­вич­ков в об­лас­ти про­грам­ми­ро­ва­ния, с обилием под­держ­ки и ре­сур­сов.

Рей­тинг 8/10 Июнь 2016 LXF210  | 41


BBC micro:bit О с­во­им про­грам­ми­ро­ва­ние, соз­ да­в про­стую иг­ру для тре­ни­ров­ки па­мяти

BBC micro:bit: Соз­дай­те иг­ру Ала­стер Джен­нингс об­ду­мы­ва­ет, как при­сту­пить к ра­бо­те с micro:bit, гля­дя на сре­ду он­лайн-про­грам­ми­ро­ва­ния для соз­да­ния про­стой иг­ры.

B Наш экс­перт В се­ре­ди­не 1990‑х Ала­стер Джен­ нингс взял­ся за Lingo и Action­ script и, к сча­стью, ос­та­вил их по­за­ди. Сей­час он ра­бо­та­ ет с ПО и обо­ру­до­ ва­ни­ем для раз­ лич­ных про­ек ­тов, вклю­чая фо­то­гра­ фию, 3D-прин­те­ры и со­бак-ро­бо­тов.

Скорая помощь До­бав­ле­ние в иг­ру ог­ра­ни­че­ ния по вре­ме­ни не­мед ­лен­но уве­ ли­чит на­пря­жен­ ность и слож­ность иг­ры. Ис­поль­зо­ ва­ние ко­ман­ды Game — startstop­ watch по­зво­ля­ет за­пус­тить код тай­ ме­ра, на ко­то­рый вы по­том бу­де­те ссы­лать­ся, что­бы ус­та­но­вить ог­ра­ни­ че­ние по вре­ме­ни ме­ж ­д у за­го­ра­ни­ ем LED и на ­жа­ти­ем кноп­ки.

42  |  LXF210 Июнь 2016

BC micro:bit на­ко­нец-то по­пал в ру­ки мно­же­ст­ву се­ми­к ласс­ ни­ков по всей стра­не, и уже го­то­ва мас­са ру­ко­водств и ре­ сур­сов для по­мо­щи и уче­ни­кам, и учи­те­лям. Эти про­екты хо­ро­ши для на­ча ­ла: они да­ют пред­с тав ­ле­ние о пла­те micro:bit, о дос­т уп­ных на ней язы­ках про­грам­ми­ро­ва­ния и о под­к лю­че­нии к пла­те фи­зи­че­­ских уст­ройств вво­да и вы­во­да, та­ких как ЖК-све­ то­дио­ды [LED] и мо­то­ры. Ко­гда вы за­про­грам­ми­руе­те и за­пус­ти­те ее, воз­ник­нет мно­же­ст­во воз­мож­но­стей для по­те­хи, но, как и всег­ да, ес­ли вы хо­ти­те из­влечь мак­си­мум из но­вой тех­но­ло­гии, сле­ду­ет най­ти хо­ро­ший и ин­те­рес­ный спо­соб де­мон­ст­ра­ции воз­мож­но­стей тех­но­ло­гии, даю­щий дос­та­точ­но про­сто­ра для адап­та­ции и улуч­ ше­ния ва­ше­го ис­ход­но­го про­ек ­та. В на­шем про­ек­те мы сде­ла­ем иг­ру для тре­ни­ров­ки ума, хо­тя она не долж­на осо­бо на­прячь вас. Суть в том, что вам на­до за­по­ ми­нать ко­ман­ды: на­при­мер, на­жать на кноп­к у или по­тря­сти пла­т у, ко­гда на micro:bit за­го­рит­ся ин­ди­ка­тор. Ва­ша за­да­ча — соз­дать от­ пра­вную точ­к у для бо­лее круп­но­го про­ек ­та, спо­соб­но­го со вре­ме­ нем рас­ши­рять­ся по ме­ре улуч­ше­ния ва­ше­го обо­ру­до­ва­ния и ва­ ших на­вы­ков. Наш про­ект про­де­мон­ст­ри­ру­ет при­ме­не­ние офи­ци­а ль­ных сред про­грам­ми­ро­ва­ния, дос­т уп­ных на мо­мент за­пус­ка, но, ко­неч­но же, ос­н о­в ы это­г о про­е к ­т а лег­ко адап­т и­р о­в ать для ис­п оль­з о­в а­н ия с MicroPython или лю­бы­ми дру­ги­ми язы­ка­ми, под ­дер­ж и­вае­мы­ ми micro:bit. Мы так­же взгля­нем на сре­ды про­грам­ми­ро­ва­ния, дос­т уп­ные на сай­те microbit.co.uk, на­чав с не­ве­ро­ят­но про­с то­го Block Editor и за­тем пе­рей­дя к ку­да бо­лее зна­ко­мой сре­де про­грам­ми­ро­ва­ния в ви­де Touch Develop. На­пи­сав и про­ве­рив код, мы мо­жем за­мах­ нуть­ся на под­к лю­че­ние обо­ру­до­ва­ния, хо­тя бы про­сто­го кно­поч­ но­го вы­к лю­ча­те­ля. Пом­ни­те, что micro:bit раз­ра­бо­тан как уст­рой­ст­во для об­ра­зо­ ва­тель­ных це­лей, а не как со­пер­ник Arduino или се­мей­с т­ву плат Raspberry Pi, и хо­тя он и сам по се­бе яв­ля­ет­ся мощ­ным ин­ст­ру­мен­ том раз­ра­бот­ки, струк­т у­ра пла­ты да­ет воз­мож­ность вы­во­да про­ ек ­тов на бо­лее вы­со­кий уро­вень, бла­го­да­ря лег­ко­сти пол­ной ин­ те­гра­ции и с упо­мя­ну ­ты­ми аль­тер­на­ти­ва­ми, и с дру­ги­ми пла­та­ми мик­ро­про­цес­со­ров. Для на­ча ­ла под­к лю­чи­те micro:bit к сво­ему ПК че­рез USB; по­ сле это­го он дол ­жен поя­вить­с я в ва­шем спи­ске но­си ­те ­лей. Ко­ гда мы на­пи­шем и ском­пи­ли­ру­ем код, файл про­шив­ки ска­ча­ет­ся на ваш ком­пь­ю­тер. На дан­ный мо­мент этот файл дол­жен вруч­ную пе­ре­но­сить­ся из пап­ки Downloads на micro:bit, по­сколь­к у по­ка для ди­ст­ри­бу ­ти­вов Linux нет ав­то­ма­ти­че­­ско­­го за­груз­чи­ка, а для Win­ dows они толь­ко на­ча ­ли по­яв­лять­ся.

> Ес­ли вам ин­те­рес­но бы­ст­ро понять, на что способен micro:bit, то Block Editor — от­лич­ный спо­соб уви­деть, что мож­но сде­лать, в том чис­ле под­клю­читься пря­мо к смарт­фо­ну. В вы­бран­ном ва­ми брау­зе­ре от­крой­те сайт www.microbit.co.uk и через на­ви­га­цию в­вер­х у вы­бе­ри­те оп­цию Create Code [Соз­д ать код], а за­т ем Block Editor [Ре­д ак­т ор бло­ков]. Не бес­п о­кой­т есь, мы про­бу­дем в этой сре­де не­дол­го, толь­ко что­бы про­де­мон­ст­ри­ ро­вать вам, что она со­бой пред­с тав­ля­ет, и что­бы вы по­ня­ли: эта струк­т у­ра — от­лич­ный путь к эта­лон­но­му ко­ду по ме­ре зна­ком­ст­ва с micro:bit.

Block Editor Без оши­бок не обош­лось, и ес­ли вы не ви­ди­те гра­фи­к у micro:bit, раз­ме­щен­ную для пред­про­смот­ра в пра­вой час­ти эк­ра­на, по­про­ буй­те про­с то из­ме­нить раз­мер окна сво­его брау­зе­ра. Ес­ли гра­ фи­к а не поя­вит­с я, то долж ­на поя­вить­с я по на ­ж а­т ию на кноп­к у Play в верх­ней час­ти па­не­ли на­ви­га­ции. Нам ну­жен этот пред­про­ смотр, что­бы убе­дить­ся в ра­бо­то­спо­соб­но­сти на­пи­сан­но­го ко­д а. Ввер­х у на­хо­д ят­ся оп­ции Play [Вос­про­из­ве­с ти], Compile [Ском­пи­ ли­ро­вать], Convert [Кон­вер­ти­ро­вать] и Help [По­мощь]. Сле­ва на ­хо­ дят­ся ко­ман­ды ко­да, на­чи­ная с Basic [Ос­но­вы] и да­лее до Devices [Уст­рой­ст­ва]; на­жи­мая на них, вы по­лу­чи­те не­пло­хое пред­став­ле­ ние о том, на что спо­со­бен micro:bit по умол­ча­нию, но по­ка мы ус­ лож­нять не бу­дем. На ­ж ми ­т е на эле­м ент Basic сле­в а и пе­р е­т а­щ и ­т е Show String [По­к а ­з ать стро­к у] в ос­нов­н ую об­ласть. В ок ­не ме­ж ­д у ка­выч­к а­ ми вве­д и ­т е текст, ко­т о­рый вы хо­т и ­т е Под­г о­т о­вить [Get Ready]. Те­перь на­жми­те на зна­чок Play, и вы уви­ди­те, что текст поя­вил­ ся в ок­не пред­про­смот­ра micro:bit. За­тем надо пе­ре­та­щи­ть Clear Screen [Очи­стить эк­ран] и при­сты­ковать его к сни­зу к ок­ну Show

www.linuxformat.ru/subscribe


BBC micro:bit

Ис­поль­зо­ва­ние кон­так­тов Ин­те­гра­ция элек­тро­ни­ки в ваш про­ект — вот где на­чи­на­ет­ся глав­ная по­те­ха, и про­стая кноп­ка-вы­ клю­ча­тель для за­мы­ка­ния це­пи — са­мое бы­строе внеш­нее взаи­мо­дей­ст­вие, ка­кое толь­ко воз­мож­но. Про­сто подсоедини­те один из кон­нек ­то­ров кно­поч­ но­го пе­ре­к лю­ча­те­ля к кон­так ­т у 0, а дру­гой — к GND; со­еди­не­ние мож­но сде­лать с по­мо­щью «кро­ко­ди­ лов», при­ла­гае­мых к micro:bit. Ес­ли код за­пу­щен

при ак ­ти­ви­ро­ван­ном кон­так ­те 0, при­сое­ди­нен­ный кно­поч­ный вы­к лю­ча­тель бу­дет ра­бо­тать так же, как две кноп­ки на пла­те. Ес­ли вы на­ме­ре­ны пой­ти даль­ше, вам не со­ста­ вит тру­да до­ба­вить LED и ре­зи­стор на 220 Ом, что­бы при на­жа­тии на кноп­к у за­го­рал­ся LED! Оз­на­ко­мив­ шись с ра­бо­той трех глав­ных кон­так­тов, мож­но на­чать до­бав­лять дру­гие кноп­ки или дат­чи­ки для

String. Да­лее соз­да­дим пе­ре­мен­ную для при­вяз­ки к од­но­му из LED на micro:bit. На­жми­те Variables [Пе­ре­мен­ные], пе­ре­та­щи­те оп­цию Set Item To [Приставить элемент к] и при­с ты­к уй­те ее к ни­зу, на­ жмите на Item [Эле­мент], вы­бе­ри­те Rename variable [Пе­ре­име­но­ вать пе­ре­мен­ную] и на­зо­ви­те ее ‘X_Plot’. Те­перь на­жми­те на Maths [Ма­те­ма­ти­ка], пе­ре­та­щи­те pick random 0 to 4 [Вы­бе­ри­те слу­чай­ное чис­ло от 0 до 4] и на­жми­те на ко­нец пе­ре­мен­ной. Соз­дай­те дру­г ую пе­ре­мен­ную, на сей раз под на­зва­ни­ем ‘Y_Plot’, и опять до­бавь­те pick random 0 to 4. И, на­ко­нец, на­жми­те LED и Plot x 0 y 0 и по­мес­ти­ те в ниж­нюю часть бло­ка ко­да. На­жми­те на ‘0’ ря­дом с X и вы­бе­ри­ те ‘X_Plot’, за­тем за­ме­ните Y на ‘Y_Plot’. Те­перь при за­пус­ке скрип­та вы уви­ди­те, как слу­чай­ным об­ра­зом за­го­ра­ет­ся од­на из лам­по­чек, а при пе­ре­за­груз­ке пла­ты бу­дет за­го­рать­ся дру­гая лам­поч­ка. Те­ перь мы по­смот­рим, как при­сое­ди­нить дей­ст­вие, ко­то­рое вы­пол­ ня­ет­ся в за­ви­си­мо­сти от то­го, ка­кая лам­поч­ка за­го­ре­лась.

Кон­вер­ти­ру­ем в код Block Editor — от­лич­ная стар­то­вая пло­щ ад­к а для на­чи­наю­ще­го про­грам­ми­ста, по­сколь­к у вы мо­же­те яс­но и ло­гич­но струк­т у­ри­ро­ вать бло­ки ко­да. А вот при пе­ре­к лю­че­нии на Touch Develop код ста­ но­вит­ся дей­с т­ви­тель­но зна­ко­мым и схо­жим с дру­ги­ми язы­ка­ми про­грам­ми­ро­ва­ния,. К не­му мож­но по­лу­чить дос­т уп пря­мо из оп­ ции ме­ню Create Code или, в ином слу­чае, ес­ли вы на­ча­ли в Block Editor, про­сто на­жми­те на оп­цию Convert в ме­ню ввер­х у. Эта кноп­ ка очень удоб­на при обу­че­нии, так как по­зво­ля­ет бы­ст­ро про­смот­ реть код, стоя­щий за бло­ка­ми. Будь­те ак­к у­рат­нее с этой оп­ци­ей, по­сколь­к у сто­ит вам ре­шить пе­рей­ти от бло­ков к ко­д у, про­сто­го пу­ти на­зад не бу­дет. Touch Develop бо­лее рас­ши­рен­ный, чем Block Editor, но то­же ока­зы­ва­ет вся­че­скую по­мощь в про­цес­се про­грам­ми­ро­ва­ния. Как толь­ко вы нач­не­те пе­ча­тать, ре­дак­тор бу­дет пред­ла­гать вам свои ва­ри­ан­ты с воз­мож­но­стью обратиться к вы­бору оп­ций в ниж­ней час­ти эк­ра­на; оп­ции от­ра­жа­ют про­с тые бло­ки ко­д а, по­ка­зан­ные в Block Editor.

даль­ней­ше­го ус­лож­не­ния иг­ры — да ­же с про­стей­ ши­ми ин­фра­крас­ны­ми дат­чи­ка­ми все­гда ве­се­лее. Уг­лу­би­тесь в кон­так­ты чуть даль­ше, и вы уви­ди­те, что по­ми­мо пя­ти боль­ших, есть еще 20 ма­лень­ких кон­так­тов. Они в ос­нов­ном вто­рят бо­лее круп­ным кон­так­там, вклю­чая до­пол­ни­тель­ные 3 В и I/O. Пол­ ный спи­сок свойств кон­так­тов вы най­де­те на https:// www.microbit.co.uk/device/pins.

game - add score (1) basic - pause basic - show number (game - score, 150) basic - clear screen По­с ле это­го ко­д а нам требуется, что­бы micro:bit за­жгла дру­ гой слу­чай­ный LED. Вот код, ко­то­рый мы кон­вер­ти­ро­ва­ли из Block Editor: X_Plot := math - random (5) Y_Plot := math - random (5) led - plot(X_Plot, Y_Polt) Те­перь сле­д у­ет на­пи­с ать код, соз­д аю­щий про­иг­рыш­ный ре­ зуль­т ат, ес ­л и кноп­к а A на­ж а­т а, но при этом не за­г о­р ел­с я LED в столб­це X, 0: else if X_Plot > 0 then basic - pause (250) basic - show string (“Loose”, 150) game - game over end Ре­зуль­та­ты на ­жа­тия пер­вой кноп­ки го­то­вы; ана ­ло­гич­но мож­но про­дол­ж ить про­цесс для сле­д ую­щих че­ты­рех строк. При­пи­шем кноп­к у к столб­цу; пусть, на­при­мер, кноп­ка B со­от­вет­ст­ву­ет столб­ цу 4, а A + B — столб­ц у 2. Есть еще два столб­ц а, ко­то­рым ни­че­ го не при­пи­с а­но, и для них мы бу­дем ис­поль­зо­вать встро­ен­ную в micro:bit функ­цию встря­хи­ва­ния и один из пор­тов вво­да/вы­во­да. Как и с оп­ци­ей Input [Ввод], ко­то­рая по­зво­ля­ет вы­брать кноп­к у A, под тем же за­го­лов­ком вы най­де­те вво­ды: для кон­так­тов, input — on pin pressed (PO) do [При на­жа­тии кон­так­та вы­пол­нить], и для встря­хи­ва­ния Input — on shake do [При встря­хи­ва­нии вы­пол­нить]. Ос­таль­ной код сле­ду­ет тем же стро­кам, что и кноп­ки. |

Touch Develop По­ра по­про­бо­вать встро­ить не­кое взаи­мо­дей­ст­вие: пусть, ес­ли за­ го­ра­ет­ся LED в ле­вом столб­це, ко­то­рый со­от­вет­ст­ву­ет зна­че­нию X, 0, поль­зо­ва­тель на­жи­ма­ет кноп­к у A; ес­ли стол­бец X, 5, то кноп­к у B; а ес­ли X, 2, то на­до на­жать обе кноп­ки, A и B. Как ви­ди­те, мы при­ ни­ма­ем­ся за соз­да­ние иг­ры. Что­бы пла­та зна­ла, что ей де­лать, на­до за­про­грам­ми­ро­вать со­бы­тия, про­ис­хо­дя­щие при на ­жа­тии на кноп­ ки. На­чи­ная с кноп­ки A, про­ве­ря­ет­ся, на­жа­та ли кноп­ка A, и ес­ли LED за­го­ра­ет­ся в столб­це X, 0, то вы вы­иг­ра­ли, и про­грам­ма до­ба­ вит 1 к ва­ше­му сче­т у. Input - on button pressed (A) do if X_Plot = 0 then basic - pause(250) basic - show string(“Win”, 150) basic - clear screen

> Touch Editor да­ет но­вич­кам в про­грам­ми­ро­ва­нии луч­шее пред­став­ле­ние о бо­лее тра­ди­ци­ он­ных струк­ту­рах и пра­ви­лах про­грам­ми­ро­ва­ния, чем Block Editor. Еще од­на бо­лее мощ­ная оп­ция — MicroPython, но это для ус­во­ив­ших ос­но­вы.

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 43


BleachBit

BleachBit: Очи­ст­ка сис­те­мы Игорь Штом­пель оце­ни­ва­ет эф­фек­тив­ность BleachBit и со­от­вет­ст­вие этой програм­мы за­яв­лен­ным це­лям, раз­би­рая всю ее под­но­гот­ную.

Р

а­б о­т а опе­р а­ц и­о н­н ой сис­т е­м ы име­е т не­п ри­я т­н ое по­ след­ст­вие — на­ко­п­ле­ние му­со­ра. К со­жа­ле­нию, ОС Linux не яв­л я­е т­с я здесь ис­к лю­ч е­н и­е м. За­п ус­к ая раз­л ич­н ые ее при­ло­же­ния, вы воль­но или не­воль­но спо­соб­ст­вуе­те за ­х лам­ле­ нию сво­его дис­ка: об­ра­зу­ют­ся вре´менные фай­лы, cookies, со­дер­ жи­мое кэ­ша и т. д. Но вам на по­мощь при­хо­дит чис­тиль­щик сис­те­ мы — при­ло­же­ние BleachBit.

Ис­то­рия

> Рис. 1. Вы­вод инфор­ма­ции о паке­те BleachBit в Ubuntu 15.10.

Пер­вый пуб­лич­ный ре­лиз BleachBit — 0.1.0 [1] — со­сто­ял­ся 24 сен­ тяб­ря 2008 г. Это был ис­ход­ный код, но в анон­с е со­о б­щ а­лось, что па­ке­т ы для наи­б о­л ее по­п у­л яр­н ых ди­с т­р и­бу ­т и­в ов (Debian, openSUSE, Fedora, Ubuntu) бу­дут дос­т уп­ны в ско­ром вре­ме­ни. Вер­сия 0.1.0 уже об­ла­да ­ла ши­ро­ки­ми воз­мож­но­стя­ми: она уме­ ла ос­во­бо­ж ­д ать дис­ко­вое про­с тран­с т­во, а так ­же по­вы­шать кон­ фи­ден­ц и­а ль­ность поль­зо­в а­те­лей. Но пер­вый пуб­лич­ный ре­лиз со­дер­жал ряд оши­бок. Что ин­те­рес­но, в день его анон­са, 24 де­каб­ ря 2008 г., по­яв­ля­ет­ся вто­рой анонс [2], уже вер­сии 0.1.1, с ис­прав­ ле­ни­ем оши­бок и реа ­ли­за­ци­ей до­пол­ни­тель­ных воз­мож­но­с тей. В ча­ст­но­сти, бы­ла ис­прав­ле­на ошиб­ка с по­ис­ком фай­лов, за­к лю­ чав­шая­ся в том, что BleachBit в оп­ре­де­лен­ных слу­ча­я х на­хо­дил недос­та­точ­ное ко­ли­че­­ст­во ис­ко­мых фай­лов. Сле­дую­щий пуб­лич­ный ре­лиз BleachBit, 0.2.0, то­же вы­шел поч­ ти сра­зу — 30 де­каб­ря 2008 г. [3]. В про­грам­му до­ба­ви­лись очи­ ст ­к а «би ­т ых» фай ­лов .desktop, очи­с т­к а вос­с та­нов­ле­ния сес­сии Mozilla Firefox от «му­со­ра», очи­ст­ка /var/tmp при об­ра­бот­ке /tmp/, воз­мож­ность уда­лить лиш­нее из .viminfo, свя­зан­но­го с про­грам­ мой Vim (со­дер­ж и­мое бу­фе­ра, ис­то­рия ко­манд и фай­лов) и ряд дру­гих нов­шеств. Не за­мед­лил и сле­дую­щий ре­лиз — 0.2.1, ко­то­рый вы­шел 4 ян­ ва­ря 2009 г., но вы­звал кри­ти­че­­ские за­ме­ча­ния. Так, на пор­та ­ле

> Рис. 2. Под­твер­жде­ние ус­та­нов­ки BleachBit в Ubuntu 15.10. 44  |  LXF210 Июнь 2016

lwn.net, 6 ян­ва­ря 2009 г., бы­ла опуб­ли­ко­ва­на ста­тья Брю­са Бай­фил­ да [Bruce Byfield] с го­во­ря­щим на­зва­ни­ем: “BleachBit: Does GNU/ Linux need the equivalent of a Windows registry cleaner? [BleachBit: ну­ жен ли GNU/Linux эк­ви­ва­лент чис­тиль­щи­ка рее­ст­ра в Windows]” [4]. Здесь не­об­хо­ди­мо дать по­яс­не­ние. Еще до вы­хо­да вер­сии 0.2.1 в офи­ци­а ль­ном бло­ге BleachBit бы­ла опуб­ли­ко­ва­на ста­тья “Myth: Linux Doesn’t Need a Registry Cleaner [Миф: Linux не ну­ж ­д а­ет­с я в чис­тиль­щи­ке рее­ст­ра]” [5]. В ней при­во­ди­лись до­во­ды, при­зван­ ные оп­ро­верг­нуть мне­ние о том, что Linux не требует подчи­ст­ки си­ стемы. На­при­мер, OpenOffice вер­сии 1 не был дос­т у­пен в фор­ма­те Deb- или RPM-па­ке­тов, и эта вер­сия ко­пи­ро­ва­ла фай­лы (на­при­ мер, за­пи­си ме­ню) в до­маш­ний ка­та­лог поль­зо­ва­те­ля. При ус­та­нов­ ке RealPlayer без прав су­пер­поль­зо­ва­те­ля файл RealPlayer11GOLD. bin раз­ме­щал­ся в до­маш­нем ка­та ­ло­ге поль­зо­ва­те­ля. Ес­ли при уда­ ле­нии этой про­грам­мы не ис­поль­зо­ва ­ли спе­ци­а ль­ную ко­ман­д у, то мно­же­ст­во фай­лов ос­та­ва­лось в ~/.local. При уда­ле­нии Wine ос­ та­ва ­лись не­ко­то­рые пунк ­ты ме­ню. Брюс Бай­филд под­черк­нул, что раз­ра­бот­чик BleachBit и сам от­ ме­ча­ет — га­ран­тии ус­ко­ре­ния сис­те­мы в ито­ге его дей­ст­вий нет, и по­яс­нил: де­ло в том, что об­ра­ще­ния к не­ис­поль­зуе­мым фай­лам не про­ис­хо­дит, а зна­чит, их уда ­ле­ние не влия­ет на про­из­во­ди­тель­ ность. Мно­г ие кон­фи­г у ­ра­ц и­он­ные фай ­лы пред­с тав ­ля­ют со­бой текст, и их уда­ле­ние ос­во­бо­ж ­да­ет ме­сто, из­ме­ряе­мое все­го лишь в ки­ло­бай­тах. Ощу­ти­мый ре­зуль­тат мож­но по­лу­чить при очи­ст­ке кэ­шей брау­зе­ров, но да­же это, на его взгляд, не мно­го для со­вре­ мен­ных ком­пь­ю­те­ров. Дру­гой его ар­г у­мент про­тив BleachBit за­к лю­ чал­ся в том, что про­грам­ма пред­став­ля­ет оп­ре­де­лен­ную опас­ность для не­опыт­ных поль­зо­ва­те­лей. Да, в от­ли­чие от чис­тиль­щи­ков рее­ ст­ра в Windows, она не влия­ет на ак­т у­а ль­ную кон­фи­г у­ра­цию сис­ те­мы, но ос­тав­ля­ет воз­мож­ность уда ­лить цен­ную ин­фор­ма­цию, хра­ня­щую­ся в кон­фи­г у­ра­ци­он­ных фай­лах — на­при­мер, очи­стить ис­то­рию Bash (ис­поль­зуе­мую, на­при­мер, для то­го, что­бы не на­би­ рать уже вве­ден­ные ко­ман­ды). Эти ошиб­ки в ра­бо­те поль­зо­ва­те­ лей, на взгляд Бай­фил­да, имели шансы воз­ник­нуть из-за не­дос­тат­ ков ин­тер­фей­са BleachBit. Бай­филд зая­вил, что не­пло­хо бы­ло бы до­ба­вить пре­ду­пре­ж ­де­ния, к че­му способны при­вес­ти вы­бран­ные дей­ст­вия. Прав­да, в за­к лю­че­ние от­ме­тил, что пе­ре­чис­лен­ные про­ бле­мы не де­ла­ют от­каз от ис­поль­зо­ва­ния BelachBit не­об­хо­ди­мым. 11 ян­ва­ря 2009 г. бы­ло объ­яв­ле­но о дос­т уп­но­сти ре­по­зи­то­ри­ев Deb-па­ке­тов для Debian 4 и Ubun­tu — вер­сий 7.04, 8.10 [6]. А поль­ зо­ва­те­лям Ubuntu 9.04 обе­ща­лась дос­т уп­ность про­грам­мы не­по­ сред­ст­вен­но в ре­по­зи­то­ри­ях Ubuntu. 27 ян­ва­ря 2009 г уви­де­ла свет вер­сия 0.3.0 [7]. Сре­ди нов­шеств, ко­то­рые бы­ли в нее вклю­че­ны, мож­но от­ме­тить под­держ­к у очи­ст­ки ло­ка­ли­за­ций, диа­лог на­стро­ек; поя­ви­лась воз­мож­ность безо­пас­но­ го уда ­ле­ния фай­лов (ме­то­дом пе­ре­за­пи­си), оп­ции по­лу­чи­ли опи­ са­ния, ис­прав­ле­на ошиб­ка в ра­бо­те с сим­во­ли­че­­ски­­ми ссыл­ка­ми. В Bleachbit 0.4.0, вы­шед­шем 23 фев­ра­ля 2009 г. [8], ос­нов­ным нов­ше­ст­вом ста ­ло по­яв­ле­ние язы­ка раз­мет­ки — CleanerML; на нем ста­ли пи­сать­ся «сце­на­рии» очи­ст­ки для BleachBit [9]. Кро­ме то­го, бы­ла рас­ши­ре­на под­держ­ка про­грамм, для ко­то­рых реа­ли­зо­ва­на воз­мож­ность очи­ст­ки (Chromium/Google Chrome, ELinks, Midnight Commander, Recoll, Rhythmbox, Wine и др.), а так­же по­явил­ся пе­ ре­вод на рус­ский язык, реа ­ли­зо­ван­ный Ва­ди­мом Пе­ре­то­к и­ным [Vadim Peretokin] и реа ­ли­зо­в а­ны па­ке­т ы для 19 ди­с т ­ри­бу ­т и­вов (в том чис­ле и для Debian 5).

www.linuxformat.ru/subscribe


BleachBit

Вер­с ия 0.5.0, анон­с и­р о­в ан­ная 29 мая 2009 г., пре­вра­т и ­лась в кросс­п лат­ф ор­м ен­н ое ре­ш е­н ие: бы­л а до­б ав­л е­н а под­д ерж­к а опе­ра­ци­он­ных сис­тем Microsoft Windows — XP, Vista и 7, а так­же под­держ­ка очи­с т­к и фай­лов Internet Explorer и Safari и уда ­ле­ние cookie-фай­лов Adobe Flash. Кроме того, бы­ли реа­ли­зо­ва­ны пор­т у­ галь­ский (Бра­зи­лия), фран­цуз­ский, чеш­ский, сло­вац­кий, серб­ский, араб­ский, дат­ский пе­ре­во­ды. Глав­ный ре­лиз 0.6.0 (2 ав­г у­ста 2009 г.) при­нес мас­су нов­шеств, в т. ч. спе­ци­фич­ные для Linux и для Windows ис­прав­ле­ния оши­ бок, до­бав­ле­ние но­вых пе­ре­во­дов и об­нов­ле­ние уже под­дер­жи­ вае­мых. В ча­ст­но­сти, поя­ви­лась под ­держ­ка очи­ст­ки ис­то­рии для Opera и очи­ст­ка для Opera 10 beta, бло­ки­ров­ка очи­ст­ки для ра­бо­ таю­щих при­ло­же­ний (Firefox, Google Chrome, Evolution, Epiphany, APT, Skype). Сре­ди спе­ци­фич­ных из­ме­не­ний для Linux: очи­ст­ка для APT, Evolution, Liferea, EasyTag. По­след­няя за­пись в бло­ге http://bleachbit.blog­spot.ru да­ти­ру­ет­ся 28 ав­г у­ста 2009 г., ко­гда бы­ло объ­яв­ле­но о вы­хо­де BleachBit вер­сии 0.6.3. Пуб­ли­ка­ция но­во­стей о раз­ви­тии про­грам­мы про­дол­жи­лась на пор­та ­ле http://bleachbit.sourceforge.net/news. Пер­вой за­пи­сью ста­ло со­об­ще­ние от 7 сен­тяб­ря 2009 г. о тес­ти­ро­ва­нии BleachBit 0.6.4 beta [10]. 22 ок­тяб­ря 2013 г. по­яв­ля­ет­ся анонс BleachBit 0.7.0 [11]. В этой вер­сии рас­ши­ре­на очи­ст­ка ис­то­рии брау­зе­ра Google Chrome. Поя­ ви ­л ась под ­д ерж ­к а ра­б о­т ы с Chromium (кэш, ис­т о­р ия, фай­л ы cookies и т. п.), а так­же уда­ле­ние вре­мен­ных фай­лов Google Earth, очи­ст­ка кэ­ша IcedTea. Не­ко­т о­р ые из­м е­н е­ния ори­е н­т и­р о­в а ­лись на ра­б о­чие сре­д ы. Для KDE 4 поя­ви­лась под­держ­ка очи­ст­ки спи­ска по­след­них про­ смот­рен­ных до­к у­мен­тов. Ряд дру­гих из­ме­не­ний за­тро­нул ра­бо­т у со сре­дой Gnome. В ча­ст­но­сти, до­бав­ле­на под­держ­ка очи­ст­ки ис­то­ рии для Gnome Run (ок­но вы­зы­ва­ет­ся при на­жа­тии кла­виш Alt+F2), а так­же очи­ст­ка ис­то­рии для Gnome Search Tool. В вер­с ии 0.8.0 поя­ви­л ась функ­ц ия бе­л о­г о спи­с ка, в Gnome (2.28‑2.30) ста ­ло воз­мож­но уда ­лять спи­сок по­след­них про­смот­рен­ ных до­к у­мен­тов, реа ­ли­зо­ва­на под­держ­ка Mozilla Thunderbird 3 [12]. А в вер­сии 0.9.0 бы­ли ис­прав­ле­ны ошиб­ки за­тра­ги­ваю­щие ра­бо­т у с фай­ла­ми Mozilla Thunderbird 5, а так­же реа­ли­зо­ва­на под­держ­ка ра­бо­ты с ядром Linux 3 [13]. 15 но­яб­ря 2013 г. вы­шел ре­лиз BleachBit вер­сии 1.0 [14], спус­тя бо­лее пя­ти лет по­сле анон­са вер­сии 0.1.0. Как от­ме­ча­лось в анон­ се, с 2008 г. бы­ли осу­ще­ст­в­ле­ны мил­лио­ны за­гру­зок про­грам­мы, а она пе­ре­ве­де­на уже на 62 язы­ка. До­ба­ви­лась под­держ­ка очи­ст­ ки фай­лов Octave, Warzone 2100 и SQLite 3, для Adobe Flash — очи­ ст­ка NativeCache. 19 ию­ня 2015 г. уви­де­ла свет по­след­няя дос­т уп­ная на се­го­дняш­ ний день вер­сия про­грам­мы — 1.8 [15]. В ней поя­ви­лась под­держ­ ка бе­ло­го спи­ска для FSArchiver, улуч­ши­лась ра­бо­та с ло­ка­ли­за­ ци­ей для CleanerML, под­го­тов­ле­ны па­ке­ты для Debian 8, Fedora 21 и Ubuntu 15.04.

> Рис. 3. По­иск BleachBit в Dash.

Итак, в Ubuntu 15.10 дос­т уп­на вер­сия 1.8 про­грам­мы BleachBit. Ее за­ви­си­мо­сти мож­но про­ве­рить с по­мо­щью ко­ман­ды $ sudo apt-cache depends bleachbit Для ус­та­нов­ки про­грам­мы бу­дем ис­поль­зо­вать ути­ли­т у apt-get: $ sudo apt-get install bleachbit В Ubuntu 15.10, по­с ле ус ­т а­нов­к и про­г рам­мы и не­об­хо­д и­мых об­нов­ле­ний, сис­те­ма пред­ло­ж и­ла за­г ру­зить все­го 1440 КБ (см. рис. 2). Со­гла­ша­ем­ся и ус­та­нав­ли­ва­ем.

Пер­вый за­пуск и ин­тер­фейс Для за­пус­ка BleachBit мож­но вос­поль­зо­вать­ся Launcher. Это бо­ ко­вая па­нель, ко­то­рая рас­по­ло­же­на в ле­вой час­ти ра­бо­че­го сто­ ла Ubuntu. Вы­бе­ри­те кноп­к у По­иск на ком­пь­ю­те­ре и в ин­тер­не­те, ко­то­рая по­зво­лит пе­рей­ти в глав­ное ме­ню — Dash. За­тем в стро­ке по­ис­ка на­чи­най­те вво­дить “BleachBit”. Еще до окон­ча­ния ва­ше­го вво­д а, точ­нее, сра­зу по­сле бу­к­вы “B”, Dash ото­бра­зит зна­чок это­го при­ло­ же­ния (см. рис. 3). За­пус­ти­те его. От­ме­тим, что у вас по­лу­чит­ся ана­ло­гич­ный ре­зуль­тат, ес­ли в Па­ ра­мет­рах сис­те­мы (вы­зы­ва­ет­ся с по­мо­щью са­мой ниж­ней кноп­ки на Launcher) в За­щи­те и при­ват­но­сти, на вклад­ке По­иск, вы от­к лю­ чи­те Ото­бра ­жать ре­зуль­та­ты по­ис­ка в Ин­тер­не­те. По­с ле за­п ус­к а BleachBit пред ­л о­ж ит про­и з­в е­с ти на­с трой­к и (рис. 4). На эта­пе пер­во­го зна­ком­ст­ва с про­грам­мой мож­но ос­та­ вить па­ра­мет­ры по умол­ча­нию и ок­но На­строй­ки за­крыть. Пе­ред ва­ми пред­ста­нет ин­тер­фейс про­грам­мы во всей кра­се. Ее ок­но мож­но раз­де­лить на че­ты­ре час­ти. Ввер­х у рас­по­ло­же­но ме­ ню, ни­же ин­ст­ру­мен­ты (“Пред­про­смотр”, “Очи­ст­ка”), ни­же — две час­ти, ле­вая и пра­вая. В ле­вой — вы­бор дей­ст­вий, а в пра­вой — ком­мен­та­рий для те­к у­ще­го вы­бран­но­го дей­ст­вия, т. е. то­го, на ко­ то­р ом вы щелк­н у­ли ле­вой кноп­кой мы­ши. Щел­ч ок пра­вой вы­ зо­вет кон­тек­с т­ное ме­ню с дву­мя ин­с т­ру­мен­та­ми, ко­то­рые были упо­мя­н у ­т ы вы­ше, но это осу ­ще­с т ­в ­ля­ет­с я толь­ко для дей­с т ­вий, а не для «групп». «Груп­па» вклю­ча­ет не­сколь­ко дей­ст­вий. На­при­ мер, “APT” — это груп­па, а “autoclean”, “autoremove”, “clean”, “Спи­ сок па­ке­тов” — дей­ст­вия.

Ус­та­нов­ка BleachBit Ра­бо­т у с про­грам­мой BleachBit мы бу­дем осу­ще­ст­в­лять в опе­ра­ци­ он­ной сис­те­ме Ubuntu 15.10 “Wily Werewolf”, вы­шед­шей 22 ок­тяб­ ря 2015 г. [16]. Про­из­ве­сти ус­та­нов­к у BleachBit в Ubuntu не­слож­но: дос­та­точ­но вос­поль­зо­вать­ся сис­тем­ны­ми сред­ст­ва­ми управ­ле­ния па­ке­та­ми — APT или Цен­тром при­ло­же­ний Ubuntu. Мы вос­поль­зу­ем­ся APT. Для на­ча­ла обзаведемся ин­фор­ма­цией о нашей версии па­кета BleachBit: $ sudo apt-cache showpkg bleachbit Раз­бе­рем этот при­мер. Ко­ман­да apt-cache по­зво­ля­ет ра­бо­тать с кэ­шем сис­те­мы управ­ле­ния па­ке­т а­ми APT. Па­ра­метр showpkg при­зван ото­бра­жать ин­фор­ма­цию о па­ке­те. В вы­во­де ука­зан­ной ко­ман­ды (рис. 1) мы ви­дим ин­фор­ма­цию о вер­сии BleachBit, за­ви­ си­мо­стях, об­рат­ных за­ви­си­мо­стях и т. п.

> Рис. 4. За­пуск BleachBit.

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 45


BleachBit

> Рис. 5. Кон­тек­ст­ ное ме­ню в диа­ ло­го­вом ок­не вы­ бо­ра ба­зы дан­ных Sqlitebrowser.

В ле­вой час­ти дос­т уп­на еще од­на ко­лон­ка — Ак­ти­ви­ро­вать. Вы­ би­рая то или иное дей­ст­вие, ко­то­рое хо­ти­те осу­ще­ст­вить, вы ста­ вите га­лоч­к у в со­от­вет­ст­вую­щем по­ле этой ко­лон­ки.

Ра­бо­та­ем с BleachBit До­п ус ­т им, мы по­р а­б о­т а ­ли в брау ­зе­р е Mozilla Firefox: за­хо­д и­ли на Ян­декс, по­се­щ а­ли сай­т ы rus-linux.net, www.opennet.ru, www. linuxcenter.ru и дру­гие. На пор­та­ле www.opennet.ru в стро­ке по­ис­­ка вве­дем “linux” и на­жмем клавишу Enter. Те­перь мы хо­тим очи­стить ис­то­рию ра­бо­ты в этом брау­зе­ре. В хо­де ра­бо­ты Firefox со­хра­ня­ет вре´менные фай­лы, cookies, за­по­ми­на­ет вве­ден­ное в по­лях форм, по­се­щен­ные web-стра­ни­цы, ве­дет свою ба­зу дан­ных и т. п. Очи­стить всю эту ин­фор­ма­цию обя­зу­ет­ся BleachBit. И мы про­ ве­рим, как это у не­го по­лу­ча­ет­ся. Для на­ча ­ла от­ме­тим, что Firefox соз­да­ет не­сколь­ко баз дан­ных в до­маш­нем ка­та­ло­ге поль­зо­ва­те­ля. Вы мо­же­те их най­ти в ка­та­ло­ ге ~/.mozilla/fir­efox/---.default---. По­с лед­ний ка­та­лог дол­жен со­дер­ж ать сло­во “.default” (ес­ли у вас один про­филь, как в на­шем слу­чае) с пред­ва­ряю­щей точ­кой, ко­то­рое мо­жет об­рам­лять­ся со­че­та­ни­ем букв и цифр, как спра­ва, так и сле­ва от се­бя. Зай­дя в этот ка­та­лог, вы уви­ди­те та­кие фай­лы: » places.sqlite — хра­нит за­к лад­ки, спи­сок по­се­щен­ных сай­тов, спи­ сок за­гру ­жен­ных фай­лов; » formhistory.sqlite — хра­нит ин­фор­ма­цию о том, что вы ис­­ка­ли с по­мо­щью па­не­ли по­ис­­ка Mozilla Firefox, а так­же то, что вы вво­ди­ ли в раз­лич­ные по­ля на сай­тах; » cookies.sqlite — как и сле­ду­ет из на­зва­ния, это дан­ные (ку­ки), ко­ то­рые со­хра­ня­ют по­се­щен­ные ва­ми сай­ты. Бо­лее под­роб­ную ин­фор­ма­цию о фай­лах про­фи­ля Mozilla Firefox мож­но по­лу­чить на офи­ци­аль­ном сай­те раз­ра­бот­чи­ка брау­зе­ра [17].

> Рис. 6. Ба­за дан­ных places.sqilte в Sqlitebrowser. 46  |  LXF210 Июнь 2016

В це­лом, по на­зва­ниям этих фай­лов понятно, что ба­зы отно­ сятся к СУБД SQLite. Нам ос­та­ет­ся ус­та­но­вить про­грам­мы, ко­то­ рая по­зво­лит про­смат­ри­вать со­дер­ж и­мое этих баз. Мы оз­на­ко­ мим­ся с ним до за­пус­­ка очи­ст­ки в BleachBit и по­сле него, и срав­ним ре­зуль­та­ты. Вос­поль­зу­ем­ся про­грам­мой Sqlitebrowser [18]. По­след­няя до­ с­т уп­ная вер­сия про­грам­мы — 3.7.0. В Ubuntu 15.10 дос­т у­пен па­кет 3.5.1. Вы мо­же­те это про­ве­рить: $ sudo apt-cache showpkg sqlitebrowser Для це­лей этой ста­тьи впол­не по­дой­дет и вер­сия 3.5.1. Же­лая ус­та­но­вить све­ж ую вер­сию (3.7.0), вы мо­же­те вос­поль­зо­вать­ся ре­ по­зи­то­ри­ем, раз­ме­щен­ным на пор­та ­ле https://launchpad.net/ [20]. Ссыл­ка на этот ре­по­зи­то­рий при­во­дит­ся на глав­ной стра­ни­це офи­ ци­а ль­но­го сай­та про­грам­мы. Но об­ра­ти­те вни­ма­ние, что мак­си­ маль­ная вер­сия Ubuntu, на ко­то­рую ори­ен­ти­ро­ва­ны па­ке­ты из это­ го ре­по­зи­то­рия — 15.04. Sqlitebrowser не­ве­лик по объ­е­му (ме­нее 1 МБ) и быстр в ра­бо­те. Что­бы осу­ще­ст­вить ус­та­нов­к у, ско­ман­дуй­те $ sudo apt-get install sqlitebrowser За­пус­ти­те Sqlitebrowser с по­мо­щью Launcher или от­дав ко­ман­ ду в кон­со­ли: $ sqlitebrowser Ин­тер­фейс про­грам­мы ин­т уи­тив­но по­ня­тен. Оз­н а­ко­мим­с я с cодержимым ба­зы places.sqlite Firefox. Для это­го на па­не­ли ин­ст­ру­мен­тов Sqlitebrowser на ­жмем кноп­к у Open Database. В поя­вив­шем­ся диа­ло­го­вом ок­не вы­бо­ра ба­зы дан­ных, на пус­том мес­те, ни­же спи­ска фай­лов, вы­зо­вем кон­тек­ст­ное ме­ ню и вы­бе­рем Show hidden files, для ото­бра­же­ния скры­тых фай­ лов (см. рис. 5). По­сле это­го сре­ди ка­та­ло­гов ото­бра­зит­ся .mo­zil­la. Пе­ре­хо­дим в ка­та ­лог про­фи­ля те­к у­ще­го поль­зо­ва­те­ля Firefox (см. вы­ше). Вы­ би­ра­ем файл places.sqlite, на­жи­ма­ем кноп­к у Open. По­с ле это­го, как по­ка­за­но на рис. 6, со­дер­жи­мое ба­зы дан­ных places.sqlite бу­ дет в удоб­ной для просмотра фор­ме ото­бра­же­но в ок­не про­грам­ мы Sqlitebrowser. Пе­рей­дем на вклад­к у Browse Data. В ле­вой час­ти ок­на, в вы­па­ даю­щем спи­ске Table, вы­бе­рем таб­ли­цу “moz_bookmarks”, ко­то­рая хра­нит ин­фор­ма­цию о за­к лад­ках Firefox. Ниж­нюю по­ло­су про­крут­ ки дви­га­ем впра­во до по­ля “title” — на­зва­ние за­к ла­док, на­зва­ние со­от­вет­с т­вую­щих па­пок. На­зва­ние на­ших за­к ла­док бу­дет на по­ след­них по­зи­ци­ях в этом по­ле. URL всех этих за­к ла­док мож­но най­ ти в таб­ли­це “moz_place”, по­ле “url”. URL за­к ла­док, ко­то­рые мы до­ ба­ви­ли, уви­дим на по­след­них по­зи­ци­ях в этом по­ле. От­кро­ем в Sqlitebrowser файл formhistory.sqlite. Пе­рей­дем в таб­ ли­ц у “moz_formhistory”. Уви­дим, что в этой таб­ли­це все­го од­на стро­ка, по­ле “value” ко­то­рой име­ет зна­че­ние “linux” — имен­но это мы вво­ди­ли при по­ис­ке на пор­та­ле www.opennet.ru.

> Рис. 7. Ак­ти­ва­ция «очи­сток» в BleachBit для Firefox.

www.linuxformat.ru/subscribe


BleachBit

> Рис. 8. BleachBit за­пра­ши­ва­ет под­твер­жде­ние уда­ле­ния пе­ред очи­ст­кой. Ото­бра­зим в Sqlitebrowser файл cookies.sqlite. От­крыв таб­ли­ цу “moz_cookies”, мы сможем просмотреть со­дер­жащуюся в этом файле ин­фор­ма­цию. За­кро­ем Sqlitebrowser и за­пус­тим BleachBit. Вы­бе­рем груп­пу “Firefox”. Ак­ти­ви­ру­ем, как по­ка­за­но на рис. 7, “cookies”, “Вре­мен­ ные фай­лы”, “Жур­нал форм вво­да”, “Жур­нал web-ссы­лок”, “Жур­ нал за­гру­зок”. За­т ем на па­н е ­л и ин­с т ­ру ­м ен ­т ов на ­ж имаем кноп­к у Очи­с т­к а. BleachBit за­про­сит под­твер­ж де­ние уда ­ле­ния (рис. 8). Это пра­виль­ ный под­ход: ес­ли поль­зо­ва­тель на­жал на кноп­к у Очи­ст­ка слу­чай­ но, то он не по­те­ря­ет свою ин­фор­ма­цию. Для про­дол­же­ния про­цес­са очи­ст­ки на ­жмем кноп­к у Уда­лить. Про­грам­ма бы­с т­ро вы­пол­нит ра­бо­т у, а в пра­вой час­ти ок­на, как по­ка­за­но на рис. 9, ото­бра­зит­ся ин­фор­ма­ция о том, ка­кие фай­лы бы­ли уда­ле­ны. За­кро­ем BleachBit, за­пус­тим Sqlitebrowser. От­кро­ем файл places. sqlite, а за­тем таб­ли­цу “moz_bookmarks”. От­ме­тим, что по­ле “title” ос­та ­лось за­пол­нен­ным: в нем при­сут­ст­ву­ет ин­фор­ма­ция о сай­тах, ко­то­рые мы до­ба­ви­ли в за­к лад­ки. А в таб­ли­це “moz_place” в по­ ле “url” ос­та­лась ин­фор­ма­ция о стра­ни­цах, ко­то­рые мы по­се­ти­ли. А вот от­крыть фай­лы formhistory.sqlite и cookies.sqlite не по­лу­ чит­ся, так как они бы­ли уда­ле­ны. Та­ким об­ра­зом, BleachBit не пол­ но­стью спра­вил­ся с за­да­ча­ми, ко­то­рые мы пе­ред ним по­ста­ви­ли. В за­к лю­че­ние, для срав­не­ния, по­смот­рим, как справ­ля­ют­с я с за­д а­ча­ми встро­ен­ные в Firefox ин­ст­ру­мен­ты. Для это­го в ме­ню

> Рис. 9. BleachBit со­об­ща­ет о фай­лах, уда­лен­ных в про­цес­се очи­ст­ки.

вы­би­ра­ем Прав­ка > На­с трой­ки, за­тем пе­ре­хо­дим в При­ват­ность. Да ­л ее вы­б и­р а­е м Уда ­л ить ва­ш у не­д ав­н юю ис­т о­р ию; поя­в ит­с я всплы­ваю­щее ок­но Уда ­ле­ние не­д ав­ней ис­то­рии. В вы­па­д аю­щем спи­ске Уда­лить вы­би­ра­ем Все. В Под­роб­но­сти про­став­ля­ем все га­ лоч­ки. За­тем на ­жи­ма­ем кноп­к у Уда­лить сей­час. За­пус­ка­ем Sqlitebrowser и смот­рим со­дер­жи­мое по­ля “url” таб­ли­ цы “moz_place”. Ви­дим, что ре­зуль­тат ана­ло­ги­чен ра­бо­те BleachBit. Ин­фор­ма­ция о по­се­щен­ных стра­ни­цах со­хра­ни­лась в таб­ли­це. Вый­ дем из Sqlitebrowser, что­бы про­ве­рить еще один под­ход. Уда­лим файл place.sqlite вруч­ную. За­пус­тим Firefox, а за­тем за­ кро­ем его. От­кро­ем Sqlitebrowser и вновь про­смот­рим со­дер­жи­мое по­ля “url” таб­ли­цы “moz_place”. Как вид­но, Firefox соз­д ал place. sqlite по умол­ча­нию: он не со­дер­жит ин­фор­ма­ции о web-стра­ни­ цах, ко­то­рые мы по­се­щали ра­нее.

Выводы На при­ме­ре ра­бо­ты с Firefox мы мо­жем ут­вер­ж дать, что BleachBit не впол­не справ­ля­ет­ся с за­яв­лен­ны­ми це­ля­ми. Ес­ли он уда ­ля­ет фай­лы cookies.sqlite и formhistory.sqlite, то с фай­лом places.sqlite в ин­те­ре­сую­щем нас клю­че ни­че­го не про­ис­хо­дит, да ­же ес­ли про­ вес­ти очи­ст­к у для всей груп­пы “Firefox”. Спра­вед­ли­во­сти ра­ди на­ до от­ме­тить, что и встро­ен­ные сред­ст­ва Firefox так­же не очи­ща­ют из places.sqlite по­се­щен­ные стра­ни­цы. По­мо­га­ет толь­ко руч­ное уда­ ле­ние это­го фай­ла — то­гда Firefox при сле­дую­щем за­пус­ке соз­да­ет его вер­сию по умол­ча­нию. |

Ис­точ­ни­ки и до­пол­ни­тель­ные ма­те­риа­лы 1 Анонс пер­во­го пуб­лич­но­го ре­ли­за BleachBit: bleachbit.blogspot.ru/­2008/12/ bleachbits-public-debut.html. 2 Анонс BleachBit вер­сии 0.1.1 в день вы­хо­да пер­вой пуб­лич­ной вер­сии: bleachbit.blogspot.ru/2008/12/bleachbit-bug-fix-version-011‑released.html. 3 Анонс BleachBit вер­сии 0.2.0: bleachbit.blogspot.ru/2008/12/bleachbit020‑released.html. 4С та­тья “BleachBit: Does GNU/Linux need the equivalent of a Windows registry cleaner?”: lwn.net/Articles/313679/. 5С та­тья “Myth: Linux Doesn’t Need a Registry Cleaner” в офи­ци­а ль­ном бло­ге BleachBit: bleachbit.blogspot.ru/2008/12/linux-registry-cleaner-myth.html. 6 Но­вость о дос­т уп­но­сти ре­по­зи­то­ри­ев с deb-па­ке­тов BleachBit для Debian и Ubuntu: bleachbit.blogspot.ru/2009/01/ubuntu-debian-deb-repositories.html. 7 Анонс вы­хо­да BleachBit вер­сии 0.3.0: bleachbit.blogspot.ru/2009/01/localecleaner-030‑released.html. 8 Пред­став­ле­ние го­тов­но­сти BleachBit вер­сии 0.4.0: bleachbit.blogspot. ru/2009/02/bleachbit-040‑cleaner.html. 9 Ста­тья “Cleaner Markup Language” на сай­те bleachbit.blogspot.ru/, поя­вив­шая­ ся пе­ред ре­ли­зом вер­сии 0.4.0: bleachbit.blogspot.ru/2009/02/cleaner-markuplanguage.html; Об­нов­лен­ная ин­фор­ма­ция о CleanerML: bleachbit.sourceforge. net/documentation/cleanerml.

� Анонс BleachBit вер­сии 0.6.3: bleachbit.blogspot.ru/2009/08/bleachbit063‑released.html; Но­вость о тес­ти­ро­ва­нии BleachBit 0.6.4 beta: bleachbit. sourceforge.net/news/test-bleachbit-064‑beta. � Офи­ци­а ль­ный анонс BleachBit 0.7.0: bleachbit.sourceforge.net/news/bleachbit070‑released. � Но­вость, по­свя­щен­ная вы­хо­д у BleachBit 0.8.0: bleachbit.sourceforge.net/news/ bleachbit-080‑released. � Пред­став­ле­ние BleachBit 0.9.0: bleachbit.sourceforge.net/news/bleachbit-090. � Анонс вы­хо­да BleachBit 1.0: bleachbit.sourceforge.net/news/bleachbit-10. � Но­вость, по­свя­щен­ная вы­хо­д у BleachBit 1.8: bleachbit.sourceforge.net/news/ bleachbit-18. � Анонс вы­хо­да Ubuntu 15.10 в спи­ске рас­сыл­ки lists.ubuntu.com: lists.ubuntu.com/archives/ubuntu-announce/2015‑October/000202.html; Пред­став­ле­ние Ubuntu 15.10 на releases.ubuntu.com: releases.ubuntu.com/15.10/; � Ста­тья “Про­фи­ли — Где Firefox хра­нит ва­ши за­к лад­ки, па­ро­ли и дру­гие поль­зо­ва­тель­ские дан­ные” на офи­ци­а ль­ном сай­те ком­па­нии Mozilla: support.mozilla.org/ru/kb/profili-gde-firefox-hranit-vashi-zakladki-i-paroli. � Офи­ци­а ль­ный сайт про­грам­мы Sqlitebrowser: sqlitebrowser.org/; Про­ект Sqlitebrowser на пор­та­ле GitHub: github.com/sqlitebrowser.

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 47


Со­ве­ты мис­те­ра Брау­на

По со­ве­там м-ра Брау­на

Джо­ли­он Бра­ун В сво­бод­ное от кон­суль­та­ций по Linux/DevOps вре­мя Джо­ли­он обуз­ды­ва­ет стар­тап. Его са­мая боль­шая ам­би­ция — най­ти при­чи­ну поль­зо­вать­ся Emacs.

Эзо­те­ри­че­ское сис­тем­ное ад­ми­ни­ст­ри­ро­ва­ние из та­ин­ст­вен­ных за­ко­ул­ков сер­вер­ной.

Сно­ва ме­ло­чи, крош­ка

С

ком­пь­ю­те­ром ме­ня впер­вые по­зна­ ко­ми­ла Бри­тан­ская до­маш­няя ком­ пь­ю­тер­ная ре­во­лю­ция на 8 би­тах на­ча­ла 1908‑х. На Ро­ж ­де­ст­во я вы­пра­ши­вал та­кие книж­ки, как Спра­воч­ник про­грам­ми­ста Commodore 64 [The Commodore 64 Program­ mer’s Reference Guide], и в ито­ге с го­ло­вой по­ гру­зил­ся в ас­семб­лер и на­чал про­бо­вать раз­ ные трю­ки, что­бы уре­зать цикл CPU там или байт па­мя­ти сям ра­ди задачки-де­мо. По­ла­гаю, моя лю­бовь к Unix/Linux от­но­ сит­ся имен­но к тем дням (как и мои неудач­ ные по­пыт­ки по­тан­це­вать на школь­ной дис­ко­те­ке). Я был в вос­тор­ге от идеи неболь­ ших про­грамм, спо­соб­ных со­труд­ни­чать для вы­пол­не­ния слож­ных за­дач, и по­сто­ян­но уду­ мы­вал трю­ки, что­бы сде­лать про­грам­мы эф­ фек ­тив­нее, а ра­бо­т у сис­те­мы — ров­нее.

Мал зо­лот­ник Бы­ло бы пре­уве­ли­че­ни­ем ска­зать, что микро­ сер­ви­сы де­лят ро­до­вую ДНК с sed, awk или grep, од­на­ко сход­ст­во име­ет­ся. Как все­гда, ве­дет­ся не­ма ­ло спо­ров на те­му то­го, яв­ля­ет­ ся ли эта ар­хи­тек ­т ур­ная мо­дель бо­лее эф­ фек ­тив­ной, чем, ска ­жем, мо­но­ли­ты, ко­то­рые она за­ме­ня­ет. (От­вет, ес­ли вам ин­те­ресно, за­ клю­ча­ет­ся в том, что ка­ж ­дый слу­чай при­ме­ не­ния индивидуален, и вы долж­ны рас­смот­ реть и вы­брать ди­зайн, наи­луч­шим об­ра­зом со­от­вет­ст­вую­щий це­лям, ко­то­рых вы хо­ти­те дос­тичь. Не за что.) По опы­т у сис­тем­но­го ад­ ми­ни­ст­ра­то­ра, са­мое при­вле­ка­тель­ное в мик­ ро­сер­ви­сах для ме­ня — то, как они снижа­ют шансы сбоев, и примене­ние мик­ро­сер­ви­сов под­ра­зу­ме­ва­ет мень­ший риск. Но что мне реаль­но симпатично, это час­то свя­зан­ное с ни­ми применение кон­тей­не­ров и же­ла­ние ос­тав­лять мень­ший от­пе­ча­ток. Помоему, пре­крас­но, что, на­при­мер, Alpine Linux (см. стр. 51 вни­зу) за­ме­ща­ет бо­лее тя­же­лые ди­ст­ри­бу­ти­вы ба­зо­вы­ми об­раз­ами. На этой не­де­ле я ус­лы­шал, как двое кол­лег спо­ри­ли о числе сло­ев, ис­поль­зуе­мом но­вым кон­тей­ не­ром. По­хо­же, всё воз­вра­ща­ет­ся. jolyon.brown@gmail.com

48  |  LXF210 Июнь 2016

«Очень же­ст­кий» баг DNS в glibc По­ка не заполучив­шая­бро­ского име­ни ошибка в glibc де­ла­ет уяз­ви­мы­ми мно­гие при­ло­же­ния и уст­рой­ст­ва.

А

д­ми­ни­ст­ра­то­рам Linux — уже в ко­то­рый раз — ра­зо­сла­ли прось­бы о прав­ках, ко­ гда в фев­ра­ле Google об­на­ру ­жил брешь в glibc (опи­сан­ную BBC как «ме­га­баг»). Про­бле­ма (ко­то­рой при­свое­на ссыл­ка CVE-2015‑7547) вы­шла в свет в 2008 г., и она воз­дей­ст­ву­ет на все ре­ли­зы glibc от 2.9 и вы­ше. Про­бле­му об­на­ру ­жи­ла ко­ман­да Google — и вы­ яс­ни­ла, что ко­ман­да glibc уз­на­ла о ней в 2015 г. и что ко­ман­д а из Red Hat по­ти­хонь­к у оце­ни­ва ­ла ущерб па­рал­лель­но их дей­с т­ви­ям. Пе­ре­пол­не­ние бу­фе­ ра, ко­то­рое и ле­жит в серд­це про­бле­мы, соз­да­ет­ся из-за бре­ши в биб­лио­теч­ной функ­ции getaddrinfo(). Зло­у мыш­лен­ник мо­жет до­бить­ся уда ­лен­но­го ис­ пол­не­ния ко­да, соз­дав вре­до­нос­ную на­груз­к у в от­ вет на за­прос DNS кон­тро­ли­руе­мо­го до­ме­на.

> Об­на­ру­жив ошиб­ку в glibc, Google по­всю­ду разо­ сла­ла си­сад­ми­нов для про­ве­де­ния про­це­ду­ры уста­нов­ки за­плат.

www.linuxformat.ru/subscribe

Вы­яс­не­ние, воз­мож­ны ли по­доб­ные ата­ки че­рез кэш DNS, про­дол­жа­ет­ся, но ос­нов­ное бес­по­кой­ст­во ис­сле­до­ва­те­лей вы­зы­ва­ет то, что на средне­ста­ти­ сти­че­­ской сис­те­ме Linux glibc ис­поль­зу­ет­ся в ог­ ром­ном ко­ли­че­­ст­ве про­грамм. Об­су ­ж ­дае­мая струк­ ту­ра яв­ля­ет­ся на­столь­ко клю­че­вой функ­ци­ей для Linux, что уже бы­ло по­ка­за­но, как этот баг при­во­ дит к ошиб­кам сег­мен­та­ции в це­лом ря­де зна­ко­мых ин­с т­ру­мен­тов с от­кры­тым ко­дом (на­при­мер, SSH и sudo). Ос­та­нет­ся мно­го сис­тем (вклю­чая встро­ен­ ные уст­рой­ст­ва), ко­то­рые про­сто не бу­дут за­ла­та­ны и, сле­до­ва­тель­но, ока ­ж ут­ся уяз­ви­мы­ми для этой про­бле­мы. Ко­ман­да Google пред­ло­жи­ла ряд ог­ра­ ни­чи­тель­ных дей­ст­вий для сис­тем, ко­то­рые не мо­ гут быть не­мед ­лен­но ис­прав­ле­ны: на­при­мер, ог­ра­ ни­че­ние объ­е­ма от­ве­та, при­ни­мае­мо­го ло­каль­ным DNS-пре­об­ра­зо­ва­те­лем. Дэн Ка­мин­ски [Dan Kaminsky], ис­с ле­до­ва­тель в об­лас­ти безо­пас­но­сти, про­сла­вив­ший­ся тем, что в 2008 г. он об­на­ру­жил от­рав­ляю­щую DNS-кэш уяз­ ви­мость (по иро­нии, этот но­вый баг поя­вил­ся при­ мер­но то­гда же), на­звал эту про­бле­му «от­мыч­кой не­ве­до­мой си­лы» (http://bit.ly/DanKaminksyGlibc). Ве­ро­ят­но, пол­ное воз­дей­ст­вие этой уяз­ви­мо­сти бу­ дет из­вест­но не ра­нее чем че­рез не­сколь­ких ме­ся­ цев. Тем вре­ме­нем офи­ци­а ль­ным со­ве­том от Linux Format бу­дет при­дер­жи­вать­ся ре­г у­ляр­но­го цик ­ла об­нов­ле­ний и дер­жать все про­цес­сы на сво­ем ме­ сте, что­бы быть в со­стоя­нии бы­ст­ро от­сле­дить по­ доб­ные кри­ти­че­­ски важ­ные про­бле­мы по всей тер­ ри­то­рии Linux.


Со­ве­ты мис­те­ра Брауна

Prometheus: Мо­ни­то­ринг но­во­го поко­ле­ния Нуд­ный при­квел к «Чу­жо­му»? Гре­че­­ский бог, по­да­рив­ший че­ло­ве­че­­ст­ву огонь? Не со­всем: это впе­чат­ляю­щий стек ин­ст­ру­мен­тов и мо­ни­то­рин­га.

М

о­ни­то­ринг. Я мно­го ду­маю о нем. Не мо­г у да­же по­д­ счи­тать, сколь­ко раз за день я слы­шу это сло­во. Не­ма­ лую до­лю то­го вре­ме­ни, ко­гда я бодр­ст­вую, я про­во­ж у со скрип­та­ми и сис­те­ма­ми, чьей един­ст­вен­ной це­лью яв­ля­ет­ся со­ об­ще­ние об ак­тив­но­сти и со­стоя­нии дру­гих сис­тем (вот я это чи­ таю — и сам же ма­лость уст­ра­ша­юсь; долж­но быть, Боль­шой Брат счи­та­ет ме­ня ро­ди­чем). Дол­гое вре­мя мо­ни­то­ринг в Linux для неко­ то­рых из нас вклю­чал не­об­хо­ди­мость ус­та­нов­ки где-то в сре­де поч­ тен­но­го Nagios. Да я и сам пи­сал о Nagios/Check_MK в од­ном из про­ шлых вы­пус­ков [см. Со­ве­ты, стр. 63 LXF197]. Вре­ме­на ме­ня­ют­ся под воз­дей­ст­ви­ем пе­ре­хо­да на бо­лее рас­пре­де­лен­ные сис­тем­ные ар­хи­тек­т у­ры (мик­ро­сер­ви­сы) и ис­поль­зо­ва­ние кон­тей­не­ров. По мо­ ему опы­т у (и мне бы хо­те­лось ус­лы­шать о сце­на­ри­ях, ко­гда кто-то за­ста­вил это ра­бо­тать), Nagios не идеа­лен для сре­ды, где ле­жа­щая в ос­но­ве сер­ви­са ин­фра­струк­т у­ра очень ди­на­мич­на, т. е. где сер­вис со­сто­ит из мно­гих кон­тей­не­ров, ко­то­рые за­пус­ка­ют­ся/ос­та­нав­ли­ ва­ют­ся по тре­бо­ва­нию. Не­со­мнен­но, это от­ра ­жа­ет его на­сле­дие мо­ ни­то­рин­га фи­зи­че­­ских сер­ве­ров. А вот сис ­те­ма Prometheus (http://prometheus.io) раз­ра­бо­т а­на специально для то­го, что­бы от­лич­но справ­лять­ся с этим сце­на­ри­ ем. Про­ект этот вдох­нов­лен, что оче­вид­но, внут­рен­ней сис­те­мой мо­ни­т о­рин­г а Google, Borgmon. Не­ко­т о­рые быв­шие со­т руд­ни­к и Google ста­ли ра­бо­тать на SoundCloud — плат­фор­ме рас­пре­де­ле­ния ау­дио — ко­то­рая пе­ре­хо­дит на ар­хи­тек­т у­ру мик­ро­сер­ви­сов. Их ин­ ст­ру­мен­ты мо­ни­то­рин­га на тот мо­мент (со­че­та­ние StatsD и Graphite) бы­ли не в со­стоя­нии спра­вить­ся с ог­ром­ным ко­ли­че­­ст­вом сер­ви­ сов и эк­зем­п­ля­ров, при­не­сен­ных этим ар­хи­тек­т ур­ным пе­ре­хо­дом. Так поя­ви­лась но­вая по­пыт­ка за­но­во реа ­ли­зо­вать Borgmon, уже на язы­ке Go. К их чес­ти на­до ска­зать, что весь про­ект с са­мо­го на­ча­ ла был с от­кры­тым ко­дом (http://github.com/prometheus), и, не­смот­ ря на то, что о нем не рас­про­стра­ня­лись, при­об­рел по­сле­до­ва­те­лей и уча­ст­ни­ков, осо­бен­но от Docker. В про­шлом го­ду ком­па­ния ре­ши­ ла, что про­ект дос­та­точ­но зре­лый, что­бы за­го­во­рить о нем гром­ко, и по­сле это­го поя­ви­лась се­рия бло­гов. Сей­час это весь­ма здо­ро­вый про­ект с от­кры­тым ко­дом — в нем мно­жество уча­ст­ни­ков, и с до­ стой­ной ско­ро­стью вы­хо­дят сто­рон­ние пла­ги­ны. Ко­гда чи­та­ешь о кон­цеп­ци­ях мо­ни­то­рин­га, мо­г ут всплыть два тер­ми­на — «чер­ный ящик [blackbox]» и «бе­лый ящик [whitebox]». Ба­зо­вые про­в ер­к и Nagios (на­при­м ер, от ­прав­к а пин­г ов на хост,

> Prometheus ищет дан­ные в стан­дарт­ ных мес­тах (та­ких как /metrics). Ис­ поль­зо­ва­ние nodeexporter — удоб­ ный спо­соб за­пи­ сать дан­ные уров­ня сис­те­мы.

что­бы про­ве­рить, что он ра­бо­та­ет) яв­ля­ют­ся при­ме­ром мо­ни­то­рин­ га чер­но­го ящи­ка. Я мо­г у ви­деть, от­ве­ча­ет хост или нет, но эта про­ вер­ка не да­ет мне ни ма ­лей­ше­го пред­став­ле­ния о его внут­рен­нем со­­с тоя­нии. Такие про­вер­ки удоб­ны для оп­ре­де­ле­ния ис­тин­но­го/ лож­но­го взгля­да на мир. Тем не менее, они яв­ля­ют­ся за­паз­ды­ваю­ щим ин­ди­ка­то­ром по­яв­ле­ния про­бле­мы, т.  е. ес­ли они по­яв­ля­ют­ся уже по­сле то­го, как про­бле­ма воз­ник ­ла в ва­шей сис­те­ме.

Мо­ни­то­ринг: чер­ные про­тив бе­лых Мо­ни­то­ринг ме­то­дом бе­ло­го ящи­ка, на­про­тив, це­ли­ком оза­бо­чен под­роб­ной ин­фор­ма­ци­ей о внут­рен­нем со­с тоя­нии. Это на­мно­го луч­шие ин­ди­ка­то­ры про­блем. При­ме­ром мо­жет слу­жить про­цент за­про­сов, ко­то­рые ис­пы­ты­ва­ет кэш где-то в сис­тем­ном сте­ке. То­ гда это мо­жет оз­на­чать, что сред­нее вре­мя на за­прос для ко­неч­ных поль­зо­ва­те­лей воз­рас­та­ет. В сущ­но­сти, нет ни­че­го пло­хо­го в про­ве­де­нии про­ве­рок ме­то­ дом чер­но­го ящи­ка для не­боль­ших, хо­ро­шо по­нят­ных сис­тем, осо­ бен­но в са­мом на­ча­ле, ко­гда всё еще толь­ко ком­пи­ли­ру­ет­ся и надо как мож­но ско­рее рас­ста­вить всё по мес­там. Но по ме­ре то­го, как всё не­из­беж­но ус­лож­ня­ет­ся, про­вер­ки ме­то­дом бе­ло­го ящи­ка ста­ но­вят­ся по­дар­ком судь­бы. Ка­кое от ­но­ше­ние все это име­ет к Prometheus? Так ведь Prometheus яв­ля­ет­с я сис­те­мой управ­ле­ния и мо­ни­то­рин­г а. Фак ­т и­ че­­с ки, сбор дан­н ых «бе ­л о­г о ящи­к а» мож ­н о на ­з вать его из­н а­ чаль­ной функ­ци­ей, т.  е. Prometheus со­би­ра­ет за­ме­ры с за­д ан­ных це ­л ей в ука ­з ан­н ые ин­т ер­в а ­л ы, оце­н и­в а­е т вы­р а ­ж е­н ия пра­в ил,

Что та­кое вре­мен­ные ря­ды и что Prometheus с ни­ми де­ла­ет? Вре­мен­ны´ е ря­ды, за­пи­сы­вае­мые Prometheus, это на­бор то­чек дан­ных, со­б­ран­ных за оп­ре­де­лен­ное вре­мя. В ре­а ль­ном ми­ре — где я по­яв­ля­юсь очень ред­ко — при­ме­ром это­го ти­па дан­ных бу­дет ве­ли­ чина ка­пи­та­ла ком­па­нии, за­ме­ряе­мая еже­час­но в те­ че­ние це­ло­го го­да. В ми­ре Prometheus — где, прав­д у ска­зать, мне го­раз­до ком­форт­нее — это ве­ли­чи­ны (все­гда 64‑бит­ные чис­ла с пла­ваю­щей за­пя­той) с от­мет­ка­ми вре­ме­ни (с точ­но­стью до мил­ли­се­к унд) с при­вя­зан­ны­ми по­ме­чен­ны­ми из­ме­ре­ния­ми.

Хо­ро­ший при­мер для по­ни­ма­ния то­го, что я на­зы­ваю из­ме­ре­ния­ми, при­во­дит SoundCloud. Пред­ставь­те за­про­сы HTTP с по­мо­щью ме­то­да GET для за­про­са ко­неч­ной точ­ки /api/tracks, ко­то­рые в ре­зуль­та­те вы­да­ли код со­стоя­ния 200 HTTP. Prometheus назы­ва­ет вре­мен­ны´ е ря­ды по типу api_http_requests_total{method=»GET”, endpoint=“/api/tracks”, status=“200”} Язык за­про­сов, ис­поль­зуе­мый Prometheus, мо­жет вы­пол­нять раз­ные опе­ра­ции, ис­поль­зуя

www.linuxformat.ru/subscribe

три из­ме­ре­ния. В сле­д ую­щем ме­ся­це я заберусь в эту те­му поглуб­же, од­на­ко для на­ча­ла за­гля­ни­те на http://bit.ly/PrometheusQueryingBasics. Ин­те­ рес­но от­ме­тить, что той же но­та­ци­ей поль­зу­ет­ся OpenTSDB (http://opentsdb.net), ко­то­рая яв­ля­ет­ся пол­но­мас­штаб­ной ба­зой дан­ных вре­мен­ны´ х ря­дов. Есть оп­ре­де­лен­ный ин­те­рес в том, что­бы за­пи­сы­ вать ре­зерв­ные ко­пии дан­ных Prometheus в дол­го­ сроч­ное хра­ни­ли­ще, по­доб­ное это­му, хо­тя «офи­ци­ аль­но» одоб­рен­ной на­строй­ки по­ка нет.

Июнь 2016 LXF210  | 49


Со­ве­ты мис­те­ра Брау­на ото­б ра ­ж а­е т ре ­з уль­т а­т ы и при оп­р е­д е ­л ен­н ых ус ­л о­в и­я х мо­ж ет за­пус­тить пре­ду­пре­ж ­де­ния. Стра­ни­ц а про­ек­та GitHub по­ка­зы­ва­ет его ос­нов­ные функ­ции. Сре­ди них мно­го­мер­ная мо­дель дан­ных (временной ряд, оп­ре­де­ ляе­мый на­зва­ни­ем мет­ри­ки и па­ра­ми ключ/зна­че­ние), гиб­кий язык за­про­сов, не ис­поль­зую­щий рас­пре­де­лен­но­го хра­ни­ли­ща (ка­ж ­дый эк­зем­п­ляр Prometheus ано­ни­мен), сбор дан­ных по мо­де­ли из­вле­че­ ния че­рез HTTP и под­держ­ка на­бо­ра ме­то­дов соз­да­ния гра­фи­ков и ком­пакт­но­го ото­бра­же­ния ин­фор­ма­ции. Це­ли Prometheus мож­но най­ти или по­сред­ст­вом от­кры­тия сер­ви­сов, или, при не­об­хо­ди­мо­ сти, по­сред­ст­вом ста­ти­че­­ской кон­фи­г у­ра­ции.

Эко­си­сте­ма Prometheus Но как же на са­мом де­ле вы­гля­дит эта сис­те­ма? Есть ряд ком­по­ нен­тов: глав­ным яв­ля­ет­ся сам сер­вер Prometheus, ко­то­рый и за­ ни­ма­ет­ся сбо­ром дан­ных вре­мен­ны´ х ря­дов. Он де­ла­ет это че­рез «по­скре­быш­ки [scrapes]», весь­ма по­хо­же на час­то ис­поль­зуе­мый ме­тод счи­ты­ва­ния сай­та по­сред­ст­вом скрип­та. Prometheus рас­счи­ ты­ва­ет на по­лу­че­ние по­ка­за­ний (в ви­де тек­ста) от URL, на ко­то­рые я его на­прав­ляю, и — без вся­ко­го вме­ша­тель­ст­ва — кон­вер­ти­ру­ет их в дан­ные вре­мен­ны´ х ря­дов. Есть ряд раз­ных дос­т уп­ных по­ка­за­ те­лей (см. врез­к у Кли­ент­ские биб­лио­те­ки и экс­пор­те­ры Prometheus, вни­зу), но про­стей­шим при­ме­ром бу­дет счет­чик, т.  е. од­но чи­сло­вое зна­че­ние. Этот счет­чик мо­жет за­пи­сы­вать ко­ли­че­­ст­во сге­не­ри­ро­ ван­ных оши­бок или об­слу­жен­ных за­про­сов. Сер­вер Prometheus хра­нит со­б­ран­ные дан­ные и от­ве­ча­ет на за­ про­сы че­рез PromQL — это встро­ен­ный в не­го функ­цио­наль­ный

Short-lived jobs

PagerDuty

Service Discovery

Pushgateway

* DNS * Kubernetes * Consul * ... * Custom integration

Email

...

Notify Alertmanager

Find targets

Prometheus server Pull metrics

Retrieval

. . . . .

Storage

Push alerts

PromQL Web UI PromDash Grafana

Jobs/Exporters

Prometheus Server

Node

HDD/SSD

API clients

> Эле­мен­ты, ко­то­рые и со­став­ля­ют ус­та­нов­ку Prometheus. Кон­тей­не­ры — са­мый про­стой спо­соб всё под­го­то­вить и за­пус­тить.

язык вы­ра ­же­ний, по­зво­ляю­щий ко­неч­но­му поль­зо­ва­те­лю вы­би­ рать и на­ка­п­ли­вать дан­ные вре­мен­ны´ х ря­дов в ре­а ль­ном вре­ме­ни. Сер­вер мо­жет по­лу­чать эти дан­ные с дру­гих сер­ве­ров Prometheus (и это ста­но­вит­ся ре­а ль­ной про­бле­мой, толь­ко ес­ли сре­да дей­ст­ви­ тель­но обширна), от сто­рон­них экс­пор­те­ров и — при ра­бо­те с па­ке­ та­ми — че­рез мо­дуль под на­зва­ни­ем Pushgateway. Ра­бо­той с пре­ ду­пре­ж ­де­ния­ми за­ни­ма­ет­ся Alertmanager, от­прав­ляя ин­фор­ма­цию на лю­бой ко­неч­ный пункт, ин­те­гра­ция с ко­то­рым мне мо­жет по­на­ до­бить­ся (сю­да мо­жет вхо­дить и Nagios, ес­ли в си­лу не­ких при­чин я дер­ж у его по­бли­зо­с ти). Сер­вер так­же мо­жет об­ра­ба­ты­вать за­ про­сы от раз­ных кли­ен­тов; один из них — Grafana, с ко­то­рым я со­ единю Prometheus (на уро­ке сле­дую­ще­го ме­ся­ца). Про­стей­ший спо­соб за­ста­вить Prometheus ра­бо­тать — ис­поль­ зо­вать Docker. Есть аль­тер­на­тив­ные ме­то­ды ус­та­нов­ки, ко­то­рые мож­но най­ти на https://prometheus.io/docs/introduction/install, ес­ли этот вас по­че­му-ли­бо не уст­ро­ит. Од­на­ко я не ви­ж у при­чин не счи­ тать са­мой луч­шей оп­ци­ей сле­дую­щее: $ touch /tmp/prometheus.yml $ sudo docker run -p 9090:9090 -v /tmp/prometheus.yml:/etc/pro­ metheus/prometheus.yml prom/Prometheus Тогда файл кон­фи­г у­ра­ции /tmp/prometheus.yml разместится в ло­ каль­ном файле в кон­тей­не­ре. По­сле ко­рот­кой за­груз­ки Prometheus бу­дет дос­т у­пен на пор­те 9010 на хос­те, где он у ме­ня за­пу­щен. По­ ка смот­реть осо­бо не на что; ни­че­го ин­те­рес­нее вклад­ки со­стоя­ния. Мож­но бы­ст­ро сге­не­ри­ро­вать зна­че­ния для Prometheus, за­ста­ вив его за­пус­тить node-exporter на том же хос­те, где у ме­ня ра­бо­ та­ет эк­зем­п­ляр Prometheus Docker. От­крыв но­вую вклад­к у/сес­сию, я мо­г у за­пус­тить его с по­мо­щью все­го лишь $ sudo docker run -d -p 9100:9100 prom/node-exporter $ curl http://127.0.0.1:9010 Кон­тей­нер ска­ча­ет­ся, за­пус­тит­ся и нач­нет слу­шать порт 9100 на всех ин­тер­фей­сах. Он бу­дет ра­бо­тать в фо­но­вом ре­жи­ме, по­ зво­ляя мне дать ко­ман­д у curl, ко­то­рая ска­ча­ет стра­ни­ц у /metric. Имен­но эти дан­ные и ищет Prometheus. Node-exporter — удоб­ный при­мер экс­пор­те­ра с на­бо­ром па­ра­мет­ров (в дан­ном при­ме­ре — сис­тем­но­го уров­ня). Ре­зуль­тат ко­ман­ды curl дол­жен по­ка­зать мно­ же­ст­во дан­ных. Пе­рей­д я на дру­г ую свою вклад­к у, я мо­г у на­ж ать Ctrl + c вне кон­тей­не­ра Prometheus, после чего от­ре­д ак­ти­ро­вать файл /tmp/ prometheus.yml сле­дую­щим об­ра­зом: iscrape_configs: - job_name: test scrape_interval: 15s target_groups: - targets: - ‘192.168.56.101:9100’ Ес ­ли вы сле­д уе­те мо­ему из ­ло­же­нию, от ­ре­д ак ­т и­руй ­те IP-ад­ рес в кон­це фай­ла, что­бы он со­от­вет­с т­во­в ал ва­шей ло­к аль­ной

Кли­ент­ские биб­лио­те­ки и экс­пор­те­ры Prometheus Prometheus вся­че­­ски по­ощ­ря­ет до­бав­ле­ние средств кон­тро­ля к сер­ви­сам по­сред­ст­вом ис­поль­зо­ва­ния мно­же­ст­ва дос­т уп­ных кли­ент­ских биб­лио­тек. В див­ ном но­вом ми­ре DevOps ра­бо­та и раз­ра­бот­ка весь­ма тес­но со­труд­ни­ча­ют, ко­неч­но (бу­дем на­де­ять­ся — ес­ли же нет, то бу­д ут про­бле­мы). В ос­нов­ном это ра­бо­та­ет по­сред­ст­вом до­бав­ ле­ния ко­неч­ной точ­ки HTTP, ко­то­рую Prometheus мо­жет счи­тать, как в при­ме­ре, ко­то­рый мы взя­ли в этом ме­ся­це с кон­тей­не­ром Node-exporter. Есть при­ме­ры для не­сколь­ких из «ос­нов­ных» дос­т уп­ ных язы­ков: Go, Java, Python, Ruby... и да­же Bash!

50  |  LXF210 Июнь 2016

По мо­ему опы­т у, ра­бо­тать с ни­ми дос­та­точ­но про­сто. Од­на­ко для сто­рон­них сер­ви­сов, та­ких, как HAProxy, их ис­поль­зо­ва­ние вряд ли воз­мож­но. Но не бой­тесь — сто­рон­ние экс­пор­те­ры то­же есть. Node-exporter — од­на из та­ких про­грамм, но есть и мно­же­ст­во дру­гих (и ка­ж ­дый ме­сяц по­яв­ля­ют­ся но­вые). Эти удоб­ные про­грам­мы при­но­сят ко­неч­ную точ­к у HTTP в раз­ные по­пу­ляр­ные сис­те­мы, ко­то­ рые впо­след­ст­вии мо­жет про­гло­тить Prometheus, по­добно эк­ви­ва ­лен­т у чер­ной ды­ры для дан­ных. Не­ко­то­рые из них весь­ма обыч­ные, на­при­мер, экс­ пор­те­ры Apache, BIND, JMX и HAProxy. Су­ще­ст­ву­ют

www.linuxformat.ru/subscribe

так­же экс­пор­те­ры баз дан­ных для PostgreSQL и MySQL, что­бы их внут­рен­ние опе­ра­ции ото­бра­ жались та­ким же об­ра­зом. Од­на­ко есть и бо­лее эзо­те­ри­че­­ские. Ме­ня осо­бен­но по­ра­до­ва ­ло на ­ли­чие в спи­ске экс­пор­ те­ра Minecraft (по край­ней ме­ре, у ме­ня мо­г ут быть пре­д у­пре­ж ­де­ния о воз­ник­но­ве­нии про­блем во мно­гих сис­те­мах Minecraft мо­их де­тей). По мо­ему опы­т у, эти экс­пор­те­ры мо­г ут очень бы­ст­ро до­ба­ вить по­лез­ные дан­ные в Prometheus — вас да­же нач­нет му­чить во­прос, как же вы рань­ше об­хо­ди­ лись без этих дан­ных.


Со­ве­ты мис­те­ра Брауна на­строй­ке. За­тем я мо­г у пе­ре­за­пус­тить сер­вер Prometheus, за­ново ско­ман­до­вав $ sudo docker run -p 9090:9090 -v /tmp/prometheus.yml:/etc/pro­ metheus/prometheus.yml prom/prometheus

Ра­бо­та и по­еда­ние дан­ных Бла­го­да­ря все­му то­му, что уже бы­ло ска­ча­но, Prometheus дол­жен за­пус­тить­ся пря­мо сра­зу. Те­перь я мо­г у пе­рей­ти на вклад­к у гра­фи­ ков, и дол­жен су­меть вы­брать зна­че­ние, на ко­то­рое на­до по­смот­ реть в вы­па­даю­щим ок­не ря­дом с кноп­кой Execute (ве­ро­ят­но, сто­ ит не­мно­го по­до­ж ­дать, что­бы дать Prometheus вре­мя на об­ра­бот­к у дан­ных). Без осо­бо­го вме­ша­тель­ст­ва с мо­ей сто­ро­ны Prometheus ин­тер­пре­ти­ро­вал все сге­не­ри­ро­ван­ные дан­ные и принялся их со­ хра­нять. Я мо­г у щелк­нуть по гра­фи­к у и, по­ковыряв­шись со вре­

мен­ны´ м диа­па­зо­ном и оп­ция­ми «сте­ка», до­воль­но бы­ст­ро соз­дать гра­фик зна­че­ний. Это про­сто стан­дарт­ные ин­ст­ру­мен­ты гра­фи­че­­ско­­го ото­бра­же­ ния (из­вест­ные как «брау­зер пред­став­ле­ния»), по­став­ляе­мые вме­ сте с сер­ве­ром — но пе­рей­д я ко внеш­ним сис­те­мам, мы смо­жем соз­д а­вать гра­фи­ки, ко­то­рые про­из­ве­д ут на на­чаль­ст­во не­из­гла­ ди­мое впе­чат­ле­ние. Между прочим, на http://prometheus.io/docs/ querying/basics приводится несколько дос­т уп­ных при­ме­ров, свя­ зан­ных с за­про­са­ми, и на них оп­ре­де­лен­но сто­ит взгля­нуть. Это всё ка­салось базовых ос­нов. Че­рез ме­сяц я собираюсь соз­ дать бо­лее об­шир­ную сре­ду, что­бы Prometheus про­вел в ней мо­ни­ то­ринг, и про­демонстрирую, как при­сое­ди­нить к этой среде Grafana и под­к лю­чить Alertmanager к сто­рон­ним сис­те­мам. Удач­но­го вам мо­ни­то­рин­га!

Alpine Linux Соз­дае­те кон­тей­не­ры и ну­ж­дае­тесь в бо­лее лег­ко­вес­ной ба­зе?

П

о­ра сде­лать при­зна­ние. До не­дав­не­го вре­ме­ни я слы­хом не слы­хал об Alpine Linux (http://alpinelinux.org). Он пол­но­ стью ус­кольз­нул от мое­го вни­ма­ния. Од­на­ко кол­ле­ги на­ ча­ли с вос­тор­гом рас­ска­зы­вать мне о его ис­поль­зо­ва­нии в об­раз­а х Docker бла­го­д а­ря его про­стой при­ро­де и, со­от­вет­ст­вен­но, мало­ му раз­ме­ру. За­тем по­сле­до­ва ­ло объ­яв­ле­ние от са­мо­го Docker, что соз­да­тель Alpine, На­та­на­эль Ко­па [Natanael Copa], ра­бо­та­ет у них, и что у них на­чал­ся про­цесс от­ка­за от Ubuntu и перехода на Alpine в их офи­ци­а ль­ных об­раз­а х. Так в чем тут де­ло? Alpine основан на musl libc (http://musl-libc.org) и BusyBox. (Не­у ­же­ли все не­боль­шие ди­ст­ри­бу ­ти­вы ис­поль­зу­ют BusyBox? Уди­ ви­тель­ная про­грам­ма.) Musl (про­из­но­сит­ся «ма­сел») — то­же впе­ чат­ляю­щее дос­ти­же­ние. Это реа ­ли­за­ция libc, ко­то­рая ста­ра­ет­ся быть пра­виль­ной в пла­не со­от­вет­ст­вия стан­дар­там и безо­пас­но­ сти. Сам ди­ст­ри­бу­тив Alpine счи­та­ет­ся удоб­ным для опыт­ных поль­ зо­ва­те­лей, ко­то­рые «це­нят безо­пас­ность, про­сто­т у и эф­фек ­тив­ ность ре­сур­сов». Име­ет­ся ряд воз­мож­но­стей для ска­чи­ва­ния: 64‑бит­ный стан­ дарт­ный ISO за­ни­ма­ет 83 МБ, а рас­ши­рен­ный па­кет —362 МБ. Од­ на­ко кон­тей­нер ис­поль­зу­ет толь­ко 8 МБ, и офи­ци­а ль­ный сайт за­ яв­ля­ет, что пол­ная за­груз­ка на диск зай­мет 130 МБ. Вклю­че­на ку­ча зна­ко­мых па­ке­тов, ко­то­рые, как за­яв­ле­но, «уре­за­ны». Из­на­чаль­ная ус­та­нов­к у на сис­те­му с ус­та­нов­лен­ным SSD, ра­бо­таю­щую в VirtualBox, за­ня­ла у ме­ня все­го не­сколь­ко ми­нут. Ди­ст­ри­бу­тив пред­ла­га­ ет соб­ст­вен­ный ме­нед ­жер па­ке­тов, apk, и ис­поль­зу­ет сис­те­му init под на­зва­ни­ем OpenRC — ни­ка­ко­го systemd! Вре­мя за­груз­ки не­ве­ ро­ят­но ма­ло, что де­ла­ет его от­лич­ным ди­ст­ри­бу­ти­вом для соз­да­ ния не­боль­ших уст­ройств. Что ка­с а­ет­ся безо­пас­но­с ти, ди­с т­ри­бу­тив идет с за­ла­тан­ным ядром grsecurity/Pax (PaX — это рас­ши­ре­ние яд­ра Linux, ко­то­рое реа ­ли­зу­ет за­щи­т у с наи­мень­ши­ми при­ви­ле­гия­ми стра­ниц па­мя­ ти). Все би­нар­ни­ки поль­зо­ва­тель­ской сто­ро­ны ском­пи­ли­ро­ва­ны, по-ви­ди­мо­му, как не­за­ви­си­мые от местопо­ло­же­ния ис­пол­няе­мые фай­лы с за­щи­той от раз­бие­ния сте­ка. Всё это де­ла­ет­ся в на­де­ж ­де из­бе­жать ти­пич­ных атак ну­ле­во­го дня. За­гля­ни­те в wiki Alpine (она на ­хо­дит­ся на http://wiki.alpinelinux.org), ко­то­рая пред ­ла­га­ет до­стой­ ное ко­ли­че­­с т­во ру ­ко­водств для это­го ми­ни-ди­с т­ри­бу ­т и­в а. Все, от на­строй­ки обыч­ных по­доз­ре­вае­мых в пла­не сер­ви­сов до ус­та­ нов­ки ра­бо­че­го сто­ла и сер­ве­ров VPN. Всё это весь­ма впе­чат­ля­ет, и я уве­рен, что вы со мной со­глас­ны. Но Alpine Linux мо­жет де­лать еще и другое, что мне осо­бен­но в нем нра­вит­ся. Нач­ни­те с соз­да­ния Dockerfile с та­ки­ми стро­ка­ми:

FROM gliderlabs/alpine:3.3 RUN apk --no-cache add nginx EXPOSE 80 CMD [“nginx”, “-g”, “daemon off;“] За­тем за­пус­ти­те ко­ман­ды $ sudo docker build -t nginx . $ sudo docker run --name alpine-nginx -p 80:80 nginx Это да­ло мне ра­бо­таю­щий кон­тей­нер Nginx. Од­на­ко са­мое впе­ чат­ляю­щее — это ре­зуль­тат ко­ман­ды images в Docker: $ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest c8bc3ccae4e1 6 seconds ago 6.252 MB На его ус­та­нов­к у и на­ча­ло ра­бо­ты уш­ли в пря­мом смыс­ле се­к ун­ ды с мо­им до­маш­ним ши­ро­ко­по­лос­ным со­еди­не­ни­ем. Это 6 МБ! Для тех, кто во­зит­ся с кон­тей­не­ра­ми в диа­па­зо­не со­тен ме­га­байт, это про­сто от­кро­ве­ние. Тут налицо мас­са пре­иму­ществ. Правда, выдвигается ар­г у­мент, что ис­поль­зо­вать бо­лее круп­ ные и ста­б иль­н ые об­р а ­з ы ди­с т ­р и­бу ­т и­в а в дол­г о­с роч­н ой пер­ спек­ти­ве луч­ше, так как боль­ше ве­ро­ят­ность, что они бу­д ут под­ дер­ж и­в ать­с я, по­л у ­чать об­нов ­ле­ния безо­пас­но­с ти, и т.  д., и это оп­ре­де­лен­но сто­и т при­нять во вни­ма­ние; но на дан­ный мо­мент за Alpine, су­дя по все­му, сто­ит при­лич­ная дви­ж у­щая си­ла — бла­ го­да­ря Docker — и там, где это воз­мож­но, я бу­ду ста­рать­ся его ис­ поль­зо­в ать. И не за­бу­дем, что пе­ре­к лю­че­ние ме­ж ­д у ба­зо­вы­ми об­раз­ами в пря­мом смыс­ле яв­ля­ет­ся всего лишь во­про­сом ре­дак­ ти­ро­ва­ния тек­сто­во­го фай­ла (хо­тя нель­зя сбра­сы­вать со сче­тов по­ втор­ное тес­ти­ро­ва­ние, ко­то­рое под­ра­зу­ме­ва­ет­ся при вне­се­нии из­ ме­не­ний в ба­зо­вый об­раз). Alpine — мой вы­бор об­раза, по край­ней ме­ре, на текущий мо­ мент. Он немало впе­чат­ля­ет ско­ро­стью, безо­пас­но­стью и не­боль­ шим раз­ме­ром. Он так ­же идеа ­лен для се­го­дняш­них ин­фра­струк ­т ур на ос­но­ве мик­ро­кон­тей­не­ров. Так по­че­му бы вам не по­про­бо­вать его и не по­де­лить­ся со мной свои­ми идея­ми? |

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 51



Учебники Наши эксперты помогут вам с любым приложением Linux!

В этом ме­ся­це вы на­у­чи­тесь… ЕВГЕНИЙ БАЛДИН Подтвердивший свою квалификацию физик.

BitKeeper тщит­ ся вер­нуть­ся ...ни­ко­гда и ни­че­го не про­си­те! Ни­ко­гда и ни­че­го, и в осо­бен­но­сти у тех, кто силь­нее вас. Са­ми пред­ло­жат и са­ми всё да­дут! Во­ланд («Мас­тер и Мар­га­ри­та»)

За­пус­кать про­грам­мы ������������������� 54 Дмит­рий Пан­те­леи­чев за­пус­ка­ет с по­мо­щью ути­лит дру­гие про­грам­мы, при­чем вне при­выч­но­го ок­ру ­же­ния.

Ра­бо­тать с фай­ла­ми ������ 58

Собирать NAS ��������������� 60

Ник Пирс раз­г у­ли­ва­ет по фай­ло­вой сис­те­ме, уз­на­вая всю под­но­гот­ную фай­лов и па­пок и ус­ко­ряя на­ви­га­цию го­ря­чи­ми кла­ви­ша­ми.

Алану Кэмпбеллу стало жалко выбра­ сывать морально устаревшие запчасти, и он соорудил из них сетевое храни­ лище. Доплата оказалась недетской...

Обес­пе­чи­вать за­щи­ту ��� 66

Ви­зуа­ли­зи­ро­вать дан­ные ������������������������ 70

К

ом­па­ния BitMover от­кры­ла свой флаг­ман­ский про­дукт BitKeeper под сво­бод­ной ли­ цен­зи­ей Apache 2.0. Но не от хо­ро­ шей жиз­ни, а отто­го, что Git в связ­ ке с Github ти­хой са­пой за­ня­ли весь ры­нок пре­дос­тав­ле­ния ус­луг по сис­ те­мам кон­тро­ля вер­сий. Смот­реть на за­т у­ха­ние про­ек­та сил не ос­та­ лось, и Лар­ри Мак-Вой [Larry McVoy] ре­шил что-то по­ме­нять, да­бы еще по­ба­рах ­тать­ся. А ведь как всё на­чи­на­лось... Пер­ вые со­об­ще­ния о воз­мож­ной па­на­цее от про­блем рас­т у­щей ко­до­вой ба­зы Linux поя­ви­лись аж в 1998 г. Пер­ вый пуб­лич­ный ре­лиз BitKeeper вы­ шел в 2000 г. То­гда же BitMover дал доб­ро на ис­поль­зо­ва­ние сво­его ком­ мер­че­­ско­­го про­дук ­та в не­ко­то­рых сво­бод­ных про­ек­тах, вклю­чая яд­ро Linux; но в 2005 г. за­брал свое доб­ро об­ратно — как обыч­но, «вне­зап­но». По­это­му Ли­нус Тор­вальдс от­ло­жил все де­ла и на­пи­сал но­вую сис­те­му кон­тро­ля вер­сий по име­ни Git. Вна­ча ­ле Git был ма ­лень­ким и хи­лым, но за 11 лет так за­ма­те­ рел, что съел BitKeeper с по­тро­ха­ми. Вот ес­ли бы не жад­ность Лар­ри МакВоя да ес­ли бы ис­ход­ни­ки BitKeeper бы­ли бы от­кры­ты те же 11 лет на­зад, то Github на­зы­вал­ся бы сей­час иначе. А ведь Ри­чард Стол­л­мен пре­ду­пре­ж­ дал, что поль­зо­ва­ние за­кры­тым ин­ ст­ру­мен­том до до­б­ра не до­ве­дет... E.m.Baldin@inp.nsk.su

Ру­лить поль­зо­вателя­ми ������������ 64 Вы-то счита­ли, что ес­ли ПК толь­ко ваш, то и поль­зо­ва­тель на нем толь­ко один? Нейл Бот­вик вас уди­вит: это не так.

Ри­со­вать гра­фи­ки ��������� 74 Не желая по­ки­дать род­ную про­грам­му ма­те­ма­ти­че­­ских рас­че­тов Scilab, Дмит­ рий Цы­май стро­ит гра­фи­ки пря­мо из­нут­ри нее.

Аф­на­на Рех­ма­на при­ве­ла в вос­хи­ще­ние Fedora Security Lab — от­лич­ная кол­лек­ ция ин­ст­ру­мен­тов про­вер­ки безо­пас­ но­сти се­ти.

Вос­кре­шать про­цес­сы ��������������������� 78 Па­вел Емель­я­нов со­хра­ня­ет и вос­ ста­нав­ли­ва­ет про­цес­сы с лег­ко­стью не­обык­но­вен­ной, были бы их об­ра­зы.

Ра­фик Рех­ман ото­бра ­жа­ет Боль­шие Дан­ные, поль­зу­ясь gnuplot. Кра­си­вые кар­тин­ки так убе­ди­тель­ны!

Иг­рать на Python ���������� 80 Ну пус­кай ра­бо­та сна­ча­ла, но по­том-то все-та­ки иг­ра, по­д у­мал Ми­ха­ил Воз­ не­сен­ский — да сам же эту иг­ру и раз­ра­бо­тал.

И новичкам, и гуру! Всегда полезно будет познать нечто доселе неведомое Чув­ст­во язы­ка Rust �������������������������� 84

Swift по­кор­мит ко­та ������������������������� 88

Ми­ха­лис Цу­ка­лос со­всем бы­ло раз­оча­ро­вал­ся в язы­ках про­грам­ми­ро­ва­ния, но, на его сча­стье, изо­бре­ли Rust. Уж те­перь-то вся­кая дрянь не ском­пи­ли­ру­ет­ся!

Ре­а ль­ный про­ект По­ла Хад­со­на по соз­да­нию спи­ска обя­за­тель­ных к вы­пол­не­нию дел про­яв­ля­ет тро­га­тель­ную за­бо­т у о до­маш­них жи­вот­ных.

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 53


Азы сис­те­мы Ос­ваи­ва­ем ути­ли­ты, не­об­хо­ди­ мые вам для пол­но­цен­ной ра­бо­ты на Linux-ПК ЧАСТЬ 7

GNU Core Utilities Дмит­рия Пан­те­леи­че­ва за­ин­те­ре­со­ва­ло, как про­грам­мы ра­бо­та­ют вне при­выч­ного ок­ру­же­ния — с по­мо­щью ути­лит.

У

ти­ли­т ы это­го уро­к а пред­на­зна­че­ны для за­п ус­к а дру­г их про­грамм в ка­ких-ли­бо ус­ло­ви­я х, от­ли­чаю­щих­ся от ре­ аль­ных. Все­го мы рас­смот­рим шесть та­ких ути­лит: env, chroot, nice, nohup, timeout, stdbuf. За­од­но по­зна­ко­мим­ся еще с од­ ной ути­ли­той, sleep — она по­зво­ля­ет при­ос­та­нав­ли­вать вы­пол­не­ ние про­грам­мы.

Наш эксперт Дмит­рий Пан­те­ леи­чев счи­та­ет, что лю­бую тех­но­ ло­гию на­до изу­ чать от про­сто­го к слож­но­му, и ка­ ж­дый шаг за­кре­п­ лять прак­ти­че­­ски­­ ми при­ме­ра­ми.

> Рис. 1. Ре­зуль­тат вы­зо­ва ко­ман­ды env без па­ра­мет­ров. 54  |  LXF210 Июнь 2016

env На про­шлом уро­ке мы встре­ча ­лись с си­т уа­ци­ей, ко­гда на­зва­ние про­грам­мы из coreutils сов­па­да ­ло с на­зва­ни­ем встро­ен­ной ко­ман­ ды Bash. И ре­ша­лась эта си­т уа­ция вы­зо­вом про­грам­мы из coreutils че­рез про­грам­му env. Ее-то мы сей­час и рас­смот­рим под­роб­нее. У ути­ли­ты env три ви­да па­ра­мет­ров: ключ, вы­ра­же­ние при­сваи­ ва­ния и вы­зов про­грам­мы, но все они оп­цио­наль­ные, так что про­ грам­ма мо­жет за­пус­кать­ся во­об­ще без па­ра­мет­ров. Итак... env [option]... [name=value]... [command [args]] Важ­ное ог­ра­ни­че­ние про­грам­мы env со­сто­ит в том, что на ме­ сте па­ра­мет­ра command не мо­жет сто­ять встро­ен­ная ко­ман­да Bash. Здесь долж­но быть толь­ко имя ис­пол­няе­мо­го фай­ла. Вот по­че­му по ко­ман­де env echo вы­зы­ва­ет­ся имен­но ути­ли­та echo из coreutils, а не ко­ман­да Bash. Да­вай­те по­про­бу­ем вы­звать че­рез env ко­ман­ду exit: env exit. И здесь нас ожи­да­ет со­об­ще­ние об ошиб­ке: env: exit: Нет та­ко­го фай­ла или ка­та­ло­га Ес­ли за­пус­тить ко­ман­д у env без па­ра­мет­ров, пе­ред на­ми по­ явит­с я спи­сок всех пе­ре­мен­ных ок­ру ­же­ния с их зна­че­ния­ми — как на рис. 1. Пе­ре­мен­ные ок­ру ­же­ния со­дер­жат ин­фор­ма­цию о поль­зо­ва­те­ ле и на­строй­ках сис­те­мы, и от их зна­че­ния за­ви­сит по­ве­де­ние мно­ гих про­г рамм, ко­то­рым тре­бу­ет­с я ин­фор­ма­ция о поль­зо­ва­те­ле и со­стоя­нии его сис­те­мы. Мы уже встре­ч а ­лись с не­с коль­к и­ми пе­р е­мен­ны­ми ок­ру ­же­ ния (в ча­ст­но­сти, LANG), ко­гда рас­смат­ри­ва ­ли во­про­сы сор­ти­ров­ ки по ал­фа­ви­т у. В дан­ном слу­чае мы мо­жем ви­деть их все. Кста­ ти, что­бы удоб­нее бы­ло их про­смат­ри­вать, да­вай­те рас­по­ло­жим их по ал­фа­ви­т у. Вы ведь пом­ни­те про тех­но­ло­гию кон­вей­е­ра? env | sort Ок­ру­же­ние соз­д а­ет­ся сра­зу при вхо­де поль­зо­ва­те­ля в сис­те­ му, и зна­че­ния всех пе­ре­мен­ных ок­ру ­же­ния за­гру ­жа­ют­ся в па­мять. Зна­че­ния бе­рут­ся из сле­дую­щих фай­лов:

> Рис. 2. Вы­вод справ­ки в те­ку­щем ок­ру­же­нии. » /etc/profile Чи­та­ет­ся при вхо­де в сис­те­му лю­бо­го поль­зо­ва­те­ля. » /etc/bashrc Чи­та­ет­ся при соз­да­нии по­до­бо­лоч­ки [subshell] лю­ бым поль­зо­ва­те­лем. » ~/.bash_profile (в не­ко­то­рых ди­ст­ри­бу­ти­вах — про­сто ~/.profile) Чи­та­ет­ся при вхо­де в сис­те­му те­к у­ще­го поль­зо­ва­те­ля. » ~/.bashrc Чи­та­ет­ся при соз­д а­нии по­до­бо­лоч­ки те­к у­щим поль­ зо­ва­те­лем. В ­об­щем случае, /etc — это ка­та­лог, в ко­то­ром по стан­д ар­т у (FHS, Filesystem Hierarchy Standard — стан­дарт ие­рар­хии фай­ло­ вой сис­те­мы) хра­нят­ся кон­фи­г у­ра­ци­он­ные фай­лы. А под тиль­дой (~) под­ра­зу­ме­ва­ет­ся домашний ка­та ­лог те­к у­щего поль­зо­ва­те­ля. На­при­мер, для ме­ня это /home/dima. Как ви­д и ­те, при соз ­д а­нии под­о­бо­ло­чек (т.  е. но­вых эк­зем­п­ля­ров Bash, вы­зы­вае­мых из те­к у­ ще­го эк­зем­п­ля­ра Bash) имеется воз­мож­ность за­гру­зить зна­че­ния пе­ре­мен­ных ок­ру ­же­ния, от­ли­чаю­щие­ся от зна­че­ний для глав­ной обо­лоч­ки. Но мы от­влек­лись. Да­вай­те что-ни­будь за­пус­тим с по­мо­щью env, из­ме­нив ка­к ую-ни­будь пе­ре­мен­ную ок­ру ­же­ния. Возь­мем, на­ при­мер, вы­зов справ­ки к ути­ли­те echo. Ес­ли мы вы­зо­вем ее в не­из­ ме­нен­ном ок­ру ­же­нии — env echo --help то уви­дим кар­ти­ну, по­доб­ную рис. 2. А те­перь по­ме­ня­ем зна­че­ние пе­ре­мен­ной LANG. Кста­ти, ка­кое у нее зна­че­ние сей­час? Что­бы это уз­нать, не обя­за­тель­но про­смат­ ри­вать весь спи­сок пе­ре­мен­ных. Мож­но вы­вес­ти ее од­ну с по­мо­ щью ко­ман­ды echo, вве­дя ее на­зва­ние с сим­во­лом $. echo $LANG ru_RU.UTF-8 Да­вай­те сно­ва вы­зо­вем справ­к у к echo, по­ме­няв зна­че­ние LANG на fr_FR.UTF-8: env LANG=fr_FR.UTF-8 echo --help Мы уви­дим дру­г ую кар­ти­ну (рис. 3). Весь текст справ­ки те­перь на­ пи­сан по-фран­цуз­ски. (Ес­ли у вас он ока­жет­ся по-анг­лий­ски, зна­ чит, па­кет language-pack-fr в ва­шей сис­те­ме не ус­та­нов­лен.) Ути­ли­та env при­ни­ма­ет три клю­ча: » -0 (--null) вы­во­дит спи­сок всех пе­ре­мен­ных ок­ру ­же­ния, не раз­де­ ляя их сим­во­лом но­вой стро­ки.

www.linuxformat.ru/subscribe


Ба­зо­вые ути­ли­ты GNU Учебник

> Рис. 3. Вы­вод справ­ки с из­ме­нен­ной пе­ре­мен­ной LANG. » -u name (--unset=name) уда ­ля­ет зна­че­ние ка­кой-ли­бо пе­ре­мен­ ной (по­про­буй­те сно­ва вы­звать справ­к у к echo, уда ­лив зна­че­ние пе­ре­мен­ной LANG с по­мо­щью это­го клю­ча). » - (-i, --ignore-environment) ус­та­нав­ли­ва­ет пус­тое ок­ру­же­ние. По­про­бу­ем вы­звать справ­к у к echo, об­ну­лив ок­ру­же­ние: env echo --help. Справ­ка ото­бра­зит­ся на анг­лий­ском язы­ке.

chroot Ути­ли­та chroot за­пус­ка­ет про­грам­му, за­дав ка­кой-ли­бо про­из­воль­ ный ка­та­лог в ка­че­­ст­ве кор­не­во­го. Вы­зы­вать­ся она мо­жет толь­ко от име­ни су­пер­поль­зо­ва­те­ля. По­сколь­к у лю­бая про­грам­ма «зна­ ет», что кор­не­вой ка­та­лог — вер­ши­на фай­ло­вой ие­рар­хии и за его пре­де­ла­ми ни­че­го быть не мо­жет, то это зна­чит, что она не име­ ет дос­т у­па за пре­де­лы кор­не­во­го ка­та­ло­га, на­стоя­ще­го или под­ ме­нен­но­го. Сле­до­ва­тель­но, она ни­как не мо­жет по­вре­дить на­стоя­ щую фай­ло­вую струк­т у­ру. С дру­гой сто­ро­ны, про­грам­ма то­гда не в со­стоя­нии и вос­поль­ зо­вать­ся воз­мож­но­стя­ми, пре­дос­тав­ляе­мы­ми ре­а ль­ной сис­те­мой: фай­ла­ми кон­фи­г у­ра­ции, фай­ла­ми уст­ройств, ди­на­ми­че­­ски­­ми биб­ лио­те­ка­ми, сис­тем­ны­ми ка­та­ло­га­ми. Все это долж­но быть в ми­ни­ маль­ном объ­е­ме пре­дос­тав­ле­но про­грам­ме внут­ри но­во­го кор­не­ во­го ка­та ­ло­га. Та­кая не­об­хо­ди­мость мо­жет воз­ник­нуть в сле­дую­щих слу­ча­ях. » Ко­гда на­до тес­ти­ро­вать не­из­вест­ную про­грам­му, так как есть риск кра ­ха сис­те­мы. » Ко­гда на­до про­ве­рить ра­бо­т у про­грам­мы в «чис­том» ок­ру ­же­нии, без влия­ния по­сто­рон­них биб­лио­тек. » Ко­гда на­до соз­дать ра­бо­чее про­стран­ст­во для уда­лен­но­го поль­ зо­ва­те­ля. » Ко­гда на­до соз­дать ре­зерв­ную ко­пию сис­те­мы на слу­чай ее фа­ таль­но­го по­вре­ж ­де­ния. » Ко­гда бу­де­те со­би­рать всю сис­те­му с ну­ля из ис­ход­но­го ко­да. Са­ мый из­вест­ный та­кой про­ект — LFS (Linux From Scratch). Там как раз для сбор­ки но­вой сис­те­мы ис­поль­зу­ет­ся chroot: ведь при­дет­ ся по­с то­ян­но пе­ре­к лю­чать­ся из ис­ход­ной сис­те­мы в строя­щ ую­ ся. Под­роб­нее об этом про­ек­те мож­но по­смот­реть на сай­те http:// linuxfromscratch.org/. Про­е кт ре­г у­л яр­но об­нов­л я­е т­с я. На сайте мож­но най­ти кни­г у с по­ша­го­вы­ми ин­ст­рук­ция­ми и весь не­об­ходи­ мый ис­ход­ный код в про­тес­ти­ро­ван­ных вер­си­ях. По­про­буй­те! Да­вай­те соз­да­дим фаль­ши­вый кор­не­вой ка­та ­лог и по­мес­тим ту­да две про­грам­мы: Bash и ls. Вой­дя в этот ка­та­лог, как в на­стоя­ щий, мы за­пус­тим Bash, а с ее по­мо­щью за­пус­тим ls.

За ­хо­дим в учет­ную за­пись су­пер­поль­зо­ва­те­ля (su и ввод па­ро­ ля суперпользователя). Пе­ре­хо­дим в до­маш­ний ка­та ­лог су­пер­поль­зо­ва­те­ля с по­мо­щью ко­ман­ды cd без па­ра­мет­ров. Ко­ман­да cd без па­ра­мет­ров по­ме­ща­ ет поль­зо­ва­те­ля в его до­маш­ний ка­та­лог. Про­ве­рим, что мы на­ хо­дим­ся имен­но в нем, с по­мо­щью ко­ман­ды pwd. Ре­зуль­тат дол­ жен быть /root. Соз­да­ем в до­маш­нем ка­та ­ло­ге но­вый ка­та ­лог newroot. Про­ве­ рим, что он соз­дал­ся: mkdir -v newroot Ключ -v, как мы зна­ем, про­сто опо­ве­ща­ет нас о том, что происхо­ дит. Те­перь нам на­до ско­пи­ро­вать в но­вый ка­та­лог файл про­грам­ мы Bash. Но где этот Bash на­хо­дит­ся? Вы­яс­ним это с по­мо­щью про­ грам­мы which. Про­грам­ма which не вхо­дит в па­кет coreutils. Она по­став­ля­ет­ся в ви­де от­дель­но­го па­ке­та, ко­то­рый так и на­зы­ва­ет­ ся which. Функ­ция этой про­грам­мы — най­ти пол­ный путь к ис­пол­ няе­мой про­грам­ме. which bash Ре­зуль­тат дол­жен быть сле­дую­щим: /bin/bash Итак, про­грам­ма Bash на­хо­дит­ся в ка­та­ло­ге /bin. Соз­да­дим та­ кой же ка­та­лог внут­ри newroot — mkdir -v newroot/bin и ско­пи­ру­ем ту­да про­грам­му Bash: cp -v /bin/bash newroot/bin Но про­грам­ма Bash име­ет еще ряд за­ви­си­мо­стей, без ко­то­рых она ра­бо­тать не смо­жет. По­ищем, от ка­ких фай­лов Bash за­ви­сит. Вы­яс­нить это мож­но с по­мо­щью про­грам­мы ldd, ко­то­рая не вхо­дит в coreutils: она содержится в дру­гом па­кете — GNU libc: ldd /bin/bash В ре­зуль­та­те долж­ны быть пе­ре­чис­ле­ны ди­на­ми­че­­ские биб­лио­те­ ки, ко­то­рые Bash ис­поль­зу­ет в ра­бо­те. Эта ин­фор­ма­ция на эк­ра­не вы­гля­дит, как по­ка­за­но на рис. 4. Пер­вая из них — вир­т у­а ль­ная биб­лио­те­ка (Virtual Dynamicallylinked Shared Object). Не бу­дем по­ка уточ­нять, что это та­кое. Она су­ще­ст­ву­ет толь­ко в опе­ра­тив­ной па­мя­ти. Ос­таль­ные, как ви­дим, ре­а ль­но при­сут­ст­ву­ют в ка­та­ло­гах /lib64 и /lib/x86_64‑linux-gnu. В ва­шей сис­те­ме мо­жет быть по-дру­го­му. Да­вай­те соз­да­дим ана­ ло­гич­ные ка­та­ло­ги внут­ри newroot. Вы еще не за­бы­ли про сим­во­ лы под­ста­нов­ки? mkdir -v newroot/{lib64,lib/{,x86_64-linux-gnu}} Те­перь ско­пи­ру­ем не­об­хо­ди­мые ди­на­ми­че­­ские биб­лио­те­ки в эти ка­та ­ло­ги. Вспом­ним, что длин­ную стро­к у мож­но вво­дить, раз­бив на не­сколь­ко строк с по­мо­щью об­рат­но­го слэ­ша. cp -v /lib/x86_64-linux-gnu/\ {libtinfo.so.5,libdl.so.2,libc.so.6} \ newroot/lib/x86_64-linux-gnu И еще од­ну биб­лио­те­к у ко­пи­ру­ем из /lib64: cp -v /lib64/ld-linux-x86-64.so.2 newroot/lib64 Те­перь та­ким же об­ра­зом ко­пи­ру­ем про­грам­му ls. Но вна­ча­ле вы­яс­ним, где она на­хо­дит­ся: which ls /bin/ls Итак, она у нас на­хо­дит­ся то­же в ка­та­ло­ге /bin. Ско­пи­ру­ем ее в но­ вый /bin: cp -v /bin/ls newroot/bin Ко­ман­д а ldd /bin/ls по­ка­жет, ка­кие у этой про­грам­мы за­ви­си­ мо­сти (рис. 5).

Скорая помощь Будь­те очень ос­то­ рож­ны, ко­гда ра­ бо­тае­те от име­ни су­пер­поль­зо­ва­те­ ля. А тем бо­лее, ко­ гда ко­пи­руе­те сис­ тем­ные фай­лы. Вы имее­те слиш­ ком мно­го прав. Од­на не­вер­но вве­ ден­ная ко­ман­ да — и сис­те­ма ста­нет не­ра­бо­то­ спо­собной.

> Рис. 5. За­ви­си­мо­ сти про­грам­мы ls.

> Рис. 4. За­ви­си­мо­сти про­грам­мы Bash.

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 55


Учебник Ба­зо­вые ути­ли­ты GNU > Рис. 6. Се­анс рабо­ты в вир­ту­аль­ ной сис­те­ме.

Кое-что из это­го спи­ска мы уже ско­пи­ро­ва­ли, но че­ты­рех фай­ лов у нас еще нет. Ско­пи­ру­ем их. cp -v /lib/x86_64-linux-gnu/\ {libselinux.so.1,libacl.so.1,libpcre.so.3,libattr.so.1} \ newroot/lib/x86_64-linux-gnu Да, кста­ти, нам ведь на­до в но­вой фай­ло­вой сис­те­ме соз­дать до­маш­ний ка­та ­лог для су­пер­поль­зо­ва­те­ля: mkdir -v newroot/root Те­перь, на­ко­нец, за­пус­ка­ем chroot, при этом ус­та­нав­ли­вая ка­та­ лог newroot кор­не­вым, и в нем за­пус­тим Bash: chroot newroot bash Долж­н о поя­в ить­с я при­г ла­ш е­н ие ви­д а bash-4.3#, и те­п ерь мы мо­жем ору­д о­в ать в фаль­ши­в ой сис ­т е­м е, как в на­с тоя­щ ей. Все встро­ен­ные ко­ман­ды Bash бу­д ут дос­т уп­ны, по­сколь­к у дос­т у­ пен сам Bash. Что­бы убе­дить­ся в этом, вве­дем pwd. В ре­зуль­та­те вы долж­ны уви­деть один слэш  / , по­ка­зы­ваю­щий, что мы на ­хо­дим­ ся в «кор­не». Что­бы по­пасть в до­маш­ний ка­та­лог, вве­дем cd. За­ тем сно­ва вве­дем pwd, что­бы убе­дить­ся, что мы пе­ре­шли в ка­та­лог /root, ко­то­рый пре­ду­смот­ри­тель­но соз­да ­ли. Те­п ерь про­в е­р им, вы­з ы­в а­е т­с я ли про­г рам­м а ls. С ее по­м о­ щью про­смот­рим со­дер­жи­мое кор­не­во­го ка­та ­ло­га. В нем долж­ ны ото­бра­зить­ся толь­ко че­ты­ре эле­мен­та, ко­то­рые мы соз­да­ва­ли: ls /. Из внеш­них ко­манд нам бу­дет дос­т уп­на толь­ко ls, по­сколь­ ку мы ско­пи­ро­ва­ли толь­ко ее. Ес­ли же мы вы­зо­вем ка­к ую-ни­будь дру­г ую при­выч­ную нам про­грам­му, мы по­лу­чим ошиб­к у: нет та­кой. mkdir newdir На рис. 6 по­к а ­з ан весь се­а нс ра­б о­т ы в на­ш ей вир­т у­а ль­н ой сис­те­ме. Вы­ход из chroot’а осу­ще­ст­в­ля­ет­ся ко­ман­дой exit. Вы­ход из ре­жи­ма су­пер­поль­зо­ва­те­ля — то­же exit.

nohup > Рис. 7. Про­грам­ма yes соз­да­ла но­вый про­цесс.

Ути­л и­т а nohup ве­л ит про­г рам­м е иг­н о­р и­р о­в ать сиг­н ал hangup, то есть про­дол­жать ра­бо­тать по­сле вы­хо­да поль­зо­ва­те­ля из сис­те­ мы. Как мы пом­ним, за­пуск кон­со­ли оз­на­ча­ет вход в сис­те­му но­во­ го поль­зо­ва­те­ля (или но­во­го эк­зем­п­ля­ра поль­зо­ва­те­ля). Пом­ни­те,

мы го­во­ри­ли об этом, ко­гда раз­би­ра­ли ути­ли­ты users и who? За­ кры­тие кон­со­ли оз­на­ча­ет вы­ход поль­зо­ва­те­ля из сис­те­мы. Со­от­ вет­ст­вен­но, все про­цес­сы, ко­то­рые он за­пус­тил, бу­дут уби­ты. Да­ вай­те по­смот­рим на это. Сна­ча ­ла за­пус­тим про­грам­му top. С ней мы встре­ча­лись на про­ шлом уро­ке. Она ото­бра ­жа­ет про­цес­сы в по­ряд­ке умень­ше­ния вре­ ме­ни за­груз­ки про­цес­со­ра. top За­тем от­кро­ем вто­рую кон­соль и за­пус­тим в ней про­грам­му yes, а вы­вод ее на­пра­вим в уст­рой­с т­во /dev/null. Про­грам­ма yes, как мы пом­ним, вы­во­дит бес­ко­неч­но од­н у и ту же строч­к у. Вы­ вод лю­бой про­грам­мы мож­но пе­ре­на­пра­вить в лю­бое ме­сто: хоть в файл, хоть в уст­рой­с т­во, хоть в дру­г ую про­г рам­м у. В дан­ном слу­чае мы вы­во­дим его в уст­рой­ст­во /dev/null. Это «пус­тое» уст­ рой­ст­во. Оно не свя­за­но ни с ка­кой ап­па­рат­ной ча­стью, а пред­на­ зна­че­но толь­ко для то­го, что­бы всё, что в не­го вы­во­дит­ся, ис­че­за­ ло бес­след­но. yes > /dev/null Те­перь по­смот­рим на про­грам­му top. На рис. 7 вид­но, что поя­ вил­ся про­цесс, соз­дан­ный про­грам­мой yes. Да­вай­те те­перь за­кро­ем кон­соль, в ко­то­рой ра­бо­та­ет про­грам­ ма yes. Кон­соль за­про­сит под­твер­ж де­ние за­кры­тия и пре­ду­пре­дит, что бу­дут уби­ты все про­цес­сы, ко­то­рые с ней свя­за­ны. Под­твер­дим за­кры­тие. За­тем по­смот­рим на ра­бо­таю­щ ую про­грам­му top. Вид­ но, что строч­ка yes ис­чез­ла. Вы­вод: с за­кры­ти­ем кон­со­ли поль­зо­ва­ тель вы­шел из сис­те­мы, и ос­та­но­ви­лись за­пу­щен­ные им про­цес­сы. Сно­ва от­кро­ем вто­рую кон­соль и за­пус­тим yes че­рез nohup: nohup yes > /dev/null По­смот­рим на top. Вид­но, что про­цесс про­грам­мы yes поя­вил­ ся опять. Те­перь сно­ва за­кро­ем кон­соль с yes и по­смот­рим на про­ грам­му top. На сей раз про­цесс yes про­дол­ж а­ет ра­бо­тать. Ос­та­ но­вить его мы те­перь мо­жем, «убив» про­грам­мой kill. За­пом­ним, ка­кой у это­го про­цес­са PID (у ме­ня — 5163), от­кро­ем но­вую кон­ соль и вы­зо­вем kill. Толь­ко по­сле это­го top по­ка ­жет, что про­цесс ис­чез. env kill 5163

nice Сле­д ую­щ ая ути­ли­т а, nice, за­п ус­к а­е т про­г рам­м у с из­ме­нен­ным свой­ст­вом niceness [англ. доб­ро­та]. Чем вы­ше niceness, тем про­ цесс «до­б­рее», то есть за­ни­ма­ет мень­ше про­цес­сор­но­го вре­ме­ни, ус­т у­пая его дру­гим про­цес­сам. В ок­не про­грам­мы top мы мо­жем уви­деть зна­че­ния это­го свой­ст­ва для ка­ж ­до­го про­цес­са в чет­вер­ том столб­це сле­ва, под за­го­лов­ком NI. Вид­но, что у боль­шин­ст­ва про­цес­сов доб­ро­та рав­на 0, в том чис­ле и у са­мой про­грам­мы top. Сле­д у­ет от­ме­тить, что свой­с т­во niceness — не ука­за­ние пла­ни­ ров­щи­к у за­д ач, а все­го лишь «со­вет». Пла­ни­ров­щик впра­ве его про­иг­но­ри­ро­вать. Ос­та­но­вим про­грам­му top с по­мо­щью кла­ви­ши q и за­пус­тим ее сно­ва че­рез nice: nice top На рис. 8 вид­но, что доб­ро­та про­грам­мы top ста­ла те­перь рав­на 10. Та­ко­во зна­че­ние, за­да­вае­мое про­грам­мой nice по умол­ча­нию. Но с по­мо­щью клю­ча -n (или --adjustment=) мож­но за­дать лю­бое зна­че­ние от -20 до 19. Зна­че­ния ни­же ну­ля мож­но за­да­вать, толь­ ко имея при­ви­ле­гии су­пер­поль­зо­ва­те­ля. Это ог­ра­ни­че­ние свя­за­но с опас­но­стью: про­грам­мы с низ­ким niceness мо­г ут от­би­рать про­ цес­сор­ное вре­мя у важ­ных про­цес­сов. nice -n 5 top

timeout Ути­ли­та timeout на не­ко­то­рое вре­мя за­пус­ка­ет про­грам­му, а по ис­ те­че­нии это­го вре­ме­ни ос­та­нав­ли­ва­ет, по­сы­лая сиг­нал TERM. С по­ мо­щью клю­ча -s (--signal=) мож­но по­слать про­грам­ме дру­гой сиг­ нал, от­ли­чаю­щий­ся от TERM. Но все эти сиг­на­лы про­грам­ма мо­жет 56  |  LXF210 Июнь 2016

www.linuxformat.ru/subscribe


Ба­зо­вые ути­ли­ты GNU Учебник

об­ра­бо­тать и да­же от­к ло­нить. Так что су­ще­ст­ву­ет ве­ро­ят­ность, что по ис­те­че­нии вре­ме­ни, за­дан­ном в timeout, про­грам­ма бу­дет про­ дол­жать ра­бо­тать. По­это­му предусмотрен ключ -k (--kill-after=). Он по­зво­ля­ет за­дать вре­мя, че­рез ко­то­рое по­сы­ла­ет­ся сиг­нал KILL. Этот сиг­нал от­к ло­нить не­воз­мож­но, и про­грам­ма в лю­бом слу­чае бу­дет уби­та. На­при­мер, за­п ус­т им хо­р о­ш о из­вест­н ую нам про­г рам­м у yes с тем, что­бы она че­рез 5 се­к унд ос­та­но­ви­лась, а ес­ли про­грам­ма по ка­кой-то при­чи­не не по­слу­ша­ет­ся сиг­на­ла TERM, убь­ем ее че­ рез 30 се­к унд: timeout -k 30 5 yes

sleep При­ду­ма­ем еще один при­мер. Нам уже зна­ко­ма ути­ли­та seq, ко­то­ рая вы­во­дит ряд це­лых чи­сел в за­дан­ном диа­па­зо­не. Да­вай­те нач­ нем вы­во­дить ряд чи­сел от од­но­го до ста и ос­та­но­вим вы­вод че­рез 3 се­к ун­ды. Ме­ж ­ду вы­во­да­ми чи­сел бу­дем де­лать пау­зу про­дол­жи­ тель­но­стью в 0,5 се­к ун­ды. Эта пау­за бу­дет вы­зы­вать­ся с по­мо­щью ути­ли­ты sleep, так­же вхо­дя­щей в па­кет coreutils. Она мо­жет при­ни­мать, как це­ло­чис­лен­ ное, так и дроб­ное зна­че­ние. Ес­ли зна­че­ние ука­за­но без суф­фик­ са, зна­чит, вре­мя за­да­но в се­к ун­дах. Воз­мож­но так­же ука­зы­вать суф­фик­сы, обо­зна­чаю­щие единицы вре­мени: s (се­к ун­ды), m (ми­ ну ­ты), h (ча­сы), d (дни). Что­бы вста­вить sleep ме­ж ­д у строч­к а­ми вы­во­д а про­г рам­мы, вос­п оль­з у­е м­с я кон­с т­р ук­ц и­е й for язы­к а Bash. Соз ­д а ­д им файл скрип­та Bash. Об­ра­ти­те вни­ма­ние, что мы эк­ра­ни­ру­ем сим­вол $. В про­тив­ном слу­чае, ин­ст­рук­ция в скоб­ках вы­пол­нит­ся, и в файл, вме­сто ко­ман­ды seq, бу­дет за­пи­сан ре­а ль­ный ряд чи­сел. cat > sequence.sh << EOF #!/bin/bash for i in \$(seq 1 100); do echo \$i; sleep 0.5s; done EOF Те­перь нуж­но дать са­мо­му се­бе (то есть те­к у­ще­му поль­зо­ва­те­ лю) пра­во за­пус­кать этот скрипт: chmod u=rwx ./sequence.sh На­ко­нец, за­пус­ка­ем его че­рез timeout. На эк­ран долж­ны быть вы­в е­д е­н ы циф­р ы от 1 до 6, по­с ле че­г о вы­п ол­н е­н ие долж­н о ос­та­но­вить­ся. timeout 3 ./sequence.sh

stdbuf За­д а­ча ути­ли­ты stdbuf — из­ме­нить раз­мер бу­фе­ра стан­д арт­ных по­то­ков. Стан­д арт­ных по­то­ков, как нам уже из­вест­но, все­го три: это стан­дарт­ный ввод (stdin), стан­дарт­ный вы­вод (stdout) и стан­ дарт­ный вы­вод оши­бок (stderr). Со­от­вет­ст­вен­но, ути­ли­та stdbuf име­ет сле­дую­щие клю­чи: » -i ука­зы­ва­ет бу­фе­ри­за­цию стан­дарт­но­го вво­да; » -o ука­зы­ва­ет бу­фе­ри­за­цию стан­дарт­но­го вы­во­да; » -e ука­зы­ва­ет бу­фе­ри­за­цию стан­дарт­но­го вы­во­да оши­бок. Зна­че­ния их мо­г ут быть сле­дую­щи­ми: » 0 — бу­фе­ри­за­ции нет; » L — бу­фе­ри­зу­ет­ся ка ­ж ­дая стро­ка; » Це ­л ое чис ­л о с суф­ф ик­с ом или без суф­ф ик­с а — ука ­з ы­в а­е т ве­ли­чи­н у бу­ф е­ри­зуе­м о­г о бло­к а. Суф­ф ик­с ы оп­р е­д е­л я­ю т, в ка­ ких ве­ли­чи­нах за­дан раз­мер: KB (ки­ло­бай­ты), K (ки­би­бай­ты), MB (ме­га­бай­ты), M (ме­би­бай­ты), GB (ги­га­бай­ты), G (ги­би­бай­ты), TB (те­ ра­бай­ты), T (те­би­бай­ты), PB (пе­та­бай­ты), P (пе­би­бай­ты), EB (эк­са­ бай­ты), E (экс­би­бай­ты), ZB (зет ­та­бай­ты), Z (зе­би­бай­ты), YB (йот­та­ бай­ты), Y (йо­би­бай­ты). За­да­ние раз­ме­ра бу­фе­ра в не­ко­то­рых слу­ча­ях по­мо­га­ет ус­ко­ рить ра­б о­т у про­г рамм. Да­в ай­т е по­про­бу­е м смо­д е­ли­р о­в ать та­ кую си ­т уа­ц ию. Сно­в а вос­п оль ­з у­е м­с я зна­ко­м ой нам ути ­л и ­т ой seq. Вы­ве­дем ряд чи­сел от од­но­го до мил­ли­ар­д а (не пу­гай­тесь),

и по­смот­рим, сколь­ко вре­ме­ни у нас зай­мет вы­вод это­го ря­да чи­ сел. Вы­вод бу­дет осу­ще­ст­в­лять­ся, ко­неч­но, не на эк­ран, а в пус­тое уст­рой­ст­во /dev/null. Для вы­чис­ле­ния вре­ме­ни, ко­то­рое от­ня­ло вы­пол­не­ние про­ грам­мы, мы вос­поль­зу­ем­ся встро­ен­ной ко­ман­дой time. Она вы­во­ дит сле­дую­щую ин­фор­ма­цию: » real Вре­мя от на­ча­ла ра­бо­ты про­грам­мы до кон­ц а [elapsed re­ al time]; » user Вре­мя ра­бо­т ы про­цес­с о­ра в ре­ж и­ме поль ­зо­в а­те ­ля [user mode]; » sys Вре­мя ра­бо­ты про­цес­со­ра в ре­жи­ме яд­ра [kernel mode]. Этот ре­зуль­т ат на­прав­ля­ет­с я в стан­д арт­ный вы­вод оши­бок, то есть в стан­дарт­ный по­ток № 2, он же stderr. Об­ра­ти­те на это осо­ бое вни­ма­ние! Но по­сколь­к у stderr по умол­ча­нию вы­во­дит­ся ту­ да же, ку­да и stdout, то есть в кон­соль, ре­зуль­та­ты мы уви­дим в кон­ со­ли, ес­ли не на­пра­вим их в дру­гое ме­сто. Итак, пер­вым де­лом сге­не­ри­ру­ем наш ряд чи­с ел, от­к лю­чив бу­фе­ри­за­цию: time stdbuf -o 0 seq 1 1000000000 > /dev/null real 0m8.728s user 0m6.508s sys 0m2.188s Про­грам­ма вы­пол­ня­лась 8 с по­ло­ви­ной се­к унд. По­про­бу­ем за­ дать по­строч­ную бу­фе­ри­за­цию: time stdbuf -o L seq 1 1000000000 > /dev/null real 0m10.290s user 0m8.044s sys 0m2.248s Ре­зуль­тат по­лу­чил­ся ху­же — 10 се­к унд. По­про­бу­ем те­перь за­ дать раз­мер бло­ка 1 ме­га­байт. На этот раз да­вай­те вы­ве­дем ре­ зуль­тат не на эк­ран, а в файл с име­ем exectime. Как уже бы­ло ска­ за­но вы­ше, ре­зуль­та­ты рас­че­та вре­ме­ни вы­во­дят­ся в по­ток stderr. Для пе­р е­н а­прав­л е­ния по­т о­к а stderr ис­п оль­з у­е т­с я опе­р а­т ор 2> (по­сколь­к у но­мер по­то­ка stderr ра­вен 2). Здесь сле­ду­ет до­ба­вить, что к опе­ра­то­рам пе­ре­на­прав­ле­ния по­то­ков stdin и stdout то­же мож­но до­ба­вить но­мер по­то­ка. То­гда эти опе­ра­то­ры бу­дут вы­гля­ деть, как 0< и 1>. За­пись 2>&1 ука­зы­ва­ет, что по­ток 2 (stderr) дол­ жен вы­во­дить­ся ту­да же, ку­да и 1 (stdout). (time stdbuf -o 1MB seq 1 1000000000 1> /dev/null) 2> exectime От ­к ро­е м файл exectime с по­м о­щ ью ко­м ан­д ы cat exectime и уви­дим, что ре­зуль­тат стал зна­чи­тель­но луч­ше — 6 с по­ло­ви­ ной се­к унд. real 0m6.441s user 0m6.440s sys 0m0.004s По­про­буй­те по­экс­пе­ри­мен­ти­ро­вать с раз­ны­ми раз­ме­ра­ми бу­ фе­ра. И это еще не ко­нец. До сле­дую­ще­го но­ме­ра! |

www.linuxformat.ru/subscribe

> Рис. 8. Про­грам­ма top ста­ла до­б­рее.

Июнь 2016 LXF210  | 57


Тер­ми­нал Дос­туп к ин­фор­ма­ции и на­ви­га­ция по фай­лам и пап­кам

Terminal: Ра­бо­та с фай­ла­ми Ник Пирс за­дал­ся це­лью нау­чить вас ори­ен­ти­ро­вать­ся в фай­ло­вой сис­те­ме и управ­лять фай­ла­ми и пап­ка­ми из лю­би­мо­го Terminal.

Наш экс­перт Ник Пирс го­да­ми из­бе­гал Terminal, а те­перь по­нял, что это уют­ный и безо­ пас­ный уго­лок — все­го-то и на­до бы­ло, что ос­во­ить не­сколь­ко де­сят­ ков ди­ст­ри­бу ­ти­вов за па­ру ме­ся­цев.

> Ес­ли путь к фай­лу со­дер­жит про­бе­лы или дру­гие спец­сим­во­лы, не за­бы­вай­те ис­поль­зо­вать сим­во­лы ’ и \.

Н

а про­ш лом уро­ке мы по ­з на­ко­м и ­л ись с аза­м и ра­б о­т ы с Terminal. Вы­яс­ни­ли, что он ра­бо­та­ет по ана­ло­гии с ва­шей обо­лоч­кой Linux, уз­на­ли об уст­рой­ст­ве ко­манд (ос­нов­ная ко­ман­да -па­ра­метр), плюс, нау­чи­лись управ­лять про­грамм­ны­ми па­ ке­та­ми и ра­бо­тать со справ­кой. На сей раз мы нау­чим­ся ори­ен­ти­ро­ вать­ся в фай­ло­вой сис­те­ме и ра­бо­тать с фай­ла­ми и пап­ка­ми, а за­ од­но уз­на­ем, как поль­зо­вать­ся яр­лы­ка­ми для эко­но­мии вре­ме­ни. При от­кры­тии но­во­го ок­на в Terminal ко­манд­ная стро­ка ав­то­ ма­ти­че­­ски по­ме­ща­ет вас в ва­шу до­маш­нюю пап­к у. Вы мо­же­те убе­ дить­с я в этом с по­мо­щью ко­ман­ды ls, ко­то­рая пе­ре­чис ­ля­ет со­ дер­ж и­мое те­к у ­щ ей пап­к и. В при ­ло­же­нии Terminal име­на па­пок ото­бра ­ж а­ют­с я си­ним, а име­на фай ­лов — бе ­лым, что по­мо­г ает

их раз­г ра­ни­чи­в ать. Ко­ман­д у ls мож ­но ис­поль ­зо­в ать и в дру ­г их це­лях. Для на­ча ­ла, на­бе­ри­те ls -a, что­бы ото­бра­зить все фай­лы, вклю­чая те, что на­чи­на­ют­с я с сим­во­ла точ­к и (.) и, как пра­ви­ло, неви­ди­мы. По­том по­про­буй­те ls --recursive, где --recursive оз­на­ча­ ет, что ото­бра ­жа­ет­ся так ­же со­дер­жи­мое вло­жен­ных па­пок. Же­лая уз­нать о со­дер­жи­мом пап­ки под­роб­нее — пра­ва дос­ ту­па, име­на поль­зо­ва­те­лей и на­зва­ния групп-вла­дель­цев, а так­же раз­мер фай­лов (в бай­тах) и да­т у по­след­не­го из­ме­не­ния, ис­поль­ зуй­те ls -l. Ес­ли вы пред­по­чи­тае­те ви­деть раз­мер фай­ла в ки­ло­бай­ тах, ме­га­бай­тах или да­же ги­га­бай­тах, в за­ви­си­мо­сти от их раз­ме­ ра, до­бавь­те оп­цию -h и ис­поль­зуй­те вме­сто это­го ls -h -l. Функ­ция ls име­ет мно­го дру­гих па­ра­мет­ров, и вы мо­же­те про­смот­реть их все с по­мо­щью --help. На­ви­га­ция по фай­ло­вой сис­те­ме осу­ще­ст­в­ля­ет­ся с по­мо­щью ко­ман­д ы cd — для пе­ре­хо­д а на один уро­вень вниз, к под­пап­ке внут­ри те­к у­ще­го ка­та­ло­га, вве­ди­те cd <под­пап­ка>, за­ме­нив <под­ пап­ка> на имя пап­ки, ку­д а вы хо­ти­те по­лу­чить дос­т уп. Пом­ни­те, что име­на па­пок и фай­лов чув­ст­ви­тель­ны к ре­ги­ст­ру, и ес­ли имя на­чи­на­ет­ся с боль­шой бу­к­вы — на­при­мер, как ва­ша лич­ная пап­ ка Documents — то вве­дя ее имя в ниж­нем ре­ги­ст­ре, на­при­мер, cd documents, вы по­лу­чи­те со­об­ще­ние об ошиб­ке: «та­кой пап­ки не су­ ще­ст­ву­ет». Вы так­же мо­же­те опус­кать­ся сра­зу на не­сколь­ко уров­ ней, ис­поль­зуя сле­д ую­щее вы­ра ­же­ние: cd под­пап­ка/под­пап­ка2.

Ус­ко­ре­ние на­ви­га­ции В предыдущей час­ти мы рас­ска­за­ли о не­ко­то­рых по­лез­ных со­че­та­ни­ях кла­виш для бо­лее бы­ст­ро­ го вво­да ко­манд, а перечисленные ниже кла­ви­ши по­мо­г ут вам луч­ше ори­ен­ти­ро­вать­ся уже в са­мом Terminal: » Home/End На­жми­те их, что­бы пе­рей­ти к на­ча­лу либо кон­ц у те­к у­щей стро­ки.

58  |  LXF210 Июнь 2016

» Ctrl  + ле­вый/пра­вый кур­сор Для бы­ст­ро­го пе­ре­ме­ ще­ния ме­ж ­д у ар­г у­мен­та­ми. » Ctrl + u Очи­стить всю стро­к у, что­бы на­чать за­но­во. » Ctrl + k Очи­стить все по­сле кур­со­ра. » Ctrl + w Уда ­лить сло­во пе­ред кур­со­ром. За­бы­ли по­ста­вить sudo в на­ча ­ле ко­ман­ды? Про­ сто вве­ди­те sudo!! и на­жми­те Enter, что­бы по­вто­рить

www.linuxformat.ru/subscribe

по­след­нюю ко­ман­д у c sudo. А ес­ли вы сде­ла­ли опе­чат­к у при вво­де ко­ман­ды, ис­поль­зуй­те сле­д ую­ щее вы­ра ­же­ние для ис­прав­ле­ния от­дель­но­го сло­ва, вме­сто то­го, что­бы пе­ре­пе­ча­ты­вать все за­но­во (в сле­д ую­щем при­ме­ре, вме­сто dpkg пер­во­на­чаль­но бы­ла опе­чат­ка dkpg): ^dkpg^dpkg


Тер­ми­нал Учебник

Уз­най­те боль­ше Итак, вы на­чи­нае­те ос­ваи­вать­ся в Terminal — а не рас­ши­рить ли свои зна­ния, за­ста­вив его при ка­ ж ­дом от­кры­тии ото­бра ­жать ин­фор­ма­цию о слу­ чай­ной ко­ман­де? Для это­го на­до от­ре­дак ­ти­ро­вать один файл, так что от­крой­те тер­ми­нал и вве­ди­те следующую ко­ман­д у: nano ~/.bashrc

От­кро­ет­ся файл в тек­сто­вом ре­дак ­то­ре nano. С по­мо­щью кла­виш управ­ле­ния кур­со­ром, про­лис­ тай­те файл до кон­ца, а за­тем до­бавь­те к не­му такую стро­к у: echo “Did you know that:”; whatis $(ls /bin | shuf -n 1) На­жми­те Ctrl + o, что­бы со­хра­нить файл (и про­ сто на­жми­те Enter, тогда файл будет пе­ре­за­пи­сан),

Что­бы вер­нуть­ся к пре­ды­д у­ще­му уров­ню, вос­поль­зуй­тесь cd ..; кро­ме то­го, под­нять­ся на не­сколь­ко уров­ней мож­но с по­мо­щью сим­во­ла /: на­при­мер, cd ../.. зна­чит «на два уров­ня вверх». Ну, а ес­ли вам нуж­но во­об­ще в дру­гое ме­сто? Вос­поль­зуй­тесь cd /, что­бы по­пасть в кор­не­вую ди­рек­то­рию или ку­да угод­но на ва­ шей сис­те­ме, ука­зав точ­ный путь и про­ста­вив впе­ре­ди сим­вол /, что­бы ука­зать, что вы дви­гае­тесь вниз с верх­не­го уров­ня, на­при­ мер: cd /media/username. Сим­вол ~ дей­ст­ву­ет ана ­ло­гич­но /, но при­во­дит в ваш до­маш­ний ка­та­лог. То есть cd ~/Documents — это то же са­мое, что и cd /home/ username/Documents. И по­след­ний трюк: вот вы по­па­ли в дру­гой ка­та­лог, но как бы­ст­ро вер­нуть­ся в пре­ды­ду­щий? Да легко — сто­ ит толь­ко вве­сти cd -.

Ра­бо­та с фай­ла­ми и пап­ка­ми Те­п ерь вы умее­т е по­л у­ч ать спи­с ок ка­т а ­л о­г ов и пе­р е­м е­щ ать­с я по фай­ло­вой сис­те­ме; но как на­счет че­го-ни­будь прак ­ти­че­­ско­­го, на­при­мер, пе­ре­ме­ще­ния и ко­пи­ро­ва­ния фай­лов? Ока­зы­ва­ет­ся, це­ лый ряд ко­манд и трю­ков, ко­то­рые вы уз­на­ли о на­ви­га­ции, при­го­ дит­ся вам и здесь. Нач­нем с рас­смот­ре­ния ко­манд для ко­пи­ро­ва­ния (cp) и пе­ре­ме­ ще­ние (mv) фай­лов и па­пок. Па­ра­мет­ры у этих ко­манд оди­на­ко­вы. Ба­зо­вое вы­ра­же­ние вы­гля­дит как cp/mv <ис­точ­ник> <на­зна­че­ние>. И там, и там, мо­жет быть ука­зан пол­ный путь, как для ко­ман­ды cd, но, как пра­ви­ло, луч­ше сна­ча­ла пе­рей­ти в тот ка­та­лог, где хра­нит­ся файл или пап­ка, ко­то­рые вы хо­ти­те ско­пи­ро­вать или пе­ре­мес­тить. То­гда вы мо­же­те про­сто ука­зать имя фай­ла или пап­ки в ка­че­­ст­ве ис­точ­ни­ка, вот так: cp invoice.odt ~/Documents/Backup. Эта ко­ман­да соз­да­ет ко­пию фай­ла с тем же име­нем. А сле­дую­ щая ко­пи­ру­ет файл в ука­зан­ный ка­та ­лог и за­од­но пе­ре­име­но­вы­ва­ ет его: cp invoice.odt ~/Documents/Backup/invoice-backup.odt. Ес­ли вы хо­ти­те соз­дать ко­пию фай­ла в том же фай­ле, про­сто ис­поль­ зуй­те cp invoice.odt invoice-backup.odt. За­м е­н ив cp на mv в лю­б ой из при­в е­д ен­н ых вы­ш е ко­м анд, вы вы­пол­ни­те пе­ре­ме­ще­ние, пе­ре­ме­ще­ние и пе­ре­име­но­ва­ние или про­с то пе­ре­име­но­в а­ние фай ­ла. А ес ­ли файл с име­нем invoicebackup.odt уже су­ще­ст­ву­ет? По умол­ча­нию он бу­дет пе­ре­за­пи­сан, по­это­му по­за­боть­тесь вклю­чить за­прос на пе­ре­име­но­ва­ние, до­ба­ вив флаг -i, вот так: mv -i invoice.odt invoice-backup.odt. С по­мо­щью ко­манд cp или mv мож­но так­же ко­пи­ро­вать пап­ ки. Здесь не­об­хо­ди­мо до­ба­вить оп­цию ре­к ур­сии, ко­то­рая га­ран­ ти­ру­ет, что пап­ка ко­пи­ру­ет­ся со всем со­дер­жи­мым и ее струк­т у­ ра бу­дет той же, что и у ро­ди­тель­ской пап­ки: cp -r ~/Documents / mnt/sdb1/Backup/. Ес­ли пап­ка Backup су­ще­ст­ву­ет, то пап­ка Documents бу­дут со­хра­ не­на внут­ри нее; ес­ли нет, то пап­ка Backup соз­да­ет­ся, и со­дер­жи­ мое пап­ки Documents ко­пи­ру­ет­ся ту­да. Ко­ман­да rm слу­жит для уда­ле­ния од­но­го фай­ла, на­при­мер, rm invoice.odt. Ко­ман­да rmdir уда­ля­ет пап­ки, но толь­ко пус­тые. Ес­ли вы хо­ти­те уда­лить пап­к у и всё ее со­дер­жи­мое, ис­поль­зуй­те ко­ман­ ду rm -r имя­пап­ки. Кро­ме то­го, мож­но соз­да­вать но­вые пап­ки с по­мо­щью ко­манд mkdir — про­сто вве­ди­те mkdir имя­пап­ки, за­менив имя­пап­ки на имя

а за­тем Ctrl + x для вы­хо­да из nano. Те­перь за­крой­те ок­но тер­ми­на­ла, от­крой­те но­вое окно — и по­лу­чите крат­кое опи­са­ние ко­ман­ды. Чтобы просмотреть бо­лее под­роб­ное описание команды, про­сто вве­ди­те название ко­ман­ды, припи­ сав к нему --help: <ко­ман­да> --help

настоящей пап­ки. Ко­ман­д а touch по­мо­жет соз­д ать пус­той файл: на­при­мер, touch config.sys. Для ус­ко­ре­ния про­цес­с а по­ис­ка час­то ис­поль­зу­ют­ся сим­во­ лы обоб­ще­ния, и они так­же при­ме­ни­мы к ко­ман­д ам фай­лов — звез­доч­к у (*) мож­но ис­поль­зо­вать для бы­ст­ро­го дос­т у­па к пап­ке с длин­ным име­нем, на­при­мер, cd Doc*. Это пре­крас­но ра­бо­та­ет, ес­ли есть толь­ко од­на пап­ка, имя ко­то­ рой на­чи­на­ет­ся с Doc, но ес­ли их две (ска­жем, Doctor и Documents), то ко­ман­да от­кро­ет пер­вую из со­от­вет­ст­вую­щих, то есть, в дан­ном слу­чае, Doctor. Что­бы из­бе­жать это­го, ис­поль­зуй­те вме­сто нее cd Doc*ts (ес­ли, ко­неч­но, у вас нет за­од­но и пап­ки Doctorists). Еще бо­лее по­лез­ны для на­ви­га­ции сим­во­лы оди­ноч­ной ка­выч­ ки (’) и об­рат­ной ко­сой чер­ты (\) . От­де­ляй­те оди­ноч­ны­ми ка­выч­ка­ ми име­на фай­лов или пу­тей к фай­лам, ко­то­рые со­дер­жат про­бе­лы, на­при­мер, cd ~\Documents\‘Doctor Who’. При соз­да­нии та­ких па­пок то­же сле­ду­ет ис­поль­зо­вать ка­выч­ки: на­при­мер, про­сто на­брав mkdir Doctor Who вы по­лу­чи­те две от­дель­ ные пап­ки с име­на­ми Doctor и Who, по­это­му вве­ди­те mkdir ‘Doctor Who’, что­бы по­лу­чить тре­буе­мую пап­к у. Мож­но так­же ис­поль­зо­вать для это­го сим­вол \: на­при­мер, mkdir Doctor\ Who дей­ст­ву­ет ана­ло­гич­но, по­то­му что сим­вол \ пред­пи­сы­ ва­ет mkdir рас­по­зна­вать сле­дую­щий сим­вол (в дан­ном слу­чае, про­ бел) как «спе­ци­а ль­ный». На­пос­ле­док рас­ска ­жем о не­ко­то­рых по­лез­ных сим­во­лах, по­ зво­ляю­щих за­пус­кать не­сколь­ко ко­манд в од­ной стро­ке. Ар­г у­мент && де­ла­ет имен­но это, и вы мо­же­те, на­при­мер, бы­ст­ро об­но­вить свои ре­по­зи­то­рии и за­од­но все дос­т уп­ное ПО: sudo apt-get update && sudo apt-get upgrade && яв­ля­ет­ся ана­ло­гом оператора AND, в том пла­не, что вто­ рая ко­ман­да бу­дет вы­пол­нять­ся толь­ко в слу­чае ус­пеш­но­го за­вер­ ше­ния пер­вой. Ес­ли вы хо­ти­те, что­бы вто­рая вы­пол­ня­лась толь­ ко при не­уда­че пер­вой, за­ме­ни­те его на ||. А ес­ли вам на­до, что­бы вто­рая команда вы­пол­ня­лась в лю­бом слу­чае, вме­сто && ис­поль­ зуйте ;, на­при­мер: sudo apt-get update ; sudo apt-get remove appname  |

Скорая помощь Не­ко­то­рые фай­ ло­вые ме­нед ­же­ ры по­зво­ля­ют пра­ вым щелч­ком по пап­ке от­крыть в ней Terminal, но в Nautilus, в Ubuntu, эту оп­ цию при­дет­ся до­ ба­вить вруч­ную. Ус­та­но­ви­те nautilus-openterminal из Software Center, за­тем от­ крой­те ок­но тер­ ми­на ­ла, вве­ди­те nautilus -q и на­ жми­те Enter. То­ гда эта оп­ция поя­вит­ся.

> Ис­поль­зуй­те ls, что­бы поболь­ше уз­нать о фай­лах и пап­ках в те­ку­щей ди­рек­то­рии.

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 59


FreeNAS Со­бе­ри­те де­ше­вый NAS из оказавшихся ненужными зап­ча­стей

FreeNAS: Са­ми стро­им NAS Что де­лать со ста­ры­ми ком­плек­тую­щи­ми, вы­ки­ну­ты­ми по­сле мо­дер­ни­за­ции ПК? Со­брать из них NAS, ко­неч­но. Алекс Кэм­пбелл учит это де­лать. бес­шум­ный ПК, ко­то­рый при­го­дил­ся бы для хра­не­ния и об­слу­жи­ ва­ния фай­лов. Пой­дя ис­кать зап­ча­сти, мы на­ткну­лись на ши­ро­кий вы­бор. Од­ на­ко боль­ш ин­с т ­в о на­ш их ком­п лек ­т ую­щ их — это вы­с о­ко­о к ­т а­ но­вые, ог­н е­д ы­ш а­щ ие про­и з­во­д и­т ель­ные кар­т ы и про­ц ес­с о­ры. А мы хо­те­ли со­брать ма­ло­мощ­ную ма­ши­ну, по­сколь­к у она долж­на ра­бо­тать не­пре­рыв­но. Дру­гой про­бле­мой бы­ло най­ти ком­плек ­т ую­ щие, со­от­вет­ст­вую­щие ре­ко­мен­дуе­мым спе­ци­фи­ка­ци­ям FreeNAS. Мы отыскали ста­рый LGA-1156 Celeron, ко­то­рый на­д ея­лись ис­поль­зо­вать по причине его ульт­ра­низ­ко­го энер­го­по­треб­ле­ния, но од­но­ядер­ный про­цес­сор не удов­ле­тво­ря­ет запросам FreeNAS. И вме­сто не­го мы по­ло­жи­ли глаз на LGA-1150 Pentium G3258. G3258 — бес­кон­ф ликт­ный дву­я дер­ный про­цес­с ор с ра­зум­ ным TDP [рассеянием мощности] в 53 Вт. Это боль­ше, чем бы­ло бы у Celeron, но уж что имеем, то имеем. Мы ус­та­но­ви­ли его на ра­нее не ис­поль­зо­вав­шей­ся пла­те Gigabyte micro-ATX Z97. Ма­те­рин­ская пла­та спра­ви­лась с ус­та­нов­лен­ным про­цес­со­ром, а нам по­нра­вил­ ся факт на­ли­чия разъ­е­мов SATA 3 на 6 Гб/с вме­сто ста­рых SATA 2, ко­то­рые мы получили бы, вос­поль­зовавшись Celeron. Для на­ко­пи ­те ­ля мы взя ­ли че­т ы­ре 6‑ТБ дис­к а Western Digital Black на 7200 об/мин; прав­д а, это не луч­ший ва­ри­а нт для NAS, но у них боль­шая ем­кость, и они по­став­ля­ют­ся с пя­ти­лет­ней га­ран­ ти­ей. Для ОЗУ мы ис­поль­зо­ва­ли 8‑ГБ Corsair XMS 3 DDR3‑1600. Все это раз­мес­ти­ли в ми­ди-тау­эре Fractal Design R4, вы­бран­ном по ха­ рак­те­ри­сти­кам зву­ко­изо­ля­ции, а так­же по­то­му, что он пред­ла­га­ет дос­та­точ­но мес­та для че­ты­рех дис­ков и то­мит­ся в шка­фу.

Наш эксперт Алекс Кэм­п­ белл — член ред­кол­ле­гии брат­ско­го жур­ на ­ла Maximum PC в США, ре­зи­дент Linux и ап­па­рат­ный гу­ру, со­брав­ший боль­ше ПК, чем у не­го бы­ло горя­ чих обе­дов.

П

ри на­пи­са­нии уро­ков о сбор­ке бы­ва­ет за­ман­чи­во воз­вра­ щать­ся к этой те­ме. В на­шем слу­чае (ко­гда пи­шешь для Maximum PC) всё ори­ен­т и­ро­в а­но на иг ­ры, иг ­ры и еще раз иг­ры (на­шу ау­ди­то­рию со­став­ля­ют гей­ме­ры), и на са­мом де­ ле очень ин­те­рес­но по­смот­реть, мо­жет ли Steam OS на ба­зе Debian кон­к у­ри­ро­вать с Windows. В на­стоя­щее вре­мя мы счи­та­ем, что это от­лич­ная кон­цеп­ция, но оп­ти­ми­за­ция драй­ве­ров тя­нет ее вниз, так что пока мы ре­ко­мен­д у­ем двой­ную за­груз­к у. Боль­шая часть де­ нег при сбор­ке, как мы ви­дим, идет на ви­део­кар­ты и про­цес­со­ры. Но не ка­ж ­дый ком­пь­ю­тер дол­жен быть су­пер­кру­тым убой­ным иг­ ро­вым аг­ре­га­том, ис­крив­ляю­щим про­стран­ст­во–вре­мя во­се­мью яд­ра­ми и SLI. Ино­гда нуж­но про­сто где-то хра­нить свое доб­ро. При оче­ред­ном об­нов­ле­нии про­цес­с о­ра ПК час­то тре­бу­е т­с я так ­же но­в ая ма­те­рин­ская пла­т а. По­это­м у про­ще не ос ­т а­нав ­ли­ вать­ся и об­но­вить все ос­нов­ные ком­по­нен­ты. И у вас прак­ти­че­­ски ос­та­ет­ся не­ис­поль­зуе­мый ПК. А ес­ли дать этим ста­рым ком­плек­ тую­щим вто­рую жизнь? FreeNAS — ди­с т­ри­бу ­тив Linux, пред ­ла­ гаю­щий имен­но это. ОС FreeNAS по­строе­на на ба­зе FreeBSD, сво­ бод­ной реа ­ли­за­ции про­грамм­но­го обес­пе­че­ния Unix. Мы при­ня­ли во вни­ма­ние не­ко­то­рые ре­ко­мен­д а­ции FreeNAS, под­би­рая не­ко­ то­рые де­та­ли, ва­ляю­щие­ся в офи­се, что­бы соз­дать ма­ло­мощ­ный

60  |  LXF210 Июнь 2016

Под­роб­но­сти Од­н о де ­л о — со­брать до­м аш­ний фай ­л о­вый сер­в ер из вос­с та­ нов­л ен­ных час­т ей; дру­г ое — сис­т е­м у, оп­т и­ми­зи­р о­в ан­н ую для ра­бо­ты. Что ка­са­ет­ся FreeNAS, при вы­бо­ре наи­луч­ших ком­плек­ тую­щих име­ет ме­сто не­сколь­ко со­об­ра ­же­ний,. Во-пер­вых, сер­ве­ ры — не то же са­мое, что на­столь­ные ком­пь­ю­те­ры. На на­столь­ном ком­пь­ю­те­ре за­пус­тят­ся мно­гие сер­вер­ные при­ло­же­ния, но на сер­ вер­ном обо­ру­до­ва­нии они ра­бо­та­ют луч­ше. В слу­чае FreeNAS иде­ аль­ная сис­те­ма долж­на ис­поль­зо­вать про­цес­сор Xeon, ОЗУ [RAM] ЕСС и же­ст­кие дис­ки клас­са пред­при­ятия. Ес­ли вы пла­ни­руе­те де­ лать на уст­рой­ст­ве NAS мно­го трудоемких вы­чис­ли­тель­ных ра­бот, це­ле­со­об­ра­зен бо­лее мощ­ный про­цес­сор. Мы ос­та­ви­ли ма­лень­кий Pentium, по­сколь­к у не пре­д у­смат­ри­ ва­ли боль­шой на­груз­ки на про­цес­сор. Мы так ­же пред­по­чли низ­ кое энер­го­по­треб­ле­ние про­из­во­ди­тель­но­с ти. Но ес­ли вы хо­ти­те де­лать на NAS мно­го пе­ре­ко­ди­ро­ва­ния и дру­гих опе­ра­ций, ис­поль­ зуй­те бо­лее мощ­ный про­цес­сор. Что ка­са­ет­ся па­мя­ти, в Ин­тер­не­те есть длин­ные дис­к ус­сии о по­тен­ци­а ль­ных опас­но­стях ис­поль­зо­ва­ ния ОЗУ — не ECC. ECC от­ли­ча­ет­ся от не-ECC вы­пол­не­ни­ем са­мо­ кон­тро­ля с до­пол­ни­тель­ным би­том це­ло­ст­но­сти.

www.linuxformat.ru/subscribe


FreeNAS Учебник

Ана­то­мия NAS Па­мять

ОС на USB

Рас­ши­ре­ние PCIe

Оп­ти­че­­ский при­вод

БП

От­се­ки, вез­де от­се­ки

Здесь мы ис­поль­зо­ва­ли 8‑ГБ ОЗУ не-ECC. Для бо­лее тре­бо­ ва­тель­ных биз­нес-при­ло­же­ний FreeNAS ре­ко­мен­д у­ет 16‑ГБ ОЗУ ECC, но в до­маш­нем при­ме­не­ нии 8 ГБ для на­ча­ла не­пло­хо.

Для раз­ме­ще­ния ОС мы ис­поль­зо­ва ­ли USB-бре­лок, но при же­ла­нии вы все­ гда мо­же­те ус­та­но­вить ее на твер­до­ тель­ный на­ко­пи­тель или не­боль­шой же­с т­кий диск. Или ис­поль­зо­вать пус­ тые мес­та в от­се­ке для до­пол­ни­тель­ ных же­с т­ких дис­ков.

От­сут­с т­вие ви­део­кар­ты обед­ ня­ет эту ма­те­рин­скую пла­т у для на­с толь­ных ПК. Это во­все не пло­хо, ведь сло­ты PCIe мож­но ис­поль­зо­вать для до­ пол­ни­тель­ных се­те­вых ин­тер­ фей­сов или под­к лю­че­ний SATA.

Хо­тя вам на са­мом де­ле он не ну­жен, мы все-та­ки ус­та­но­ви­ли пи­шу­щий Blu-ray, ши­ка ра­ди. Это бы­ва­ет удобно, ес­ли вы за ­хо­ти­те сде­лать ре­ зерв­ные ко­пии на оп­ти­че­­ском дис­ке.

Мы ус­та­но­ви­ли мощ­ный БП, это пе­ре­бор, но по­смот­ри­те хо­тя бы на рей­тинг 80Plus Gold за поч­ти 90 % КПД.

Для сис­те­мы NAS ну­жен кор­пус с под­ держ­кой по край­ней ме­ре че­ты­рех от­се­ков, но во­семь бы­ло бы луч­ше, в идеа ­ле — бы­с т­ро­с ъем­ных.

Страх пе­ред ис­поль­зо­ва­ни­ем не-ECC ОЗУ за­к лю­ча­ет­ся в том, что на диск мо­г ут быть за­пи­са­ны пло­хие би­ты, и скра­бы (scrub — про­цесс, со­дер­жа­щий пул ZFS в ис­прав­но­сти) мо­г ут это усу­г у­бить, раз­ру­шив всю фай­ло­вую сис­те­му и при­ве­дя к по­те­ре пу­ла. По су­ ти, есть опас­ность, что ОЗУ не-ECC мо­жет за­ста­вить то, что пред­ на­зна­че­но за­щи­щать ZFS, вы­звать ее па­де­ние. Это­го дос­та­точ­но, что­бы на­пу­гать лю­бо­го, кто счи­тает, что ECC — един­ст­вен­ный воз­ мож­ный ва­ри­ант; но есть немаловаж­ные со­об­ра ­же­ния. Во-пер­вых, ОЗУ ECC сто­ит на­мно­го до­ро­же, чем не-ECC. Во-вто­рых, очень ма­ ло шан­сов, что ваш ма­те­рин­ская пла­та ва­ше­го ком­пь­ю­те­ра под­дер­ жи­ва­ет ECC. В-треть­их, ваш про­цес­сор дол­жен под­дер­жи­вать ECC. Ви­ди­те, ку­да это ве­дет? Мэ­т ью Аренс [Matthew Ahrens], один из со­у ч­ре­ди­те­лей про­ ек­та ZFS (в на­стоя­щее вре­мя он вно­сит свой вклад в код ZFS для Delphix), раз­ве­ял опа­се­ния, что не-ECC при­ве­дет к раз­ру­ше­нию пу­ лов FreeNAS. На фо­ру­ме Ars Technica он зая­вил: «В ZFS нет ни­че­го та­ко­го, что тре­бо­ва ­ло/ре­ко­мен­до­ва ­ло бы ис­поль­зо­вать ECC боль­ ше, чем лю­бая дру­гая фай­ло­вая сис­те­ма». Да­лее он го­во­рит, что ис­поль­зо­ва­ние не-ECC ОЗУ с лю­бой дру­гой фай­ло­вой сис­те­мой (на­при­мер, NTFS, Ext3 и др.) не­сет при­мер­но столь­ко же опас­но­сти унич­то­же­ния, как и не-ECC ОЗУ с ZFS.

Со­би­рая би­ты Раз­ви­вая за­яв­ле­ние Арен­с а, опас­ность по­те­ри пу­ла ZFS ско­рее все­го та­кая же, как по­те­ря дан­ных на на­столь­ном ком­пь­ю­те­ре изза оши­бок опе­р а­т ив­ной па­мя­т и. Эта опас­ность не­зна­чи­т ельна, но дос­та­точ­на, что­бы сде­лать ECC обя­за­тель­ным для кри­ти­че­­ски важ ­ных при ­ло­же­ний. Но ва­ша кол ­лек ­ция DVD не яв ­ля­ет­ся кри­ ти­че­­ски важ­ной (ес­ли толь­ко вы дей­с т­ви­тель­но не мо­же­те жить без Carry on Camping). Для до­м аш­н е­г о поль­зо­в а­ния, ко­гда стои­м ость важ­н а, пре­ красно по­дой­дет ОЗУ не-ECC. Ес­ли на се­те­вом хра­ни­ли­ще вы стро­ ите биз­нес, то стои­мость ОЗУ ECC — это стои­мость под­дер­жа­ния

и функ­цио­ни­ро­ва­ния биз­не­са. Ес­ли по­те­ря дан­ных раз­верз­нет пе­ ред ва­ми адские вра­та, ве­ро­ят­но, сто­ит пре­ду­смот­реть ре­зерв­ное ко­пи­ро­ва­ние. NAS — удоб­ное уст­рой­с т­во. Оно хра­нит ва­ши дан­ные, де­лая их дос­т уп­ны­ми для вас, и ос­во­бо­ж ­да­ет вас от сле­же­ния, хва­та­ет ли вам ги­га­байт сво­бод­но­го мес­та на ва­шем ос­нов­ном уст­рой­с т­ве. Но это не ре­зерв­ное ко­пи­ро­ва­ние, ес­ли это не ре­зерв­ное ко­пи­ро­ ва­ние дру­го­го NAS. И, на­ко­н ец, о же­с т ­к их дис­к ах. Мы ис­п оль ­з о­в а ­л и WD Black от Wesrern Digital, но мно­гие же­с т­кие дис­ки для на­с толь­ных ПК не соз­да­ны для при­ме­не­ния в NAS. Это од­на из при­чин рез­кой кри­ ти­к и 3-ТБ Seagate Barracuda. По­с тав­щ ик об­лач­ных сис­т ем хра­ не­ния дан­ных BackBlaze со­брал ста­ти­с ти­к у и вы­яс­нил, что 3‑ТБ диск Barracuda от­ка­зы­ва­ет ча­ще (на 26,7 %), чем дру­гие ис­поль­ зо­вав­шие­с я при­во­ды. Сред­няя продолжительность жизни 3‑ТБ Barracuda со­став­ляет око­ло 2,5 лет. При этом ока­за­лось, что 3‑ТБ Barracuda име­ет га­ран­тию все­го на два го­да. Кро­ме то­го, Barracuda не пред­на­зна­чен для кор­по­ра­тив­ных сер­ве­ров и при­ло­же­ний для NAS (как и ис­поль­зо­ван­ный на­ми WD Black). И пом­ни­те, у об­лач­но­ го про­вай­де­ра зна­чи­тель­но боль­ше опе­ра­ций вво­да-вы­во­да, чем у до­маш­не­го NAS. Же­с т­к ие дис­к и, ве­ро­я т­но, бу­д ут са­мой до­ро­гой ча­с тью сис­ темы. Ищи­те дис­к и с боль­шой ем­ко­с тью и дли­тель­ным сро­ком службы (хо­ро­ший по­ка­за­тель — га­ран­тий­ный срок). HGST пред­ ла­га­ет от­лич­ные на­деж­ные дис­ки для NAS, но они и сто­ят до­ро­же. Хо­тя стои­мость на­шей сбор­ки пе­ре­ва­ли­ла за от­мет­к у £ 1200, нам по-преж­не­му льстит мысль, что это NAS для ни­щих, раз мы ис­ поль­зо­ва­ли де­та­ли, ва­ляв­шие­ся в уг­лу. Со­блю­дая ос­нов­ные тре­ бо­ва­ния (мно­го­ядер­ный про­цес­сор, 8 ГБ опе­ра­тив­ной па­мя­ти, см. www.freenas.org/hardware-requirements), мож ­но по­с тро­и ть уст­ рой­ст­во FreeNAS из лю­бых ком­плек­т ую­щих, ко­то­рые уда­ст­ся раз­ до­быть. Пе­ре­вер­ни­те стра­ни­ц у и дай­те ста­рым ком­плек ­т ую­щим но­вую жизнь.

»»Подпишитесь на печатную или электронную версии на www.linuxformat.ru/subscribe! www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 61


Учебник FreeNAS По­строй­те свое NAS

1 Тол­ко­вый ап­па­рат

2 На­ко­пи­те­ли

3 Са­мый ми­ни­мум

4 Ка­бе­ли

5 Как нинд­зя

6 Один ключ управ­ля­ет всем

По­сколь­к у мы ис­поль­зо­ва­ли ма­лень­кий дву­ядер­ный Pentium, а раз­гон не пла­ни­ро­вал­ся, имею­щие­ся ра­ диа­тор и вен­ти­ля­тор впол­не по­до­шли. Ма­лая вы­сота вен­ти­ля­то­ра улуч­ша­ет воз­душ­ный по­ток внут­ри кор­ пу­са. Для до­маш­не­го уст­рой­ст­ва впол­не сго­дят­ся ста­ рые про­цес­со­ры i3 или i5. Для пла­ты AMD сра­бо­та­ют про­цес­со­ры FX или APU се­рии A, хо­тя FreeNAS ре­ко­ мен­ду­ет Intel. Ис­поль­зуя AMD, про­сто по­ста­рай­тесь взять про­цес­сор или APU с наи­низ­шим TDP, по­сколь­к у уст­рой­ст­во бу­дет вклю­че­но и днем, и но­чью. Вряд ли за­груз­ка про­цес­со­ра бу­дет мак­си­маль­ной, так что и энер­го­по­треб­ле­ние бу­дет со­став­лять не­боль­шой про­цент от мак­си­маль­но­го. DIMM — Corsair XMS3 DDR3‑1333. У нас был на­бор на 6 ГБ (три ли­ней­ки по 2 ГБ), так что мы на­шли еще од­ну, до­б­рав до 8 ГБ.

Од­но из пре­иму­ществ сбор­ки до­маш­не­го NAS — то, что с ка­бе­ля­ми будет упра­влять­ся го­раз­до про­ ще, чем в бо­лее слож­ных сис­те­мах. Естественно, ес­ли вы ис­поль­зу­ете мо­дуль­ный блок пи­та­ния. Ес­ли это действительно так, то со­бе­ри­те ка­бе­ли пи­та­ния PCIe и сло­жи­те их ку­да-ни­будь в ко­роб­к у. Всё, что нас волнова­ло — ка­бе­ли пи­та­ния SATA, ATX и про­ цес­со­ра. Под­к лю­че­ние пи­та­ния SATA — пус­тяч­ ное де­ло, и по здра­во­му рас­су­ж ­де­нию, для мас­си­ва из че­ты­рех дис­ков вам не требуется боль­ше од­но­го (или двух, в за­ви­си­мо­сти от про­из­во­ди­те­ля) ка­бе­ля. В на­шем конкретном слу­чае, мы ус­та­но­ви­ли при­вод Blu-ray и под­к лю­чи­ли к не­му ка­бель пи­та­ния SATA. Дру­гой наш ка­бель SATA обладал че­ты­рьмя разъ­ емами, ко­то­рых бы­ло дос­та­точ­но для пи­та­ния че­ты­ рех WD Black.

62  |  LXF210 Июнь 2016

Ес­ли у NAS и есть су­ще­ст­вен­ная осо­бен­ность, то это же­ст­кие дис­ки боль­шой ем­ко­сти. Мы взя­ли че­ты­ре 6‑ТБ WD Black и ус­та­но­ви­ли их спе­ре­ди, ря­дом с вен­ ти­ля­то­ром для ох­ла­ж ­де­ния. При ис­поль­зо­ва­нии RAID пра­виль­ней при­ме­нять оди­на­ко­вые мо­де­ли и ем­ко­сти. FreeNAS реа­ли­зу­ет RAID с по­мо­щью про­грамм­ного обес­пе­че­ния в ZFS, и рассматривает его как RAIDZ. Что­бы вос­поль­зо­вать­ся пре­иму­ще­ст­ва­ми RAID, нуж­ны как ми­ни­мум два дис­ка для RAID 0 или 1, три для RAID 5 и че­ты­ре для RAID 6 или 10 (или 0  + 1). Имей­те в ви­ду, что RAID — не то же са­мое, что ре­зерв­ное ко­ пи­ро­ва­ние, это про­сто за­щи­та от фи­зи­че­­ско­­го сбоя дис­ка. Бо­лее де­ше­вые дис­ки для на­столь­ных ком­пь­ ю­те­ров на­до ме­нять ча­ще. Еще од­но: FreeNAS не ре­ко­ мен­ду­ет ис­поль­зо­вать ап­па­рат­ный RAID.

Глав­ная при­чи­на, по ко­то­рой мы вы­бра­ли R4 — в том, что он раз­ра­бо­тан с уче­том аку­сти­ки. У ма­ши­ны, пред­ на­зна­чен­ной для по­сто­ян­ной ра­бо­ты, шум мо­жет стать про­бле­мой, осо­бен­но ес­ли вы по­мес­ти­те ее ря­дом со спаль­ней. Вам, мо­жет, и не ме­ша­ет жуж­жа­ние вен­ ти­ля­то­ров, но дру­гие лю­ди, ко­то­рые пы­та­ют­ся уснуть в ва­шем до­ме, со­чтут умень­ше­ние шу­ма глав­ным фак­ тором. Обив­ка внут­ри Fractal Design R4 по­гло­ща­ет зна­ чи­тель­ную до­лю зву­ка; так­же пред­ла­га­ют­ся ва­ри­ан­ты об­ду­ва с верх­ним и бо­ко­вым кре­п­ле­ния­ми для вен­ти­ ля­то­ров. Мы ос­та­но­ви­лись на раз­ме­ще­нии вен­ти­ля­ то­ров спе­ре­ди, что­бы ох ­ла ­ж ­дать дис­ки. От­сут­ст­вие све­то­ди­од­но­го ос­ве­ще­ния кор­пу­са, ко­то­рое про­смат­ ри­ва­ет­ся из кос­мо­са, то­же боль­шой плюс. До­маш­ний NAS дол­жен быть как нинд­зя: не­ви­ди­мым, не­слыш­ ным, но очень эф­фек­тив­ным.

www.linuxformat.ru/subscribe

При по­ис­ке ма­те­рин­ской пла­ты мо­жет показаться за­ ман­чи­вым ис­поль­зо­вать лю­бую, какая попадется. Од­ на­ко тут есть под­вох: ка­к ую бы пла­т у вы ни ис­поль­ зо­ва­ли, предварительно убе­ди­тесь, что она име­ет ви­део­вы­ход. При про­вер­ке зад­ней па­не­ли, об­ра­ти­ те вни­ма­ние на имею­щие­ся разъ­е­мы. Есть ли HDMI? DVI? VGA? Убе­ди­тесь, что они со­от­вет­ст­ву­ют разъ­­ емам ва­ше­го мо­ни­то­ра. Хо­тя для по­все­днев­ной ра­ боты NAS не ну­жен мо­ни­тор, он по­тре­бу­ет­ся для ус­ та­нов­ки ОС. Неподдельно раз­дра­жа­ет, ко­гда вы вро­де всё на­строи­ли — и об­на­ру­жи­ли, что нуж­но най­ти или ку­пить ви­део­адап­тер. На­ли­чие дру­гих разъ­е­мов, та­ ких как eSATA, FireWire (IEEE-1394) и USB 3.0 при­ят­но, но не кри­тично. С ни­ми вы мо­же­те рас­ши­рить NAS или пе­ре­дачу дан­ных.

FreeNAS ре­ко­мен­ду­ет ус­та­но­вить операционную сис­ тему на съем­ный USB-на­ко­пи­тель. Ва­ше­му NAS не тре­ буется по­сто­ян­ный дос­т уп к бы­ст­ро­му SSD; всё бу­дет хра­нить­ся на RAID-мас­си­ве. По­сколь­к у ОС будет ра­ ботать без дис­плея, нет необходимости хра­нить для нее гро­мозд­кие гра­фи­че­­ские ре­сур­сы и биб­лио­те­ ки. Кро­ме то­го, FreeNAS по­зво­ля­ет шиф­ро­вать фай­ ло­вую сис­те­му на же­ст­ких дис­ках. Для рас­шиф­ров­ки фай­лов ОС тре­бу­ет дос­т у­па к фай­лам клю­чей, ко­то­ рые на­до где-то хра­нить. По­ста­вив ОС на USB-флеш­ ку, вы защи­тите мас­сив же­ст­ких дис­ков от несанкцио­ нированного доступа: диски сде­лаются не­чи­тае­мыми, ко­гда бре­лок из­вле­чен. Вто­рая флеш­ка пред­на­зна­чена для ус­та­нов­ки ОС. Ес­ли вы ис­поль­зуе­те USB-диск, а не SSD, флеш­ка с ус­та­но­воч­ны­ми фай­ла­ми не мо­жет быть той, ку­да вы ус­та­нав­ли­вае­те ОС. |



Управ­ле­ние поль­зо­ва­те­ля­ми Учи­тесь кон­тро­ ли­ро­вать поль­зо­ва­те­лей свое­го ди­ст­ри­бу­ти­ва

Поль­зо­ва­те­ли: Ко­гда их мно­го Нейл Бот­вик об­на­ру­жил, что в Сек­рет­ных ма­те­риа­лах го­во­ри­ли прав­ду: мы не од­ни, по край­ней ме­ре, ес­ли речь о поль­зо­ва­те­лях на ди­ст­ри­бу­ти­ве Linux.

Наш экс­перт У Ней­ла Бот­ви­ка мо­ре опы­та по час­ ти за­груз­ки, ведь у не­го в ка­ж ­дой ком­на­те по ком­пь­ ю­те­ру, а вот в пе­ ре­за­груз­ке, по­сле пе­ре­хо­да на Linux, он стал не си­лен.

> Соз­да­ние но­во­го поль­зо­ва­те­ля по­зво­лит вер­нуть­ся к зна­че­ни­ ям по умол­ча­нию, по­мо­жет с от­лад­кой, раз­ре­шит дру­гим ис­поль­ зо­вать ваш ком­пь­ю­тер и на­пом­нит, как убо­го вы­гля­дит ис­ход­ное оформ­ле­ние не­ко­то­рых при­ло­же­ний.

L

inux — мно­го­поль­зо­ва­тель­ская ОС. Ес­ли ва­шим ком­пь­ю­те­ ром поль­зуе­тесь толь­ко вы, то на­вер­ное, ду­мае­те, что вас это не ка­са­ет­ся — а вот и ка­са­ет­ся, как вы вско­ре уз­нае­те. На на­шем уро­ке мы объ­яс­ним, по­че­му это важ­но, как всё это ра­ бо­та­ет и как это ис­поль­зо­вать в сво­их це­лях. В лю­бом на­столь­ном Linux есть по край­ней ме­ре два поль­зо­ва­те­ля: тот, что соз­да­ет­ся во вре­мя ус­та­нов­ки, че­рез ко­то­рый вы вхо­ди­те в сис­те­му, и су­пер­ поль­зо­ва­тель, час­то име­нуе­мый root. В мно­го­поль­зо­ва­тель­ских ОС ис­поль­зу­ет­ся сис­те­ма при­ви­ле­ гий, оп­ре­де­ляю­щих воз­мож­но­с ти ка­ж ­до­го из них. Как пра­ви­ло, обыч­ный поль­зо­ва­тель мо­жет де­лать всё, что угод­но, в пре­де­лах сво­его ка­та­ло­га home, а так­же име­ет дос­т уп к чте­нию боль­шин­ст­ва фай­лов во всей сис­те­ме — ина­че вы не смог­ли бы за­пус­кать про­ грам­мы, что силь­но бы вас ог­ра­ни­чи­ва ­ло. Од­на­ко прав на за­пись или из­ме­не­ние фай­лов за пре­де­ла­ми ва­шей до­маш­ней ди­рек ­то­ рии у вас обыч­но нет: они при­над ­ле­ж ат дру­го­му поль­зо­ва­те­лю. Поль­зо­ва­тель, на ко­то­ро­го эти пра­ви­ла не рас­про­стра­ня­ют­ся, на­ зы­ва­ет­ся су­пер­поль­зо­ва­те­лем (что за­ло­же­но в са­мом на­зва­нии). Это оз­на­ча­ет, что от сво­его ли­ца вы не мо­же­те ус­та­нав­ли­вать про­ грамм­ное обес­пе­че­ние для сис­тем­ных ка­та ­ло­гов; но как же вам то­ гда под­дер­жи­вать сис­те­му в ак­т у­а ль­ном со­стоя­нии и ус­та­нав­ли­ вать но­вое ПО? Де­ла­ет­ся это пу­тем вре´ менной пе­ре­да­чи вам прав су­пер­поль­зо­ва­те­ля. Су­ще­с т­ву­ет два спо­со­ба пре­дос­т ав­ле­ния обыч­но­м у поль­зо­ ва­те­лю ста­т у­с а су­пер­поль­зо­ва­те­ля. В Unix это обыч­но де­ла­ет­ся

64  |  LXF210 Июнь 2016

с по­мо­щью ко­ман­ды su (для пе­ре­к лю­че­ния поль­зо­ва­те­ля). Для это­го на­до по­ста­вить имя поль­зо­ва­те­ля, на ко­то­рый вы хо­ти­те пе­ ре­к лю­чить­ся, в ка­че­­ст­ве ар­г у­мен­та, а ес­ли имя не ука­за­но, вы пе­ ре­к лю­чи­тесь на су­пер­поль­зо­ва­те­ля. При за­пус­ке su в тер­ми­на ­ле ОС спро­сит па­роль поль­зо­ва­те­ля, на ко­то­рый вы пы­т ае­тесь пе­ ре­к лю­чить­ся. Во мно­гих ди­с т­ри­бу ­ти­вах, осо­бен­но про­из­вод­ных от Ubuntu, учет­ная за­пись су­пер­поль­зо­ва­те­ля от­к лю­че­на по умол­ ча­нию, и вы не мо­же­те вой­ти в root с по­мо­щью это­го ме­то­да (хо­тя вско­ре мы по­ка­жем, как это из­ме­нить). Это под­во­дит нас ко вто­ро­ му спо­со­бу: sudo. То­гда от име­ни су­пер­поль­зо­ва­те­ля раз­ре­ша­ет­ся вы­пол­нить толь­ко од­ну ко­ман­ду, на­при­мер, sudo apt-get update и ОС за­пра­ши­ва­ет ваш па­роль, а не па­роль поль­зо­ва­те­ля root. Это мо­жет по­ка­зать­ся ме­нее безо­пас­ным, но с по­мо­щью sudo поль­зо­ ва­те­ли мо­г ут вы­пол­нять ко­ман­ды толь­ко в рам­ках сво­их при­ви­ле­ гий. В боль­шин­ст­ве ди­ст­ри­бу ­ти­вов пер­вый поль­зо­ва­тель, соз­дан­ ный во вре­мя ус­та­нов­ки, мо­жет при­ме­нять sudo для лю­бых ко­манд.

Ис­поль­зо­ва­ние групп Поль­зо­ва­те­ли де­лят­ся на груп­пы: на­при­мер, что­бы иметь пра­во про­слу­ши­вать ау­дио­за­пи­си, вы долж­ны быть чле­ном груп­пы audio (но, как пра­ви­ло, в этой груп­пе и так на­хо­дят­ся все поль­зо­ва­тели). Имен­н о так sudo по­з во­л я­е т пер­в о­м у поль­з о­в а­т е­л ю за­п ус­к ать ко­ман­ды root, и этот поль­зо­ва­тель ста­но­вит­ся чле­ном спе­ци­а ль­ ной груп­пы, ко­то­рая обыч­но на­зы­ва­ет­ся ад­ми­ни­с т­ра­тив­ной или wheel и име­ет пра­во вы­пол­нять с sudo лю­бые дей­ст­вия. Ес­ли у вас есть дру­гой поль­зо­ва­тель, ко­то­ро­му вы так­же хо­ти­те дать пра­ва ад­ми­ни­ст­ра­то­ра, то его нуж­но про­сто до­ба­вить в эту груп­пу. Лег­че все­го сде­лать это с по­мо­щью ко­ман­ды gpasswd, на­при­мер: $ sudo gpasswd --add fred admin

www.linuxformat.ru/subscribe


Управ­ле­ние поль­зо­ва­те­ля­ми Учебник

Уч­ти­те, что ес­ли поль­зо­ва­тель уже во­шел в сис­те­му, то до­бав­ ле­ние не всту­пит в си­лу, по­ка он не пе­ре­за­гру­зит­ся. Да ­же ес­ли у вас од­но­поль­зо­ва­тель­ский ком­пь­ю­тер, бы­ва­ют слу­чаи, ко­гда до­бав­ле­ние дру­го­го поль­зо­ва­те­ля яв­ля­ет­ся по­лез­ ным. На­при­мер, ко­гда про­грамм­ное обес­пе­че­ние да­ет сбой: т.  е. ли­бо вы на­ткнулись на ошиб­к у в программе, ли­бо как-то по­пор­тили кон­фи­г у­ра­цию. Соз­д ав но­во­го поль­зо­ва­те­ля и вой­д я в сис­те­му под его име­нем, вы смо­же­те вос­ста­но­вить на­строй­ки ПО по умол­ ча­нию. Соз­дать поль­зо­ва­те­ля в тер­ми­на­ле лег­ко: $ sudo useradd -m test $ sudo passwd test Ко­ман­д а useradd соз­д а­ет поль­зо­ва­те­ля, а оп­ция -m по­зво­ля­ ет за­од­но соз­дать ему до­маш­ний ка­та­лог. Сле­дую­щая ко­ман­да ус­ та­нав­ли­ва­ет па­роль для поль­зо­ва­те­ля. Те­перь вы мо­же­те вый­ти из ра­бо­че­го сто­ла и вой­ти в сис­те­му как test. Ре­шив, что этот поль­ зо­ва­тель вам боль­ше не ну­жен, вы смо­же­те уда­лить его ко­ман­дой $ sudo userdel -r test Оп­ция -r (вы­ше) ве­лит userdel уда­лить так­же и его ка­та­лог home. Бы­в а­л о ли так, что кто-то из ва­ш их дру­з ей или чле­н ов се­ мьи про­сил­с я пус ­т ить его на ваш ком­пь­ю­тер, что­бы про­ве­рить элек­трон­ную поч­т у или по­г улять в Ин­тер­не­те? Ве­ро­ят­но, вы его и пус­кали, тем са­мым выдав ему дос­т уп ко всем ва­шим фай­лам, элек ­т рон­ной поч­те, со­х ра­нен­ным па­ро­лям и мно­го­м у дру­го­м у, а так­же предоставив воз­мож­ность слу­чай­но что-ни­будь ис­пор­ тить. Го­раз­до безо­пас­нее соз­дать дру­г ую учет­ную за­пись поль­зо­ ва­те­ля и пускать гостей в нее. Это со­хра­нит все ва­ши дан­ные, за­ пу­щен­ные про­грам­мы и от­кры­тые вклад­ки брау­зе­ра, и вы смо­же­те вер­нуть­ся к ним, сно­ва пе­рей­дя к сво­ему поль­зо­ва­те­лю. Та­ким об­ ра­зом вы ог­ра­ди­те и друга, и свою лич­ную жизнь.

Пра­ва и при­ви­ле­гии Ка­ж ­дый файл или ди­рек­то­рия при­над­ле­жат кон­крет­но­му поль­зо­ ва­те­лю и груп­пе и име­ет при­ви­ле­гии, кон­тро­ли­рую­щие, кто и что мо­жет с ни­ми де­лать. По­смот­ри­те на этот вы­вод ls -l: -rw-r--r-- 1 nelz users 1277 Feb 26 12:01 file1 -rw-rw-r-- 1 nelz users 2011 Feb 26 12:01 file2 -rwxr--r-- 1 nelz users 3437 Feb 26 12:01 file3 drwxr-xr-x 1 nelz users 0 Feb 26 12:03 dir1

Здесь три фай­ла и ка­та­лог, все они при­над­ле­жат nelz и груп­пе users. Пер­вый сим­вол в стро­ке ука­зы­ва­ет тип фай­ла, а ка­та­лог по­ ме­чен как d. Сле­д ую­щ ая стро­ка пе­ре­чис­ля­ет пра­ва на их чте­ние, за­пись и вы­пол­не­ние для поль­зо­ва­те­ля, груп­пы и всех ос­таль­ных, со­от­вет­с т­вен­но. Пер­вый файл мо­г ут чи­тать все, но пра­во на за­ пись есть толь­ко у вла­дель­ца. Вто­рой файл дос­т у­пен для за­пи­си всем поль­зо­ва­те­лям в груп­пе. Тре­тий яв­ля­ет­ся ис­пол­няе­мым, так что это про­грам­ма или скрипт, но за­пус­ка­ет­ся толь­ко его вла­дель­ цем. В ка­та ­ло­ге все три на­бо­ра би­тов по­ме­че­ны как ис­пол­няе­мые, но для ка­та­ло­гов это име­ет дру­гое зна­че­ние. Там бит х раз­ре­ша­ет поль­зо­ва­те­лю за­гля­нуть внутрь ка­та­ло­га. В от­но­ше­нии ка­та ­ло­гов, при­ви­ле­гии соз­д а­ют не­ко­то­рую пу­ та­ни­ц у. На­при­мер, уда­ляя файл, вы тем са­мым из­ме­няе­те таб­ли­ цу фай­лов в этом ка­та­ло­ге, так что вам не­об­хо­ди­мо раз­ре­ше­ние на за­пись для ка­та­ло­га, а не для фай­ла. Бу­д у­чи вла­дель­цем ка­ та­ло­га, вы мо­же­те уда­лить да­же файл, при­над­ле­жа­щий root, при том, что вам не раз­ре­ше­но его ни ме­нять, ни да­же чи­тать. При­над ­леж­ность то­чек мон­ти­ро­ва­ния фай­ло­вой сис­те­мы тоже тре­бу­ет про­яс­не­ния. К ним пра­ва дос­т у­па и при­ви­ле­гии при­ме­ня­ ют­ся толь­ко то­гда, ко­гда там ни­че­го не ус­та­нов­ле­но. В про­тив­ном слу­чае точ­ка мон­ти­ро­ва­ния на­с ле­д у­ет ха­рак ­те­ри­с ти­ки кор­не­во­ го ка­та­ло­га фай­ло­вой сис­те­мы, ко­то­рый она со­дер­жит. Это ка­са­ ет­ся фай­ло­вых сис­тем Linux, с тра­ди­ци­он­ным по­ни­ма­ни­ем поль­ зо­ва­те­лей и при­ви­ле­гий. В дру­гих фай­ло­вых сис­те­мах, ти­па NTFS,

Root для Ubuntu Мы упо­мя­ну­ли, что в ди­ст­ри­бу­ти­вах Ubuntu нет учет­ной за­пи­си root. На са­мом де­ле, она есть, но вход ту­да за­пре­щен (изза то­го, что в фай­ле /etc/passwd па­роль ука­зан как *). Од­на­ко вы мо­же­те за­пус­тить лю­бую про­грам­му от име­ни root, ис­поль­ зуя sudo, к ко­то­рой прилагается про­грам­ ма passwd, так что ес­ли вы вы­пол­ни­те

$ sudo passwd и вве­де­те в ответ на за­про­с па­роль, вы смо­же­те впредь с его по­мо­щью по­ лу­чать дос­т уп к учетной записи root. Это воз­мож­но, но тре­бу­ет­ся край­не нечасто, поскольку че­рез sudo за­пус­кать про­ граммы от име­ни root со многих точек зрения пред­поч­ти­тель­нее.

сис­те­ма прав соб­ст­вен­но­сти мо­жет быть иной, а в FAT ее нет во­ об­ще. В этом слу­чае, в яд­ре ис­поль­зу­ет­ся сис­те­ма псев­до­при­над­ леж­но­сти этих то­чек, как пра­ви­ло, за­кре­п­ляю­щая их за поль­зо­ва­ те­лем, их за­дав­шим.

До­пол­ни­тель­ные поль­зо­ва­те­ли За­г ля­н ув в файл /etc/passwd, где ука ­з а­н ы все поль ­з о­в а­т ели, вы уви­ди ­те це ­лый ряд за­пи­сей для поль ­зо­ва­те ­лей, ко­то­рых вы не соз­да­ва ­ли. Мно­гие па­ке­ты соз­да­ют кон­крет­но­го поль­зо­ва­те­ля для за­пус­ка сво­его ПО, в ча­ст­но­сти, для де­мо­нов или ус­луг. Это де­ ла­ет­ся в це­лях безо­пас­но­сти, по­сколь­к у ни од­на про­грам­ма не яв­ ля­ет­ся аб­со­лют­но на­деж­ной, и мо­жет при­нес­ти го­раз­до боль­ше вре­д а, ес­ли ра­бо­та­ет под root; по­это­му для про­грамм час­то вы­ де­ля­ет­ся от­дель­ный поль­зо­ва­тель. От­ли­чить их от «нор­маль­ных» поль­зо­ва­те­лей, как вы и я, мож­но по их UID. Это уни­каль­ный но­мер, ис­поль­зуе­мый для иден­ти­фи­ка­ции ка ­ж ­до­го поль­зо­ва­те­ля. Для обыч­ных UID на­чи­на­ют­ся с 1000, то­гда как для сис­тем­ных он мень­ ше. Не­ко­то­рые ди­ст­ри­бу ­ти­вы ис­поль­зу­ют в ка­че­­ст­ве на­чаль­но­го зна­че­ния 500; на­строй­ки сво­ей сис­те­мы вы мо­же­те уз­нать, най­дя UID_MIN в /etc/login.defs. На са­мом де­ле, поль­зо­ва­тели оп­ре­де­ля­ют­с я имен­но по UID, а име­на — это толь­ко яр­лы­ки, что­бы нам, про­стым смерт­ным, бы­ ло про­ще их по­нять. Это мо­жет до­воль­но лег­ко под­вес­ти вас, ес­ли вы ско­пи­руе­те фай­лы на съем­ный диск под име­нем од­но­го поль­зо­ ва­те­ля, а за­тем по­пы­тае­тесь по­лу­чить к ним дос­т уп от его же име­ ни на дру­гом ком­пь­ю­те­ре. Ес­ли UID для ва­ших поль­зо­ва­те­лей сов­ па­да­ют, все бу­дет хо­ро­шо, а ес­ли они раз­лич­ны (воз­мож­но, по­то­му, что на вто­ром ком­пь­ю­те­ре поль­зо­ва­те­ли соз­да­ва­лись в дру­гом по­ ряд­ке), у вас мо­г ут быть про­бле­мы с дос­т у­пом. В слу­чае со­мне­ний ис­поль­зуй­те ls -ln t для про­смот­ра спи­ска фай­лов: оп­ция -n ве­лит ls по­ка­зы­вать вме­сто имен чи­сло­вой иден­ти­фи­ка­тор поль­зо­ва­те­ ля и груп­пы. |

> Мы по­ка­за­ли, как управ­лять поль­зо­ ва­те­ля­ми по­сред­ст­ вом ко­манд тер­ми­ на­ла, но в боль­шин­ ст­ве на­столь­ных ок­ру­же­ний для это­го есть гра­фи­ че­ские ме­нед­же­ры.

»»Подпишитесь на печатную или электронную версии на www.linuxformat.ru/subscribe! www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 65


Fedora Security Lab Бе­ри­те ди­ст­ри­бу­тив и его ос­нов­ны­е ин­ст­ру­мен­ты на тест-драйв

Fedora: За­щи­та ра­бо­че­го сто­ла Аф­нан Рех­ман за­ин­те­ре­со­вал­ся, безо­пас­на ли его до­маш­няя сеть. Мо­гут ли ин­ст­ру­мен­ты Fedora ры­цар­ст­вен­но спа­сти си­туа­цию? про­грам­ма мо­жет вам при­го­дить­ся. Мно­же­ст­во пред­ла­гае­мых ею ин­ст­ру­мен­тов по­зво­ля­ют вы­пол­нить тща­тель­ную про­вер­к у безо­ пас­но­сти и се­ти, вос­ста­но­вить па­ро­ли и ди­аг­но­сти­ро­вать про­бле­ мы в изо­ли­ро­ван­ной пе­ре­но­си­мой сре­де. Ди­ст­ри­бу ­тив-lab мож­но за­гру­зить в ви­де фай­ла ISO [см. диск LXF208] и про­жечь на диск или записать на флэш­к у USB. Он ра­ бо­та­ет как live CD (т. е. его мож­но вста­вить в ком­пь­ю­тер и за­гру­ зить­ся в Fedora без ус­та­нов­ки на диск). Это ре­ше­ние пред­ла­га­ет вы­со­к ую пе­ре­но­си­мость, что по­зво­лит ис­поль­зо­вать его од­но­ вре­мен­но на не­сколь­ких уст­рой­ст­вах, тре­бую­щих про­вер­ки безо­ пас­но­сти: на­при­мер, на сер­ве­рах, ра­бо­чих стан­ци­ях, на офис­ных и, ко­­нечно, до­маш­них ком­пь­ю­те­рах. Как толь­ко вы за­гру­зи­те ди­ст­ ри­бу­тив с live CD, у вас так­же поя­вит­ся оп­ция ус­та­но­вить его на же­ ст­кий диск, ес­ли вы это­го хо­ти­те. Есть зна­чок, ко­то­рый под­ска­зы­ ва­ет поль­зо­ва­те­лю об ус­та­нов­ке на же­ст­кий диск, и ес­ли сле­до­вать ин­ст­рук­ци­ям по ус­та­нов­ке, то про­цесс бу­дет про­стым. На на­шем уро­ке мы рас­ска­жем об ос­но­вах ра­бо­ты с са­мы­ми вы­даю­щи­ми­ся ин­ст­ру­мен­та­ми Fedora Security Lab: Wire­­shark, John the Ripper, Nmap и про­чие. На­стоя­тель­но ре­ко­мен­ду­ем не ог­ра­ни­чи­ вать­ся ин­ст­ру­мен­та­ми, о ко­то­рых мы рас­ска­жем, по­то­му что в этом ди­ст­ри­бу ­ти­ве Linux есть еще мно­го ин­те­рес­но­го.

Наш эксперт В сво­бод­ное вре­мя Аф­нан Рех­ман обо­жа­ет во­зить­ся с Linux. К сча­стью, сво­бод­но­го вре­ мени у не­го мно­го.

Про­ве­ди­те тест-драйв

К Скорая помощь Security Lab мож­но ска­чать на­пря­мую с https://labs. fedoraproject.org. Ес­ли вы пред­ по­чи­тае­те P2P, то есть спи­сок Fedora Torrents, где вы мо­жете ска­ чать все рес­пи­ны и лабы Fedora.

66  |  LXF210 Июнь 2016

о­гда вас за­бо­тит обес­пе­че­ние безо­пас­но­сти, будь то до­ ма или в офи­се, бы­ва­ет труд­но ре­шить, с че­го на­чать. Ми­ риа­ды оп­ций за­ста­вят вас за­ду­мать­ся, мож­но ли най­ти все не­об­хо­ди­мое в од­ном па­ке­те, ко­то­рым мож­но вос­поль­зо­вать­ся ко­ гда угод­но. И вот вам Fedora Security Lab, уни­вер­саль­ное ре­ше­ние всех ва­ших про­блем. Пре­ж ­де все­го, что та­кое Fedora Security Lab? Fedora, как мы зна­ ем, это чу­дес­ный ди­ст­ри­бу­тив Linux, из­на­чаль­но раз­ра­бо­тан­ный со­об­ще­ст­вом Fedora Project при спон­сор­ст­ве Red Hat. Сей­час, по­ доб­но раз­ным сме­сям Debian, Fedora рас­про­с тра­ня­ет ин­ди­ви­д у­ аль­ные раз­но­вид­но­сти сво­его ди­ст­ри­бу ­ти­ва под на­зва­ни­ем ‘labs’. (Fedora так ­же пред ­ла­га­ет «рес­пи­ны» с пред­на­стро­ен­ны­ми ра­бо­чи­ ми сто­ла­ми, от­лич­ны­ми от ра­бо­че­го сто­ла по умол­ча­нию, ко­то­рым яв­ля­ет­ся Gnome.) Есть раз­но­вид­но­сти ди­ст­ри­бу­ти­ва для оп­ре­де­ лен­ной це­ле­вой ау­ди­то­рии, а есть для оп­ре­де­лен­ной дея­тель­но­ сти, на­при­мер, ди­зай­на, об­ра­зо­ва­ния, игр, ро­бо­тов и безо­пас­но­сти. Ди­с т­ри­бу ­т ив Fedora Security Lab пред­на­зна­чен для про­фес­ сио­на­лов в об­лас­ти безо­пас­но­сти и для всех, же­лаю­щих изу­чить ин­фор­ма­ци­он­ную безо­пас­ность, про­ве­рить безо­пас­ность сво­ей се­ти или вы­пол­нить иные за ­д а­чи в об­лас­ти циф­ро­вой безо­пас­ но­сти. Да­же ес­ли вы про­сто лю­би­тель по­во­зить­ся с lab до­ма, эта

За­гру­зив ком­пь­ю­тер с live CD, вы вой­де­те в опе­ра­ци­он­ную сис­те­му Fedora. Пер­вое, что вы, ве­ро­ят­но, за­ме­ти­те — то, что ра­бо­чий стол до­воль­но пус­той. Ани­ма­ция окон све­де­на к ми­ни­му­му, а чис­тая и лег­кая сре­да Xfce сво­дит к ми­ни­му­му ис­поль­зо­ва­ние ре­сур­сов. Вни­зу рас­по­ло­жен док с не­сколь­ки­ми знач­ка­ми, ве­д у­щи­ми к ме­ нед­же­ру фай­лов, тер­ми­на­лу и про­сто­му web-брау­зе­ру. Верх­ний ле­ вый угол эк­ра­на раз­ме­ща­ет вклад­к у Applications [При­ло­же­ния], где со­сре­до­то­че­ны все функ­ции и при­ло­же­ния сис­те­мы и security lab. Са­ми при­ло­же­ния рас­пре­де­ле­ны по сле­дую­щим ка­те­го­ри­ям: ана­ лиз ко­да, кри­ми­на ­ли­сти­че­­ская экс­пер­ти­за, об­на­ру ­же­ние втор­же­ ния, се­те­вая ста­ти­сти­ка, ин­ст­ру­мен­ты па­ро­ля, ре­ког­нос­ци­ров­ка, VoIP, тес­ти­ро­ва­ние web-при­ло­же­ний и бес­про­вод­ная связь. Сре­ди осо­бо яр­ких мо­мен­тов — про­грам­мы Ettercap, Nmap и Medusa. Как и сле­ду­ет ожи­дать, боль­шая часть вклю­чен­ных про­грамм предна­ зна­че­ны для тес­ти­ро­ва­ния безо­пас­но­сти и име­ют очень ма ­ло (ес­ли во­об­ще име­ют) функ­ций за пре­де­ла­ми этой об­лас­ти. Сю­да вклю­ чен ряд ра­бо­чих при­ло­же­ний и при­ло­же­ний для ра­бо­т ы в се­т и, но им хва­та­ет функ­цио­наль­но­сти толь­ко на вы­пол­не­ние не­ких по­ боч­ных за­дач, свя­зан­ных с ко­неч­ной це­лью: безо­пас­но­стью. Как вы уви­ди­те, данная сис­те­ма соз­да­на, что­бы ра­бо­тать лег­ ко и бы­ст­ро, и это очень удоб­но, ес­ли вам нуж­но не­что пор­та­тив­ ное, но и эф­фек­тив­ное. Бо­лее то­го, фай­ло­вая сис­те­ма rootfs для за­пи­си/чте­ния, ко­то­рая об­ра­зу­ет ба­зу live CD, по­зво­ля­ет ус­та­нав­ ли­в ать при­ло­же­ния на хо­д у, пря­м о на диск или флэш-на­ко­пи­ тель. Бла­го­д а­ря это­м у мож­но об­нов­лять и вно­сить до­пол­не­ния

www.linuxformat.ru/subscribe


Fedora Security Lab Учебник

в ва­ше пор­т а­т ив­ное ре­ше­ние безо­пас­но­с ти, не соз­д а­вая но­вый диск при ка ­ж ­дом вы­хо­де об­нов­ле­ния. По­смот­рим же, что мож­но сде­лать с по­мо­щью этой про­грам­мы. Пер­вое, на что мы бы со­ве­то­ва­ли об­ра­тить вни­ма­ние, это вклад­ка Applications ввер­х у: там со­дер­жат­ся все ин­ст­ру­мен­ты и при­ло­же­ ния безо­пас­но­сти. В вы­па­даю­щем ме­ню вы най­де­те вклад­ки, ве­ду­щие к под­ме­ню с ин­ст­ру­мен­та­ми security lab и сис­тем­ны­ми ин­ст­ру­мен­та­ми. В Sys­ tem вы най­де­те мно­же­с т­во про­грамм тер­ми­на­ла; поч­ти все они про­сят вве­сти па­роль root пе­ред за­пус­ком. Эти про­грам­мы варь­ и­ру­ют­ся от chrootkit для бы­ст­ро­го об­на­ру ­же­ния втор­же­ния до ин­ ст­ру­мен­тов от­лад­ки ко­да и от взло­ма па­ро­ля до ин­ст­ру­мен­тов по­ строе­ния схе­мы се­ти. Вклад­ка Security Lab пря­мо над вклад­кой System со­дер­жит мно­гие из тех же са­мых ин­с т­ру­мен­тов, од­на­ко силь­но со­кра­щ а­ет этот спи­сок до про­грамм и функ­ций, от­но­ся­ щих­ся к безо­пас­но­сти.

Обиль­ный ин­ст­ру­мен­та­ми

> Встро­ен­ный ге­не­ра­тор па­ро­лей обес­пе­чи­ва­ет 100 слу­чай­ным об­ра­зом сге­не­ри­ро­ван­ных па­ро­лей для ка­ж­до­го за­про­са, да­вая вам мас­су оп­ций на вы­бор.

Те­перь рас­смот ­рим не­ко­то­рые функ ­ц ии и раз­бе­рем­с я, как ими поль ­зо­в ать­с я. Пер­вый из ин­с т ­ру ­мен ­тов, о ко­то­рых мы рас­с ка­ жем — очень удоб­ный ин­ст­ру­мент под на­зва­ни­ем pwgen. Это, как под­ска­зы­ва­ет его на­зва­ние, ге­не­ра­тор па­ро­лей. Ко­гда вы его от­ крое­те, он по­про­сит вас вве­с ти па­роль root, а по­том пред­с та­вит вам спи­с ок под ­дер­ж и­в ае­мых оп­ц ий и то, как их ис­поль ­зо­в ать. Эти оп­ции вклю­ча­ют на­с трой­к у па­ро­ля, сге­не­ри­ро­ван­но­го в со­ от­вет­ст­вии с не­ко­то­ры­ми кри­те­рия­ми: на­при­мер, на­ли­чие хо­тя бы од­ной за­глав­ной бу­к­вы; как ми­ни­мум од­ной циф­ры или спе­ци­а ль­ но­го сим­во­ла; или во­об­ще без вклю­че­ния оп­ре­де­лен­ных сим­во­ лов. Что­бы сге­не­ри­ро­вать па­роль, ска­жем, из 14 сим­во­лов и как ми­ни­мум с од­ной за­глав­ной бу­к­вой, на­до про­сто вве­сти # pwgen --c 14 в ко­манд­ной стро­ке. Это, как вы уви­ди­те, удоб­ный ин­ст­ру­ мент для соз­да­ния слу­чай­ных па­ро­лей, ко­то­рые безо­пас­ны и ко­ то­рые труд­но уга­дать. Сле­д ую­щ ий ин­с т­ру­мент, ко­т о­рый мы рас­с мот­рим, это про­ грам­ма Disk scruber (да, пи­шет­ся с од­ной ‘b'). Это еще один ин­ст­ ру­мент ко­манд­ной стро­ки, ко­то­рый по­мо­га­ет безо­пас­но уда ­лять оп­ре­де­лен­ные фай­лы с же­ст­ко­го дис­ка. Ес­ли вы хо­ти­те уда­лить что-то без­воз­врат­но, то вам нуж­на имен­но эта про­г рам­ма. Она пред­ла­га­ет не­сколь­ко оп­ций для шаб­ло­нов аб­со­лют­но­го сти­ра­ ния, вклю­чая по­пу­ляр­ные по­сле­до­ва­тель­но­сти аб­со­лют­но­го сти­ ра­ния DoD и Gutmann, но на­строй­кой по умол­ча­нию яв­ля­ет­ся NNSA 3‑pass. Од­ной из важ­ных ве­щей, ко­то­рые сле­ду­ет пом­нить о про­ грам­ме Disk scruber, яв­ля­ет­с я то, что она не уда­лит файл, по­к а вы не по­ме­ти­те его ко­манд­ной оп­ци­ей уда ­ле­ния -r. Без нее она про­ сто очи­стит со­дер­жи­мое фай­ла, сде­лав его не­ра­бо­чим, хо­тя файл по-преж­не­му ос­та­нет­ся в фай­ло­вой сис­те­ме.

Дру­гая пред­ла­гае­мая по­хо­ж ая про­грам­ма — Nwipe, ко­то­рая спо­соб­на вы­пол­нять по­пу­ляр­ную Derik Boot and Nuke (DBAN). Nwipe ис­поль­зу­ет­ся для безо­пас­но­го сти­ра­ния це­лых дис­ков или их раз­ де­лов, и пред­ла­га­ет три про­ме­ж у­точ­ных оп­ции сти­ра­ния, вклю­чая про­цесс в один, три и во­семь про­хо­дов. Хо­тя это и не так точ­но, как сти­ра­ние фай­лов Disk scruber, но не ме­нее эф­фек ­тив­но. Ин­т ер­ф ейс оп­р е­д е­ля­е т дос­т уп­ные дис­к и в сис­т е­ме и по­к а­ зы­ва­ет со­с тоя­ние очи­с т­ки в ре­а ль­ном вре­ме­ни. Что­бы очи­с тить диск, вы­бе­ри­те диск, ме­тод очи­ст­ки, сядь­те в крес­ло и смот­рите фильм (или по­пей­те чаю), по­то­му что, ско­рее все­го, этот про­цесс зай­мет не­сколь­ко ча­сов, в за­ви­си­мо­сти от объ­е­ма дис­ка и ме­то­ да очи­ст­ки. Те­перь пред­с тавь­те се­бе, что вы — се­те­вой ад­ми­ни­с т ­ра­тор, и ва­ша за ­д а­ча — обес­пе­чить безо­пас­ность ва­шей офис­ной се­ ти. Пер­вым пунк­том в ва­шем спи­ске бу­дет на­ли­чие у всех поль­ зо­ва­те ­лей силь­ных па­ро­лей. Од­на­ко в ва­шей ком­па­нии тру­д ит­ ся боль­ше 500 че­ло­век, и у вас нет вре­ме­ни про­ве­рять их всех. Имею­щ ая­ся про­грам­ма, ко­то­рая мо­жет вам тут по­мочь, на­зы­ва­ ет­ся Ncrack. Это вы­со­ко­ско­ро­ст­ной взлом­щик се­те­вой ау ­тен­ти­фи­ ка­ции, пред­на­зна­чен­ный для тес­ти­ро­ва­ния всех хос­тов и се­те­вых уст­ройств на пред­мет на­ли­чия сла­бых па­ро­лей по­сред­ст­вом по­ пыт­ки их взло­мать. Это от­лич­ный ин­ст­ру­мент про­вер­ки для се­те­вых ад­ми­ни­ст­ра­ то­ров и про­фес­сио­на ­лов сис­те­мы безо­пас­но­сти. Бе­да в том, что он боль­ше не под­дер­жи­ва­ет­ся из-за бо­лее мощ­но­го и от­ла ­жен­ но­го Nmap Scripting Engine (NSE). Дос ­т уп­ный в ин ­тер­фей­с е ко­ манд­ной стро­ки, как и дру­гие про­грам­мы, он от­кры­ва­ет­ся спи­ском

Скорая помощь Что­бы ус­та­но­ вить Security Lab на флеш­к у USB, ис­поль­зуй­те ин­ст­ ру­мент UNetbootin (http://unetbootin. github.io), ко­то­рый мо­жет соз­дать за­ гру ­жае­мый USBно­си­тель с по­мо­ щью фай­ла ISO.

Ре­сур­сы В Security Lab столь­ко раз­ных про­грамм, что бы­ло бы слож­но рас­ска­зать о них всех в од­ной ста­ тье. Са­ма Security Lab ог­ра­ни­чи­ва­ет свою до­к у­мен­ та­цию толь­ко ОС. Ес­ли вы пожелаете уз­нать о про­ грам­мах боль­ше, значительная часть из них име­ет соб­ст­вен­ную до­к у­мен­та­цию и ру­ко­во­дства, ко­то­рые вы мо­же­те ис­поль­зо­вать, как ва­шей ду­ше угод­но. Боль­шин­ст­во про­грамм, о ко­то­рых мы рас­ска­зы­ ва­ем здесь, та­кие как Wireshark, Nmap, Ncrack, John и Nwipe, име­ют соб­ст­вен­ные сай­ты. До­к у­мен­та­цию по Wireshark мож­но най­ти на www.wireshark.org,

а до­к у­мен­та­цию для Nmap, Ncrack и Nwipe — на https://nmap.org, где име­ет­ся ис­чер­пы­ваю­щая ин­ фор­ма­ция о том, как ис­поль­зо­вать и по­ни­мать мно­ гие функ­ции. Вы так­же мо­же­те най­ти крат­кий об­зор са­мо­го ПО и его ос­нов­ных про­грамм на https://labs. fedoraproject.org/en/security. Ин­фор­ма­цию про John см. на www.openwall.com/john. Есть так­же не­сколь­ко ру­ко­водств, раз­ра­бо­тан­ ных сто­рон­ни­ми поль­зо­ва­те­ля­ми по ис­поль­зо­ ва­нию про­грамм. Од­но из дос­той­ных ру­ко­водств для на­чи­наю­щих по Wireshark на ­хо­дит­ся на сай­те

Уни­вер­си­те­та Джорд­жа Мей­со­на [George Mason University] (http://bit.ly/WireSharkTut). Но ес­ли вы хо­ти­те уз­нать о бо­лее рас­ши­рен­ных функ­ци­ях, то офи­ци­а ль­ное ру­ко­во­дство поль­зо­ва­те­ля Wireshark на http://bit.ly/WireSharkGuide бу­дет са­мым пол­но­цен­ным ру­ко­во­дством по всем ин­ст­ру­мен­там и функ­ци­ям Wireshark, а так­же по их ис­поль­зо­ва­ нию. Хо­ро­шее ба­зо­вое ру­ко­во­дство по Nmap на­хо­ дит­ся на http://bit.ly/Nmap4Beginners. По­ми­мо этих, есть еще немало программ, до­ стой­ных вни­ма­ния.

»»Подпишитесь на печатную или электронную версии на www.linuxformat.ru/subscribe! www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 67


Учебник Fedora Security Lab

Скорая помощь Ес­ли вы не най­де­те ис­ко­мой функ­ ции, по­про­буй­те за­пус­тить об­нов­ ле­ние с по­мо­щью ко­ман­ды yum update. Она до­ба­ вит ку­чу до­пол­ ни­тель­ных функ­ ций и об­но­вит су­ще­ст­вую­щие до са­мой све­жей вер­сии.

под ­дер­ж и­вае­мых оп­ций. Что­бы по­зна­ко­мить­ся с этой про­грам­ мой, вы мо­же­те по­про­бо­вать ис­поль ­зо­вать свой файл па­ро­лей в ди­рек ­то­рии etc. # ncrack [OPTIONS] [TARGET] Ncrack под­дер­жи­ва­ет це­лый ряд про­то­ко­лов, вклю­чая FTP, SSH, HTTP, POP3, SMB, RDP и VNC, что де­ла­ет его весь­ма гиб­ким в се­ те­вой сре­де. Сле­дую­щий по­хо­жий ин­ст­ру­мент — John (так­же из­вест­ный как John the Ripper), про­грам­ма-взлом­щик, лю­би­мая мно­ги­ми. В пер­ вую оче­редь John ис­поль­зу­ет два ос­нов­ных ре­жи­ма ата­ки: «сло­ вар­ную ата­к у», где он срав­ни­ва­ет за­шиф­ро­ван­ный/хэ­ши­ро­ван­ный спи­сок слов из сло­ва­ря с за­шиф­ро­ван­ным или хэ­ши­ро­ван­ным па­ ро­лем. Вто­рой ре­жим — ата­ка пря­мо­го пе­ре­бо­ра, где про­грам­ма про­хо­дит по всем воз­мож­ным тек­стам, хэ­ши­руя ка­ж ­дый и срав­ни­ вая его с хэ­шем па­ро­ля. Этот ме­тод мо­жет от­нять ку­да боль­ше вре­ ме­ни, но он удоб­нее, ко­гда па­ро­ли силь­ные и не со­дер­жат ни­ка­ких сло­вар­ных слов. Его уни­каль­ность по срав­не­нию с Ncrack в том, что он со­сре­до­то­чен в боль­шей ме­ре на взло­ме ло­каль­но­го, а не се­те­ во­го па­ро­ля. Ис­поль­зо­ва­ние это­го взлом­щи­ка па­ро­лей до­воль­но про­стое: на­при­мер, мы мо­жем по­пы­тать­ся взло­мать па­ро­ли в фай­ ле /etc/passwd, ко­то­рый уже рас­по­ло­жен в фай­ло­вой сис­те­ме. Про­ сто вве­ди­те # john /etc/passwd в ко­манд­ной стро­ке, и вы по­лу­чи­те при­мер­но та­кой ре­зуль­тат: Loaded 1 password hash (descrypt, traditional crypt(3) [DES 128/128 SSE2-16]) [За­гру ­жен 1 хэш па­ро­ля] Press ‘q’ or Ctrl-C to abort, almost any other key for status

> Nwipe очи­ща­ет це­лые дис­ки от дан­ных, и это один из са­мых луч­ ших ме­то­дов безо­пас­но­го уда­ле­ния дан­ных. Его го­лу­бой ин­тер­ фейс уди­ви­тель­но по­хож на ин­тер­фейс по­пу­ляр­но­го DBAN. [На ­ж ми­те ‘q’ или Ctrl+C для вы­хо­д а, и поч­ти лю­бую кла­ви­шу для вы­во­д а ста­т у­с а] Warning: MaxLen = 13 is too large for the current hash type, reduced to 8 [Пре­д у­пре­ж ­де­ние: для дан­но­го ти­па хэ­ша MaxLen = 13 слиш­ком мно­го, умень­ше­но до 8] koe (Test) 1g 0:00:00:01 3/3 0.7246g/s 769588p/s 769588c/s 769588C/s bia1388..sunshesa Use the “--show” option to display all of the cracked passwords reliably [Вос­поль­зуй­тесь оп­ци­ей “--show” для по­ка­за всех взло­ман­ных па­ро­лей] Session completed [Се­анс окон­чен] Как ви­ди­те, ре­зуль­тат го­во­рит вам, что па­роль для поль­зо­ва­те­ ля ‘Test’ — ‘koe’. В слу­чае, ко­гда в фай­ле нет су­ще­ст­вую­щих па­ро­ лей, вы уви­ди­те No password hashes loaded (see FAQ) [Хэ­ши па­ро­ лей не за­гру­же­ны (см. Ча­Во)].

Ау­дит безо­пас­но­сти

> При­ло­же­ния Disk scruber по­ка­зы­ва­ет в ре­аль­ном вре­ме­ни, как про­ис­хо­дит очи­ст­ка дис­ка. Ско­рость очи­ст­ки за­ви­сит от раз­ме­ра фай­ла.

Од­но из луч­ших при­ло­же­ний, пред­ла­гае­мых Fedora Security Lab — это Nmap, сво­бод­ная ути­ли­та с от­кры­тым ко­дом для об­на­ру­же­ ния се­ти и ау­ди­та безо­пас­но­сти. Ос­нов­ная функ­ция Nmap — об­ на­ру­жи­вать хос­ты и сер­ви­сы в се­ти для соз­д а­ния «кар­ты» се­ти. Для вы­пол­не­ния этой за­д а­чи Nmap соз­д а­ет и рас­сы­ла­ет па­кеты по це­л е­в ым хос­т ам и ана ­л и­з и­р у­е т от­в е­т ы. Мно­г ие сис­т ем­н ые ад­ми­ни­с т ­ра­то­ры со­ч тут ее по­лез­ной для вы­пол­не­ния та­к их за­ дач, как ин­вен­та­ри­за­ция се­ти, управ­ле­ние сер­ви­с а­ми, об­нов­ле­ ние мо­д у­лей и мо­ни­то­ринг вре­ме­ни функ­цио­ни­ро­ва­ния сер­ви­са. Со мно­же­ст­вом встро­ен­ных функ­ций, вклю­чая ска­ни­ро­ва­ние пор­ тов, оп­ре­де­ле­ние ОС и обо­ру­до­ва­ния и скрип­ты взаи­мо­дей­ст­вия с це­ле­вы­ми объ­ек ­та­ми, Nmap ис­поль­зу­ет­ся по-раз­но­му и име­ет

Дру­гие лабы и рес­пи­ны Воз­мож­но, вас ин­те­ре­су­ет, ка­кие еще ди­ст­ри­бу­ тивы дос­т уп­ны от Fedora. Как мы го­во­ри­ли в са­мом на­ча­ле это­го ру­ко­во­дства, есть мно­го дру­гих labs, пред ­ла­гае­мых Fedora для оп­ре­де­лен­ных об­лас­тей ис­поль­зо­ва­ния: на­при­мер, для об­ра­зо­ва­тель­ных це­лей есть вер­сия ди­ст­ри­бу­ти­ва Fedora ‘Sugar On A Stick’ (SOAS), ко­то­рая пред ­ла­га­ет удоб­ную для де­тей гра­фи­че­скую сре­д у, пор­та­тив­ную и за­гру­жае­ мую в ре­жи­ме live.

Есть так­же labs, пред­на­зна­чен­ные для игр в Linux, ди­зай­на и на­у ч­ных при­ло­же­ний. Fedora Games Lab пред ­ла­га­ет мно­же­ст­во сво­бод­ных игр Linux раз­ных жан­ров, а Fedora Design Suite — раз­ ные ин­ст­ру­мен­ты ди­зай­на муль­ти­ме­диа, что­бы во­пло­тить в жизнь ва­ши твор­че­­ские идеи. Fedora Scientific Lab пре­дос­тав­ля­ет ин­ст­ру­мен­ты для вы­ чис­ле­ний, чер­те­жей и ана ­ли­за дан­ных, на­при­мер, GNU Octave и gnuplot (см. Учеб­ни­ки, стр. 70). Бо­лее

под­роб­ную ин­фор­ма­цию об этих, а так­же дру­гих рес­пи­нах см. на https://labs.fedoraproject.org. Fedora так­же пред­ла­га­ет раз­ные рес­пи­ны с аль­ тер­на­тив­ны­ми сре­да­ми ра­бо­че­го сто­ла: на­при­ мер, для ра­бо­ты и раз­вле­че­ния есть рес­пин KDE Plasma Desktop. Дру­гой рес­пин вклю­ча­ет Cinnamon, пред­на­зна­чен­ный для обыч­ных поль­зо­ва­те­лей. Пол­ный спи­сок на­хо­дит­ся здесь: https://spins. fedoraproject.org.

»»Пропустили номер? Узнайте на с. 108, как получить его прямо сейчас. 68  |  LXF210 Июнь 2016

www.linuxformat.ru/subscribe


Fedora Security Lab Учебник

> Один из са­мых ува­жае­мых ска­не­ров сис­те­мы безо­пас­но­сти и кар­то­гра­фов се­ти пред­ла­га­ет мно­го раз­но­вид­но­стей, в том чис­ле Zenmap с GUI. ва­ри­ан­т ы ко­манд­ной стро­к и и GUI. Вер­сия GUI на­зы­ва­ет­ся Zen­ map и пред­ла­га­ет лег­ко чи­тае­мый ин­тер­фейс для ска­ни­ро­ва­ния ад­ре­сов, ана ­ли­за тра­фи­ка и об­на­ру ­же­ния се­те­вых ано­ма­лий. Для управ­ле­ния Nmap есть и дру­гие ин­тер­фей­сы GUI и web-ин­тер­фей­ сы, но имен­но этот вклю­чен в дан­ный ди­ст­ри­бу­тив, и имен­но его мы бу­дем об­су­ж ­д ать в дан­ном ру­ко­во­дстве. От­крыв про­грам­му впер­вые, вы уви­ди­те, что в ин­тер­фей­се до­ми­ни­ру­ет ок­но, по­ка­ зы­ваю­щее ин­фор­ма­цию от Nmap вме­сте с не­сколь­ки­ми дру­ги­ми вклад­ка­ми. Ввер­х у име­ют­ся стро­ки для вво­да ко­манд, вво­да це­ле­ во­го ад­ре­са и ука­за­ния ти­па ска­ни­ро­ва­ния. В це­ле­вом ок­не мож­но ука­зать раз­ные се­те­вые ад­ре­са, что­бы про­вес­ти про­вер­к у. Вклад­ ки с ре­зуль­та­том по­ка­ж ут об­нов­лен­ную ин­фор­ма­цию о том, что об­ на­ру­жи­ло ска­ни­ро­ва­ние, пе­ре­чис­лят пор­ты и хос­ты и да­же пре­до­ с­та­вят то­по­ло­гию се­ти. Ес­ли вы пред­по­чи­т а­е т ис­поль­зо­в ать ин­т ер­ф ейс ко­манд­ной стро­к и, то сра ­зу по­с ле от­к ры ­т ия он ото­бра ­зит длин­ный спи­сок оп­ц ий, при­л а­г ае­м ых к ко­м ан­д ам для вы­п ол­н е­н ия оп­р е­д е­л ен­ ных за­дач, на­при­мер, что­бы ука­зать, ка­кой тип ска­ни­ро­ва­ния ис­ поль­зо­вать. Ти­пич­ная струк­т у­ра ко­манд для Nmap та­кая: # nmap [OPTIONS] [TARGET], где [OPTIONS] оз­на­ча­ет раз­ные зна­че­ния па­ ра­мет­ров, ко­то­рые вы мо­же­те за­дать, что­бы на­стро­ить ска­ни­ро­ва­ ние, а [TARGET] от­но­сит­ся к це­ле­вым ад­ре­сам се­ти, ко­то­рые бу­дут про­ве­ре­ны. По­про­буй­те про­ска­ни­ро­вать что-ни­будь в сво­ей ло­ каль­ной се­ти, на­при­мер, свой ро­у тер Wi-Fi. Для это­го ска­ни­ро­ва­ ния це­лью бу­дет IP-ад­рес ва­ше­го ро­у те­ра Wi-Fi, 192.168.0.1, что по­ ро­дит ко­манд­ную стро­к у та­ко­го ти­па: # nmap 192.168.0.1. Вме­сто IP-ад­ре­са так­же мож­но ука­зать имя DNS ва­ше­го це­ле­во­го хос­та. За­п ус­т ит­с я ин­т ен­с ив­н ое ска­н и­р о­в а­н ие пор­т а по IP-ад­р е­с у 192.168.0.1, и бу­дут оп­ре­де­ле­ны пор­ты и сер­ви­сы, от­кры­тые на ва­ шем Wi-Fi ро­у те­ре. Вы так­же мо­же­те про­ска­ни­ро­вать не­сколь­ко IPад­ре­сов или под­се­тей, до­ба­вив ад­ре­са по­сле пер­во­го, че­рез про­ бел. А мож­но про­ска­ни­ро­вать не­сколь­ко ад­ре­сов в оп­ре­де­лен­ном диа­па­зо­не или с по­мо­щью сим­во­ла под­ста­нов­ки, на­при­мер: # nmap 192.168.1.1-20 # nmap 192.168.1.* # nmap 192.168.1.0/24 Ес­ли вы ска­ни­руе­те ряд ад­ре­сов, мо­же­те опус­тить оп­ре­де­лен­ ные хос­ты, ис­поль­зуя ко­ман­ду exclude и за­пя­т ую (,) ме­ж ­ду ис­к лю­ чае­мы­ми ад­ре­са­ми, на­при­мер: # nmap 192.168.1.0/24 --exclude 192.168.1.4,192.168.1.35 .

ко­то­рый спро­сит у вас, ка­кой из об­на­ру­жен­ных се­те­вых ин­тер­ фей­сов вы хо­ти­те слу­шать. Ко­гда вы сде­лае­те вы­бор, GUI пе­ре­к лю­ чит­ся на трех­па­нель­ное изо­бра ­же­ние. Верх­няя па­нель по­ка­зы­ва­ет раз­но­цвет­ные пунк­ты по ка­ж ­до­му па­ке­т у, ко­то­рый Wireshark оп­ре­ де­ля­ет в се­ти, а вто­рая и тре­тья па­не­ли — под­роб­ную ин­фор­ма­цию по ка­ж ­до­му из этих па­ке­тов, вклю­чая раз­мер па­ке­та, вре­мя дос­тав­ ки, тип про­то­ко­ла, от­к у­да он и ре­а ль­ное со­дер­жи­мое па­ке­та. Что­ бы пре­кра­тить сбор дан­ных по па­ке­там, про­сто на­жми­те на кноп­к у stop capture в ле­вом верх­нем уг­лу ок­на. Ес­ли в ва­шей се­ти про­ве­ рять осо­бо не­че­го, то wiki Wireshark снаб­дит вас об­раз­ца­ми фай­ лов, ко­то­рые вы мо­же­те ска­чать и про­ве­рить. В верх­ней па­не­ли вы уви­ди­те мно­же­ст­во раз­ных па­ке­тов, вы­де­лен­ных зе­ле­ным, го­ лу­бым или чер­ным/крас­ным. По умол­ча­нию, зе­ле­ный оз­на­ча­ет тра­фик TCP (Transmission Control Protocol); тем­но-си­ний — тра­ фик DNS; свет­ло-го­лу­бой — тра­фик UDP (User Datagram Proto­ col); а чер­ный или крас­ный оз­на­ча­ют па­ке­ты с про­бле­ма­ми, на­ при­мер, дос­тав­лен­ные не в по­ряд­ке. Па­ке­тов мно­же­ст­во, и что­бы су­зить ваш по­иск, тре­бу­ют­ся фильт­ры. Над спи­ском па­ке­тов на­ хо­дит­ся тек­сто­вая па­нель/вы­па­даю­щее ме­ню, где мож­но ука­зать тип тра­фи­ка, на ко­то­рый вам бы хо­те­лось взгля­нуть; на­при­мер, вве­ди­те dns, и вы уви­ди­те толь­ко па­ке­ты DNS. Вы так­же мо­же­те соз­дать соб­ст­вен­ные фильт­ры, на­жав на Display Filters [Фильт­ры ото­бра­же­ния] в ме­ню Analyze [Ана­ли­зи­ро­вать]. Вы так­же мо­же­те щелк­нуть пра­вой кноп­кой по па­ке­т у и сле­до­вать по­то­к у TCP, что по­зво­лит вам уви­деть пол­ный про­цесс об­ще­ния ме­ж ­ду кли­ен­том и сер­ве­ром. Все вы­ше­пе­ре­чис­лен­ное — лишь ба­зо­вый об­зор воз­ мож­но­стей Wireshark. Про­грам­мы, ко­то­рые мы ото­бра ­ли, яв­ля­ют со­бой лишь часть про­грамм, вклю­чен­ных в Fedora Security Lab, но они от­лич­но по­зна­ ко­мят вас с ти­пом про­грамм, ко­то­рые вы там най­де­те. Как вы мо­ же­те ви­деть из это­го крат­ко­го об­зо­ра, воз­мож­но­сти прак ­ти­че­­ски без­гра­нич­ны. Об­шир­ный ар­се­нал про­грамм и функ­ций, имею­щих­ ся в ди­с т­ри­бу ­ти­ве, обес­пе­чи­ва­ет поль­зо­ва­те­ля мно­ги­ми оп­ция­ ми для про­ве­де­ния соб­ст­вен­ной про­вер­ки безо­пас­но­сти. По­сколь­ ку ОС мо­жет и чи­тать, и пи­сать на хо­ду, вы соз­дае­те воз­мож­ность не толь­ко по­сто­ян­но об­нов­лять live CD сво­его рес­пи­на, но так ­же до­бав­лять в не­го соб­ст­вен­ные про­грам­мы и функ­ции, так же, как вы де­лае­те для лю­бо­го ди­ст­ри­бу­ти­ва. Из-за его тех­нарской при­ роды и за­ви­си­мо­сти от рас­ши­рен­ных ре­ше­ний безо­пас­но­сти ко­ манд­ной стро­ки этот ди­с т­ри­бу­тив, ве­ро­ят­но, по­дой­дет не всем. Од­на­ко бла­го­д а­ря сво­им ин­с т­ру­мен­там и сер­ви­сам, ма­ло­му по­ треб­ле­нию ре­сур­сов и ис­к лю­чи­тель­ной пе­ре­но­си­мость, он идеа­ лен как для про­фес­сио­на­лов, так и для лю­би­те­лей. |

Ана­лиз па­ке­тов По­след­няя про­грам­ма, о ко­то­рой мы рас­ска ­жем, это зна­ме­ни­тый Wireshark. Это один из луч­ших ана­ли­з а­то­ров се­те­вых про­то­ко­ лов, бес­плат­но дос­т уп­ный на плат­фор­ме Linux. Wireshark по­зво­ля­ ет ви­деть все, что про­ис­хо­дит в ва­шей се­ти, вплоть до от­прав­ляе­ мых и по­лу­чае­мых па­ке­тов. Он под ­дер­жи­ва­ет раз­ные про­то­ко­лы и фор­ма­ты фай­лов, что де­ла­ет его весь­ма пол­ным и все­сто­рон­ ним. Впер­вые от­крыв Wireshark, вы уви­ди­те эк­ран при­вет­с т­вия,

> Взлом­щик па­ро­лей John (the Ripper) пред­ла­га­ет ку­чу оп­ций для про­вер­ки безо­пас­но­сти па­ро­лей ва­ших кол­лег.

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 69


Gnuplot И зу­чи­те, как пред­ста­вить дан­ные элегантны­ми гра­фи­ка­ми

Gnuplot: Дан­ные кра­си­вы! Ро­няя сле­зы уми­ле­ния, Ра­фик Рех­ман учит вас ис­поль­зо­вать gnuplot, что­бы соз­да­вать кра­си­вые ви­зуа­ли­за­ции дан­ных.

Наш эксперт Ра­фик Рех­ман яв­ ля­ет­ся кон­суль­тан­ том и ав­то­ром; его ин­те­ре­сы — нау­ ка о дан­ных, но­ вые тех­но­ло­гии, Ин­тер­нет ве­щей и ин­фор­ма­ци­он­ ная безо­пас­ность. Он по­мог мно­ же­ст­ву ком­па­ ний про­дви­нуть биз­нес с по­мо­ щью циф­ро­во­го пре­об­ра­зо­ва­ния.

> Же­лая иметь по­след­нюю вер­сию gnuplot, ска­чай­те ис­ход­ный код с SourceForge. ос­но­ва­на на воз­мож­но­стях скрип­тов, струк­т у­ре управ­ле­ния и экс­ пор­те во мно­же­ст­во фор­ма­тов. На на­шем уро­ке вы нау­чи­тесь ус­та­нав­ли­вать и ис­поль­зо­вать gnuplot, и впе­чат­лять лю­дей ве­ли­ко­леп­ны­ми гра­фи­ка­ми. Мы нач­ нем с по­строе­ния гра­фи­ков про­стых функ­ций и пе­рей­дем к бо­лее слож­ным, а так ­же рас­смот­рим не­ко­то­рые при­ме­ры из ком­плек ­та gnuplot, что­бы изу­чить его воз­мож­но­сти. Вы так­же нау­чи­тесь пи­ сать ос­нов­ные скрип­ты для ав­то­ма­ти­за­ции.

Р Скорая помощь Ти­пич­ный гра­фик дол­жен вклю­чать ком­по­нен­ты, ко­то­ рые де­ла­ют его бо­ лее ос­мыс­лен­ным и лег­ким для по­ни­ ма­ния, а имен­но — на­зва­ние гра­фи­ка, диа­па­зо­ны по осям X, Y и Z и над­пи­си.

70  |  LXF210 Июнь 2016

ез­кое уве­ли­че­ние объ­е­мов дан­ных, уде­шев­ле­ние их хра­ не­ния и по­яв­ле­ние тех­но­ло­гий их об­ра­бот­ки вы­зва ­ло ста­ нов­ле­ние ви­зуа ­ли­за­ции дан­ных как но­вой от­рас­ли. Ны­не дос­т уп­но мно­же­ст­во но­вых тех­но­ло­гий ви­зуа­ли­за­ции дан­ных для са­мых раз­ных нужд, в т. ч. для JavaScript и web-ин­с т­ру­мен­тов, и gnuplot — их пред­ста­ви­тель, осо­бен­но ко­гда речь идет о пред­ став­ле­нии ма­те­ма­т и­че­­ских функ­ц ий как 2D- и 3D-по­верх­но­с ти и пред­став­ле­нии вы­во­да ключ–зна­че­ние для Hadoop MapReduce. gnuplot так ­же очень по­ле­зен для ста­ти­сти­че­­ских функ­ций, ап­прок­ си­ма­ции кри­вых и для кри­вых ве­ро­ят­но­стей; а так­же для ви­зуа­ ли­за­ции биз­нес-дан­ных, ис­то­ри­че­­ских тен­ден­ций по­го­ды и ко­ле­ ба­ний кур­са ак­ций. Ко­ро­че, спо­со­бы при­ме­не­ния gnuplot весь­ма мно­го­чис­лен­ны и ог­ра­ни­чи­ва­ют­ся толь­ко во­об­ра ­же­ни­ем. Соз­д а­ние ви­зу­а ль­но при­в ле­к а­тель­ных гра­фи­ков все­гда бы­ ло меч­той уче­ных, ин­же­не­ров и web-раз­ра­бот­чи­ков. Мно­гие дру­ гие сред­ст­ва ви­зуа­ли­за­ции дан­ных со­сре­до­то­че­ны на не­сколь­ких кон­крет­ных об­лас­тях, но gnuplot яв­ля­ет­ся уни­вер­саль­ным ин­с т­ ру­м ен­т ом для ото­бра ­же­ния прак ­т и­ч е­­с ки лю­б о­г о ти­п а дан­ных, по­сколь­к у по­мо­га­ет соз­да­вать слож­ные гра­фи­ки с рас­ши­рен­ны­ ми воз­мож­но­стя­ми, та­ки­ми как про­зрач­ность, на­ло­же­ние гра­фи­ ков, вра­ще­ние в 2D и 3D и мно­гое дру­гое. Ре­а ль­ная мощь gnuplot

Ус­та­нов­ка gnuplot Про­стей­ший спо­соб за­груз­ки и ус­та­нов­ки gnuplot — ис­поль­зо­вать yum, apt-get или дру­гие ути­ли­ты управ­ле­ния про­грамм­ным обес­ пе­че­ни­ем ва­шей вер­сии Linux. Ес­ли вы пой­де­те этим про­стым пу­ тем, то в CentOS, Fedora или Red Hat Linux про­сто вве­ди­те сле­дую­ щую ко­ман­ду, что­бы за­гру­зить и ус­та­но­вить gnuplot (поль­зо­ва­те­ли Ubuntu мо­г ут ис­поль­зо­вать apt-get): # yum install gnuplot На мо­мент на­пи­са­ния ста­тьи, по­с лед­няя вер­сия gnuplot бы­ла 5.0.3. Од­на­ко на CentOS мы име­ем gnuplot 4.2.6. Яс­но, что в стан­ дарт­ных ди­ст­ри­бу ­ти­вах по­след­ней вер­сии gnuplot нам не ви­дать. Что­бы ее по­лу­чить, на­до ска­чать ис­ход­ный код, ском­пи­ли­ро­вать и ус­т а­но­вить его вруч­н ую. Во-пер­вых, ис­поль­зу­ем сле­д ую­щ ую ссыл­к у для за­г руз­к и фай ­ла ис­ход­но­го ко­д а gnupot-5.0.3.tar.gz: https://sourceforge.net/projects/gnuplot/files/gnuplot/5.0.3. Ска­чав файл, рас­па­к у­ем его с по­мо­щью tar zxvf gnuplot-5.0.3.tar.gz. Эта ко­ман­д а рас­па­ко­вы­ва­ет ис­ход­ный код про­грамм­но­го обес­пе­че­ ния, соз­д ав ка­та ­лог с име­нем gnuplot-5.0.3. За­тем на­ста­ет вре­мя его ском­пи­ли­ро­в ать и ус­т а­но­вить. Сле­д ую­щ ая по­с ле­до­в а­тель­ ность ко­манд сде­ла­ет свое де­ло и ус­та­но­вит по­след­нюю вер­сию gnuplot на ва­шем Linux.

www.linuxformat.ru/subscribe


gnuplot Учебник

Что та­кое gnuplot? Ути­ли­те по­строе­ния гра­фи­ков gnuplot поч­ти 30 лет. Она из­на­чаль­но соз­да­ва­лась для по­строе­ния гра­ фи­ков ма­те­ма­ти­че­­ских функ­ций и на­у ч­ных дан­ных и дос­т уп­на для мно­гих опе­ра­ци­он­ных сис­тем, вклю­ чая Linux, Windows и раз­лич­ные вер­сии Unix и OS X. Ис­то­ри­че­­ски так сло­жи­лось, что gnuplot ис­поль­ зо­ва ­ли, ко­гда не бы­ло слож­ных ин­ст­ру­мен­тов для ри­со­ва­ния и пе­ча­ти гра­фи­ков, по­зво­ляю­щих поль­ зо­ва­те­лям вво­дить тек­сто­вые дан­ные и по­лу­чать ре­зуль­та­ты в раз­лич­ных гра­фи­че­­ских фор­ма­тах. Ути­ли­та яв­ля­ет­ся со­став­ной ча­стью прак­ти­че­­ски всех ос­нов­ных ди­ст­ри­бу ­ти­вов Linux и ин­ст­ру­мен­том

де-фак­то для по­строе­ния гра­фи­ков функ­ций и ви­ зуа ­ли­за­ции на­у ч­ных дан­ных в на­у ч­но-тех­ни­че­­ских кру­гах. Это ин­ст­ру­мент с от­кры­тым ис­ход­ным ко­дом (с ав­тор­ски­ми пра­ва­ми), и его мож­но за­гру­зить и ус­ та­но­вить бес­плат­но. Так ­же дос­т уп­на мас­са книг для изу­че­ния мно­го­чис­лен­ных его мощ­ных функ­ций. Су­ще­ст­ву­ют так­же ру­ко­во­дства и мно­же­ст­во при­ ме­ров на офи­ци­а ль­ном сай­те www.gnuplot.info. Эти при­ме­ры то­же яв­ля­ют­ся ча­стью ис­ход­но­го ко­да. Си­ла gnuplot за­к лю­ча­ет­ся в ко­манд­ной стро­ке и воз­мож­но­стях скрип­тов, по­зво­ляю­щих соз­да­вать

cd gnuplot-5.0.3 ./configure make make install Об­ра­ти­те вни­ма­ние, что во вто­рой ко­ман­де нуж­но ис­поль­зо­ вать ./, что­бы обес­пе­чить за­пуск скрип­та на­строй­ки из те­к у­ще­го ка­та ­ло­га. В за­ви­си­мо­сти от ти­па биб­лио­тек, ус­та­нов­лен­ных на ва­ шем ком­пь­ю­те­ре, этот скрипт мо­жет вы­дать пре­ду­пре­ж ­де­ние или по­жа ­ло­вать­ся на не­хват­к у биб­лио­тек, и пре­рвать­ся. В та­ком слу­ чае про­сто ус­та­но­ви­те тре­буе­мую биб­лио­те­к у с по­мо­щью yum и пе­ ре­за­пус­ти­те скрипт. По­сле ус­пеш­но­го за­вер­ше­ния ко­ман­ды make install про­грамм­ ное обес­пе­че­ние бла­го­по­луч­но ус­та­но­вит­ся. Весь про­цесс мо­жет за­нять не­ко­то­рое вре­мя, так что на­бе­ри­тесь тер­пе­ния (и при­ми­те пресловутую Ча­шеч­к у Чая™ Linux Format). Обе­ща­ем, что ко­неч­ный ре­зуль­тат бу­дет кра­си­вым. По­сколь­к у make install тре­бу­ет по­вы­шен­ных при­ви­ле­гий, что­бы раз­мес­тить би­нар­ни­ки gnuplot в со­от­вет­с т­вую­щие ка­та­ло­ги, на­ стоя­тель­но ре­ко­мен­ду­ем за­пус­кать ее с пра­ва­ми су­пер­поль­зо­ва­те­ ля. Ес­ли вы во­шли в сис­те­му не от име­ни root, пе­ред за­пус­ком make install ис­поль­зуй­те ко­ман­ду su, что­бы по­вы­сить се­бя до су­пер­поль­ зо­ва­те­ля. Мы за­пус­ка­ли с пра­ва­ми root всее вы­ше­пе­ре­чис­лен­ные ко­ман­ды, что­бы из­бе­жать про­блем с при­ви­ле­гия­ми.

мощ­ные и слож­ные ва­ри­ан­ты ви­зуа­ли­за­ции дан­ ных. Для ите­ра­тив­ных за­дач в gnuplot дос­т уп­ны раз­лич­ные управ­ляю­щие струк ­т у­ры, та­кие как цик­лы while и for. В дан­ной ста­тье вы уви­ди­те ис­ поль­зо­ва­ние не­ко­то­рых та­ких за­дач для по­строе­ния не­сколь­ких гра­фи­ков в од­ном ок­не. По­след­ней вер­си­ей gnuplot на момент написания статьи яв­ля­ет­ся 5.0.3, именно ее мы и ис­поль­зо­вали для при­ме­ров в этой ста­тье. При за­пус­ке gnuplot из ко­манд­ной стро­ки для удоб­ст­ва поль­зо­ва­те­ля ото­бра­жа­ет­ся но­мер вер­сии, а заодно и све­де­ния об ав­тор­ских пра­вах.

по­с тро­ить из ко­манд­ной стро­ки гра­фик про­с той три­го­но­мет­ри­ че­­ской функ­ции, та­кой как sin(x), cos(x) и дру­гих. Для этой це­ли ис­поль­зу­ем ко­ман­д у plot: gnuplot> plot sin(x). Поя­вит­ся ок­но, где вы уви­д и ­т е гра­ф ик sin(x). Об­р а­т и ­т е вни­м а­н ие, что при ра­б о­т е с gnuplot в ин­те­рак­тив­ном ре­жи­ме вы ви­ди­те два ок­на: ок­но для ко­манд gnuplot и гра­фи­че­­ское ок­но, где будут ото­бра ­жа­т­ься ре­ зуль­таты ва­ших ко­манд.

Скорая помощь Ин­те­рак ­тив­ный ре­ жим по­ле­зен для тес­ти­ро­ва­ния ви­ зу­а ль­ных вы­во­дов дан­ных и функ­ций. Ес­ли ре­зуль­тат вас уст­раи­ва­ет, мож­но пре­вра­тить ко­ман­ ды в скрипт для ви­ зуа ­ли­за­ции дан­ных вы­ход­ных фай­лов Hadoop MapReduce или ма­те­ма­ти­че­ ­ских функ­ций.

Гра­фи­ки про­стых функ­ций Ес­ли за­ме­нить в пре­ды­ду­щем при­ме­ре (вы­ше) ко­ман­ду plot ко­ман­ дой splot, gnuplot на­ри­су­ет его как 3D-гра­фик, и вы смо­же­те по­во­ ра­чи­вать его в гра­фи­че­­ском ок­не и рас­смат­ри­вать с раз­ных ра­к ур­ сов (с по­мо­щью мы­ши). Мож ­но так ­же по­с тро­и ть в од­ном ок ­не не­сколь­ко гра­фи­ков, раз­де­ляя функ­ции за­пя­ты­ми, как в сле­д ую­щей ко­ман­де, ко­то­рая ото­бра ­жа­ет од­но­вре­мен­но гра­фи­ки и sin(x), и cos(х). gnuplot> plot sin(x), cos(x) Сле­дую­щая ко­ман­да по­стро­ит гра­фик с диа­па­зо­ном от –10 до + 5 по оси X и ум­но­жит гра­фик cos(x) на 2: gnuplot> plot [-10 : 5] sin(x), 2*cos(x) Мож­но из­ме­нять раз­лич­ные ха­рак­те­ри­с ти­ки гра­фи­ка, та­кие как тип ли­н ий, цвет, ши­р и­н а (тол­щ и­н а) и дру­г ие — на­п ри­м ер,

За­пуск gnuplot Обыч­но gnuplot за­пус­ка­ет­ся из ко­манд­ной стро­ки в ин­те­рак­тив­ном ре­жи­ме, ес­ли вы не на­пи­ше­те скрипт. Для за­пус­ка от­крой­те ок­но тер­ми­на ­ла и вы­пол­ни­те gnuplot, как по­ка­за­но ни­же. По­сле не­сколь­ ких со­об­ще­ний вы уви­ди­те под­сказ­к у gnuplot>, и мож­но бу­дет на­ чи­нать ис­поль­зо­ва­ние ко­манд gnuplot. $ gnuplot GNUPLOT Version 5.0 patchlevel 3 last modified 2016-02-21 Copyright (C) 1986-1993, 1998, 2004, 2007-2016 Thomas Williams, Colin Kelley and many others gnuplot home: http://www.gnuplot.info faq, bugs, etc: type “help FAQ” immediate help: type “help” (plot window: hit ‘h’) Terminal type set to ‘qt’ gnuplot>

Здесь по­ка­за­но, что ввод help в стро­ке gnuplot вы­зо­вет фай­лы справ­ки, и чуть поз­же мы изу­чим функ­цию справ­ки под­роб­но. Для за­вер­ше­ния сес­сии gnuplot по­слу­жит ко­ман­да quit или qt. Как пра­ви­ло, лю­бой но­вый поль­зо­ва­тель gnuplot пер­вым де­ лом про­бу­ет соз­дать гра­фик про­стых функ­ций: на­при­мер, мож­но

> Нач­ни­те с про­сто­го гра­фи­ка три­го­но­мет­ри­че­ской функ­ции, ти­па sin(x).

»»Подпишитесь на печатную или электронную версии на www.linuxformat.ru/subscribe! www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 71


Учебник gnuplot из­ме­нить тол­щи­ну ли­нии гра­фи­ка функ­ции cos(х) (см. ни­же). Па­ра­ метр lw (line width — ши­ри­на ли­нии) сде­ла­ет ли­нию cos(x) жир­нее. gnuplot> plot [-10 : 5] sin(x), 2*cos(x) lw 3 Ес­ли ис­ход­ные дан­ные по­с ту­па­ют от дру­г их про­цес­с ов, на­ при­мер, из кла­сте­ра Hadoop, мож­но ис­поль­зо­вать фай­лы дан­ных в ка­че­­ст­ве ис­ход­ных для gnuplot. В про­стом слу­чае, в сле­дую­щем спи­ске при­ве­де­ны че­ты­ре зна­че­ния, ко­то­рые мо­г ут быть ис­поль­зо­ ва­ны как ко­ор­ди­на­ты x и y для то­чек дан­ных: 1 3 2 7 3 2 4 5 Со­х ра­ни ­т е эти зна­че­ния в фай ­ле data.txt, а за­т ем вы­пол­ни­ те сле­д ую­щ ую ко­ман­д у, что­бы ото­бра­зить эти дан­ные в ви­де ли­ ней­но­го гра­фи­ка. Об­ра­ти­те вни­ма­ние, что диа­па­зо­ны для осей X и Y ука­зы­ваются с ис­поль­зованием квад­рат­ных скобок: [0:5][0:8] (см. ни­же). Клю­че­вые сло­ва with lines ис­поль­зу­ют­ся для ука­за­ния gnuplot соз­дать ли­ней­ный гра­фик: gnuplot> plot [0:5][0:8] “data.txt” with lines Для соз­д а­ния та­ко­го же гра­фи­ка вер­ти­каль­ны­ми от­рез­ка­ми (bars) или пря­мо­уголь­ни­ка­ми (boxes) ис­поль­зуй­те gnuplot> plot [0:5][0:8] “data.txt” with boxes

Про­смотр при­ме­ров гра­фи­ков Для но­вич­ка в gnuplot по­лез­но бу­дет на­чать с об­зо­ра при­ме­ров ви­ зуа­ли­за­ции, пре­дос­тав­лен­ных с ис­ход­ным ко­дом. Эти при­ме­ры — не толь­ко ин­с т­ру­мент обу­че­ния, они так ­же по­зво­ля­ют оце­нить кра­со­т у и раз­но­об­ра­зие воз­мож­но­стей gnuplot не­по­сред­ст­венно в ра­бо­те. При­ме­ры — это часть ис­ход­но­го ко­д а, ко­то­рый вы ска­ча ­ли и ис­поль­зо­ва ­ли для сбор­к и при­ло­же­ния. Де­ре­во ис­ход­но­го ко­ да со­д ер­ж ит ка­т а ­л ог demo. Для про­с мот­р а всех при­м е­р ов пе­ рей­ди­те в этот ка­та­лог и за­пус­ти­те по­с ле­до­ва­тель­ность при­ме­ ров (см. ни­же). При этом gnuplot вы­даст пер­вый при­мер гра­фи­ка, а за­тем бу­дет ждать ко­ман­ды поль­зо­ва­те­ля. Для пе­ре­хо­да к сле­ дую­щ е­м у при­м е­ру на ­д о на ­ж ать кла­ви­ш у Return (она же Enter) и так да­лее: $ cd demo $ gnuplot gnuplot> load “all.dem”

ис­поль­зо­ва ­лась ко­ман­д а splot, то его мож­но дви­гать и вра­щ ать, и рас­смат­ри­вать с раз­ных сто­рон.

Ис­поль­зо­ва­ние gnuplot в скрип­тах До сих пор все по­ка­зан­ные при­ме­ры бы­ли в ин­те­рак­тив­ном ре­ жи­ме. Вы за­пус­ка­ли gnuplot из ко­манд­ной стро­ки и ис­поль­зо­ва­ли ко­ман­ды для ри­со­ва­ния гра­фи­ков, а са­ми гра­фи­к и по­яв­ля­лись в от­дель­ном ок­не. Это очень по­лез­но, ко­гда вы про­ве­ряе­те дан­ ные или функ­ции и хо­ти­те ви­деть влия­ние из­ме­не­ния па­ра­мет­ров на гра­фи­че­­ский вы­вод. Но ес­ли вы ис­поль­зуе­те gnuplot в дру­гом при­ло­же­нии или на сай­те, на­до при­ме­нить скрип­ты и вы­пол­нять его в фо­но­вом ре­жи­ме без вме­ша­тель­ст­ва поль­зо­ва­те­ля. В этом слу­чае поль­зо­ва­те­лю да­же не нуж­но знать, что гра­фи­ки соз­да­ют­ся в gnuplot — им ин­те­ре­сен толь­ко вы­вод на web-стра­ни­це. Во мно­гих слу­ча­ях об­ра­бот­ки боль­ших объ­е­мов дан­ных вы бу­ де­те ис­поль­зо­вать тех­но­ло­гии боль­ших дан­ных, та­кие как Hadoop. За­тем вы за­хо­т и­те ис­поль­зо­вать ви­зуа­ли­за­цию вы­ход­ных дан­ ных сре­ды MapReduce, ко­то­рые обыч­но пред­став­ле­ны в фор­ма­те ключ–зна­че­ние, и скрип­ты gnuplot в этих слу­ча­ях очень по­лез­ны. Скрип ­т ы, на­п и­с ан­н ые для gnuplot, очень по­хо­ж и на лю­б ые дру­гие ви­ды скрип­тов, та­ких как скрип­ты обо­лоч­ки Bash. Скрипт gnuplot пред­с тав­л я­е т со­б ой ком­б и­н а­ц ию ко­м анд gnuplot. Эти ко­ман­ды вы­пол­ня­ют­ся по­сле­до­ва­тель­но свер­х у вниз. Вы мо­жете вы­б рать раз­л ич­н ые гра­ф и­ч е­­с кие фор­м а­т ы вы­ход­н ых фай­л ов с по­мо­щью ко­ман­ды set terminal (как по­ка­за­но ни­же). Сле­дую­щий скрипт соз­да­ет файл PNG, по­ка­зы­вая вы­вод ко­ман­ды plot: #!/usr/local/bin/gnuplot set terminal pngcairo set output ‘gnuplot_sample.png’ set title “Scripting Example” set xrange [-10 : 5] plot sin(x),2*cos(x)

******************** file simple.dem ******************** Hit return to continue [На ­жми­те Enter для про­дол­же­ния]

Ко­гда вы на ­х о­д и ­т есь в ин ­т е­р ак ­т ив­н ом ре­ж и­м е, есть ряд дей­с т­вий, ко­то­рые мож­но пред­при­нять в гра­фи­че­­ском ок­не, где ото­бра ­жа­ют­ся гра­фи­ки. Эти дей­ст­вия вклю­ча­ют следующие: 1 Ус­та­но­вить цвет фо­на ок­на. 2 По­ка­зать или скрыть ли­нии сет­ки. 3 Уве­ли­чить или умень­шить. 4 Ско­пи­ро­вать те­к у­щий гра­фик в бу­фер об­ме­на, что­бы мож­но бы­ло вста­вить его в дру­гое при­ло­же­ние. 5 Экс­пор­ти­ро­вать гра­фик в PDF как изо­бра­же­ние. 6 Вра­щ ать гра­ф ик в двух или трех из­м е­р е­н и­я х, в за­в и­с и­м о­ сти от то­го, как он был соз­д ан, т. е. ес­ли для соз­д а­ния гра­фи­ка

> При­ме­ры по­ка­зы­ва­ют, что вы во­об­ще мо­же­те сде­лать. Вот гра­фик в ви­де за­бо­ра.

Ис­поль­зо­ва­ние при­ме­ров gnuplot Ис­ход­ный код gnuplot вклю­ча­ет не­ма ­ло при­ме­ров. Код для них на­хо­дит­ся в ка­та­ло­ге demo. Мы на­стоя­ тель­но ре­ко­мен­д у­ем ис­поль­зо­вать при­ме­ры для обу­че­ния, так как это по­мо­жет по­нять дос­т уп­ные функ­ции, а по­том вы мо­же­те из­ме­нить код под ва­шу кон­крет­ную цель. Де­мо-ка­та­лог вклю­ча­ет фай­лы, ох­ва­ты­ваю­щие сле­д ую­щие ос­нов­ные об­лас­ти:

72  |  LXF210 Июнь 2016

> Ос­нов­ные дву- и трех­мер­ные гра­фи­ки, в т. ч. ли­ нии, от­рез­ки, кру­ги, со­вме­щен­ные гра­фи­ки, ма­ни­ пу­ля­ции с тек­стом. > Трех­мер­ные по­верх­но­сти в по­ляр­ных, ци­лин­д­ри­ че­­ских и сфе­ри­че­­ских ко­ор­ди­на­тах. > При­ме­ры, ис­поль­зую­щие ма­те­ма­ти­че­­ские и ста­ти­ сти­че­­ские функ­ции и ап­прок­си­ма­цию.

www.linuxformat.ru/subscribe

> Ра­бо­та с дво­ич­ны­ми дан­ны­ми и изо­бра ­же­ния­ми. > Фор­ма­ти­ро­ва­ние гра­фи­ков при по­мо­щи оформ­ ле­ния над­пи­сей, вер­ст­ки, из­ме­не­ния сти­лей ли­ний, стре­лок, за­лив­ки, про­зрач­но­сти и ани­ма­ции. Во мно­гих слу­ча­ях най­де­тся при­мер, ко­то­ рый по­мо­жет вам сэ­ко­но­мить вре­мя на ос­вое­ние программы.


gnuplot Учебник

> В ин­те­рак­тив­ном ре­жи­ме вы уви­ди­те два ок­на: ок­но для вво­да ко­манд и гра­ фи­че­­ское ок­но, в ко­то­ром ото­бра­ жа­ют­ся ре­зуль­та­ты ва­ших ко­манд.

Ппроа­на ­ли­зи­ру­ем этот скрипт стро­ка за стро­кой. Пер­вая стро­ ка по­ка­зы­ва­ет путь к ис­пол­няе­мо­му фай­лу gnuplot. Вто­рая — за­ да­ет тип вы­во­д а. Вы мо­же­те вы­брать один из мно­гих вы­ход­ных фор­ма­тов (оп­ции вы­д аст справ­к а -help). Имя вы ­ход­но­го фай ­ла gnuplot_sample.png на­хо­дит­ся в треть­ей стро­ке. Ко­ман­да set title, как и сле­до­ва­ло ожи­дать, за­да­ет за­го­ло­вок для гра­фи­ка. Ко­ман­ да set xrange ус­та­нав­ли­ва­ет диа­па­зон гра­фи­ка по оси X. Для оси Y мож­но ис­поль­зо­вать set yrange. По­след­няя стро­ка ри­су­ет сам гра­ фик и соз­да­ет файл PNG. Что­бы сде­лать этот скрипт ис­пол­няе­мым и за­пус­тить его, ис­поль­зуй­те сле­дую­щие две стро­ки ко­да: chmod u+x gnuplot_script.plt ./gnuplot_script.plt Ска­жем сно­в а: это про­с то, как и лю­бой дру­гой скрип­то­вый язык. Здесь мы на­зва­ли скрипт gnuplot_script.plt. Но вы мо­же­те ис­поль­зо­вать для фай­ла лю­бое имя, и оно не обя­за­тель­но дол­жно за­кан­чи­вать­ся рас­ши­ре­ни­ем PLT. По­сле за­пус­ка ука­зан­ной вы­ше ко­ман­ды вы уви­ди­те в те­к у­щем ка­та­ло­ге но­вый файл с име­нем gnuplot_sample.png. Вы об­на­ру­жи­те, что gnuplot — очень хо­ро­шо до­к у­мен­ти­ро­ван­ ная про­грам­ма. Мож­но ска­чать ин­ст­рук­цию к gnuplot с офи­ци­а ль­ но­го сай­та (www.gnuplot.info) или вос­поль­зо­вать­ся он­лайн-по­мо­ щью. Что­бы по­лу­чить спи­сок всех ко­манд gnuplot в ин­те­рак ­тив­ном ре­жи­ме, ис­поль­зуй­те ко­ман­ду help?, и gnuplot по­ка ­жет спи­сок всех дос­т уп­ных ко­манд, вот так: gnuplot> help ?

Help topics available: 2D 3D automated batch/interactive binary bugs canvas changes circle

background call colornames

и так да ­лее.

По­лу­че­ние по­мо­щи в gnuplot Что­бы по­л у ­чить по­мощь в ин ­те­рак ­т ив­ном ре­ж и­ме для оп­ре­де­ лен­ной ко­ман­ды, ис­поль­зуй­те имя ко­ман­ды в ка­че­­ст­ве ар­г у­мента ко­ман­ды help, на­при­мер, gnuplot> help plot. Мы на­стоя­тель­но ре­ ко­мен­д у­ем вам по­лу­чить справ­к у о дру­гих час­то ис­поль­зуе­мых ко­ман­дах, что­бы на­чать соз­да­вать бо­лее кра­си­вые гра­фи­ки. Ути­ли­т а по­с трое­ния гра­ф и­ков так­же пре­д ос­т ав­ля­е т управ­ ляю­щие струк ­т у­ры для при­ня­тия ре­ше­ний и по­вто­ряю­щих­ся за­ дач. Эти струк­т у­ры вклю­ча­ют if, for и while. Вы мо­же­те ис­поль­зо­ вать ко­ман­ду help, что­бы по­лу­чить бо­лее под­роб­ную ин­фор­ма­цию об этих струк­т у­ры управ­ле­ния, а в при­ме­ре (ни­же) по­ка­за­но, как ра­бо­та­ет ко­ман­д а for, что­бы вы­пол­нить опе­ра­цию оп­ре­де­лен­ное ко­ли­че­­ст­во раз: plot for [i=1:3] sin(i*x) Эта ко­ман­д а ри­су­ет си­ну­сои­д у три раза. По су­ти, она стро­ит гра­фи­ки sin(х), sin(2*х) и sin(3*х). Вы мо­же­те ис­поль­зо­вать па­ра­ метр lw и по­стро­ить гра­фик не­сколь­ко ин­те­рес­нее, варь­и­руя тол­ щи­ну ли­нии: plot for [n=1:5] sin(x*n)/n lw (6-n)/2 Опять-таки, при у­потребле­нии управ­ляю­щих струк ­т ур един­ ст­вен­ным ог­ра­ни­че­ни­ем яв­ля­ет­ся во­об­ра ­же­ние. С по­мо­щью этих ко­манд вы мо­же­те при­ни­мать ре­ше­ния, ос­но­ван­ные на зна­че­нии точ­ки дан­ных, и пи­сать до­воль­но слож­ные скрип­ты. Как ви­ди­те, gnuplot яв­ля­ет­ся очень по­лез­ным, уни­вер­саль­ным и мощ­ным ин­ ст­ру­мен­том ви­зуа ­ли­за­ции дан­ных. Он дос­т у­пен бес­плат­но во всех ос­нов­ных ди­ст­ри­бу ­ти­вах Linux, и вы так ­же мо­же­те ском­пи­ли­ро­ вать его из ис­ход­ных тек­стов. Ес­ли вы ис­поль­зуе­те Hadoop, этот ин­ст­ру­мент мо­жет стать ва­шим вы­бо­ром для пред­став­ле­ния вы­ ход­ных дан­ных и соз­да­ния гра­фи­ков. На­сла­ж ­дай­тесь ис­поль­зо­ва­ ни­ем ин­ст­ру­мен­та по­строе­ния гра­фи­ков и со­об­щи­те, что вам уда­ лось сде­лать! |

Ре­сур­сы > До­маш­няя стра­ни­ца gnuplot: www.gnuplot.info. > Ска­чать gnuplot: https://sourceforge.net/projects/gnuplot/files/gnuplot. > gnuplot вер­сии 5.0.3, ис­поль­зо­ван­ной для этой ста­тьи, на­хо­дит­ся на https://sourceforge.net/projects/gnuplot/files/gnuplot/5.0.3.

> Столь­ко гра­фи­ков на вы­бор... этот — в по­ляр­ных ко­ор­ди­на­тах.

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 73


Ото­бра­же­ние дан­ных В па­кете для ма­те­ма­ти­ че­ских рас­че­тов выводим результаты

Scilab: Стро­им гра­фи­ки Как обнаружил Дмит­рий Цы­май, результаты математических расчетов можно выводить прямо из программы, которая их выполняет. Спасибо, Scilab! 3 Из­ме­не­ние оформ­ле­ния гра­фи­ка 4 Экс­порт в удоб­ный гра­фи­че­­ский фор­мат Рас­чет ис­ход­ных дан­ных для по­строе­ния гра­фи­ков вы­пол­ня­ ет­ся стан­д арт­ны­ми сред­с т­ва­ми Scilab. Об этом уже го­во­ри­лось во мно­гих пуб­ли­ка­ци­ях. Для по­с трое­ния дву­мер­ных гра­фи­ков мож­но ис­поль­зо­в ать функ­ции plot(), plot2d(), а так ­же ряд до­пол­ни­тель­ных функ­ций, пол­ный спи­сок ко­то­рых при­ве­ден в до­к у­мен­та­ции. Оформ­ле­ние гра­фи­ка мож­но вы­пол­нять не­по­сред­ст­венно в ме­ню гра­фи­че­­ско­­ го ок­на и при по­мо­щи ко­манд, из­ме­няю­щих свой­ст­ва эле­мен­тов гра­фи­че­­ско­­го ок­на.

Наш эксперт Дмит­рий Цы­­май — к.т.н, до­цент ФГБОУ ВПО «Гос­ уни­вер­си­тетУНПК». Ему ин­ те­рес­ны те­мы об­ра­бот­ки дан­ных с ис­поль­зо­ва­ни­ем ма­те­ма­ти­че­­ских па­ке­тов.

Функ­ция plot()

П

ро­г рам­ма Scilab пред­на­зна­че­на для ре­ше­ния ши­ро­ко­ го спек ­т ра ма­те­ма­т и­че­­ских за­д ач, от про­с тых числен­ ных рас­че­тов до диф­фе­рен­ци­а ль­ных урав­не­ний. На на­ шем уро­ке мы рас­смот­рим ее воз­мож­но­сти ра­бо­ты с гра­фи­ка­ми (по­строе­ние, оформ­ле­ние, экс­порт в раз­лич­ные фор­ма­ты). Что­бы не вво­дить ко­ман­ды в диа­ло­го­вом ре­жи­ме, на­пи­шем про­грам­му для вы­пол­не­ния за­дан­ных дей­ст­вий на встро­ен­ном язы­ке про­грам­ ми­ро­ва­ния. Раз­де­лим на­шу про­грам­му на че­ты­ре час­ти: 1 Рас­чет дан­ных 2 По­строе­ние гра­фи­ка

> Рис. 1. Гра­фи­ ки функ­ций sin(x2) и cos(x2). 1 0,9 0,8 0,7 0,6 0,5 0,4 0,3 0,2 0,1 0 -0,1 -0,2 -0,3 -0,4 -0,5 -0,6 -0,7 -0,8 -0,9 -1 -8

-7,5

-7

-6,5

-6

-5,5

-5

-4,5

74  |  LXF210 Июнь 2016

-4

-3,5

-3

-2,5

-2

-1,5

-1

-0,5

0

0,5

1

1,5

2

2,5

3

3,5

4

4,5

5

5,5

6

6,5

7

7,5

8

В об­щем ви­де син­так­сис об­ра­ще­ния к этой функ­ции вы­гля­дит так: plot(x1,y1,<LineSpec1>,x2,y2,<LineSpec2>,...xN,yN,<LineSpecN>,< GlobalProperty1>, <GlobalProperty2>,..<GlobalPropertyM>). где xi — мат­ри­ца или век­тор абс­цисс, yi — мат­ри­ца или век­тор ор­ ди­нат ли­бо функ­ция для их вы­чис­ле­ния, LineSpeci — стро­ка, от­ве­ чаю­щая за оформ­ле­ние дан­ной кри­вой, GlobalProperty — опи­са­ние оформ­ле­ния все­го ри­сун­ка. Про­грам­ма по­строе­ния двух гра­фи­ков в од­них осях ко­ор­ди­нат с по­мо­щью функ­ции plot() вы­гля­дит сле­дую­щим об­ра­зом: x=-2*%pi:0.1:2*%pi; // Оп­ре­де­ля­ем век­тор x y=sin(x.^2); // Оп­ре­де­ля­ем век­тор y z=cos(x.^2); // Оп­ре­де­ля­ем век­тор z plot(x,y,'r-',x,z,'b-') // Стро­им гра­фик Пер­вый и вто­рой ар­г у­мен­ты функ­ции — мас­си­вы x и y. Треть­им ар­г у­мен­том оп­ре­де­ля­ет­ся стиль ка­ж ­до­го гра­фи­ка. В дан­ном слу­ чае 'r-' ука­зы­ва­ет ото­бра­зить гра­фик крас­ным цве­том сплош­ной ли­ни­ей, а 'b-' — ото­бра­зить гра­фик си­ним цве­том сплош­ной ли­ни­ ей. В од­ной стро­ке ука­зы­ва­ет­ся цвет ли­нии, стиль ли­нии, тип мар­ ке­ра. И так по три ар­г у­мен­та для ка­ж ­до­го гра­фи­ка. Ре­зуль­тат вы­ пол­не­ния по­ка­зан на рис. 1. Рас­смот­рим воз­мож­но­сти оформ­ле­ния. Ар­г у­мент GlobalProper­ tis ука­зы­ва­ет­ся в ви­де пар {<Имя свой­ст­ва>, <Зна­че­ние свой­ст­ва>}. Имя свой­с т ­ва долж ­но быть стро­кой, а зна­че­ние свой­с т ­ва за­ви­ сит от ти­па свой­ст­ва. Пол­но­го на­пи­са­ния име­ни ка­ж ­до­го свой­ст­ва и зна­че­ния не тре­бу­ет­ся. Мно­гие из свойств ана­ло­гич­ны та­ким же свой­ст­вам в Matlab. При­ве­дем не­ко­то­рые из свойств c их зна­че­ния­ми, ко­то­рые мож­ но оп­ре­де­лять в функ­ции plot(). » Clipping Стро­ка «on» или «off», оп­ре­де­ляю­щ ая ре­жим об­рез­ки (по умол­ча­нию — «on»). » Color (Foreground) Пред­с тав­ля­ет стро­к у, оп­ре­де­ляю­щ ую цвет, или RGB-век ­т ор раз­м е­р ом 1 × 3, оп­р е­д е­л яю­щ ий но­м ер цве­т а. Но­мер цве­та за­д а­ет­ся в ви­де трой­ки R, G, B, означаю­щих, со­от­ вет­ст­вен­но, ин­тен­сив­но­сти крас­но­го, зе­ле­но­го и си­не­го.

www.linuxformat.ru/subscribe


Scilab Учебник

Оформ­ле­ние тек­сто­вых эле­мен­тов Об­ра­т им вни­ма­ние на па­ра­мет ­ры ко­манд xtitle() и legend(), они опи­с а­ны в фор­ма­т е LaTeX. Внут­ри оди­ноч­ных ка­вы­чек за­пи­с а­ ны фор­му­лы, об­рам­лен­ные зна­ка­ми $. Все, что на­хо­дит­ся ме­ж ­ду зна­ка­ми $, ин­тер­пре­ти­ру­ет­ся LaTeX и за­тем кра­си­во ото­бра ­жа­ет­ся на гра­фи­ке. Осо­бен­но­стью дан­но­го ин­тер­пре­та­то­ра яв­ля­ет­ся пло­ хая ра­бо­та с ки­рил­ли­цей. Ес­ли в па­ра­мет­ры xtitle вклю­чить текст с ки­рил­ли­че­­ски­­ми сим­во­ла­ми, то на гра­фи­ке бу­дет ото­бра ­жать­ ся ' Гра­фик $sin(x^2)$'. Ана­ло­гич­ная про­бле­ма бу­дет при по­пыт­ ке вста­вить ки­рил­ли­цу в фор­му­лу до­к у­мен­та LaTeX. Что­бы ис­пра­ вить си­т уа­цию, за­пи­шем па­ра­мет­ры ко­ман­ды xtitle() по дру­го­му. Текст бу­дем пи­сать внут­ри ко­ман­ды '\textsc{}'. Окон­ча­тель­ный ре­ зуль­тат за­пи­шем так: xtitle('$\textsc{Гра­фик\ функ­ций\ с\ оформ­ле­ни­ем}\ \sin(x^2)\ \ textsc{и}\ \cos(x^{2})$','x','y') Ки­рил­ли­ца об­рам­ле­на ко­ман­дой '\textsc{}', то есть точ­но так же, как и в фор­му­лах обыч­но­го LaTeX-до­к у­мен­та. Кро­ме ука­зан­ной

1 0,8 0,6 0,4 0,2

y

» LineStyle Оп­ре­де­ля­ет стиль начертания ли­нии и свя­за­но с объ­ ект­ным свой­ст­вом line_style. Его зна­че­ния­ми мо­г ут быть: сплош­ ная ли­ния (-), штри­хо­вая ли­ния (--), пунк ­тир­ная ли­ния (:), штрихпунк ­тир­ная ли­ния (-.). » Marker Пред­став­ля­ет стро­к у, ука­зы­ваю­щую тип мар­ке­ра (+, o, *, x, и т. д.); свя­за­но с объ­ект­ны­ми свой­ст­ва­ми mark_style [стиль мар­ ке­ра] и mark_mode [ре­жим мар­ке­ра] (см. свой­ст­ва ло­ма­ной ли­нии или свой­ст­ва по­верх­но­стей). » MarkerEdgeColor (MarkForeground) и MarkerFaceColor (Mark­Back­ ground) Оп­ре­де­ля­ют цвет кром­ки и фон мар­ке­ра, пред­с тав­ля­ют стро­ки, ана ­ло­гич­ные свой­с т­ву Color. Они свя­за­ны с объ­ект­ны­ми свой­ст­ва­ми mark_foreground и mark_background со­от­вет­ст­вен­но. » MarkerSize Оп­ре­де­ля­ет раз­мер мар­ке­ра в пунк­тах [point]. Свя­за­но с объ­ект­ным свой­ст­вом mark_size с mark_size_unit [еди­ни­цы из­ме­ ре­ния раз­ме­ра мар­ке­ра], ус­та­нов­лен­ным в «point». » Visible Оп­ре­де­ля­ет ре­жим ви­ди­мо­сти ли­ний и при­ни­ма­ет зна­че­ ния "on" или "off". » X data, Y data Яв­ля­ют­ся мат­ри­ца­ми ве­ще­ст­вен­ных зна­че­ний, пе­ ре­оп­ре­де­ляю­щих ука­зан­ные дан­ные для всех по­стро­ен­ных ли­ний. Эти мат­ри­цы долж­ны иметь оди­на­ко­вую раз­мер­ность. Они свя­за­ ны с объ­ект­ны­ми свой­ст­ва­ми data.x и data.y. По­стро­им наш гра­фик с ука­за­ни­ем цве­та и ти­па ли­ний, цве­та и раз­ме­ра мар­ке­ров. До­ба­вим сет­к у, под­пи­си по осям, под­пи­си ли­ний, а так ­же на­зва­ние всего гра­фи­ка. Для это­го из­ме­ним на­ шу про­грам­му: x=-2*%pi:0.1:2*%pi; // Оп­ре­де­лим век­тор зна­че­ний x y=sin(x.^2); // Век­тор зна­че­ний y z=cos(x.^2); // Век­тор зна­че­ний z //1-й гра­фик со сти­ля­ми plot(x,y,'colo','red','linest','-','marker','s','markeredg','cyan', 'markerFace','yellow','markersize',5) //2-й гра­фик со сти­ля­ми plot(x,z,'colo','blue','linest','-.','marker','x','markeredg','cyan', 'markerFace','yellow','markersize',5) // Под­пи­си осей и на­зва­ние гра­фи­ка xtitle('График функ­ций с оформ­ле­ни­ем','x','y') // По­яс­не­ние legend(‘$\sin(x^2)$’, ‘$\cos(x^{2})$’) xgrid() // До­ба­вим сет­к у В дан­н ом слу ­ч ае мы по­с трои ­л и гра­ф и­к и дву ­м я от­д ель­н ы­ ми ко­ман­д а­ми, но в од­ном и том же гра­фи­че­­ском ок­не и од­них и тех же ко­ор­ди­на­тах. Так удоб­ней, по­сколь­к у ко­ли­че­­с т­во ар­г у­ мен­тов, не­об­хо­ди­мое на ка ­ж ­дый гра­фик, уве­ли­чи­лось. То же са­ мое мож­но вы­пол­нить и од­ной ко­ман­дой.

0 -0,2 -0,4 -0,6 -0,8 -1 -8

-7

-6

-5

-4

-3

-2

-1

0

1

2

3

4

5

6

7

8

x

ко­ман­ды, есть ряд ана ­ло­гич­ных. Об­ра­ти­те вни­ма­ние на про­бе­лы: их так­же сле­д у­ет от­ме­чать ко­ман­дой '\ '. По умол­ча­нию гра­фи­ ки стро­ят­ся в ак­тив­ном гра­фи­че­­ском ок­не. Ес­ли окон не­сколь­ко, то не­об­хо­ди­мо ис­поль­зо­вать де­ск­рип­то­ры окон. Окон­ча­тель­ный ва­ри­ант по­лу­чен­но­го гра­фи­ка пред­став­лен на рис. 2.

> Рис. 2. Гра­фи­ки функ­ций sin(x2) и cos(x2) с оформ­ле­ни­ем.

Функ­ция plot2d() Те­перь рас­смот­рим воз­мож­но­сти функ­ции plot2d() для по­строе­ ния оформ­лен­ных гра­фи­ков. Функ­ц ия име­е т сле­д ую­щ ий фор­ мат вы­зо­ва: plot2d([logflag,][x,],y[,style[,strf[,leg[,rect[,nax]]]]]) plot2d([logflag,][x,],y,<opt_args>) Функ­ция име­ет сле­д ую­щие ар­г у­мен­ты: х, y — мат­ри­цы зна­ че­ний, по ко­то­рым стро­и т­ся гра­фик. Ес­ли ар­г у­мент x не за­д ан, то он пред­по­ла­га­ет­ся рав­ным век­то­ру от 1 до N (N — ко­ли­че­­ст­во эле­мен­тов в век ­то­ре y). Даль­ней­шие ар­г у­мен­ты за­да­ют­ся в фор­ме <Имя1>=<Зна­че­ние1>, <Имя2>=<Зна­че­ние2>, … Ар­г у­мент logflag ус­т а­нав­ли­ва­ет мас­ш таб (ли­ней­ный или ло­ га­риф­ми­че­­ский) по осям и при­ни­ма­ет в ка­че­­с т­ве зна­че­ния од­ну из строк «nn», «nl», «ln» и «ll». Ар­г у­мент style ус­та­нав­ли­ва­ет стиль для ка ­ж ­дой кри­вой. Зна­че­ни­ем яв­ля­ет­ся це­лое чис­ло. Ар­г у­мент leg ус­та­нав­ли­ва­ет под­пи­си к кри­вым на гра­фи­ке и пред­став­ля­ет стро­ ку. rect ус­та­нав­ли­ва­ет пря­мо­уголь­ник, в пре­де­лах ко­то­ро­го ото­бра­ жа­ет­ся гра­фик. Зна­че­ние дан­но­го ар­г у­мен­та за­д а­ет­ся век ­то­ром из че­ты­рех чи­сел [xmin,ymin,xmax,ymax]. nax ус­та­нав­ли­ва­ет мет­ки осей, за­да­ет­ся век­то­ром из че­ты­рех чи­сел [nx,Nx,ny,Ny]. frameflag управ­ля­ет вы­чис­ле­ни­ем фак ­ти­че­­ских ко­ор­ди­нат. axesflag ука­зы­ва­ ет, как долж­ны быть на­ри­со­ва­ны оси. Функ­ция plot2d() по­зво­ля­ет ри­со­вать не­сколь­ко гра­фи­ков в од­ них ко­ор­ди­на­тах, за­да­вая ка­ж ­до­му из них свой стиль, об­ре­зать не­ нуж­ную часть гра­фи­ка, мас­шта­би­ро­вать гра­фик, управ­лять мет­ка­ ми осей гра­фи­ка. Вы­пол­ним при по­мо­щи plot2d() по­строе­ние гра­фи­ков функ­ций sin(x2) и cos(x2). Об­ре­жем ви­ди­мую об­ласть гра­фи­ка пря­мо­уголь­ ни­ком от -0,5 до 0,5 по оси Y и от -π до π. На осях ос­та­вим по че­ты­ре ос­нов­ных де­ле­ния, мет­ки ко­то­рых ото­бра ­жа­ют­ся, и ме­ж ­д у ни­ми по че­ты­ре про­ме­ж у ­точ­ных де­ле­ния. x=[-2*%pi:0.1:2*%pi]'; // За­д а­ем зна­че­ние x (век ­тор-стол­бец) // Стро­им гра­фи­ки

»»Подпишитесь на печатную или электронную версии на www.linuxformat.ru/subscribe! www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 75


Учебник Scilab

0,500

0,167

-0,167

-0,500 -3,142

> Рис. 3. По­строе­ние гра­фи­ков при по­ мо­щи функ­ции plot2d().

-1,047

1,047

3,142

plot2d(x,[sin(x.^2) cos(x.^2)], [1,3], leg=”$sin(x^2)$@$cos(x^2)$”, nax=[3,4,3,4], rect=[-%pi,-0.5,%pi,0.5]); xgrid() // Соз­д а­ем сет­к у на гра­фи­ке Ре­зуль­тат вы­пол­не­ния пред­став­лен на рис. 3. На гра­фи­ке ука­за­ ны оси и сет­ка, при­ве­де­ны под­пи­си к кри­вым (па­ра­метр leg). Зна­че­ ние па­ра­мет­ра leg пред­став­ля­ет со­бой стро­к у, внут­ри ко­то­рой эле­ мен­ты, от­но­ся­щие­ся к ка­ж ­до­му гра­фи­к у, раз­де­ле­ны сим­во­лом @.

Два и бо­лее гра­фи­ков на од­ном ри­сун­ке Рас­по­ло­жим не­сколь­ко гра­фи­ков на од­ном ри­сун­ке, ка ­ж ­дый в сво­ их ко­ор­ди­на­тах. Для этой це­ли под­хо­дит ко­ман­д а subplot(nmp). Она де­лит гра­фи­че­­с кое ок­но на об­лас­т и (n строк, m столб­цов)

и ука­зы­ва­ет на ак­тив­ную об­ласть, в ко­то­рой в дан­ный мо­мент сле­ ду­ет стро­ить гра­фик. К ка­ж ­до­му гра­фи­к у при­ме­ни­мы все рас­смот­ рен­ные ра­нее ко­ман­ды и сти­ли оформ­ле­ния. По­стро­им ука­зан­ные два гра­фи­ка один под дру­гим. Для это­го вы­пол­ним ко­ман­ды subplot(211)// Ак ­тив­на верх­няя об­ласть гра­фи­че­ско­го ок­на x=[-2*%pi:0.1:2*%pi]'; // Спи­сок зна­че­ний x (век ­тор-стол­бец) // Стро­им гра­фик plot2d(x,sin(x.^2), 1,leg=”$sin(x^2)$”,nax=[3,4,3,4],re ct=[-%pi,-0.5,%pi,0.5]); xgrid() // Сет­ка xtitle(‘$\textsc{Гра­фик\ функ­ции\ с\ оформ­ле­ни­ем}\ \ sin(x^2)$’,’x’,’$y_1$’) subplot(212) // Ак ­тив­на ниж­няя об­ласть гра­фи­че­ско­го ок­на // Стро­им гра­фик plot2d(x,cos(x.^2), 3,leg=”$cos(x^2)$”,nax=[3,4,3,4],re ct=[-%pi,-1,%pi,1]); xgrid() // Сет­ка // За­д а­ем под­пи­си xtitle(‘$\textsc{Гра­фик\ функ­ции\ с\ оформ­ле­ни­ем}\ \ cos(x^{2})$’,’x’,’$y_2$’) Мы по­лу­чим ре­зуль­тат, по­ка­зан­ный на рис. 4. Об­ра­ти­те вни­ма­ ние: гра­фи­ки, под­пи­си к ним и мет­ки осей мас­шта­би­ру­ют­ся.

Де­ск­рип­то­ры Наи­бо­лее удоб­ный спо­соб от­де­ле­ния вы­чис­ле­ния и об­ра­бот­ки дан­ ных от оформ­ле­ния и экс­пор­т а в файл — ис­поль­зо­ва­ние де­ск­ рип­то­ров для дос­т у­па к раз­лич­ным свой­ст­вам гра­фи­че­­ских окон, осей, гра­ф и­ков. Де­с к­р ип­т ор пред­с тав­л я­е т со­б ой уни­к аль­н ый иден­ти­фи­ка­тор, свя­зан­ный с ка ­ж ­дым соз­д ан­ным гра­фи­че­­ским объ­ек ­том. С его по­мо­щью мож­но до­б­рать­ся до свойств объ­ек ­тов че­рез функ­ции set и get, а так­же ма­ни­пу­ли­ро­вать ими (дви­гать, ко­ пи­ро­вать или уда­лять). Гра­фи­че­­ское ок­но (Figure) яв­ля­ет­ся ие­рар­хи­че­­ским объ­ек ­том верх­не­го уров­ня. Он оп­ре­де­ля­ет па­ра­мет­ры соб­ст­вен­но гра­фи­че­ ­ско­­го ок­на, а так­же зна­че­ния по умол­ча­нию па­ра­мет­ров при соз­ да­нии по­том­ков. Ка ­ж ­дое ок­но оп­ре­де­ля­ет по мень­шей ме­ре од­но­ го по­том­ка ти­па оси (Axes). Ка­ж ­дый объ­ект Axes со­дер­жит на­бор

0,500

0,167

-0,167

-0,500 -3,142

-1,047

1,047

3,142

1,047

3,142

x

1,000

0,333

-0,333

-1,000

> Рис. 4. Два гра­ фи­ка на од­ном ри­сун­ке.

-3,142

-1,047 x

»»Пропустили номер? Узнайте на с. 108, как получить его прямо сейчас. 76  |  LXF210 Июнь 2016

www.linuxformat.ru/subscribe


Scilab Учебник

1 Y

лис­то­вых объ­ек ­тов: под­пи­си кри­вых, под­пи­си осей, и т.  д. Ис­поль­ зо­ва­ние де­ск­рип­то­ров по­зво­лит не за­г ро­мо­ж ­д ать ко­ман­ды по­ строе­ния гра­фи­ков лиш­ни­ми па­ра­мет­ра­ми. По­лу­чить де­ск­рип­тор осей мож­но ко­ман­дой h=gca(). За­тем че­ рез не­го мож­но под­к лю­чать раз­лич­ные сти­ли оформ­ле­ния. По­ лу­чить де­ск­рип­тор осей по умол­ча­нию мож­но ко­ман­дой h=gda(). Де­ск­рип­тор гра­фи­че­­ско­­го ок­на доставит ко­ман­да h=gcf(). В даль­ней­шем с ука­зан­ны­ми де­ск­рип­то­ра­ми мож­но ра­бо­тать, ука­зы­вая их свой­ст­ва: h.<свой­с т­во>=<зна­че­ние свой­с т­ва> Ко­ман­д а get(<Свой­с т­во>) по­зво­ля­ет по­лу­чить зна­че­ние про­ из­воль­но­го свой­ст­ва, а ко­ман­да set(<Свой­ст­во>, <Зна­че­ние>) ус­ та­на­в­ливает зна­че­ние свой­ст­ва. С по­мо­щью при­ве­ден­ных ко­манд мож­но по­лу­чить и де­ск­рип­то­ры. На­при­мер, де­ск­рип­тор ак ­тив­но­го гра­фи­че­­ско­­го ок­на мо­жет быть по­лу­чен с по­мо­щью get("current_ figure"), а де­ск ­рип ­тор те­к у ­щих осей — с по­мо­щью get("current_ axes"). При по­мо­щи ука­зан­ных ко­манд мож­но ра­бо­тать со все­ми ран­нее пе­ре­чис­лен­ны­ми свой­ст­ва­ми гра­фи­че­­ских объ­ек ­тов. Пе­р е­ч ис­л им не­ко­т о­р ые свой­с т­в а объ­е к ­т а Axes с крат­к и­м и по­яс­не­ния­ми. » parent Со­дер­жит де­ск­рип­тор гра­фи­че­­ско­­го ок­на. » children Век ­тор, вклю­чаю­щий гра­фи­че­­ские объ­ек ­ты, та­кие как "Rectangle", "Polyline", "Segs", "Arc". » visible Управ­ля­ет ото­бра ­же­ни­ем осей и их по­том­ков, при­ни­ма­ет зна­че­ния "on" или "off". » axes_visible, axes_reverse Оп­ре­де­ля­ют ви­ди­мость и на­прав­ле­ние осей ко­ор­ди­нат, пред­став­ля­ют век ­тор 1 × 3, в ко­то­ром ука­зы­ва­ет­ся ви­ди­мость ка ­ж ­дой оси (зна­че­ния эле­мен­тов "on" или "off"). » grid Управ­ля­ет ото­бра ­же­ни­ем ли­ний сет­ки, зна­че­ни­ем яв­ля­ет­ ся век­тор 1 × 3. » x_location, y_location Управ­ля­ют по­ло­же­ни­ем со­от­вет­ст­вую­щих осей на гра­фи­ке, при­ни­ма­ют в ка­че­­ст­ве зна­че­ния од­ну из сле­дую­ щих строк: "bottom", "top", "middle", "origin". » title За­го­ло­вок гра­фи­ка. » x_label, y_label, z_label Оп­ре­де­ля­ют под­пи­си осей ко­ор­ди­нат. » font_style, font_size, font_color Оп­ре­де­ля­ют па­ра­мет­ры шриф­та. » mark_mode, mark_style, mark_size_unit, mark_size, mark_back­ ground Оп­ре­де­ля­ют па­ра­мет­ры мар­ке­ров. » line_mode, line_style Оп­ре­де­ля­ют па­ра­мет­ры ли­ний. Под­роб­но о ка­ж ­дом из этих свойств, а так­же о дру­гих свой­ст­вах мож­но по­чи­т ать в до­к у­мен­т а­ции. Те­перь пе­ре­пи­шем на­ш у про­ грам­му по­строе­ния гра­фи­ков с ис­поль­зо­ва­ни­ем де­ск­рип­то­ров для из­ме­не­ния свойств гра­фи­че­­ских объ­ек ­тов. В ней мож­но вы­де­лить три эта­па, ука­зан­ные в на­ча­ле ста­тьи. // 1) Вы­чис­ля­ем век­то­ра зна­че­ний x и y x=[-2*%pi:0.1:2*%pi]’; y=sin(x.^2); // // 2) Стро­им гра­фик plot2d(x,y) // // 3) Оформ­ля­ем по­лу­чен­ный гра­фик a=get(«current_axes») // По­лу­ча­ем ука­за­тель на оси a.axes_visible=»on»; // Де­ла­ем их ви­ди­мы­ми a.font_size=4; // Раз­мер шриф­та ме­ток осей ко­ор­ди­нат a.x_location=”middle”; // Ось x в цен­тре a.y_location=”middle”; // Ось y в цен­тре a.sub_tics=[5,0]; a.labels_font_color=5; a.grid=[1,1]; a.box=”off”; // Ука­зы­ва­ем стиль за­го­лов­ка гра­фи­ка t=a.title t.text='$\textsc{Гра­фик\ функ­ции\ y=\cos(x^{2})\ с\ оформ­ле­ни­ем}\$';

0,8 0,6 0,4 0,2

-8

-7

-6

-5

-4

-3

-2

-1

0

0

1

2

3

4

-0,2

5

6

7

8 X

-0,4 -0,6 -0,8 -1

t.foreground=9; t.font_size=4; t.font_style=4; // Ука­зы­ва­ем стиль под­пи­си по оси x x_label=a.x_label; x_label.position=[max(x)+1 -0.3]; x_label.text=’X’; x_label.foreground=9; x_label.font_style=4; // Ука­зы­ва­ем стиль под­пи­си по оси y y_label=a.y_label; y_label.position=[-0.6 max(y)-0.2]; y_label.text=’Y’; y_label.foreground=9; y_label.font_style=4; Ре­зуль­тат вы­пол­не­ния при­ве­ден­ных ко­манд по­ка­зан на рис. 5.

> Рис. 5. Гра­фик функ­ции y=cos(x2).

Экс­порт в гра­фи­че­­ский фор­мат Со­хра­ним на­ши гра­фи­ки в фай­лы гра­фи­че­­ско­­го фор­ма­та не­по­ сред­с т ­вен­но из скрип ­т а, в за­р а­нее оп­р е­д е ­лен­ный ка­т а ­лог. Это мож­но сде­лать стан­дарт­ным спо­со­бом, че­рез ме­ню гра­фи­че­­ско­­ го ок­на Scilab (Файл > Экс­пор­ти­ро­вать), а так­же из са­мо­го скрип­та. Мож­но экс­пор­ти­ро­вать в рас­тро­вые и век­тор­ные фор­ма­ты: BMP, GIF, JPEG, PDF, PS, PNG, SVG, EPS. Ре­зуль­тат дос­ти­га­ет­ся при по­мо­ щи функ­ций xs2bmp, xs2emf, xs2eps, xs2gif, xs2jpg, xs2pdf, xs2png, xs2ppm, xs2ps, xs2svg. На­зва­ния функ­ций го­во­рят са­ми за се­бя. На­ при­мер, для экс­пор­та в фор­мат SVG не­об­хо­ди­мо вос­поль­зо­вать­ся функ­ци­ей xs2svg: xs2svg(win_num, file_name [,orientation]) xs2svg(fig, file_name [,orientation]) В ка­че­­ст­ве ар­г у­мен­тов дос­та­точ­но ука­зать це­лое чис­ло, иден­ ти­фи­ка­тор (win_num) или де­ск­рип­тор (fig) гра­фи­че­­ско­­го ок­на гра­ фи­че­­с ко­­го ок ­на для экс­пор­т а, стро­к у име­ни фай ­ла (file_name) и ори­ен­та­цию (orientation), при по­мо­щи од­ной из строк 'portrait' [порт­рет] или 'landscape' [аль­бом]. До­пол­ним наш код од­ной стро­кой: xs2svg(0, 'ris', 'portrait'); Это и есть за­вер­шаю­щий пункт на­шей про­грам­мы. Ана­ло­гично мож­но экс­пор­ти­ро­вать в лю­бой дру­гой фор­мат. Ар­г у­мен­ты пе­ре­ чис­лен­ных функ­ций те же. Осо­бен­но­сти мож­но най­ти во встро­ен­ ной до­к у­мен­та­ции. Файл ris.svg по умол­ча­нию ле­жит в ра­бо­чем ка­та ­ло­ге Scilab. Ес­л и сде­л ать имя фай­л а ар­г у­м ен­т ом, пе­р е­д а­в ае­м ым поль­з о­ ва­тель­ской функ­ции на­ря­д у с дан­ны­ми для по­с трое­ния гра­фи­ ка, то мож­но спо­кой­но за­би­рать по­лу­чен­ный гра­фи­че­­ский файл из ука­зан­но­го ка­та­ло­га для встав­ки, на­при­мер, в от­чет. Про­грам­ма мо­жет быть из­ме­не­на и до­пол­не­на — на­при­мер, оформ­ле­на в ви­де функ­ции, ар­г у­мен­та­ми ко­то­рой, на­ря­ду с дан­ ны­ми, мо­г ут быть сти­ли оформ­ле­ния гра­фи­ков. |

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 77


CRIU Зна­ком­ст­во с ути­ли­той вос­ста­нов­ле­ния сис­те­мы ЧАСТЬ 2

CRIU: Прак­ти­че­ ское ру­ко­вод­ство Под ру­ко­во­дством Пав­ла Емель­я­но­ва, при­сту­пим к про­стей­шим ис­пы­та­ни­ям CRIU.

Н Наш эксперт Па­вел Емель­я­ нов — ар­хи­тек­тор в ко­ман­де Вир­т уо­ зо, идей­ный вдох­ но­ви­тель про­ек ­та CRIU. В ком­па­нии с 2004 г., на­чи­нал в груп­пе раз­ра­бот­ ки яд­ра Linux, ко­ то­рую за­тем воз­ гла­вил. Сей­час за­ни­ма­ет­ся ар­ хи­тек ­т у­рой про­ дук­та и от­кры­ты­ ми раз­ра­бот­ка­ми ком­па­нии.

» Пример дерева процессов с запу­ щенным top. 78  |  LXF210 Июнь 2016

а пре­ды­ду­щем уро­ке мы ус­та­нав­ли­ва­ли CRIU и про­бо­ва­ли его в де­ле, за­пус­кая тес­ты. Се­го­дня мы по­про­бу­ем за­пус­ тить CRIU са­мо­стоя­тель­но на про­стей­шем сце­на­рии его ис­поль­зо­ва­ния — со­хра­ним и вос­ста­но­вим со­стоя­ние од­но­го про­ цес­са, за­пу­щен­но­го в кон­со­ли. Кро­ме то­го, по­зна­ко­мим­ся с еще од­ной по­лез­ной ути­ли­той — CRIT. Но пре­ж ­де чем на­чать, ска­жем не­сколь­ко слов о т. н. «внеш­них ре­сур­сах» про­цес­сов.

Внеш­ние ре­сур­сы В Linux про­цес­сы мо­г ут быть свя­за­ны ме­ж ­ду со­бой. Для это­го су­ ще­ст­ву­ет це­лый на­бор средств под об­щим на­зва­ни­ем «сред­ст­ва меж­про­цесс­но­го взаи­мо­дей­ст­вия», или IPC. Как пра­ви­ло, на­ли­чие свя­зи од­но­го про­цес­са с дру­гим оз­на­ча­ет за­ви­си­мость про­цес­сов друг от дру­га — об­рыв свя­зи ско­рее все­го при­ве­дет к на­ру­ше­нию ра­бо­ты или ошиб­ке в од­ном из них или обо­их. Зная об этом, CRIU при «сня­тии» со­с тоя­ния с про­цес­с а обя­ за­тель­но про­ве­ря­ет, что со­стоя­ние бу­дет «сня­то» так­же и со всех дру­гих про­цес­сов, с ко­то­рым свя­зан пер­вый. В ма­те­ма­ти­че­­ском смыс­ле — мно­же­ст­во про­цес­сов, вклю­чен­ных в об­ра­зы, долж­но быть замк­ну ­тым. Про­с тей­ш ий вид свя­з и — де­т о-ро­д и­т ель­с кие от­н о­ш е­н ия. Обыч­но про­цес­сы-ро­ди­те­ли передают за­ви­симости «в наследст­ во» сво­им по­том­кам, так что при сня­тии со­стоя­ния с про­цес­са CRIU сра­зу вклю­ча­ет в об­ход и всех его по­том­ков (но не ро­ди­те­лей, так как при этом мы по­ло­жим в об­раз всю сис­те­му). Бо­лее слож­ные свя­зи — че­рез ка­на­лы [pipes], со­ке­ты или раз­ де­ляе­м ую па­мять. Ес­ли CRIU встре­ча­е т про­ц есс с со­ке­т ом или па­мя­тью, ко­то­рая мо­жет быть раз­де­ле­на с кем-то, кто не во­шел в об­р аз, про­ц е­д у ­р а сня ­т ия со­с тоя­ния за­вер­ш а­е т­с я с ошиб­кой. То же са­мое долж­но про­ис­хо­дить и с ка­на­ла­ми [pipe], но в яд­ре отсут­с т­ву­е т ин­т ер­фейс для про­вер­к и та­кой си­т уа­ц ии, по­э то­м у в дан­ном слу­чае CRIU по­ла­га­ет­ся на авось.

Для боль­шин­ст­ва та­ких «внеш­них свя­зей» в CRIU пре­ду­смот­ре­ ны оп­ции, по­зво­ляю­щие обор­вать их при сня­тии со­стоя­ния и под­ нять (при уча­стии про­цес­са, ини­ции­ро­вав­ше­го вос­ста­нов­ле­ние) об­ рат­но при вос­ста­нов­ле­нии. В рам­к ах это­г о уро­к а мы столк­н ем­с я с не­о че­вид­н ой внеш­ ней свя­зью — с тер­ми­наль­ной сес­си­ей. «Внеш­ней» она счи­та­ет­ся в том слу­чае, ес­ли ли­дер сес­сии жив, но не вхо­дит в чис­ло про­цес­ сов, с ко­то­рых сни­ма­ет­ся со­стоя­ние. На этом по­ка все про внеш­ние свя­зи, пе­рей­дем к уро­к у.

За­пуск «жерт­вы» Для экс­п е­р и­м ен­т ов возь­м ем про­г рам­м у, ко­т о­р ая за­п ус­к а­е т­с я из ко­манд­но­го ин­тер­пре­та­то­ра и име­ет один про­цесс, ко­то­рый вы­ пол­ня­ет бо­лее-ме­нее слож­ную ра­бо­т у и по­сто­ян­но что-то пи­шет на эк­ран (что­бы бы­ло по­нят­но, жив он или нет). Про­стей­ший ва­ ри­ант та­кой про­грам­мы — сис­тем­ный мо­ни­тор top. За­пус­тим его: tty1$ top По­сле это­го от­кро­ем вто­рой тер­ми­нал и убе­дим­ся, что он жив: tty2$ ps xaf ... 1285 pts/1 Ss 0:01 \_ bash 1331 pts/1 S+ 0:00 | \_ top ... Те­перь мож­но по­про­бо­вать в де­ле CRIU.

Со­хра­ня­ем со­стоя­ние Соз­да­дим ди­рек ­то­рию, ку­да мы по­про­сим CRIU сло­жить об­ра­зы: tty2$ mkdir top-dump Те­перь за­пус­тим ко­ман­ду со­хра­не­ния со­стоя­ния: $ criu dump -t 1331 -D top-dump -o dump.log -v4 Task attached to shell terminal. Consider using --shell-job option. More details on http://criu.org/Simple_loop Как вид­но, со­хра­не­ния со­с тоя­ния не про­изош­ло, CRIU вы­д ал ошиб­к у о том, что про­цесс «при­кре­п­лен» к тер­ми­на­лу ко­манд­но­го ин­тер­пре­та­то­ра. Да­вай­те рас­смот­рим это по­под­роб­нее: tty2$ ps xaf -o pid,pgid,sid,comm ... 1285 1285 1285 | \_ bash 1331 1331 1285 | \_ top ... Мы ви­д им, что но­м ер сес­с ии, в ко­т о­р ой жи­вет top — 1285, и он не яв­ля­ет­ся ее ли­де­ром, а ли­дер сес­сии — ко­манд­ный ин­тер­ пре­та­тор. Это зна­чит, что сес­сия (и сес­си­он­ный тер­ми­нал то­же) яв­ ля­ют­ся для top’а внеш­ней свя­зью. Что­бы все-та­ки со­хра­нить со­ стоя­ние top’а, нам по­на­до­бит­ся ото­рвать его от сес­сии с тем, что­бы, воз­мож­но, при вос­ста­нов­ле­нии при­кре­пить его к но­вой (ни­к то ведь не обе­ща­ет, что вос­ста­нав­ли­вать мы бу­дем его там же). Воз­можно,

www.linuxformat.ru/subscribe


CRIU Учебник

про­грам­ма не пе­ре­жи­вет сме­ну сес­сии «на ле­т у», но top’у это всё рав­но, так что по­про­сим CRIU ра­зо­рвать эту связь. Для это­го су­ ще­ст­ву­ет оп­ция --shell-job. tty2$ criu dump -t 1331 -D top-dump -o dump.log -v4 --shell-job На сей раз все долж­но прой­ти хо­ро­шо. Ес­ли мы вер­нем­ся в тер­ ми­нал, где был за­пу­щен top, то уви­дим, что про­цесс убит и мы сно­ ва ра­бо­та­ем в ко­манд­ном ин­тер­пре­та­то­ре.

Что в ди­рек­то­рии Да­вай­те за­гля­нем в ди­рек­то­рию с об­раз­ами: tty2$ ls top-dump cgroup.img dump.log fs-1331.img inventory.img pagemap-1331. img pstree.img sigacts-1331.img tty.img core-1331.img fdinfo-2.img ids-1331.img mm-1331.img pages-1. img reg-files.img stats-dump tty-info.img Фай­лы-об­ра­зы дво­ич­ные; что­бы за­гля­нуть внутрь, нам по­на­до­ бит­ся ути­ли­та, пре­об­ра­зую­щая их в че­ло­ве­ко-чи­тае­мый фор­мат. В CRIU есть спе­ци­а ль­ная ути­ли­та для это­го, она на­зы­ва­ет­ся CRIT — CRiu Image Tool. По­ми­мо де­ко­ди­ро­ва­ния об­ра­зов, она так­же уме­ет их ко­ди­ро­вать, но эта воз­мож­ность бу­дет рас­смот­рена на дру­гих уро­ках. По­ка же ис­с ле­д у­ем со­дер­жи­мое фай­лов. Нач­нем с фай­ ла pstree.img, в ко­то­ром сло­же­на ин­фор­ма­ция о де­ре­ве про­цес­сов, по­пав­ших в об­ра­зы. tty2$ crit show top-dump/pstree.img { “magic”: “PSTREE”, “entries”: [ { “pid”: 1331, “ppid”: 0, «pgid»: 1331, «sid»: 1285, «threads»: [ 1331 ] } ] } Как ви­дим, в об­раз­а х у нас один про­цесс с PId 1331, жи­ву­щий в сес­сии 1285, ро­ди­тель у не­го от­сут­ст­ву­ет (то есть этот про­цесс яв­ ля­ет­ся кор­нем со­б­ран­но­го де­ре­ва). От­сут­ст­вие в де­ре­ве про­цес­са с та­ким но­ме­ром го­во­рит о том, что это «внеш­няя» сес­сия. Даль­ше за­гля­нем в файл fdinfo-2.img. Это таб­ли­ц а от­кры­тых фай­лов. Де­ко­ди­ро­ва­ние по­ка­жет нам 8 за­пи­сей — об­ра­тим вни­ ма­ние на од­ну: tty2$ crit show top-dump/fdinfo-2.img ... { “id”: 6, “flags”: 0, “type”: “REG”, “fd”: 7 } ... Это фай­ло­вый де­ск­рип­тор под но­ме­ром 7 (по­ле fd), за ко­то­рым «сто­ит» файл ти­па REG с но­ме­ром 6 (по­ля type и id со­от­вет­ст­вен­но). Са­ми фай­лы со­хра­ня­ют­ся в от­дель­ных об­раз­а х (так как они мо­г ут быть раз­де­ле­ны ме­ж ­ду про­цес­са­ми, на­при­мер, на fork()); в ча­ст­но­ сти, тип REG хра­нит­ся в об­ра­зе reg-files.img. Най­дем за­пись с иден­ ти­фи­ка­то­ром 6 в нем: tty2$ crit show top-dump/reg-files.img ... { “id”: 6, “flags”: “O_LARGEFILE”,

“pos”: 740, “fown”: { “uid”: 0, “euid”: 0, “signum”: 0, “pid_type”: 0, “pid”: 0 }, “name”: “/proc/stat”, “size”: 0

» Страница со списком найден­ ных недочетов в организации файлов-образов на сайте criu.org.

}, ... Что мы ви­дим тут? Это файл с име­нем /proc/stat, от­к ры­тый с фла­гом O_LARGEFILE, то есть — для чте­ния, и его по­зи­ция на­хо­ дит­ся на 740‑м бай­те. Это один из фай­лов, ко­то­рые top ис­поль­зу­ ет для сво­ей ра­бо­ты. По­ми­мо от­кры­тых фай­лов, в reg-files.img сло­же­ны ди­рек ­то­рии, яв­ляю­щие­ся кор­не­вы­ми (root) и те­к у­щи­ми (cwd) для про­цес­сов, а также фай­лы, ото­бра­жен­ные в па­мять. Са­ми ото­бра­же­ния сло­ же­ны в mm-1331.img. Вот при­мер за­пи­си: tty2$ crit show top-dump/mm-1331.img ... { “start”: “0x55880fc9c000”, “end”: “0x55880fcb5000”, “pgoff”: 0, “shmid”: 7, “prot”: “PROT_READ | PROT_EXEC”, “flags”: “MAP_PRIVATE”, “status”: “VMA_AREA_REGULAR | VMA_FILE_PRIVATE”, «fd»: -1, «fdflags»: «0x0» }, ... Это ото­бра ­же­ние по ад­ре­су 0 × 55880fc9c00 дли­ной 25 стра­ниц. Во фла­гах нет фла­га MAP_ANON — зна­чит, это фай­ло­вое ото­бра­ же­ние, и но­мер фай­ла (ти­па REG) на­хо­дит­ся в по­ле shmid (по ис­ то­ри­че­­ским при­чи­нам; все та­кие при­чу­ды мы хра­ним на стра­ни­це https://criu.org/What %27s_bad_with_V1_images). |

www.linuxformat.ru/subscribe

» Содержимое файла pstree.img в формате json. Июнь 2016 LXF210  | 79


Иг­ро­ст­рой Раз­ра­ба­ты­ва­ем аркадную иг­ру на Python

Рygame: Иг­ры на Python Воз­вра­ща­ясь к на­пе­ча­тан­но­му: Ми­ха­ил Воз­не­сен­ский ре­шил рас­ши­рить и уг­лу­бить ва­ши на­вы­ки соз­да­ния игр.

В Наш эксперт Ми­ха­ил Воз­не­ сен­ский — доб­ ро­по­ря­доч­ный поль­зо­ва­тель опе­ ра­ци­он­ных сис­тем се­мей­ст­ва GNU/ Linux, стре­мя­щий­ ся по­ка­зать, что ра­бо­тать с ни­ми про­сто и сво­бод­но.

> Рис. 1. Ар­хи­тек­ ту­ра по­строе­ния при­ло­же­ний. 80  |  LXF210 Июнь 2016

од­ном из пре­ды­д у­щих вы­пус­ков жур­на­ла (LXF110) Майк Сон­дерс [Mike Saunders] по­ка­зы­вал, как с по­мо­щью биб­ лио­те­ки pygame на­пи­сать на Python не­боль­шую иг­ру по ти­ пу по­пу­ляр­ной ар­ка­ды Space Invaders. Здесь бу­дет рас­смот­ре­но на­ пи­са­ние той же иг­ры, но по-дру­го­му — бо­лее уг­луб­лен­но. Для тех, кто забыл или не знал: pygame — это кросс-плат­ фор­мен­ная биб­лио­те­к а на базе биб­лио­те­к и SDL, по­зво­ля­ющая соз­д а­вать муль­ти­ме­дий­ные при­ло­же­ния на Python. Биб­лио­те­ка SDL на­пи­сана на язы­ке бо­лее низ­ко­го уров­ня (язык С), и взаи­мо­ дей­с т­вие с pygame за­час­т ую про­ис­хо­дит так ­же на бо­лее низ­ком уров­не: pygame, по су­ти, про­сто оберт­ка на SDL и по­зво­ля­ет взаи­ мо­дей­ст­во­вать с API (ин­тер­фейс при­к лад­но­го про­грам­ми­ро­ва­ния) SDL. На офи­ци­а ль­ном сай­те по­след­нее об­нов­ле­ние pygame да­ти­ ру­ет­ся 6 ав­г у­ста 2009 г. и ис­поль­зу­ет вер­сию SDL 1.2.15. Но счи­тать, что pygame ус­та­ре­ла и ра­бо­тать с ней нет смыс­ла, рано: недавно сай­т об­нов­ился — по­ме­ня­лась глав­ная стра­ни­ца, а ранее на GitHub поя­ви­лась но­вая вет­ка pygame, уже на базе SDL вер­сии 2.0, до­с­т уп­ ная для ска­чи­ва­ния с https://github.com/renpy/pygame_sdl2. На рис. 1 изо­бра­же­на ба­зо­вая мо­дель ар­хи­тек­т у­ры реа­ли­за­ ции про­стейше­го при­ло­же­ния на pygame; да и бо­лее слож­ные при­ ло­же­ния по боль­шо­му сче­т у со­став­ля­ют­ся имен­но по та­кой схе­ме. Под вы­ра ­же­ни­ем «Опи­са­ние ос­нов­ных ком­по­нен­тов» по­ни­ма­ ет­ся им­пор­т всех мо­д у­лей, объ­яв­ле­ние всех клас­сов и функ­ций, объ­яв­ле­ние всех гло­баль­ных пе­ре­мен­ных и т. д. На этом эта­пе про­ ис­хо­дит объ­яв­ле­ние всех нуж­ных нам па­ра­мет­ров для даль­ней­шей ра­бо­ты при­ло­же­ния. Да ­лее на­чи­на­ет­ся цикл, в ко­то­ром на пер­вом мес­те сто­ит блок «Со­бы­тия». В нем про­ис­хо­дит опи­са­ние всех воз­ мож­ных со­бы­тий — дви­же­ние мы­ши, на­жа­тие кла­ви­ши, и т. д. По­ сле объ­яв­ле­ния со­бы­тий про­ис­хо­дит ра­бо­та с ком­по­нен­та­ми, т.  е. не­по­сред­ст­вен­ный их вы­зов и взаи­мо­дей­ст­вие в про­грам­ме (блок «Ра­бо­та ком­по­нен­тов»), и по­след­ний эта­п — от­ри­сов­ка все­го про­ ис­хо­дя­ще­го на эк­ра­не (блок «Вы­вод на эк­ран»). За­тем цикл воз­вра­ ща­ет­ся к бло­к у «Со­бы­тия» и снова вы­пол­ня­ет все дей­ст­вия, опи­ сан­ные в цик­ле, по­ка не про­изой­дет пре­ры­ва­ние. Ого­во­рим сис­те­му ко­ор­ди­нат. В pygame ее от­счет на­чи­на­ет­ся с верх­не­го ле­во­го уг­ла ок­на про­грам­мы, как и в боль­шин­ст­ве дру­гих гра­фи­че­­ских биб­лио­тек. При рас­по­ло­же­нии изо­бра­же­ния (спрай­та) на эк­ра­не за ис­ход­ную точ­к у бе­рет­ся ле­вый верх­ний угол спрай­та. По­к он­ч ив со ввод­н ой ча­с тью, пе­р ей­д ем не­п о­с ред­с т­в ен­н о к прак­ти­ке, а имен­но — к по­строч­но­му раз­бо­ру ко­да. Весь код иг­ ры (space_invaders_pygame.py) и тре­буе­мые ау­дио- и гра­фи­че­­ские

фай­лы (в пап­ке ~/data) есть на дис­ке LXF. Ау­дио­фай­лы бы­ли ска­ ча­ны с сай­та freesound.org и рас­про­стра­ня­ют­ся под ли­цен­зи­ей CC0.

За­го­ло­воч­ная часть Здесь нет ни­че­го не­обыч­но­го: import random import sys import pygame from pygame.locals import * Им­пор­ти­ру­ем ба­зо­вые мо­ду­ли random и sys, а за­тем и са­му биб­лио­ те­к у pygame, и сле­дую­щей стро­кой по­ме­ща­ем име­на кон­стант биб­ лио­те­ки в про­стран­ст­во имен про­грам­мы, для бо­лее удоб­ной ра­ бо­ты. Так, что­бы оп­ре­де­лить со­бы­тие за­кры­тия ок­на, надо уз­нать, к ка­ко­му ти­пу со­бы­тий оно от­но­сит­ся. Поскольку у нас под­к лю­че­ны име­на кон­стант им­пор­ти­руе­мо­го мо­д у­ля, до­­ста­точ­но про­ве­рить, яв­ля­ет­ся ли ти­пом со­бы­тия QUIT, а ина­че пришлось бы ука­зы­ва­ли пре­фикс биб­лио­те­ки — pygame.QUIT. Вро­де и ме­лочь, но она весь­ ма об­лег­ча­ет жизнь при на­пи­са­нии ко­да.

Клас­сы и функ­ции Теперь соз­да­дим ба­зо­вый класс по соз­да­нию спрай­тов — Sprite. class Sprite(pygame.sprite.Sprite): def __init__(self, name_image, x_pos, y_pos): super(Sprite, self).__init__() self.image = pygame.image.load(name_image).convert_alpha() self.rect = self.image.get_rect() self.rect.x = x_pos self.rect.y = y_pos def update(self, screen): screen.blit(self.image, self.rect) В пер­вой стро­ке идет объ­яв­ле­ние клас­са и его имя, а в скоб­ках ука­ зы­ва­ет­ся его ро­ди­тель. Т. е. наш класс соз­да­ет­ся на ос­но­ве уже го­ тового клас­са (pygame.sprite.Sprite — ро­ди­тель) и на­сле­дует ат­ри­ бу­ты и ме­то­ды клас­са-ро­ди­теля. Ме­тод def __init__ служит для ини­циа­ли­за­ции объ­ек­та клас­са при его соз­да­нии. Вход­ные па­ра­ мет­ры — имя спрай­та и ко­ор­ди­на­ты его ме­сто­по­ло­же­ния от­но­си­ тель­но ок­на при­ло­же­ния. Ис­поль­зо­ва­ние функ­ции super() в ка­комли­бо ме­то­де клас­са по­том­ка по­зво­ля­ет унас­ле­до­вать весь ме­тод клас­са ро­ди­те­ля. Ес­ли это­го не сде­лать, ме­тод клас­са ро­ди­те­ля про­с то пе­ре­оп­ре­де­лит­ся ме­то­дом клас­с а по­том­ка при ус­ло­вии, что их име­на оди­на­ко­вые. (Для луч­ше­го по­ни­ма­ния на­сле­до­ва­ния клас­сов и их ра­бо­ты стоит по­чи­тать спра­воч­ни­ки по язы­к у Python.) Да ­лее идет за­г руз­к а изо­бра ­же­ния в пе­ре­мен­н ую self.image, и в той же стро­ке про­ис­хо­дит кон­вер­та­ция аль­фа-пик­се­лей. Эта кон­вер­та­ция из­ме­ня­ет фор­мат пик­се­лей, в том чис­ле и аль­фа, что обес­пе­чи­ва­ет про­зрач­ность кар­тин­ки в нуж­ных мес­тах. Сле­д ую­щая стро­ка ­пиш­ет в пе­ре­мен­ную self.rect пря­мо­уголь­ ную об­ласть изо­бра ­же­ния. Бла­го­д а­ря этой об­лас­ти пе­ре­се­че­ние

www.linuxformat.ru/subscribe


Pygame Учебник

спрай­тов мож­но про­ве­рить все­го од­ной функ­ци­ей. (В LXF110 это дела ­лось на­пря­мую че­рез ко­ор­ди­на­ты, что не слиш­ком удоб­но.) Ат­ри­бу ­ты self.rect.x и self.rect.y при­ни­ма­ют ко­ор­ди­на­ты ме­сто­по­ло­ же­ния. Ме­тод update — это осо­бый ме­тод, по­зво­ляю­щий кон­тро­ ли­ро­вать по­ве­де­ние спрай­та. В дан­ном слу­чае вы­пол­ня­ет­ся ото­ бра­же­ние спрай­та на эк­ра­не с за­дан­ны­ми ко­ор­ди­на­та­ми. def count_delay(delay, top_mark): if delay != 0: delay += 1 if delay == top_mark: delay = 0 return delay За оп­ре­де­ле­нием клас­са сле­ду­ют оп­ре­де­ле­ния функ­ций. Пер­ вой встре­ча­ет­ся функ­ция count_delay. Она вы­пол­ня­ет за­да­чу счет­ чи­ка. В нее пе­ре­да­ет­ся те­к у­щий па­ра­метр за­держ­ки — delay и мак­ си­маль­ная от­мет­ка — top_mark. Как толь­ко delay ста­нет рав­ной top_mark, па­ра­мет­р delay об­ну­ляется. В кон­це функ­ция воз­вра­ща­ ет па­ра­метр за­держ­ки. Но для че­го нам та­кой свое­об­раз­ный счет­чик? И за­чем воз­ вра­щать пе­ре­мен­ную delay, ес­ли мы ее пе­ре­да­ем и тут же из­ме­ня­ ем? Счет­чик по­мо­жет нам соз­да­вать за­держ­к у ме­ж ­ду со­вер­ше­ни­ ем раз­лич­но­го ро­да со­бы­тий. Чем боль­ше па­ра­метр top_mark, тем боль­ше вре­мя за­держ­ки. Май­к в ос­нов­ном цик­ле ис­поль­зо­вал ме­ тод time.delay(), обес­пе­чи­вая за­держ­к у про­грам­мы на за­дан­ное ко­ ли­че­­ст­во мил­ли­се­к унд. В нашем при­ме­ре применен дру­гой ме­тод, но об этом ни­же. Что ка­са­ет­ся воз­вра­щае­мой пе­ре­мен­ной, то тут сто­ит сде­лать по­яс­не­ние о про­стран­ст­ве имен. Пусть на­ша про­грам­ма — это ок­ру­жаю­щий мир, а функ­ция — это вы, но вы на­хо­ди­тесь, к при­ме­ру, в ав­то­бу­се с то­ни­ро­ван­ны­ ми стек­ла­ми. Вы ви­ди­те лю­дей в ок­ру­ж аю­щем ми­ре, как функ­ ция при­ни­ма­ет гло­баль­ные пе­ре­мен­ные про­грам­мы, но эти лю­ди не ви­д ят вас, как и про­грам­ма не ви­дит, что про­ис­хо­дит внут­ри функ­ции. Так что пе­ре­мен­ная delay про­грам­мы не яв­ля­ет­ся пе­ре­ мен­ной delay функ­ции; это раз­ные пе­ре­мен­ные, и они ссы­ла­ют­ся на раз­ные ячей­ки па­мя­ти. Ко­неч­но, мо­жно спросить: а ес­ли че­ло­ век, на­хо­дя­щий­ся сна­ру­жи, зай­дет в ав­то­бус на ос­та­нов­ке? Тогда мы мо­жем на не­го не­по­сред­ст­вен­но воз­дей­ст­во­вать? Да, мо­жем. Так и в Python ­мож­но взаи­мо­дей­ст­во­вать с гло­баль­ны­ми пе­ре­мен­ ны­ми из функ­ции: надо при объ­яв­ле­нии этой пе­ре­мен­ной ука­зать опи­с а­тель global, то­гда бу­дет из­ме­нять­ся пе­ре­мен­ная про­г рам­ мы. Но с точ­ки зре­ния безо­пас­но­сти это не очень хо­ро­шо, по­это­ му мы взяли ко­пию и про­сто воз­вра­ти­ли по­лу­чив­ший­ся ре­зуль­тат. def missile_build(source_image, obj_coor, missile_group): missile = Sprite(source_image, obj_coor.rect.x, obj_coor.rect.y) missile.add(missile_group) Функ­ция missile_build соз­д а­ет ра­ке­т у и до­бав­ля­ет ее в груп­ пу. Ее вход­ные па­ра­мет­ры — путь за­гру­жае­мо­го изо­бра­же­ния — source_image, объ­е кт, ко­т о­р ый яко­б ы (ви­з у­а ль­н о для иг­р о­к а) соз­д а­ет ра­ке­ты — obj_coor; и на­зва­ние груп­пы — missile_group, в ко­то­рую по­том по­ме­ща­ет­ся соз­дан­ная ра­ке­та. Пе­ре­мен­ная obj_ coor за­д а­ет на­чаль­ные ко­ор­ди­на­ты бу­д у­щей ра­ке­ты. Ви­зу­а ль­но это бу­дет вы­гля­деть так, буд­то объ­ект obj_coor вы­пус­ка­ет ра­ке­т у. def collision_missile(missile_group, crossing_obj): for missile in missile_group: label_coll = False if pygame.sprite.collide_rect(missile, crossing_obj): label_coll = True if missile.rect.y >= screen_size[1] or missile.rect.bottom <= 0 or label_coll: missile.remove(missile_group) if label_coll: return label_coll Функ­ция collision_missile про­ве­ря­ет пе­ре­се­че­ние ра­кет с дру­ги­ми спрай­та­ми. В LXF110 пе­ре­се­че­ние оп­ре­де­лялось по ко­ор­ди­на­там, что не счи­та­ет­ся хо­ро­шим то­ном. В на­шей функ­ции пе­ре­се­че­ние оп­ре­де­ля­ет­ся не на уров­не ко­ор­ди­нат, а на уров­не объ­ек ­тов.

> Рис. 2. Ге­рой не­ка­зист, но прям.

> Рис. 3. Ехид­ный об­раз вра­га.

Вход­ные пе­ре­мен­ные — груп­па ра­кет и по­тен­ци­а ль­но под­вер­ жен­ный пе­ре­се­че­нию с ни­ми объ­ект, т. е. наш ге­рой (рис. 2) ли­бо один из его вра­гов (рис. 3). От­кры­ва­ем цикл и про­ве­ря­ем ка­ж ­дую ра­ке­т у на пе­ре­с е­че­ние с пе­ре­д ан­ным ей объ­ек ­том. Тут по­мо­г а­ ет ме­тод pygame.sprite.collide_rect().Его ар­г у­мен­ты — два спрай­ та, у ко­то­рых обя­за­тель­но дол­жен быть ат­ри­бут rect (ра­нее объ­яв­ ленный в клас­се Sprite). По ре­зуль­та­т у про­вер­ки ме­тод воз­вра­ща­ет со­от­вет­ст­вую­щее бу­ле­во зна­че­ние. По­том, ес­ли ра­ке­та вы­ле­те­ла за пре­де­лы эк­ра­на или же пе­ре­сек­лась с объ­ек­том, мы ее уда­ля­ем. В са­мом кон­це, ес­ли бы­ло пе­ре­се­че­ние, воз­вра­щ а­ем бу­ле­во зна­че­ние «ис­ти­на». def change_velocity_down(enemy_list, velocity): velocity *= -1 for enemy in enemy_list: enemy.rect.y += 10 return velocity По­с лед­няя функ­ция, change_velocity_down, от­ве­ча­ет за ско­ рость вра­гов. Ее вход­ны­е па­ра­мет­ры — спи­сок всех вра­гов и ско­ рость. В те­ле функ­ции про­ис­хо­дит из­ме­не­ние па­ра­мет­ра ско­ро­сти на об­рат­ный, что­бы дви­же­ние на­ча­лось в про­ти­во­по­лож­ном на­ прав­ле­нии, а за­тем все вра­ги спус­ка­ют­ся на де­сять пик­се­лей вниз.

Пе­ре­мен­ные Те­перь объ­я­вим гло­баль­ные пе­ре­мен­ные: pygame.init() pygame.key.set_repeat(1, 1) screen_size = (640, 480) screen = pygame.display.set_mode(screen_size) pygame.display.set_caption(“Space Invaders - pygame”) clock = pygame.time.Clock() Пер­вым де­лом ини­циа ­ли­зи­ру­ем са­му биб­лио­те­к у pygame. Да­ лее ве­лим про­грам­ме по­вто­рять со­бы­тие на ­жа­той кла­ви­ши. Пер­ вый па­р а­метр это­г о ме­т о­д а го­во­рит о за ­д ерж ­ке пе­р ед пер­вым по­вто­ре­ни­ем, а вто­рой — о по­сле­дую­щем ин­тер­ва ­ле, че­рез ко­то­ рый бу­д ут со­вер­шать­ся по­вто­ре­ния. Все па­ра­мет­ры ука­зы­ва­ют­ся в мил­ли­се­к ун­дах. В пе­ре­мен­ной screen_size за­да­ем раз­ме­ры на­ше­ го эк­ра­на. За­тем ини­циа­ли­зи­ру­ем ок­но с уже за­дан­ным раз­ре­ше­ ни­ем. Сле­дую­щая стро­ка за­да­ет за­го­ло­вок ок­на (по умол­ча­нию — pygame window). По­с лед­н ей стро­кой соз­д а­е м объ­е кт вре­м е­ни. Он ну­жен для от­сче­та кад­ров в се­к ун­ду или, по-дру­го­му, на­сколь­ ко час­то об­нов­лять ос­нов­ной цикл про­грам­мы. Майк ис­поль­зо­вал за­держ­к у (time.delay()), а в этом при­ме­ре бу­дет ус­та­нов­ле­но фик­ си­ро­ван­ное ко­ли­че­­ст­во кад­ров в се­к ун­ду, тогда кар­тин­ка будет бо­ лее плав­ной, а управ­ле­ние дви­же­ни­ем объ­ек ­тов — бо­лее гиб­ким.

Всту­па­ем в иг­ру Да ­лее объ­яв­ля­ем пе­ре­мен­ные, ка­саю­щие­ся са­мой иг­ры. delay_hero = 0 delay_enemy = 0 missile_group_hero = pygame.sprite.Group() missile_group_enemy = pygame.sprite.Group() backdrop = Sprite(‘data/backdrop.bmp’, 0, 0) hero = Sprite(‘data/hero.bmp’, screen_size[0]/2, 400)

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 81


Учебник Pygame velocity = 5 velocity_hero = 0 velocity_enemy = 3 enemy_list = [] for i in range(10): enemy = Sprite(‘data/baddie.bmp’, 34 + i * 50, 50) enemy_list.append(enemy) Кто тут есть кто? » delay_hero/enemy Па­ра­мет­ры за­держ­ки, ко­то­рые мы бу­дем при­ меня для воз­мож­но­го за­пус­ка ра­кет че­рез оп­ре­де­лен­ное вре­мя. » missile_group_hero/enemy Объ­ек ­ты клас­са pygame.sprite.Group(). Этот класс — кон­тей­не­р для хра­не­ния и управ­ле­ния мно­же­ст­вом спрай­тов, и в та­ких объ­ек­тах бу­дут хра­нить­ся ра­ке­ты иг­ро­ка и ра­ ке­т ы вра­гов со­от ­вет­с т ­вен­но (рис. 4 и 5). На ос­но­ве это­го клас­ са удоб­н о соз ­д а­в ать та­к ие объ­е к ­т ы: ес ­ли мы вы­зы­в а­е м ме­т од update(), то он вы­зы­ва­ет­ся у всех спрай­тов, на­хо­дя­щих­ся в груп­пе. » backdrop/hero Соз­да­ние спрай­тов на ос­но­ве клас­са Sprite(). » velocity Па­ра­метр ско­ро­сти. » velocity_hero/enemy Па­ра­мет­ры ско­ро­сти иг­ро­ка и вра­гов со­от­ вет­ст­вен­но; от­ве­ча­ют за пе­ре­ме­ще­ние объ­ек ­тов внут­ри ок­на и мо­ гут быть как по­ло­жи­тель­ны­ми, так и от­ри­ца­тель­ны­ми. Ни­же соз­да­ет­ся обыч­ный спи­сок, в ко­то­рый бу­дут до­бав­лять­ ся и/или уда­лять­ся вра­ги. Да­лее от­кры­ва­ем цикл, соз­да­ем де­ся­ток вра­гов и по­ме­ща­ем их в вы­ше­упо­мя­ну ­тый спи­сок. Итак, опи­са­ние и соз­да­ние ос­нов­ных па­ра­мет­ров за­кон­че­но.

Про­цесс по­шел! Вот ос­нов­ной цикл про­грам­мы, где и про­ис­хо­дит все дей­ст­вие. while True: backdrop.update(screen) for event in pygame.event.get(): if event.type == QUIT: sys.exit() if event.type == KEYDOWN: if event.key == K_RIGHT: velocity_hero = velocity if event.key == K_LEFT: velocity_hero = -velocity if event.key == K_SPACE and delay_hero == 0: missile_build(‘data/heromissile.bmp’, hero, missile_group_hero) delay_hero = 1 if event.type == KEYUP: if event.key == K_RIGHT: velocity_hero = 0 if event.key == K_LEFT: velocity_hero = 0 Сна­ча ­ла мы от­кры­ва­ем бес­ко­неч­ный цикл, за­тем вы­во­дим на эк­ран фо­но­вую кар­тин­к у, в дан­ном слу­чае это спрайт backdrop () . Во­об­ ще этот спрайт мож­но бы­ло и по­сле бло­ка со­бы­тий, но так как нам с ним боль­ше не ра­бо­тать, ло­гич­нее вста­вить его в на­ча­ло цик­ла, что­бы в даль­ней­шем уже не об­ра­щать на не­го вни­ма­ния. По­том от­кры­ва­ет­ся цикл, где опи­са­ны все воз­мож­ные со­бы­ тия — для их от­ло­ва. И пер­вое, что на­до сде­лать — это пре­рвать со­бы­тие при ус­ло­вии, ко­гда поль­зо­ва­тель за­кро­ет ок­но: if event. type == QUIT: sys.exit(). Та­ким же об­ра­зом оп­ре­де­ля­ют­ся и дру­гие со­бы­тия. Сле­д ую­щее со­бы­тие — на ­жа­тие кла­ви­ши на кла­виа­т у­ ре. Ес­ли на­жа­та кла­ви­ша стре­лок вле­во или впра­во, то из­ме­ня­ет­ся по­ка­за­тель ско­ро­сти иг­ро­ка. Ес­ли на ­жа­та кла­ви­ша про­бе­ла и па­ ра­метр за­держ­ки ра­ке­ты иг­ро­ка ра­вен ну­лю, то на­шим ме­то­дом missile_build() соз­д а­ет­ся ра­ке­та и из­ме­ня­ет­ся па­ра­метр за­держ­ ки ра­ке­ты иг­ро­ка на 1. И по­след­нее со­бы­тие — это ко­гда кла­ви­ша под­ни­ма­ет­ся (от­пус­ка­ет­ся). Ес­ли бы­ли от­пу­ще­ны кла­ви­ши стре­ лок вле­во или впра­во, то ско­рость иг­ро­ка при­ни­ма­ет зна­че­ние 0. Те­перь опи­шем взаи­мо­дей­ст­вие ком­по­нен­тов: delay_hero = count_delay(delay_hero, 30) 82  |  LXF210 Июнь 2016

> Рис. 4. Та­ки­ми ра­ке­та­ми мы воо­ру­жим на­ше­го ге­роя.

> Рис. 5. А это ра­ке­ты вра­же­ские.

if (hero.rect.right > screen_size[0] and velocity_hero > 0) or\ (hero.rect.left < 0 and velocity_hero < 0): velocity_hero = 0 hero.rect.x += velocity_hero Пер­в ая стро­к а от ­ве­ча­е т за за ­держ ­к у соз ­д а­ния ра­ке­т ы с по­ мо­щ ью на­ш ей функ ­ц ии count_delay(). Она сра­б а­т ы­в а­е т толь­ко ес­ли delay_hero не рав­но ну­лю, т.  е. ра­ке­та соз­д а­на; сле­д ую­щ ую мы смо­жем соз­дать толь­ко по про­ше­ст­вии 30 кад­ров. Это не да­ ст иг­ро­к у соз­да­вать бес­ко­неч­ное число ра­кет. Да­лее сле­ду­ет ус­ло­ вие ог­ра­ни­че­ния дви­же­ния ге­роя. Без него иг­рок смо­жет сво­бод­ но вы­ез­жать за рам­ки ок­на. Для реа­ли­за­ции это­го ус­ло­вия мож­но вос­поль­зо­в ать­с я свой­с т­вом rect. По­ми­мо ат ­ри­бу ­тов x и y, есть и дру­гие: left, right, top, bottom. Эти ат­ри­бу­ты воз­вра­щ а­ют край­ нюю ко­ор­ди­на­т у со­от­вет­ст­вую­щих сто­рон. Та­к на­мно­го удоб­нее, чем вы­чи­та­ть из x и y раз­ме­ры спрай­та. По­с лед­няя стро­ка от­ве­ ча­ет за са­мо дви­же­ние. Ге­рой движ­ет­ся толь­ко по оси X. При­бав­ка ско­ро­сти про­ис­хо­дит по­сто­ян­но; что­бы ге­рой не дви­гал­ся, его ско­ рость долж­на стать рав­ной ну­лю, что мы и де­ла­ем в со­бы­тии от­ пус­ка кла­ви­ши или в ус­ло­вии ог­ра­ни­че­ния дви­же­ния. А те­перь от­мо­та­ем вре­мя на­зад и за­пус­тим код Май­ка (LXF110). Мож­но видеть, что иг­рать не очень удоб­но: ко­гда иг­рок за­пус­ка­ет ра­ке­т у, ге­рой ос­та­нав­ли­ва­ет­ся, и для даль­ней­ше­го его пе­ре­ме­ще­ ния надо от­пус­тить кла­ви­шу дви­же­ния, а за­тем сно­ва ее на­жать. Де­ло в том, что Майк из­ме­ня­ет спо­соб­ность ге­роя пе­ре­ме­щать­ся пря­мо в со­бы­тии, и при на­жа­тии кла­ви­ши про­бе­ла со­бы­тие на­жа­ тия кла­ви­ши дви­же­ния не сра­ба­ты­ва­ет (она уже на­жа­та), по­это­му дви­же­ние пре­кра­ща­ет­ся и на­до за­но­во на ­жи­мать на кла­ви­ши стре­ лок. В на­шем ко­де си­т уа­ция иная: в со­бы­тии ме­ня­ет­ся толь­ко па­ ра­метр, от­ве­чаю­щий за дви­же­ние, а не са­мо дви­же­ние. Бла­го­да­ря это­му при на ­жа­тии кла­ви­ши про­бе­ла пе­ре­ме­ще­ние не пре­кра­ща­ет­ ся — па­ра­метр, от­ве­чаю­щий за это, не по­ме­нял­ся и не по­ме­ня­ет­ся, по­ка мы не дое­дем до гра­ниц ок­на или по­ка не от­пус­тим кла­ви­шу. Го­во­ря о ра­ке­тах: в про­грам­ме Май­ка на всю иг­ру ра­кет толь­ко две. Од­на при­над­ле­жит вра­гам, а вто­рая — иг­ро­к у, при­чем ес­ли иг­ рок бу­дет час­то на­жи­мать кла­ви­шу за­пус­ка ра­ке­ты, она так и не до­ ле­тит до вра­га, по про­стой при­чи­не: ко­гда иг­рок яко­бы вы­зы­ва­ет но­вую ра­ке­т у, на са­мом де­ле ста­рая про­сто пе­ре­ме­ща­ет­ся на те­к у­ щие ко­ор­ди­на­ты ге­роя и на­чи­на­ет свой по­лет за­но­во. У вра­гов на­ блю­да­ет­ся ана­ло­гич­ная си­т уа­ция, с од­ной лишь раз­ни­цей: ста­рая ра­ке­та ме­ня­ет ко­ор­ди­на­ты, толь­ко ес­ли вы­ле­та­ет за рам­ки ок­на. А в ко­де на­ше­го уро­ка ра­ке­ты соз­да­ют­ся ди­на­ми­че­­ски и унич­то­ жа­ют­ся толь­ко если вы­хо­дят за пре­де­лы эк­ра­на или стал­ки­ва­ют­ся с вра­гом. Опи­шем дви­же­ния вра­гов: if enemy_list[len(enemy_list)-1].rect.x > screen_size[0] - 66: velocity_enemy = change_velocity_down(enemy_list, velocity_enemy) if enemy_list[0].rect.x < 34: velocity_enemy = change_velocity_down(enemy_list, velocity_enemy) for enemy in enemy_list: enemy.rect.x += velocity_enemy if delay_enemy == 0 and len(enemy_list): delay_enemy += 1

www.linuxformat.ru/subscribe


Pygame Учебник

random_enemy = random.choice(enemy_list) missile_build(‘data/baddiemissile.bmp’, random_enemy, missile_group_enemy) delay_enemy = count_delay(delay_enemy, 80) Сперва идет про­вер­к а гра­ниц пе­ре­ме­ще­ния по оси X. Вра­г и у нас на­хо­дят­ся в спи­ске, так что про­ве­ря­ет­ся по­ло­же­ние край­них эле­мен­тов спи­ска. Стоит им выйти за ука­зан­ные рам­ки, сра­ба­ты­ ва­ет функ­ция change_velocity_down(): она ме­ня­ет па­ра­метр дви­же­ ния и сдви­га­ет всех вра­гов на 10 пик­се­лей вниз. За­тем от­кры­ва­ет­ся цикл, где ка­ж ­до­му вра­г у при­бав­ля­ют па­ра­метр ско­ро­сти к те­к у­щей ко­ор­ди­на­те. По­след­ний ку­со­чек в этом фраг­мен­те ко­да — соз­да­ ние ра­кет вра­гов. Ес­ли за­держ­ка рав­на 0, то из­ме­ня­ем па­ра­метр за­держ­ки на 1, за­тем слу­чай­ным об­ра­зом вы­би­ра­ем лю­бо­го вра­ га из все­го спи­ска, что­бы взять ко­ор­ди­на­ты его ме­сто­по­ло­же­ния, и соз­да­ем ра­ке­т у. И в конце вводится за­держ­к у соз­да­ния ра­ке­ты. Сле­дую­щие че­ты­ре стро­ки от­ве­ча­ют за их пе­ре­ме­ще­ние ра­ке­т. Ал­го­ритм здесь тот же, что и в слу­чае вра­гов, толь­ко пе­ре­бор идет не спи­ска, а груп­пы спрай­тов: for missile in missile_group_enemy: missile.rect.y += velocity for missile in missile_group_hero: missile.rect.y -= velocity Пе­ре­хо­дим к час­ти про­вер­ки на столк­но­ве­ния и их по­след­ст­вий. if not len(enemy_list): sys.exit() for enemy in enemy_list: label_coll = collision_missile(missile_group_hero, enemy) if label_coll: enemy_list.remove(enemy) label_coll = collision_missile(missile_group_enemy, hero) if label_coll: sys.exit() Пер­в ое ус­л о­в ие про­в ер­я ет на ­л и­ч ие вра­г ов, т.  е. не пуст ли их спи­сок enemy_list: ес­ли он пуст, при­ло­же­ние за­кры­ва­ет­ся. За­ тем про­веря­ются столк­но­ве­ния ра­кет ге­роя с вра­га­ми: в цикле пе­ ре­би­раю­тся все вра­гов из спи­ска, и для ка­ж ­до­го вра­га вы­зы­ва­ет­ ся функ­ция collision_missile, для про­вер­ки, бы­ло ли с этим вра­гом пе­ре­се­че­ние ка­кой-ли­бо ра­ке­ты из за­пу­щен­ных иг­ро­ком. Если оно было, в пе­ре­мен­ную label_coll за­пи­сы­ва­ет­ся зна­че­ние «ис­ти­на», и по­ вы­пол­не­нии функ­ции вра­г уда­ляется из спи­ска. Да­лее про­ве­ ря­ет­ся на­ли­чие пе­ре­се­че­ния всех ра­кет вра­гов с ге­ро­ем. Ал­го­ритм тот же, что и в слу­чае пе­ре­се­че­ния ра­кет ге­роя с вра­га­ми. Фи­наль­ный этап про­грам­мы: missile_group_enemy.draw(screen) missile_group_hero.draw(screen) hero.update(screen) for enemy in enemy_list: enemy.update(screen) pygame.display.flip() clock.tick(60) За­вер­ша­ет те­ло цик ­ла ото­бра ­же­ние всех не­об­хо­ди­мых эле­мен­ тов на эк­ран. Пер­вы­ми идут все груп­пы ра­кет, за­тем ге­рой и вра­ги. Для ото­бра­же­ния вра­гов на­до про­йтись по всем эле­мен­там спи­ска. Пред­по­след­няя строч­ка по­свя­ще­на кор­рект­но­му ото­бра ­же­нию на эк­ра­не. От­ри­сов­к а эле­мен­тов в pygame вы­пол­ня­ет­с я в двух­ уров­не­вом бу­фе­ре: сна­ча ­ла эле­мен­ты от­ри­со­вы­ва­ют­ся в пер­вом бу­фе­ре, а с на­с ту­п­ле­ни­ем сле­д ую­ще­го кад­ра его от­ри­сов­ка уже осу­ще­ст­в­ля­ет­ся во вто­ром бу­фе­ре. Ме­тод dispaly.flip() слу­жит для по­оче­ред­но­го ото­бра ­же­ния бу­фе­ров, т.  е. по­ка ото­бра ­жа­ет­ся пер­ вый бу­фер, вто­рой про­ри­со­вы­ва­ет­ся; ко­гда ото­бра ­жа­ет­ся вто­рой, про­ри­со­вы­ва­ет­ся пер­вый, и т. д. Без этого ме­тода при за­пус­ке про­ грам­мы у дви­ж у­щих­ся объ­ек­тов бу­дет ос­та­вать­ся след. По­с лед­няя ко­ман­д а от­ве­ча­ет за час­то­т у кад­ров. Майк де­лал за­держ­к у в 5 ми­ли­се­к унд, а у нас пол­но­цен­ные 60 кад­ров в се­ кун­д у. Это очень удоб­но в пла­не плав­но­сти кар­тин­ки и ди­на­ми­ки

дви­же­ния. Pygаme мо­жет по­тя­нуть и 200 кад­ров в се­к ун­ду, но та­ кая боль­шая час­то­та уже по су­ти ни к че­му. А те­перь — бо­нус! Лю­бо­зна­тель­ный чи­та­тель, по­смот­рев сна­ ча­ла в ис­ход­ный код про­грам­мы, а по­том в его опи­са­ние, за­ме­тит, что о не­ко­то­рых строч­ках ни­че­го не ска­за­но. Эти строч­ки от­но­сят­ся к реа­ли­за­ции зву­ко­во­го со­про­во­ж ­де­ния иг­ры. Ра­нее эта те­ма ни­ко­ гда не за­тра­ги­ва­лась, но она без­ус­лов­но очень важ­на. В на­шей иг­ре ис­поль­зу­ет­ся все­го три зву­ка. Пер­вый — фо­но­вое му­зы­каль­ное со­про­во­ж ­де­ние, а вто­рой и тре­тий — зву­ки стрель­бы ге­роя и вра­гов со­от­вет­ст­вен­но. Нач­нем со зву­ков вы­стре­лов: go_missle_hero = pygame.mixer.Sound('data/missile-hero.ogg') go_missle_enemy = pygame.mixer.Sound(‘data/missile-enemy.ogg’) Здесь про­ис­хо­дит соз­д а­ние объ­ек­тов зву­ка за­пус­ка ра­кет ге­роя и вра­гов со­от­вет­ст­вен­но — точ­но так же, как ес­ли бы мы соз­да­ва­ли объ­ект спрай­та че­рез pygame.sprite.Sprite, толь­ко вме­сто изо­бра­ же­ния за­гру­жа­ет­ся зву­ко­вой файл. Для ау­дио воз­мо­жен фор­мат .wav, но пред­поч­ти­тель­нее .ogg — во из­бе­жа­ние про­блем. Мо­дуль mixer име­ет ог­ра­ни­чен­ное чис­ло ка­на ­лов для вос­про­ из­ве­де­ния: од­но­вре­мен­но мо­жет зву­чать все­го 8. При про­иг­ры­ва­ нии зву­ки ав­то­ма­ти­че­­ски по­ме­щ а­ют­ся в сво­бод­ные ка­на­лы. Ес­ ли про­грам­ма тре­бу­ет бо­лее тон­кой на­строй­ки, то эти­ми ка­на­ла­ми мож­но управ­лять. Вос­про­из­ве­дем соз­дан­ные вы­ше объ­ек ­ты функ­ци­ей play(): go_missle_hero.play() go_missle_enemy.play() У этой функ­ции три вход­ных па­ра­мет­ра: loops, maxtime, fade_ms. Пер­вый от­ве­ча­е т за за­ц ик ­ли­в а­ние и при­ни­ма­е т це­лое по­ло­ж и­ тель­ное чис­ло — ко­ли­че­­ст­во по­вто­ров дан­но­го зву­ча­ния. Ес­ли на­ до по­вто­рять все­гда (за­цик­лить), это ко­ли­че­­ст­во ука­зы­ва­ет­ся как -1. Пе­ре­мен­ная maxtime от­ве­ча­ет за дл­и­тель­ность зву­ча­ния. Если надо про­иг­рать не весь ау­дио­файл, а толь­ко его на­чаль­ный ку­ сок, ука­зы­ва­ет­ся дли­тель­ность это­го фраг­мен­та в мил­ли­се­к ун­ дах. По­след­ний па­ра­метр, fade_ms, от­ве­ча­ет за на­рас­та­ние гром­ ко­сти. Про­ме­ж у ­ток вре­ме­ни, за ко­то­рый гром­кость воз­рас­та­ет от 0 до мак­си­му­ма, ука­зы­ва­ет­ся в этом па­ра­мет­ре в мил­ли­се­к ун­дах. Те­перь на­стал че­ред му­зы­каль­но­го со­про­во­ж ­де­ния: pygame.mixer.music.load(‘data/loop_sound.wav’) pygame.mixer.music.play(-1) Это ра­бо­та с фо­но­вой му­зы­кой, че­рез мо­дуль music. Дан­ный мо­ дуль тес­но свя­зан с pygame.mixer, но ра­бо­та­ет не­мно­го ина­че. Вопер­вых у music толь­ко один ка­нал ве­ща­ния; а во-вто­рых, в music ау­дио­файл не за­гру­жа­ет­ся в бу­фер, а транс­ли­ру­ет­ся на­пря­мую. По­то­ко­вое ве­ща­ние ау­дио­фай­ла по­зво­ля­ет мень­ше на­гру ­жать па­ мять, в от­ли­чии от объ­ек­тов клас­са pygame.mixer.Sound, где ка­ж­ дый ау­дио­файл хра­нит­ся в бу­фе­ре. Пер­вая стро­ка под­го­тав­ли­ва­ет му­зы­к аль­ный файл; во вто­рой уже идет вос­про­из­ве­де­ние с за­ цик ­ли­ва­ни­ем. Функ­ция music.play() не­мно­го от­ли­ча­ет­ся от Sound. play(). В обе­их име­ет­ся па­ра­метр, от­ве­чаю­щий за за­цик­ли­ва­ние, но в music.play() нет ни maxtime, ни fade_ms: есть па­ра­метр start, ука­зы­ваю­щий по­зи­цию на­ча ­ла вос­про­из­ве­де­ния ау­дио­фай­ла. Дан­ный код да­ле­ко не идеа­лен, и в ка­че­­ст­ве эта­ло­на не ре­ко­ мен­дуется. Вме­сто это­го изу­чай­те боль­ше чу ­жо­го ко­да, это очень по­вы­сит ва­ши зна­ния в про­грам­ми­ро­ва­нии и нау­чит соз­да­вать уже свои прие­мы. К при­ме­ру, мо­же­те оз­на­ко­мить­ся с дру­гой мо­ей иг­ рой, дос­т уп­ной на GitHub: https://github.com/RastaDill/Logika. Pygame — очень хо­ро­шая биб­лио­те­ка, осо­бен­но для на­чи­наю­ щих. Ес­ли есть же­ла­ние по­ближе с ней по­зна­ко­мить­ся, то обя­за­ тель­ны к про­чте­нию кни­га Майк­ла До­усо­на [Michael Dawson] «Про­ грам­ми­ру­ем на Python» и бес­п лат ­ная он ­лайн-кни­г а на рус­ском язы­ке — http://programarcadegames.com/index.php?lang=ru; есть и офи­ци­а ль­ная до­к у­мен­та­ция, впол­не дос­т уп­ная для по­ни­ма­ния, хоть и на анг­лий­ском. И в за­к лю­че­ние, как до­маш­нее за­да­ние, по­ про­буй­те мо­ди­фи­ци­ро­вать этот код. Мо­же­те до­ба­вить над­пись “Game over”, ес­ли ге­рой про­иг­ра­ет, по­ме­нять по­строе­ние кос­ми­че­ ­ских при­шель­цев, и т. д. |

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 83


Rust

Rust: Мо­ду­ли и Cargo Ми­ха­лис Цу­ка­лос вбра­сы­ва­ет но­вую се­рию о Rust, по­яс­няя ос­нов­ные по­ня­тия — ти­пы дан­ных, мо­ду­ли, пе­ре­мен­ные и ме­нед­жер па­ке­тов Cargo.

Наш эксперт У Ми­ха­ли­са Цу­ка­ ло­са сте­пень ма­ги­ ст­ра по IT от Лон­ дон­ско­го на­у ч­но­го кол­лед­жа и сте­ пень ба­ка ­лав­ра по ма­те­ма­ти­ке. Он ис­поль­зу­ет Unix, ад­ми­ни­ст­ри­ ру­ет ба­зы дан­ных, про­грам­ми­ру­ет, за­ни­ма­ет­ся ма­те­ ма­ти­кой и стро­чит, как ро­бот-ав­то­мат.

> Луч­ший спо­соб ус­та­но­вить на ваш ком­пь­ю­тер Linux по­след­нюю ста­биль­ную вер­сию Rust, а так­же ин­ст­ру­мент Cargo — ис­поль­зо­ вать скрипт rustup.sh, так­же пред­ла­гаю­щий вам в rustlib скрипт обо­лоч­ки для очень про­сто­го уда­ле­ния.

Э Скорая помощь Вы мо­же­те най­ти пол­ную до­к у­мен­ та­цию по Rust на https://doc.rustlang.org. Кни­га яв­ ля­ет­ся хо­ро­шим вве­де­ни­ем к Rust. О Cargo вы уз­наете боль­ше на http:// doc.crates.io.

84  |  LXF210 Июнь 2016

тот урок — ос­то­рож­ное зна­ком­ст­во с язы­ком про­грам­ми­ ро­ва­ния Rust. В даль­ней­ших ру­ко­во­дствах мы по­го­во­рим о бо­лее кон­крет­ных об­лас­тях Rust, но сей­час зай­мем­ся ос­но­ва­ми. К кон­цу это­го уро­ка, бла­го­да­ря вы­чис­ле­нию чи­сел Фи­ бо­нач­чи и на­пи­са­нию не­боль­шой про­грам­мы Rust, у вас долж­но поя­вить­ся по­ни­ма­ние ос­нов и чув­ст­во язы­ка. За­од­но вы уз­на­ете о раз­лич­ных ти­пах дан­ных и о том, как ме­нед­жер па­ке­тов Cargo по­ мо­жет вам в соз­да­нии про­ек­тов Rust. Ус­та­но­вить Rust на ди­ст­ри­бу­тив Linux — в на­шем слу­чае, Debi­ an — не слож­нее, чем вы­пол­нить ко­ман­ду (уч­ти­те, что ее на­до вы­ пол­нять от име­ни root) # curl -sSf https://static.rust-lang.org/rustup.sh | sh Она не толь­ко ус­та­нав­ли­ва­ет Rust, но и ска­чи­ва­ет и ус­та­нав­ ли­ва­ет Cargo (ввер­х у спра­ва по­ка­зан про­цесс ус­та­нов­ки). Уда ­ля­ ет­ся Rust по вы­пол­не­нию скрип­та /usr/local/lib/rustlib/uninstall.sh. По­сколь­к у Rust по­сто­ян­но ме­ня­ет­ся, вы мо­же­те про­ве­рить вер­сию язы­ка, ко­то­рую ис­поль­зуе­те, с по­мо­щью $ rustc -V rustc 1.6.0 (c30b771ad 2016-01-19)

Ком­пи­ля­тор Rust (rustc) дос­та­точ­но умен, что­бы най­ти ошиб­ ки, и имен­но он от­ве­ча­ет за со­блю­де­ние пра­вил безо­пас­но­сти. Как след­ст­вие, он мо­жет от­ка­зы­вать в ком­пи­ля­ции ва­ше­му ко­ду Rust, по­ка вы не вне­се­те не­об­хо­ди­мые из­ме­не­ния. Это не обя­за­тель­но пло­хо — ведь это де­ла­ет ваш код бо­лее ус­той­чи­вым. На мо­мент на­пи­са­ния это­го ру­ко­во­дства, Rust 1.6.0 — са­мая све­жая ста­биль­ ная вер­сия.

Hello World Те­перь да­вай­те изо­бра­зим код Hello World для Rust: fn main() { println!(“Hello World!”); } По тра­ди­ции код Rust со­хра­ня­ет­ся в ви­де фай­лов с рас­ши­ре­ни­ ем .rs, так что про­грам­ма “Hello World!” мо­жет быть со­хра­не­на как helloW.rs. Как ви­ди­те, оп­ре­де­ле­ние ка­ж ­дой функ­ции Rust, вклю­ чая main(), на­чи­на­ет­ся с за­ре­зер­ви­ро­ван­но­го клю­че­во­го сло­ва fn. Лю­бая ав­то­ном­ная про­грам­ма Rust долж­на иметь функ­цию main(). Вдо­ба­вок, мак­рос println! по­хож по функ­цио­наль­но­сти на функ­цию printf() в C и от­ве­ча­ет за пе­чать ва­ше­го вы­во­да. Вы мо­же­те уга­дать,

www.linuxformat.ru/subscribe


Rust

Мо­ду­ли Rust У Rust есть мно­же­ст­во мо­д у­лей, спо­соб­ ных ус­ко­рить ваш про­цесс раз­ра­бот­ки. Все мо­д у­ли, при­над ­ле­жа­щие Standard Library, на­хо­д ят­ся в де­ре­ве sstd::. Не­ко­то­ры­ми важ­ ны­ми и удоб­ны­ми мо­д у­ля­ми яв­ля­ют­ся: » std::env Для ос­мот­ра сре­ды про­цес­са и управ­ле­ния ею. » std::fs Для кросс-плат­фор­мен­ных ма­ни­ пу­ля­ций с фай­ло­вой сис­те­мой. » std::net Для со­еди­не­ний TCP и UDP. » std::os Для спе­ци­фи­че­­ских опе­ра­ций ОС. » std::path Для кросс-плат­фор­мен­ных опе­ ра­ций с пу­тем.

» std::process Для ра­бо­ты с про­цес­са­ми Linux. » std::threads Для ра­бо­ты с по­то­ка­ми. » std::time Для ра­бо­ты с отметками вре­ме­ни. По­жа ­луй­ста, об­ра­ти­те вни­ма­ние, что у std::os имеется три под­ка­те­го­рии: std::os::linux, std::os::raw и std::os::unix. Что­бы получить более подробную информацию о Standard Library, пе­рей­ди­те на сайт https://doc.rust-lang.org/std, а мо­ дуль std дос­т у­пен всем контейнерам Rust по умол­ча­нию.

что println! — это мак­рос, по ее фор­ме: она ис­поль­зу­ет иден­ти­фи­ ка­тор, за ко­то­рым идет вос­к ли­ца­тель­ный знак. Мак­ро­сы в Rust по­ лез­ны, по­сколь­к у они обес­пе­чи­ва­ют син­так­си­че­­ское раз­де­ле­ние. Вы мо­же­те ском­пи­ли­ро­вать helloW.rs сле­дую­щим об­ра­зом: $ rustc helloW.rs $ ls -l helloW -rwxr-xr-x 1 mtsouk mtsouk 574184 Feb 25 21:08 helloW $ file helloW helloW: ELF 64-bit LSB shared object, x86-64, version 1(SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=f99c6bf5f6c8ad0b551787ce573c 615ccec1167a, not stripped $ ./helloW Hello World! $ strip helloW $ ls -l helloW -rwxr-xr-x 1 mtsouk mtsouk 308016 Feb 25 21:09 helloW Ко­ман­да strip от­вер­га­ет лишние сим­во­лы из вы­ход­ных фай­лов и обычно де­ла­ет ис­пол­няе­мый файл мень­шим по раз­ме­ру. Здесь она сде­ла ­ла ис­пол­няе­мый файл helloW мень­ше на 266168 байт!

Fibonacci и Rust Да­вай­те вы­яс­ним, как рассчитать в Rust чис­ла Фи­бо­нач­чи. Мы вы­ зва­ли файл fibonacci.rs, и код вы­гля­дит сле­дую­щим об­ра­зом: fn fibonacci(n: i32) -> i32 { if n == 0 { return 0; } if n <= 1 { return 1; } else { return fibonacci(n - 1) + fibonacci(n - 2); } } fn main() { for x in 0..10 { println!(“Fibonacci number {} is {} “, x, fibonacci(x)); } } Вы так ­же ви­д и ­т е цикл for, оп­р е­д е ­ляе­мый в Rust ина­че, чем вы при­вык ­ли ви­деть в язы­к ах про­г рам­ми­ро­ва­ния ти­па C и C++. Вдо­ба­вок, вы не обяза­ны за­к лю­чать ус­ло­вие опе­ра­то­ра if в скоб­ки.

> Сайт Rust Standard Library да­ет под­роб­ ную инфор­ма­цию о стан­дарт­ных функ­ ци­ях Rust.

Но что дей­ст­ви­тель­но важ­но в этом ко­де, так это то, что он учит вас оп­ре­де­лять функ­цию, по­лу­чаю­щую один ар­г у­мент в ка­че­­ст­ве вво­да и воз­вра­щаю­щую од­но зна­че­ние: fn fibonacci(n: i32) -> i32 Дер­жи­те это оп­ре­де­ле­ние функ­ции в го­ло­ве, по­сколь­к у мы уз­ на­ем боль­ше о мо­ду­лях Rust, мо­ду­лях и т. д. на сле­дую­щем уро­ке; а с клю­че­вым сло­вом i32 мы раз­бе­рем­ся в сле­д ую­щем раз­де­ле. С по­мо­щью println! вы мо­же­те на­пе­ча­тать ди­на­ми­че­­ский текст, ис­ поль­зую­щий зна­че­ние пе­ре­мен­ной, сле­дую­щим об­ра­зом: println!(“Fibonacci number {} is {} “, x, fibonacci(x)); По­сколь­к у Rust уже сам зна­ет тип пе­ре­мен­ной, за­д а­вать его в println! не на­до.

Пе­ре­мен­ные в Rust Но­вую пе­ре­мен­ную мож­но объ­я­вить с по­мо­щью клю­че­во­го сло­ ва let. Тип пе­ре­мен­ной ука­зы­вать не обя­за­тель­но: ком­пи­ля­тор Rust по­пы­та­ет­ся вы­яс­нить его сам. Как и в боль­шин­ст­ве со­вре­мен­ных язы­ков про­грам­ми­ро­ва­ния, по умол­ча­нию пе­ре­мен­ные не­из­мен­ны. Ес­ли вы хо­ти­те оп­ре­де­лить из­ме­няе­мую пе­ре­мен­ную, вам сто­ит ис­ поль­зо­вать let mut вме­сто про­сто let. Счи­та­ет­ся хо­ро­шей прак ­ти­кой за­да­вать тип пе­ре­мен­ной при ее объ­яв­ле­нии вруч­ную, не за­став­ляя ком­пь­ю­тер де­лать гряз­ную ра­бо­т у за вас. Rust так ­же под­дер­жи­ва­ ет ссыл­ки, но вам не при­дет­ся ис­поль­зо­вать их так час­то, как в C. (О ра­бо­те со ссыл­ка­ми в Rust вы уз­нае­те боль­ше в сле­дую­щем вы­ пус­ке Linux Format). Сле­дую­щий код (variables.rs) оп­ре­де­ля­ет че­ты­ре пе­ре­мен­ные: let a1 = -78912312; let a2:i16 = 2; let mut a3:u32 = 123; let mut a4:f32 = -123.321; Пе­ре­мен­ная a1 — це­ло­го ти­па, то­гда как a2 — чис­ло со зна­ ком, ис­поль ­зую­щее для хра­не­ния сво­и х дан­ных 16 бит. a1 и a2 не­из­ме­няе­мы, так что их зна­че­ние будет постоянным. Пе­ре­мен­ные a3 и a4 — 32‑раз­ряд­ное це­лое чис­ло без зна­ка и 32‑раз­ряд­ное чис­ ло с пла­ваю­щей за­пя­той со­от­вет­ст­вен­но. Зна­че­ния a3 и a4 из­ме­ нить мож­но, по­сколь­к у они объ­яв­ля­лись с по­мо­щью let mut. Ес­ли пе­ре­мен­ная не ис­поль­зу­ет­ся в ва­шей про­грам­ме, ком­пи­ля­тор Rust на­пе­ча­та­ет пре­ду­пре­ж ­де­ние: variables.rs:3:6: 3:8 warning: unused variable: `a1`, #[warn(unused_variables)] on by default Ана ­ло­гич­но, ком­пи­ля­тор Rust пре­ду­пре­дит вас, ко­гда пе­ре­мен­ ной не на­до быть из­ме­няе­мой: variables.rs:5:6: 5:12 warning: variable does not need to be mutable, #[warn(unused_mut)] on by default

Скорая помощь Про­грам­мы, ко­ то­рые ра­бо­та­ют с фай­ла­ми вво­да/ вы­во­да, фай­ла­ми и ди­рек ­то­рия­ми, по­то­ка­ми, сис­тем­ ны­ми фай­ла­ми и ин­фор­ма­ци­ей, про­цес­са­ми сер­ве­ ра, про­грам­ми­ро­ ва­ни­ем се­ти, об­ра­ бот­кой сиг­на ­лов, меж­про­цесс­ным взаи­мо­дей­ст­ви­ ем и т. д., от­но­сят­ ся к осо­бым об­ лас­тям сис­тем­но­го про­грам­ми­ро­ва­ния. Ес­ли в та­ких про­грам­мах есть ошиб­ки, они мо­ гут по­вре­дить ва­ шу сис­те­му Linux, и ес­ли вы ре­ши­те на­чать раз­ра­бот­ ку сис­тем­но­го ПО, будь­те очень ос­то­рож­ны.

»»Не хотите пропустить номер? Подпишитесь на www.linuxformat.ru/subscribe/! www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 85


Rust

> Про­ект WC под­счи­ты­ва­ет сим­во­лы тек­сто­во­го фай­ла, ко­то­рый дан в ка­че­ст­ве ар­гу­мен­та ко­манд­ной стро­ки. Же­лая уз­нать раз­мер пе­ре­мен­ной в бай­тах, вы мо­же­те ис­поль­ зо­вать биб­лио­те­к у std::mem сле­дую­щим об­ра­зом: println!(“The size of a1 is {} bytes”, mem::size_of_val(&a1)); Вы­во­дом это­го ко­да бу­дет The size of a1 is 4 bytes, т. е. a1 за­ни­ ма­ет 32 би­та. У Rust есть встро­ен­ная под­держ­ка мно­же­ст­ва кон­стант, та­ких как pi и e, че­рез мо­дуль std::f64::consts, но вы так­же мо­же­те объ­я­ вить свои соб­ст­вен­ные зна­че­ния кон­стант. По­жа­луй­ста, об­ра­тите вни­ма­ние, что нуж­но обя­за­тель­но ука­зать тип дан­ных зна­че­ния кон­стан­ты. Зна­че­ние кон­стан­ты долж­но оп­ре­де­лять­ся вне всех оп­ ре­де­ле­ний функ­ции сле­дую­щим об­ра­зом: const LINESIZE:i8 = 1024; Ве­ли­чи­ны-кон­с тан­т ы в Rust очень по­хо­ж и на упот­реб­ле­ние #define в C (на­при­мер, #define LINESIZE 1024) и не мо­г ут ме­нять­ся. Дру­гим спо­со­бом оп­ре­де­ле­ния гло­баль­ных пе­ре­мен­ных яв­ля­ет­ся ис­поль­зо­ва­ние клю­че­во­го сло­ва ‘static’, ко­то­рое мы рас­смот­рим на од­ном из сле­дую­щих уро­ков.

Ти­пы дан­ных Rust

Скорая помощь По­ми­мо C, вы мо­ же­те пи­сать сис­ тем­ное ПО на Go, Perl, Python, и т. д. Важ­но, од­на­ ко, по­ни­мать, что все эти язы­ки про­ грам­ми­ро­ва­ния реа ­ли­зу­ют свои соб­ст­вен­ные сис­ тем­ные функ­ции, ис­поль­зуя хо­ро­шо зна­ко­мые сис­тем­ ные вы­зо­вы C.

В Rust мно­же­ст­во встро­ен­ных ти­пов дан­ных, вклю­чая u8, u16, u32, u64 для це­лых чи­сел без зна­ка и i8, i16, i32, i64 для чи­сел со зна­ ком, где чис­ло (8, 16, 32 и 64) по­сле сим­во­лов ‘u’ или ‘i’ по­ка­зы­ва­ет ми­ни­маль­ное чис­ло бит, ис­поль­зуе­мых для хра­не­ния чи­сел это­го ти­па. По­хо­жим об­ра­зом вы мо­же­те ис­поль­зо­вать f32 и f64 для хра­ не­ния чи­сел с пла­ваю­щей за­пя­той. Как и сле­д у­ет ожи­д ать, Rust под ­дер­жи­ва­ет мас­си­вы. Вы мо­ жете за­дать мас­сив и уз­нать его раз­мер, как по­ка­за­но ни­же: let an_array = [3.5, 1.0, 2.0]; println!(“В мас­си­ве an_array {} эле­мен­тов”, an_array.len()); Ес­ли пер­вым эле­мен­том мас­си­ва яв­ля­ет­ся це­лое чис­ло, то ком­ пи­ля­тор со­чтет, что и все эле­мен­ты мас­си­ва долж­ны быть це­лы­ми чис­ла­ми. Так что сле­дую­щий код, к при­ме­ру, не ском­пи­ли­ру­ет­ся: let an_array = [1, 3.5, 1.0, 2.0];. Со­об­ще­ние об ошиб­ке, ко­то­рое вы по­лу­ чи­те, бу­дет вы­гля­деть сле­дую­щим об­ра­зом: variables.rs:13:31: 13:34 error: mismatched types: expected `_`, found `_` (expected integral variable,found floating-point variable) [E0308] Ес­ли вы да­ди­те мас­си­ву имя anArray, ком­пи­ля­тор Rust сге­не­ри­ ру­ет со­об­ще­ние об ошиб­ке:

variables.rs:13:6: 13:13 warning: variable `anArray` should have a snake case name such as `an_array`, #[warn(non_snake_case)] on by default Де­ло в том, что Rust при объ­яв­ле­нии пе­ре­мен­ных пред­по­чи­та­ ет обо­зна­че­ние an_array. Од­на­ко ва­ша про­грам­ма все рав­но ском­ пи­ли­ру­ет­ся. Вы мо­же­те вруч­ную оп­ре­де­лить тип и раз­мер мас­си­ ва сле­дую­щим об­ра­зом: let another_array: [f32; 5] = [1.0, 3.5, 1.0, 2.0, 2.0]; let init_array: [f32; 5] = [2.0; 5]; Пе­ре­мен­ная init_array ис­поль­зу­ет удоб­ное со­кра­ще­ние Rust для ини­циа­ли­за­ции ка­ж ­до­го эле­мен­та мас­си­ва до зна­че­ния 2.0. Вы мо­ же­те по­се­тить все эле­мен­ты мас­си­ва, ис­поль­зуя ите­ра­тор, сле­дую­ щим об­ра­зом: for x in another_array.iter() { println!(«{}”, x); } Ме­т од .take(n) (ни­же) вер­н ет n эле­м ен­т ов, то­гда как ме­т од .skip(n) про­пус­тит пер­вые n эле­мен­тов и про­дол­жит ра­бо­т у с ос­ тав­ши­ми­ся. Вы так­же мо­же­те со­вмес­тить .take(n) со .skip(m) и ис­ поль­зо­вать их оба как .skip(n).take(m), что­бы про­пус­тить пер­вые n эле­мен­тов и вер­нуть сле­дую­щие m эле­мен­тов: for x in another_array.iter().skip(2).take(2) { println!(«{}”, x); } Rust так ­же под ­дер­жи­ва­ет пе­ре­мен­ные Boolean с по­мо­щью клю­ че­вых слов true и false: let it_is_true = true; let it_is_false = false; За­дать пе­ре­мен­ную для хра­не­ния од­но­го сим­во­ла мож­но с по­ мо­щ ью let ch = ‘a’;. По­хо­ж им об­р а ­зом, мож ­но за ­д ать пе­р е­мен­ ную для хра­не­ния стро­ко­вой пе­ре­мен­ной с по­мо­щью let str = “Это строка!”;. Стро­ко­вые пе­ре­мен­ные об­ра­ба­ты­ва­ют­ся сим­вол за сим­во­лом с по­мо­щью ме­то­да .chars(): for x in aLine.chars() { count += 1; } Мы бу­дем ис­поль­зо­вать пре­ды­д у­щий код позд­нее в про­ек ­те WC. Как ви­ди­те (см. рис. ввер­х у сле­ва), су­ще­ст­ву­ет ме­тод .lines() для об­ра­бот­ки фай­ла по­строч­но.

Про Cargo Cargo — это ме­нед ­жер па­ке­тов Rust, ко­то­рый по­мо­г а­е т соз­д а­ вать но­вые па­ке­ты и справ­лять­ся с их за­ви­си­мо­стя­ми. По­ми­мо са­ мо­го ко­да Rust, файл Cargo.toml, ко­то­рый мож­но най­ти в ка­ж ­дом про­екте Cargo, яв­ля­ет­ся важ­ней­шим фай­лом про­ек ­та, по­сколь­к у он со­дер­жит ме­та­д ан­ные, не­об­хо­ди­мые Cargo, что­бы ском­пи­ли­ ро­вать ваш про­ект. На­при­мер, по умол­ча­нию файл Cargo.toml для про­ек ­та под на­зва­ни­ем helloWorld вы­гля­дел бы так: $ cargo new helloWorld --bin code$ cd helloWorld/ helloWorld$ cat Cargo.toml [package] name = “helloWorld” version = “0.1.0” authors = [“mtsouk”] [за­ви­си­мо­с ти] Ес­ли вы хо­т и­те сде­лать би­нар­ник вы­пол­ни­мым, сле­д у­ет ис­ поль­зо­вать па­ра­метр --bin, но ко­гда вы хо­ти­те соз­дать биб­лио­те­ ку, па­ра­метр вам не ну­жен. Как вы ви­ди­те на изо­бра­же­нии слева на стр. 87, Cargo ав­то­ма­ти­че­­ски ге­не­ри­ру­ет файл с име­нем main. rs в ди­рек ­то­рии src, ку­д а вам сле­д у­ет по­мес­тить свой код Rust.

»»Пропустили номер? Узнайте на с. 108, как получить его прямо сейчас. 86  |  LXF210 Июнь 2016

www.linuxformat.ru/subscribe


Rust

Ар­гу­мен­ты ко­манд­ной стро­ки И вот как чи­тать и об­ра­ба­ты­вать ар­г у­мен­ты ко­ манд­ной стро­ки в Rust. Пол­ный код Rust мож­но най­ти в argV.rs, где вы уви­ди­те, что для чте­ния ар­г у­мен­тов вам необходимо ис­поль­зо­вать па­кет std::env и ме­тод env::args(). Обра­ти­те внимание: argV.rs не вы­пол­ня­ет про­вер­ки на пред­мет оши­ бок (мы рас­смот­рим про­вер­к у на ошиб­ки в Rust на нашем сле­д ую­щем уро­ке). Ес­ли вы за­хо­ти­те ис­поль­зо­вать ар­г у­мен­ты ко­ манд­ной стро­ки как чис­ла, мо­же­те ис­поль­зо­вать

сле­д ую­щий код Rust, по­ка­зы­ваю­щий, как пра­ виль­но кон­вер­ти­ро­вать стро­ко­вую пе­ре­мен­ную в це­лое чис­ло: let args2 = os::args(); let mut sum = 0; for x in args2.skip(1) { let number: u32 = x.parse().unwrap(); println!(“{}”, number) sum += number;

} println!(“Sum: {}”, sum); О ме­то­де .unwrap() вы уз­нае­те под­роб­но­сти на сле­д ую­щем уро­ке, но вы мо­же­те уви­деть (вы­ше) удоб­ное при­ме­не­ние ме­то­да skip() для про­пус­ка пер­во­го ар­г у­мен­та ко­манд­ной стро­ки, который яв­ляется име­нем вы­пол­няе­мо­го мо­д у­ля. Ес­ли вы вве­де­те в ка­че­­ст­ве ар­г у­мен­та ко­манд­ной стро­ки не­чи­сло­вое зна­че­ние, хотя бы да­же знак ми­нус, про­грам­ма даст сбой.

и ис­поль­зо­вал еще пять биб­лио­тек. Как ви­ди­те, вы так­же мо­жете за­дать ми­ни­маль­ную вер­сию нуж­ной вам биб­лио­те­ки (скрин­шот сле­ва по­ка­зы­ва­ет, что ска­ча­на вер­сия 0.1.54 биб­лио­те­ки regex) Cargo по­ме­щ а­ет ис­ход­ный код тре­буе­мых па­ке­тов в ди­рек­то­ рию ~/.cargo, но ком­пи­ли­ру­ет их и ге­не­ри­ру­ет не­об­хо­ди­мые биб­ лио­те­ки при соз­да­нии про­ек ­та. Ин­с т­ру­мент Cargo — это ре­ко­мен­до­ван­ный спо­соб соз­д а­ния и под­дер­жа­ния ва­ших про­ек­тов Rust, ко­то­рый бу­дет ши­ро­ко ис­ поль­зо­вать­ся в этой се­рии ру­ко­водств по язы­к у про­грам­ми­ро­ва­ ния Rust.

Под­счет сим­во­лов

Че­рез ме­с яц: Rust File I/O

> Здесь по­ка­за­но, как Cargo ра­бо­та­ет с за­ви­си­мо­стя­ми про­ек­тов, ко­то­рые ав­то­ма­ти­че­ски ска­чи­ва­ют­ся и объ­е­ди­ня­ют­ся в ссыл­ки для соз­да­нии тре­буе­мо­го ис­пол­няе­мо­го фай­ла.

Про­ект WC (ко­то­рый вы мо­же­те най­ти на LXFDVD или на linuxfor­ mat.com/archive) мож­но соз­дать с по­мо­щью $ cargo new WC --bin $ cd WC/ $ vi src/main.rs Вам не по­на­до­бит­ся вно­сить ка­кие-ли­бо из­ме­не­ния в со­дер­ жи­мое Cargo.toml для про­ек ­т а WC. Код Rust в ./src/main.rs под­ счи ­т ы­в а­е т ито­г о­в ое ко­ли­ч е­­с т ­в о сим­в о­л ов в тек­с то­в ом фай ­л е. Имя тек­сто­во­го фай­ла да­но про­грам­ме Rust в ка­че­­ст­ве ар­г у­мента ко­манд­ной стро­к и (см. стр. 86 ввер­х у слева для де­мон­с т­ра­ц ии ра­бо­ты про­ек­та WC, за­пу­щен­но­го в Rust). Как вы так­же мо­же­те ви­деть (см. на том же рис. стр. 86), ком­пи­ля­тор Rust вы­ра ­жа­ет не­ до­воль­ст­во, по­сколь­к у для имен про­ек ­тов пред­по­чи­та­ет упот­реб­ ле­ние сим­во­лов ниж­не­го ре­ги­ст­ра. По­здрав­ля­ем, вы толь­ко что соз­да­ли при­ми­тив­ную вер­сию ути­ ли­ты ко­манд­ной стро­ки wc. В сле­дую­щей час­ти мы вме­сте уз­на­ем боль­ше о File I/O в Rust. |

По умол­ча­нию main.rs со­дер­жит ис­ход­ный код про­грам­мы “Hel­ lo World!”. Вы мо­же­те ре­дак­ти­ро­вать Cargo.toml и ме­ня­ет зна­че­ние пе­ре­мен­ных име­ни, вер­сии и ав­то­ров. Вы мо­же­те ском­пи­ли­ро­вать про­ект Cargo, вы­пол­нив ко­ман­д у cargo build. Для про­ек­та helloWorld ис­пол­няе­мый файл с ин­фор­ма­ ци­ей об от­лад­ке бу­дет рас­по­ло­жен в target/debug/helloWorld. Же­ лая соз­дать вы­пус­кае­мую вер­сию, за­пус­ти­те cargo build --release, и ис­пол­няе­мым фай­лом бу­дет target/release/helloWorld. Как ва­ри­ант, ес­ли вы возжелаете вы­пол­нить свою про­грам­му за один шаг, вы мо­же­те за­пус­тить ко­ман­д у cargo run, и очи­стить свой про­ект, вы­пол­нив ко­ман­ду cargo clean. Ес­ли вы по­мес­ти­те ва­ ши ар­г у­мен­ты ко­манд­ной стро­ки по­сле всей ко­ман­ды cargo, вы мо­ же­те пе­ре­дать их в свой ис­пол­няе­мый файл. Вы так­же мо­же­те до­ба­вить за­ви­си­мость ва­ше­му про­ек­т у. Хо­ ро­шо то, что Cargo ав­то­ма­ти­че­­ски ска­чи­ва­ет не­об­хо­ди­мые за­ви­си­ мо­сти, а так ­же за­ви­си­мо­сти за­ви­си­мо­стей (см. экран­ный снимок вверху слева, где по­ка­за­но, как Cargo соз­да­ет про­ект с за­ви­си­мо­ стя­ми, оп­ре­де­лен­ны­ми в Cargo.toml). Не­с мот­ря на тот факт, что ва­ше­м у про­ек­т у требуется толь­ ко од­на биб­лио­те­ка (regex), вы за­ме­ти­те, что Cargo так­же ска­чал

> Rust мо­жет чи­тать ар­гу­мен­ты ко­манд­ной стро­ки с по­мо­щью па­ке­та std::env. Ис­ход­ный код argV.rs по­ка­зы­ва­ет спо­соб, а так­же тех­ни­ку кон­вер­ти­ро­ва­ния стро­ко­вой пе­ре­мен­ной в це­лое чис­ло.

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 87


Swift

Swift: Сле­дим за спи­ском дел Учи­тесь чи­тать и пи­сать фай­лы, ис­поль­зуя ре­аль­ный про­ект, ко­то­рый, мо­жет быть, на­ко­нец-то сде­ла­ет По­ла Хад­со­на ор­га­ни­зо­ван­ным... про­стей­ший ва­ри­ант: мы бу­дем от­сле­жи­вать пунк­ты спи­ска дел, где ка­ж ­дая стро­ка в todo.txt пред­став­ля­ет со­бой од­ну за­да­чу. Ес­ли, за­кон­чив этот про­ект, вы воз­на­ме­ри­тесь до­ба­вить в не­го функ­цио­ наль­но­сти, пе­рей­ди­те на http://todotxt.com, и вы уви­ди­те пол­ный диа­па­зон функ­ций, ко­то­рые мож­но до­ба­вить!

Чте­ние па­ра­мет­ров Наш эксперт Пол Хад­сон — отме­чен­ный на­гра­ да­ми про­грам­мист и ав­тор, ра­бо­таю­ щий над кни­гой по Swift, ко­то­рую вы точ­но долж­ны ку­пить *на­вяз­ чи­вая рек ­ла­ма* https://gum.co/pro­ swift. [Ред.: — Эй! Раз­ме­ще­ние рек­ ла­мы во­об­ще-то плат­ное!]

Н Скорая помощь Соз­да­ние це­ло­го чис­ла из стро­ко­ вой пе­ре­мен­ной яв­ля­ет­ся ини­циа­ ли­за­то­ром, и для ти­па Int су­ще­ст­ву­ет мно­же­ст­во раз­ных ини­циа ­ли­за­то­ров. Од­на­ко в дан­ном слу­чае это под­ вер­жен­ный от­ка­ зам ини­циа ­ли­за­ тор — на­пи­сан­ный как init?() вме­сто init() — а зна­чит, он воз­вра­щ а­ет оп­ цио­наль­ное зна­че­ ние из-за соз­да­ния дан­ных.

88  |  LXF210 Июнь 2016

а про­шлом уро­ке мы ис­поль­зо­ва­ли readLine(), мас­си­вы и ну­ле­вое объ­е­ди­не­ние для от­сле­жи­ва­ния то­го, что GitHub де­ла­ет в ко­манд­ной стро­ке — на­де­юсь, это ста­ло для вас бое­вым кре­ще­ни­ем для соз­д а­ния че­го-то по­лез­но­го с по­мо­щью Swift. (См. LXFDVD или ар­хив вы­пус­ков для PDF с ру­ко­во­дства­ ми по Swift про­шло­го ме­ся­ца или ме­ся­цем ра­нее, плюс для пол­но­ го ис­ход­но­го ко­да это­го про­ек­та). Те­перь я хо­чу ук­ре­пить это зна­ ние, по­чи­ты­вая па­ра­мет­ры ко­манд­ной стро­ки, воз­вра­щая дан­ные поль­зо­ва­те­ля на диск и соз­да­вая код для об­на­ру­же­ния оши­бок. Как я уже го­во­рил, Swift раз­ра­бо­тан как ис­к лю­чи­тель­но безо­ пас­ный язык, то есть вы про­сто не мо­же­те за­пус­тить код, ко­то­рый рух­нет — вам не­об­хо­ди­мо ли­бо пре­дос­та­вить ра­зум­ную аль­тер­на­ ти­ву, ли­бо най­ти ошиб­к у. В про­ек­те это­го ме­ся­ца я со­би­ра­юсь про­ де­мон­ст­ри­ро­вать вам спо­со­бы убе­дить­ся в том, что ваш код на­ де­жен, так что вы уви­ди­те пол­ный диа­па­зон оп­ций и, я на­де­юсь, на­пи­ше­те сво­бод­ный от сбо­ев код в ва­ших соб­ст­вен­ных про­ек ­тах! Итак, что за про­ект? Ну, вы, воз­мож­но, уже слы­ша­ли о todo.txt: это фор­мат фай­лов, раз­ра­бо­тан­ный для от­с ле­жи­ва­ния спи­сков дел из ко­манд­ной стро­ки. В сво­ем из­на­чаль­ном ви­де todo.txt про­ сто от­сле­жи­вал спи­сок пунк­тов, но — как это час­то слу­ча­ет­ся — про­ект рас­ши­рил­ся и те­перь от­сле­жи­ва­ет про­ек ­ты, при­ори­те­ты, да­ты, ста­т ус за­вер­шен­но­с ти, и т.  д. Что­бы вам не снес­ло кры­шу еще на ран­ней ста­дии ва­шей карь­е­ры в Swift, наш про­ект вы­бе­рет

В рас­по­ря­же­нии поль­зо­ва­те­лей Linux — сот­ни ко­манд, и мно­гие из этих ко­манд име­ют де­ся­ток или бо­лее па­ра­мет­ров, из­ме­няю­ щих их дей­ст­вие. Да­же у про­стой ко­ман­ды ls есть 58 ва­ри­ан­тов, в за­ви­си­мо­сти от ис­поль­зуе­мых ва­ми па­ра­мет­ров, и бу­дет спра­ вед­ли­во ска­зать, что поль­зо­ва­те­ли ожи­да­ют воз­мож­но­сти на­стро­ ить ра­бо­т у ко­ман­ды с по­мо­щью раз­лич­ных оп­ций. У на­шей про­ грам­мы бу­дет че­ты­ре ре­жи­ма ра­бо­ты: до­ба­вить эле­мент, уда­лить эле­мент, по­ка­зать спи­сок всех пунк ­тов или на­пе­ча­тать под­сказ­к у. По­след­ний яв­ля­ет­ся про­стей­шим для на­ча­ла, так что да­вай­те при­ сту­пим — по­жа­луй­ста, за­пус­ти­те та­кие ко­ман­ды: $ mkdir todo $ cd todo $ touch Package.swift $ touch main.swift $ swift build $ .build/debug/todo Ес­ли ва­ша сис­те­ма на­с трое­на пра­виль­но, соз­д а­с т­с я пус­той про­ект Swift; ском­пи­ли­руй­те его и за­пус­ти­те. Ни­че­го не на­пе­ча­та­ ет­ся, по­сколь­к у мы еще не на­пи­са­ли ни­ка­ко­го ко­да, но это, по край­ ней ме­ре, до­к а­зы­в а­ет, что вы го­то­вы на­чать про­г рам­ми­ро­вать. Ес­ли од­на из по­след­них двух ко­манд не сра­бо­та­ла, по­жа­луй­ста, об­ра­ти­тесь к PDF’ам пре­ды­ду­щих но­ме­ров жур­на ­ла. От­к рой­т е файл main.swift в лю­би­м ом тек­с то­вом ре­д ак ­т о­р е и до­бавь­те ввер­х у import Foundation. Это при­вле­чет стан­дарт­ную функ­цио­наль­ность сис­тем Apple и даст нам все не­об­хо­ди­мое для на­ше­го про­ек ­та. Про­стей­шая шту­ка — на­пи­са­ние функ­ции, ко­то­рая бу­дет пе­ча­ тать под­сказ­ки для поль­зо­ва­те­ля: на­при­мер, ка­кие ко­ман­ды при­ ни­ма­ет эта про­г рам­ма. По­сколь­к у ком­пи ­ля ­тор Swift чи­т а­ет код свер­х у вниз, нам на­до спер­ва на­пи­сать эту функ­цию, а по­том уж пы­тать­ся ее ис­поль­зо­вать, так что, по­жа­луй­ста, до­бавь­те пря­мо под им­порт, ко­то­рый вы толь­ко что на­пи­са­ли, стро­ки func help() { print(“Доступные команды:”) print(“ add \“Купить новые носки\””) print(“ delete 3”) print(“ list”) print(“”) } По­ка все про­сто. Те­перь пе­рей­дем к ин­те­рес­ной час­ти: чте­ние па­ра­мет­ров ко­манд­ной стро­ки поль­зо­ва­те­ля и при­ня­тие даль­ней­ ших ре­ше­ний. Это де­ла­ет­ся с по­мо­щью мас­си­ва Process.arguments (см. стр. 89), ко­то­рый со­дер­жит по од­но­му эле­мен­т у для ка­ж ­дой

www.linuxformat.ru/subscribe


Swift

Сде­лай­те боль­ше с todo.txt Вряд ли вы мог­ли по­д у­мать, что обыч­ный тек­сто­ вый фор­мат фай­ла бы­ва­ет слож­ным, но по­верь­те: это так! Что­бы по­нять, на­сколь­ко все слож­но, сто­ит на­чать с офи­ци­а ль­ной до­маш­ней стра­нич­ки http://todotxt.com. Здесь вы най­де­те ку­чу ре­сур­сов: офи­ци­а ль­ная реа ­ли­за­ция скрип­та обо­лоч­ки todo. txt; ссыл­ки на вер­сии при­ло­же­ний для iPad, iPhone, Android; до­к у­мен­та­ция поль­зо­ва­те­ля; до­к у­мен­та­ция раз­ра­бот­чи­ка; при­моч­ки, рас­ши­ряю­щие фор­мат, и мно­гое дру­гое — это це­лая эко­си­сте­ма! Же­лая рас­ши­рить на­ше при­ло­же­ние так, что­бы оно под­дер­жи­ва ­ло пол­ный стан­дарт todo.txt, нач­ните с до­бав­ле­ния при­ори­те­тов. Это про­сто тек­сто­вая стро­ка ти­па (A) или (C), но она все­гда

по­яв­ля­ет­ся в стро­ке пер­вой. Ее мож­но до­ба­вить, как и лю­бой дру­гой пункт спи­ска дел, но не ме­ша­ет на­ пи­сать код для сор­ти­ров­ки пунк­тов по при­ори­те­там на ос­но­ва­нии этих букв. Мас­си­вы Swift по­зво­ля­ют пи­сать ин­ди­ви­д у­а ль­ные функ­ции для ме­то­да sort(), ко­то­рый спра­вит­ся с этим дос­та­точ­но лег­ко. Да­лее, офи­ци­а ль­ный стан­дарт по­зво­ля­ет от­ ме­чать за­да­чи как вы­пол­нен­ные, на­чи­ная их с x. Поль­зо­ва­телю не следует до­бав­ля­ть эти пунк­ты на­пря­мую (иначе ка­кой был бы смысл в нашей программе?), и вме­сто это­го луч­ше на­пи­сать но­вые ко­ман­ды, от­ме­чаю­щие за­да­чи как вы­пол­нен­ные/ не­вы­пол­нен­ные. Вы са­ми долж­ны ре­шить, как это бу­дет по­ка­зы­вать­ся при пе­ре­чис­ле­нии ко­манд.

час­ти ко­манд­ной стро­ки, на­чи­ная с са­мой ко­ман­ды todo. Ес­ли этот мас­сив со­дер­жит один эле­мент (са­му ко­ман­ду), мы за­пус­тим но­ вую функ­цию help(). Ес­ли мас­сив со­дер­жит бо­лее од­но­го эле­мен­ та (на­при­мер, “todo list”), за­пус­тим дру­гие функ­ции, до ко­то­рых мы до­бе­рем­ся поз­же. Нам на­до вы­брать, ка­к ую оп­цию за­п ус­т ить, ис­поль­зуя блок опе­ра­то­ра ветв­ле­ния, и есть две ве­щи, ко­то­рые сле­д у­ет об этом знать. Пер­вая — в Swift нет скры­тых оши­бок для опе­ра­то­ров вы­бо­ ра, и вме­сто то­го, что­бы для вы­хо­да пи­сать “break”, на­до на­пи­сать fallthrough, т. е. «вы­пол­нить сле­дую­щий блок опе­ра­то­ра вме­сто это­ го». Вто­рая — Swift тре­бу­ет, что­бы опе­ра­то­ры пе­ре­к лю­че­ния бы­ли ис­чер­пы­ваю­щи­ми, и в на­шем слу­чае это оз­на­ча­ет, что ну­жен слу­ чай по умол­ча­нию, ко­гда поль­зо­ва­тель пи­шет ко­ман­д у, ко­то­рую мы не рас­по­зна­ем. До­бавь­те под функ­ци­ей help() та­кой код: if Process.arguments.count == 1 { help() } else { switch Process.arguments[1] { case “add”: fallthrough case “delete”: fallthrough case “list”: fallthrough default: help() } } Вско­ре мы впи­шем ту­д а кое-что еще, но сей­час код пе­ча­т а­ ет под­сказ­к у — не­важ­но, ка­к ую, по­сколь­к у все слу­чаи сво­д ят­ся к умол­ча­нию.

Офи­ци­а ль­ное при­ло­же­ние обо­лоч­ки по­зво­ля­ет ис­поль­зо­вать при по­ис­ке ‘--‘, на­при­мер, list --cat, что­бы по­ка­зать толь­ко ре­зуль­та­ты, не вклю­чаю­щие не­кое сло­во. Вдо­ба­вок ко все­му, офи­ци­а ль­ный стан­дарт ис­ поль­зу­ет сим­во­лы ‘+’ и ‘@’, что­бы обо­зна­чить про­ект и кон­текст — но это толь­ко тек­сто­вые мар­ке­ры, у них нет ка­ко­го-то осо­бо­го по­ве­де­ния. Ес­ли вы хо­ти­те уви­деть пол­ный спи­сок ко­манд, под ­дер­жи­вае­мых про­грам­мой обо­лоч­ки todo.txt, луч­ше взгля­нуть на ис­точ­ник на GitHub — вы уви­ ди­те до­пол­ни­тель­ные функ­ции, та­кие как ре­жим де­д у­п­ли­ка­ции и ин­те­рак ­тив­ный ре­жим; но они не влия­ют на ра­бо­т у с фай­лом.

с nil: та­кая ком­би­на­ция оз­на­ча­ет «по­про­буй­те за­гру­зить стро­ко­ вую пе­ре­мен­ную из фай­ла, но ес­ли это по­че­му-ли­бо не уда­ст­ся, возь­ми­те вме­сто нее зна­че­ние по умол­ча­нию». Ко­гда файл за­гру­ зит­ся, мы соз­да­дим из не­го мас­сив с по­мо­щью componentsSepa­ ratedByString(), а за­тем про­ве­дем этот мас­сив че­рез filter(), что­бы уда­лить пус­тые стро­ки. До­бавь­те та­кой код пря­мо под стро­кой im­ port Foundation: let fileContents = (try? String(contentsOfFile: “todo.txt”, encoding: NSUTF8StringEncoding)) ?? “” var items = fileContents.componentsSeparatedByString(“\n”) items = items.filter { $0 != “” } Я сде­лал fileContents кон­с тан­той, по­с коль­к у мы ни­ко­гда ее не из­ме­ним, но эле­мен­ты бу­д ут из­ме­нять­ся при до­бав­ле­нии или уда ­ле­нии пунк ­тов, так что она объ­яв­ле­на как var. Ко­гда де­ло до­хо­дит до со­хра­не­ния фай­ла на диск, тут нуж­на функ­ция, по­сколь­к у это по­тре­бу­ет­ся в двух мес­тах: по­сле до­бав­ле­ ния пунк­та и по­сле его уда­ле­ния. Код для со­хра­не­ния слож­нее, чем для за­груз­ки, по­сколь­к у нам на­до об­на­ру­жить ошиб­ки, а не пре­ дос­та­вить зна­че­ние по умол­ча­нию — ес­ли что-то пой­дет не так, на­ при­мер, из-за не­дос­та­точ­ных прав поль­зо­ва­те­ля, на­до бу­дет пре­ ду­пре­дить поль­зо­ва­те­ля. Ис­поль­зо­ва­ние try? — это спо­соб Swift ска­зать «Я знаю, что этот код мо­жет дать сбой, но то­гда про­сто вер­ни nil, а не за­став­ ляй ме­ня ис­кать ошиб­к у». По­сколь­к у на сей раз мы со­би­ра­ем­ся на­ пи­сать именно код об­ра­бот­ки оши­бок, вос­поль­зу­ем­ся вме­сто try? обыч­ным try, син­так­сис ко­то­ро­го силь­но от­ли­чен от дру­гих язы­ ков: вы по­ме­щ ае­те весь вы­зов в блок do/catch, за­тем ис­поль­зу­ ете try в ка­ж ­дой стро­ке, спо­соб­ной дать сбой. Это по­зво­лит с хо­ду

Скорая помощь Код Возь­ми­те код main.swift на http:// pastebin.com/ GhwnGhcy.

За­груз­ка и со­хра­не­ние Сле­д ую­щий шаг — на­пи­сать функ­цию add(), ко­то­рая до­ба­вляет эле­мент в наш спи­сок дел. Что­бы это сра­бо­та­ло, нам на­до иметь воз­мож­ность за­г ру­зить су­ще­с т­вую­щий спи­сок и со­х ра­нить его по­с ле вне­с е­ния из­ме­не­ний — обе опе­ра­ц ии спо­с об­ны зая­вить о раз­лич­ных ошиб­ках, так что у нас есть шанс изящ­но эти ошиб­ ки об­ра­бо­тать. Во-пер­вых: за­гру ­жа­ем спи­сок дел. Для это­го по­на­до­бит­ся про­ чи­тать файл todo.txt с дис­ка и соз­д ать мас­сив, раз­де­ляя стро­ки в со­от­вет­с т­вии с пе­ре­во­дом строк. Это дос­т а­точ­но про­с то сде­ лать, но что про­изой­дет, ес­ли фай­ла не су­ще­ст­ву­ет? То­гда чте­ние из не­го не уда­ст­ся, и это Пло­хо. Вме­сто то­го, что­бы пи­сать один ку­ сок ко­да для вы­пол­не­ния, ес­ли файл су­ще­ст­ву­ет, и дру­гой, ес­ли файла не су­ще­ст­ву­ет, мы ис­поль­зу­ем try? и опе­ра­тор объ­е­ди­не­ния

> Офи­ци­аль­ный сайт http://todotxt.com со­дер­жит все ви­ды до­ку­мен­та­ции, ссыл­ки на реа­ли­за­ции и ви­део, по­мо­гаю­щие вам на­чать.

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 89


Swift рас­по­зна­вать ва­ши на­ме­ре­ния (и по­ве­де­ние ва­ше­го ко­да), по­сколь­ ку сра­зу вид­но, ка­кие стро­ки мо­г ут вы­дать ошиб­ки. До­бавь­те под ра­нее до­бав­лен­ной функ­ци­ей help() та­к ую функ­ цию save(): func save() { let joined = items.joinWithSeparator(“\n”) do { try joined.writeToFile(“todo.txt”, atomically: true, encoding: NSUTF8StringEncoding) } catch { print(“Failed to write todo.txt - please check permissions.“) } } Как не­труд­но пред­ста­вить, ме­тод joinWithSeparator() про­ти­во­ по­ло­жен componentsSeparatedByString(). Ме­тод writeToFile(), вы­ зы­вае­мый над стро­кой, име­ет по­лез­ный «ато­мар­ный» па­ра­метр: он пи­шет весь текст во вре­мен­ный файл, ко­то­рый за­тем пе­ре­име­ но­вы­ва­ет­ся в ва­ше це­ле­вое имя фай­ла, что­бы не дать дру­гим про­ грам­мам чи­тать час­тич­но завершенный файл.

До­бав­ле­ние и пе­ре­чис­ле­ние За­груз­ка и со­хра­не­ние го­то­вы; до­бав­лять пункт к спи­ску за­дач бу­ дет дву­строч­ный ме­тод func add(item: String) { items.append(item) save() } Все не­мно­го ус­лож­ня­ет­ся, ко­гда де­ло до­хо­дит до ре­а ль­ной ра­ бо­ты с ме­то­дом add(), по­сколь­к у на­ша про­грам­ма обя­за­на от­вер­ гать не­что вро­де todo add на том ос­но­ва­нии, что ей не ска­за­но, что имен­но до­бав­лять. Что­бы это­г о до­бить­с я, на­д о про­ве­рять, что в Process.argu­ ments.count со­д ер­ж ит­с я ров­н о три эле­м ен­т а: то­гда мы вы­з о­ вем add() и пе­ре­д а­дим ее в тре­тий эле­мент; ес­ли же это не так, мы сно­в а вы­зо­вем функ ­ц ию help(), что­бы так­т ич­но на­пом­нить поль ­зо­в а­т е ­лю, как это всё долж ­но ра­бо­т ать. Вер­ни ­т есь к ко­д у switch/case, ко­то­рый мы на­пи­с а­ли ра­нее, и за­ме­ни­те fallthrough под add но­вым ко­дом: if Process.arguments.count == 3 { add(Process.arguments[2]) } else { help() } Те­перь вы долж­ны су­меть ском­пи­ли­ро­вать и за­пус­тить код: ис­поль­зуй­те swift build для ком­пи­ля­ции, а за­тем .build/debug/todo

для за­пус­ка. Вна­ча ­ле вы долж­ны уви­деть под­сказ­к у, но пе­ре­за­ пус­тив­шись с не­ко­то­ры­ми ар­г у­мен­та­ми, вы долж­ны су­меть до­ба­ вить пунк­ты: .build/debug/todo add “На­кор­мить ко­та” Же­лая убе­дить­ся, что ваш код ра­бо­та­ет пра­виль­но, ли­бо по­до­ ж ­ди­те бу­к­валь­но ми­нут­к у, по­ка мы до­ба­вим функ­цию list(), ли­бо про­сто от­крой­те todo.txt в тек­сто­вом ре­дак ­то­ре, что­бы убе­дить­ся, что ваш пункт там присутствует. Об­нов­ле­ние на­ше­го ко­д а, что­бы он пе­ча­тал те­к у­щий спи­сок дел, не столь слож­но, но мы ис­поль­зу­ем эту воз­мож­ность, что­бы пред­с та­вить вам клю­ч е­вое сло­во Swift — guard. Оно от­в е­ч а­е т за ран­ние воз­вра­ты в Swift; это та­кой свое­об­раз­ный спо­соб со­ об­щить, что мы вы­хо­дим из функ­ции, ес­ли не­ко­то­рые пред­ва­ри­ тель­ные ус­ло­вия не вы­пол­не­ны, и вот при­мер то­го, что мы име­ ем в ви­ду: func printGreatSingers(names: [String]) { guard names.contains(“Taylor Swift”) else { print(“Ваш спи­сок не­по­лон.”) return } print(“Не­ко­то­рые вве­ли­кие пев­цы: ”, names) } printGreatSingers([“Beyonce”, “Taylor Swift”]) printGreatSingers([“Beyonce”]) Пер­вая стро­ка на­пе­ча­та­ет Не­ко­то­рые вве­ли­кие пев­цы: Beyonce, Taylor Swift, а вто­рая на­пе­ча­та­ет Ваш спи­сок не­по­лон. В дан­ном при­ме­ре guard ра­бо­т а­ет как ран­ний воз­врат: ес­ли мас­сив имен не со­дер­жит Taylor Swift, он су­ще­ст­ву­ет. Ес­ли вы по­ка не очень хо­ро­шо зна­ко­мы с guard, вам, ве­ро­ят­но, ин­те­рес­но, чем он луч­ше обыч­но­го опе­ра­то­ра if; но вы уви­ди­те, что у не­го есть три пре­иму­ще­ст­ва: 1) он де­ла­ет ва­ши на­ме­ре­ния яс­ны­ ми: это пред­по­сыл­ка ра­бо­ты дан­ной функ­ции; 2) вы долж­ны вый­ ти из функ­ции, ес­ли guard тер­пит сбой, а не пи­сать длин­ный опе­ ра­тор else, соз­да­вая но­вый уро­вень от­сту­па в сво­ем ко­де; 3) guard про­ве­ря­ет и раз­во­ра­чи­ва­ет оп­ции и ос­тав­ля­ет их дос­т уп­ны­ми для вас в функ­ции. Да­вай­те те­перь на­пи­шем функ­цию list(). Ей на­до про­ве­рить, что­бы в мас­си­ве пунк­тов был хо­тя бы один эле­мент, и мы ис­поль­ зу­ем guard, что­бы убе­дить­ся, что это так. Уз­нав, что эле­мен­ты там есть, мы применим enumerate(), что­бы в цик­ле прой­ти по всем эле­ мен­там и на­пе­ча­тать их — мы ис­поль­зо­ва­ли этот ме­тод на про­ шлом уро­ке, и он весь­ма по­ле­зен, по­сколь­к у вы­да­ет ин­декс и пункт при ка­ж ­дом про­хо­де цик­ла. Вот соответствующий код — по­мес­ти­те его сра­зу по­сле функ­ ции save(): func list() { guard items.count > 0 else { print(“Ваш спи­сок за­д ач пуст!”) return } for (index, item) in items.enumerate() { print(“\(index + 1). \(item)”) } } Что­бы ак­ти­ви­ро­вать эту функ­цию, про­сто за­ме­ни­те код case “list”: fallthrough на та­кой: case “list”: list()

Пре­об­ра­зо­ва­ние строк в Int > Же­лая удо­сто­ве­рить­ся, что ва­ша про­грам­ма чи­та­ет и пи­шет пра­виль­но, про­сто от­крой­те todo.txt в лю­бом тек­сто­вом ре­дак­то­ре — ура про­сто­му тек­сту! 90  |  LXF210 Июнь 2016

За­груз­ка, со­хра­не­ние, до­бав­ле­ние и пе­ре­чис­ле­ние от­ны­не ра­бо­ та­ют; в ином слу­чае на­ша про­грам­ма вы­во­дит под­сказ­к у. Всё, что ос­т а ­лось — уда ­ле­ние эле­мен­тов, и это да­е т нам воз­мож­ность

www.linuxformat.ru/subscribe


Swift про­де­мон­ст­ри­ро­вать не­обыч­ную часть син­так­си­са Swift: ком­би­на­ цию ус­ло­вия с оп­цио­наль­ным рас­кры­ти­ем. Но сна­ча­ла — са­ма функ­ция delete(). Мы за­ста­вим ее сно­ва ис­ поль­зо­вать guard, обес­пе­чив, что­бы поль­зо­ва­те­ли не пы­т а­лись уда ­лять эле­мен­ты вне на­ше­го мас­си­ва пунк ­тов. За­тем на­до про­сто ис­поль­зо­вать ме­тод мас­си­вов removeAtIndex(), что­бы вы­та­щить вы­бран­ный поль­зо­ва­те­лем пункт, не по­за­быв вы­честь 1, по­то­му что эле­мен­ты мас­си­вов ну­ме­ру­ют­ся с ну­ля. Вот код: func delete(number: Int) { guard number > 0 && number <= items.count else { print(“Та­ко­го пунк­та нет!”) return } items.removeAtIndex(number - 1) save() } Этот ме­тод дол­жен вы­зы­вать­ся с па­ра­мет­ром в ви­де це­ло­го чис­ла, а зна­чит, не­об­хо­ди­мо убе­дить­ся, что поль­зо­ва­тель на­пе­ча­ тал todo delete 3, а не todo delete или todo delete fish. Здесь-то нам и по­на­до­бит­ся объ­е­ди­нить обыч­ное ус­ло­вие («у нас бы­ло как ми­ ни­мум три ар­г у­мен­та») с оп­цио­наль­ным рас­кры­ти­ем. В этом слу­ чае оп­цио­наль­ное рас­кры­тие — осо­бен­но при­ят­ная функ­ция Swift: вы мо­же­т е соз­д а­в ать це­лые чис­л а из стро­ко­в ых пе­р е­м ен­ных, и при этом воз­вра­ща­ет­ся Int?, т. е. оп­цио­наль­ное це­лое. Ес­ли кон­ вер­сия ра­бо­та­ет, это це­лое чис­ло; ес­ли нет — это nil, так что нам нуж­но раз­вер­ты­вать его ос­то­рож­но. А здесь всту­па­ет в де­ло не­обыч­ный син­так­сис: нам на­до за­ пи­сать ус­ло­вие про­вер­ки на ­ли­чия как ми­ни­мум трех ар­г у­мен­тов, но так­же на­до пре­об­ра­зо­вать тре­тий в це­лое чис­ло и раз­вер­нуть его, ес­ли пре­об­ра­зо­ва­ние ра­бо­та­ет. По­мес­ти­те та­кой код на ме­сто подставленно­го fallthrough для ко­ман­ды delete: if Process.arguments.count == 3, let number = Int(Process. arguments[2]) { delete(number) } else { help() } При ис­поль­зо­ва­нии это­го ко­да функ­ция delete() бу­дет вы­зва­на толь­ко ес­ли име­ет­ся ров­но три ар­г у­мен­та, и тре­тий был ус­пеш­но кон­вер­ти­ро­ван в це­лое чис­ло — иде­а ль­но! Раз вы дош­ли до­сю­д а, то долж­ны быть го­то­вы к не­боль­шо­ му ис­пы­та­нию. Не бес­по­кой­тесь, я дам вам ре­ше­ние че­рез ми­ну­т у, но вам бу­дет по­лез­но по­пы ­т ать­с я спра­вить­с я с ним са­мо­с тоя­ тельно, пре­ж ­де чем по­смот­реть от­вет. Ис­пы­та­ние та­кое: до­ба­вить чет­вер­тый па­ра­метр в на­шу про­грам­ му — по­иск, ко­то­рый по­ка­зы­ва­ет толь­ко пунк­ты, со­от­вет­ст­вую­щие за­про­су поль­зо­ва­те­ля. Вы уже знае­те всё, что необходимо Swift, что­бы сде­лать это, но есть не­ко­то­рые под­сказ­ки: > На­до убе­дить­ся, что поль­зо­ва­тель ввел вер­ное ко­ли­че­­ст­во па­ ра­мет­ров. > Ес­ли поль­зо­ва­тель ввел в сво­ем по­ис­ке бо­лее од­но­го сло­ва, есть смысл раз­ре­шить ис­кать не по по­ряд­к у (на­при­мер, ‘на­кор­мить ко­ та’ долж­но со­от­вет­ст­во­вать ‘кот’, ‘на­кор­мить’, ‘на­кор­мить ко­та’ или ‘ко­та на­кор­мить’). > Кон­вер­ти­руй­те весь текст в ниж­ний ре­гистр, что­бы об­лег­чить по­ иск со­от­вет­ст­вий — про­сто ис­поль­зуй­те ме­тод containsString(), ко­ то­рый я пред­ста­вил вам на про­шлом уро­ке. > Воз­мож­но, луч­ше из­бе­жать ис­поль­зо­ва­ния здесь filter(), по­сколь­ ку со­от­вет­с т­вие не про­с тое; ис­поль­зуй­те вме­с то не­го обыч­ный цикл. > Ко­гда де­ло до­хо­дит до пе­ча­ти полученных ре­зуль­та­тов, не ко­пи­ руйте и не встав­ляй­те функ­цию list() — по­смот­ри­те, не по­лу­чит­ ся ли у вас ис­поль­зо­вать ее за­но­во. > Не за­будь­те об­но­вить функ­цию help(), опи­сав но­вую ко­ман­ду! По­жа­луй­ста, по­про­буй­те са­ми, а по­том уж за­гля­ды­вай­те в от­вет!

Важ­ность Guard В этом про­ек­те мы ис­поль­зо­ва­ли guard как ме­ха­низм ран­не­го воз­вра­та, и мы так ­же упо­ми­на ­ли о его по­лез­ности для оп­цио­наль­но­го раз­вер­ты­ва­ния как час­ти под ­хо­да ран­не­го воз­вра­та. Но его при­ме­ не­ние вно­сит свой вклад во вро­ж ­ден­ную безо­пас­ность про­грам­ми­ро­ва­ния Swift, по­сколь­к у вы дае­те обе­ща­ние: это ус­ло­вие долж­но быть вы­пол­не­но пе­ред тем, как

вы сде­лае­те что бы то ни бы­ло, и Swift обес­пе­чи­ва­ет вы­пол­не­ние это­го обе­ща­ ния за вас. Каким образом? А вот по­про­ буй­те по­лу­чить воз­врат из бло­ка guard, и сра­зу же уви­ди­те: ес­ли ус­ло­вие guard не вы­пол­ня­ет­ся, Swift будет на­стаи­ва­ть на не­мед ­лен­ном вы­хо­де из те­к у­щей функ­ ции, и вы­даст ошиб­к у ком­пи­ля­ции, ес­ли вы это­го не сде­лае­те.

Вы еще здесь? ОК. До­бав­ле­ние в блок switch/case и функ­ции help() очень про­сто; един­ст­вен­ное, где тре­бу­ет­ся по­ду­мать — это как соз­дать функ­цию search(), что­бы она пра­виль­но ис­поль­зо­ва­ ла фильтр. Мы вы­бра­ли про­стей­ший под­ход: кон­вер­ти­ро­ва­ли пе­ ре­мен­ную по­ис­ка в ниж­ний ре­гистр, за­тем раз­де­ли­ли ее с уче­том про­бе­лов, за­тем за­пус­ти­ли цикл в ка­ж ­дом эле­мен­те мас­си­ва пунк­ тов. Для ка­ж ­до­го пунк­та мы за­пус­ти­ли вто­рой цикл по ка­ж ­до­му сло­ву в кри­те­рии по­ис­ка, и толь­ко ес­ли все сло­ва по­ис­ка бы­ли най­ де­ны, мы до­бав­ля­ли пункт в мас­сив ре­зуль­та­та. Во из­б е­ж а­н ие по­в то­р ов ко­д а, мы из­м е­н и­л и функ­ц ию list() так, что­бы она при­ни­ма ­ла мас­сив стро­ко­вых пе­ре­мен­ных, ко­то­ рый бу­дет или пол­ным мас­си­вом пунк ­тов (при вы­зо­ве с па­ра­мет­ ром спи­ска), или мас­си­вом мое­го по­ис­ка (при вы­зо­ве из функ­ции search()). Вот на­ша функ­ция search() во всей пол­но­те: func search(item: String) { let splitSearch = item.lowercaseString. componentsSeparatedByString(” “) var matchingItems = [String]() for item in items { var itemMatchesSearch = true let lowerItem = item.lowercaseString for word in splitSearch { if !lowerItem.containsString(word) { itemMatchesSearch = false break } } if itemMatchesSearch { matchingItems.append(item) } } list(matchingItems) } Ос­во­ив­шись в Swift, вы мо­же­те ис­поль­зо­вать бо­лее бы­ст­рые под ­хо­ды (на­стро­ить об­ласть пе­ре­се­че­ния, ве­ро­ят­но, са­мый бы­ст­ рый из них), но этот яв­ля­ет­ся про­стей­шим. За­меть­те, что мы ис­ поль­зо­ва ­ли свой­с т­во lowercaseString и в по­ис­ке тек­с та, и в су­ ще­ст­вую­щих пунк ­тах, во из­бе­жа­ние про­блем с со­от­вет­ст­ви­ем.

Что даль­ше? Этот про­ект вы мо­же­те взять и рас­ши­рять его са­мы­ми раз­ны­ми спо­со­ба­ми, в за­ви­си­мо­с ти от ва­ших ин­те­ре­сов и спо­соб­но­с тей. Про­чи­тай­те врез­к у (см. Сде­лай­те боль­ше с Todo.txt, стр. 89) для по­ лучения бо­лее под­роб­ной ин­фор­ма­ции о том, что под­дер­жи­ва­ет офи­ци­а ль­ный фор­мат; но аль­тер­на­ти­ва про­сто в том, что­бы при­ ду­мать свой соб­ст­вен­ный путь. Хо­ро­шо, что стан­дар­тов так мно­ го — есть из че­го вы­брать, не так ли? Но шут­ки в сто­ро­ну: суть в том, что те­перь это ва­ша про­грам­ма, хра­ня­щ ая ва­ши дан­ные, и вы мо­же­те выде­лывать с ней всё, что хо­ти­те; на­сла­ж ­дай­тесь про­ грам­ми­ро­ва­ни­ем! |

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 91


Поль­зо­ва­те­лям

Pi

Ва­ша пор­ция смач­ных но­во­стей, об­зо­ров и учеб­ни­ков от Raspberry Pi

КОН­НОР БАЛ­ЛАРД-ПЕЙТ­МЕН Ху­дож­ник c Raspberry Pi

При­вет...

П

ри­сое­ди­ня­ясь к про­грам­ ме Raspberry Pi Creative Technologist (RPCT, сайт www.raspberrypi.org/creatives), я ду­ мал, что это бу­дет код, код и еще раз код... и был в кор­не не прав. Цель про­грам­мы — под­дер­жать и вдох­ но­вить мо­ло­дежь, ин­те­ре­сую­щ ую­ся при­ме­не­ни­ем тех­но­ло­гии в твор­ че­­ст­ве. Я с удо­воль­ст­ви­ем про­шел этот курс са­мо­раз­ви­тия в хо­де соз­ да­ния сво­его экс­по­на­та для ху­до­ же­ст­вен­ной вы­став­ки. Идея у ме­ня бы­ла не­из­мен­ной с са­мо­го на­ча ­ла: в нем долж­ны быть све­то­дио­ды, му­ зы­ка и ин­те­рак ­тив­ность, но фор­мы во­пло­ще­ния ме­ня­лись, сей­час я ра­ бо­таю уже над шес­той вер­си­ей... это и хо­ро­шо, и пло­хо. Хо­ро­шо потому, что я силь­но ее улуч­шил, а пло­хо — по­то­му, что вре­мя под ­жи­ма­ет: ведь курс все­го на год. Боль­ше все­го мне хо­чет­ся его про­д лить, ведь про­ект уже на по­след­них ста­ди­ях фи­зи­че­ ­ско­­го соз­да­ния, ос­та­лось до­пи­сать еще не­мно­го ко­да. Соз­да­вая мат­ри­ цу све­то­дио­дов, я нау­чил­ся па­ять ты­ ся­чи со­еди­не­ний и на­пи­сал до­б­рых не­сколь­ко со­тен строк ко­да — и те­ перь ощу­щаю се­бя на­стоя­щим про­ грам­ми­стом, а это здо­ро­во. Про­сто уди­ви­тель­но, сколь­ко мож­но сде­лать с по­мо­щью ко­да — прак­ти­че­­ски всё, что угод­но. По­езд­ки, ко­то­рые я со­ вер­шил в хо­де про­грам­мы, то­же ока­ за ­лись очень по­зна­ва­тель­ны­ми, ведь я уви­дел при­ме­не­ния Raspberry Pi на прак ­ти­ке. Од­ним из са­мых впе­чат­ ляю­щих бы­ло по­се­ще­ние му­зея тех­ ни­че­­ских но­ви­нок: там бы­ло столь­ко су­ма­сшед­ших, но бу­до­ра­жа­щих во­ об­ра­же­ние ве­щей! У ме­ня есть коека­кие про­ек­ты на при­ме­те по­сле RCT, но по­ка я все­це­ло за­нят под­го­тов­кой мое­го про­ек­та к вы­став­ке в ап­ре­ле.

92  |  LXF210 Июнь 2016

Pi тор­гу­ет Pi Pi 3 по­став­ля­ет Pi 3 в день Pi 3. ак со­об­ща­ют в Raspberry Pi Foundation, их ком­па­ния-про­из­во­ди­тель Mythic Beasts ре­ши­ла ис­поль­зо­вать Raspberry Pi 3, на­ря­ду с Raspberry Pi 2, для об­слу­жи­ва­ния сай­та, по­свя­щен­ но­го вы­хо­ду Pi 3. Идея бы­ла ди­ко­вин­ной — ис­поль­зо­вать но­ вый PHP 7 для за­пус­ка WordPress на еще не тес­ти­ ро­ван­ном обо­ру­до­ва­нии хос­тин­га на Pi 3 в день са­ мо­го боль­шо­го тра­фи­ка за год. Pi под­к лю­ча ­лись

К

па­рал­лель­но со стан­дарт­ны­ми вир­т у­а ль­ны­ми ма­ ши­на­ми, а по­верх ста­вил­ся мас­сив ба ­лан­си­ров­ки на­груз­ки. По его по­ка­за­ни­ям, Pi 3 об­ра­ба­ты­вал 5 % за­ про­сов, а Pi 2  — 3 %. По­сле 12 ча­сов и полутора мил­ лионов за­про­сов, Pi 3, на­ко­нец, сдал­ся, ис­чер­пав объ­ем па­мя­ти, а под­кач­ка по­вре­ди­ла дан­ные на SD. Pi без про­блем пе­ре­за­гру­зил­ся, и сно­ва был го­тов к ра­бо­те. Впе­чат­ляю­ще. www.raspberrypi.org

Pi Scumm

WD Pi Drive

Клас­си­че­­ские кве­сты для всех!

Пред­ло­же­ние на 314 ГБ!

P

В

i соз­да­ет клас­си­че­скую ар­кад­ную сис­те­му с раз­ны­ми иг­ро­вы­ми эму­ля­то­ра­ми. Те­перь, бла­го­да­ря дол­го­иг­раю­щей сис­те­ме ScummVM, к это­му при­ба­ви­лась еще од­на кол­лек­ция. Это эму­ ля­тор раз­ных движ­ков для ста­рых кве­стов, та­ких как Monkey Island, Beneath a Steel Sky и Full Throttle. www.scummvm.org

www.linuxformat.ru/subscribe

ер­ный при­знак то­го, что плат­фор­ма ста­ла пона­стоя­ще­му по­пу­ляр­ной — ко­гда ком­па­нии на­чи­на­ют про­дви­гать для нее спе­ци­а ль­ные про­дук­ты; а по­сколь­к у Western Digital дей­ст­ви­тель­но один из луч­ших про­из­во­ди­те­лей же­ст­ких дис­ков, их PiDrive на 314 ГБ сто­ит по­про­бо­вать! Поя­вил­ся он 14 мар­та, в День Pi, и да­же со скид­кой до $31,41. http://bit.ly/WDPiDrive314GB


Raspberry Pi Обзор

Raspberry Pi 3 Лес Па­ун­дер, лю­би­тель все­го свя­зан­но­го с Pi, на­бра­сы­ва­ет­ся на но­вый де­серт от Raspberry Pi. Вкратце » С но­вым Raspberry Pi, с под­ держ­кой Wi-Fi и Bluetoooth и улуч­шен­ным про­цес­со­ром, до­ маш­ний на­столь­ ный ком­пь­ю­тер стал еще де­шев­ ле. Эта но­вая мо­ дель от­кры­ва­ет дверь к но­вым ув­ле­ка­тель­ным про­ек ­там, от про­ стых сер­ве­ров до слож­ных сен­ сор­ных се­тей и т. д.

Н

е­у ­ж е ­л и и прав ­д а про­ш ло че­т ы­ ре го­да с тех пор, как Raspberry Pi во­рвал­ся на ры­нок од­но­плат­ных ком­пь­ю­те­ров? Да, так и есть, и в честь это­ го Raspberry Pi Foundation вы­пус­ти­ли но­вую вер­сию, Raspberry Pi 3, и это ско­рее эво­лю­ ция, чем ре­во­лю­ция. Соз­д ан­н ый на ба­з е сис­т е­м ы на чи­п е (SoC) BCM2837 и 64‑раз­ряд­но­го че­ты­рехъ­ я­дер­но­го про­цес­со­ра ARM Cortex A53 с час­ то­той 1,2 ГГц, Pi 3 до­воль­но мощ­ный. Тем не ме­нее, об­нов­ле­ния опе­ра­тив­ной па­мя­ти на сей раз не по­сле­до­ва­ло: ее объ­ем ос­тал­ ся преж­ним, 1 ГБ. Не­боль­шим нов­ше­ст­вом ста­ло то, что при­выч­ный VideoCore IV те­ перь об­ра­ба­ты­ва­ет ви­део и гра­фи­к у с так­ то­вой час­то­той 400 МГц, по срав­не­нию с бо­ лее ран­ни­ми мо­де­ля­ми на 250 МГц. Внеш­н е Raspberry Pi 3 очень по­х ож на Pi 2; един­ст­вен­ное бросающееся в гла­ за из­ме­не­ние — све­то­вые ин­ди­ка­то­ры со­ стоя­ния и но­вый чип те­перь рас­по­ла­га­ют­ся на ниж­ней сто­ро­не Pi. Этот чип, BCM43438, введен для обес­пе­чени­я под ­держ­ки Wi-Fi b/g/n и Bluetooth и из­бав­ля­ет от необходи­ мости использования USB-адап­те­ров. Bluetooth 4.1 под­дер­жи­ва­ет как клас­си­ че­­ский, так и энер­го­сбе­ре­гаю­щий (LE) спо­ соб под­к лю­че­ния к уст­рой­ст­вам. Bluetooth LE — это по­тря­саю­щий про­ект, по­зво­ляю­ щий низ­ко­вольт­ной ап­па­ра­т у­ре, на­при­мер, ма­яч­кам, взаи­мо­дей­ст­во­вать с та­ки­ми уст­ рой­ст­ва­ми, как смарт­фо­ны и план­ше­ты. Ан­тен­на бес­про­вод­ной свя­зи ра­зум­но рас­по­л о­же­н а на внеш­ней сто­р о­не пла­т ы и не ме­ша­ет под­к лю­чать до­пол­ни­тель­ные пла­т ы, спо­с об­ные соз­д а­в ать по­ме­х и для сиг ­на ­ла. На­ши тес ­т ы по­к а ­за ­ли, что Wi-Fi

Свой­ст­ва на­вскид­ку

> С ви­ду Raspberry Pi 3 такой же, как и Pi 2 и B+; из­ме­не­ния в основ­ном внут­ри. не ме­нее чув­ст­ви­те­лен, чем офи­ци­а ль­ная при­став­ка, и не слож­нее в ис­поль­зо­ва­нии. Для Raspberry Pi на­ли­чие встро­ен­ной бес­ про­вод­ной свя­зи очень важ­но, ведь это по­ зво­ля­ет ис­поль­зо­вать Pi как плат­фор­му IoT (Ин­тер­не­та Ве­щей) при ми­ни­маль­ных из­ держ­ках. Что­бы ис­поль­зо­вать но­вые бес­ про­в од­н ые ком­п о­н ен­т ы, на­д о об­н о­в ить Raspbian до по­с лед­н ей вер­с ии или ска­ чать и за­пи­сать по­след­ний об­раз на кар­т у microSD, ем­ко­стью 8 или бо­лее ГБ. Те­к у­щий об­раз Raspbian усо­вер­шен­ст­во­ван со­глас­но по­т реб­но­с тям Pi 3: на­при­мер, об­нов­ле­на про­шив­ка, что­бы Pi 3 мог ра­бо­тать на пол­ ную мощь. Но­вые бес­про­вод­ные функ­ции до­воль­но за­трат­ны: Pi 3 по­треб­ля­ет поч­ти в пол­то­ра раза боль­ше энер­гии, чем Pi 2. А зна­чит, Pi 3 ну­ж ­да­ет­ся в на­деж­ном ис­точ­ ни­ке пи­та­ния — при до­бав­ле­нии плат с мо­ то­ра­ми и NeoPixel, же­ла­тель­но на 2,5 A.

Мно­го­обе­щаю­щий Pi

Но­вый про­цес­сор

Бес­про­вод­ная связь

В но­вом ARM Cortex A53 с час­то­той 1,2 ГГц че­ты­ре яд­ра. Про­цес­сор мощ­ный, но силь­но гре­ет­ся.

BCM43438 под­дер­жи­ва­ет Wi-Fi и Bluetooth, бо­ко­вое рас­по­ло­же­ние ан­тен­ны мини­ми­зи­ру­ет по­ме­хи.

В Pi 3 есть че­ты­ре пор­та USB и порт Ethernet с под­д ерж­кой Fast Ethernet, 100 Мбит/с, на ба­зе чи­па LAN9514, став­ше­го стан­дарт­ ным на­чи­ная с Pi Model B+, поя­вив­шей­ся в се­ре­ди­не 2014 г. Мно­гие кри­ти­ко­ва­ли это ре­ше­ние, по­сколь­к у нель­зя ис­поль­зо­вать Gigabit Ethernet, но его до­бав­ле­ние уве­ли­ чи­ло бы ма­ги­че­скую циф­ру $ 35. По срав­не­нию с Pi 2, Pi 3 способен обес­ пе­чи­ть су­ще­ст­вен­ный при­рост ско­ро­сти — по дан­ным Фон­да, до 50  –  60 % при за­пус­ке

www.linuxformat.ru/subscribe

32‑бит­но­го ко­да на но­вом про­цес­со­ре. Со­ вре­м ен­н ые опе­р а­ц и­о н­н ые сис­т е­м ы по­ ка не ис­поль­зу­ют чип в 64‑бит­ном ре­ж и­ ме, и при­рост в ос­нов­ном обес­пе­чи­ва­ет­ся за счет улуч­ше­ний ар­хи­тек­т у­ры. Raspberry Pi 3 — за­ме­ча­тель­ный об­раз­ чик тех­но­ло­гии. Ре­во­лю­ци­он­ным от­ры­вом от Pi 2 ее не на­зо­вешь, но у нее на­деж­ная под­держ­ка со сто­ро­ны со­об­ще­ст­ва и хо­ро­ ший уро­вень об­рат­ной со­вмес­ти­мо­сти для плат и про­ек ­тов от бо­лее ран­них мо­де­лей. По­яв­ле­ние встро­ен­ной бес­про­вод­ной свя­ зи сни­жа­ет за­трат­ность про­ек­тов IoT и де­ ла­ет Pi 3 не­до­ро­гой и на­деж­ной плат­фор­ мой для экс­пе­ри­мен­тов. |

Вер­дикт Raspberry Pi 3 Раз­ра­бот­чик: Raspberry Pi Foundation Сайт: www.raspberrypi.org Це­на: Ј 32

Функ­цио­наль­ность 9/10 Про­из­во­ди­тель­ность 9/10 Удоб­ст­во в ра­бо­те 9/10 Оп­рав­дан­ность це­ны 9/10 » Ус­во­ив­шая опыт по­след­них 4 лет, эта пла­та ста­нет ос­но­вой мно­гих дру­гих про­ек­тов.

Рей­тинг 9/10 Июнь 2016 LXF210  | 93


Обзор Ди­ст­ри­бу­тив Linux

Ubuntu Mate 15.10 Лес Па­ун­дер тес­ти­ру­ет по­след­нюю вер­сию Ubuntu Mate на Raspberry Pi 3, что­бы уз­нать, смо­жет ли она, на­ко­нец, спих­нуть с пье­де­ста­ла Raspbian. Вкратце » Ubuntu — один из по­пу­ляр­ней­ ших ди­ст­ри­бу­ти­ вов Linux, но смо­ жет ли Pi 3, бла­го­да­ря сво­ей це­не, при­вес­ти в Ubuntu но­вых поль­зо­ва­те­лей? Ubuntu Mate на­де­ет­ся най­ти ба­ланс ме­ж­ду функ­цио­наль­ но­стью и мощ­ но­стью. См. так­же: RiscOS и Raspbian.

К

о­гда в 2012 г. объ­я­ви­ли о вы­пус­ке Raspberry Pi, мно­г ие ве­ри­ли, что в пла­не ди­ст­ри­бу­ти­ва вы­бор па­дет на Ubuntu. Но это­го не слу­чи­лось — в ос­нов­ ном из-за от­сут­ст­вия под­держ­ки про­цес­со­ ра ARMv6, ко­то­рый при­ме­нял­с я в ис­ход­ ном Raspberry Pi. По­с ле ре­ли­за Raspberry Pi 2 и пе­р е­хо­д а на ARMv7, Ubuntu по­с те­ пен­но ста­ла про­би­рать­ся на эту плат­фор­ му. В свете не­дав­не­го ре­ли­за Raspberry Pi 3, мы ре­ши­ли ис­пы­тать Ubuntu Mate 15.10. Для ус­та­нов­ки Ubuntu Mate на­до ско­пи­ ро­вать об­раз на чис­т ую SD-кар­т у; мы взя­ ли 8‑ги­г а­б айт ­н ую клас­с а 6. При пер­в ой за­г руз­ке по­на­до­бит­ся на­с тро­и ть ло­ка ­ли­ за­цию и соз­дать поль­зо­ва­те­ля. За­тем сис­ те­ма пе­ре­за­гру­зит­ся, и поя­вит­ся эк­ран вхо­ да в сис­те­му. Ubuntu Mate про­и з­во­д ит впе­ч ат­л е­ние «зре­л о­г о» ди­с т­р и­б у ­т и­в а и управ­л я­е т­с я иден­тич­но для раз­ных уст­ройств. Глав­ное ме­ню в ле­вом ниж ­нем уг­л у эк ­ра­на обес­ пе­ч и­в а­е т бы­с т­р ый дос­т уп к на­с трой­к ам сис ­те­мы и ссыл­к и на па­не ­ли ин­с т ­ру ­мен­ тов. Фай­ло­вый ме­нед ­жер Caja вы­пол­ня­ет все стан­дарт­ные опе­ра­ции по управ­ле­нию фай­ла­ми, и в нем есть пре­крас­ная оп­ция Под­к лю­че­ние к сер­ве­ру для гра­фи­че­­ско­­ го управ­ле­ния уда ­лен­ной фай­ло­вой сис­ те­мой, что очень удоб­но для дос­т у­па к NAS или уда­лен­но­му сер­ве­ру. Встро­ен­ный Wi-Fi Raspberry Pi 3 ра­бо­тал без сбо­ев и лег­ко об­на­ру­жил наш мар­шру­ ти­за­тор. Че­го нель­зя ска­зать о Bluetooth, ко­то­рый на­ше уст­рой­с т­во най­т и не смог. Ис­поль­зо­вать Pi 3 в ка­че­­ст­ве ра­бо­че­го сто­ ла Ubuntu те­перь эко­но­ми­че­­ски вы­год­но,

Свой­ст­ва на­вскид­ку

Центр управ­ле­ния

Не ре­сур­со­ем­кий

Центр управления сосредо­ точил в од­ном мес­те час­то вы­пол­няе­мые за­да­чи и опе­ ра­ции, для бы­ст­ро­го дос­ту­ па к ним.

Ubuntu Mate не при­дир­чив в пла­не ре­сур­сов и пре­ крас­но ра­бо­та­ет на мощ­ ном, но не са­мом про­дви­ну­ том обо­ру­до­ва­нии Pi 3.

94  |  LXF210 Июнь 2016

> Ubuntu Mate вы­гля­дит и ощу­ща­ет­ся как «пра­виль­ный» Linux-ди­ст­ри­бу­тив для Raspberry Pi 3 и со­дер­жит все функ­ции, по­ла­гаю­щие­ся эф­фек­тив­ной ОС. бла­го­да­ря его мо­щи и сбе­ре­же­нию ре­сур­ сов в Mate. Ме­ню и при­ло­же­ния за­пус­ка­ лись с не­боль­шой за­держ­кой, но по ощу­ ще­ни­ям, ра­бо­тал он бы­ст­ро. Мы про­в е­р и ­ли од­н у и ту же ус ­т а­н ов­ ку Ubuntu Mate на Pi 2 и на Pi 3, и об­н а­ ру ­ж или, что на пер­в ом вре­м я за­г руз­к и со­став­ляло око­ло 22 се­к унд, а на вто­ром — 20 се­к унд. LibreOffice Writer на Pi 2 за­пус­ тил­с я за 9,23 се­к ун­д ы, а на Pi 3 — все­го за 7,94. Са­мая боль­шая раз­ни­ца об­на­ру­жи­ лась при соз­да­нии но­во­го ми­ра в Minecraft Pi, ко­т о­р ое на Pi 2 за­н я­л о 19,07 секунд, а на Pi 3 — толь­ко 7,92.

Пол­но­цен­ный ди­ст­ри­бу­тив Раз­ра­бот­чи­ки Ubuntu Mate вклю­чи­ли в не­ го обыч­ные при­ло­же­ния Raspbian по умол­ ча­нию, та­кие как IDLE3 и Sonic Pi. Прав­да, Sonic Pi — в вер­сии 2.7, то­гда как в Raspbian по умол­ча­нию 2.9. Ре­дак­тор Python 3, IDLE3, пре­д ус­т а­н ов­л ен и вклю­ч а­е т по­п у­л яр­ные биб­лио­те­ки Pi на ба­зе Python, для RPi.GPIO, GPIO Zero и Minecraft, что по­зво­ля­ет соз­ да­вать про­ек­ты с ре­а ль­ны­ми уст­рой­с т­ва­ ми, ис­поль­зуя те же ре­сур­сы, что и поль­ зо­ва­те­ли Raspbian. За­пус­кать при­ло­же­ние IDLE3, ра­ди дос­т у­па к GPIO, поль­зо­ва­те­лям при­дет­ся в тер­ми­на­ле, ис­поль­зуя sudo, хо­тя для Raspbian это бы­ло ре­ше­но еще в кон­ це 2015 г. Ес­ли вам ну ­жен эко­но­мич­ный и энер­ го­э ф­ф ек ­т ив­н ый на­с толь­н ый ком­п ь­ю­т ер с Ubuntu или тон­кий кли­ент, тогда вам пре­ до­с­т ав­л я­е тся отлично под­д ер­ж и­в ае­м ая

www.linuxformat.ru/subscribe

плат­фор­ма с дос­т у­пом к бо­га­тым ре­сур­сам, соз­дан­ным во­круг ди­ст­ри­бу­ти­вов Ubuntu. А вот ес­ли вы ище­те но­вый ди­с т­ри­бу­ тив, что­бы тво­рить/мас­те­рить, то Mate по­ка не для вас. От­сут­ст­вие пря­мо­го, без sudo, дос­т у­па к GPIO, как в Raspbian, не ос­но­ва­ ние для от­ка­за, а ско­рее не­удоб­ст­во, но но­ вич­к ам оно за­т руд­н ит ус ­т а­н ов­к у мно­г их по­пу­ляр­ных до­пол­ни­тель­ных плат, на­при­ мер, от Pimoroni, так как мно­гие ус­та­но­воч­ ные скрип­ты бу­дут не­со­вмес­ти­мы. Хо­тя бо­ лее тех­ни­че­­ски под­ко­ван­ные поль­зо­ва­те­ли смо­г ут вы­пол­нить ус­т а­нов­к у с по­мо­щ ью па­ке­тов Python, pip или пу ­тем кло­ни­ро­ва­ ния ре­по­зи­то­рия Git из биб­лио­те­ки. Но Ubuntu Mate — это боль­шой про­рыв, и, воз­мож­но, их сле­д ую­щий ре­лиз, за­пла­ ни­ро­ван­ный на 16.04, из­ме­нит ход иг­ры. |

Вер­дикт Ubuntu Mate 15.10 Раз­ра­бот­чик: Ubuntu Mate Community Сайт: https://ubuntu-mate.org Ли­цен­зия: Раз­ные

Функ­цио­наль­ность 8/10 Про­из­во­ди­тель­ность 8/10 Удоб­ст­во в ра­бо­те 9/10 До­ку­мен­та­ция 9/10 » Ubuntu Mate вы­гля­дит на Pi зна­ко­мым, но вот умель­цам по­ка не со­всем под­хо­дит.

Рей­тинг 9/10


Raspberry Pi 3 Учебник

Pi 3: Ос­во­им Bluetooth Ис­пы­тай­те энер­го­сбе­ре­гаю­щую тех­но­ло­гию Bluetooth на Raspberry Pi 3 — вот вам по­со­бие от Ле­са Па­ун­де­ра. Наш экс­­перт Как со­труд­ник Raspberry Pi Foundation, Лес Па­ун­дер ра­ бо­та­ет с учи­те­ля­ ми со всей Бри­та­ нии. Он ве­дет блог на http://bigl.es — о ро­бо­тах, тех­ ни­че­­ских про­ек­ тах и вся­че­­ских са­мо­дел­ках.

Б

ла­го­да­ря чи­пу Broadcom BCM43438, в но­вом Raspberry Pi те­перь встрое­ны под­держ­ка Wi-Fi и Bluetooth 4.1./Low Ener­ gy (LE). Что­бы ис­поль­зо­вать эти функ­ции, вам по­на­до­бит­ся све­жая вер­сия Raspbian и не­мно­го ма­гии тер­ми­на ­ла. Под­к лю­чи­те свой Raspberry Pi к Ин­тер­не­т у че­рез ка­бель Ethernet, от­крой­те тер­ ми­нал и вве­ди­те сле­дую­щее: $ sudo apt-get update $ sudo apt-get dist-upgrade Про­цесс зай­мет ка­кое-то вре­мя, в за­ви­си­мо­сти от объ­е­ма тре­ буемых об­н ов­л е­н ий и ско­р о­с ти ва­ш е­г о ин­т ер­н ет-со­е ди­н е­н ия. По за­вер­ше­нии, не за­кры­вай­те тер­ми­нал, по­сколь­к у те­перь нам на­до об­но­вить про­грамм­ное обес­пе­че­ние на на­шем Raspberry Pi. Для это­го на­бе­ри­те $ sudo apt-get upgrade. За не­сколь­ко се­к унд

сис­те­ма об­но­вит­ся, но нам при­дет­ся вве­сти еще не­сколь­ко строк ко­манд. Сле­дую­щей мы ус­та­но­вим про­грам­му Pi-Bluetooth, по­это­ му вве­ди­те $ sudo apt-get install pi-bluetooth. За­по­лу­чив Bluetooth, да­вай­те ус­та­но­вим гра­фи­че­­ский ин­с т­ру­мент для его на­с трой­ки. В тер­ми­на ­ле вве­ди­те $ sudo apt-get install bluetooth bluez blueman Ус­та­но­вив все про­грам­мы, пе­ре­за­гру­зи­те свой Raspberry Pi — мож ­н о сде ­л ать это пря­м о из тер­ми­н а ­л а, на­брав $ sudo reboot. По­с ле пе­ре­за­груз­ки вы вновь вер­не­тесь в ра­бо­чий стол. Те­перь в пра­вом верх­нем уг­лу поя­вит­ся ха­рак ­тер­ный уг­ло­ва­тый ло­го­тип Bluetooth. Ес­ли его там нет, от­крой­те глав­ное ме­ню, в ниж­нем ле­ вом уг­лу эк­ра­на, вы­бе­ри­те На­строй­ки > Ме­нед ­жер Bluetooth. Тогда зна­чок дол­жен поя­вить­ся. |

Ис­поль­зо­ва­ние Bluetooth

1 Со­еди­не­ние с мо­биль­ным уст­рой­ст­вом Что­бы под­к лю­чить к на­ше­му Raspberry Pi мо­биль­ ное уст­рой­ст­во, на­при­мер, смарт­фон, в пер­вую оче­ редь на­до сде­лать Pi об­на­ру ­жи­вае­мым. Для это­го щелк­ни­те пра­вой кноп­кой мы­ши на знач­ке Bluetooth и вы­бе­ри­те Сде­лать ви­ди­мым. Те­перь у нас есть все­го 60 се­к унд, что­бы най­ти Raspberry Pi, по­это­му на смарт­фо­не нуж­но от­крыть на­строй­ки Bluetooth и вы­брать Raspberry Pi. По­сле это­го «Под­к лю­чи­те» уст­рой­ст­во к Pi. На Pi всплы­вет но­вое диа­ло­го­вое ок­но. На­жми­те Под­твер­дить, что­бы ак­ти­ви­ро­вать под­к лю­че­ние, а за­тем вы­пол­ни­те то же дей­ст­вие на сво­ем мо­биль­ном уст­рой­ст­ве.

2 Пе­ре­да­ча фай­лов

Те­перь с по­мо­щью это­го Bluetooth-под­к лю­че­ния мы мо­жем пе­ре­да­вать фай­лы с на­ше­го Pi 3 на уст­ рой­ст­во Bluetooth; для это­го на­до щелк­нуть пра­вой кноп­кой на зна­чке Bluetooth и вы­брать пункт От­прав­ ка фай­лов на уст­рой­ст­во. Поя­вит­ся но­вое диа­ло­го­ вое ок­но для вы­бо­ра уст­рой­ст­ва, на ко­то­рое вы хо­ ти­те от­пра­вить фай­лы. По­сле это­го на­до бу­дет ука­зать файл, ко­то­рый вы хо­ти­те от­пра­вить. Вы­бе­ ри­те файл и на­жми­те кноп­к у OK, что­бы на­чать про­ цесс. Ва­ше мо­биль­ное уст­рой­ст­во по­про­сит раз­ре­ ше­ние на по­лу­че­ние и со­хра­не­ние фай­ла. На­жми­те, что­бы за­гру­зить, и че­рез не­сколь­ко се­к унд файл бу­дет на ва­шем уст­рой­ст­ве.

www.linuxformat.ru/subscribe

3 Под­клю­че­ние

Для под­к лю­че­ния уст­ройств щелк­ни­те пра­вой кноп­ кой мы­ши на знач­ке Bluetooth и вы­бе­ри­те пункт На­ строй­ка но­во­го уст­рой­ст­ва. На уст­рой­ст­ве на­жми­те кноп­к у, что­бы оно ста­ло ви­ди­мым. По­мощ­ник ус­та­ нов­ки дол­жен об­на­ру­жить уст­рой­ст­во, и вам ос­та­нет­ ся толь­ко его вы­брать. Вам будет пред­ло­жено соз­ дать ключ дос­т у­па. Для кла­виа­т у­ры он мо­жет быть лю­бым, а вот мышь обыч­но име­ет за­ра­нее оп­ре­де­ лен­ный код — 0000, 1111 или 1234. По­сле ус­та­нов­ ки па­ро­ля, для про­дол­же­ния на­жми­те ОK. Вам пред­ ло­жат вве­сти ключ дос­т у­па. Под­це­пив уст­рой­ст­во Bluetooth, вы мо­же­те ис­поль­зо­вать его как обыч­ную про­вод­ную ус­та­нов­к у.

Июнь 2016 LXF210  | 95


Ответы

Ответы Есть вопрос по от­кры­то­му ПО? Пишите нам по адресу answers@linuxformat.ru, и мы най­дем от­вет.

В этом месяце мы ответим на вопросы про... 1 Про­бле­мы с пере­ да­чей фай­лов по се­ти в Dukto 2 Не­ра­бо­таю­щие функ­цио­наль­ные кла­ви­ши 3 От­сут­ст­вую­щий ра­бо­чий стол Mint

4 Про­бле­мы с загруз­кой Lenovo 5 Уда­лен­ные ра­бо­ чие сто­лы 6 Ус­та­нов­ку при наличии ложного RAID

1 «По­лез­ные» со­об­ще­ния

В

Мои ком­пь­ю­те­ры не хо­тят об­щать­ся друг с дру­гом. Я поль­зу­юсь Dukto, и ко­гда про­ ис­хо­дит ошиб­ка, я ви­ж у ис­чер­пы­ваю­щие со­об­ще­ния: “Error Code 0” “Error Code 1” “Error Code 2” Боль­ше­го и же­лать нель­зя! На сай­те Dukto со­ об­ща­ет­ся, что ос­нов­ные воз­мож­но­сти про­грам­мы та­ко­вы: про­стой поль­зо­ва­тель­ский ин­тер­фейс; от­ сут­ст­вие не­об­хо­ди­мо­сти в ин­тер­нет-под­клю­че­нии или сер­ве­ре; ну­ле­вая на­строй­ка; ав­то­ма­ти­че­­ское об­на­ру­же­ние кли­ен­тов — но все это не ра­бо­та­ет. В ка­че­­ст­ве аль­тер­на­ти­вы мне по­со­ве­то­ва­ли sshfs: $ sshfs myuser@remoteIP[ OR Domain]:/remote di­ rectory [local mount directory] Все, что я уви­дел — со­об­ще­ние ‘connection reset by peer [со­еди­не­ние бы­ло сбро­ше­но уз­лом]’. Что же я де­лаю не так? По­мо­ги­те, по­жа­луй­ста! Майк Мур [Mike Moore]

О

Dukto вы­г ля­д ит по­л ез­н ым и удоб­ ным спо­со­бом пе­ре­д а­чи фай­лов. Рань­ ше я не поль­зо­вал­ся этой про­грам­мой, но она и впрямь про­с та в работе. Од­но­знач­н ую при­чи­ну Ва­шей про­бле­мы вы­явить слож­но, однако ес­ли два ком­пь­ю­те­ра под­к лю­че­ны к од­ной и той же се­ти, Dukto дол­жен сам об­на­ру­жить их без ка­кихли­бо дей­ст­вий с Ва­шей сто­ро­ны. Я со­гла­сен, что та­кие со­об­ще­ния об ошиб­ках не­до­пус­ти­мы — да­же за­га­доч­ная ссыл­ка на функ­ цию в ко­де, ко­то­рая вы­зва­ла ошиб­к у, бы­ла бы бо­ лее по­лез­ной и во вся­ком слу ­чае по­зво­ля ­ла бы най­ти эту функ­цию. Что­бы по­лу­чить боль­ше ин­ фор­ма­ции, за­пус­ти­те на ка­ж ­дом ком­пь­ю­те­ре про­ грам­му из тер­ми­на ­ла: про­сто на­бе­ри­те dukto и на­ жми­те Enter. Это не уст­ра­нит ошиб­ки, но мо­жет дать Вам ка­к ую-то за­цеп­к у, ес­ли что-то пой­дет не так. Со­вет вос­поль­зо­вать­ся sshfs в по­ряд­ке аль­тер­ на­ти­вы, ко­то­рый Вам да­ли, хо­ро­ший, хо­тя и отча­ сти не­пол­ный. Вам потребуется ус­т а­но­вить сер­ вер SSH на том ком­пь­ю­те­ре, ко­то­рый Вы хо­т и ­те 96  |  LXF210 Июнь 2016

> Пе­ре­да­вать фай­лы с помощью программы Dukto несложно, но со­об­ще­ния об ошиб­ках мог­ли бы быть и бо­лее ин­фор­ма­тив­ны­ми. смон­ти­ро­вать. За­тем про­верь­те, что ра­бо­та­ет сам SSH, вы­пол­нив ко­ман­ду $ ssh user@remoteIP. В пер­ вый раз эта ко­ман­да за­про­сит под­твер­ж де­ние, за­ тем при ка ­ж ­дом под­к лю­че­нии бу­дет за­пра­ши­вать па­роль. По­сле под­к лю­че­ния на ­жми­те Ctrl + d, что­бы от­к лю­чить­ся, а за­тем за­пус­ти­те ко­ман­д у $ sshfs user@remoteIP/directory/to/mount /mount/point. Так как sshfs ис­поль­зу­ет Fuse, она от­ка­жет­ся вы­пол­нять мон­ти­ро­ва­ние в не­пус­той ка­та ­лог, по­ это­му пред­ва­ри­тель­но убе­ди­тесь, что ка­та­лог мон­ ти­ро­в а­ния пуст. Те­перь со­дер­ж и­мое уда ­лен­но­го ка­та­ло­га долж­но быть Вам дос­т уп­но. Ко­гда за­кон­ чи­те, раз­мон­ти­руй­те уда­лен­ный ка­та­лог ко­ман­дой $ fusermount -u /mount/point. Ко­гда Вы про­де­лае­те это не­сколь­ко раз, по­сто­ ян­ный на­бор па­ро­ля нач­нет Вам все боль­ше на­дое­ дать. К сча­с тью, для вхо­д а в сис­те­м у че­рез SSH мож­но вос­поль­зо­в ать­с я клю­ча­ми. Сна­ча ­ла соз­ дай­те клю­чи на ло­каль­ном ком­пь­ю­те­ре ко­ман­дой $ ssh-keygen -t ecdsa. Не ука­зы­вай­те па­роль, ко­гда он бу­дет за­про­ шен — про­с то на ­ж ми ­те Enter, в про­т ив­ном слу­ чае Вам не уда­ст­ся соз­дать ключ. Эта ко­ман­да соз­ даст в ка­та­ло­ге ~/.ssh па­ру клю­чей — от­к ры­тый (публичный) и за­кры­тый (приватный). За­кры­тый ключ на­до со­хра­нить в безо­пас­ном мес­те, а от­кры­ тый — ско­пи­ро­вать на уда­лен­ный ком­пь­ю­тер сле­ дую­щей ко­ман­дой: $ ssh-copy-id -i ~/.ssh/id_ecdsa.pub user@remoteIP Эта ко­ман­д а еще раз за­про­сит па­роль, но по­с ле нее Вы смо­же­те за­пус­кать ука­зан­ные вы­ше ко­ман­ ды ssh и sshfs без вво­да па­ро­ля. Все эти ко­ман­ды

www.linuxformat.ru/subscribe

на­до за­пус­кать от име­ни обыч­но­го поль­зо­ва­те­ля. Ес­ли имя поль­зо­ва­те­ля на обо­их ком­пь­ю­те­рах од­но и то же, часть user@ в ко­ман­дах ssh и sshfs мож­но опус­тить. Об­ра­ти­те вни­ма­ние, что в обо­их ди­ст­ри­ бу ­ти­вах ог­ра­ни­че­на воз­мож­ность под­к лю­че­ния че­ рез ssh от име­ни су­пер­поль­зо­ва­те­ля-root, по­это­му не пы­тай­тесь ни­че­го мон­ти­ро­вать в sshfs как root.

2 Го­ря­чие кла­ви­ши за­мерз­ли

В

У ме­ня но­у т­бук LogicQ M76T (ино­гда на­ зы­вае­мый Clevo), на ко­то­ром мно­го лет пре­крас­но и без осо­бых про­блем ра­бо­тал Ubuntu, но сей­час не ра­бо­та­ет Wi-Fi. Для вклю­ че­ния Wi-Fi есть спе­ци­аль­ная кноп­ка — од­на из функ­цио­наль­ных кла­виш. При вклю­че­нии за­ го­ра­ет­ся све­то­ди­од, ко­то­рый по­ка­зы­ва­ет, что бес­про­вод­ное со­еди­не­ние на са­мом де­ле ра­бо­ та­ет. Я ме­нял бес­про­вод­ную кар­т у на дру­г ую, за­ ве­до­мо ра­бо­чую кар­т у, что­бы ис­к лю­чить ап­па­ рат­ную про­бле­му. При за­пус­ке rfkill я по­лу­чаю сле­дую­щее: Softblocked: no Hardblocked: yes От­сю­да я ви­ж у, что про­бле­ма за­клю­ча­ет­ся в са­мой кла­ви­ше и что по­сле об­нов­ле­ния яд­ра функ­цио­наль­ные кла­ви­ши ка­ким-то об­ра­зом пе­ ре­ста­ли рас­по­зна­вать­ся и ра­бо­тать. На но­у т­бу­ ке есть и дру­гие кла­ви­ши — для ре­г у­ли­ров­ки яр­ко­ сти и гром­ко­сти, и кла­ви­ши уве­ли­че­ния гром­ко­сти и уве­ли­че­ния яр­ко­сти ра­бо­та­ют, а умень­ше­ния гром­ко­сти и яр­ко­сти — нет. Пи­тер Джек­сон [Peter Jackson]


Ответы

Тер­ми­на­лы и су­пер­поль­зо­ва­те­ли Мы час­то пред ­ла­га­ем в ка­че­­ст­ве ре­шения про­бле­мы вве­сти те или иные ко­ман­ды в тер­ми­на­ле. Хо­тя обыч­но то же са­мое мож­но сде­лать с по­мо­щью гра­фи­че­­ских ути­лит ди­ст­ри­бу­ти­ва, та­кие ре­шения бу­д ут слишком кон­крет­ными (бу­д ут за­ви­сеть от ди­ст­ри­бу­ти­ва). Ко­ман­ ды в тер­ми­на­ле бо­лее гиб­кие, и — са­мое глав­ное — ими мож­но поль­зо­вать­ся во всех ди­ст­ри­бу­ти­вах. Ко­ман­ды на­строй­ки сис­те­мы час­то нуж­но вы­пол­нять от имени су­ пер­поль­зо­ва­теля, на­зы­вае­мо­го также root. Су­ще­ст­вует два основ­ных спо­со­ба это де­лать, в за­ви­си­мо­сти от ис­ поль­зуе­мо­го ди­ст­ри­бу ­тива. Во мно­гих дистрибутивах, осо­бен­но в Ubuntu и его про­из­вод­ных, пе­ред ко­ман­дой мож­но на­пи­сать sudo — при этом бу­дет за­про­шен па­ роль поль­зо­ва­те­ля, и ему бу­д ут пре­достав­ле­ны при­ви­ле­ гии root толь­ко на вре­мя вы­полнения ко­ман­ды. В дру­гих ди­ст­ри­бу ­ти­вах применя­ется команда su, для ис­поль­зо­ вания ко­то­рой тре­бу­ет­ся вве­сти па­роль root и ко­то­рая пре­достав­ля­ет пол­ный доступ root до то­го мо­мен­та, по­ка вы не на­бе­ре­те logout. Ес­ли в ва­шем ди­ст­ри­бу­ти­ве ис­поль­зу­ет­ся su, за­пусти­те ее один раз и вы­пол­няй­те лю­бые за­д ан­ные ко­ман­ды без пред­ше­ст­вую­щей sudo.

О

Эта про­бле­ма, вероятнее все­го, свя­за­на с драй­ве­ра­ми WMI. Windows Management Interface (WMI) — это сред­ст­во, с по­мо­ щью ко­то­ро­го ОС управ­ля­ет драй­ве­ра­ми. В яд­ре Linux есть не­сколь­ко мо­д у­лей WMI, ка­ж ­дый из ко­ то­рых от­ве­ча­ет за под ­держ­к у сво­его уст­рой­ст­ва. Ва­ша про­бле­ма, ско­рее все­го, вы­зва­на тем, что один из этих мо­д у­лей кон­флик­т у­ет с ACPI или дру­ гим драй­ве­ром WMI; а не­ко­то­рые уст­рой­ст­ва спо­ соб­ны оду­ра­чить яд­ро и за­с та­вить его за­гру­зить не­сколь­ко мо­д у­лей. Сна­ча ­ла на­до по­смот­реть, ка­ кие мо­д у­ли WMI за­г ру­же­ны ядром — для это­го вы­пол­ни­те ко­ман­д у $ sudo lsmod | grep wmi. По­ про­буй­те вы­гру­зить от­дель­ные мо­д у­ли ко­ман­дой $ rmmod -v имя_мо­д у­ля и по­смот­ри­те, что по­лу­ чит­ся. Ес­ли это по­мо­жет вы­явить про­бле­му, мо­ же­т е до­б а­вить мо­д уль в чер­ный спи­с ок, что­бы он не за­гру­ж ал­ся в бу­д у­щем. Од­на­ко есть ве­ро­ ят­ность, что не­при­ят­но­сти уже при­чи­нил ка­кой-то

мо­д уль, за­гру­жен­ный во вре­мя за­пус­ка но­у т­бу­ка, по­это­му луч­ше все­го до­ба­вить мо­д у­ли в чер­ный спи­сок и за­тем пе­ре­за­гру­зить сис­те­му. Что­бы до­ ба­вить мо­д уль в чер­ный спи­сок, соз­д ай­те файл в ка­та­ло­ге /etc/modprobe.d. Имя фай­ла не иг­ра­ет ро­ли, но он дол­жен иметь рас­ши­ре­ние .conf, на­ при­мер, /etc/modprobe.d/wmi.conf. До­бавь­те свои мо­д у­ли так: blacklist asus-wmi blacklist dell-wmi Ра­зу­ме­е т­с я, име­на мо­д у­лей нуж­но за­ме­нить на свои. Ес­ли за­гру ­же­но не­сколь­ко мо­ду­лей WMI, про­ще все­го до­ба­вить их все в чер­ный спи­сок, пе­ ре ­з а­г ру ­зить­с я и по­с мот ­реть, все ли нор­маль­но, а за­тем вклю­чать их по од­но­му, по­ка Вы не най­ де­те мо­дуль или их со­че­та­ние, ко­то­рые по­ро­ди­ли про­бле­му. Так ­же есть не­боль­шая ве­ро­ят­ность об­рат­ной про­бле­мы — тре­буе­мый мо­дуль не за­гру ­жен. Все ус­т а­н ов­л ен­ные мо­д у­ли WMI для те­к у­щ е­г о яд­р а мож­но най­ти ко­ман­дой $ find /lib/modules/$(uname -r) -name ‘*wmi*.ko'. Что­бы за­гру­зить мо­д уль, ис­ поль ­з уй ­т е ко­м ан­д у $ modprobe -v имя_мо­д у­л я. Ес­ли про­бле­ма в этом, мож­но за­с та­вить мо­д уль за­гру ­жать­ся при вклю­че­нии сис­те­мы, до­ба­вив его имя в /etc/modules — это обыч­ный спи­сок мо­ду­лей по од­но­му в ка­ж ­дой стро­ке.

3 Не­дос­туп­ный Mint

В

Я пы­та­юсь за­пус­тить Linux Mint Cinnamon 17.3 (64‑бит­ную вер­сию) с DVD LXF207. Он про­сит ло­гин и па­роль, но в жур­на­ле о них ни­че­го не на­пи­са­но. Пус­тые ло­гин и па­роль так ­же не при­ни­ма­ют­ся. Джон Грин­хем [John Grinham]

О

Вхо­дить в сис­те­му не на­до. Linux Mint на­ стро­ен на ав­то­ма­ти­че­скую за­груз­к у ра­ бо­че­го сто­ла Cinnamon. Имя поль­зо­ва­ те­ля — mint, па­роль — пус­той, но они не нуж­ны, так как ра­бо­чий стол на­стро­ен на ав­то­ма­ти­че­­ский вход в сис­те­му. Един­ст­вен­ная при­чи­на, по ко­то­рой

за­пра­ши­ва­ют­ся ло­гин и па­роль — не за­гру­зил­ся ра­бо­чий стол. Это гра­фи­че­­ское ок­но вво­да ло­ги­на и па­ро­ля или кон­соль? Пер­вое край­не ма­ло­ве­ро­ ят­но — ес­ли сис­те­ма смог­ла за­гру­зить ок­но вхо­ да в сис­те­му, то долж­на за­гру­зить и ра­бо­чий стол. Вто­рое обыч­но вы­зы­ва­ет­ся про­бле­мой за­груз­к и под ­хо­д я­ще­го ви­део­д рай­ве­ра. Та­кое мо­жет про­ ис­хо­дить с не­ко­то­ры­ми кар­та­ми Nvidia, по­сколь­к у они не все со­вмес­ти­мы с од­ни­ми и те­ми же вер­сия­ ми драй­ве­ров, но при этом мо­жет быть ус­та­нов­ ле­на толь­ко од­на вер­сия ка­ж ­до­го драй­ве­ра. Эту про­бле­му мож­но обой­ти — вы­бе­ри­те ре­жим со­ вмес­ти­мо­с ти при за­груз­ке, при ко­то­ром Mint бу­ дет ис­п оль­з о­в ать стан­д арт­н ый драй­в ер VESA. Он да­ле­ко не та­кой бы­с т­рый, как спе­циа­ли­зи­ро­ ван­ные драй­ве­ры ви­део­к арт, но ра­бо­т а­ет поч­т и на лю­бом «же­ле­зе», вы­п у­щен­ном за по­с лед­ние пят­на­дцать лет. Мо­жет ока­зать­ся, что Cinnamon с этим драй­ве­ ром не­вы­но­си­мо тор­мо­зит — ему не­об­хо­дим драй­ вер с 3D-ус­ко­ре­ни­ем; но ес­ли Вы ус­та­но­ви­те ди­ст­ ри­бу­тив, то за­тем смо­же­те до­ба­вить пра­виль­ный драй­вер для сво­ей ви­део­кар­ты. (Его Вам при­дет­ся най­ти в Ин­тер­не­те, так как Вы не ука­за­ли ни­ка­кой ин­фор­ма­ции о сво­ей ви­део­кар­те.) Ес­ли это ста­рая кар­та, Ва­шей сис­те­ме мо­жет луч­ше по­дой­ти ра­бо­ чий стол Mate. Он то­же есть на DVD LXF207, хо­тя и в 32‑бит­ной вер­сии, но Вы мо­же­те по­про­бо­вать его, что­бы по­смот­реть, удов­ле­тво­рит ли он Ва­ши по­т реб­но­с ти. Ес ­ли Вам ну ­жен Mate в 64‑бит­ной сис­те­ме, ус­та­но­ви­те его из 64‑бит­ной вер­сии Cin­ namon. По­сле ус­та­нов­ки пе­рей­ди­те в Software Manager и ус­та­но­ви­те па­кет mint-meta-mate. В нем есть все не­об­хо­ди­мое для за­пус­ка ра­бо­че­го сто­ла Mate, и Вы смо­же­те вы­брать Mate при сле­д ую­щем вхо­ де в сис­те­му.

4 Строп­ти­вая за­груз­ка

В

Я ку­пил ком­пь­ю­тер Lenovo H30‑00, и те­ перь у ме­ня про­бле­мы со все­ми ди­ст­ри­ бу ­ти­ва­ми Linux. При за­груз­ке на эк­ра­не по­яв­ля­ет­ся Grub, но за­тем вклю­ча­ет­ся ре­жим

Ко­рот­ко про...

Кон­троль­ные сум­мы

Н

е­дав­няя ата­ка на офи­ци­а ль­ный сайт Linux Mint еще раз про­де­мон­ст­ри­ро­ ва­ла важ­ность кон­троль­ных сумм для за­гру­зок фай­лов. Боль­шин­ст­во ди­ст­ри­бу ­ти­ вов пре­дос­тав­ля­ют для сво­их ISO-об­ра­зов кон­ троль­ные сум­мы MD5. Кон­троль­ная сум­ма — это 128‑бит­ная крип­то­гра­фи­че­­ская сверт­ка со­дер­жи­мо­го фай­ла. Сге­не­ри­ро­ван­ная кон­ троль­ная сум­ма для фай­ла все­гда бу­дет од­на и та же, но сто­ит из­ме­нить в фай­ле хо­тя бы один бит, и она ста­нет со­вер­шен­но дру­гой. Кон­троль­ ную сум­му фай­ла мож­но оп­ре­де­лить ко­ман­дой $ md5sum имя­фай­ла и за­тем срав­нить ее с кон­ троль­ной сум­мой фай­ла, ко­то­рый вы за­гру­зи­ли.

Ес­ли они не сов­па­да­ют, за­гру­жен­ный файл ли­бо по­вре­ж ­ден, ли­бо кто-то из­ме­нил его со­держи­ мое. Ес­ли вы за­гру­зи­ли файл, со­дер­жа­щий не­сколь­ко кон­троль­ных сумм, то вме­сто про­вер­ ки ка­ж ­дой кон­троль­ной сум­мы по от­дель­но­сти мож­но про­ве­рить их все и по­лу­чить от­чет о том, ка­кие сум­мы кор­рект­ны, с по­мо­щью ко­ман­ды $ md5sum --check файл.md5. Ес­ли кон­троль­ные сум­мы при­ла­га­ют­ся к боль­шо­му ко­ли­че­­ст­ву фай­лов, при­ня­то пе­ре­ чис­лять их спи­ском в фай­ле MD5SUMS. Что­бы соз­дать этот файл из на­бо­ра фай­лов в ка­та­ло­ге, вы­пол­ни­те ко­ман­ду $ md5sum * >MD5SUMS

www.linuxformat.ru/subscribe

С по­мо­щью md5deep мож­но соз­дать спи­ сок кон­троль­ных сумм для всех фай­лов в де­ре­ ве ка­та ­ло­гов: $ md5deep -r somedir >MD5SUMS . Хо­тя MD5 ис­поль­зу­ет­ся для про­вер­ки кон­ троль­ных сумм на мно­гих сай­тах, этот стан­дарт не пол­но­стью безо­па­сен. В не­ко­то­рых мес­тах вы мо­же­те так­же уви­деть кон­троль­ные сум­мы SHA1 или SHA256. Они бо­лее безо­пас­ны, но ис­ поль­зу­ют­ся точ­но так же, ес­ли не счи­тать то­ го, что про­грам­мы на­зы­ва­ют­ся sha1sum и sha256sum со­от­вет­ст­вен­но с ана­ло­га­ми sha1deep и sha256deep. Име­на ко­манд от­ли­ча­ют­ся, но син­ так­сис пол­но­стью сов­па­да­ет.

Июнь 2016 LXF210  | 97


Ответы вос­ста­нов­ле­ния Lenovo. Я мо­г у за­гру­зить ди­ст­ри­бу ­тив, пе­рей­дя в ок­но Дру­гие уст­рой­ст­ва и за­гру­ зив его от ­т у­да. Я по­про­бо­вал от­ клю­че­ние Secure Boot, но, мо­жет быть, вы под­ска­же­те что-нибудь получше? Джордж Хьюз [George Hughes]

О

Для на­ч а­л а по­п ро­буй­т е вклю­чить в BIOS ус­та­рев­ ший ре­жим за­груз­ки [leg­ acy booting], для это­го удер­жи­вай­те Enter при по­яв­ле­нии на­чаль­ной за­ став­ки Lenovo. В раз­де­ле Boot [За­ груз­ка] Вы долж­ны най­ти па­ра­метр > Ес­ли при за­пус­ке с Live CD не за­гру­жа­ет­ся ра­бо­чий стол, по­про­ для вклю­че­ния ус­та­рев­ше­го ре­жи­ буй­те безо­пас­ную за­груз­ку или за­груз­ку в ре­жи­ме со­вмес­ти­мо­сти, ма за­г руз­к и (не EFI). В не­ко­то­рых так как она час­то ис­поль­зу­ет дру­гой гра­фи­че­ский драй­вер. сис­те­мах он на­зы­ва­ет­ся CSM (Com­ patibility Support Module — мо­дуль под­держ­ки со­ Есть не­с коль­ко ва­ри­а н ­т ов, но луч­ший вмес­ти­мо­сти) и по су­ти эму­ли­ру­ет ста­рую за­груз­к у для Вас за­ви­с ит от ско­ро­с ти се­т е­во­го BIOS. Не все ди­ст­ри­бу­ти­вы под­дер­жи­ва­ют за­груз­ под­к лю­че­ния ме­ж ­ду дву­мя ком­пь­ю­те­ра­ ку EFI, и да­же ес­ли они под­дер­жи­ва­ют ее при за­ ми и то­го, что имен­но Вам нуж­но сде­лать. X, гра­ груз­ке с дис­ка, она мо­жет пе­ре­стать ра­бо­тать при фи­че­­ская сис­те­ма, ис­поль­зуе­мая ра­бо­чи­ми сто­ ко­пи­ро­ва­нии об­раза CD/DVD на флеш­к у. ла­ми Linux, пред­на­зна­че­на для ра­бо­ты через се­ть. В раз­де­ле Boot есть и дру­гие па­ра­мет­ры, спо­ Ее пре­иму­ще­ст­ва — про­сто­та в за­пус­ке и воз­мож­ соб­ные по­мочь — на­при­мер, мож­но из­ме­нить по­ ность за­пус­ка от­дель­ных про­грамм без не­об­хо­ди­ ря­д ок за­г руз­к и или вы­брать дру­г ие уст­р ой­с т­в а мо­сти от­прав­лять по се­ти все со­дер­жи­мое ра­бо­че­ для за­груз­ки; но пер­вым де­лом по­про­буй­те вклю­ го сто­ла. Од­на­ко она не слиш­ком бы­ст­рая, по­это­му чить ус­та­рев­ший ре­ж им за­груз­ки. К со­ж а ­ле­нию, луч­ше все­го под­хо­дит для за­пус­ка че­рез сеть. Вам стан­д арт­ной схе­мы для на­стро­ек BIOS нет, и Вам по­на­до­бит­ся на­с тро­и ть SSH (см. от­вет «„По­лез­ при­д ет­с я экс­п е­р и­м ен­т и­р о­в ать с раз­ны­ми па­р а­ ные“ со­об­ще­ния», стр. 96), а так­же от­крыть файл мет ­р а­м и, по­к а Вы не най­д е­т е то, что ра­б о­т а­е т. /etc/ssh/sshd_config с пра­ва­ми root и ус­та­но­вить Но не вол­нуй­тесь — во всех BIOS есть пункт Сбро­ па­р а­м етр X11Forwarding в yes. При под­к лю­ч е­ сить к на­с трой­к ам по умол­ча­нию, ко­т о­рый вос­ нии к уда ­лен­но­му ком­пь­ю­те­ру ис­поль­зуй­те па­ра­ ста­но­вит ба­зо­вые на­строй­ки, ес­ли у Вас воз­ник ­ли метр -Y, что­бы вклю­чить пе­ре­на­прав­ле­ние: $ ssh -Y про­бле­мы с за­груз­кой из-за не­пра­виль­но за­д ан­ user@othercomputer. ных па­ра­мет­ров. При за­пус­ке лю­бой про­грам­мы из это­го се­ан­са В сис­те­мах Lenovo так­же есть ме­ню за­груз­ки, SSH ее ок­но от­кро­ет­ся на ло­каль­ном ра­бо­чем сто­ ко­т о­р ое вклю­ч а­е т­с я на ­ж а­т и­е м и удер­ж и­в а­ни­е м ле. Имя про­грам­мы так­же мож­но ука­зать в со­ста­ кла­ви­ши F12 на эк­ра­не на­чаль­ной за­став­ки. С его ве ко­ман­ды ssh: $ ssh -Y user@othercomputer имя­ по­мо­щью Вы смо­же­те до­бить­ся не­ко­то­ро­го ус­пе­ха про­грам­мы, и да­же соз­д ать для нее яр­лык, ес­ли и по­нять, что в на­строй­ках BIOS нуж­но из­ме­нить. Вы час­то за­пус­кае­те эту про­грам­му. В опи­са­нии Ва­шей про­бле­мы мне ка­жет­ся стран­ Как уже упо­ми­на­лось, этот ме­тод при ис­поль­ ным то, что Grub со­всем не за­гру­жа­ет­ся. Это мог­ зо­в а­н ии че­р ез Ин­т ер­н ет до­в оль­н о мед ­л ен­н ый. ло быть вы­зва­но не­пра­виль­ной на­строй­кой ме­ню Су­щ е­с т­в у­е т не­с коль­ко ре­ш е­ний для уда ­л ен­ных за­груз­ки в од­ном ди­с т­ри­бу­ти­ве, но Вы го­во­ри­те, ра­бо­чих сто­лов, ко­то­рые для по­вы­ше­ния про­из­во­ что про­бо­ва­ли не­сколь­ко. Од­на­ко Вы мо­же­те по­ ди­тель­но­сти в этих ус­ло­ви­ях ис­поль­зу­ют сжа­тие. про­бо­вать за­гру­зить­ся с дис­ка Rescatux CD (он есть Од­но из них, ко­то­рое эф­фек­тив­но и про­сто в ис­ на DVD пре­ды­ду­ще­го но­ме­ра) и по­про­бо­вать вос­ поль­зо­ва­нии — X2Go. Для X2Go надо ус­та­но­вить ста­но­вить или вос­соз­дать ме­ню Grub. два па­ке­та: на уда­лен­ном ком­пь­ю­те­ре — x2goserver, а на ло­каль­ном ком­пь­ю­те­ре, с ко­то­ро­го Вы хо­ ти­те под­к лю­чать­ся — x2goclient. X2Go внут­ри се­бя Я ищу про­стое ре­ше­ние для под­к лю­че­ ис­поль­зу­ет уда ­лен­ный ра­бо­чий стол NX, но для его ния к ра­бо­че­му сто­лу с уда­лен­но­го ком­ ис­поль­зо­ва­ния нуж­но толь­ко под­к лю­че­ние SSH. пь­ю­те­ра. Про­бо­вал VNC, но про­грам­ма На уда ­лен­ном ком­пь­ю­те­ре де­мон X2Go за­пус­кать­ слиш­ком слож­ная и ра­бо­та­ла с до­воль­но боль­ ся не дол­жен — про­с то убе­ди­тесь, что SSH-сер­ ши­ми задерж­ка­ми. Па­ра­мет­ров так мно­го, что вер ра­бо­та­ет. На­строив SSH как ука­за­но вы­ше, за­ я не знаю, за­к лю­ча­ет­ся ли про­бле­ма в мо­ем ин­ пус­ти­те x2goclient и вы­бе­ри­те New Session [Но­вый тер­нет-подклю­че­нии, в на­строй­ках VNC или в том, се­анс]. Вве­ди­те имя хос­та и имя поль­зо­ва­те­ля и ус­ что это пре­дел ее воз­мож­но­стей. Нет ли про­ та­но­вите га­лоч­к у Try autologin [Про­бо­вать вхо­дить сто­го спо­соба за­пус­ка гра­фи­че­­ских про­грамм в сис­те­му ав­то­ма­ти­че­­ски] для ис­поль­зо­ва­ния уже на мо­ем ра­бо­чем сто­ле с дру­го­го ком­пь­ю­те­ра? на­стро­ен­ных учет­ных дан­ных SSH. У ме­ня Ubuntu 15.10. Пе­ред тем, как Вы нач­не­те, од­но пре­д у ­пре­ж­ Дэйл Мак­свелл [Dale Maxwell] де­ние. Не все ра­бо­чие сто­лы со­вмес­ти­мы с X2Go,

О

5 Про­стая уда­лен­ка

В

98  |  LXF210 Июнь 2016

www.linuxformat.ru/subscribe

и к ним от­но­сят­ся Unity в Ubuntu и KDE Plasma 5 (KDE 4 ра­бо­та­ет от­лич­но). По­это­му Вам, воз­мож­но, при­дет­с я вы­бирать в кон­фи­г у ­ра­ции се­ан­с а дру­ гой ра­б о­чий стол. Для уда ­л ен­н о­г о ис­п оль­з о­в а­ ния нуж­но что-ни­будь по­лег­че, по­это­му хо­ро­ший ва­ри­а нт — LXDE; но что бы Вы ни вы­бра­ли, это долж­но быть ус­т а­нов­ле­но на уда ­лен­ном ком­пь­ ю­те­ре. На вклад­ке Connection [Под­к лю­че­ние] вы­ бе­р и ­т е что-ни­будь под ­хо­д я­щ ее для сво­е го ин­ тер­нет-под­к лю­че­ния. Пом­ни­те, что у до­маш­не­го ин­тер­нет-под­к лю­че­ния обыч­но очень низ­кая ис­хо­ дя­щая ско­рость, и это по­влия­ет на про­из­во­ди­тель­ ность лю­бо­го уда ­лен­но­го ра­бо­че­го сто­ла. За­вер­ ши­те на­с трой­к у се­ан­са, за­тем щелк­ни­те по не­му в спи­ске спра­ва от глав­но­го ок­на, что­бы по­лу­чить удоб­ный дос­т уп ко все­му ра­бо­че­му сто­лу уда­лен­ ной сис­те­мы.

6 Под­де­ла­ем это

В

Я про­бо­вал ус­та­но­вить ОС с по­след­не­го LXFDVD, как Mint 17.3 — в ва­ри­ан­тах Cinnamon и Mate — так и openSUSE. С Live CD все по­лу­чи­лось, но Mint во вре­мя ус­та­нов­ки упал, а openSUSE со­об­щил, что ус­та­но­вил­ся, но при за­ груз­ке не су­мел най­ти же­ст­кий диск. Воз­мож­но, это вы­зва­но тем, что у ме­ня RAID 0 с че­ре­до­ва­ ни­ем. Я ре­шил уст­ро­ить openSUSE не­боль­шое ис­ пы­та­ние и про­ве­рить, на­сколь­ко лег­ко ус­та­но­вить аль­тер­на­тив­ный брау­зер — сей­час у ме­ня это Opera — и это бы­ло не­про­сто. Мой са­мый луч­ший ре­ зуль­тат был «ухо­ди­те и от­прав­ляй­тесь учить ру­ ко­во­дства по YaST». Глу­бо­ко раз­оча­ро­вы­ваю­щий опыт ис­поль­зо­ва­ния Linux в ка­че­­ст­ве за­ме­ны на­ столь­ной сис­те­мы. rez

О

Про­бле­ма и в са­мом де ­ле вы­зва­на Ва­ шей кон­фи­г у­ра­ци­ей RAID. Это «псев­до­ ап­па­рат­ный» RAID для Windows (ино­гда его на­зы­ва­ют «фаль­ши­вый» или «ложный» RAID). В та­кой кон­фи­г у­ра­ции на ма­те­рин­ской пла­те есть не­боль­шая про­шив­ка RAID, однако ее дос­та­точ­но толь­ко для загрузки Windows, ко­то­рая смо­жет вы­ звать драй­ве­ры Windows, а те, в свою оче­редь, сде­ла­ют всё ос­таль­ное. Та­кая сис­те­ма не­раз­рыв­но свя­за­на с Windows, но еще ху­же, что она так­же при­вя­за­на к Ва­шей ма­те­рин­ской пла­те. Для подоб­ ных ме­ха­низ­мов RAID не предусмотрено ни­ка­ко­го стан­дарта, и ес­ли под­к лю­чить дис­ки к дру­гой ма­ те­рин­ской пла­те, они, ве­ро­ят­но, ра­бо­тать не бу­дут. Linux нормально ра­бо­тает с на­стоя­щи­ми ап­па­ рат­ны­ми кон­трол­ле­ра­ми RAID. Ес­ли у Вас бу­дет та­ кой кон­трол­лер, Вы уз­нае­те об этом, по­то­му что это от­дель­ная кар­т а, ко­то­рая сто­и т на­мно­го до­ро­же ма­те­рин­ской пла­ты, с пол­ным про­грамм­ным обес­ пе­че­ни­ем RAID. Но с гиб­рид­ны­ми ма­те­рин­ски­ми пла­та­ми, ко­то­рые за­ви­сят от драй­ве­ров Windows, Linux ра­бо­тать не бу­дет. Наи­бо­лее со­вмес­ти­мое ре­ ше­ние — на­стро­ить сис­те­му в ви­де двух от­дель­ных дис­ков в Windows, за­тем ус­та­но­вить Linux на один или оба дис­ка. Ус­та­нав­ли­вать про­грам­мы в Linux, как пра­ви­ло, не­ве­ро­ят­но лег­ко, но данный про­цесс на­с толь­ко от­ли­ча­ет­ся от Windows, что лег­ко за­пу­тать­ся, ес­ли попы­т ать­с я сде­л ать это так же, как в Windows.


Ответы

По­мо­ги­те нам по­мочь вам

> Для уда­лен­но­го ра­бо­че­го сто­ла про­ще все­го вос­поль­зо­вать­ся X2Go. В ка­ж ­дом ди­с т­ри­бу­ти­ве есть про­грам­ма под на­ зва­ни­ем Software Manager или ка­ким-то по­доб­ным. Она ис­п оль­зу­е т­с я для ус­т а­н ов­к и про­г рамм­н о­г о обес­пе­че­ния с по­мо­щью па­ке­тов, пре­дос­тав­ляе­ мых, под­дер­жи­вае­мых и об­нов­ляе­мых ди­ст­ри­бу­ ти­вом — в дистрибутиве openSUSE такие за ­д а­чи ре­ша­ет YaST. Всё, что Вам требуется сде­лать — от­ крыть ме­нед ­жер про­г рамм, вве­с ти имя не­о б­хо­ ди­мой про­грам­мы в по­ле по­ис­ка и на­жать кноп­ ку Ус­та­но­вить.

Не­ко­то­рые про­грам­мы, осо­бен­но не­сво­бод­ные, та­кие как Opera, мо­г ут быть не вклю­че­ны по умол­ ча­нию, и для них нуж­но до­ба­вить до­пол­ни­тель­ные ре­по­зи­то­рии. Пол­ные ин­с т­рук­ции обыч­но ука­за­ ны на со­от­вет­с т­вую­щих сай­тах. Ес­ли у Вас open­ SUSE, то с сай­та Opera мож­но ска­чать RPM-файл (это фор­мат па­ке­та, ис­поль­зуе­мый openSUSE и ря­ дом дру­ги­х ди­ст­ри­бу­ти­вов), ко­то­рый нуж­но за­гру­ зить и от­крыть для ус­та­нов­ки про­грам­мы. Но в об­ щем слу­чае надо всегда ста­рать­ся ус­та­нав­ли­вать

Еже­ме­сяч­но к нам по­ступа­ет несколь­ко пи­сем, на ко­то­ рые мы не в состоянии от­ве­тить, поскольку про­бле­ма опи­са­на в них с недоста­точ­ной пол­нотой. Что­бы дать вам наи­луч­ший от­вет, нам необхо­димо получить как мож­ но боль­ше информации о проблеме. Ес­ли у вас по­яв­ля­ет­ся со­об­щение об ошиб­ке, приведи­те его текст в точ­ности и опишите кон­крет­ные усло­вия, когда оно по­яв­ля­ет­ся. При воз­никновении про­ бле­мы с уст­рой­ст­ва­ми пере­числи­те нам все уст­рой­ст­ва, которые у вас уста­нов­ле­ны. Ес­ли Linux в вашей системе за­пу­щен, вы смо­же­те применить для этого превосход­ную про­грам­му Hardinfo (http://sourceforge.net/hardinfo.berlios) — она со­хранит под­роб­ную ин­фор­ма­цию об уст­рой­ст­вах и о состоянии сис­те­мы в HTML-файле, который вы смо­же­те при­ло­жить к своему пись­му, отправляемому нам. Не уступающий в удоб­стве аль­тер­на­тив­ный ва­ри­ ант — lshw (http://ezix.org/project/wiki/Hardware­LiSter). Од­на из указанных программ непременно долж­на быть включена в ва­ш ди­ст­ри­бу­ти­в (а иногда и обе). Ес­ли у вас нет желания или возможности их уста­но­ вить, вы­полните в тер­ми­на­ле от имени root приведенные ниже ко­ман­ды и при­ло­жи­те сгенерированный ими файл system.txt к письму. Это о­кажет неоценимую помощь в ди­аг­но­сти­ке вашей проблемы. uname -a > system.txt lspci >> system.txt lspci -vv >> system.txt

па­ке­ты че­рез свой ме­нед­жер про­грамм, по­сколь­к у это обес­пе­чи­ва­ет до­пол­ни­тель­ную безо­пас­ность и со­вмес­ти­мость. |

Час­то за­да­вае­мые во­про­сы

Про­грамм­ные ре­по­зи­то­рии > Вы час­то го­во­ри­те об ус­та­новке про­грамм из ре­по­зи­то­ри­ев. А это у нас что? Ре­по­зи­то­рий — это на­бор про­ грамм­ных па­ке­тов, соз­дан­ных ди­ ст­ри­бу­ти­вом и дос­т уп­ных че­рез стан­дарт­ный ин­тер­фейс (гра­фи­че­ ­ское при­ло­же­ние или про­грам­му ко­манд­ной стро­ки), но обыч­но и то, и дру­гое. > За­чем де­лать всю эту ра­бо­т у для ка­ж­до­го ди­ст­ри­бу ­ти­ва, ес­ли это мог­ли бы сде­лать сами раз­ра­бот­чики про­грамм­но­го обес­пе­че­ния? Боль­шин­ст­во про­грамм в Linux дос­т уп­ны в ви­де ис­ход­но­го ко­да и долж­ны ком­пи­ли­ро­вать­ся пе­ред ис­поль­зо­ва­ни­ем. Ре­по­зи­то­рий со­ дер­жит ском­пи­ли­ро­ван­ные (дво­ич­ ные) па­ке­ты, го­то­вые к ус­та­нов­ке. > То есть это эко­но­мит вре­мя... но как на­счет дру­гих плю­сов?

Так как все па­ке­ты соз­да­ют­ся ди­ ст­ри­бу ­ти­вом, ре­по­зи­то­рии по­зво­ ля­ют га­ран­ти­ро­вать, что все про­ граммы со­вмес­ти­мы с дру­ги­ми, и что вам дос­т уп­на гар­мо­нич­ная кол­лек­ция про­грамм. > А дру­гие пре­иму­ще­ст­ва есть? Все па­ке­ты под­пи­сы­ва­ют­ся циф­ ро­вой под­пи­сью, и она про­ве­ря­ет­ ся пе­ред ус­та­нов­кой. Это оз­на­ча­ет, что да­же ес­ли кто-то смо­жет по­лу­ чить дос­т уп к сер­ве­ру с ре­по­зи­то­ рия­ми и за­ме­нить па­кет дру­гим, со­ дер­жа­щим тро­ян или ла­зей­к у, ваш ме­нед ­жер па­ке­тов от­ка ­жет­ся его ус­та­нав­ли­вать. > Как на­счет об­нов­ле­ний? Ди­ст­ри­бу ­ти­вы при не­об­хо­ди­мо­ сти пре­дос­тав­ля­ют об­нов­ле­ния па­ке­тов, и ва­ша сис­те­ма про­ве­ рит эти об­нов­ле­ния и со­об­щит вам о них. По­лу­чае­мые об­нов­ле­ния за­ ви­сят от ди­ст­ри­бу ­ти­ва; не­ко­то­рые

ди­ст­ри­бу ­ти­вы пре­дос­тав­ля­ют об­ нов­ле­ния толь­ко по безо­пас­но­ сти или круп­ные ис­прав­ле­ния оши­ бок, но не для бу­ду­щих вер­сий. Они от­к ла­ды­ва­ют эти об­нов­ле­ния до сле­дую­ще­го вы­пус­ка ди­ст­ри­бу­ ти­ва, в ко­то­ром все но­вые па­ке­ты тес­ти­ру­ют­ся друг с дру­гом, ес­ли у вас не ди­ст­ри­бу­тив с пла­ваю­щим ре­ли­зом.

Ес­ли вы собираетесь пред­ло­ жить поль­зо­ва­те­лям по-на­стоя­ще­ му сво­бод­ную ОС, то имен­но такое и следует пред­лагать по умол­ча­ нию. Ес­ли вы го­то­вы ис­поль­зо­ вать не­сво­бод­ное ПО, то про­сто вклю­чае­те со­от­вет­ст­вую­щие ре­ по­зи­то­рии в ме­нед ­же­ре па­ке­тов, и их со­дер­жи­мое ста­но­вит­ся вам дос­т уп­но.

> Мож­но ли ис­поль­зо­вать не­сколь­ко ре­по­зи­то­ри­ев? Да, так ча­ще все­го и бы­ва­ет. Ди­ст­ ри­бу ­ти­вы час­то раз­би­ва­ют ре­по­зи­ то­рии; у вас мо­жет быть стан­дарт­ ный ре­по­зи­то­рий и ре­по­зи­то­рий для об­нов­ле­ний безо­пас­но­сти. Час­ то па­ке­ты, ко­то­рые не яв­ля­ют­ся от­ кры­ты­ми и сво­бод­ны­ми, на­при­мер, про­прие­тар­ные ви­део­драй­ве­ ры, вы­де­ля­ют­ся в от­дель­ный ре­по­зи­то­рий.

> Что еще мож­но ус­та­но­вить? Всё это — офи­ци­а ль­ные ре­по­зи­ то­рии, но су­ще­ст­ву­ет ог­ром­ное ко­ ли­че­­ст­во сто­рон­них ре­по­зи­то­ри­ ев, в ко­то­рых про­грам­ми­сты са­ми соз­да­ют па­ке­ты для раз­лич­ных ди­ ст­ри­бу ­ти­вов. На сай­тах этих про­ ек­тов есть ин­ст­рук­ции по до­бав­ ле­нию этих ре­по­зи­то­ри­ев в ваш ме­нед ­жер па­ке­тов. Са­мый по­пу­ ляр­ный тип сто­рон­них ре­по­зи­то­ ри­ев — PPA (пер­со­наль­ные ар­хи­вы па­ке­тов) для Ubuntu и дру­гих про­ из­вод­ных Debian.

> За­чем это де­лается?

www.linuxformat.ru/subscribe

Июнь 2016 LXF210  | 99


Луч­шие в ми­ре про­грам­мы с от­кры­тым ко­дом

LXFHotPicks

Алек­сандр Тол­стой

LibreOffice » Retroshare » Htop » FromScratch » Notes-up » MComix » Logwatch » Raincat » Pop, Pop, Win! » Wammu » Cellwriter

об­во­дит на­ме­тан­ным взгля­дом ос­нов­ные об­нов­ле­ния круп­ных по­пу­ляр­ных при­ло­же­ний и про­ли­ва­ет свет на не­боль­шие, но кру­тые про­ек­ты.

Офис­ный па­кет

LibreOffice Вер­сия: 5.1 Сайт: www.libreoffice.org

М

но­гое из­ме­ни­лось со вре­мени на­ше­го по­с лед­не­го об­зо­ра LibreOffice [HotPicks, стр. 100, LXF183], и с тех пор мы ста­ли за­ме­чать, что всё боль­ше и боль­ше объ­яв­ле­ний, цен­ ни­ков и про­чих рас­пе­ча­ток де­ла­ет­ся в Lib­ eration Serif, шриф­те по умол­ча­нию LibreOffice. Хо­тя это сви­де­тель­ст­во по­пу­ляр­но­сти до­воль­но анек­до­тич­но, оно го­во­рит о всё боль­шем рас­про­с тра­не­нии это­го бо­г а­то­ го функ­ция­ми офис­но­го па­ке­та сре­ди тех, кто из­на­чаль­но при­вык к клас­с и­че­­с ко­­м у ин­тер­фей­су тек­сто­во­го ре­дак ­то­ра и не при­ нял не­нуж­ных из­ме­не­ний в Microsoft Word. В про­т и­во­по­лож­ность ему, LibreOffice Writer при­дер­жи­ва­ет­ся мелких улуч­ше­ний

и оп­ти­ми­за­ции. В вер­сии 5.1 Writer нау­чил­ ся скры­вать бе­лые по­ля лис­та, по­мо­гая вам со­сре­до­то­чить­с я на со­дер­ж а­нии (это но­ вый пункт ме­ню View); он так­же по умол­ча­ нию вклю­чил ре­жим на­чаль­ной и ко­неч­ной ви­с я­ч ей стро­к и аб­з а­ц а для но­в ых до­к у­ мен­тов; и диа ­ло­го­вое ок­но про­вер­к и ор­ фо­г ра­фии боль­ше не за­к ры­ва­ет­ся по за­ вер­ше­нии про­вер­ки. До это­го об­нов­ле­ния в Writer так ­же появилось не­м а ­л о дру­г их

> Те­перь мож­но не от­вле­кать­ся, от­клю­чив оп­цию ото­бра­же­ния по­лей в ме­ню View.

Под­держ­ка таб­лиц XSLX в Calc ста­но­ вится со­вер­шен­нее.

Ис­сле­ду­ем ин­тер­фейс LibreOffice Па­нель ин­ст­ру­мен­тов

Ред­ко ис­поль­зуе­мые кноп­ки на па­не­ли ин­с т­ру­ мен­тов Writer были уда­ле­ ны, и до­бав­ле­ны но­вые.

Ком­пакт­ный вид

Мож­но от­к лю­чить ото­ бра ­же­ние по­лей и сфо­ ку­си­ро­вать­ся на тек­с те, а не смот­реть на по­ло­ви­ну за­пол­нен­ной стра­ни­цы.

Об­но­ви­тесь сей­час

Еще до то­го, как ваш ди­с т­ри­бу ­тив Linux по­лу­ чит LibreOffice 5.1 че­рез сис­тем­ные об­нов­ле­ния, мож­но ска­чать его на­пря­ мую с сай­та про­ек­та.

100  |  LXF210 Июнь 2016

Бы­строе пе­ре­клю­че­ние Пе­ре­к лю­че­ние ме­ж ­д у ре­жи­ мом Edit и ре­жи­мом Master в Impress те­перь на­мно­го про­ще.

Оп­ре­де­ле­ние фор­ма­ти­ро­ва­ния Calc им­пор­ти­ру­ет и экс­пор­ти­ру­ет доку­мен­ты Excel бо­лее надежно, и мож­но ве­леть Calc най­ти от­фор­ма­ти­ро­ван­ный текст.

www.linuxformat.ru/subscribe

улуч­ше­ний, в ча­с т­но­с ти, го­раз­до луч­шая ра­бо­та с RTF/DOC и ODT, луч­шее вы­де­ле­ние тек­ста и бо­лее по­нят­ная струк ­т у­ра па­не­ли ин­ст­ру­мен­тов. Ес­те­ст­вен­но, Writer — не един­ст­вен­ное при­ло­же­ние в се­мей­с т­ве LibreOffice. Под­ держ­ка таб­лиц XSLX в Calc с ка­ж ­дым но­вым ре­ли­зом ста­но­вит­ся со­вер­шен­нее, и те­перь в Calc им­пор­т и экс­пор­т до­к у­мен­тов Microsoft Excel бо­лее на­деж­ны и луч­ше со­хра­ня­ ют ис­ход­ное фор­ма­ти­ро­ва­ние. Impress, про­грам­ма пре­зен­та­ций, об­за­ ве­лась но­вы­ми знач­к а­ми па­не­ли ин­с т­ру­ мен­тов: один для то­го, что­бы сде­лать ви­ди­ мой па­нель пе­ре­к лю­че­ния вкла­док, и еще один для вы­б о­р а ре­ж и­м а ра­б о­т ы. Сме­н а слай­дов в Impress те­перь об­с чи­т ы­в а­е т­с я в OpenGL 2.1+, и до­бав­ле­но че­ты­ре до­пол­ ни­т ель­н ых эф­ф ек ­т а пе­р е­хо­д а. Ко­н еч­н о, жур­нал из­ме­не­ний LibreOffice 5.1 об­ши­рен, и про­сто пе­ре­чис­ле­ние всех не­дав­но до­бав­ лен­ных пре­лес­тей и от­ла­док зай­мет не од­ ну стра­ни­цу. LibreOffice пре­дус­та­нав­ливается в боль­ шин­ст­ве ди­ст­ри­бу ­ти­вов Linux, и вы, ве­ро­ ятно, по­лу­чи­те но­вую вер­сию вме­сте с лю­ бы­ми об­нов­ле­ния­ми своей сис­те­мы. Од­на­ко вы мо­же­те ска­чать мно­го пред­ва­ри­тель­но ор­г а­н и­з о­в ан­н ых в па­к е­т ы фай ­л ов RPM или Deb для 32‑ и 64‑бит­ной ар­хи­тек­т у­ры с офи­ци­а ль­ной стра­ни­цы за­г руз­к и LibreOffice, а так­же от­дель­ные фай­лы справки и ло­ка ­ли­за­ции для ва­ше­го язы­ка.


LXFHotPicks Про­грам­ма дос­ту­па к фай­лам

Retroshare Вер­сия: 0.6 Сайт: http://retroshare.sourceforge.net

П

о­к а об­лач­ные web-сер­ви­сы про­ дол­жа­ют раз­ви­вать­ся, по­рой от­ тес­няя тра­ди­ци­он­ные при­ло­же­ния ра­бо­че­го сто­ла, все боль­ше лю­дей об­ра­ ща­ют­с я к де­цен ­т ра ­ли­зо­ван­ным со­еди­не­ ни­ям (из­вест­ным как од­но­ран­го­вые [peerto-peer или friend-to-friend]). Этот под­ход ока­зал­ся бо­лее безо­пас­ным, и он пред ­ла­ га­ет ано­ним­ную ком­му­ни­ка­цию. Retroshare яв­ля­ет­ся плат­фор­мой для по­доб­ных ком­ му­ни­ка­ций, в ча­ст­но­сти, для элек ­трон­ной поч­ты без сер­ве­ра, об­ме­на бы­ст­ры­ми со­об­ ще­ния­ми, чат-ру­мов и BBS. Ин­тер­фейс Retroshare мо­жет на­вес­ти на мысль о Darknet, но все это впол­не за­кон­но, и поль­зо­ва­те­ли Retroshare об­ме­ни­ва­ют­ся сер­ти­фи­ка­та­ми и IP-ад­ре­са­ми ме­ж ­ду уз­ла­ми, ес­ли за ­хо­тят. При пер­в ом об­р а­щ е­н ии к Retroshare сна­ча ­ла при­дет­ся соз­дать иден­ти­фи­ка­тор. По­сколь­к у Retroshare ра­бо­та­ет без сер­ве­ ра, вам на­до толь­ко вы­брать ник, па­роль и, оп­цио­наль­но, ме­сто­по­ло­же­ние. Retroshare сге­не­ри­ру­ет па­ру клю­чей PGP, по­черп­нув

слу­чай­ность из перемеще­ний ва­шей мы­ши (и это дей­ст­ви­тель­но слу­чай­ность). Вы мо­ же­те иметь сколь­ко угод­но иден­ти­фи­ка­то­ ров и пе­ре­к лю­чать­ся с од­но­го на дру­гой, или же им­пор­ти­ро­вать или экс­пор­ти­ро­вать иден­т и­ф и­к а­т о­р ы. Ин­т ер­ф ейс Retroshare со­че­та­ет функ­ции для ча­та ме­ж ­ду друзь­я­ ми, за­груз­ки и ска­чи­ва­ния фай­лов, об­ме­на со­об­ще­ния­ми элек ­трон­ной поч­ты, но­во­ст­ ных ка­на­лов и фо­ру­мов. Све­ж е­з а­п у­щ ен­н ый эк­з ем­п­л яр Retroshare по­к а­зы­в а­е т все эти ка­т е­г о­рии пус­ ты­м и, и на ­д о это ис­п ра­в ить. Во-пер­в ых, мож­но от­пра­вить свой ID-сер­ти­фи­кат дру­ гу, ко­т о­р ый то­же ис­п оль ­з у­е т Retroshare, и друг до­ба­вит­ся в ваш чат-лист. Во-вто­рых, Retroshare не си­дит сло­жа ру­ки, по­ка вы им

> Обезо­пась­те свою циф­ро­вую ча­ст­ную жизнь с по­мо­щью Retroshare, плат­фор­мы ком­му­ни­ка­ции все-в-од­ном.

На­до толь­ко вы­ брать ник, па­роль и ме­сто­по­ло­же­ние.

не за­ни­мае­тесь: он ищет по все­му ми­ру се­ ти Retroshare и ав­то­ма­ти­че­­ски под­к лю­ча­ет вас, най­д я что-то. Сле­ди­те, что­бы ин­ди­ка­ то­ры NAT и DHT вни­зу ок­на бы­ли зе­ле­ны­ми. По­до­ж ­ди­те не­сколь­ко ми­нут, и как толь­ко вы до­ба­ви­те хо­тя бы од­но­го дру­га, вы мо­ же­т е на­ч ать зна­ком­с т­во с об­щ е­с т­вен­ны­ ми и ча­ст­ны­ми лоб­би, чат-ру­ма­ми и фо­ру­ ма­ми. Об­ра­ти­те вни­ма­ние: ес­ли ин­ди­ка­тор NAT крас­ный, зна­чит, функ­ции Retroshare ог­ра­ни­че­ны бранд­мау­эром.

Ви­зуа­ли­за­тор про­цес­сов

htop Вер­сия: 2.0 Сайт: http://hisham.hm/htop

М

но­гие поль­зо­ва­те­ли Linux зна­ ко­мы с top, при­ло­же­ни­ем-ве­те­ ра­ном для про­смот­ра и по­ис­ка сис­т ем­ных про­цес­с ов, ко­то­рое встрое­но прак­ти­че­­ски во все сис­те­мы Unix по умол­ ча­н ию. Улуч­ш ен­н ая вер­с ия top — htop, ко­т о­р ая рас­ш и­р я­е т пред­с тав­л яе­м ую top ин­фор­ма­цию. Этот ви­зуа­ли­за­тор ото­бра­жа­ет сис­тем­ ные про­цес­сы и до­пол­ни­тель­ные дан­ные, на­п ри­м ер, об­л асть под­к ач­к и [swap], ис­ поль­зо­ва­ние CPU и рас­ход па­мя­т и, и т. д. Са­мое при­вле­ка­тель­ное в htop — воз­мож­ ность из­м е­н ять при­о ри­т е­т ы про­ц ес­с ов; но htop так­же мо­жет ви­деть дре­во­вид­ное ото­бра ­же­ние вме­сто про­сто­го спи­ска; ме­ нять спо­с об ра­бо­т ы и внеш­ний вид; раз­ ме­щ ать ин­фор­ма­ци­он­ные об­лас­ти, и т.  д. Фак­ти­че­­ски, htop яв­ля­ет­ся аль­тер­на­ти­вой ко­манд­ной стро­к и для гра­фи­че­­ских сис­ тем­ных мо­ни ­то­ров, та­к их, как KSysGuard и Gnome System Monitor. Про­г рам­ма управ­ля­ет­ся по­сред­с т­вом го­р я­ч их кла­в иш, которые пе­р е­ч ис­л ен­ы

вни­зу тер­ми­на ­ла. Эта па­нель по­хо­жа на па­ нель в Midnight Commander, и мно­гое по­ за­им­с т­во­в а ­л а именно от ­т у­д а (на­при­м ер, F10 — вы­ход, а F1 — по­мощь). По­сколь­к у htop ос­но­ван на ncurses (что по­зво­ля­ет вам соз­да­вать раз­де­лен­ные на час­ти ин­тер­фей­ сы ко­манд­ной стро­ки), не­ко­то­рые дей­ст­вия мож­но вы­пол­нять так­же с по­мо­щью мы­ши. На­при­мер, щел­чок по за­го­лов­к у столб­ц а при­ве­дет к сор­ти­ров­ке спи­ска про­цес­сов. По ниж­ней па­не­ли с под­сказ­ка­ми по го­ря­ чим кла­ви­шам то­же мож­но щел­кать. Са­мая свежая вер­сия htop, 2.0, пред­ла­ га­ет мно­же­ст­во улуч­ше­ний. Те­перь вы мо­ же­те вы­брать про­цесс и на­жать e для про­ смот­ра его пе­ре­мен­ных, а так ­же из­ме­нить всю рас­к лад­к у ре­зуль­та­та htop, на­жав на F2 и пе­рей­д я в тре­буе­мый раз­дел на­строй­ки.

> Вы мо­же­те соз­дать с по­мо­щью htop по­тря­саю­ще­го ви­да центр управ­ле­ния, ис­поль­зуя ми­ни­мум сис­тем­ных ре­сур­сов!

htop те­перь пред­ла­га­ ет псев­до­гра­фи­че­ский то­чеч­ный из­ме­ри­тель. www.linuxformat.ru/subscribe

На­при­мер, в пра­вом либо ле­вом столб­це мож­но до­бав­лять или уда ­лять из­ме­ри­тели, ме­нять их по­ря­док и ото­бра­жать тип. Сей­ час тип ото­б ра ­ж е­н ия гра­ф и­к а снаб­ж ен псев­до­гра­фи­че­­ским то­чеч­ным из­ме­ри­те­ лем, вдох­нов­лен­ным пре­крас­ным сис­тем­ ным из­ме­ри­те­лем в vtop (ко­то­рый мож­но до­б ыть че­р ез $ sudo rpm install -g vtop). И ко­неч­ным пунк­том, ко­то­рый сто­ит упо­ мя­нуть, яв­ля­ет­ся то, что htop кросс-плат­ фор­мен­ный! Те­перь мно­гие поль­зо­ва­те­ли вне Linux смо­г ут уз­нать, как мно­го они по­ те­ря­ли в про­шлом... и за­ду­мать­ся о том, что они про­дол­жа­ют те­рять. Июнь 2016 LXF210  | 101


LXFHotPicks Про­грам­ма для за­ме­ток

FromScratch Вер­сия: 1.0 Сайт: https://fromscratch.rocks

М

ы встре­ча­ем мно­же­с т­во се­те­ вых при­л о­же­н ий, пы­т аю­щ их­ ся ими­ти­ро­вать обыч­ные при­ ло­же­ния ра­бо­че­го сто­ла, однако это все­гда ши­то бе­лы­ми нит­ка­ми. Ко­гда вы на­жи­ма­­ ете на кноп­к у в этих при­ло­же­ни­ях и ощу­ щае­те за­мет­ную за­держ­к у, по­ка стра­ни­ц а гру­зит­ся, вряд ли вы бу­де­те об­ма­ны­вать се­ бя по­сле это­го. В FromScratch вас не толь­ко не об­м а­ нут, но вы еще и запо­лу­чи­те гра­фи­че­­ское при­ло­же­ние, ко­то­рое вы­гля­дит, как ин­с т­ ру­мент ко­манд­ной стро­к и. Прав­д а, FromScratch не получится за­пус­тить в тер­ми­на­ ле в ре­жи­ме ‘init 3’, но в ос­таль­ных ас­пек­тах он ве­ли­ко­ле­пен. FromScratch по­зво­ля­ет вво­дить за­мет­ ки, ко­то­рые мгно­вен­но со­хра­ня­ют­ся, так же, как фай­лы в об­лач­ных офис­ных па­ке­тах. Вы мо­же­те пе­ча­тать в ви­де про­с то­го тек­ ста, но бла­го­да­ря ис­поль­зо­ва­нию шриф­та Fira Code под­дер­жи­ва­ет­ся фор­ма­ти­ро­ва­ние и ав­то­за­ме­на. На­при­мер, --> ав­то­ма­ти­че­­ски пре­вра­ща­ет­ся в стрел­ку, и т. д.

Отличное до­пол­не­ние к From­Scratch — Fira Code, по­сколь­к у в нем имеется мас­са спецсим­во­лов для про­грам­ми­ро­ва­ния (см. https://github.com/tonsky/FiraCode). FromScratch яв­ля­ет со­бой син­тез web-тех­но­ло­ гий: с од­ной сто­ро­ны, он вы­гля­дит, как ин­ ди­ви­д у­а ль­ное ок­но брау­зе­ра безо вся­ких па­не­лей, но с дру­гой сто­ро­ны, на­по­ми­на­ет поч­то­вый кли­ент N1 из про­ек ­та Nylas, с ко­ то­рым у не­го об­щие тех­но­ло­гии, на­при­мер, Electron и React. Мо­жно ныр­нуть в FromScratch глуб­же, на­жав на F12 и ис­сле­дуя скры­тые ме­ню, оп­ ции раз­ра­бот­чи­ка, до­пол­ни­тель­ные кла­ви­ ши бы­с т ­ро­го дос ­т у ­па, и т.  д. При ­ло­же­ние ра­бо­та­ет аналогично web-брау­зеру, на­при­ мер, ко­гда вы ис­поль ­зуе­те Ctrl + r или F5, что­бы об­но­вить вид, или на­жи­мае­те Ctrl++

> Офи­ци­аль­но во FromScratch нет Из­бран­но­го, но на­жав на F12, вы по­па­де­те внутрь ин­ст­ру­мен­тов раз­ра­бот­чи­ка.

Fira Code — от­лич­ное до­пол­не­ние, в нем масса спецсим­во­лов.

или Ctrl+- для уве­ли­че­ния либо умень­ше­ ния мас­шта­ба. FromScratch рас­п ро­с тра­н я­е т­с я в ви­ де ста­т и­ч е­­с ки ском­п и­л и­р о­в ан­н о­г о при­ ло­же­ния для Linux (и дру­г их плат­ф орм). Для Linux есть 32‑ и 64‑бит­н ая вер­с ии, и обе от­л ич­н о ра­б о­т а­ю т в со­в ре­м ен­н ых Linux x86_64. Рас­п а­к уй­т е ска­ч ан­ный ар­ хив и за­пус­ти­те ./FromScratch из ди­рек ­то­ рии application.

Ме­нед­жер за­ме­ток

Notes-up Вер­сия: 0.1 Сайт: http://bit.ly/Notes-Up

Б

оль­шин­с т­во ме­нед ­же­ров за­ме­ток де­лят­ся на две ос­нов­ных ка­те­го­рии: это или очень про­стые жел­тые клея­ щие­ся за­мет­ки, по­доб­ные на­столь­ным вид­ же­там, или они об­ра­зу­ют груп­пу вы­со­ко­ на­с траи­вае­мых рас­ши­рен­ных ре­д ак ­то­ров для сбо­р а, сор­т и­р ов­к и и син­х ро­ни­з а­ц ии за­ме­ток. Notes-up на ­хо­дит­с я где-то ме­ж­ ду ни­ми, и, су­д я по все­му, пред­ла­га­ет ра­ зум­ный и по­нят­ный под ­ход к управ­ле­нию за­мет­ка­ми. Notes-up — ак­к у­рат­ное ми­ни­ма­ли­ст­ское при­л о­ж е­н ие, раз­р а­б о­т ан­н ое в до­п ол­н е­ ние к elementary OS. Оно под ­д ер­ж и­в а­е т не­с коль­ко блок­н о­т ов и объ­е­д и­н я­е т под­ держ­к у Markdown с эле­мен­та­ми ре­дак ­то­ра WYSIWYG [«что видишь, то и получаешь»]. Здесь присутствует па­нель ин­с т­ру­мен­тов с удоб­ны­ми кла­ви­ша­ми бы­ст­ро­го за­пус­ка, что об­лег­ча­ет встав­к у ги­пер­ссы­лок, изо­ бра­же­ний, ко­да или мар­ки­ро­ван­но­го/ну­ме­ ро­ван­но­го спи­ска. Notes-up ра­бо­та­ет в двух ре­жи­мах, и по умол­ча­нию по­ка­зы­ва­ет ок­но 102  |  LXF210 Июнь 2016

ре­д ак ­то­ра, где вы долж­ны де­лать за­мет­ ки. Ес­ли на­жать на кноп­к у View [Про­смотр] в верх­н ем ле­в ом ок­н е, вид пе­р е­к лю­ч ит­ ся, и вы бу­д е­т е ви­д еть фор­м а­т и­р о­в а­н ие за­ме­ток. На­бор до­пол­ни­тель­ных функ­ций у No­ tes-up ми­ни­ма ­лен, од­на­ко их сто­и т взять на за­мет­к у (не удер­жал­ся). Пер­вая — цвет­ ное вы­де­ле­ние тэ­гов, при­ме­ни­мое к раз­ ным блок­но­там. Вто­рая — экс­порт за­ме­ток в PDF, и по­след­няя (но не по зна­чи­мо­сти) — на­строй­ки тем шриф­тов и цве­та. Щелк­нув по знач­к у с шес­те­рен­кой на па­не­ли ин­ст­ру­ мен­тов Notes-up и вы­брав Preferences [Па­ ра­мет­ры], вы мо­же­те из­ме­нить на­строй­ки шриф­та ре­дак­то­ра по умол­ча­нию, а так­же на­стро­ить бо­лее удоб­ную те­му (легко най­ти

> Ис­поль­зуй­те в Notes-up Markdown — это, ве­ро­ят­но, са­мый эле­гант­ный спо­соб.

Ак­ку­рат­ное ми­ни­ма­ ли­ст­ское при­ло­же­ние к elementary OS. www.linuxformat.ru/subscribe

весь­ма кру ­тые пред­ва­ри­тель­ные на­строй­ки в мрач­ных то­нах). Notes-up — про­ект в ста­дии раз­ра­бот­ ки, и ожи­да­ют­ся но­вые функ­ции. При­ло­же­ ние вы­гля­дит весь­ма стиль­но и ис­поль­зу­ет со­вре­мен­ный на­бор ин­ст­ру­мен­тов поль­зо­ ва­тель­ско­го ин­тер­фей­са — GTK3, Vala, libgranite — об­щий для мно­гих при­ло­же­ний в сти­ле elementary OS. По­сколь­к у ди­ст­ри­ бу­тив ос­но­ван на Ubuntu, при­ло­же­ние до­ сту­пно ши­ро­кой ау­ди­то­рии че­рез спе­ци­а ль­ ный PPA (ppa:philip.scott/projects), по­это­му оно хо­ро­шо зара­бо­та­ет с Ubuntu и Mint, как толь­ко вы до­ба­ви­те PPA Elementary daily.


LXFHotPicks Ви­зуа­ли­за­тор ко­мик­сов

MComix Вер­сия: 1.2.1 Сайт: http://bit.ly/MComix

M

Comix — дру­же­люб­ная к поль­ зо­ва­те­лю и на­страи­вае­мая про­ грам­ма про­смот­ра изо­бра ­же­ ний на ос­но­ве Python и GTK. Она соз­д а­на для ра­б о­т ы с ко­м ик­с а­м и (и за­п ад­н ы­м и, и Ман­г а), и под ­дер­ж и­в а­ет ряд фор­ма­тов кон­тей­не­ров (вклю­чая CBR, CBZ, CB7, CBT, LHA и PDF). MComix чи­т а­ет боль­шин­с т­во об­щ их фор­м а­т ов изо­б ра ­же­н ий, а так ­же ар­хи­вы PDF, ZIP, RAR, 7Z и LHA на­пря­мую. Здесь есть пол­но­эк­ран­ный ре­жим и ре­жим раз­в о­р о­т а стра­н иц, и изо­б ра ­же­н ие при­ вя­зы­в а­ет­с я к ши­ри­не ок ­на, к вы­с о­те или к обе­и м. Ес ­л и не уда­е т­с я от ­к рыть кни­г у в под­д ер­ж и­в ае­мом фор­м а­т е, убе­д и­т есь, что у вас ус­та­нов­ле­ны не­об­хо­ди­мые за­ви­ си­мо­с ти. На­при­мер, CBR тре­бу­ет на ­ли­чия unrar, а 7Zip нуж­ны ис­пол­няе­мые 7z, что­бы рас­па­ко­вать кни­ги. MComix так ­ж е под ­д ер­ж и­в а­е т ум­н ую про­крут­к у для бо­лее про­сто­го чте­ния (про­ сто на ­жми­те на по­ло­су про­крут­ки не­сколь­ ко раз, что­бы ее оп­ро­бо­вать) и спе­ци­а ль­ный ре­жим Manga (для ко­мик­сов, на­пи­сан­ных

спра­ва на­ле­во) и мо­жет ста­вить за­к лад­ки и до­бав­лять кни­ги в биб­лио­те­к у. Ин­т ер­ф ейс MComix по­х ож на ин­т ер­ фей­сы мно­г их про­смотр­щ и­ков до­к у­мен­ тов в Linux, та­к их, как хо­ро­шо из­вест­ные Evince и Okular. Ле­вая часть ок­на со­дер­жит вер­ти­каль­ный пе­ре­к лю­ча­тель стра­ниц с яр­ лы­к а­ми для бы­с т­рой на­ви­г а­ц ии по боль­ шим кни­г ам. На верх­ней па­не­ли име­ют­ся кноп­ки для на­ви­га­ции и на­строй­ки раз­ме­ ра стра­ни­ц ы. Обыч­н о MComix по­к а­зы­в а­ ет од­но изо­бра­же­ние за раз. Что­бы чи­тать ко­мик­сы, осо­бен­но в ши­ро­ко­эк­ран­ном ре­ жи­ме, бу­дет удоб­нее ото­бра­жать два изо­ бра ­же­н ия ря­д ом. Та­к им об­р а ­з ом чте­н ие бу­дет бо­лее ес­те­с т­вен­ным, и дву­с тра­нич­ ное изо­бра­же­ние мож­но бу­дет про­смат­ри­ вать, не ре­д ак­ти­руя фай­лы изо­бра­же­ний.

> На­сла­ж­дай­тесь свои­ми лю­би­мы­ми ко­мик­са­ми в MComix.

MComix под­дер­жи­ва­ет ум­ную про­крут­ку для об­лег­че­ния чте­ния.

Пе­ре­ход в дву­стра­нич­ный ре­жим осу­ще­ст­в­ ля­ет­ся на ­ж а­ти­ем на d. Ес­ли не на­с трое­но ина­че, пер­вая стра­ни­ца ар­хи­ва или ди­рек­ то­р ии все­гда бу­д ет по­к а ­з ы­в ать­с я в оди­ ноч­к у (пред­став­ляя со­бой об­лож­к у кни­ги), и стра­ни­цы, чья ши­ри­на пре­вос­хо­дит дли­ ну, то­же бу­д ут по­ка­зы­вать­ся по­оди­ноч­ке. При пе­ре­во­ра­чи­ва­нии стра­ни­цы в дву­стра­ нич­ном ре­жи­ме MComix ав­то­ма­ти­че­­ски пе­ ре­хо­дит на две стра­ни­цы впе­ред или на­зад. Что­бы пе­рей­ти толь­ко на од­ну стра­ни­цу, на­ до при пе­ре­к лю­че­нии стра­ниц удер­жи­вать на­жа­той кла­ви­шу Ctrl.

Ви­зуа­ли­за­тор ло­гов

Logwatch Вер­сия: 7.4.2 Сайт: http://logwatch.sourceforge.net

О

быч­ный поль­зо­ва­тель на­столь­но­ го ПК не особенно рвет­ся ис­кать сис ­т ем­н ые жур­н а ­л ы и изу ­ч ать их. Од­на­ко Linux — ве­ду­щая опе­ра­ци­он­ная сис­те­ма на web-сер­ве­рах, файл-сер­ве­рах и из­люб­лен­ный вы­бор сер­вис-про­в ай­де­ ров и ты­сяч сис­тем­ных ад­ми­ни­ст­ра­то­ров. Да ­же до­маш­ние поль­зо­ва­те­ли ино­гда ра­бо­та­ют на соб­с т­вен­ных ин­ди­ви­д у­а льно ском­п и­л и­р о­в ан­н ых сис­т е­м ах хра­н е­н ия, ло­каль­ных web-сер­ве­рах и мно­гих дру­гих эк­зем­п­ля­р ах про­г рамм, по­с то­ян­но на ­хо­ дя­щих­ся он­лайн. Для пе­рио­ди­че­­ской про­ вер­ки жур­на ­лов впол­не при­ем­ле­мым бу­дет от­крыть тре­буе­мый лог-файл в /var/log/* в сво­е м лю­б и­м ом тек­с то­в ом ре­д ак ­т о­р е. Но ло­гов в Linux очень мно­го, и вы, видимо, за ­хо­т и ­те на­б лю­д ать за ни­ми бо­лее ре­г у­ ляр­но. Для об­лег­че­ния этой за­да­чи име­ет­ся спе­циа ­ли­зи­ро­ван­ный ин­с т­ру­мент под на­ зва­ни­ем Logwatch. Это ин­ди­ви­д у­а льно на­ страи­вае­мая, под­к лю­чае­мая сис­те­ма мо­ни­ то­рин­га жур­на­лов, ко­то­рая про­смат­ри­ва­ет

ло­г и за ука­з ан­ный про­м е­ж у ­т ок вре­м е­ни и де­ла­ет от­чет в об­лас­тях, ко­то­рые вы хо­ ти­те уви­деть, с тре­буе­мой де­т а­ли­за­ци­ей. Logwatch прост в ис­поль ­зо­в а­нии и ра­бо­ та­ет пря­мо из па­ке­та на мно­гих сис­те­мах. Про­стей­ший спо­соб по­лу­чить бы­ст­рые ре­ зуль­та­ты — за­пус­тить про­грам­му с при­ви­ ле­гия­ми root (# logwatch). Logwatch нуж­но не­сколь­ко се­к унд, что­бы со­брать дан­ные и вы­д ать вам ре­зуль­тат пря­мо в тер­ми­на­ ле. Logwatch до­бав­ля­ет­ся к сис­тем­ным за­ да­чам Cron и пе­рио­ди­че­­ски (по умол­ча­нию, раз в день) от­прав­ля­ет вам от­чет по элек­ трон­ной поч­те. Ко­неч­но, что­бы от­че­ты Logwatch бы­ли эф­фек ­тив­ны­ми, нуж­на тон­кая на­строй­ка. Вам на­до оп­ре­де­лить ме­сто­на­ хо­ж ­д е­н ие фай ­л а logwatch.conf, ко­т о­р ый

> На на­шем вин­ таж­ном тер­ми­на­ле IBM 3278 ло­ги яв­но по­хо­ро­ше­ли!

В нем мас­са от­ла­док и за­плат, на­при­мер, под­держ­ка systemd. www.linuxformat.ru/subscribe

мо­жет на­хо­дить­ся в раз­ных мес­тах, в за­ ви­си­мо­сти от ва­ше­го ди­ст­ри­бу­ти­ва Linux, но в ос­нов­ном — в /etc/logwatch/conf или /etc/log.d/logwatch.conf или ином по­доб­ном мес­те. Этот файл со­дер­жит вы­со­ко­уров­не­ вые на­строй­ки для то­го, как и ка­кие имен­ но ло­ги он дол­жен про­ве­рят. Для бо­лее точ­ ной на­строй­ки есть и дру­гие фай­лы CONF, на­при­мер, /etc/log.d/conf/services/sendmail. conf, где мож­но на­стро­ить Sendmail, что­бы по­лу­чать от­че­ты по элек ­трон­ной поч­те. Logwatch 7.4.2 — но­в ый ре­л из по­с ле зна­чи­тель­ной пау­зы. В нем мас­са от­ла­док и за­плат: на­при­мер, поя­ви­лась под­держ­ка systemd. На дан­ный мо­мент вы мо­же­те ис­ поль­зо­вать Logwatch в ка­че­­с т­ве до­пол­ни­ тель­ной ути­ли­ты для journalctl. Июнь 2016 LXF210  | 103


LXFHotPicks HotGames Развлекательные приложения Ар­кад­ная иг­ра

Raincat Вер­сия: 1.1.1.3 Сайт: http://bysusanlin.com/raincat

Ч

то мо­жет быть уми­ли­тель­нее пу­ ши­сто­го ко­те­ноч­ка? Ну разве что пу­ши­с тый ко­т е­но­чек, ко­то­ро­м у необ­ходима по­мощь в пре­одо­ле­нии пре­ пят­с т­вий. В Rain­cat вы по­па­д ае­те в кра­ сиво ил­л ю­с т­р и­р о­в ан­н ую го­л о­в о­л ом­к у, где вам требуется про­вес­ти эту пу­ши­стую пре­лесть че­рез различ­ные вод­ные прегра­ ды и опас­но­сти. Ко­ты тер­петь не мо­г ут мок­нуть, и ес­ли хоть ка­п­ля во­ды по­па­дет на лап­ки ва­ше­ го ко­тен­ка, иг­ра окон­че­на. Есть не­сколь­ко «вод­ных» пре­пят­ст­вий, на­при­мер, дождь, лу­жи и продра­нные по­жар­ные гид­ран­ты, а так ­же пре­пят­ст­вия на­зем­ные: на­при­мер, без ва­шей по­мо­щ и ко­т у не пе­ре­брать­с я че­рез гор­ки или глу­бо­кие ямы. Не­сколько ак­с ес­с уа­р ов спа­с а­ю т ко­т а от вся­че­­с ких бед­с т­вий — скажем, пон­чо или зон­т ик, или бо­лее не­обыч­ные объ­ек ­ты, на­при­мер, пру ­ж ин­ные са­по­г и для пе­ре­пры­г и­ва­ния

че­р ез ямы и прыж ­ко­в ая хо­д у­л я, что­б ы из ямы вы­ско­чить. В Raincat на­до раз­мес­тить все необхо­ димые пред­ме­ты в оп­ти­маль­ных — с ва­ шей точ­ки зре­ния — позициях на кар­те, и про­сто на­жать на кноп­к у Go, пре­вра­тив иг­ру в по­ша­го­вую стра­те­гию (без во­ен­ных дей­с т ­вий). Вы мо­же­т е по­м ес ­т ить пред­ мет пря­мо на ко­та, что­бы тот его на­дел, или ос­та­вить пред­мет на пу­ти ко­та — дос­ тиг­нув это­го объ­ек­та, кот сам его под­бе­ рет. Неко­то­рые пред­ме­т ы име­ют пра­ви­ ла поль­зо­ва­ния: на­при­мер, хо­д у­лю на­до под­су­нуть в воз­ду­хе там, где, как вам ка­ жет­ся, кот дол­жен упасть, а де­ре­вян­ная

> Хво­стик не по­мес­тил­ся под пон­чо, но наш бра­вый пред­ста­ви­тель ко­шачь­их пле­вать на это хо­тел!

Ко­ты тер­петь не мо­ гут во­ду. Спа­са­ют пон­чо или зон­тик.

проб­ка по­мо­га­ет пе­ре­плыть че­рез лу ­жи, но так­же и из­ме­нить мар­шрут ко­та. Raincat тре­бу­ет ло­ги­ки, и ста­нет от­лич­ ным то­ва­ри­щем для юных поль­зо­ва­те­лей Linux. Иг­ра на­пи­са­на на Haskell и пред­ла­ га­ет про­стой в ис­поль­зо­ва­нии скрипт ком­ пи­ля­ции и пре­ком­пи­ли­ро­ван­ные би­нар­ ни­ки для Ubuntu, openSUSE и не­ко­то­рых дру­гих ди­ст­ри­бу­ти­вов.

Го­ло­во­лом­ка

Pop, Pop, Win! Вер­сия: Git Сайт: http://bit.ly/PopPopWinGame

В

сё боль­ш е игр раз­р а­б а­т ы­в а­е т­с я для запуска пря­мо в брау­зе­ре, од­ на­к о это не все­гда хо­р о­ш о для поль­зо­ва­те­ля, ес­ли он мо­жет нор­маль­но за­п ус­т ить встро­ен­ные иг­ры Linux, а вот тя­же­ло­вес­ная брау­зер­ная иг­ра тор­мо­зит. Не все­гда лег ­ко точ­н о оп­р е­д е ­л ить, где имен­но в по­доб­ном слу­чае кро­ет­ся про­ бле­ма: то ли это встро­ен­ный гра­фи­че­­ский чип­с ет с низ­кой про­и з­во­д и­т ель­но­с тью, то ли са­ма иг­ра пло­хо оп­т и­ми­зи­ро­ва­на. Иг­ра Pop, Pop and Win! де­мон­ст­ри­ру­ет воз­ мож­но­сти Dart — мас­шта­би­руе­мо­го язы­ ка про­грам­ми­ро­ва­ния с от­кры­тым ко­дом, на­деж­ны­ми биб­лио­те­к а­ми и сре­дой ис­ пол­не­ния для соз­да­ния се­те­вых, сер­вер­ ных и мо­биль­ных при­ло­же­ний. Dar t пред­н а­з на­ч ен д ля раз­р а­б от­ ки мо­биль­ных игр и мо­жет при­ме­нять­ся для раз­ных ти­пов бла­го­да­ря сво­ему пре­ крас­но­м у рас­ши­ре­нию StageXL. Попро­ сту го­во­ря, он по­мо­га­ет по­лу­чить бо­га­тый

104  |  LXF210 Июнь 2016

муль­ти­ме­диа-кон­тент и мно­го­цвет­ные иг­ ры, и его рек­ла­ми­ру­ют как под­мо­г у раз­ра­ бот­чи­кам, же­лаю­щим пе­рей­ти с ус­та­рев­ ше­го Adobe Flash на HTML5. Pop, Pop and Win! — клон Minesweeper [Са­пер]. Пе­ред ва­ми — по­ле с го­лу­бы­ ми воз­душ­ны­ми ша­рика­ми, и при щелч­ке по ша­ри­к у из не­го вы­ле­та­ет дро­тик. Ко­гда ша­рик ло­па­ет­с я, его клет­к а по­к а­зы­в а­ет ко­ли­че­­ст­во бомб во­круг на пло­ща­ди 3 × 3 клет­ки. Вы мо­же­те ком­би­ни­ро­вать чис­ла из со­сед­них кле­ток, вы­яс­няя, где бом­ба, что­бы мож­но бы­ло спо­кой­но про­ты­кать дру­гие ша­ри­ки. Точ­но так же это реа­ли­ зо­ва­но в Minesweeper; вы мо­же­те щелк­ нуть пра­вой кноп­кой по ша­ри­к у, что­бы его

> Чпок, чпок, чпок, БА-БАХ!

Клет­ка по­ка­зы­ва­ет ко­ли­че­ст­во бомб на пло­ща­ди 3 × 3 клет­ки. www.linuxformat.ru/subscribe

«за­м о­р о­зить» и слу­ч ай­н о не про­т кнуть не тот ша­рик. Ес­ли вы ошиб­лись и на­жали на бом­бу, то всё по­ле весь­ма зрелищно вз­рывает­ся. В об­щем и це ­лом, ка­че­­с т ­во гра­фи­к и и зву­ка в иг­ре луч­ше, чем в сред­ней лю­би­ тель­ской иг­ре на GitHub, и очень не­пло­хое для та­кой от­но­си­тель­но про­стой иг­ры, как клон Minesweeper. Иг­ру мож­но ском­пи­ли­ ро­вать для встро­ен­ной ра­бо­ты, но она на­ мно­го бы­ст­рее при ис­поль­зо­ва­нии в лю­ бом со­вре­мен­ном web-брау­зе­ре.


LXFHotPicks Те­ле­фон­ный ме­нед­жер

Wammu Вер­сия: 0.40 Сайт: http://wammu.eu

Д

о эпо­хи Android и во­об­ще смарт­фо­ нов об­ще­при­ня­ты бы­ли мо­биль­ные те­л е­ф о­н ы с кро­ш еч­н ой фи­з и­ч е­ ­ской кла­виа­т у­рой и со­от­вет­с т­вен­но кро­ шеч­н ой опе­р а­ц и­о н­н ой сис­т е­м ой внут­р и. На­вер­ное, не­за­чем объ­яс­нять даль­ше, осо­ бен­но ес­ли у вас всё еще есть та­кой те­ле­ фон в ка­че­­с т­ве за­пас­но­го ва­ри­ан­та. Син­ хро­ни­за­ция жур­на­ла вы­зо­вов, те­ле­фон­но­го спра­воч­ни­ка, со­об­ще­ний и дан­ных поль­зо­ ва­те­ля с сис­те­мой Linux бы­ва­ет про­бле­мой, по­сколь­к у офи­ци­а ль­ное ПО Linux от про­из­ во­ди­те­лей те­ле­фо­нов встре­ча­ет­ся весь­ма ред­ко, и вот уже не­сколь­ко лет этот про­бел вос­пол­ня­е т Wammu. Это не про­с то со­от­ вет­с т­вую­щее ПО Linux, но и оп­ре­де­лен­но са­мое пол­но­функ­цио­наль­ное. Wammu вклю­чен во мно­гие ди­с т­ри­бу­ ти­вы Linux, и по­сле его ус­та­нов­ки и за­пус­ка вы уви­ди­те мас­те­ра со­еди­не­ния. Ко­гда вас спро­сят о ти­пе со­еди­не­ния, вы­бе­ри­те тот, ко­то­рым вы смо­же­те поль­зо­вать­ся, на­при­ мер, про­вод­ное, ин­фра­крас­ное или бес­про­ вод­ное (че­рез Bluetooth) и за­тем на­жми­те

на Next. Мас­тер мо­жет за­дать вам еще па­ру во­про­сов о со­еди­не­нии, но че­рез ми­ну ­т удру­г ую все бу­дет го­то­во. Под­дер­жи­ва­ют­ся ты­ся­чи те­ле­фо­нов, и ско­рее все­го ва­ша мо­ дель есть в бе­лом спи­ске. В глав­ном ок­не Wammu вы­бе­ри­те ме­ню Phone > Connect и убе­ди­тесь, что со­еди­не­ ние ус­та­нов­ле­но. По­сле это­го мож­но ска­чи­ вать дан­ные с те­ле­фо­на, в том чис­ле кон­ так­ты (с SIM-кар­ты или с са­мо­го те­ле­фо­на, или с обо­их), жур­нал вы­зо­вов, спи­сок за­ дач и ка­лен­д арь. Все эти оп­ции дос­т уп­ны в ме­ню Retrieve. Что бы вы ни де­ла­ли, в са­ мом те­ле­фоне ни­че­го не ме­ня­ет­ся, так что ваши манипуляции со­вер­шенно безо­пас­ны для данных. Ле­в ый раз ­д ел ок ­н а Wammu по­к а­з ы­ ва­ет де­ре­во ка­те­го­рий, в котором можно

> Ос­нов­ная функ­ция Wammu — ко­пи­ро­ва­ние и вос­ста­нов­ле­ние, но он так­же уп­ро­ща­ет до­бав­ле­ние или уда­ле­ние дан­ных.

Под­дер­жи­ва­ют­ся ты­ ся­чи те­ле­фо­нов, и ваш есть в бе­лом спи­ске.

пе­ремещаться из од­но­го раз­де­ла дан­ных в дру­гой. Мож­но до­бав­лять, ре­дак ­ти­ро­вать или уда­лять пунк­т ы и со­д ер­ж а­ние, и это гораз­до про­ще, чем при ра­бо­те с кноп­ка­ми те­ле­фона и кро­шеч­ным эк­ра­ном. Од­на­ко ос­нов­ной функ­ци­ей Wammu яв­ ля­ет­ся спо­соб­ность ко­пи­ро­вать и вос­с та­ нав­л и­в ать ска­ч ан­н ые дан­н ые. Для это­г о следует за­гля­нуть в ме­ню Backups в по­ис­ке оп­ц ий им­п ор­т а/экс­п ор­т а и со­х ра­н е­н ия. Вдо­ба­вок, ес­ли вы хо­ти­те пе­ре­дать дан­ные с од­но­го те­ле­фо­на на дру­гой, Wammu — от­ лич­ный спо­соб сде­лать это.

Ин­ст­ру­мент вво­да

Cellwriter Вер­сия: 1.3.5 Сайт: http://risujin.org/cellwriter

L

inux от­лич­но справ­ля­ет­ся с за­да­чей под ­д ерж­к и циф­р о­в ых уст­р ойств вво­д а, та­ких, как план­ше­ты Wacom и по­доб­ные им девайсы. Про­стое ри­со­ва­ ние ра­б о­т а­е т от­лич­но, но рас­по­зна­в а­ние по­чер­ка в Linux не бы­ло реа­ли­зо­ва­но до по­ яв­ле­ния CellWriter. И хо­тя эта функ­ция яв­ ля­ет­ся ни­ше­вой, слу­ча­ев, ко­гда при­го­ди­ лось бы рас­п о­з на­в а­ние по­ч ер­к а, вполне хва­т а­ет — на­при­мер, для план­ше­т а; уст­ ройств в тор­го­вых точ­ках; что­бы обой­тись без сло­ман­ной кла­виа­т у­ры; для до­маш­ней кал­ли­гра­фии и все­го ос­таль­но­го, свя­зан­но­ го с кон­вер­ти­ро­ва­ни­ем на­пи­сан­ных от ру­ки букв в ре­дак­ти­руе­мый текст. CellWriter — это па­н ель вво­д а ру­к о­ пис­н о­г о тек­с та, где вы впи­с ы­в ае­т е сим­ во­л ы в клет­к и, а при ­л о­ж е­н ие стара­е т­с я рас­по­знать ваш по­черк на уров­не сим­во­ лов. При пер­вом за­пус­ке CellWriter вы вво­ дите тре­ни­ро­воч­ный ре­жим с таб­ли­цей ла­ тин­с ких сим­во­лов по умол­ча­нию. В этом ре­жи­ме вас про­сят вво­дить ка­ж ­дый сим­вол

так, как вы обыч­но его пи­ше­те. Един­ст­вен­ ным ог­ра­ни­че­ни­ем яв­ля­ет­ся то, что сим­вол требуется ри­со­вать, не от­ры­вая мы­ши/пе­ ра или паль­ца. Обу­че­ние CellWriter всем бу­к­вам, циф­ рам и зна­кам пре­пи­на­ния тре­бу­ет вре­ме­ни, но это де­ла­ет­ся толь­ко один раз. За­кон­чив, щелк­ни­те по кноп­ке Train (что­бы ее от­жать) и про­дол­жай­те пи­с ать в спе­ци­а ль­ной об­ лас­ти на пла­ваю­щей па­не­ли. Ок­но CellWriter все­гда ос­та­ет­ся по­верх дру­гих окон, но по­ зво­ля­ет пе­ре­д а­вать им ак ­тив­ность. Та­ким об­ра­зом, на­при­мер, вы мо­же­те вве­сти ру­ко­ пис­ный текст в LibreOffice Writer или лю­бое дру­гое при­ло­же­ние. Пи­ши­те ка ­ж ­дый сим­ вол в па­не­ли и про­ве­ряй­те, пра­виль­но ли его рас­п о­з нает CellWriter. За раз мож­н о

> Рас­по­зна­ва­ние ру­ко­пис­но­го тек­ста для Linux, ко­то­рое ра­бо­та­ет.

Обу­че­ние CellWriter бу­ к­вам тре­бу­ет вре­ме­ни, но де­ла­ет­ся один раз. www.linuxformat.ru/subscribe

на­пи­с ать до вось­ми сим­во­л ов. По на ­ж а­ тию Enter на па­не­ли вво­ди­мый ва­ми текст от­пра­вит­ся в ак ­тив­ное на дан­ный мо­мент при­л о­же­ние, как ес­ли бы он был вве­д ен с кла­виа­т у­ры. CellWriter мо­жет де­лать мно­гое, на­при­ мер, обу­чить­ся ва­ше­му сек­рет­но­му ру­ко­ пис­но­му ко­д у. В це­лом мы со­ч ли, что ал­ го­ритм рас­по­зна­ва­ния ра­бо­та­ет до­воль­но бы­ст­ро и де­мон­ст­ри­ру­ет не­пло­хие ре­зуль­ та­ты, не­взи­рая даже на урод­ли­вость на­ше­ го по­чер­ка. | Июнь 2016 LXF210  | 105


На дис­ке Ди­ст­ри­бу­ти­вы, при­ло­же­ния, иг­ры, кни­ги и вся­кое-раз­ное...

Луч­шее из Ин­тер­не­та, упа­ко­ван­ное в 8 ГБ ка­че­ст­вен­но­го DVD.

Ultimate Ubuntu 15.10

Па­кет 13 ра­бо­чих сто­лов Ди­ст­ри­бу­ти­вы

Х

о­ро­шо иметь вы­бор, прав­да? Я все­гда так думал, и са­ма при­ ро­да от­кры­то­го ко­да оз­на­ча­ет, что вы­бор по­сто­ян­но рас­тет. От­ветв­ля­ ют­ся но­вые про­ек­ты для ин­ди­ви­ду­аль­ ных по­треб­но­стей, хо­тя ино­гда за­но­во изо­бре­та­ет­ся ве­ло­си­пед. Вы­бор ди­ст­ ри­бу­ти­ва или сре­ды ра­бо­че­го сто­ла не­ред­ко де­ла­ет­ся за вас (ес­ли толь­ко у вас не что-то вро­де Gentoo или Arch), по­это­му по умол­ча­нию у вас есть од­на про­грам­ма тер­ми­на­ла, один брау­зер и один офис­ный па­кет. Есть и дру­гие оп­ции, но вам при­дет­ся их ус­та­но­вить, а для это­го на­до о них знать, по­это­му очень мно­гие про­сто при­дер­жи­ва­ют­ся то­го, что пред­ла­га­ет их ди­ст­ри­бу­тив. Раз­но­об­ра­зие вы­бо­ра ста­но­вит­ся оче­вид­ным при ус­та­нов­ке не­сколь­ких сред ра­бо­че­го сто­ла, а DVD это­го ме­ ся­ца, на ко­то­ром аж 13 ра­бо­чих сто­ лов, до­во­дит эту идею вы­бо­ра до край­ ней сте­пе­ни. У вас вдруг по­яв­ля­ет­ся бо­лее по­лу­дю­жи­ны про­грамм тер­ми­ на­ла, и по­доб­ная рас­те­рян­ность по по­ во­ду вы­бо­ра под­сте­ре­га­ет вас и с ос­ таль­ным. Глав­ное ме­ню или про­грам­ма за­пус­ка по­ка­жет ку­да боль­ший вы­бор, чем обыч­но. Вос­поль­зуй­тесь им по мак­ си­му­му — ведь что­бы по­про­бо­вать все эти оп­ции, да­же не на­до их ус­та­ нав­ли­вать на же­ст­кий диск — и в ито­ге вы­ бе­ри­те ту, ко­то­рая вам дей­ст­ви­тель­но по­нра­вит­ся.

»  Важ­но

ВНИМАНИЕ! Пор­че­ные дис­ки В ма ­ло­ве­ро­ят­ном слу­чае ка­кого-то де­фек­ та ва­ше­го LXFDVD об­ра­щай­тесь, по­жа­луй­ ста, по ад­ресу disks@linuxformat.ru или те­ ле­фо­ну +7 (812) 309‑0686.

Ко­гда мы со­б и­р а ­л ись на этот ме­с яц соз ­д ать чу­д о­ вищ­ный ре­микс ра­бо­чих сто­лов, в со­про­во­ж ­де­ние на­ ше­му глав­но­му ма­те­риа ­лу, я по­ла­гал, что у нас бу­дет во­семь — ну, мо­жет, де­сять ра­бо­чих сто­лов в од­ном live-ди­ст­ри­бу­ти­ве. А в ито­ге мы умуд­ри­лись втис­нуть в один ди­ст­ри­бу­тив 13 (три­на­дцать!) ра­бо­чих сто­лов. Что­бы об­лег­чить пе­ре­к лю­че­ние, мы вклю­чи­ли от­ дель­ный пункт в ме­ню за­груз­ки для ка­ж ­до­го ра­бо­че­ го сто­ла, и вам на­до про­кру­тить вниз, что­бы уви­деть их все. Мож­но при­ме­нить и дру­гой ме­тод пе­ре­к лю­че­ ния — вый­ди­те, вы­бе­ри­те дру­гой ра­бо­чий стол и сно­ва вой­ди­те; но здесь есть па­ра про­блем. Во-пер­вых, ме­ ню сес­сии в ме­нед­же­ре дис­плея не пре­д у­смат­ри­ва­ло та­ко­го ко­ли­че­­ст­ва пунк­тов, по­это­му на эк­ра­не не поя­ вит­ся вся ин­фор­ма­ция (ес­ли толь­ко эк­ран у вас не ог­ ром­ный). Еще од­на по­тен­ци­а ль­ная про­бле­ма в том, что ка­ж ­дый ра­бо­чий стол сам всё на­с траи­ва­ет под се­бя, и ес­ли вый­ти и вой­ти уже в дру­гой, мо­г ут воз­ни­кать мел­кие кон­флик­ты, то­гда как чис­тая пе­ре­за­груз­ка для пе­ре­к лю­че­ния ис­к лю­ча­ет ве­ро­ят­ность их по­яв­ле­ния. Ес­ли вы хо­ти­те сде­лать всё имен­но так, вой­ди­те как поль­зо­ва­тель ubuntu с пус­тым па­ро­лем. Вот пол­ный спи­с ок ра­б о­чих сто­лов: Gnome, KDE Plasma, Unity, Cinnamon, Xfce, LXDE, Mate, Enlightenment, Gnome Classic, LXQt, OpenBox, Awesome и i3. Ре­ микс не снаб­жен оп­ци­ей ус­та­нов­ки: вы вряд ли за­хо­ ти ­те иметь все три­на ­дцать на сво­ем же­с т ­ком дис­ке. Ре­микс ос­но­ван на Ubuntu 15.10, ко­то­рый мож­но ус­та­ но­вить с DVD и за­тем до­ба­вить лю­бой ра­бо­чий стол, ка­кой за­хо­ти­те. Или вы мо­же­те сде­лать это с лю­бым

> Мно­го­ва­то ра­бо­чих сто­лов... ди­ст­ри­бу ­ти­вом, ко­то­рый в дан­ный мо­мент ис­поль­зу­ е­те. Нам при­шлось пой­ти на ком­про­мисс, что­бы вме­ стить столь­ко ра­бо­чих сто­лов на DVD, и он за­к лю­чал­ся в сжа­тии че­рез XZ при соз­да­нии для DVD об­раза фай­ ло­вой сис­те­мы. Эти об­ра­зы обыч­но ис­поль­зу­ют бо­лее бы­ст­рую GZIP, но XZ да­ет боль­шее сжа­тие, что по­зво­ли­ ло нам втис­нуть на диск до­пол­ни­тель­ные ра­бо­чие сто­ лы. Не­дос­та­ток здесь в том, что XZ мед ­лен­нее рас­па­ ко­вы­ва­ет­ся, так что вы, ве­ро­ят­но, уви­ди­те, что ра­бо­чие сто­лы live за­гру ­жа­ют­ся не­мно­го мед ­лен­нее. Это осо­ бен­но за­мет­но, ес­ли вы за­гру­жае­те их с USB-но­си­те­ля; в ином слу­чае ско­рость рас­па­ко­вы­ва­ния бу­дет все же боль­ше, чем ваш оп­ти­че­­ский диск счи­ты­ва­ет дан­ные. Ди­с т­ри­бу ­тив 64‑бит­ный; бо­лее тя­же­лые ра­бо­чие сто­лы не слиш­ком ла­дят с де­ся­ти­лет­ней дав­но­сти обо­ ру­до­ва­ни­ем с ог­ра­ни­чен­ной па­мя­тью.


юнь 2016

Сборка Ubuntu

ЭКСКЛЮЗИВ

64­битный

» 13 рабочих столов вам на пробу! » Новейшее ядро 4.2 » Богатый комплект приложений

Arch Bang

Лучший дистрибутив для слабых машин! Окончание на обороте »

Window Maker 32­битный

Интерфейс NeXTSTEP, работающий в Debian

32­битный

LIVE­ДИСК: ГОТОВ К РАБОТЕ ВСЕ НЕОБХОДИМОЕ ДЛЯ СТАРТА В LINUX

Но­ви­чок в Linux? Нач­ни­те отсюда! »»Что та­кое Linux? Как его ус­та­но­вить? »»Есть ли в нем эк­ви­ва­лент MS Office? »»За­чем нуж­на ко­манд­ная стро­ка? »»Как ус­та­нав­ли­вать про­грам­мы? От­ве­ты приводятся в Index.html на дис­ке.

Nostalgia OS

Window Maker Live 0.95.7‑3 Это до­воль­но-таки не­по­хо­ж ий на ос­таль­ ные ме­нед­жер окон, ко­то­рый вы­гля­дит так, слов­но его дос­т а ­ли из кап­с у­лы вре­ме­ни. Од­на­ко в нем есть не­сколь­ко ин­те­рес­ных функ­ций, и он очень лег­ко­вес­ный. Вот по­ че­му мы вклю­чи­ли 32‑бит­ную вер­сию, и это хо­ро­ший вы­бор для ста­рых, да­же древ­них ма­шин. Об­ра­ти­те вни­ма­ние, что вер­сия live хо­ро­шо ра­бо­та­ет при за­груз­ке пря­мо с DVD, но вы не мо­же­те его ус­та­но­вить та­ким об­ра­ зом. Для это­го вам на­до ско­пи­ро­вать ISOоб­раз из ди­рек ­то­рии WMlive DVD на DVD-R или на­ко­пи­тель USB.

И еще! Сис­тем­ные ин­ст­ру­мен­ты

Глав­ное

Checkinstall Ус­та­нов­ка tar-ар­хи­ва с по­мо­ щью ме­нед ­же­ра па­ке­тов. GNU Core Utils Ос­нов­ные ути­ли­ты, обя­зан­ ные присутствовать в ка ­ж ­дой опе­ра­ци­он­ ной сис­те­ме. Hardinfo Ин­ст­ру­мент тес­ти­ро­ва­ния сис­те­мы. Kernel Ис­ход­ный код са­мо­го по­след­не­го ста­биль­но­го ре­ли­за яд­ра. Memtest86+ Про­верь­те ОЗУ на пред­мет сбо­ев. Plop Про­стой ме­нед­жер за­груз­ки для за­ пус­ка ОС с CD, DVD и USB.

> Window Maker пред­ла­га­ет до­воль­но не­стан­дарт­ный под­ход и внеш­ний вид, но его оп­ре­де­лен­но сто­ит по­про­бо­вать.

RaWrite Соз­да­вай­те за­гру­зоч­ные дис­ке­ты в MS-DOS в Windows. SBM Не­за­ви­си­мый от ОС ме­нед­жер за­груз­ ки с не­слож­ным ин­тер­фей­сом. WvDial Со­еди­няй­тесь с Ин­тер­не­том че­рез те­ле­фон­ный мо­дем.

Лег­ко­вес­ный Arch

ArchBang 2016.03 Не­ко­то­рые из вас, воз­мож­но, пом­нят CrunchBang Linux, очень лег­ко­вес­ный ди­ст­ри­бу ­тив, ко­то­рый был ос­но­ван на Debian. Раз­ра­бот­ка CrunchBang пре­кра­ти­лась в на­ча­ ле 2015 г., и поя­ви­лись не­ко­то­рые ди­ст­ри­бу­ти­вы, про­ дол­жив­шие его мис­сию. Од­ним из них стал ArchBang, ос­но­ван­ный — ес­те­ст­вен­но — на Arch Linux. ArchBang ис­поль­зу­ет тот же ме­нед­жер окон OpenBox, что и CrunchBang. Это ис­к лю­чи­тель­но лег­ко­вес­ ная и бы­ст­рая сис­те­ма, иде­а ль­ная для тех, кто желает

Чте­ние

Книж­ная пол­ка

ра­бо­тать в Linux на ста­ром обо­ру­до­ва­нии, или тех, кто намерен ис­поль­зо­вать но­вое обо­ру­до­ва­ние по мак­си­ му­му, вме­сто то­го, что­бы тра­тить ре­сур­сы на внеш­ние кра­со­ты (как счи­та­ют не­ко­то­рые). ArchBang име­ет про­грам­му ус­та­нов­ки, но рас­счи­ ты­ва­ет, что вы уже раз­би­ли диск на раз­де­лы пе­ред его за­пус­ком. Ра­бо­тая с ArchBang, вы мо­же­те сде­лать это с по­мо­щью fdisk, но там нет гра­фи­че­­ско­­го ин­ст­ру­мен­та раз­бие­ния дис­ка на раз­де­лы (хо­тя ни­что не ме­ша­ет вам раз­бить диск на раз­де­лы в дру­ гом ди­ст­ри­бу­ти­ве). За­тем на­ до смон ­т и­ро­в ать в /mnt раз­ дел, на ко­то­рый вы намерены сде­лать ус­та­нов­ку, и за­пус­тить ин­стал­лятор, ко­то­рый ис­поль­ зу­е т тек­с то­вые ме­ню, что­бы про­вес­ти вас по все­му про­цес­ су. Это, ко­неч­но, не то, что на­ ве­ди-и-щелк­ни, за­то гораздо познавательнее. |

> Бы­ст­рый, лег­ко­вес­ный и при­вле­ка­тель­ный — ArchBang яв­ля­ет­ся от­лич­ным вы­бо­ром для сис­тем со ста­ рым обо­ру­до­ва­ни­ем.

Рас­ши­рен­ное ру­ко­во­дство по скрип­там Bash Изу­чи­те на­пи­са­ние скрип­тов еще луч­ше. Ру­ко­во­дство Bash для на­чи­наю­щих Ос­ваи­ вай­те на­пи­са­ние скрип­тов Bash. Ру­ко­во­дство по соз­да­нию скрип­тов Bourne Shell На­чи­най­те ос­ваи­вать скрип­ты обо­лоч­ки. The Cathedral and the Bazaar [Со­бор и Ба­ зар] Клас­си­че­­ский текст Эри­ка С. Рей­ мон­да [Eric S Raymond], объ­яс­няю­щий пре­иму­ще­ст­ва от­кры­той раз­ра­бот­ки. Спра­воч­ник ад­ми­ни­ст­ра­то­ра Debian Ба­зо­вое ру­ко­во­дство для сис­тем­ных ад­ми­ни­ст­ра­то­ров. Вве­де­ние в Linux Удоб­ное ру­ко­во­дство со мно­же­ст­вом под­ска­зок для на­чи­наю­ щих поль­зо­ва­те­лей Linux. Сло­варь Linux Linux от А до Я. Linux Kernel in a Nutshell [Яд­ро Linux в Двух Сло­вах] Вве­де­ние в яд­ро, на­пи­сан­ное ве­ли­ким ма­ги­ст­ром яд­ра Гре­гом КроаХарт­ма­ном [Greg Kroah-Hartman]. Ру­ко­во­дство сис­тем­но­го ад­ми­ ни­ст­ра­то­ра Linux Полностью кон­тро­ ли­руй­те вверенную вам сис­те­му. Об­зор ин­ст­ру­мен­тов Исчерпывающий об­зор ин­ст­ру­мен­тов GNU.


Пропустили номер? »»

Закажите его через сайт www.linuxformat.ru в «ГНУ/Линукс­центре»! Журналы доставляются и в печатной, и в электронной форме, так что получение нужного вам выпуска LXF может занять всего пару минут с момента открытия браузера!

Прямо сейчас для заказа доступны следующие номера: 250 руб.

250 руб.

250 руб.

LXF209

LXF208

LXF207

Май 2016

Апрель 2016

Март 2016

» Вездесущий Linux Назовите, где его нет! » Утопающим на заметку Дело в спасательных дисках » Ни дня без блога Сайт на MongoDB » У Малины именины Raspberry Pi — 4 года!

» Разоблачаем хакеров Наладить оборону » Кодируем видео Смотреть всё, смотреть везде » Дистрибутивов много не бывает Мультизагрузка » Что я знаю о системе Анализ среды

» Разбегаемся из Окон Прощай, Windows! » Резервное копирование Чтобы не было беды » Говорят художники Свобод­ ным искусствам — свободные инструменты » Нас хранит богиня Кали Тесты на вторжение

LXFDVD: Arch для Raspberry Pi, Debian, OpenELEC,

LXFDVD: Bodhi, Fedora Security, GParted, Kali Light,

LXFDVD: Linux Mint, openSUSE, Clonezilla, ROSA,

Пе­чат­ная вер­сия: shop.linuxformat.ru/lxf_209/ PDF-версия: shop.linuxformat.ru/elxf_209/

Пе­чат­ная вер­сия: shop.linuxformat.ru/lxf_208/ PDF-версия: shop.linuxformat.ru/elxf_208/

Пе­чат­ная вер­сия: shop.linuxformat.ru/lxf_207/ PDF-версия: shop.linuxformat.ru/elxf_207/

openSUSE Leap, Rescatux, Ubuntu для планшетов, 10 книг о Linux, горячие новинки и прочее...

LXLE, Manjaro, Robolinux, 10 книг о Linux, горячие но­ винки и прочее...

250 руб.

Sabayon, Tiny Core, 10 книг о Linux, горячие новинки и прочее...

250 руб.

250 руб.

LXF205/206

LXF204

LXF203

Февраль 2016

Январь 2016

Декабрь 2015

» Умывальников начальник Управляем умным домом » Видеоплейеры Лучше семь раз увидеть » Raspberry Pi Zero Компьютер за 5 долларов! » Организация данных Диски и как с ними бороться

» Потоки вещания Домаш­ ние медиа-центры » Быть в теме Синхрони­ зируем свои девайсы » Кино и Linux Свободная 3D-графика в Голливуде » Печатаем и сканируем Подружим Linux с периферией

» 200 полезных советов Ради праздника! » Не Linux’ом единым Альтернативы есть » Откуда берутся пакеты Фермы по сборке » Немного ностальгии Предадимся воспоминаниям

LXFDVD: Fedora, Korora, Kubuntu, Tails, Ubuntu, 10 книг

LXFDVD: Kodibuntu, OpenELEC, openSUSE, OSMC,

LXFDVD: Fedora 22, Peppermint OS, Q4OS, Ubuntu, Linux

Пе­чат­ная вер­сия: shop.linuxformat.ru/lxf_205-206/ PDF-версия: shop.linuxformat.ru/elxf_205-206/

Пе­чат­ная вер­сия: shop.linuxformat.ru/lxf_204/ PDF-версия: shop.linuxformat.ru/elxf_204/

Пе­чат­ная вер­сия: shop.linuxformat.ru/lxf_203/ PDF-версия: shop.linuxformat.ru/elxf_203/

о Linux, горячие новинки и прочее...

Ubuntu 15.04, Q4OS,10 книг о Linux, горячие новин­ ки и прочее...

Lite, Sabayon, Tails, IPFire, Sparky, 11 книг о Linux, горя­ чие новинки и прочее...

Подпишитесь на печатную версию журнала через www.linuxformat.ru/subscribe или www.linuxcenter.ru, и получите электронную версию в подарок! На сайте shop.linuxformat.ru вы также сможете приобрести предыдущие выпуски LXF. Телефоны отдела подписки » Санкт-Петербург: (812) 309-0686 » Москва: (499) 271-4954

Linux Format ВКон­так­те: vk.com/linuxform Всту­пай­те в на­шу груп­пу!


DVD

Информация о диске

HOTPICKS

Cellwriter FromScratch Htop LibreOffice Logwatch MComix Notes­up Pop, Pop, Win! Raincat Retroshare Wammu

УЧЕБНИКИ

Документация Окончание на обороте »

На диске вы сможете найти всю необходимую инфор­ мацию о том, как устанавливать и использовать некоторые программы. Пожалуйста, не забывайте, что большинство программ поставляются вместе со своей документацией, поэтому дополнительные материалы и файлы находятся в соответствующих директориях.

DVD‑приложение к журналу Linux Format № 6 (210). Июнь 2016

ДИСТРИБУТИВЫ

R2P10 Rust Swift Pygame

Мы стараемся включать как можно больше раз­ личных типов установочных пакетов: RPM, Deb или любых других. Просим вас принять во внимание, что мы ограничены свободным пространством и доступ­ ными двоичными выпусками программ. По возможно­ сти, мы будем включать исходные тексты для любого пакета, чтобы вы могли собрать его самостоятельно.

Содержание

Ultimate Desktop Remix (64­битный) c: Gnome KDE Plasma Unity Cinnamon Xfce LXDE Mate Enlightenment Gnome Classic LXQt Openbox Awesome i3 ArchBang Linux 2016.03 (32­ битный) KDE neon User Edition 5.6 (64­битный) ReactOS 0.4.0 (32­ битный)

ПОМОЩЬ

Форматы пакетов

Сторона 1

СРАВНЕНИЕ

Руководство новичка Руководства Ответы ЧаВо (FAQ)

о

льн Часто случается, что новые про­ Внимате это е т и т ч граммы зависят от других про­ про как , м е т д е граммных продуктов, которые пер ьзовать л о исп могут не входить в текущую версию LXFDVD! вашего дистрибутива Linux. Мы стараемся предоставить вам как можно больше важных вспомогательных файлов. В большин­стве случаев, последние версии библиотек и другие пакеты мы включаем в каталог «Essentials [Главное]» на прилагаемом диске. Поэ­ тому, если в вашей системе возникли проблемы с зависимостями, первым делом следует заглянуть именно туда.

Редакторы для совместной работы Etherpad Lite Firepad Gobby Hackpad OwnCloud Documents

Что-то потеряли?

Что это за файлы?

ЭКСКЛЮЗИВ

www.linuxformat.ru/subscribe

64­битный

32­битный

Window Maker

Интерфейс NeXTSTEP, работающий в Debian

Это маловероятно, но если все же прилагаемый к журналу диск поврежден, пожалуйста, свяжитесь с нашей службой поддержки по электронной почте: disks@linuxformat.ru

Сборка Ubuntu

32­битный

Если диск не читается...

» 13 рабочих столов вам на пробу! » Новейшее ядро 4.2 » Богатый комплект приложений

Arch Bang

Лучший дистрибутив для слабых машин!

LIVE­ДИСК: ГОТОВ К РАБОТЕ

ВСЕ НЕОБХОДИМОЕ ДЛЯ СТАРТА В LINUX

Если вы новичок в Linux, вас может смутить изобилие различных файлов и расширений. Так как мы стара­ емся собрать как можно больше вариантов пакетов для обеспечения совместимости, в одном каталоге часто находятся два или три файла для различных версий Linux и различных архитектур, исходные тек­ сты и откомпилированные пакеты. Чтобы определить, какой именно файл вам нужен, необходимо обратить внимание на его имя или расширение: » имя_программы-1.0.1.i386.rpm — вероятно, это двоичный пакет RPM, предназначенный для работы на системах x86; » имя_программы-1.0.1.i386.deb — такой же пакет, но уже для Debian; » имя_программы-1.0.1.tar.gz — обычно это исходный код; » имя_программы-1.0.1.tgz — тот же файл, что и выше этажом по списку: “tgz” — это сокра­щение от “tar.gz”; » имя_программы-1.0.1.tar.bz2 — тот же файл, но сжатый bzip2 вместо обычного gzip; » имя_программы-1.0.1.src.rpm — также исходный код, но поставляемый как RPM-пакет для упрощения процесса установки; » имя_программы-1.0.1.i386.FC4.RPM — двоичный пакет RPM для x86, предназначенный специально для операционной системы Fedora Core 4; » имя_программы-1.0.1.ppc.Suse9.rpm — двоичный пакет RPM, предназначенный специально для операционной системы SUSE 9.x PPC; » имя_программы-devel-1.0.1.i386.rpm — версия для разработчиков.

Июнь 2016 LXF210  | 109


110  |  LXF210 Июнь 2016

Пожалуйста, перед использова‑ нием данного диска ознакомьтесь с инструкцией, опубликованной в журнале на стр. 109!

Advanced Bash Scripting Guide Подробное руководство по программированию на Bash Bash Guide for Beginners Руководство по Bash для начинающих Bourne Shell Scripting Начальное руководство по программированию на Bash The Cathedral and the Bazaar Классический текст Эрика Раймонда [Eric S Raymond] «Собор и базар»

ДОКУМЕНТАЦИЯ: 12 КНИГ О LINUX (НА АНГЛИЙСКОМ ЯЗЫКЕ)

CheckInstall Coreutils HardInfo Kernel Memtest86+ Plop SBM WvDial

ГЛАВНОЕ

ДЕФЕКТНЫЕ ДИСКИ В маловероятном случае обнаружения дефектов на данном диске, обращайтесь, пожалуйста, по адресу disks@linuxformat.ru

КОММЕНТАРИИ? Присылайте ваши пожелания и предложения по электронной почте: info@linuxformat.ru

The Debian Administrator’s Handbook Руководство администратора, написанное разработчиками Debian Dive Into Python Учебник по программированию на Python Intro to Linux Начальное руководство по Linux Linux Dictionary Словарь Linux, объясняющий специфическую терминологию Linux Kernel in a Nutshell Описание ядра Linux, созданное одним из его выдающихся разработчиков — Грегом Кроа­Хартманом [Greg Kroah­Hartman] Rute Знаменитый справочник System Administrators Guide Руководство по базовому администрированию Linux. GNU Tools Summary Руководство по работе в командной строке и обзор основных утилит GNU.

Содержание

DVD‑приложение к журналу Linux Format № 6 (210). Июнь 2016

Тираж изготовлен ООО «Маркон», 188652, Россия, Ленинградская область, Всеволожский р­н, дер. Юкки, Школьная ул., 7­а. Лицензия МПТР ВАФ N 77­103.

Настоящий диск тщательно тестировался и проверялся на всех стадиях производства; однако, как и в случае с любым новым ПО, мы рекомендуем вам использовать антивирусный сканер. Мы также рекомендуем всегда иметь под рукой актуальную резервную копию данных вашего жесткого диска. К сожалению, редакция Linux Format не в состоянии принимать на себя ответственность за любые повреждения, разрушения или иные убытки, которые может повлечь за собой использование этого DVD, представленных на нем программ или данных. Прежде чем устанавливать какое­либо ПО на компьютер, подключенный к сети, проконсультируйтесь с сетевым администратором.

Все дистрибутивы представлены ISO­образом, который можно и записать на отдельный носитель, и загрузить в live­режиме прямо с LXFDVD. У всех присутствует возможность установки на жесткий диск.

Window Maker Live 0.95.7-3 (32­битный) 4MLinux 17.0 (32­битный) Mint 18 beta Mate (32­битный) Tails 2.4 (32­битный)

ДИСТРИБУТИВЫ

Сторона 2

DVD Создание установочных дисков при помощи cdrecord

www.linuxformat.ru/subscribe

Самый быстрый способ записать ISO-образ на чистую матрицу — это обратиться к про­ грамме cdrecord. Для всех перечисленных ниже действий потребуются права супер­ пользователя-root. Cначала определите путь к вашему устройству для записи дисков. Набе­ рите следующую команду: cdrecord -scanbus После этого на экране терминала должен отобразиться список устройств, подключен­ ных к вашей системе. SCSI-адрес каждого устройства представляет собой три числа в левой колонке — например, 0,3,0. Теперь вы можете с легкостью записать образ на диск: cdrecord dev=0,3,0 -v /путь к образу/image.iso Чтобы упростить дальнейшее использование cdrecord, сохраните некоторые настройки в файле /etc/default/cdrecord. Добавьте по од­ной строке для каждого устройства записи (скорее всего, в вашей системе при­ сутствует только одно такое устройство): Plextor= 0,3,0 12 16M Первое слово в этой строке — метка; затем после адреса SCSI-устройства вы должны указать скорость и размер буфера. Теперь можете заменить SCSI-адрес в командной строке на выбранную вами метку. Все будет еще проще, если вы добавите следующее: CDR_DEVICE=Plextor Для записи ISO-образа вам осталось набрать команду cdrecord -v /path/to/image.iso Если вы не принадлежите к любителям команд­ной строки, в таком случае вам придет на помощь утилита gcombust. Запу­ стите ее от имени root и выберите вкладку Burn и ISO 9660 Image в верхней части окна. Введите путь к образу, который вы хотите записать на диск, и смело нажи­ майте на Combust! Пока ваш образ пишется на диск, можете выпить чашечку кофе.

Другая ОС?

Использовать Linux для записи компакт-диска не обязательно. Программы вроде cdrecord просто переносят двоичные данные на чистую матрицу. Все необходимые файлы уже вклю­ чены в ISO-образ, который распознается любой операционной системой, будь то Linux, Windows, Mac OS X или AmigaOS.

Нет устройства для записи дисков?

Если у вас нет устройства, с помощью кото­ рого можно было бы записать образ на диск, можно найти какого-нибудь друга или органи­ зацию, у кого есть компьютер с дисководом, и прожечь диск у них. Опять-таки, вам подой­ дет любая операционная система, способная распознать пишущий привод (см. выше). Некоторые дистрибутивы умеют монти­ ровать образы дисков и выполнять сетевую установку или даже установку с раздела жест­кого диска. Конкретные методы, конечно, зависят от дистрибутива. За дополнительной информацией обращайтесь на web-сайт раз­ работчика дистрибутива.



Главное в мире Linux Журнал зарегистрирован Федеральной службой по надзору за соблюдением законодательства в сфере массовых коммуникаций и охране культурного наследия ПИ № ФС77-21973 от 14 сентября 2005 года. Выходит ежемесячно. Тираж печатной версии 2000 экз., распространение электронной версии 30 000 экз. РЕДАКЦИЯ РУССКОЯЗЫЧНОЙ ВЕРСИИ Главный редактор Кирилл Степанов info@linuxformat.ru Литературный и выпускающий редактор Елена Толстякова Переводчики Елена Ессяк, Даниил Кривошеин, Светлана Кривошеина, Валентин Развозжаев, Валерий Смирнов, Елена Толстякова Редактор диска Александр Баракин Верстка, допечатная подготовка Сергей Рогожников Технический директор Андрей Смирнов Директор по рекламе Владимир Савельев advert@linuxformat.ru Генеральный директор Павел Фролов Учредители Частные лица Издатель ООО «Линукс Формат» Отпечатано в типографии ООО «ЛД-ПРИНТ» 196644, Санкт-Петербург, Колпинский р-н, пос. Саперный, территория предприятия «Балтика», д. б/н, лит. Ф Тел. (812) 462-8383, e-mail: office@ldprint.ru Заказ 14317

В июльском номере — с вами...

Ubuntu 16.04 Наверстываем упущенное — рассматриваем, воплотила ли конвергенция наши заветные мечты или стала новым кошмаром Unity.

Строим 3D-принтер

РЕДАКЦИЯ АНГЛОЯЗЫЧНОЙ ВЕРСИИ Редактор Нейл Мор [Neil Mohr] neil.mohr@futurenet.com Научный редактор Джонни Бидвелл [Jonni Bidwell] jonni.bidwell@futurenet.com Выпускающий редактор Крис Торнетт [Chris Thornett] chris.thornett@futurenet.com Художественный редактор Эфраин Эрнандес-Мендоса [Efrain Hernandez-Mendoza] efrain.hernandez-mendoza@futurenet.com ПОДГОТОВКА МАТЕРИАЛОВ Коннор Баллард-Пейтмен [Connor Ballard-Pateman], Джонни Бидвелл [Jonni Bidwell], Нейл Ботвик [Neil Bothwick], Джолион Браун [Jolyon Brown], Алекс Кэмпбелл [Alex Campbell], Пол Хадсон [Paul Hudson], Аластер Дженнингс [Alastair Jennings], Дэвид Нилд [David Nield], Ник Пирс [Nick Peers], Лес Паундер [Les Pounder], Афнан Рехман [Afnan Rehman], Рафик Рехман [Rafeeq Rehman], Фил Сэвидж [Phil Savage], Маянк Шарма [Mayank Sharma], Александр Толстой [Alexander Tolstoy], Михалис Цукалос [Mihalis Tsoukalos], Евгений Балдин, Михаил Вознесенский, Андрей Гондаренков, Павел Емельянов, Дмитрий Пантелеичев, Алексей Федорчук, Дмитрий Цымай, Игорь Штомпель Иллюстрации Шейн Коллиндж [Shane Collinge] Иллюстрация с обложки www.magictorch.com КОНТАКТНАЯ ИНФОРМАЦИЯ UK: Linux Format, 30 Mon­mouth Street, Bath BA1 2BW Teл. +44 (0) 1604 251045, email: linuxformat@myfavouritemagazines.co.uk РОССИЯ: Санкт-Петербург, пр. Медиков, 5, корп. 7 Тел. +7 (812) 309-0686, e-mail: info@linuxformat.ru По вопросам сотрудничества, партнерства, оптовых закупок: partner@linuxcenter.ru

Открытое «железо» и открытое ПО объединяются ради создания идеальной системы 3D-печати.

Что такое Vulkan Новая движущая сила открытого ПО в 3D-технологии сулит DirectX потрясающую скорость рендеринга. Мы всё расскажем!

Частокол брандмауэров Протестируем пылающие дистрибутивы брандмауэров и выясним, который из них надежнее защитит вашу сеть.

Авторские права: статьи, переведенные из английского издания Linux Format, являются собственностью или лицензированы Future Publishing Ltd (Future plc group company). Все права зарегистрированы. Никакая часть данного журнала не может быть повторно опубликована без письменного разрешения издателя. Все письма, независимо от способа отправки, считаются предназначенными для публикации, если иное не указано явно. Редакция оставляет за собой право корректировать присланные письма и другие материалы. Редакция Linux Format получает неэксклюзивное право на публикацию и лицензирование всех присланных материалов, если не было оговорено иное. Linux Format стремится оставлять уведомление об авторских правах всюду, где это возможно. Свяжитесь с нами, если мы не упомянули вас как автора предложенных вами материалов, и мы постараемся исправить эту ошибку. Редакция Linux Format не несет ответственности за опечатки. Ответственность за содержание статьи несет ее автор. Мнение авторов может не совпадать с мнением редакции. Все присланные материалы могут быть помещены на диски — CD или DVD, поставляемые вместе с журналом, если не было оговорено иное. Ограничение ответственности: используйте все советы на свой страх и риск. Ни при каких условиях редакция Linux Format не несет ответственность за повреждения или ущерб, нане­ сенные вашему компьютеру и периферии вследствие использования тех или иных советов. Linux — зарегистрированный товарный знак Линуса Торвальдса [Linus Torvalds]. “GNU/Linux” заменяется на “Linux” в целях сокращения. Все остальные товарные знаки являются собственностью их законных владельцев. Весь код, опубликованный в журнале, лицензирован на условиях GPL v3. См. www.gnu.org/copyleft/gpl.html За информацией о журналах, издаваемых Future plc group company, обращайтесь на сайт www.futureplc.com.

© Linux Format 2005 © Future Publishing Ltd 2005

Содержание будущих выпусков может меняться — вдруг наш матч с AlphaGo чересчур затянется...

112  |  LXF210 Июнь 2016

www.linuxformat.ru/subscribe

BATH • LONDON • MILAN • NEW YORK • PARIS • SAN DIEGO • SAN FRANCISCO

16+




Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.