Rating@Mail.ru
IPB
Etersoft - from Windows to Linux
Etersoft
решения для перехода
с Windows на Linux
Дружественные сайты: alv.me и Rus-Linux.net

Здравствуйте, гость ( Вход | Регистрация ) Поиск · 

 
Reply to this topic Start new topic
> Прибивание программы гвоздями к...
ArkanJR
bookmark
gyfbbdvkffmrljmmmwd
Nov 5 2017, в 20:24
Сообщение #1


Коренной житель
Иконка группы

Сообщений: 986

Вставить имя   :   Цитата

ОС: MS Windows, МСВС

Группа: Участники

Автор темы
Каким образом программное обеспечение прибивается гвоздями к операционной системе и/или компьютерной архитектуре так, что через некоторое время проще написать эмулятор для запуска данного ПО, чем переписывать его под другую ОС и/или железо?


--------------------
— Да, это была ошибка, Кемп, огромная ошибка, что я взялся один за это дело. Напрасно потрачены силы, время, возможности. Один… Удивительно, как беспомощен человек, когда он один! Мелкая кража, потасовка — и всё.

© Г. Уэллс "Человек-невидимка"
Go to the top of the page
 
+Quote Post
devilr
bookmark
gyfbbdvkffmrljmmmwd
Nov 5 2017, в 20:38
Сообщение #2


Коренной житель
Иконка группы

Сообщений: 881

Вставить имя   :   Цитата

ОС: Mandriva => Gentoo (~amd64)

Группа: Участники

Можно проверять 100500 параметров данной ОС/железа, причем делать это 100500 разными функциями. Можно также использовать 100500 антиотладочных способов, причем все также веером раскидать по коду. Навернуть 100500 слоев высокоуровневых абстракций...
А насчет переписывания - если исходного кода нет, то чаще всего именно проще (и дешевле) написать эмулятор. Кстати, даже если он есть - можно писать код так, что стоимость его изменения/доработки многократно превысит написание его с нуля. И это не обязательно может быть говнокод smile.gif


--------------------
Мудрость приходит с возрастом.
Иногда возраст приходит один.


Спасибо сказали:
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Nov 5 2017, в 21:13
Сообщение #3


grammatikführer
Иконка группы

Сообщений: 12931

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

К ОС — очень просто: достаточно использовать специфичные для неё API или библиотеки. Например WinAPI, нестандартные расширения GNU libc, системные вызовы и т. п.
К архитектуре — чуть сложнее, есть два варианта. Первый — полнейшая безграмотность разработчиков, которые исходят из допущений, верных только для одной архитектуры (например о типах данных: ширина int, размер указателя, знаковость char и всё такое; также могут полагаться на какой-то вариант не определённого стандартом языка поведения). Второй — привязанные к архитектуре оптимизации (ассемблерные вставки, SIMD), сделанные без сохранения переносимой реализации.


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик


Спасибо сказали:
Go to the top of the page
 
+Quote Post
ArkanJR
bookmark
gyfbbdvkffmrljmmmwd
Nov 6 2017, в 17:17
Сообщение #4


Коренной житель
Иконка группы

Сообщений: 986

Вставить имя   :   Цитата

ОС: MS Windows, МСВС

Группа: Участники

Автор темы
Цитата(Bizdelnick @ Nov 5 2017, в 22:13) *
К ОС — очень просто: достаточно использовать специфичные для неё API или библиотеки. Например WinAPI, нестандартные расширения GNU libc, системные вызовы и т. п.

Типа
Код
system("clear");
?


--------------------
— Да, это была ошибка, Кемп, огромная ошибка, что я взялся один за это дело. Напрасно потрачены силы, время, возможности. Один… Удивительно, как беспомощен человек, когда он один! Мелкая кража, потасовка — и всё.

© Г. Уэллс "Человек-невидимка"
Go to the top of the page
 
+Quote Post
NickLion
bookmark
gyfbbdvkffmrljmmmwd
Nov 6 2017, в 17:24
Сообщение #5


аватар-невидимка
Иконка группы

Сообщений: 3146

Вставить имя   :   Цитата

ОС: openSUSE Tumbleweed x86_64
Город: Львів

Группа: Участники

ArkanJR
man syscall
https://en.wikipedia.org/wiki/System_call


Спасибо сказали:
Go to the top of the page
 
+Quote Post
s.xbatob
bookmark
gyfbbdvkffmrljmmmwd
Nov 8 2017, в 15:36
Сообщение #6


Бывалый
Иконка группы

Сообщений: 423

Вставить имя   :   Цитата

ОС: RfRemix
Город: Санкт-Петербург

Группа: Участники

Цитата(NickLion @ Nov 6 2017, в 17:24) *

Это как раз давным-давно обратно совместимо. Так же, как и API libc.
Вот версии других разделяемых библиотек вполне могут повлиять.
Go to the top of the page
 
+Quote Post
NickLion
bookmark
gyfbbdvkffmrljmmmwd
Nov 8 2017, в 15:57
Сообщение #7


аватар-невидимка
Иконка группы

Сообщений: 3146

Вставить имя   :   Цитата

ОС: openSUSE Tumbleweed x86_64
Город: Львів

Группа: Участники

s.xbatob
Вопрос был не про "обратную" совместимость, а между разными ОС и архитектурами. Вы правда считаете, что syscall написанный для Linux заработает на FreeBSD? Я даже про Linux x86_64 и Linux ARM не был бы уверен.
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Nov 8 2017, в 16:32
Сообщение #8


grammatikführer
Иконка группы

Сообщений: 12931

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

Цитата(NickLion @ 8th November 2017 - в 15:57) *
Вы правда считаете, что syscall написанный для Linux заработает на FreeBSD?

Ну вообще в FreeBSD для этого есть прослойка-эмулятор, так что данный конкретный пример не самый удачный.


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Go to the top of the page
 
+Quote Post
NickLion
bookmark
gyfbbdvkffmrljmmmwd
Nov 8 2017, в 17:39
Сообщение #9


аватар-невидимка
Иконка группы

Сообщений: 3146

Вставить имя   :   Цитата

ОС: openSUSE Tumbleweed x86_64
Город: Львів

Группа: Участники

Bizdelnick
Заработает любой syscall написанный для Linux? Не ожидал.
Go to the top of the page
 
+Quote Post
s.xbatob
bookmark
gyfbbdvkffmrljmmmwd
Nov 8 2017, в 17:42
Сообщение #10


Бывалый
Иконка группы

Сообщений: 423

Вставить имя   :   Цитата

ОС: RfRemix
Город: Санкт-Петербург

Группа: Участники

Цитата(NickLion @ Nov 8 2017, в 15:57) *
s.xbatob
Вопрос был не про "обратную" совместимость, а между разными ОС и архитектурами. Вы правда считаете, что syscall написанный для Linux заработает на FreeBSD? Я даже про Linux x86_64 и Linux ARM не был бы уверен.

Двоичный код для X86 на ARM, понятное дело, не заработает. Но программа, пересобранная из одних и тех же исходных текстов, скорее всего заработает.
Go to the top of the page
 
+Quote Post
yoshakar
bookmark
gyfbbdvkffmrljmmmwd
Nov 8 2017, в 18:54
Сообщение #11


Завсегдатай
Иконка группы

Сообщений: 215

Вставить имя   :   Цитата

ОС: Debian Stretch
Город: Тула

Группа: Участники

Цитата(s.xbatob @ 8th November 2017 - в 17:42) *
Но программа, пересобранная из одних и тех же исходных текстов, скорее всего заработает.
Ну попробуйте, для примера, взять текст программы mount из FreeBSD (он, кстати, очень маленький и простой) и скомпилировать и запустить в Linux.
Go to the top of the page
 
+Quote Post
s.xbatob
bookmark
gyfbbdvkffmrljmmmwd
Nov 8 2017, в 20:21
Сообщение #12


Бывалый
Иконка группы

Сообщений: 423

Вставить имя   :   Цитата

ОС: RfRemix
Город: Санкт-Петербург

Группа: Участники

Цитата(yoshakar @ Nov 8 2017, в 18:54) *
Цитата(s.xbatob @ 8th November 2017 - в 17:42) *
Но программа, пересобранная из одних и тех же исходных текстов, скорее всего заработает.
Ну попробуйте, для примера, взять текст программы mount из FreeBSD (он, кстати, очень маленький и простой) и скомпилировать и запустить в Linux.

Стоп!
Я, наверное, могу даже и пристроить -- потому что я начал работать с UNIXами в те времена, когда не то чтобы sysv, так и pc ещё не было. На машинах, совместимых с pdp-11. Но не хочу.
И вообще, держался бы я за старое, так до сих пор работал бы на логарифмической линейке или на арифмометре.
Ну ладно, всё это беллетристика. А совместимости не будет, и бороться за неё - это путь в никуда, к тому же арифмометру. Такая же у нас профессия: как только ты стал в своей области гуру, так это уже никому не интересно. Приходится следить за новым это всё изучать как дураку.
Go to the top of the page
 
+Quote Post
NickLion
bookmark
gyfbbdvkffmrljmmmwd
Nov 9 2017, в 11:23
Сообщение #13


аватар-невидимка
Иконка группы

Сообщений: 3146

Вставить имя   :   Цитата

ОС: openSUSE Tumbleweed x86_64
Город: Львів

Группа: Участники

s.xbatob
Опять вы за "старое". Вопрос не в старом или обратной совместимости, а в том как написать программу, которую сложно переписать под другую ОС или архитектуру. Сейчас это в основном Windows, OS X, Linux, FreeBSD и IA32, AMD64, ARM, ARM Thumb(2), AArch64.

Например, как Total Commander, прибитый гвоздями к WinAPI.


Спасибо сказали:
Go to the top of the page
 
+Quote Post
s.xbatob
bookmark
gyfbbdvkffmrljmmmwd
Nov 10 2017, в 11:20
Сообщение #14


Бывалый
Иконка группы

Сообщений: 423

Вставить имя   :   Цитата

ОС: RfRemix
Город: Санкт-Петербург

Группа: Участники

NickLion можно написать что угодно. И мои молодые коллеги периодически такое сотворить пытаются. Только за такой стиль надо руки отрывать!
Собственно, и отрывать не надо. Они потом на поддержке своего кода сами мучаются.
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Nov 10 2017, в 12:18
Сообщение #15


grammatikführer
Иконка группы

Сообщений: 12931

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

Цитата(s.xbatob @ 10th November 2017 - в 11:20) *
Только за такой стиль надо руки отрывать!

Ну так исходный вопрос и был про то, за что надо руки отрывать.


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик


Спасибо сказали:
Go to the top of the page
 
+Quote Post
yoshakar
bookmark
gyfbbdvkffmrljmmmwd
Nov 10 2017, в 21:17
Сообщение #16


Завсегдатай
Иконка группы

Сообщений: 215

Вставить имя   :   Цитата

ОС: Debian Stretch
Город: Тула

Группа: Участники

Цитата(Bizdelnick @ 10th November 2017 - в 12:18) *
Ну так исходный вопрос и был про то, за что надо руки отрывать.
Эм, вы хотите оторвать руки разработчикам Total Commander? Тогда я категорически против. Приложения за редким исключением сами собой кросплатформенными не получаются, их надо специально такими делать, и поэтому если задача сделать приложение кросплатформенным не ставилась, то некроссплатформенность результата — это абсолютно нормально.
Go to the top of the page
 
+Quote Post
ArkanJR
bookmark
gyfbbdvkffmrljmmmwd
Nov 10 2017, в 23:09
Сообщение #17


Коренной житель
Иконка группы

Сообщений: 986

Вставить имя   :   Цитата

ОС: MS Windows, МСВС

Группа: Участники

Автор темы
Цитата(Bizdelnick @ Nov 10 2017, в 13:18) *
Ну так исходный вопрос и был про то, за что надо руки отрывать.

Я бы не спешил с выводами.


--------------------
— Да, это была ошибка, Кемп, огромная ошибка, что я взялся один за это дело. Напрасно потрачены силы, время, возможности. Один… Удивительно, как беспомощен человек, когда он один! Мелкая кража, потасовка — и всё.

© Г. Уэллс "Человек-невидимка"
Go to the top of the page
 
+Quote Post
Kopilov
bookmark
gyfbbdvkffmrljmmmwd
Nov 10 2017, в 23:36
Сообщение #18


Знаток линукса
Иконка группы

Сообщений: 525

Вставить имя   :   Цитата

ОС: Gentoo, Debian
Город: Санкт-Петербург

Группа: Участники

Пишите на Java, заcтрахуйте свои руки biggrin.gif
Go to the top of the page
 
+Quote Post
ArkanJR
bookmark
gyfbbdvkffmrljmmmwd
Nov 11 2017, в 08:33
Сообщение #19


Коренной житель
Иконка группы

Сообщений: 986

Вставить имя   :   Цитата

ОС: MS Windows, МСВС

Группа: Участники

Автор темы
Цитата(ArkanJR @ Nov 11 2017, в 00:09) *
Цитата(Bizdelnick @ Nov 10 2017, в 13:18) *
Ну так исходный вопрос и был про то, за что надо руки отрывать.

Я бы не спешил с выводами.

Цитата
Несмотря на растущую популярность кроссплатформенных программ, таких как Firefox и OpenOffice, нет такой программы, ради которой стоило бы установить Linux на домашний компьютер.»

© LXF71:Настольный Linux

В приведённой цитате я бы заменил домашний компьютер на рабочую станцию. Имелся бы специализированный софт, заточенный под линукс, без которого работа в той или иной корпоративной сфере была бы ощутимо некомфортной, глядишь бы и доля ОС на базе линукс в корпоративном секторе была бы куда выше нынешней...

Так сказать продолжение невесёлого разговора про использование Windows военными на службе.


--------------------
— Да, это была ошибка, Кемп, огромная ошибка, что я взялся один за это дело. Напрасно потрачены силы, время, возможности. Один… Удивительно, как беспомощен человек, когда он один! Мелкая кража, потасовка — и всё.

© Г. Уэллс "Человек-невидимка"
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Nov 11 2017, в 10:30
Сообщение #20


grammatikführer
Иконка группы

Сообщений: 12931

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

Цитата(ArkanJR @ 11th November 2017 - в 08:33) *
Имелся бы специализированный софт, заточенный под линукс, без которого работа в той или иной корпоративной сфере была бы ощутимо некомфортной, глядишь бы и доля ОС на базе линукс в корпоративном секторе была бы куда выше нынешней...

Если бы такой софт имелся, про него всё равно бы никто не знал, так что ничего бы не изменилось, а разработчики просто потеряли время впустую. Будущее за переносимым софтом.


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик


Спасибо сказали:
Go to the top of the page
 
+Quote Post
ArkanJR
bookmark
gyfbbdvkffmrljmmmwd
Nov 11 2017, в 10:37
Сообщение #21


Коренной житель
Иконка группы

Сообщений: 986

Вставить имя   :   Цитата

ОС: MS Windows, МСВС

Группа: Участники

Автор темы
Цитата(Bizdelnick @ Nov 11 2017, в 11:30) *
Если бы такой софт имелся, про него всё равно бы никто не знал, так что ничего бы не изменилось, а разработчики просто потеряли время впустую. Будущее за переносимым софтом.

Совсем не факт...


--------------------
— Да, это была ошибка, Кемп, огромная ошибка, что я взялся один за это дело. Напрасно потрачены силы, время, возможности. Один… Удивительно, как беспомощен человек, когда он один! Мелкая кража, потасовка — и всё.

© Г. Уэллс "Человек-невидимка"
Go to the top of the page
 
+Quote Post

 Reply to this topic Start new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 19th November 2017 - в 17:07




Rating@Mail.ru