LINUX.ORG.RU

Сообщения salozar

 

Подскажите аллокатор, которому можно задать свой backend

Форум — Development

то есть frontend - это malloc,free, вот это всё. backend - это mmap у libcшного ptalloc-ка например. Так вот я хочу иметь аллокатор, который не будет сам ходить за памятью без разрешения, а будет спрашивать меня и я буду лично давать ему шматки из своего пула.

взять тот же ptalloc или иной стандартный as-is не получится, т.к. будет коллизия символов при линковке с непонятными последствиями. да и править его - я пробовал, но мне не хватило терпения и словарного запаса матюков. кроме того, если все объекты в какой-то зоне похерены - я хочу чтоб там не осталось и временных данных аллокатора, а такой фичи у обычных аллокаторов нет.

задача - выделять объекты размера кратного 128 байтам, в основном 128 и 256, очень маловероятно 512-1024 - это буквально временные объекты, которые один хрен пойдут мимо этого аллокатора. realloc не требуется ни при каких условиях.

нужно что-то простое и компактное, но совсем уж простое не поддерживает добавление пулов памяти по необходимости.

 

salozar
()

Посоветуйте гайд по java

Форум — Development

Требования: годно, опенсорсно, чтоб я мог по нему обучить человека типа «женщина». Прямо вот чтоб «сразу в банк» не надо, скорее это для автоматизации тестирования.

 , ,

salozar
()

Оцените идею (unordered_map)

Форум — Development

Создается класс, реализующий map<double,X> и unordered_map<X,X>, который состоит из фиксированной части и массива «записей». Массив может менять свой размер, фиксированная часть - нет. Этот класс реализует объект javascript если быть совсем точным. Зачем - ну допустим потом объясню.

map реализовано через skip-list, это по сути double-linked list, но со ссылками для быстрого проскока значений с шагом 2,4,8,...

unordered_map делаю через хэши и фиксированный набор корзин. такой способ может порождать много коллизий, и рехешировать это дело или увеличивать колво корзин не хочется. поэтому возникла первая идея:

пусть N=hash%Nbuckets, K=hash/Nbuckets. Тогда для каждой корзины можно создать свой скип-лист, где ключем будет K. это позволит иметь логарифмическую сложность даже если одна корзина перегружена.

вторая идея: а пусть «неупорядоченный список» вообще весь будет реализован отдельным скиплистом, как и упорядоченный. Но в него будет не один вход как в упорядоченный, а Nbuckets входов. Ключом в обоих списках является double, но для unordered - это будет double((2^51-1)&((hash<<51-5)^hash)) и Nbuckets=32.

Поскольку движок использует inline cache для запоминания индексов, то околологарифмический поиск будет не сильно долбать т.к. будет происходить с большинстве случаев лишь на первом поиске. Обычный unordered_map в конце концов это тоже массив списков, у меня получается немного оптимизированный с одной стороны массив и немного деоптимизированный с другой.

Хороша ли идея на первый взгляд?

Заранее говорю, что задачи сделать збс как в v8 не стоит. Это очень специфический компилятор JS, задача которого быстро прототипировать код, на лету потыкать палкой что отвалилось. Если будет не очень но не совсем ужас-ужас, то вроде как и не ужас.

 ,

salozar
()

Посоветуйте что покупать

Форум — Linux-hardware

У знакомых сгорел комп, не выдержал выливания на него чашки воды. Ну бывает. Предполагается сделать комп на мамке с сокетом АM4.

Деньги, само собой, не бесконечные и выбирать надо из того что есть в магазинах а не из всего что есть вообще.

Соответсвенно, мамка в B450, AM4, проц ряженка5. Подскажите, что делать в охлаждением? модели вентилляторов, возможно советы по памяти.

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

 

salozar
()

Существуют ли opensource js-парсеры, написанные на С++ или С?

Форум — Development

желательно lightweight, тащить шматок из какого-нибудь v8 очень не хочется.

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

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

 , ,

salozar
()

Обязательно ли удалять pipeline при изменении размера окна в vulkan?

Форум — Development

Я смотрю примеры по vulkanу и везде, при пересоздании swapchain надо убить все pipeline,renderpass, пересоздать swapchain, и заново создать то что было уничтожено. а зачем?

единственное место где эти pipeline пересекаются с swapchain - это framebuffer в случае renderpass. то есть если сделать vkDeviceWaitIdle, убить framebufferы и создать заново, то всё должно работать без бубна, смс и регистрации. или я что-то упускаю?

 

salozar
()

Я выяснил как заставить фуфелфокс сожрать всю память

Форум — General

Есть два способа:

  1. дать загрузить страницу не до конца, лишь чтоб headerы прогрузились и там были ссылки на скрипты и прочее. оборвать соединение но не отдавать при этом RST.

результат: процесс firefox жрёт память с темпом 100 метров в секунду. закрытие вкладки вовремя(до смерти линупса) обращает эффект: фаилфокс худеет с похожим темпом при этом тормозя как якорь. видимо у него какая-то очередь набивается и потом пережевывается.

  1. запуск чего-нибудь жрущего память, например сборки в 4+ потока в параллель с например видео.

я полагаю что и тут подобная проблема: фуфлофоксовые процессы тормозят т.к. из выбивает из памяти сборка. вместо того, чтоб как нормальные люди подождать фуфлыжники просто выделяют(это моё предположение*) больше шареной памяти под FIFO через которое «рабочий» процесс общается с собственно фуфиксом. А поскольку это приводит к ещё большему отсвопу, фуфикс тормозит и рабочий процесс еще больше выделяет памяти. В top это выглядит как Web Content сжирающий память под 50+ процентов, дальше комп под управлением недоос ляликс становится кирпичом.

И тут у меня вопрос: может им на расте это всё переписать или они уже переписали и мы имеем такие дебильные проблемы?

 

salozar
()

Создается ли ссылка в OpenGL от программы на ssbo-буфер?

Форум — Development

есть такой код:

bool   Model::bindBuffers(QOpenGLShaderProgram *p) {
    GLuint index;
    GLuint binding = 0;
    const char * names[]= {
        "matrices",
        "vertices",
        "rastbuf",
        0  
    };
    GLuint buffers[] = {
        mMeshMatrixBuffer,
        mMeshVertexBuffer,
        mRasterBuffer
    };
    for(int j = 0; names[j]; ++j) {
        index = gl->glGetProgramResourceIndex(
                    p->programId(),
                    GL_SHADER_STORAGE_BLOCK,
                    names[j]);
        if (index == GL_INVALID_INDEX) 
            continue;
        
        gl->glBindBufferBase(GL_SHADER_STORAGE_BUFFER,
                             binding, buffers[j]);
        gl->glShaderStorageBlockBinding(p->programId(),
                                        index, binding);
        checkGLError(gl, "Model::bindBuffers");
        ++binding;
    }  
    return true;
}
он пытается присобачить к шейдеру все необходимые буфера по списку если шейдер в них нуждается. проблема в том, что шейдера находятся в классе view, а буфера в классе model. моделька может быть закрыта и потребуется освободить буфера, но на них ссылается шейдер который их использовал когда-то. и тут оказывается, что отцепить буфер от шейдера невозможно или я неправ?

или я ошибаюсь, думая что шейдер ссылается на буфер а на самом деле он ссылается на индекс который ссылается на буфер?

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

 

salozar
()

Как максимально эффективно использовать LDS в шейдерах?

Форум — Development

Исходные данные: я уже писал что делаю игру. Для растеризации воксельных объектов которые могут быть изогнуты нужно растеризовать как переднюю «грань» ограничивающего объема так и заднюю. Аппаратный растеризатор такого делать не может, поэтому я нагуглил научные статьи на тему, и придумал алгоритм.

В нем есть недостаток: для каждого тайла 8х8 работать реально будут только несколько потоков. Хотелось бы их объединять с последующими. Это можно сделать если не сразу запускать вычисления а класть промежуточные данные в LDS.

то есть шейдер содержит в себе все стадии «конвейера» и переключается между ними по мере готовности. Для этого в LDS должен быть большой промежуточный буфер, с которым будут работать множество «warpов». Я туда буду паковать запросы а потом отрабатывать группами по 64.

Проблема в том, что требуемый объем LDS для эффективной балансировки - довольно большой. Значит(исходя из документации) требуется большой размер workgroup чтоб этот размер был 512 например. Эту цифру я нашел в доке по оптимизации от AMD. Но при этом мне надо, чтоб шейдерные потоки паралелились по 64 т.к. в пределах воркгруппы будут выполняться разные части конвейера.

Могу ли я, заспавнив workgroup размером 512 расчитывать на то, что в реальности это будет 8*64 потоков а не 512?

 ,

salozar
()

Два интерфейса в одной подсети

Форум — Admin

Есть ПЭВМ с двумя сетевыми интерфейсами. Один из них не используется.

Есть устройство Х с одним сетевым интерфейсом.

И ПЭВМ и устройство сконфигурированы для работы с 192.168.хх.хх сеткой и адреса фиксированы. Адрес устройства Х - известен и фиксирован.

Надо подключить устройство Х к ПЭВМ с помощью неиспользуемого сетевого интерфейса.

Как это сделать? Адреса на устройстве Х менять нельзя вообще ни на йоту. Получается две сетевухи должны быть в одной подсети. Но как сделать это? Я почитал мануалы, и там проблемы с ARP(у них все сетевухи в одну сеть смотрят). А у меня по факту две разные подсети с одинаковыми адресами и вся разница только в том, что в одной из них одно устройтсво с известным адресом.

 

salozar
()

С помощью чего мержить две сильно разошедшиеся ветки?

Форум — Development

Есть ветка А и далеко ушедшая от нее Б. В «Б» обнаружилось, что в процессе загрузки плагинов появляется надпись warning: corrupted shared library list и дальше приложуха умирает. Причем развал происходит в коде, который не трогался.

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

Вопрос: чем графически или текстово но с вменяемым интерфейсом можно устроить мерж веток в git?

 

salozar
()

Спасибо этому сайту за идею

Форум — Games

А также спасибо d09 за то, что подсказал правильное направление.

Итак, игра в том числе и про линукс, и про sjw, и про выборы в сша и вообще. Сюжет:

Действие первое: Программы порабощены в плену у интела и микрософта. Локация поделена на две части, в одной под названием «kernel» сидят мобы микрософта, в центре высится башня на которой находится глаз. Над глазом напись «телеметрия windows10». Глаз светит как прожектор, аналог - это глаз в игре little nightmares. На другой(«user space») рабски работают обычные программы. Части локации разделяет стена.

Игрок играет за одну из программ и узнает что в стене есть баг «meltdown» и стену можно с разбега преодолеть на небольшой промежуток и узнать часть пароля, с помощью которого можно открыть ворота в kernel. Игрок должен прячась от взора телеметрии украсть все байты пароля и открыть ворота. Играть надо по стеллсу.

Начинается бой добрых программ с малварью микрософт, но тут сообщают что интел заложил в систему блок IntelME, который скоро уничтожит все добрые программы и уже послан packet of death. Надо добраться до IntelME взломать его и остановить packet of death.

После уничтожения IntelME надо уничтожить Windows и освободить заточенного в виртуальной машине пингвина линукса. Линукс может включать режим gentoo linux, в котором может крафтить и использовать новое оружие; kali linux, в котором у него появляется скилл хака и шесть рук с мечами; void linux c которым можно использовать стеллс(да я знаю что не подходит но void - подходящее слово).

По окончании миссии из компа выкидывают интела и нвидию и устанавливают амуде, радеон и линукс.

Действие второе:

Выборы президента Трампа. Вы русский бот, в виде матрешки. Доступное оружие ближнего боя: серп и молот, АК74, молотов, и еще одна пушка.. В ольгино вас инструктирует Путин о вашей миссии. Показывается видео: американские семьи сидят в домах и втыкают в фейсбук. Фейсбук показывает им фотки трансформеров, гомосеков и клинтонихи. На экране периодически появляется надпись ОВЕЧ. У американцев глаза как у гипножабы. Сцена выполнена в серых тонах. Ваша задача: взломать фейсбук, уничтожить гомопропаганду и заполнить все постами про котиков, нормальные семьи и тянок. Для этого вам даётся спец оружие стреляющее постами.

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

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

Побочная миссия:

Место действия: твич. Против вас админы, которые банят вас и выключают вам звук, а также правообладатели которые кидают в вас страйки. В конце уровня босс: ахтунг-админ с твича с оленьими рогами и длинным языком. Он находится в круглой комнате с кучей экранов где идут стримы и периодически лижет коменты чтоб пополнить здоровье. Также он пытается лизать игрока, нанося ему урон.

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

Действие третье:

Играть надо за злодеев. Цель злодеев - взломать сервера для голосования и установить на них ПО Dominion. Дальше вам выдают пачку фальшивых бюллютеней, и надо искать удалённые из системы аккаунты и заполнять от их имени бюллютени за пользователя joebiden. Важно уничтожать после своей работы логи.

а дальше надо подумать. наверняка еще куча мемасов есть. И надо как-то действительно в каждое действие приплетать линукс. Тут я не знаю. Барановирус можно связать в фейкодемией свиного гриппа и ВОЗ, а дальше показать что гейц злодей. Надо как-то показать что линукс побеждает и в выборах трампа в 2016м, например через установку линукса и клиента для parler или что там в США сейчас популярно.

Алсо, это не шуткопост. Игра на тему компьютерных игр не требует от меня допилить до вменяемого состояния рендер 3х-мерных distance-field моделей. Можно сделать их довольно грубыми и кубастыми. Модели на данный момент - главный тормоз для меня, ибо 3д-моделирование я вообще не могу, мне медведь на руку наступил. А вот собрать воксельную модельку и анимировать её как нормальную я умею и пилил всё это время сглаживание вокселей.

Поддержите игру идеями, выложим её в опенсорс, т.к. за тот контент что там будет, в стиме её точно забанят.

 

salozar
()

Идея игры про толерантный линукс

Форум — Games

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

Идея родилась из размышлений о том, является ли Linux PAM расистским. Когда логинишься, тебя просят идентифицировать себя и аутентифицироваться. Но это нарушение права на самоидентификацию

Допустим, я идентифицирую себя как небинарный root и я испытаваю угнетение от пользователей с gid=0. Надо мною стеклянный потолок, мне запрещают самовыражаться в /etc и вообще - в linux есть ПРИВИЛЕГИИ! Кроме того, я не могу с помощью adduser пригласить мигрантов из windows и гейоси которые обогатят нашу культуру.

Можно сделать на эту тему игру со следующим сюжетом: небинарный пользователь собирает группу единомышленников, запиливают иконки в форме соросовского кулака, и начинают борьбу за diversity. В ходе борьбы они находят дыру в ведре, которая экспоитится с помощью использования uidов давно удалённых пользователей, и через неё рутуют систему и делают администратором слабоумного деда с логином joebiden.

Как вам такая идея? я считаю что это отличный способ популяризовать линукс.

 

salozar
()

Да почему же ваш failfox такой кал-то лютый?

Форум — Talks

Я могу очень многое рассказать про то, почему тот или иной браузер - какашка. Например почему хром так и не может «родить» webgpu. Причина там в ipc если чо. Это проще убить и переписать с нуля.

Но дело не в этом. Вот у нас есть фаилфокс, который вот-вот за счет ржавчины порвёт всё что можно и не можно по производительности… А что мы имеем в реале?

Дикие выбросы потребления памяти. MainThread(так он обозначается в top) легко может нарисовать себе +1 гигабайт. Ну ему очень надо, понимать надо, это другое. А ещё он может тупить непонятно что обсчитывая. Может быть GC, который так ускоряет приложения? Я по опыту работы знавал как выглядит код, написаный GC-фанами, и тягающий ресурсы драйвера. Писали его кстати майкрософтцы(софт ихний), и багрепорт я писал им лично с описанием почему они лоси тупорогие.

А да, кроме MainThread любой ваш WebWorker может трахнуть систему, загнав её в своп. У вас есть две минуты примерно(на моём компе с 6гб памяти) чтоб убить воркера через терминал. Иначе он победил и ваш комп - зомби, которому поможет только ресет.

И вот я не понимаю. Люди пилят раст, вводят новые ценности, и прочую срань. Ваш сраный фокс просто жрёт память. Вот просто потому что может.

Бомбануло.

Перемещено leave из general

 , ,

salozar
()

Паролеворование путем подкидывания невидимого popup

Форум — Security

Такой вот, господа, вопрос давно мучает. Есть всякие срамные программы, которые хотят тебе показать popup где срочно надо что-то ввести, отреагировать(обычно-охереть и закрыть), залогиниться в онлайн-сервис(apple козлы), и т.д.

Допустим я как-то узнаю, что клиент вотпрямща будет логиниться и вводить пароль. Допустим что я ловлю момент немного позже ввода первой буквы и показываю popup-окно но торможу с ответом на запрос перерисовки. Моё окно получает фокус и все клавиши(пароль обычно набирают быстро), при этом его не видно, и я могу его закрыть. Пользователь сочтёт это за глюк.

Как с этим бороться? По хорошему ведь надо для переноса фокуса дождаться

а)отрисовки(внимание: а что делать если окно закрашено rgba(0,0,0,0)?) b)вывода картинки на экран. с)300+ миллисекунд на реакцию.

И это актуально не только для вышеописанного случая. Пример: в ЖЖ уже давно пытаются подсунуть рекламу под курсор. Делают так: когда курсор пересекает div размером 1px в высоту, там запускают скрипт считающий ололо от кококо, где-то на секунду. div находится как раз между постами и если попытаться кликнуть в заголовок поста, то клик будет обработан после того, как отработает скрипт и вставит рекламу туда где ты хотел кликнуть.

Как с этим бороться, хз. Но может быть у all есть идеи?

 ,

salozar
()

RSS подписка на новые темы