• avatar Vitamin
  • 0
Боже упаси от такого. Предлагаешь мне со своим софтом ещё и компилятор прилагать? Нее сишарпы не для меня, только если по работе потребуют.
Почему же. Код виртуальной машины преобразуется в нативный. После этого распространяется обычный бинарник, который уже не будет компилироваться у клиента.

И универсальный язык программирования выдавал мне в окошке аккуратную надпись «CRC memrory region error, correct?». Эврика!!! Отвечаешь ДА, и новые данные, которые я подставил автоматически вписывались под ксор!
OMG Ты действительно не чуешь разницу между языком программирования, средой выполнения и конкретной программой, написанной на этом самом языке?

Поэтому, да, я не хочу писать свой код, под вот такие вот виртуальные машины. Я уж лучше по старинке, на асме, под эмулятором Z80 быстрее будет исполняться, чем на таком вот «нативном» языке.

Настало время для объяснения факту
Увы, он работает только под 32-бита, у этого есть ряд причин, но почему это так, — не сейчас.
? :-D
  • avatar tsl
  • 4
У меня досипор экспи и будет экспи пока не сдохнет 2я мать которая щас лежит в заначке, а 1я уже 8 лет работает. Кор джва дуо, 2.66 гигагерца, 3.0 в разгоне. А уебаны с и7 за неебически просранные деньги пусть кончают от вин10, который и на их железе работают медленнее чем у меня хр. Свежая хр — не виснет и не глючит, зато после установки новых говнософтов, драйверов, обновлений начинаются фокусы типа вытянул юсб камеру получил синий экран. ОК, 10 минут на восстановление быкапа и жизнь снова прекрасна. Под вмваре стоит вин7 из под которого я захожу на сраные впн неебически новые и охуенно без дырок. Я ему сука дал 512 метров, шоб он сдох. Кряхтит с ССД падла, но ползает. Для рдп достаточно. И так еще много дал, пусть спасибо скажет.
  • avatar Robus
  • 1
Боже упаси от такого. Предлагаешь мне со своим софтом ещё и компилятор прилагать? Нее сишарпы не для меня, только если по работе потребуют.
Знаешь, как-то очень давно был какой-то сайт где был написан эмулятор SPECCY, то ли на джаве то ли на флеше. Этот эмулятор был через браузер, и набранные очки в играх вписывались в топы. Ну там всякие соревнования EXELONов можно было проводить. И начал с авторами переписываться, простите, уже не помню кто это был, что вот эмулятор полностью защищён от взлома, потому что там, что-то применяется, что в памяти ксорится код исполняемой программы, вообщем не взломать одной бутылкой пива. Ну я сразу начал пробовать что к чему, и всё оказалось банально. Вся память 49152 байт в памяти хранилась DWORD'ами, где и вправду первый байт DWORD'а был заксоренный и видно, что он менялся, все 49152 байта в каждом DWORD'е молотились, однако третий байт этого DWORD'а не менялся. то есть видать где-то был код типа MEM[n]=MEM[n] XOR SUPER_BYTE_FOR_XORING, но автор да же не догадывался что в памяти остаётся оригинал. Там я был зарегистрирован под именем HACKER, и договорился с авторами, что я пытаюсь накрутить очки, а они придумывают метод защититься от этого. Мало того весь этот джава или флеш был такой супер ООП и так следил за памятью, что,! вникаем! — я находил в памяти, допустим, очки в Earth Shaker'е, менял на нужные байты НЕ ЗАКСОРЕННЫЕ ДАННЫЕ, то есть это биты с 16 по 23. И универсальный язык программирования выдавал мне в окошке аккуратную надпись «CRC memrory region error, correct?». Эврика!!! Отвечаешь ДА, и новые данные, которые я подставил автоматически вписывались под ксор!
Поэтому, да, я не хочу писать свой код, под вот такие вот виртуальные машины. Я уж лучше по старинке, на асме, под эмулятором Z80 быстрее будет исполняться, чем на таком вот «нативном» языке.
  • avatar Vitamin
  • 0
Кто ж тебе виноват, что ты используешь устаревшее ПО (10 лет назад это уже 2005 год, XP уже довольно стабильна), сваливая на железо неумение софта работать с ним.
Т.е. ты не писал разработчику с сообщением о его проблеме только потому что он в Копенгагене? Серьезно?

Давай ты откроешь исходники своих проектов для аудита на предмет педантичности, неленивости и «деструкции данных»? Заодно отделим рукожопость от невнимательности.
  • avatar Robus
  • 0
Все имеют право ошибаться, но сторонний разработчик плевать хотел что у какого-то там робуса не работает софт. Сидовский плеер попортил память, как раз тот случай о котором мы говорили. В те времена все уже вожделели ХР, а у меня был всё ещё 98ой, и судя по всему память закончилась, автоматическая диструкция памяти, при переходе с мелодию на мелодию не работала, и в какой-то момент пошло по памяти гулять. Я постоянно сохранялся, тяжёлое детство глючного софта, и побил половину своих проектов. Плеер выдал кучу хрипов в динамик, и всё остановилось. Потом сидел и восстанавливал остатки с винта, а результатом сбоя был запись артефактов на винт. Может, конечно за 10 лет его поправили, и возможно что на ХР этого всего не было бы, но факт остаётся фактом, код плеер испортил мне часть проектов, и никакой ММУ не помог.
А глюки своего софта я всегда могу поправить, если бы автором плеера был бы ты, я бы тебе написал письмо и возможно плеер больше бы такое не делал, но автор где-то там в Копенгагене.
«деструкция данных» это попытка заткнуть дырки людей которые любят у системы попросить попросить байтики, а отдавать не хотят. были бы программисты педантичными как кодеры, занимались бы деструкцией сами, тем более, что это одна-две строчки кода. Лень это всё. И в чём тут рукопожатие, экономия на двух строчках кода? Тогда можно выпилить из Z80 команду DI, будет рукопожатие, что бы HALTы не мешали работать ядру.
  • avatar hedj
  • 3
Яб добавил что MMU не только для надежности, но и для удобства и экономии ресурсов. Т.е. swap, mmap, copy-on-write, вот эти все ништяки. Ну и там границы не только между процессами, но и внутри процесса, чтоб стек не рос неограниченно, или чтоб код нельзя было модифицировать, например.
  • avatar tsl
  • 2
Я пробовал мелкий тест, который строит подобие игровой карты, используя стейтмашинку-итератор на ISR от DMA. При окончании каждой транзакции ДМА ему подбрасывается новое задание. При этом в ISR ДМА стоит EI, так как могут быть активными строчные прерывания, которые пропускать нельзя.
  • avatar tsl
  • 3
Учитывая, что тсконф предоставляет аж 3 источника прерываний (с разными векторами), обсуждение многотредового кода более чем актуально.
  • avatar tsl
  • 0
Кортексы опционально комплектуются ММУ, этот не оборудован.
  • avatar tsl
  • 2
=)
  • avatar VBI
  • 1
отлично.
потоки полезны будут как вариант выполнения кода под конфой.
под спеком эта обвязка относительно много ест.
  • avatar Vitamin
  • 0
А на этом арме есть разделение на пользовательское и привелегированное пространство? Если нет, тогда он не вписывается в озвученные ограничения.
  • avatar Vitamin
  • 0
Нибаюсь:) Я за всеобщее расширение кругозора. Пускай и путем слома шаблонов:)
  • avatar Vitamin
  • 0
Чисто техническая тонкость. Ничто не мешает получать на выходе именно нативный код.
  • avatar Vitamin
  • 4
Факт того, что я являюсь циничным мудаком (не к пидарасам, извините, ориентацией не вышел), совершенно не мешает мне уважать Робуса, его проды и статьи. Также разный взгляд на вещи (порой диаметрально противоположный) не мешает лично мне общаться, хотя и вносит определенный градус пыла в дискуссии.
Равно как и идея использования многопоточности именно в демах не отменяет озвученных спектрумовских проблем оной, возникающих во время разработки на пути к ровно одному сценарию использования.

Без подписи
  • avatar tsl
  • 3
Ну попробуй на АРМе из пользовательского пространства ОС сделать DI или выключить на контроллере таймер или испортить код.
Зависит на каком арме. На STM32 — запросто. (Там кстати никакого «DI» там нету, там задается разрешение для каждого канала на NVIC либо битами разрешения на соответствующей периферии.)
  • avatar VBI
  • 0
Vitamin, ты сейчас напорешься на робуса, я обещаю :)
  • avatar tsl
  • 4
Витамин, бида робусова в том, что он не умеет и не слишком стремится отвечать на троллинг таких циничных пидарасов как ты и я. На его месте я бы дополнил название словами "… in demos". Алсо, в тексте нигде не говорится про ОСи или системные утилиты. А для демы надежно то, что не упало при показе сабжа. У системной утилиты бесконечное количество сценариев использования, а у демы ровно 1 (если пробелонажимание не предусмотрено).
Ваш Лейтенант Вежливость.
  • avatar VBI
  • 1
«код для виртуальной машины», а не нативный
  • avatar Vitamin
  • 0
лучше победить проблему куском памяти, чем молотить что-то кодом(скриптом)
И таки зачастую он будет прав. Ибо память дешевая и ее относительно много, а работа процессора требует энергии, которой не всегда много, особенно на мобильных устройствах.
Так что не существует единственно верного способа писать оптимально.