Колядинъ Даръ

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Колядинъ Даръ » Программа "Колядинъ Даръ" » Колядинъ Даръ на Linux


Колядинъ Даръ на Linux

Сообщений 1 страница 14 из 14

1

Здравия!
Я пользуюсь Линуксом. Соответственно хочу использовать программу в Линуксе.
В Линуксе есть эмулятор API винды, но он ограничен в возможностях...
Вообще хотелось бы полностью заменить календарь по "новому стилю" на Русский календарь.
Отсюда предложение: портировать программу Колядинъ Даръ на Линукс.
Готов сделать это.
Я сам не профессиональный программист и мои знания ограничены, но у меня есть много друзей, которые помогут с технической стороной вопроса.
Кроме того на Линуксе нет ни одной такой программы.
Како моё предложение?

0

2

Добра и Вам, EagleStars!

Рад, что армия пользователей программы ширится :)

По моим соображениям, Колядинъ Даръ должен и на Линуксе работать.

Он ведь написан под .NET 2.0, а Mono c ним полностью совместим.

Но сам не проверял, если честно  ;)  Пробуйте!

0

3

Здравия!
Прошу прощения за то, что не смогу отвечать сразу.
Я пробовал запускать...

С моно ситуация такова: моно совместим с .net, а .net не совместим с mono. В лучшем случае нужно перекомпилировать в моно под Линукс.
Вообще есть серьёзные отличия в запуске программ в винде и Линуксе.
Во первых это бинарная структура. Например в Линуксе есть биты, указывающие на тип файла. А это нужно ковырять двоичный код. Из за этих отличий рабочий файл просто не работает.
В Линуксе другие системные вызовы. "KLD.exe" это не чистый машинный код. Запускаемые файлы работают через ядро ОС. А для этого они должны знать коды вызовов функций конкретного ядра ОС. В общем нужно менять api на POSIX.
Различается вызов библиотек. Установка библиотек отличается: в Линуксе есть система "Репозиторий". Смысл её в автоматической доустановки библиотек и для запуска программы без репозитория эти библиотеки нужно знать и установить вручную.
Так же отличается установка программ. Т.к. есть репозиторий, то и программы для установки в ручную не качают. Зачем, раз можно один раз подключить репозиторий и система сама всё скачает и установит, будет следить за обновлениями программ, со стороны разработчика сама скомпилирует под новые библиотеки?...
В Линуксе есть множество графических систем. Т.е. окошко в винде рисуется, в принципе, или с помощью осла или с нуля самой программой. В Линуксе мы можем задать любой рисовальщик окон на свой вкус. Соответственно и вызовы тут свои. Для графики используются в основном библиотеки GTK или QT (GTK луче и более распространена). А те в свою очередь пользуются "рисовальщикам" (правильно называются "декораторы" или "оконные менеджеры": Metacity, Beryl...).
Примечание: Советую погуглить по ютубе запросом "compiz" и посмотреть самое большое собрание тем оформления. Есть на что посмотреть!
Потом распространение программы с закрытым исходным кодом в Линуксе будет очень сильно затруднено. Линукс практически неуязвимая в плане вирусов и взломов вещь. Закладки тут тоже очень большая редкость. Поэтому редко кто захочет связываться с программой с закрытым исходным кодом.
Примечание: проблем с приоритетом при открытом коде нет. Простой принцип: зачем изобретать велосипед, раз есть уже готовый модуль? Что бы он работал обычно делают так: пишут модуль в виде библиотеки и/или простой программы для работы в терминале (текстовый интерфейс как в dos), а графический модуль отдельно. Система зароботка стротся по другому: платное техобслуживание, платные доработки по индивидуальным заказам, реклама. Хотя ни кто не запрещает и платные версии программ: не смотря на отсутствие реестра, есть куча возможностей ограничить работу программы.

Вообще программу можно запустить в wine, с предварительной установкой .net в wine. wine это эмулятор виндового api и некоторых других частей винды, необходимых для запуска программ. Но во первых многие его избегают из соображений безопасности: wine не только программам создаёт возможность работать, нои вирусам, уязвимостям... Во вторых, после красот графических наворотов Линукса, виндовый вид, мягко говоря, убог. В третьих wine всё таки эмулятор, и чувствительно тормозит работу программы; хотя конечно и меньше чем полный эмулятор.

Вот такая ситуация. Честно говоря при её разборе я сам кое что открыл для себя: к примеру, безполезность распространения программы с закрытым исходным кодом.

Что думаете по всему этому?

0

4

Да, забыл сказать... Моно из за его связи с .net практически ненавидят. Тормознутое создание. И, самое главное, единственная вещь в Линуксе, которая создаёт проблемы с безопасностью. Фактически моно не пользуются. В идеале луче перевести на другой ЯП.

0

5

Благодарю за столь подробную консультацию по Линуксу :)

Он мне немного знаком - собирал прошивку для роутера на его основе,
ну и админил через Телнет  :glasses:

На компе пока не ставил - нет времени, возможно, потом как-нибудь соберусь.

Насколько мне известно, .NET-программа действительно представляет собой
не машинный код (в смысле код для процессора), а байт-код CLI для
виртуальной машины .NET. И он должен на ней выполняться независимо от того,
где работает виртуальная машина. Не надо для этого ничего заново компилить,
иначе в чём же смысл кросс-платформенности?..

Конечно, запускать .NET через Wine - какой-то слишком уж извращённый способ  %-)
Исполняемый модуль должен работать на Mono:Runtime,
иначе зачем же он вообще нужен, разве не для этого?

Но надо разбираться, как там всё это работает...  :writing:

0

6

Я знаю что .net задумывалась как аналог джава...

Код:
~$ mono /home/igor/KLD.exe

** (/home/igor/KLD.exe:4945): WARNING **: The following assembly referenced from /home/igor/KLD.exe could not be loaded:
     Assembly:   System.Drawing    (assemblyref_index=1)
     Version:    2.0.0.0
     Public Key: 969db8053d3322ac
The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (/home/igor/).


** (/home/igor/KLD.exe:4945): WARNING **: Could not load file or assembly 'System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=969db8053d3322ac, Retargetable=Yes' or one of its dependencies.

** (/home/igor/KLD.exe:4945): WARNING **: The following assembly referenced from /home/igor/KLD.exe could not be loaded:
     Assembly:   System.Windows.Forms    (assemblyref_index=2)
     Version:    2.0.0.0
     Public Key: 969db8053d3322ac
The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (/home/igor/).


** (/home/igor/KLD.exe:4945): WARNING **: Could not load file or assembly 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=969db8053d3322ac, Retargetable=Yes' or one of its dependencies.

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=969db8053d3322ac, Retargetable=Yes' or one of its dependencies.
File name: 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=969db8053d3322ac, Retargetable=Yes'

0

7

Я понимаю в чём загвоздка: нежелание открывать коды.
Когда я только создал тему, то меня интересовал только Русский календарь на Линукс. Я понимал, что возможен такой момент, когда автор пожелает оставить коды закрытыми. Поэтому рассчитывал только на получение запускаемого модуля для самостоятельной допилки: выявления ошибок, обвешивание графикой, создания аплета для панели и т.п.
Жаль конечно, что мы не можем совместить наши взгляды и возможности.
Постараюсь написать программу сам.
Успехов!  :)
Слава Богам!

0

8

EagleStars написал(а):

Постараюсь написать программу сам.

Вот почему я до сих пор не поставил себе Линух:
в нём всё приходится делать самому   :playful:

EagleStars написал(а):

Я понимаю в чём загвоздка: нежелание открывать коды.

Я этого не говорил ;) Но верно, не горю таким желанием. Причин несколько:
- код программы не полностью принадлежит мне. Часть скопирована
   из чужих примеров, которые, правда, были на С++, а я их переделал
   на Паскаль, но сути это не меняет;
- хочется сохранить контроль над программой. Ведь столько сил вложено  :tomato:
Давай оставим этот вариант на крайний случай  :rolleyes:

"Колядинъ Даръ" задуман как универсальная программа - значит, обязан работать везде!
В том числе и в Моно. Думаю, что можно попробовать всё же запустить его там
(это проще "самостоятельной допилки" исходных кодов. И гораздо проще, чем написать
свою программу с нуля).

Для начала надобно разобраться, что за ошибки вылазят. Вижу, что Моно
ругается на нехватку модулей System.Drawing и Windows.Forms.
Но это стандартные вызовы любой .NET-программы. Попробуй для начала
добиться, чтобы в Моно запустилась хоть какая-нибудь .NET-программа.
Это условие выполняется?

P.S.: надеюсь, не обидел, перейдя на "ты"? на мой взгляд, так проще общаться.

0

9

Vladimyr написал(а):

Вот почему я до сих пор не поставил себе Линух: в нём всё приходится делать самому

А я как раз и поставил себе Линукс что бы не делать ни чего. И он оправдал эти намеринья.

Vladimyr написал(а):

хочется сохранить контроль над программой.

Не получится. Думаешь зачем делают патчи, новые версии, техподдержку?... Потому что закрытие кодов не даёт контроля над программой.

Vladimyr написал(а):

Попробуй для начала
добиться, чтобы в Моно запустилась хоть какая-нибудь .NET-программа.
Это условие выполняется?

Это теоретически невозможно. Я же писал:

EagleStars написал(а):

моно совместим с .net, а .net не совместим с mono. В лучшем случае нужно перекомпилировать в моно под Линукс.

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

0

10

EagleStars написал(а):

Не получится. Думаешь зачем делают патчи, новые версии, техподдержку?... Потому что закрытие кодов не даёт контроля над программой.

Надеюсь, Колядинъ Даръ не настолько сложен,
чтобы к нему потребовались патчи и техподдержка  :glasses:
Правда, один небольшой апдейт будет очень скоро.

EagleStars написал(а):

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

Вообще-то на твоей ссылке написано:
"я могу написать и скомпилировать программу под Linux,
используя Mono, а затем запустить ее под Windows
с установленной .NET Framework
"
и далее:
"Программы могут быть запущены на любом типе процессора,
под управлением любой операционной системы, поддерживающей
платформу CLI, без необходимости перекомпиляции
"
Что как раз подтверждает обратное!

EagleStars написал(а):

поставил себе Линукс что бы не делать ни чего.
И он оправдал эти намеринья

Позволю себе предположить, что опыт в таком случае у тебя небольшой  ;)
А следовательно, ты просто не разбирался в Моно досконально.
Пусть нас рассудит более опытный линуксоид, ну или
попробую сам поковыряться (правда, пока времени маловато).

0

11

В общем, потратил полчаса и убедился-таки в собственной правоте.
Рекомендую прочесть небольшую статейку Чарли Калверта
WinForms: How to Use Mono to Get Microsoft .NET GUI Based Applications Running on Linux
особенно абзац про "Built in Windows, runs on Linux".
И добиться того, чтобы на твоей машине запустилось хоть
какое-нибудь .NET приложение для Винды (Wine ставить
всё же придётся, там кое-какие библиотеки от него нужны).
Дальше посмотрим по результатам.

А в будущем, постарайся не делать необоснованных заявлений :suspicious:

0

12

Правда, один небольшой апдейт будет очень скоро.

Буду ждать с нетерпением!  :cool:

Vladimyr написал(а):

Вообще-то на твоей ссылке написано:
"я могу написать и скомпилировать программу под Linux,
используя Mono, а затем запустить ее под Windows
с установленной .NET Framework"
и далее:
"Программы могут быть запущены на любом типе процессора,
под управлением любой операционной системы, поддерживающей
платформу CLI, без необходимости перекомпиляции"
Что как раз подтверждает обратное!

В этой же цитате:

я могу написать и скомпилировать...,
используя Mono
,

Это же хочу сказать и я.

Vladimyr написал(а):

Позволю себе предположить, что опыт в таком случае у тебя небольшой

Небольшой. Чуть больше полутора лет. Но занимаюсь плотно. Ронял систему не раз. Но проблем с рабочими, не под эксперимент, установками нет. А те что были, давно допилил или сам, или нашёл решение, или вышли патчи. Обновлениями не балуюсь, да и не создают они больших проблем, даже когда попадается редкая ошибка. Использую в основном Ubuntu LTS: с неё начинал и она мне наиболее известна и понятна. Сейчас делаю свой "Линукс с нуля".

Vladimyr написал(а):

А следовательно, ты просто не разбирался в Моно досконально.

Действительно не разбираюсь досконально. Потому и пришёл просить помощи у создателя.

Vladimyr написал(а):

А в будущем, постарайся не делать необоснованных заявлений.

Если чем обидел, то извиняюсь! Не со зла.
аглицкий я не знаю вообще, даже на уровне школы. Пользуюсь гуловским переводчиком. С чем смог познакомится на Русском, с тем и имею дело. Вот отсюда и возможные ошибки.
Со статьёй поработаю плотно. Отпишусь чуть позже. Мысли есть...

Отредактировано EagleStars (2010-11-02 22:01:01)

0

13

Да я без обид. Просто мой девиз: "Сначала убедись сам, потом спорь"  :glasses:

Что я пока прочитал, убеждает меня в том, что программы, написанные на .NET
и скомпилированные под Виндой, обязаны запускаться на Линуксе, и наоборот.
Разве что какая-то особая несовместимость вылезет, но это вероятно в поздних
версиях фреймворка, а у меня задействован только 2.0 (хотел поначалу вообще
первой версией ограничиться, но не вышло).

А что до статьи, там несложно. Сначала ставится сам Моно плюс Wine (в статье
есть ссылка на подробную инструкцию, но думаю, ты и так справишься), потом
WineLib. Запускать Wine не придётся, так что "дыры в системе" не будет  ;)

Затем запускаешь

Код:
mono kld.exe

Если будут проблемы, постараюсь помочь, чем смогу  :flag:

0

14

Есть версия под Лин! Добро пожаловать в новую ветку: Колядинъ Даръ для Линуксъ ВЫШЕЛ!!! (видео)

0


Вы здесь » Колядинъ Даръ » Программа "Колядинъ Даръ" » Колядинъ Даръ на Linux


Рейтинг форумов | Создать форум бесплатно