1.1, Аноним (1), 09:27, 16/12/2021 [ответить] [﹢﹢﹢] [ · · · ] [↓] [к модератору]
| –29 +/– |
Да блин. Опять все из за Сей, с их буфферами ограниченного размера, создаваемыми на стеке. Сейчас 21-й век. Ну юзайте, блин, динамически выделяемые буфферы.
| |
|
|
|
|
|
6.43, Брат Анон (ok), 11:08, 16/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| –2 +/– |
> Пока что, лишь Анон доказал давно свою профнепригодность.
При выполнении пары правил (что само по себе не очень идея) -- можно.
Си по определению опасен. Я бы его использовать не стал. Оберон -- другое дело.
| |
|
7.56, Sw00p aka Jerom (?), 11:35, 16/12/2021 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
>Си по определению опасен
зарубите на носу и держитесь подальше, ибо язык это не для незнаек и недоучек, я даже не представляю как программисты писали бы на асм.
| |
|
|
|
|
7.51, псевдонимус (?), 11:31, 16/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +2 +/– |
А по мне так отличная. Одна железка -- одна программа, гы. Как у макосексуалистов. Правдо гейось это не спасло: оно все равно оно, что платформа, что ось.
| |
|
|
|
6.110, Аноним (110), 01:37, 17/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>> С доказывает только профнепригодность программистов, которые пишут программы не думая о стеке куче всякой архитектурной хрени
Чтоб об этом думать - надо об этом знать
Последних много лет идет снижение порога входа в отрасль
А коммит в ядро это строчка в резюме
Ревью тоже человеки делают
Ну и вот
| |
|
7.126, Sw00p aka Jerom (?), 11:29, 17/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>Последних много лет идет снижение порога входа в отрасль
ну и к чему приведет снижение этого порога? Можно ли опустить допустим знания приоритетов обычных арифметических действий и заниматься вышматом?
| |
|
|
5.61, x3who (?), 12:38, 16/12/2021 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +1 +/– |
> На стеке -- да. Но никак не в куче.
Не догоняю в чем разница. Если тебе в стек напишут данные в уже освобождённый буфер по сбежавшему указателю - это разве сильно безопаснее?
| |
|
6.69, n00by (ok), 13:51, 16/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +3 +/– |
>> На стеке -- да. Но никак не в куче.
> Не догоняю в чем разница. Если тебе в стек напишут данные в
> уже освобождённый буфер по сбежавшему указателю - это разве сильно безопаснее?
Такая запись не испортит актуальные данные, если не выйдет за границы стека (в ядре ограничен несколькими страницами). Другое дело, что в положенное место запись не прошла, значит там мусор?
| |
|
7.130, x3who (?), 12:57, 17/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Такая запись не испортит актуальные данные, если не выйдет за границы стека
> (в ядре ограничен несколькими страницами). Другое дело, что в положенное место
> запись не прошла, значит там мусор?
Во-первых испортит, если все данные будут храниться на стеке. Во-вторых появляется испортить ещё и как минимум адрес возврата из функции, что вдогонку приведёт к ещё более нехорошим последствиям.
| |
|
|
|
4.41, Аноним (41), 11:07, 16/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> а когда кучу надо освободить — это всегда безопасная процедура?
Да.
Как можно не знать таких основ (азов, элементарщины)!
Нельзя обращаться к освобождённой куче.
| |
|
5.70, n00by (ok), 13:55, 16/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>> а когда кучу надо освободить — это всегда безопасная процедура?
> Да.
> Как можно не знать таких основ (азов, элементарщины)!
> Нельзя обращаться к освобождённой куче.
Если нельзя, но очень хочется реализовать сборку мусора по алгоритму mark-compact, то можно.
| |
|
|
3.12, Анонн (?), 09:58, 16/12/2021 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| –1 +/– |
Проблема в том, что при обращении за пределы "своей" памяти по умолчанию происходит... абсолютно ничего! Порти чужую память как хочешь, ты же знаешь что делаешь!
Это нужно включать всякие защиты в виде доп.опций компиляции чтобы оно начинало проверять и ругаться. И конечно оно выключено по умолчанию.
| |
3.13, Аноним (1), 10:00, 16/12/2021 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| –3 +/– |
Можно это аргументировать так, что куча медленная, но можно же сделать что то типа пулла буферов. Не? Тут смысл просто в том, чтобы не было этого искусственного ограничения из за создания константного массива на стеке, хотя стек в принципе можно тоже выделять и динамически. И чтобы данные не валялись рядом с адресами возврата, которые можно попортить переполнением.
| |
|
|
5.32, Аноним (1), 10:33, 16/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Как работает стек:
SUB RSP, 10H
Как работает куча:
Найти свободный блок
Выделить свободный блок
Стек всегда можно тоже выделять динамически, просто об этом мало кто знает:
//Предполагается fastcall, размер в rax
AllocStack proc
pop rdx
sud rsp, rax
jmp rdx
endp
| |
|
6.33, Аноним (-), 10:43, 16/12/2021 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| –5 +/– |
В х..якс интелбои недоделанные. реализация кучи для усера это malloc в libc, sbrk в ведре и тд . стеки оно попает каком-то говноасме неправославном
| |
|
7.39, Аноним (1), 10:56, 16/12/2021 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +6 +/– |
Ну да. А malloc за счет духа святого работает. Вот и выросло поколение, которое думает, что выделение памяти - это бесплатная операция. А ведь когда то в давние времена все данные были статичным, в том числе и объекты, именно потому, что это далеко не так.
| |
|
|
7.123, Аноним (123), 09:54, 17/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Может не будем языком молоть и просто проведем тест?
Скажем миллион раз сделаем malloc и free.
Миллион раз сделаем sub rsp, x и add rsp, x.
Потом сравним результаты.
| |
|
6.63, x3who (?), 12:51, 16/12/2021 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
1. Ты забыл про путешествия в ядро за физическими страницами памяти, что для стека что для кучи. Это очень медленно и при этом куча умеет эти страницы придерживать для переиспользования.
2. На стеке ты сильно много данных не разместишь, дефолтный ulimit 8Мб, ну можно его раздвинуть, но тоже несравнимо с адресным пространством данных
| |
6.74, n00by (ok), 14:30, 16/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>[оверквотинг удален]
> Как работает куча:
> Найти свободный блок
> Выделить свободный блок
> Стек всегда можно тоже выделять динамически, просто об этом мало кто знает:
> //Предполагается fastcall, размер в rax
> AllocStack proc
> pop rdx
> sud rsp, rax
> jmp rdx
> endp
Как и об этом:
x86_64 page size (PAGE_SIZE) is 4K.
Like all other architectures, x86_64 has a kernel stack for every
active thread. These thread stacks are THREAD_SIZE (2*PAGE_SIZE) big
https://www.kernel.org/doc/Documentation/x86/kernel-stacks
> pop rdx
> sud rsp, rax
> jmp rdx
Так делать не рекомендуется из соображений производительности. Да и прикиньте размеры опкодов - их экономичнее встроить вместо call.
| |
|
|
4.64, Совершенно другой аноним (?), 13:18, 16/12/2021 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Можно, и даже уже сделано - в ядре есть и разные slab/slub аллокаторы, и kmalloc и чего только нет. Но в данном случае программист выделил буфер на стеке, потому-что выделять через аллокаторы дороже (на стеке это буквально несколько команд, а всё остальное это вызовы функций и беготня по другим подсистемам ядра).
| |
|
|
2.5, Аноним (5), 09:38, 16/12/2021 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +/– |
да кстати, пацаны, почему каждая либа изобретает свой собственный менеджер памяти? в libxml2 есть какой-то собственный xmlBuf, а у xerces там вообще страшно смотреть на ихнее дерево классов, посвященное только управлению памяти. Почему нельзя догадаться сделать какой-нибудь libmem, который будет это все делать правильно и унифицировано?
| |
|
3.25, lombock (?), 10:22, 16/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +4 +/– |
> который будет это все делать правильно и унифицировано
потому что "правильно и унифицированно" не существует. хоть и сказочки корпорастов твердят обратное, а неокрепшие растишки так и тянутся к сказочкам, чтобы потом корпорастики их скушали за обедом мвахахаха
| |
3.50, Аноним (-), 11:29, 16/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| –1 +/– |
> да кстати, пацаны, почему каждая либа изобретает свой собственный менеджер памяти
шоп на выхаде ты такой стоя спиной к эффектному взрыву говоришь - free(xmlBuf) , и уходишь за фокус камеры, можно еще фак в сторону мелкософтного жималока показать
| |
3.58, Аноним (58), 11:59, 16/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| –1 +/– |
Так уже один ржавый язык придумал, так теперь огромная пачка олдфагов ходит и пердит в каждом топике о ненужности.
С другой стороны зачем библиотеку делать это должно быть частью языка: строки, списки, хеши и т.д. в том числе и буферы.
Вообще переработать apr и воткнуть в стандарт C22
| |
|
2.38, Онаним (?), 10:54, 16/12/2021 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +4 +/– |
В ядре?
Ну ладно, указанный случай ещё терпимо.
Но вот пожелаю вам в обработчиках прерываний всю жизнь динамически буферы выделять.
| |
|
3.118, Прохожий (??), 07:44, 17/12/2021 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
Есть автоматизированные молотки. Там тяжело, если вообще возможно, по пальцу попасть. Так что - да, если молотком можно попасть по пальцу - это плохой молоток.
| |
|
4.133, BorichL (ok), 16:58, 17/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Есть автоматизированные молотки. Там тяжело, если вообще возможно, по пальцу попасть. Так
> что - да, если молотком можно попасть по пальцу - это
> плохой молоток.
Ну может по пальцу не попасть, а уж гвоздь в лоб забить то точно можно. У нас придурки с выдумкой. Они или автоматический молоток сломают или покалечатся. Так что не поможет придурку автоматический молоток, как показывает практика.
https://www.youtube.com/watch?v=xA7W1vxYYlE
там ещё продолжение есть, можно посмотреть на результат с 1:20 https://www.youtube.com/watch?v=vfUZVyBlca0
| |
|
|
4.134, BorichL (ok), 17:00, 17/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> А придурок тот, кто этого не понимает.
Не, придурок тот, кто думает, что автоматика за него всё сделает, а он только кнопочку нажмёт.
| |
|
|
6.155, BorichL (ok), 14:02, 23/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Так его как раз и уволят - кнопку так то и робот
> жать может, да и кнопку можно убрать, роботу она ни к
> чему.
Именно так :-) Сейчас нейросети научат растоманить и все "безопасные программисты" пойдут на мороз ;-)
| |
|
|
|
|
2.84, richman1000000 (ok), 15:44, 16/12/2021 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Потом от вашей динамической памяти страдают целые сервера.
программировать нормально надо, а не задним местом!!
А ошибки в коде - это нормально, люди ведь пишут, и находят и исправляют. Так мы и эволюционируем, из обезьяны в профессионалы.
| |
|
|
|
|
4.59, Аноним (58), 12:01, 16/12/2021 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
Ты на нем попробуй напищи чего-нить... там что не действие то боль сплошная. А в сях ращбереться даже карапуз
| |
|
|
6.151, Аноним (-), 08:36, 23/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Покажи свои проекты на расте, чудик? Ты вообще видел шоу с поддержкой раста в ядре? Там куда ни ткни, подпорки и костыли, в найтли уже почти работает, но у нас там косяк с архитектурой либы и рантайма вышел, мы работаем над этим!!!111
А пакамест проапдейтите сборку окислов запуском неподписаного шелскриптика с хз какого сайта вот. Безопасность.
| |
|
5.68, Rev (?), 13:37, 16/12/2021 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +1 +/– |
Вот карапузы и ваяют эти уязвимости как раз :))
Не смог разобраться в Расте - не лезь в ядро. Так должно быть.
| |
|
|
|
|
|
|
5.92, _ (??), 18:55, 16/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>> RTSJ / Java RTS Sun
> "Иди ты на фиг, прерываеие реального времени, у меня тут GC работает, не до тебя сейчас".
И слышавшие звон/опоздавшие родиться - пусть идут туда же.
| |
|
6.96, Хероптерикс (?), 21:08, 16/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| –1 +/– |
Эвон чего откопали. Как у него с оверхэдом было? Как у обычной явы, я полагаю. С работой не внутри какого-нибудь Websphere, а прямо поверх железа, как и положено операционке? Точно так же. Хоть одно обновление за 15 лет? Тоже все плохо. Про аналоги для C# и (прастихоспади) питона даже спрашивать страшно.
| |
|
7.97, _ (??), 21:42, 16/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Эвон чего откопали. Как у него с оверхэдом было? Как у обычной
Занятный спрыг с темы. Опеннетно-классический.
> Про аналоги для C# и (прастихоспади) питона даже спрашивать страшно.
Ну, запретить опеннетчикам писать глупости я не могу, так что ... крепитесь там!
| |
|
|
|
|
|
|
1.22, Анонн (?), 10:18, 16/12/2021 [ответить] [﹢﹢﹢] [ · · · ] [↓] [к модератору]
| +1 +/– |
Ну подумаешь, выполнение произвольного кода при работе с юсб-устройством! Просто не пользуйтесь юсб, это все смузихлебство, lpt должно хватить всем! Но зато как быстро! И да, это все погромисты неправильные попались!
| |
|
2.35, Аноним (-), 10:47, 16/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Просто не пользуйтесь юсб, это все смузихлебство, lpt должно хватить всем!
Ох еслиб, выпилили лптшки комерсы поганые
| |
2.42, Аноним (42), 11:07, 16/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Эта хреновина (USB Gadget) в обычных потребительских дистрибутивах
не используеься, более того даже не присутствует в основных репах.
| |
|
1.28, Аноним (28), 10:28, 16/12/2021 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| –5 +/– |
ну вот сколько анонимы опеннета им будут повторять, что дырявая сишка их в могилу сведёт, столько они будут в могилу сводиться
| |
|
2.37, Аноним (-), 10:51, 16/12/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +3 +/– |
так они и жили. дырявая сишка сводила всех в могилу, а потом уставшие, но довольные возвращались домой и пили чай с пряниками.
| |
|
|