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 phone 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 phone 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 perhot — компактный, выверенный; каж дый из 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
прод уманные механизмы для украшения рабочего стола визуа льно привлекательными вид жетами и апплетами, а независимые менед жеры окон, о которых говорилось выше, такого не умеют. Для этого можно применить сторонние инструменты, например, Adesktop и 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 и Ubuntu — версий 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.blogspot.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/firefox/---.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). После этого среди каталогов отобразится .mozilla. Переходим в ката лог профиля тек ущего пользователя 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
...
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: Wireshark, 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 (MarkBack 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/HardwareLiSter). Одна из указанных программ непременно должна быть включена в ваш дистрибутив (а иногда и обе). Если у вас нет желания или возможности их устано вить, выполните в терминале от имени 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 поддерживается форматирование и автозамена. Например, --> автоматически превращается в стрелку, и т. д.
Отличное дополнение к FromScratch — 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
Ч
то может быть умилительнее пу шистого котеночка? Ну разве что пушис тый кот еночек, котором у необходима помощь в преодолении пре пятс твий. В Raincat вы попад аете в кра сиво илл юс тр ир ов анн ую гол ов ол омк у, где вам требуется провести эту пушистую прелесть через различные водные прегра ды и опасности. Коты терпеть не мог ут мокнуть, и если хоть капля воды попадет на лапки ваше го котенка, игра окончена. Есть несколько «водных» препятствий, например, дождь, лужи и продранные пожарные гидранты, а так же препятствия наземные: например, без вашей помощ и кот у не перебратьс я через горки или глубокие ямы. Несколько акс есс уар ов спас аю т кот а от всячес ких бедс твий — скажем, пончо или зонт ик, или более необычные объек ты, например, пру ж инные сапог и для перепрыг ивания
чер ез ямы и прыж ков ая ход ул я, чтоб ы из ямы выскочить. В 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 Notesup 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 KroahHartman] Rute Знаменитый справочник System Administrators Guide Руководство по базовому администрированию Linux. GNU Tools Summary Руководство по работе в командной строке и обзор основных утилит GNU.
Содержание
DVD‑приложение к журналу Linux Format № 6 (210). Июнь 2016
Тираж изготовлен ООО «Маркон», 188652, Россия, Ленинградская область, Всеволожский рн, дер. Юкки, Школьная ул., 7а. Лицензия МПТР ВАФ N 77103.
Настоящий диск тщательно тестировался и проверялся на всех стадиях производства; однако, как и в случае с любым новым ПО, мы рекомендуем вам использовать антивирусный сканер. Мы также рекомендуем всегда иметь под рукой актуальную резервную копию данных вашего жесткого диска. К сожалению, редакция 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 Monmouth 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+