Board.KolibriOS.org
http://board.kolibrios.org/

Длина командной строки и пути к файлу при запуске
http://board.kolibrios.org/viewtopic.php?f=1&t=2297
Page 3 of 5

Author:  Serge [ Fri Oct 04, 2013 2:09 pm ]
Post subject:  Re: Длина командной строки и пути к файлу при запуске

Quote:
Я так понимаю, что динамическая линковка будет большой проблемой для MSVC
Она и сейчас проблематична. Для MSVC надо выстраивать свою инфраструктуру. Пока её видно. Проприетарность компилятора создаёт много сложностей. Он не предназначен для создания приложений для других систем (интересно, есть ли в EULA прямой запрет), часто использует встроенные функции, которых нет в открытых исходниках. Их дизассемблирование из бинарников и конвертация в исходный код сомнительна по лицензионной чистоте (привет ac97wav!). Математическая библиотека закрыта полностью, её надо писать заново.

Author:  Mario_r4 [ Fri Oct 04, 2013 2:49 pm ]
Post subject:  Re: Длина командной строки и пути к файлу при запуске

Serge
Что то я не понял. Раз мы купили (ну пусть арендовали, мелкософт нынче эту идею задвигает) инструмент, то как это так мы не имеем полных прав на производный продукт? О_о

Вот мы купили молоток (ну пусть арендовали, "дядядебил лимитед" нынче эту идею задвигает) и чо мы теперь имеем право забивать гвозди только фирмы "дядядебил лимитед" и только в материалы продаваемые фирмой "дядядебил лимитед"? Это же маразм полнейший! Раз так, то следующего человека, который будет настаивать, что компилятор MSVC лучший компилятор во всех отношениях я буду посылать далеко.

Author:  Leency [ Fri Oct 04, 2013 3:08 pm ]
Post subject:  Re: Длина командной строки и пути к файлу при запуске

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

Серж не утверждал. РеактОС, например, юзает их компилятор.

Author:  SoUrcerer [ Fri Oct 04, 2013 3:46 pm ]
Post subject:  Re: Длина командной строки и пути к файлу при запуске

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

Serge, MSVC EULA:
Quote:
General License Grant. Microsoft grants to you as an individual, a personal, nonexclusive license to make and use copies of the SOFTWARE PRODUCT for the sole purposes of designing, developing, and testing your software product(s) that are designed to operate in conjunction with any Microsoft operating system product.

Так что использование MSVC для Колибри - прямое нарушение лицензии.

Author:  SoUrcerer [ Fri Oct 04, 2013 3:58 pm ]
Post subject:  Re: Длина командной строки и пути к файлу при запуске

Мх, в разных версиях EULA по-разному написано. Где-то просто:
Quote:
Microsoft grants to you as an individual, a personal, nonexclusive license to make and use copies of the SOFTWARE PRODUCT for the purpose of designing, developing, and testing your software product(s).

И точка.

Author:  Serge [ Fri Oct 04, 2013 4:23 pm ]
Post subject:  Re: Длина командной строки и пути к файлу при запуске

Reactos отдельная тема.
MSVC один из лучших оптимизирующих компиляторов, но всё это богатство только под Windows по естественной причине.
Компиляция программ для других систем обещает массу проблем. Для mingw приходится отменять встроенные defines _Win32 _WIN32 WIN32 _MSC_VER иначе условная компиляция подключает микрософтские инклюды и предназначенные для Windows куски кода. Кроссплатформенность превращается в кошмар. Многие вещи написаны только под gcc и с msvc не дружат.
Короче у меня большие сомнения в применимости msvc для сборки больших проектов в Колибри.

Author:  CleverMouse [ Fri Oct 04, 2013 4:37 pm ]
Post subject:  Re: Длина командной строки и пути к файлу при запуске

Serge wrote:
Продолжение. TLS

Однопоточные приложения могут использовать библиотеки, которые будут создавать дополнительные потоки. Поэтому TLS предлагается создавать всегда, независимо от числа потоков в программе.
  • fs:0 хранит id текущего потока
  • fs:4 зарезервирован для id процесса/адресного пространства
  • fs:8 нижняя граница стека потока
  • fs:12 верхняя граница стека потока
  • fs:16-1020 доступны приложениям

Линейный адрес сегмента fs не предусмотрен? Указатель на fs:0 получить невозможно?

Author:  Serge [ Fri Oct 04, 2013 5:19 pm ]
Post subject:  Re: Длина командной строки и пути к файлу при запуске

CleverMouse
Нет, я предполагал tls для хранения указателей, а не структур данных. Если необходимо, можно занять fs:0, сдвинув остальное.

Author:  CleverMouse [ Fri Oct 04, 2013 7:19 pm ]
Post subject:  Re: Длина командной строки и пути к файлу при запуске

Кодогенератор MSVC может выдавать обращения к fs:0 и fs:2Ch. Если их зарезервировать под что-нибудь, потом могут быть большие проблемы. Ядро Linux, если я правильно помню, не резервирует никаких данных в fs и вообще устанавливает fs только по просьбе программы, зато резервирует целых три TLS-селектора, один для glibc, один для Wine, один на всякий случай.

Author:  Serge [ Fri Oct 04, 2013 8:26 pm ]
Post subject:  Re: Длина командной строки и пути к файлу при запуске

CleverMouse
Хорошо, тогда fs:0 и fs:2Ch будут оставлены для msvc/wine.
А адрес сегмента tls нужен ?

Author:  CleverMouse [ Fri Oct 04, 2013 9:28 pm ]
Post subject:  Re: Длина командной строки и пути к файлу при запуске

Я думаю, стоит адрес сегмента tls хранить.

Author:  Serge [ Fri Oct 04, 2013 9:34 pm ]
Post subject:  Re: Длина командной строки и пути к файлу при запуске

CleverMouse
Хорошо, тогда
  • fs:0 зарезервировано
  • fs:4 линейный адрес tls
  • fs:8 pid
  • fs:12 зарезервировано
  • fs:16 нижняя граница стека
  • fs:20 верхняя граница стека
  • fs:2Ch зарезервировано
Ещё есть предложения / замечания ?

Author:  Mario_r4 [ Fri Oct 04, 2013 11:11 pm ]
Post subject:  Re: Длина командной строки и пути к файлу при запуске

Еще у меня предложение/замечание написать потому EXAMPLE.ASM с пояснениями какие поля не понадобятся для типичной средней программы.
А то я от вашего "птичьего" языка уже запутался. :wink:

Author:  Serge [ Fri Oct 04, 2013 11:22 pm ]
Post subject:  Re: Длина командной строки и пути к файлу при запуске

Если не будет замечаний по заголовку, для простой программы не использующей PE DLL, не понадобятся поля import и eimport. Неиспользуемые поля заголовка должны быть нулевыми.

Author:  art_zh [ Sat Oct 05, 2013 1:14 am ]
Post subject:  Re: Длина командной строки и пути к файлу при запуске

Serge wrote:
Ещё есть предложения / замечания ?

Так как насчет указателя очереди GUI-запросов?

Page 3 of 5 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/