Кроссплатформенность mac os windows

12 кросс-платформенных инструментов для Windows, Macs и Linux

Введение

Один из вечных вопросов ИТ-индустрии состоит в том, какую платформу лучше всего выбрать для корпоративной сети. При этом абсолютно бессмысленно рассуждать, какая из платформ будет господствовать в ближайшие 5 – 10 лет. И дело здесь совсем не в предпочтениях. Просто большинство корпоративных сетей представляют собой «разношерстный» набор двух и более операционных систем, включая серверы и настольные компьютеры. Поэтому вопрос, скорее, следует ставить так: «Какие инструменты мы можем использовать для «наведения мостов» между Windows и остальной сетью?»

Главное требование кросс-платформенного мира состоит в том, чтобы предлагаемое решение максимально упрощало управление разными ОС в сети. Ниже приведен список из 12 кросс-платформенных инструментов, которые помогут вам управлять аппаратной средой и сделают мир Windows ( Linux / Unix / Mac) гораздо комфортнее.

1. Likewise Enterprise – «дружим» Windows с другими ОС

Совсем недавно Microsoft Subnet сообщила о выпуске версии средств интегрирования Active Directory от Likewise с открытыми кодами. Но полная версия Likewise Enterprise, которая позволяет пользователю интегрировать Windows с другими операционными системами, является коммерческим продуктом. Likewise обеспечивает кросс-платформенную совместимость Active Directory, Group Policy Management, NIS Migration, Security, SuDo и Single Sign-on для приложений. Если вы работаете с неоднородными сетевыми ресурсами или планируете запустить такую сеть в будущем, инструменты Likewise обеспечат простую интеграцию и удобное управление компонентами.

2. xTuple ERP – организация работы предприятия

В мира слияния корпораций и смешения платформ xTuple обеспечит ERP-решение, которое будет работать во всей вашей сети. Термин ERP (Enterprise Resource Planning System) переводится как «Система планирования ресурсов предприятия». Соответственно, xTuple обеспечит вам кросс-платформенное решение для планирования ресурсов. Этот программный клиент работает на Windows, Linux и Mac и выпускается в трех редакциях: PostBooks, Standard и OPENMFG. Standard и OPENMFG являются коммерческими продуктами, а бесплатная версия Postbooks доступна в открытых кодах и содержит инструменты для управления финансовыми потоками, а также модули управления продажами, поставками и складской учет.

Версия Standard предлагает дополнительные модули для управления распределением товаров, розничной продажей и мелким производством. Версия OPENMFG включает всеобъемлющее управление производством и распределением. Все три версии поставляются с редактором отчетов OPENRPT. Если вам требуются кросс-платформенные инструменты для планирования, управления и организации ежедневной работы предприятия – программные продукты xTuple ERP могут стать вполне подходящим решением.

3. WimbaClassroom 5.2 – организация виртуального обучения

Организация виртуального офиса и поддержка мобильных работников несет в себе новые проблемы. Вначале возникает вопрос, каким образом лучше объединить сотрудников и поддерживать взаимодействие между ними. В свою очередь, это порождает вопрос, как свести к минимуму конфигурацию и не потерять при этом в независимости платформы? В этом вам сможет пригодиться пакет Wimba Classroom. Это не только «виртуальный класс» или средство для организации дистанционного обучения: он содержит в себе все необходимые инструменты для объединения удаленных сотрудников, работающих в разных ОС. Кроме того, данный программный продукт поддерживает множество приложений, включая PowerPoint, HTML, Flash, видео, графику и т.д.

Пользователи Wimba Classroom стартуют в общей сессии, а затем могут создавать отдельные виртуальные рабочие кабинеты для специализированных задач. Инструкторы могут создавать загружаемые MP3 файлы, а также проводить опросы и анализировать их результаты с целью получения максимально достоверной информации. Таким образом, если перед вами стоит задача организации полнофункционального класса или образовательного процесса, подразумевающих работу с различными платформами, то советуем обратить внимание на Wimba Classroom.

4. Orion Network Performance Monitor — мониторим работу сети

Формально Orion NPM не является кросс-платформенным инструментом, так как требует наличия Windows server и .NET Framework. Но, безусловно, Orion NPM является эффективным монитором для всех платформ и поэтому он включен в этот список: пользователям может понравиться ряд решений, реализованных SolarWinds. Компания производит программное обеспечение для эффективной защиты от ошибок, конфигурирования и управления согласованием, а также развертывания и картирования сети.

Читайте также:  Start windows restore point

Кроме того, здесь предусмотрены инструменты для мониторинга данных, VoIP телефонии, беспроводного трафика, беспроводных подключений и оценки эффективности приложений. Некоторые из этих инструментов бесплатны. http://www.solarwinds.com/products/orion/index.aspx

5. SharedPlan Pro – работаем с бизнес-планом

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

SharedPlan позволяет работать с проектом как на вашем компьютере, так и на веб-хостинге самого SharePlan. Доступ к Интернет-версии возможен с любого браузера любой операционной системы. Кроме того, в SharedPlan можно импортировать файлы MS Project Pro, но стоит она гораздо дешевле последней. Простая лицензия обойдется пользователям менее чем в $200.

6. FreeNATS – тестируем сеть

Поставляется в виде инсталлируемого PHP-пакета или как виртуальное устройство. FreeNATS – это стабильно работающий бета-продукт. FreeNATS позволяет тестировать сеть и генерировать сообщения о том, что случилось в вашей организации. Текущая версия продукта еще не является окончательным бизнес-решением, но имеет все базовые функции для SMB, необходимые для создания программных тестов и тестов по запросу для наиболее важных сетевых приложений и протоколов. Кроме того, продукт активно улучшается, благодаря обратной связи с пользователями, и постоянно приобретает новые функции тестирования.

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

Кроссплатформенность

Кроссплатформенность — это способность системы работать под управлением различных операционных систем. Основные компоненты системы могут работать как под управлением операционной системы Windows, так и под управлением операционной системы Linux. Кроме этого клиентская часть «1С:Предприятия 8» может быть запущена и на компьютерах с операционными системами OS X и Apple iOS.

Клиентские приложения на различных платформах

Пользователи различных устройств на разных операционных системах могут работать с информационными базами «1С:Предприятия 8» с помощью любого из клиентских приложений. Толстый и тонкий клиенты реализованы для Windows, Linux и OS X. Веб-клиент исполняется в среде интернет-браузера и адаптирован для работы с популярными браузерами: Internet Explorer, Mozilla Firefox и Safari. Мобильный клиент работает на мобильных устройствах под управлением операционных систем Android, iOS и Windows.

  • пользователи Windows могут работать веб-клиентом используя браузеры Windows Internet Explorer или Google Chrome;
  • пользователи Linux могут работать с веб-клиентом используя браузер Mozilla Firefox;
  • пользователи OS X могут работать с веб-клиентом используя браузер Safari.

Многоплатформенность системы

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

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

В общем случае архитектура «1С:Предприятия 8» позволяет смешивать в одной системе элементы, работающие под управлением различных операционных систем.

Многоплатформенность кластера

Компьютеры, входящие в состав кластера, могут работать под управлением операционных систем Windows или Linux. Допускается включение в состав одного кластера рабочих серверов, функционирующих под разными операционными системами.

Один бинарник, любое окружение. Магия чистого C

Как мы представляем себе кроссплатформенность? Мы пишем программу на языке, который либо компилируется в исполняемый файл отдельно для каждой поддерживаемой платформы, либо использует разновидность виртуальной машины вместо бинарника (и тогда эта среда должна присутствовать в целевых системах). Есть также и низкоуровневые языки, на которых писать серьёзные программы менее удобно, чем на высокоуровневых монстрах со своими компиляторами или рантаймами, но зато такие программы менее требовательны к предустановленному софту или наличию ОС в принципе, как и менее разборчивы в архитектуре. И всё же, есть возможность писать один и тот же код и собирать один и тот же бинарь под все популярные архитектуры и ОС (и даже bare metal), и эта возможность появилась благодаря гениальной Justine Tunney. Она написала Cosmopolitan, библиотеку на C, позволяющую исполнять один и тот же код на любой машине, подобно Java… но без какого-либо предустановленного интерпретатора или виртуальной машины! Один и тот же скомпилированный файл может исполняться как минимум в любом дистрибутиве Linux, на Mac OS, Windows NT, FreeBSD, OpenBSD, и NetBSD и на bare-metal на x86 и ARM*. Это настоящая магия.

Читайте также:  Восстановление windows с флешки acronis

* — для ARM всё же потребуется своего рода эмулятор, но он также встраивается в единственный исполняемый файл. При этом страдает минимальный размер файла, но не его производительность, и разница всё равно будет заметна только для совсем крохотных программ вроде hello world.

αcτµαlly pδrταblε εxεcµταblε

Всё началось с переосмысления формата Windows Portable Executable. Оказывается, совместив в одном файле заголовки Windows и UNIX, можно выполнять WPE как скрипт для Thompson shell: пока его не сменил sh в седьмой версии UNIX, скрипты не использовали шебанг. А значит, такой формат позволяет бинарнику запускаться на Windows, Linux и Mac OS:

На видео ниже — визуализация выполнения этого кода в другом инструменте этой же разработчицы, Blinkenlights. Если при выполнении файла в Win символы MZqFpD распознаются как заголовок WPE, то при запуске под UNIX это pop %r10 ; jno 0x4a ; jo 0x4a , \177ELF считывается как jg 0x47 . Затем программа пропускает выражение mov, что означает что она выполняется в системе, а не в загрузчике, и переходит к точке входа в скрипт.

Этот формат теперь называется αcτµαlly pδrταblε εxεcµταblε (если вы против пост-мета-сарказмо-иронии, лучше не читайте исходники у этой разработчицы, а формат называйте APE. Исходники правда классные). Проект Cosmopolitan — пример реального использования APE, развивавшийся от PoC до первых релизов и включения в другие проекты.

Нужна лишь одна строка, чтобы прокачать gcc для компиляции в APE:

Помимо простоты, Cosmopolitan удивляет легковесностью: hello world весит примерно в сто раз меньше аналога на «оптимизированном и кроссплатформенном» Go и занимает всего 16 килобайт! Вышеупомянутый эмулятор для ARM уменьшит превосходство с 100 до 10 раз, но такая большая разница только для такого малого размера. Но и это не всё: библиотека ещё и показывает великолепную производительность: чуть медленнее glibc, но с меньшим размером кода, и значительно быстрее Musl и Newlib при сопоставимом размере.

Например, по быстродействию функции memcpy() Cosmopolitan вообще всех обгоняет из-за специфичной механики копирования памяти:

Работает это так: чтобы ускорить часто используемые функции libc, функция вызывается внутри макроса, в котором компилятор получает информацию об используемых регистрах CPU, что позволяет экономить на сохранении состояния CPU, работая только с изменёнными регистрами. На примере memcpy:

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

Вот так выглядит код функции strlcpy, BSD-аналог strcpy:

А теперь сравним результаты её компиляции:

классический libc cosmopolitan libc

Заключение

«As far as I’m concerned, this is literal magic», «this is the best programming-related thing I’ve seen on the internet in a long time», «This is one of the most interesting projects I have seen this year» — комментарии на hackernews и в твиттере буквально ломятся от восторженных возгласов. Несмотря на некоторые ограничения, концепция APE действительно выглядит как большой и важный прорыв в подходе к кроссплатформенности. Уже есть несколько реальных примеров использования Cosmopolitan, из них самым мощным точно можно назвать сервер Redbean. Однофайловый, независимый от платформы сервер. Потенциал этой штуки сложно даже мысленно охватить, а тред на HN собрал больше двух тысяч комментов. Помимо этого в твиттере автора периодически появляются всякие интерпретаторы (Lua, JS) и примеры помельче.

Читайте также:  Включение или отключение компонентов windows пустое окно

Облачные серверы по низким ценам для любых задач. Используем новейшее железо, лучший дата-центр в Москве уровня надёжности TIER IV, бесплатно предоставляем защиту от DDoS-атак на любом тарифном плане, который можно создать самостоятельно в течение мгновения.
Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Совершенный код: поддержка кроссплатформенности

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

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

Современные высокоуровневые языки изначально кроссплатформенны. Они прячут различия в операционных системах за готовыми абстракциями. Например, чтение и запись файлов внутри этих языков не зависит от того, где запускается код:

Но есть определенные вещи, которые спрятать нельзя, и программисту приходится работать с ними напрямую. Возьмем для примера разделитель директорий. В Windows это \ обратный слеш (backslash), в Linux – / прямой слеш или просто слеш. Какой использовать? Попробуем разобраться.

Разделитель директорий

Во многих языках пытаются упростить эту задачу, добавляя специальные идентификаторы (переменные, константы), содержащие символы, специфичные для конкретной операционной системы. В зависимости от того, где запускается программа, значение этих идентификаторов может отличаться. В JavaScript это работает так:

Решение кажется очевидным: достаточно начать использовать path.sep в тех местах, где идет работа с путями, и вопрос исчерпан. Да, для подавляющего большинства ситуаций такой ход сработает, но не для всех. Представьте, что наша программа должна формировать конфигурационный json-файл, внутри которого есть пути:

Затем этот файл будет использоваться на самом сайте (в продакшене). В подавляющем большинстве случаев продакшен (место где запускается сайт) работает на Linux. Это значит, что если файл был сформирован в Windows-среде, то он не заработает в Linux-среде, так как Linux не понимает обратные слеши (как и MacOS). Что делать в этой ситуации?

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

Перевод строки

Другой пример — перевод строки. В большинстве операционных систем для перевода строк используется \n , но только не в Windows. Там по историческим причинам перевод строки — это \r\n . И это уже действительно проблема, потому что касается не только того, как работает код, но и в принципе самого исходного кода. Каждый файл, который сохраняется в Windows, будет сохраняться с \r\n в конце каждой строки. Это приводит к куче разных проблем:

  • появляются различные артефакты при выводе данных;
  • сходит с ума гит и редактор;
  • усложняется отладка тестов, так как данные визуально выглядят одинаково, но не совпадают при сравнении.

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

Как раз этот подход приводит к проблемам, указанным выше.

Второй подход — всегда использовать \n . Ситуация здесь аналогична разделителю директорий. \n — универсальный символ, одинаково хорошо работает и в Windows, и в остальных операционных системах:

Но это еще не все. В обязательном порядке нужно правильно настроить и редакторы, и гит. Только после этого можно начинать говорить о кроссплатформенности.

Оцените статью