Что такое монолинукс

Обновлено: 21.11.2024

Mono включает интерфейс командной строки, содержащий виртуальную машину, отвечающую за загрузку классов, JIT-компилятор (Just-in-time) и сборщик мусора; все это написано с нуля в соответствии со спецификацией ecma-334.

Происхождение моно

Mono был задуман Мигелем Де Икаса, проект в то время спонсировался его компанией Ximian; в настоящее время Novell является спонсором проекта Mono, так как Novell приобрела Ximian.

Мотивация создания Mono связана с поиском инструментов, которые помогут быстро создавать приложения в среде Linux.

Моноподдерживаемые платформы

В настоящее время Mono работает на платформах x86, PPC, SPARC и S390 в 32-разрядной версии; и x86-64 и SPARC в 64 битах; возможность создавать и запускать приложения в операционных системах: Linux, Windows, OSX, BSD и Solaris.

Последний из них — WindowsForms — требует, чтобы большая часть работы была завершена полностью. Хотя следует отметить, что проект не предусматривает создание совместимых библиотек для Enterprise Services.

Какие типы приложений я могу создавать с помощью Mono в настоящее время?

Также можно создавать приложения для доступа к базам данных, таким как Microsoft SQL, Oracle, Postgresql и т. д.

На самом деле конкретных приложений нет, если это приложение на основе интерфейса командной строки; хотя есть некоторые моменты, которые следует принять во внимание:

  1. Linux чувствителен к регистру в именах файлов и каталогов; поэтому необходимо иметь согласованность с именами, которые мы используем.
  2. Разделитель пути в Windows () и в Linux отличается (/), поэтому рекомендуется использовать API Path.DirectoryPathSeparator, чтобы получить правильный разделитель при выполнении приложения.
  3. Если используются библиотеки, отличные от CLI (например: библиотеки на C, C++ и т. д.), с помощью p/Invoke убедитесь, что библиотека существует в разных средах, в которых будет выполняться приложение.
  4. Не используйте технологии, которые существуют только в определенной среде (например, реестр в Windows или GConf в Linux -Gnome-); или предоставить решение, позволяющее приложению правильно работать в той среде, в которой оно запущено.
  5. Приложения, основанные на Windows Forms и очень сложные, в настоящее время могут не работать, поскольку Windows Forms в Mono не завершена.

Какие инструменты разработки существуют в Mono?

Ну, из Windows можно разработать приложение с помощью Visual Studio. На стороне Linux есть MonoDevelop, IDE, основанная на SharpDevelop.

MonoDevelop позволяет управлять проектом, подкрашивать синтаксис, автоматически заполнять код, компилировать и запускать приложение из одной и той же среды IDE.
За счет дополнений (надстроек) функциональность расширена, например:

  • Подключение к базам данных из IDE
  • Включение отладчика, который позволяет, подобно Visual Studio, выполнять код построчно и просматривать значения переменных.

Приложения для Mono.

Существует большое количество приложений, разработанных для Linux в Mono, чтобы получить представление, вот 2 списка этих приложений:

Обезьяна и лицензии

  • Переосуществите функциональность, чтобы избежать патента, пытаясь сохранить совместимость API.
  • Удалите то, что нельзя реализовать повторно.
  • Ищите элементы, которые могут аннулировать патент.

С другой стороны, проект Gnome разрабатывает альтернативный язык Vala, созданный специально для разработки приложений для Gnome, но свободный от потенциальных угроз со стороны Microsoft.

Моя рекомендация

Удалить моно

Я хочу удалить моно из моего дистрибутива Ubuntu (и, таким образом, сэкономить много места, которое занимают его зависимости и которые в случае Ubuntu нужны только для «поддержки» 2 приложений, установленных по умолчанию: F-Spot и Tomboy). Если вы не используете ни один из этих двух, удалите их из Synaptic, а также все пакеты с надписью Mono или CLI.

Чтобы удалить Mono в Ubuntu, вы также можете открыть терминал и ввести:

Альтернативы моно

  • Muine, Banshee >> существует множество альтернатив: Amarok, Rhythmbox, Songbird, Audacious, QuodLibet, Exile, BMP, Sonata, xmms и т. д.
  • F-Spot >>GThumb
  • Гном-до >>Медь
  • Docky >> Avant Window Manager (AWN), док-станция Cairo
  • Tombtoy >>Gnote

Подробнее

Для получения дополнительной информации о проекте Mono посетите официальный веб-сайт English, Plus monologue, который является агрегатором блогов разработчиков Mono; или на испанском языке на сайте Mono Hispano, в дополнение к блогам людей, которые поддерживают этот сайт.
Не забывайте оставлять комментарии по поводу Mono… =)

Содержание статьи соответствует нашим принципам редакционной этики. Чтобы сообщить об ошибке, нажмите здесь!.

Компоненты

Есть несколько компонентов, из которых состоит Mono:

Mono Runtime. Среда выполнения реализует общеязыковую инфраструктуру (CLI) ECMA. Среда выполнения предоставляет компилятор Just-in-Time (JIT), компилятор Ahead-of-Time (AOT), загрузчик библиотек, сборщик мусора, многопоточную систему и функции взаимодействия.

Библиотека классов Mono. Mono также предоставляет множество классов, которые выходят за рамки библиотеки базовых классов, предоставляемой Microsoft. Они предоставляют дополнительные полезные функции, особенно при создании приложений Linux. Некоторыми примерами являются классы для Gtk+, Zip-файлов, LDAP, OpenGL, Cairo, POSIX и т. д.

Основные особенности монохромного режима

Свободное программное обеспечение с открытым исходным кодом
Среда выполнения, компиляторы и библиотеки Mono распространяются по лицензии MIT.

Всесторонний охват технологий
Привязки и управляемые реализации многих популярных библиотек и протоколов

Преимущества

Выбор Mono для разработки приложений дает много преимуществ:

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

Базовая библиотека классов. Обширная библиотека классов содержит тысячи встроенных классов для повышения производительности. Нужен код сокета или хеш-таблица? Нет необходимости писать свой собственный, поскольку он встроен в платформу.

Кроссплатформенность. Mono создан для кроссплатформенности. Mono работает на Linux, Microsoft Windows, macOS, BSD и Sun Solaris, Nintendo Wii, Sony PlayStation 3, Apple iPhone и Android. Он также работает на платформах x86, x86-64, IA64, PowerPC, SPARC (32), ARM, Alpha, s390, s390x (32- и 64-разрядные версии) и других. Разработка приложения с помощью Mono позволяет запускать его практически на любом существующем компьютере.

Другое использование

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

Подробнее о том, как встроить Mono, см. в разделе Встраивание Mono.

См. «Сценарии с помощью Mono», чтобы узнать, как создавать сценарии приложений с использованием среды выполнения Mono.

Переход с Windows на Linux означает, что вы потеряете некоторые любимые приложения. Одним из инструментов, который может помочь, является Mono, кроссплатформенная платформа, которую вы, вероятно, уже использовали.

Linux — это много вещей. Это основной компонент множества дистрибутивов, плечи, на которых держится крупная мобильная платформа, и лучше, чем другие, более популярные операционные системы (определенно не мнение).

Однако один из его недостатков связан с меньшей популярностью на настольных компьютерах: доступность программ. К счастью, есть вещи, которые могут помочь в этом, и Mono — одна из них.

Программные платформы: строительные блоки

Эти платформы могут использоваться как для определенных настольных сред, так и для нескольких операционных систем. Например, рабочий стол KDE Plasma имеет несколько программ, которые упрощают написание интегрированных собственных приложений. Это включает в себя их собственную IDE (интегрированную среду разработки) под названием KDevelop.

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

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

Что такое моно?

Моно- и кросс-платформенные приложения

Учитывая все это, совершенно очевидно, что кроссплатформенная природа Mono весьма полезна для людей, переходящих на Linux с Windows. Он служит еще одним связующим звеном между двумя операционными системами, чтобы устранить одну из самых серьезных проблем перехода: эксклюзивное программное обеспечение.

Вы можете даже использовать одно из этих приложений, даже не подозревая об этом!

KeePass

KeePass — отличный автономный менеджер паролей. Это означает, что в отличие, скажем, от LastPass, ваша информация не привязана к серверу для удобства. Но это может быть достойной платой за более высокий уровень контроля в ваших руках.

Он также написан на Mono, что позволяет работать на разных платформах. Хотя он в основном ориентирован на Windows, это также означает, что он поддерживает как macOS, так и Linux. Хотя он может выглядеть не очень родным, он отлично работает. Кроме того, наличие доступа к вашим паролям является достаточным преимуществом.

Пинта

Wine + Mono = лучшая совместимость

Mono также может помочь переключателям Windows за счет расширения Wine, уровня совместимости, позволяющего пользователям запускать приложения Windows. Wine реконструирует множество функций Windows и переводит это поведение в эквиваленты Linux. Таким образом, он может запускать многие программы, не предназначенные для Linux, как если бы они были таковыми.

Погружение в Ubuntu

Что такое моно?

Привет,
Мне интересно, может ли кто-нибудь пролить свет на то, что такое Mono? Я говорю о патенте, который разработали Novell и Microsoft? Спасибо,
Сетевая утка

Взбитый ванильный крем со льдом Ubuntu

Дата присоединения: февраль 2005 г. Местоположение Новая Шотландия, Канада Beans 1580 --> Beans 1580 Distro Ubuntu Development Release

Первоначальное сообщение от thenetduck

Привет,
Мне интересно, может ли кто-нибудь пролить свет на то, что такое Mono? Я говорю о патенте, который разработали Novell и Microsoft? Спасибо,
Сетевая утка

5 чашек Ubuntu

Первоначальное сообщение от thenetduck

Привет,
Мне интересно, может ли кто-нибудь пролить свет на то, что такое Mono? Я говорю о патенте, который разработали Novell и Microsoft? Спасибо,
Сетевая утка

Патент, который они разработали, не имеет ничего общего с Mono, не так ли? Я думал, что формулировка Microsoft в целом по этому вопросу была просто «душевное спокойствие», но никогда не давала подробностей относительно того, что, по их мнению, было нарушено. Кажется, я припоминаю, что кто-то здесь отправлял письмо в Microsoft, но они так и не смогли перечислить, что именно было нарушено.

Участник Ubuntu

Нет. патент вообще не имеет ничего общего с моно. Не то, чтобы я читал на каком-либо мероприятии.

5 чашек Ubuntu

Первоначальное сообщение от atoponce

Нет. патент вообще не имеет ничего общего с моно. Не то, чтобы я читал на каком-либо мероприятии.

Учитывая публичную приверженность Microsoft открытому исходному коду, патентной войны, скорее всего, не произойдет; это выставит компанию в невыгодном свете в то время, когда ей нужна вся возможная поддержка разработчиков.

Но что на самом деле делает его таким замечательным? Эти пять вещей:

Есть отличная бесплатная IDE: MonoDevelop

Mono поддерживает разработку мобильных приложений

Коммерческие версии платформы разработки Xamarin для iOS и Android стоят около 300 долларов США в год (каждая). Благодаря этим реализациям Mono может поддерживать разработку для мобильных устройств — он поставляется не только с компилятором Just-In-Time (JIT), но и компилятором Ahead-of-Time (AoT), который выводит собственный код.

Несмотря на то, что это одно из преимуществ Mono, его нельзя использовать для разработки под iOS на Linux — только на Mac.

Mono — кроссплатформенный

Разработка игр Mono Powers

Помимо разработки для мобильных устройств, Mono используется для различных игровых библиотек и сценариев игровых движков, таких как Unity. Хотя Microsoft XNA больше не поддерживается, MonoGame была создана для использования XNA API.

Однако…

Еще одна причина, по которой Mono не получил всеобщего одобрения в Linux, заключается в том, что его часто было сложно установить. Долгое время вам приходилось создавать его самостоятельно, и существует длинный список зависимостей. Хотя это меняется, вы обнаружите, что если вам нужна самая последняя версия Mono, вам, возможно, все равно придется выполнять сборку самостоятельно. На странице загрузки есть пакеты для различных дистрибутивов Linux.

Заключение

Связанные

4 ответа на «5 причин использовать Mono для разработки под Linux»

Дэвид: вы забыли упомянуть, что CLR — это «общая языковая среда выполнения» — интерпретируемый/JIT-компилируемый байт-код. довольно просто написать для него альтернативные компиляторы, и именно это и было сделано: IronRuby и IronPython были первыми двумя, о которых я услышал, и это проекты Software Libre. я понимаю, что Microsoft наняла автора IronPython, чтобы он оставался стабильным.

необходимость дополнительной «обручи» (просмотр сторонних сайтов с документацией по API и доверие к компилятору и CLR) — тот факт, что вы используете что-то «неофициальное» (IronPython или IronRuby для доступа к модулям с динамическим самоописанием). и предметы) не должен отпугивать людей, но отталкивает, и мне очень жаль.

Как многолетний профессиональный разработчик Visual Studio, я был очень впечатлен тем, что сделали Mono и MonoDevelop. Хотя в нем нет большинства наворотов, которые есть в VS, в нем есть все, что нужно для выполнения работы.

Читайте также: