Часть 1.
Хороший инженер просто обязан идти в ногу со временем. Однажды я уже пропустил выход на рынок платформы Arduino, и очень сокрушался по этому поводу.
Робототехника на такой дешевой платформе была мне потенциально интересна с целью автоматизации квестов, но узнал я о ней слишком поздно, когда наши квесты уже работали на дорогих промышленных контроллерах. Надёжность от этого, безусловно, выиграла, но экономический эффект мог быть больше.
Поэтому, увидев в продаже новинку – одноплатный компьютер с вкусным названием «Raspberry Pi» (читается созвучно фразе «малиновый пирог»), я не смог пройти мимо и тут же купил его, чтобы попробовать в работе. Стоил он совершенно смешных денег — что-то около $20-25 (рекомендованная цена) или точнее 2000 рублей со всеми накрутками уже в магазине.
Знакомство
На плате уже есть всё необходимое: 2 или 4 USB, Ethernet, HDMI, компонентный и аудиовыход. Есть даже многофункциональный интерфейс ввода-вывода GPIO, который позволяет управлять устройствами робототехники и строить на её базе «умный дом». Но вот в качестве операционной системы установить на него можно было только Линукс.
На сайте производителя предлагались две версии, адаптированные для «малины»: Raspbian (от Debian) и Pidora (от Fedora). В России Pidora почему-то не пошла, а вот сообщество любителей Raspbian, наоборот, оказалось довольно многочисленным.
Мне, как старому виндузятнику, изучение новой операционки показалось слишком сложным, поэтому железка была сложена обратно в коробочку и заброшена в дальний угол.
Лишь спустя несколько лет, когда мне пришлось решать реальные задачи по управлению сайтами и хостингом, я вдруг осознал потенциал той маленькой двадцатидолларовой платы.
А именно, я обратил внимание, что если сайт посещают не более пары сотен человек в день, то большую часть времени процессор веб-сервера остаётся не загруженным. Буквально: ноль процентов. Этого почти никогда не бывает на Винде, она всегда найдёт, чем озадачить систему.
Линукс в этом плане гораздо более предсказуемый: нет запросов – нет нагрузки. Тогда-то и пришла мысль о возможности использования Малины в качестве основного веб-сервера для моих сайтов.
В этом посте я бы хотел разобрать именно теоретическую базу и приблизиться к пониманию, можно ли сделать хостинг за $20.
Процессор
Всем известно, что главным вычислительным центром любого компьютера, телефона или планшета является процессор. На сегодняшний день существует два огромных класса процессоров, основанные на различиях в архитектуре:
CISC—complex instruction set computer. Процессоры для компьютеров в привычном понимании этого слова. Имеют как можно более полный набор инструкций для описания всех возможных операций. Считают много, обычно потребляют много энергии и сильно греются.
RISC—reduced instruction set computer. Разработаны в противовес классической архитектуре, как процессоры с упрощенным набором команд. За счет отсутствия лишних инструкций, имеют большой потенциал для распараллеливания вычислений и ускорения операций. Изначально предназначенные для «интернета вещей».
Производство
Апологетами CISC-систем являются компании Intel и AMD. Они же сами и изготавливают свои процессоры, полностью контролируя производственный цикл.
В то же время, «главный» по RISC-системам, компания ARM (Advanced RISC Machine) вообще не занимается производством. Она лишь выдает разрешения на изготовление процессоров по их архитектуре, и даже может позволить лицензиатам выпускать свои версии процессорных ядер. В списке производителей есть Samsung и Apple. Да-да, все эти ваши «айфоны» и «андроиды» тоже основаны на архитектуре RISC.
Предпосылки
Во многом благодаря взрывному росту рынка мобильных гаджетов, не имеющих системы активного охлаждения и использующих RISC-архитектуру, их производительность за последнее десятилетие также испытала бурный рост.
С уменьшением норм техпроцесса, росли частоты, при этом RISC- процессор всё еще мог работать даже без пассивного радиатора. Параллельно росло количество процессорных ядер на одном чипе. И уже довольно скоро в топовом смартфоне стало больше вычислительной мощности, чем в суперкомпьютере NASA образца 1960х годов.
Разумеется, «классические» компьютеры тоже не стояли на месте. Но, как ни удивительно, в «верхнем» сегменте процессоров шли ровным счетом обратные логические процессы – удешевление и меньшее энергопотребление при сохранении производительности.
И вот, буквально пару лет назад, настал момент, когда кривые на графике развития начали пересекаться. Вероятно, именно предчувствие этого момента и подтолкнуло создателей Raspberry Pi на смелый эксперимент по созданию такого рода устройства. Ребята определенно смотрели в будущее.
На момент написания статьи вышла уже третья версия Raspberry Pi, при этом каждый апгрейд всегда означал серьёзный прирост производительности. На третьей «малине» уже совершенно не тормозит рабочий стол, удобно открывать сайты и работать с приложениями.
Сравнение
Давайте посмотрим, что мы имеем в сухом остатке. Возьмём два процессора с условно одинаковой производительностью. Почему условно? Потому что, если рассматривать некоторые узкоспециализированные задачи, то «классический» CISC, вероятно, будет иметь преимущество над RISC. Когда мы говорим о процессоре ARM, необходимо помнить, что речь идёт о процессоре «на все руки».
Ещё один момент, который важен для понимания: мы сравниваем один из самый СЛАБЫХ на сегодняшний день процессоров x86 с одним из самых МОЩНЫХ процессоров ARM.
Итак, при условно одинаковой производительности, компьютер на платформе RISC по сравнению с CISC:
+ Дешевле
+ Холоднее
+ Меньше по размеру
Последние два пункта компания Intel довольно успешно пытается оспаривать, выпуская собственные микроплатформы. NUC – это только один из примеров, существуют платформы и меньше этой по габаритам. Но размеры и популярность Raspberry Pi им пока не удалось превзойти.
Что же касается цены, то тут всё происходит по законам капитализма. Деньги любят все, сговоры имеют место быть, поэтому ронять цены в пол никто никогда не станет. Чем больше преимущества компьютера – тем больше будет цена. И это не зависит от архитектуры процессора.
Итоги
Вспомним изначальную задачу. Нам нужен относительно дешевый, энергоэффективный и сравнительно холодный микрокомпьютер, основной задачей которого будет отдыхать большую часть времени. При этом он должен довольно быстро отдавать страницы сайтов по запросам. Короче, миссия в духе «Wi-Fi — роутер в доме престарелых».
Подходит нам для этого Raspberry Pi? Да более чем! Вопрос только в том, будет ли зависать «малина» при максимальной загрузке? Но это можно будет проверить только опытным путём.
Осознав всё вышеперечисленное, я достал Raspberry Pi и скачал для него свежий образ системы. Изменения меня порадовали, Raspbian образца 2018 года гораздо ближе к моей логике понимания интерфейса, чем два года назад. Хотя, что я вру себе, он просто больше похож на Windows. :)
Процессы установки программ на Linux подробно описаны на многочисленных форумах. Тем не менее, в Линуксе всегда можно найти грабли, на которые легко наступить.
Больше двух недель я пробовал разные варианты и комбинации, пока, наконец, у меня не стало получаться то, чем я был доволен. Безусловно, путь создания сервера – это всегда путь проб и ошибок, однако, тот факт, что я сейчас пишу в этот блог, который хостится на Raspberry Pi, тоже говорит о многом.
В следующих статьях я планирую рассказать о преимуществах и недостатках «домашнего» хостинга, а также о тонкостях настройки.
Если интересны подробности об архитектуре процессоров, рекомендую прочитать: https://losst.ru/chem-arhitektura-arm-otlichaetsya-ot-x86