Raspberry Pi, Ubuntu, GNU Compiler Collection
-
Хорошо, давайте побеседуем.
Встречный вопрос -- чем по Вашему Ubuntu отличается от Debian? Зачем Вам нужно ставить на Малинку именно Убунту, чем не подходит уже-готовый-к-применению Дебиан?
"Для написания программ много ума не надо" -- всё зависит от уровня требований к программам. Например, проги для Ардуино могут "писать" люди, которые вообще мало-что понимают в программировании. И тем не менее проги работают! Другой вопрос -- какие это проги? Поэтому, написать прогу для моргания светодиодом -- действительно, много ума не надо. Написать систему, которая выполняется в нескольких взаимодействующих друг с другом параллельных потоках -- это уже высший плотаж.
Поэтому, говорить о том, что писать проги для АРМ-ов легко -- это еще "бабушка на двое сказала". Если писать обычную прогу для Линукса -- например, программа для расчета квадратного уравнения на языке программирования Си, -- то Вы вообще не почувствуете разницы между x86- и ARM-архитектурами. Исходный текст будет один и тот же. Если Вы попытаетесь углубиться -- попытаетесь использовать специфику процессора, использовать ассемблерные вставки, -- то тут скорее будет как раз наоборот. Мне, допустим, написать что-то низкоуровневое для x86 намного проще, чем для ARM-а. И тут дело не стоько в архитектуре процессорного ядра и системе команд сколько в опыте написания таких программ. Я с x86 общаюсь чуть ли не с конца 80-х годов, а АРМ-ы в мою жизнь вошли лет пять назад или около того. Поэтому, мне (лично мне) с ними труднее.
А возьмите язык программирования Java -- так вообще разницы никакой нет! Собственно, Java как раз и создавался для того чтобы быть корссплатформенным. То есть прога созданная на PC будет работать точно так же на любой другой платформе (в том числе и АРМ), на которой установлена JVM (Java-машина). Причем, в отличие от языка Си, перекомпиляция исходных кодов на Java -- не нужна!
Я на Малинку устанавливал даже кросс-ассемблер для MSP430. Работает точно так же, как и на PC.
Таким образом, могу ответственно заявлять, что для небольших программ (не требующих очень больших ресурсов), Малина позволяет писать проги.
Необычно, разве-что, только то, что когда уходишь попить кофейку, а потом возвращаешься неприятно бьет по нервам неожиданная тишина в комнате. На экране отображается текстовая информация (я работаю в консоли), но при этом все тихо. Такое ощущение, что все повесилось и я потерял несохраненный кусок текста.
Так что, покупать Малину для написания программ и самообучения, я считаю, -- это самое правильное вложение капитала. Эффект будет очень значительный, если Вы не приучены к потреблятству готовых решений.
Это мое мнение.
-
Операционная система Ubuntu не поддерживает версию ARM процессора, который находится на плате Raspberry Pi.
Raspberry Pi Foundation не поддерживает Ubuntu как один из официальных дистрибутивов для Raspberry Pi.
Думаю, что для экспериментов лучше всего подойдет Raspbian, либо другие рекомендованные ОС на оф. сайте. Может если и попытаться то можно и Ubuntu на Raspberry Pi запустить, но это очень сложно будет сделать.
-
zhevak, Спасибо за развернутый ответ. Как я уже сказал с linux дел почти не имел, и не разбираюсь в различных дистрибутивах. Про убунту спрашивал, так как она в последнее время на слуху и набирает популярность и я подумал - что легче работать с более популярными системами т.к. гораздо легче найти ответы по своим вопросам.
У меня есть Arduino Uno да и опыт программирование AVR, да и вообще опыт програмирования в том числк и многопоточного и ассинхронного, но для Windows. Это же совсем другое в том плане, что код ты пишешь на своем компе, где windows и значит существует over9000 различных IDE а вот как обстоят дела IDE, которые можно использовать на Raspberry Pi непосредственно, не понятно.
Вот по этому я приплел сюда GNU Compiler Collection, как я слышал, он идет в комплекте со всеми Linux.
-
Gasinskiy, понятно коротко и лаконично, спасибо.
-
"а вот как обстоят дела IDE, которые можно использовать на Raspberry Pi непосредственно, не понятно."
Эти требования основаны на подходе к разработке ПО в Виндовсе. Поэтому люди, которые вчера активно работали с Виндовс, а сегодня пробуют свои силы в Линуксе, по инерции требуют от Линукса точно такого же поведения с каким они имели дело в Виндовса.
Линукс -- это не Виндовс! Внешне и на первый взгляд -- они могут очень походить друг на друга. Но приемы работы, да и сама парадигма Линукса существенно отличаются от Виндовса.
Однако проблема не в том, что Линукс И Виндовс разные. Проблема в том, что знать и хорошо разбираться и в том, и в другом на уровнях более глубоких (... хм! или высоких?), чем уровень обычного пользователя, -- очень проблематично. Объемы знаний и там, и там -- очень большие, а человеческие ресурсы (способность мозга усваивать, количество времени в сутках) ограничены. Поэтому приходится выбирать -- какие знания вы хотите иметь -- глубокие, но узкие, или же широкие, но поверхностные.
Мое видение состоит в следующем. При прочих равных условиях, на той, и на другой операционных системах работать вполне можно. Собственно, почему и та, и другая системы живут и не коллапсируют. Они работают и этим приносят определенную пользу, а это есть главное, для чего они были созданы. Разница систем проявляется в том, как они относятся к пользователю. Я выбирал ту, которая не делает из меня тупого барана. Которая не ограничивает мое поле деятельности. Я с этой системой могу делать все, что мне заблагорассудится, я не ощущаю никакого давления или ограничений со стороны правообладателей. Мои действия свободны. Я не боюсь что-либо нарушить. Поэтому, мне с Линуксом очень легко и привольно.
В Виндовсе я постоянно чувствовал какой-то надзор (присмотр) за своими действиями и ходил под угрозой исполнения наказания. По молодости это еще не так сильно проявляется. Но с годами, когда становишься более мудрым, приходишь к мысли, что мир все-таки не терпит злобы, лжи, ненависти, и других порочных проявлений. С годами начинаешь понимать, что наилучший выбор не тот, который позволяет тебе "украсть и быть гарантированно не пойманным", а тот, в котором вообще не имеет таких понятий как "украсть". Боюсь, что я не могу это правильно изложить. Это надо просто пережить. Обдумать. Но если мозги не сожжены алкоголем и не загружены отвлекающей лже-информацией, то человек сам приходит к этим понятиям.
В общем, правильно говорят. Линукс несет свободу, а Виндовс -- порабощение.
И мне очень приятно осознавать тот факт, что все больше и больше людей обращаются к технологиям, которые не несут в себе нелепых ограничений.
Так вот. Говорили мы о среде разработки! В Линуксе среды разработки тоже имеются. Но они не так сильно развиты, как в Виндовсе. Мне тоже по началу моего освоения казалось, что это какой-то недостаток Линукса. Со временем я понял, это не есть недостаток. Это следствие того, что сама среда (сама операционная система) уже имеет все необходимые ингридиенты для успешной разработки программ. То есть IDE в Линуксе не очень восстребованы.
В Виндовсе IDE нужны. Нужны лишь по той причине, что без них разработка программ будет весьма затруднительна. В Линуксе IDE -- не дают такого же эффекта, как в Виндовсе. Но чтобы это понять, нужно поработать. Нужно "поразрабатывать" программы в течение какого-то периода времени. К сожалению, тут еше наслаивается и то обстоятельство, что помимо знания как писать программы на том или ином языке программирования, программисту нужно еще и владеть приемами (способами) работы в Линуксе. Без этого никакой вы не Линуксойд. Вы тот же самый Виндовс-пользователь, который сел за Линукс и, увидев аналогичные элементы управления, выполняет те же действия, которые он совершал в Виндовсе.
Я, например, начал активно и правильно использовать рабочие столы наверно через полгода, после иммиграции на Линукс. Да, я знал, видел эти столы. Но толку-то! Но я их использовал как-то неуклюже, не умеючи. И только через полгода я научился виртуозно и правильно с ними обращаться. Теперь меня на Вннду палками не загонишь! И это касается не только рабочих столов, а и других Линуксовых технологий. Их огромное множество, но он них не особо говорят. Поэтому люди не знают, и судят о Линуксе только со своей Виндовой точки зрения. Конечно, в таком свете Линукс -- полный отстой!
Что касается IDE... простите, меня постоянно сносит на философствование. Видимо возраст сказывается... Я Вам просто скажу -- полистайте как-нибудь мой блог (zhevak.wordpress.com). Там я описываю некоторые приемы работы в Линуксе. В частности я описываю как организовать (создать) под свои требования среду разработки для написания программ, и как потом в ней работать. Сразу, с первого взгляда, эти технологии могут показаться очень не практичными. Но по мере работы Вы придете к мнению, что это не только удобно, но еще и имеет много преимуществ по сравнению с подходами, которые приняты в Виндовс.
Уже много раз сказано, что ступенька вхождения в Линукс значительно больше, чем ступенька вхождения в Виндовс. Не каждый ее может преодолеть. Много раз сказано, что сначала ты жестко работаешь на Линукс (осваиваешь его), а потом он всю оставшуюся жизнь работает на тебя.
В Виндовсе наоборот -- быстренько "оседлал" Виндовс и начал работать. А потом оказывается, что не он на тебя работает, а ты стал его рабом. И вырваться из его "объятий" очень и очень трудно. Причем, чем больше в нем увяз (чем глубже его знаешь), тем сложнее разорвать с ним отношения. Попробуй-ка забыть то, что знаешь! Знания и навыки -- это те самые путы, которые не дают иммигрировать на другую операционную систему, на другие понятия и парадигмы. Быстро забыть не получится. Для этого понадобится несколько лет. Поэтому процесс перехода на практике оказывается неожиданно болезненный. Поэтому я и говорю -- изучайте сразу правильные технологии, а не заглатывайте коммерческих червяков. С крючка-то слезть очень сложно. И чем глубже вы заглотите крючок, тем сильнее вас будут "выхлапывать" и использовать. Не у каждого есть силы сменить Виндовз на Линукс. Многие возвращаются обратно с воплями и ненавистью. (Как-то ведь надо оправдывать свою неспособность преодолеть барьер?)
В прочем, это уже не столь важно! Это раньше я ратовал за переход людей на Линукс. Теперь мне пофигу. Теперь я говорю, что если вам удобнее юзать Виндовс -- юзайте и будьте счастливы. Говорю это чистосердечно, искренне, без злобы и каких-то негативных флюидов. Главное -- у меня есть МОЙ Линукс. Линукс есть у членов моей семьи, и людей моего окружения. (под словом "есть" надо понимать -- мы его хорошо знаем, владеем его технологиями, он нам верно служит, не создает неразрешимых проблем, не портит карму (типа "Укради, укради! Тебя гарантрованно не поймают! Воровать безопасно!") и не ставит нас на деньги.) А до остальных людей -- мне нет никакого дела!
-
Только-только опубликовал свой предыдущий пост, закрыл сайт, перешел на Хабр.
Читаю и еще больше убеждаюсь в правильности своей позиции:
"Каспар Боуден (Caspar Bowden) с 2002 по 2011 года занимал должность главного советника Microsoft по вопросам конфиденциальности — Chief Privacy Advisor — и отвечал за это направление более чем в 40 странах.
...
Тем не менее, многолетняя работа в Microsoft привела к тому, что сейчас бывший топ-менеджер корпорации принципиально использует только открытое ПО."
http://habrahabr.ru/post/196094/Ну дак! Поди понимает, как никто другой, с чем он имеет дело.
-
Ого, понастоящему я и не думал устраивать здесь холивары и утверждать, что что то хуже или лучше. Просто меня и тогда (когда создал эту тему) и сейчас продолжает интересовать вопрос: Насколько Linux на системе ARM развит на данный момент. Можно сколько угодно говорить что Linux ни чем не уступает windiws или еще какой то системе, но сейчас мы говорим не о простом ПК а о системе с архитектурой ARM. Ну все равно, всем спасибо, я думаю можно закрыть обсуждение.
-
Простите, не удержался. Но постараюсь ответить не разжигая холливара.
На самом деле, Линукс на АРМ-ах развит намного сильнее, чем Виндовс. Просто их (Линуксов) не видно и не слышно. О них мало говорят на публике. О них знают только посвященные в это дело люди. Круг этих людей ограничен, и о общаются они на свои профессиональные темы в основном только друг с другом.
Вы наверняка знаете, что такое роутер? И вы наверняка сталкивались с ADSL-модемом. У них почти у всех внутри живет Линукс.
Ядро Линукса, по сравнению с ядром Виндовса чрезвычайно компактное. Я как-то упражнялся с ARM-ом от фирмы ATMEL, так вполне рабочее ядро удалось сгенерить размером около 2 МБайт. Не секрет, что ядро Линукса открытое, то есть к нему имеются исходные тексты. Мало того, так еще созданы специальные утилиты, которые облегчают процесс кастомизации ядра. Ну то есть помогают выбрать те или иные модули и безопасно удалить ненужные. После чего длительный процесс компиляции ядра и заливка полученного кода в кремний микроконтроллера. Так почему бы этим делом не "заболеть"? Те, кому это интересно, уже болеют.
Так что Линукс далеко не исчерпывается Малиной. Просто погуглите, и Вы сам увидите на сколько сильно Линукс используется на АРМ-ах. Только я хотел бы предупредит -- АРМ, АРМ-у рознь!
Для того чтобы Линукс мог встать на АРМ, последний должен иметь MMU (Memory Menagmet Unit -- модуль управления виртуальной памятью). Многие АРМы вместо MMU имеют MPU (Memory Protection Unit -- блок защиты памяти). Это немного другое. Этот модуль не позволяет реализовать принципы виртуальной памяти, вместо этого он только способен по минимуму защитить разные пространства программ. Но все программы в этом случае находятся в едином пространстве. Виртуальная память подразумевает, что каждый процесс имеет свое виртуальное пространство, то есть как бы параллельную вселенную. Поэтому если не прибегать к особым средствам, никакой процесс не может в принципе увидеть (и следовательно -- повредить) содержимое памяти другого процесса.
А Малина -- это всего лишь какой-то популистский акт типа Ардуино. Типа -- чтобы домохозяйки тоже могли порулить светодиодиками и Линуксом и почувствовать себя like a hero. В общем-то, Малина -- это очень сильный ход. Я бы даже сказал -- разрушительный по отношению к бастиону Виндовс. Столько народу подсело на Линукс на этом деле. И надо понимать, это только начало! Через год-два мир будет просто-таки завален подобными микро-компьютерами на базе ARM-ов и Cortex-ов.
Цена изделия и получаемые с помощью микрокомов результаты говорят о том, что это очень даже выгодно. Люди ж понимают, что либо ты в теме (и тогда получаешь разные плюшки), либо не в теме. У каждого есть собственно мнение на тему Линукса, но есть объективная тенденция, так сказать -- вектор развития. Понятно, что выиграет тот, кто угадает (увидит, поймет) направление.
-
Спасибо большое! Было и в правду интересно читать про линукс для ARM Atmel, сам программировал и программирую потихоньку чипы этой фирмы хоть и другой архитектуры. Как выше я писал: имею опыт программирования под Windows. А предпочитяю я C# и меня всегда удручал тот факт что такой замечательный и удобный язык, существует только для продукции Microsoft, пока не стал копать в сторону Mono. И вот что я выйснил: Mono поддерживает ARM Linux. Значит есть возможность писать программы скажем для Raspbery PI, а если все же нет, то хотябы для Cubiboard на .NET языках. К тому же, как мне стало известно есть и Java машина для ARM. Единственное что пока не понятно - есть ли Интегрированные среды разработки, которые могут встать непосредственно на Linux ARM и позволят писать, проводить отладку, компилировать код сразу на Raspbery PI или Cubiboard непосредственно.
Для того что бы выйснить это, пока что приходится перелопачивать интернет в поисках каких либо отдаленных намеков. Платка которую я заказал (все же выбрал Cubiboard), застряла где то на Китайской почте и кажется ждать ее придется до Китайской пасхи. -
есть ли Интегрированные среды разработки, которые могут встать непосредственно на Linux ARM и позволят писать, проводить отладку, компилировать код сразу на Raspbery PI или Cubiboard непосредственно
Про Cubiboard не скажу, но в репозиториях Raspbian как минимум есть Geany. Это такая простая среда разработки/текстовый редактор. На освоение у вас уйдет не более получаса. Я ее в первую очередь опробовал на Малине. Вопросов нет, работает.
Вообще в Линуксе имеются мощные IDE. Например, Code::Blocks и Eclopse. Есть ли они в репозиториях Raspbian, я не знаю. Но они очень ресурсоемкие и по этой причине очень медленные. Особенно Eclipse, который написан на Java.
Можете поискать в реопозиториях IDE Anjuta (с логотипом лошади). Тоже вроде как лекговесная среда разработки.
Но я еще раз скажу, что для работы в Линуксе наличие интегрированной среды разработки не столь необходимое условие, как в Виндовсе. В Линуксе удобней работать с Makefilt-ом и обычным текстовым редактором, и творить реально чудеса, недоступные для Виндосовских проприетарных (читай -- закрытых) средств разработки.
-
zhevak, поддерживаю! Давно собирался освоить линухи, но отдельного устройства для экспериментов все не было. Все же домашний компьютер должен работать каждый день)))
И вот он! Малиновый пирог! Потихоньку вникаю. Впечатления за пару месяцев:- Это настоящий прорыв! Эта "букашка" может быть и сервером, и системой наблюдения, и... масса применений!
- Консоль - просто прелесть! Попробуйте управлять виндой из командной строки. А putty (ssh) работает в любой системе и, действительно управляет системой!
- Идеология, конечно, перекашивает мозги поначалу. Но это с непривычки)))
- Начитавшись, понимаю: линуксоиды уходят в специализацию. Кто не хочет заморачиваться выбирает убунту, федора и дебиан скорее для программистов. И еще один момент. Специализация накладывает отпечаток. Убунтяне с трудом конфигурируют дебиан. Даже, скорее, не признают за систему. Федора вообще боком. Вроде корни одни, но команды различаются. Иногда очень сильно.
- Например, распбиан (рекомендуемая) - ответвление дебиан. Да такое, что яблоко от яблони до сосны докатилось. Далеко ушел он от дебиан.
- Малинка всем хороша, но азы линукса надо знать до ее покупки. С другой стороны, как получить азы, на чем эксперименты ставить? Короче, кто малинку освоит - тому линуксы любые не страшны.