| 1.1, 12yoexpert (ok), 11:16, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –4 +/– |
> Восстановлен код UNIXv4, первой ОС с ядром на языке C.
> продолжал развитие выпущенной за год до этого операционной системы UNIXv3, в которой впервые был использован язык Си
что-то я ничего не понял. в v3 ядро было не на си? нужно почаще вставлять "впервые" в новость, и всё будет хорошо
| | |
| |
| 2.6, Аноним (6), 11:26, 09/01/2026 [^] [^^] [^^^] [ответить]
| +10 +/– |
Конь-пилятор Си уже был, но сам юникс ещё не переписали. Могу порекомендовать книгу "Время UNIX" Брайан Керниган (тот самый из Керниган и Ритчи) об истории создания unix.
| | |
|
| 1.3, Аноним (6), 11:21, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –14 +/– |
Си был исконно с первейших версий придуман чтобы писать овнокод по типу такого while(*q++ == *p++); в su.
| | |
| |
| 2.134, Аноним (134), 15:03, 09/01/2026 [^] [^^] [^^^] [ответить]
| +7 +/– |
Зато без begin-end-ов :) И что только сишники не придумают, лишь бы на паскале не программировать.
| | |
| |
| 3.163, Аноним (163), 16:40, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Да программируйте хоть на Оббероне, никто вам не запрещает. У сишников свой путь, у begin/end'щиков свой.
| | |
| 3.213, Аноним (213), 18:15, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
В паскале есть указатели, а это значит, что паскалисты - латентные сишники, портящие память.
| | |
| |
| |
| 5.258, Аноним (213), 20:32, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Не нужно придумывать. https://wiki.freepascal.org/Memory_Management#Use-After-Free
>Use-After-Free on the other hand can result in unpredicted behavior, and may even result in exploitable vulnerabilities through which an attacker could trick your program into executing malicious code, or circumventing other security mechanisms such as access control.
Для memory safe нужно либо отказаться от указателей, либо иметь крайне продвинутую систему типов.
| | |
| |
| 6.278, Аноним (278), 21:05, 09/01/2026 [^] [^^] [^^^] [ответить]
| +2 +/– |
Так у Free Pascal'я система типов как раз продвинутая: есть
- небезопасные указатели для обраб. данных на низком уровне ( ^T );
- безопасные указатели ( T, T- это класс);
- управляемые указатели ( которые на тип-интерфейс), они как smart pointer;
- динамические массивы и строки - у них память освобождается автоматически.
| | |
| |
| 7.333, Аноним (333), 00:29, 10/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
>Так у Free Pascal'я система типов как раз продвинутая: есть
Зависимые типы в паскале есть? Нет? Ну значит продвинутой системы типов нет.
>- небезопасные указатели для обраб. данных на низком уровне ( ^T );
Здесь сразу же нужны зависимые типы как минимум. Афинные типы тоже понадобятся.
>- управляемые указатели ( которые на тип-интерфейс), они как smart pointer;
С зацикливанием и утечкой памяти?
>- динамические массивы и строки - у них память освобождается автоматически.
Как именно?
Для 1990-ых это может и было интересно, но для 2026 этого уже очень мало.
| | |
|
|
| 5.277, Аноним (277), 21:03, 09/01/2026 [^] [^^] [^^^] [ответить]
| –2 +/– | |
> Pascal относится к memory safe языкам
Не относится, потому что память в нем ты ручками вычищаешь. Даже C++ к ним не относится, а в нем, на минуточку, в отличие от Паскаля/Delphi есть RAII.
| | |
| |
| 6.316, Аноним (134), 23:23, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> память в нем ты ручками вычищаешь
у тебя сильно устаревшие сведения, в паскале давно уже есть управляемые типы.
| | |
| |
| 7.337, Аноним (277), 01:23, 10/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> у тебя сильно устаревшие сведения, в паскале давно уже есть управляемые типы.
Ну покажи мне автоматически вычищающийся TStringList.
| | |
|
|
|
| 4.318, Аноним (134), 23:25, 09/01/2026 [^] [^^] [^^^] [ответить]
| +2 +/– | |
> есть указатели, а это значит, что паскалисты - латентные сишники, портящие память.
В расте есть unsafe, а это значит, что растисты - латентные сишники, портящие память.
| | |
|
| 3.274, Аноним (278), 20:55, 09/01/2026 [^] [^^] [^^^] [ответить]
| –2 +/– |
Pascal сформировался в своём классическом виде только в 1974-м году, и он был предназначен для программирования in small.
Программа на Pascal должна находиться только в одном файле исходного текста, о каком серьёзном применении Паскаля может идти речь?
(TurboPascal, Delphi, FreePascal, GnuPascal, IsoPascal, MacPascal - это не Pascal, это другие языки)
| | |
| |
| 4.282, Аноним (277), 21:09, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
> Программа на Pascal должна находиться только в одном файле исходного текста, о каком серьёзном применении Паскаля может идти речь?
Покажи мне хоть одну программу из исходного кода Unix 4 (ссылка в новости), которая состояла бы из более чем одного файла исходного текста. То-то же...
| | |
| 4.321, Аноним (134), 23:46, 09/01/2026 [^] [^^] [^^^] [ответить]
| +2 +/– | |
> TurboPascal, Delphi, FreePascal, GnuPascal, IsoPascal, MacPascal - это не Pascal, это другие языки
Си сформировался в своём классическом виде только в 1999 году. Программа на Си представляет собой портянку из инклудов, завёрнутых в макросы, чтобы инклуды не зацикливались, вызывая самих себя рекурсивно. Это надо делать вручную, в отличие от более продвинутого Паскаля, где есть модули. GCC, Clang, MSVC, TCC, Turbo C, Watcom, Oracle Solaris Studio C, Pelles C, K&R C, ANSI C, C99, C11, C17, C23 - это не Си, это другие языки.
(Чтобы тебе был понятен ответ, подскажу, что Delphi - это не язык).
| | |
| 4.339, Аноним (277), 01:33, 10/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Программа на Pascal должна находиться только в одном файле исходного текста, о каком серьёзном применении Паскаля может идти речь?
Ты не поверишь, но в Си тоже! Тебе сишочный код из разных #include в одну портянку склеивает левая приблуда (макропроцессор).
| | |
|
|
| 2.222, Аноним (222), 19:12, 09/01/2026 [^] [^^] [^^^] [ответить]
| –1 +/– | |
> Си был исконно с первейших версий придуман чтобы
Можно было бы ещё раз объяснить тебе, для чего был придуман Си, но тебе уже объясняли, а ты так и не понял.
| | |
| 2.303, Bottle (?), 22:20, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Зря заминусили, вообще-то под Юниксом неиронично предполагалось сишку использовать для мелких утилит, вызываемых через shell & awk.
| | |
|
| 1.8, Аноним (-), 11:27, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –6 +/– |
> Код содержал уязвимость, приводящую к переполнению буфера из-за копирования
> вводимого пользователем пароля в фиксированный 100-символьный массив без проверки
> размера вводимых данных.
Реликтовый вулн дидов. Почти как первая ошибка ворлонов с которой начались их неудачи и обломы.
| | |
| |
| 2.15, Аноним (6), 11:46, 09/01/2026 [^] [^^] [^^^] [ответить]
| –4 +/– |
На ассемблере по другому и не напишешь. Или придется городить огороды размером больше самого приложения на каждый чих.
| | |
| |
| 3.60, Аноним (60), 13:02, 09/01/2026 [^] [^^] [^^^] [ответить]
| +10 +/– | |
>На ассемблере по другому и не напишешь.
Сразу видно авторитетного писателя на асме :)))
| | |
|
| 2.285, Лиечка (?), 21:14, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
+ за Вавилон-5. В условиях ограниченных ресурсов (каждый байт за счету) такое отношение к переполнениям буфера имело место быть... но в современных условиях такое уже недопустимо.
| | |
| 2.308, nio (??), 22:48, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
> Почти как первая ошибка ворлонов с которой начались их неудачи и обломы
Это какая же?
| | |
| |
| 3.324, Аноним (134), 23:55, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Бот скрывает ответ... Ответ: "синдром чрезмерного величия при своём не очень высоком положении".
| | |
| |
| 4.326, nio (??), 23:59, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
> Бот скрывает ответ... Ответ: "синдром чрезмерного величия при своём не очень высоком
> положении".
Ну, относительно других цивилизаций положение у них было достаточно высоким, если не считать Теней.
| | |
|
| 3.341, Аноним (-), 01:46, 10/01/2026 [^] [^^] [^^^] [ответить] | +/– | Ворлоны очень развитая раса, помешанная на порядке и правилах Они познали многи... большой текст свёрнут, показать | | |
|
|
| 1.9, Аноним (9), 11:27, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +15 +/– |
Помню как разработчики sendmail в начале 1990-х отказывались править переполнение буфера, мотивируя тем, что вызывающий переполнение SMTP-запрос не соответствует RFC. Типа, запросы, соответствующие RFC обрабатываются без ошибок, значит всё Ок.
| | |
| |
| 2.13, IdeaFix (ok), 11:38, 09/01/2026 [^] [^^] [^^^] [ответить]
| –3 +/– |
Сейчас перекладывание ответственности вышло на новый уровень, теперь пеняют не на RFC а на зеркало перед юзером. Типа мы тебе из коробки сломали вызывающий впросы функционал, но на свой страх и риск ты его можешь включить тут. Что? Базовый функционал говорите? Ну да... мы тебе из коробки сломали базовый функционал, но на свой страх и риск ты его можешь включить тут.
И одно дело когда то нтфс на запись, а другое - когда нода там или томкет.
| | |
|
| 1.14, Аноним (-), 11:45, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
> приводящую к переполнению буфера
> "кому может понадобиться вручную вводить слишком длинные строки".
У них никогда не было кота?! Или детей?
(Не, ну детей к дорогущему компу может и не подпускали)
> мало кто обращал внимание на переполнения буферов
И с того времени мало что изменилось :)
| | |
| |
| 2.20, Аноним (6), 11:48, 09/01/2026 [^] [^^] [^^^] [ответить]
| +6 +/– |
А котов типа подпускали? Тогда если ты там что-то переполнил ты не в другой стране сидишь, а в специализмрованном помещении с пропускной системой и охраной. Если что-то сломал, охрана будет сначала бить, а потом думать. Вот и не было переполнения тогда. Грамотное обустройство рабочего пространства.
| | |
| |
| 3.36, 12yoexpert (ok), 12:16, 09/01/2026 [^] [^^] [^^^] [ответить]
| +3 +/– |
> А котов типа подпускали?
а что ты коту сделаешь в его квартире? ты обслуга, подай-принеси, не более
| | |
| |
| |
| |
| |
| 7.185, Аноним (-), 17:24, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Это pdp-11 курильщика
Ой! Не придирайтесь!
Как смогли - так и сп###ли.
Скажите спасибо что хоть это было))
| | |
|
|
|
| 4.129, EuPhobos (ok), 14:48, 09/01/2026 [^] [^^] [^^^] [ответить]
| +4 +/– |
"в квартире" - вот и дожили, когда у молодняка на уме только "комп в квартире"))
| | |
| |
| 5.166, пэпэ (?), 16:46, 09/01/2026 [^] [^^] [^^^] [ответить]
| +4 +/– |
Вот и дожили, когда у молодняка на уме только квартиры. Про пещеры совсем забыли. Потерянное поколение.
| | |
|
|
|
| 2.53, Аноним (53), 12:52, 09/01/2026 [^] [^^] [^^^] [ответить]
| +2 +/– |
Какие коты??
Просто коpоpaтивный paб устав грести на гaлepe упал моpдой лица прям на клавиатуру терминала. И набрал больше чем 100 символов.
Хотя на самом деле все было проще.
"Dennis once fed a couple-of-thousand-byte line on standard input to everything in /bin. Crashes abounded, but so what? Wasn't a crash just an ungraceful way for a program to say "I can't handle this"? Not until the Morris worm (1988) did folks wake up to the real danger of overflows." - слова того же Макилроя.
Им было просто плевать на качество, на безошибочность, на надежность.
Реальность потом ударила по лицу, но привычка писать дpmовый код уже пошла в (kalовые) массы СИшников.
| | |
| |
| 3.62, Аноним (-), 13:07, 09/01/2026 [^] [^^] [^^^] [ответить]
| –1 +/– | |
>Им было просто плевать на качество, на безошибочность, на надежность.
А вот тут явно передёргиваешь.
| | |
| |
| 4.66, Аноним (-), 13:13, 09/01/2026 [^] [^^] [^^^] [ответить]
| +5 +/– |
>>Им было просто плевать на качество, на безошибочность, на надежность.
> А вот тут явно передёргиваешь.
Блин, я спецом привел цитату
"Crashes abounded, but so what?"
В ней прямым тесктом написано "Упало? Да поxep!"
| | |
|
| 3.65, Аноним (60), 13:10, 09/01/2026 [^] [^^] [^^^] [ответить]
| +3 +/– | |
>Им было просто плевать на качество
Ты так говоришь, как будто сейчас что то изменилось. Нет, просто за время компьютерной эпохи напридумывали костылей, которые мало по малу поддерживают "писателей". У меня нет сомнений, что если посадить рядом дидов и современных вебописателей и выдать им одинаковые инструменты, то результат будет не в пользу современных поколений.
| | |
| |
| 4.72, Аноним (-), 13:24, 09/01/2026 [^] [^^] [^^^] [ответить]
| –1 +/– | |
> Ты так говоришь, как будто сейчас что то изменилось.
Да, изменилось.
Как минимум прользователь будет расстроен если его комп или телеон ломанут.
А для программеров такой маневр может стоить работы, а его компании вообще существования (попадаешь на штраф и банкротишься).
> У меня нет сомнений, что если посадить рядом дидов и современных вебописателей и выдать им одинаковые инструменты, то результат будет не в пользу современных поколений.
Каких наƒиг инструментов?
В СИ того года не было условно оператора чтобы написать
if (sizeof(password) > validSize)
goto ohSHIT
?
Чего блuн не хватало?
Или просто секономили пару строк, потому что "ну упало, ну и xul'e"))
| | |
| |
| 5.88, Аноним (6), 13:48, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Тогда быстродействие считали в тактах процессора. Что даёт это твоя проверка в долларах? Ненужную работу? А чего может ещё игру тетрис туда добавить?
| | |
| |
| 6.119, Аноним (-), 14:16, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Что даёт это твоя проверка в долларах? Ненужную работу?
А потом такие
"Бл###! Нам самокопирующийся черяк положил кучу компов! У нас убытки на 100500 баксов!
Как жи это произошло!!"
Ну шо, наэкономили такты?
| | |
| |
| 7.143, Аноним83 (?), 15:34, 09/01/2026 [^] [^^] [^^^] [ответить]
| +3 +/– |
Не было раньше такой проблемы, как же вы не поймёте.
Хакера просто перестали бы пропускать на посте охраны в здание где комп.
Это сейчас есть интернет куда легко попасть из любого места и потом тебя трудно найти, а ты можешь кому угодно что угодно слать.
| | |
| 7.146, Аноним (146), 15:44, 09/01/2026 [^] [^^] [^^^] [ответить]
| +2 +/– |
Какой самокопирующийся червяк в 1973-м году? Тогда весь ARPANET состоял из пяти компьютеров, и там точно был не Unix.
| | |
|
|
| |
| |
| 7.154, Аноним83 (?), 16:25, 09/01/2026 [^] [^^] [^^^] [ответить]
| –3 +/– |
gets() внутри как раз и соедржит примерно это.
Долгое время данное не было проблемой ПО/владельца системы а было проблемой юзера который делает что то не то.
| | |
|
|
| |
| 6.162, нах.. (?), 16:39, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
ну на самом деле его там не было потому что размеры на pdp11 и так все знали, зачем считать то что заранее известно.
А появился при переносе на interdata (и это скорее v6) когда внезапно оказалось что на другой архитектуре в int не два char а целых четыре и это надо как-то уметь проверять, если данные читаются или пишутся посимвольно из внешнего источника.
А byte не появился, ненавижю.
| | |
|
|
|
| 3.85, Аноним (6), 13:45, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Ну вот упал он лицом и куда-то там вышел. Комп завис, и? Какая угроза пойяси. Лишний раз перезагружаться? Ну так перезагрузись не быкуй.
| | |
|
| 2.149, Аноним (149), 15:50, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
Вряд ли кто-то пускал котов или детей в офис Bell Labs, и уж тем более в помещения с компьютером.
Тогда к этому относились как к рабочему инструменту для профессионала. Оперативная память измерялась в килобайтах. Каждая лишняя проверка на счету. Без особой необходимости - слишком расточительно.
А потом на этой кодовой базе сделали стек для ARPANET, и открылась целая новая реальность:)
| | |
| |
| 3.232, Аноним (277), 19:48, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
> Оперативная память
> Без особой необходимости - слишком расточительно.
Ага, и поэтому мы выделим 200 байт стека на пароль.
> Каждая лишняя проверка на счету
И поэтому мы будем дергать getc() в цикле.
Как же смешон копиум местных экспертов. Хотя, казалось бы, вот же код и даже цитаты Дугласа Макилроя под носом...
| | |
|
|
| 1.16, Фнон (?), 11:46, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
> утилита включала менее 50 строк кода
> переполнению буфера из-за копирования вводимого пользователем пароля в фиксированный 100-символьный массив без проверки размера вводимых данных.
Ахахаха, диды писали!
Вот и ответ на вопрос "сколько строк на СИ достаточно чтобы написать CVE")))
> Код ядра UNIXv4 был написан Кеном Томпсоном, а драйверов - Деннисом Ритчи.
Есть ли более настоящие СИшники чем эти два?
> Добавление проверок размера вводимых вручную данных рассматривалось как добавление лишнего кода
И тааак сойдет! (с)
> аварийное завершение при переполнении воспринималось как неуклюжая форма реагирования на некорректные входные данные.
Поэтому мы просто не будем реагировать. Никак.
Испортим память или подарим рут доступ.
| | |
| |
| |
| 3.25, Фнон (?), 11:53, 09/01/2026 [^] [^^] [^^^] [ответить]
| –3 +/– |
CVE в Binder привело к падению.
Память не была испорчена, повышение привилегий или исполнение чужого кода не произошло.
К чему приводят CVE в СИшной дpыстине мы читаем вот прям на этом сайте каждую неделю-две.
| | |
| |
| 4.242, Аноним (242), 20:06, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> CVE в Binder привело к падению.
Память не была испорчена, повышение привилегий или исполнение чужого кода не произошло.
Да, подумаешь, произошёл DoS всей системы, с кем не бывает. Всего-то навсего обошли систему упреждения race-condition (если она вообще существует) в safe коде. А, да, точно, "виновата" строчка unsafe где буквально происходит обычное удаление элемента из списка, а не та safe часть кода, которая отпустила лок на лист, продолжая работать с данными из него, пусть даже сделав локальную копию (нахера?).
| | |
| |
| 5.334, Аноним (-), 00:51, 10/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Да, подумаешь, произошёл DoS всей системы, с кем не бывает.
Нет, это большая проблема.
Но с RCE было бы все гораздо хуже.
> А, да, точно, "виновата" строчка unsafe где буквально происходит обычное удаление элемента из списка, а не та safe часть кода, которая отпустила лок на лист, продолжая работать с данными из него, пусть даже сделав локальную копию (нахера?).
Да, работа с unsafe кодом требует внимательности.
| | |
|
|
|
| 2.76, Совершенно другой аноним (?), 13:42, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Unix V4 - дата создания 1973 год.
UUCP (первые хоть какие-то сетевые средства) - дата создания 1976 год, более-менее широкое внедрение 1978 год (было подключено аж 82 машины внутри Bell Labs).
Сетевой стек (4BSD, уже не совсем, и даже совсем не Unix V4, а что-то около Unix V7) - дата создания 1981 год.
Т.е. удалённо этой уязвимостью воспользоваться никак не получилось-бы.
Далее - тогда ещё в разные ROP (Return-Oriented Programming) не умели, да и букв таких не знали, поэтому максимум что Вы могли - это обеспечить SIGSEGV, который обеспечивало ядро ОС. Современные языки при переполнении буфера вызывают абстрактный panic(), который, по итогу, выполнит практически то-же самое, только без участия ядра.
| | |
| |
| 3.102, Анонимусс (-), 13:57, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
А кто сказал что это код не перекочевал дальше?
Вот напр. тот же файл в UNIX V
github.com/ngn999/UNIX-System-V/blob/182dea74d55cb447d1b0adba2d62b8f8cdcdd392/usr/source/s2/su.c#L4
| | |
|
|
| 1.27, Аноним (-), 11:54, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– | |
> 93-летний Дуглас Макилрой
Он может гордиться следующими поколениями, которые совершают абсолютно такие же ошибки в 2025м что и они в 1973м.
Вот она настоящая преемственность поколений!
Пронесем сишные дыры через века!
| | |
| |
| 2.118, Аноним (118), 14:15, 09/01/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
Нынешнему поколению плевать даже на сам Си не то, чтобы на баги Сишные, даже не с точки зрения безопасности, а вообще корректности того или иного алгоритма. Формализм на то и формализм, что думать особо о имплементации не надо. Написал f(x) = y, ну вот и все, и не должно волновать никого кто и что за место этого икса туда пихнет.
| | |
| |
| 3.275, Аноним (213), 20:59, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
>Нынешнему поколению плевать даже на сам Си не то, чтобы на баги Сишные, даже не с точки зрения безопасности, а вообще корректности того или иного алгоритма.
То-то же современные программисты пишут либо на rust, либо на ocmal, либо на haskell, где ошибочная программа, в отлчии от си компилироваться не будет. А ведь есть ещё Lean и Idris.
| | |
| |
| 4.329, Аноним (329), 00:04, 10/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> современные программисты пишут либо на rust, либо на ocmal, либо на haskell
Ага, все три современных программиста пишут именно на этом. Один - на расте, второй - на окамле, третий - на хаскеле. А все остальные 99.9999999% программистов пишут на js, java, python и c++.
| | |
|
|
|
| 1.28, Аномалии (?), 11:55, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Налепили, прибили, скотчем примотали и в продакшн. Думать они начали с выпуском Plan 9, но уже было поздно
| | |
| 1.30, Аноним (-), 11:58, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
> Добавление проверок размера вводимых вручную данных
> рассматривалось как добавление лишнего кода
Бугуга, с тех пор ничего и не изменилось)))
Зато пару тактов можно будет сэкономить.
Хотя нет, не пару...
В недоязычке нет строк, а длина char* считается за O(N).
| | |
| |
| |
| 3.46, Аноним (-), 12:40, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
1. А причет тут раст?
2. В нормальных языках есть тип String, в котором при создании записывается кол-во символов.
Это позволяет оперировать с длинной строки (например создавать буфер нужного размера) без её обхода.
| | |
| 3.47, Анонимусс (?), 12:46, 09/01/2026 [^] [^^] [^^^] [ответить]
| +2 +/– | |
> А за какое время в расте длина char* считается?
В расте есть нормальные строки вместо char*
И их длина считается за O(1) - там просто возвращается значение.
pub const fn len(&self) -> usize {
self.vec.len()
}
doc.rust-lang.org/src/alloc/string.rs.html#1849
doc.rust-lang.org/src/alloc/vec/mod.rs.html#2912
| | |
| |
| 4.78, Аноним83 (?), 13:42, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Таких "нормальных строк" в С в разных либах/фреймворках вагон и маленькая тележка, просто их никто в стандарт не тащит, потому что это лишнее.
| | |
| |
| 5.144, Аноним (144), 15:35, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> просто их никто в стандарт не тащит, потому что
Не лезут. Чтобы структура вела себя как указатель, дополнительно хранящий размер, нужна перегрузка операторов.
Си - это не только близость к железу, но и реалии 70...80-х. Что общего между "%zd" и PRId8? То, что это нормальный подход для 70-х, компайл-тайм наворотов в портативном ассемблере быть не могло, жертвовать здесь производительностью, размером бинарника и нервами разработчика было нормально - ничего лучше вокруг нет и не надорвётся он с тогдашними объёмами кода.
| | |
| |
| |
| 7.211, Аноним (144), 18:02, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Структура { длина, указатель } - это совершенно _другой_ тип данных. Для него пишутся другие функции по определению
Верно, в Си ещё с обобщённым программированием проблемы. Только на макросах, а их даже ты тут не рассматриваешь.
> стандартные все равно не годятся
И со стандартной библиотекой, да.
| | |
|
| 6.314, Аноним (333), 23:11, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
>Чтобы структура вела себя как указатель, дополнительно хранящий размер, нужна перегрузка операторов.
Зачем? Достаточно выкинуть текущие строковые функции типа printf и strcpy и вместо них воткнуть нормальные. Сишникам не лень писать разные операторы для доступа к полю в структуре и по указателю, вот и тут бы не облезли.
| | |
|
| 5.150, Аноним (-), 15:50, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Таких "нормальных строк" в С в разных либах/фреймворках вагон и маленькая тележка,
Велосипеды! Покупайте наши велосипеды! Они самые велосипедистые в мире!!
> просто их никто в стандарт не тащит,
Потому что "стандарт" такой же кусок крэпа.
> потому что это лишнее.
Ага, как и bool, который 50 лет был "ненужон ваш bool! хватит и макросной дрыстни!"
Но ВНЕЗАПНО в С23 добавили.
Так что ждем строки.
Лет через 20ть))
| | |
| |
| 6.159, Аноним83 (?), 16:31, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
А зачем нужны строки?
Так по хорошему в С есть строки, это то что const char * = "stroka";
Всё остальное это какие то байты хранящиеся где то в памяти, про которые известно программисту но не компелятору.
А когда программе надо много работать со "строками" - тогда и юзают всякие или самописные или готовые фреймворки для строк, где длина хранится где то рядом.
| | |
| |
| 7.216, Аноним (216), 18:41, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
> А зачем нужны строки?
> Так по хорошему в С есть строки, это то что const char * = "stroka";
Ну, например, чтобы не бежать каждый раз O(n) в поисках нуля? Причем заметь: компилятор-то уже знает длину строкового литерала, но гениальный дизигн "на коленке" в 99% случаев это не позволяет использовать.
Ну, или, не сношаться с буферами фиксированного размера в случае, как вот с этим дырявым дидовским su. Уже больше полувека целый пласт вулнов льется бесконечным потоком лишь потому, что в Си отсутствует человеческий строковый тип. Причем первопроходцами в этом стали сами деды-создатели! 😂
| | |
| |
| 8.250, Аноним (242), 20:18, 09/01/2026 [^] [^^] [^^^] [ответить] | –3 +/– | Если у тебя проблемы с тем, чтобы писать код, в котором нету перепрыгивания чере... текст свёрнут, показать | | |
| |
| 9.273, Аноним (213), 20:55, 09/01/2026 [^] [^^] [^^^] [ответить] | +/– | Это сишные проблемы Разные окончания строк не приводят к переполнению буфера Н... большой текст свёрнут, показать | | |
|
|
|
|
| 5.253, Аноним (277), 20:25, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Таких "нормальных строк" в С в разных либах/фреймворках вагон и маленькая тележка, просто их никто в стандарт не тащит, потому что это лишнее.
Зато не лишнее - посношаться с фиксированным буфером и вылезти за его пределы.
| | |
|
| 4.90, нах. (?), 13:49, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
>> А за какое время в расте длина char* считается?
> В расте есть нормальные строки вместо char*
проблема только в том что они - в хрусте.
> И их длина считается за O(1) - там просто возвращается значение.
ты и на си тоже вполне можешь заранее посчитать значение и сохранить отдельно.
Почему-то так почти никто не хочет делать. (В том числе и потому что чаще всего нам не нужно это знать вообще.)
Причина банальна - в процессоре нет никаких строк. И в памяти их нет. Есть только последовательности байт.
Это просто синтаксический сахарок. Каждый раз как тебе приходится взаимодействовать с внешним миром из твоего нескучного йезычка - сахарок приходится отложить в сторонку и заново учиться работать с сырыми данными из недоверенного источника.
| | |
| |
| 5.153, Аноним (-), 16:13, 09/01/2026 [^] [^^] [^^^] [ответить] | +/– | Да, это проблема Можно решить выкидыванием дырявых ЯП Желательно прикостылять ... большой текст свёрнут, показать | | |
|
| 4.345, Аноним (345), 01:53, 10/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
> В расте есть нормальные строки вместо char*
> И их длина считается за O(1) - там просто возвращается значение.
Я б посмотрел как ты имеючи только асм вообще забутстрапишь свой rust хоть как-то. Особенно с его чудной полисей что текущая версия собирается только предыдущей.
Поэтому есть те кто может поднять платформу с ноля при zero assumptions. И есть все остальные. И вы никогда не будете равные первым по их эпичности, сколько бы не тявкали.
| | |
|
|
|
| 1.31, Аноним (31), 12:03, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
> 1973
> Кен Томпсон
> Код содержал уязвимость, приводящую к переполнению буфера
Хотелось бы услышать комментарии ProfessorNavigator, который любит рассказывать, что проблема в деградировавших современных программистах. Как это понимать? Или Кену Томпсону тоже капитализм подгадил?
| | |
| |
| 2.33, Аноним (-), 12:07, 09/01/2026 [^] [^^] [^^^] [ответить]
| +4 +/– | |
> Или Кену Томпсону тоже капитализм подгадил?
Конечно!
Проприетарный UNIXv3 переписывали для проприетарного ЭВМ PDP-11/45 в виде проприетарного
UNIXv4 и все это делалось в корпе DEC.
Чуешь запах капитализма?!
| | |
| 2.74, Анонимусс (-), 13:37, 09/01/2026 [^] [^^] [^^^] [ответить]
| +3 +/– | |
> Или Кену Томпсону тоже капитализм подгадил?
Разумеется. Менеджер корпорации ̶у̶г̶н̶е̶т̶а̶л̶ ̶п̶р̶о̶л̶е̶т̶а̶р̶и̶а̶т̶ подгонял разработчиков ради сиюминутной наживы, заставлял работать в нечеловеческих условиях и не организовал правильный режим труда. А государство не предоставило им бесплатное образование, поэтому они и оказались такими некомпетентными.
А вот если бы был комунизм, то не было бы у вас ни Unix, ни PDP, ни DEC!
Сидели бы со счетами и никаких переполнений буфера не произошло бы.
| | |
| |
| 3.121, Аноним (118), 14:19, 09/01/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
ну, а в итоге кто больше дров наломал? аксиома ведь - не совершает ошибок тот, кто ничего не делает.
| | |
| 3.186, Аноним (6), 17:24, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Но ведь вся суть существования местных комментаторов никогда не выходить заграницу буфера. Это заповедь, которую нельзя нарушать.
| | |
|
| |
| 3.177, Аноним (144), 17:15, 09/01/2026 [^] [^^] [^^^] [ответить]
| –1 +/– | |
> Такой вот способ обработки ошибок был в то время, чтобы не городить лишний огород - процессор то слабее, чем в современной стиральной машине, и памяти, считай, нет
Трёхмерные крестики-нолики* (в дополнение к двухмерным), шахматы, блэкджек, генератор лабиринтов, какая-то игра-угадайка из Англии, игра "Hunt the Wumpus"... юниксовая размашистость в файловой системе, без 8.3 из CP/M и прочего. Как на это хватило памяти и процессора в 1972-1973 на дорогущем казённом компьютере? И почему история юникса всегда шла рядом с HDD на сотни дискеток объёмом?
* http://squoze.net/UNIX/v4man/man6/cubic и т.д.
| | |
| |
| |
| 5.194, Аноним (6), 17:30, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Что характерно в казенном большом компе на несколько машинных залов в файловой системе судя по эмуляторам была папка games
| | |
|
| 4.254, ProfessorNavigator (ok), 20:27, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Умели код оптимизировать. На моём первом ПК был жёсткий диск размером 40 Мб, сколько там по остальным параметрам было - не помню уже. Дело было больше 30 лет назад.
| | |
|
| 3.234, Аноним (213), 19:50, 09/01/2026 [^] [^^] [^^^] [ответить] | +1 +/– | Проффесор, а читать не умеете Нет никакого падения, есть переполнение буфера И... большой текст свёрнут, показать | | |
| |
| |
| |
| 6.248, ProfessorNavigator (ok), 20:14, 09/01/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Вы уже в соседней теме видели мой код, забыли?
Он не ваш, а из методички. Когда свой проект напишите, или в чужой вклад вносить начнёте - приходите. В общем - свободен.
| | |
| |
| 7.263, Аноним (213), 20:40, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
>Он не ваш, а из методички.
Ну так вы любой код не моим назовёте, даже если я его при вас напишу. Скажете, что зазубрил на память.
>или в чужой вклад вносить начнёте - приходите
А кто вам ошибку в вашем парсере указал, а?
| | |
|
|
|
|
| 3.271, Аноним (277), 20:50, 09/01/2026 [^] [^^] [^^^] [ответить] | +/– | Ага, за исключением тех случаев, когда пределы буфера не приводит к падению Или... большой текст свёрнут, показать | | |
| |
| 4.272, ProfessorNavigator (ok), 20:52, 09/01/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
>[оверквотинг удален]
> Нормальное поведение, да.
>> Такой вот способ обработки ошибок был в то время, чтобы не городить лишний огород - процессор то слабее, чем в современной стиральной машине
> И поэтому мы дергаем getc() в цикле.
>> и памяти, считай, нет
> И поэтому мы наперед откусим 100 байт стека.
>> Впрочем, вам ведь всё равно, про таких говорят: хоть кол на голове теши. И к программированию вы никакого отношения не имеете
> О, превентивный ad hominem от профессора. 😂
>>> Или Кену Томпсону тоже капитализм подгадил?
>> Он гадит вообще всем, даже тем, кто так не считает. Падение уровня образования - одно из проявлений
> Намекаете, что Кен Томпсона был тот самый "упавший" уровень образования?
Код, написанный лично вами, или свободен.
| | |
| |
| 5.287, Аноним (277), 21:16, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Код, написанный лично вами
А при чем тут код, написанный лично мной? Как он относится к теме обсуждения?
| | |
|
|
|
|
| 1.32, Аноним (32), 12:06, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Прикольно
V4 действительно считалась потерянной
Более менее развитие шло с V5
| | |
| 1.35, Аноним (35), 12:12, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– | |
Впечатлило два момента:
1. Как просто было переписать на другой язык. Вот просто взяли и переписали следующую версию на сях. Не то что нынешние на раст. С другой стороны, есть подозрение, что переписывание на си давало бОльшую скорость написания кода по сравнению с ассемблером, что в случае с переходом с сей на раст не вариант (был бы не вариант даже при переходе на якобы более высокоуровнувую яву).
2. Первая сишная уязвимость появилась фактически при первом серьёзном использовании языка. Символично. Как выше пишут, преемственность поколений.
П.С. Сам растохейтер.
| | |
| |
| 2.39, Аноним (6), 12:22, 09/01/2026 [^] [^^] [^^^] [ответить]
| +5 +/– |
Хочешь прикол? Они переписывали на печатной машинке (телетайпе) и у них не было кнопки backspace по факту могли переписывать только всю строку заново при опечатке.
| | |
| |
| 3.221, OpenEcho (?), 19:08, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Они переписывали на печатной машинке (телетайпе) и у них не было кнопки backspace
Всё то лучше чем смотреть на таблицу опкодов и вбивать хексом (а то и 1,0...) чтоб сделать сперва ассемблер, потом С и так далее, чтоб потом от потомков огрести какие все тупые были.
То ли дело у них, в их абстрактой клетке всё за них "нормальные" языки делают... и правильно делают! C таким менталитетом к прошлому их близко нельзя подпускать к более низкому уровню, зато какая блин гордость за "удобно" читаемый и "понятный" код на "нормальном языке", потому как mогут даже так:
'''
let x: () = ()=()=();
'''
| | |
| |
| 4.224, Аноним (224), 19:18, 09/01/2026 [^] [^^] [^^^] [ответить]
| –1 +/– | |
> Всё то лучше чем смотреть на таблицу опкодов и вбивать хексом (а то и 1,0...) чтоб сделать сперва ассемблер, потом С и так далее,
Конечно лучше
> чтоб потом от потомков огрести какие все тупые были.
Разве их кто-то называл тупыми?
Они как раз были умными: знали что пишут погано, но все равно делали.
> C таким менталитетом к прошлому
Типа "нельзя критиковать Великих Программистов Прошлого!!!" ?
Даже если они писали однозначно плохой код, про который высказывался Дуглас Макилрой, цитаты которого уже пол темы мусолят.
> mогут даже так:
> let x: () = ()=()=();
Отличный код! Они явно вдохновлялись ++i == i++
| | |
| |
| 5.310, Аноним (310), 22:54, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
>>Типа "нельзя критиковать Великих Программистов Прошлого!!!" ?
Критикуя Великих Программистов вы показываете что не знаете за что их считают великими
| | |
| 5.312, Аноним (310), 22:59, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
>>Даже если они писали однозначно плохой код, про который высказывался Дуглас Макилрой, цитаты которого уже пол темы мусолят.
В новости же всё объяснено, что "однозначно плохой" - это если бы был написан сейчас, а для начала 70-х это был разумный компромисс. Памяти было мало у компов, как не можете это понять, нельзя было писать большие программы.
| | |
|
|
|
| 2.40, Аноним (40), 12:25, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
С ассемблера на С переписать действительно (было) несложно. Особенно если знать ассемблер (а ведь есть и уровень ниже - машинных кодов, я с них и начинал - писал байтики в шестнадцатеричном редакторе). С - всего лишь следующая стадия макро-ассемблера. Обратное (фактически компиляция) гораздо сложнее, ибо нужно хорошо понимать как работает железо, то есть процессор, память, порты и тд. И чем дальше тем хуже: нынешние си погроммисты (кроме системщиков, как правило) не имеют представления о том как железо работает вообще. С одной стороны они пишут код для абстрактной машины (то есть переносимый), с другой - этот код может быть хоть и рабочий (с точки зрения процессора, не факт что периферии), но неоптимален.
| | |
| 2.80, нах. (?), 13:43, 09/01/2026 [^] [^^] [^^^] [ответить] | +/– | только сперва понадобилось создать этот самый язык Предназначенный именно для э... большой текст свёрнут, показать | | |
|
| 1.38, Аноним (38), 12:19, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– | |
> Добавление проверок размера вводимых вручную данных рассматривалось как добавление лишнего кода
Сами исконные диды, создатели языка, заложили эту идеологию разработки ПО. Это прекрасно. Можно добавлять в методичку по переходу на раст.
| | |
| |
| 2.44, Аноним (-), 12:36, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
> Сами исконные диды, создатели языка, заложили эту идеологию разработки ПО. Это прекрасно.
"СИ мы пишем овнокод прям с самого создания" !
Отличный лозунг для отличного языка)))
| | |
| |
| 3.59, Аноним (59), 13:02, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Тогда падение в невероятных условиях не считалось значительной проблемой. Язык тут ни при чём, просто программировать тоже надо уметь. И программировать ещё не изобрели, когда придумали ассемблер.
| | |
| |
| 4.77, Аноним (-), 13:42, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Что значит "программировать "не придумали?
Они не могли написать "если пароль больше буфера goto error"?
Могли.
Задумывались он о такой возможности?
Задумывались.
Дугласм сам пишет "nobody would ever want to input a 200-character line, say, so why bother writing
the extra code to catch it?"
Им было просто плевать.
Это 1973 год.
Уже изобретены Паскаль, Smalltalk.
Алгол был еще в 60х, как Симула и Фортран.
| | |
| |
| 5.96, нах. (?), 13:54, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
> Это 1973 год.
> Уже изобретены Паскаль, Smalltalk.
> Алгол был еще в 60х, как Симула и Фортран.
ну вперед, напиши ОС (или хотя бы попробуй переписать с ассемблера) на smalltalk.
| | |
| |
| |
| 7.156, нах.. (?), 16:29, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
Implement the bare minimum as native code (a mix of assembly and C), and then do everything else in Squeak.
что-то видимо пошло не так, и без распроклятого нибизопастного си опять не получилось.
(но попытка конечно зачотная)
| | |
| |
| 8.346, Диды (ok), 02:30, 10/01/2026 [^] [^^] [^^^] [ответить] | +/– |  Да всё так Без нынче модно проклинаемого C и asm низкоуровневые штуки не написа... текст свёрнут, показать | | |
|
|
|
| 5.106, Аноним (59), 14:00, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Опять же, откуда ты узнаешь, сколько байт ввели? Это надо счётчик для каждого символа, дополнительные проверки. В дополнение к 200 уже потерянным байтам. А вот каким образом в grub проверку пароля можно обойти нажав backspace несколько раз -- это другой вопрос. Это уже умысел.
| | |
| |
| 6.158, нах.. (?), 16:31, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
нет, точно такой же ляп (только там символы удалялись а не добавлялись), просто та su еще и backspace не умела обрабатывать, ей было проще. Если ты бы умел кодить не на markdown и тот с ЫЫ - ты бы это и сам понял.
Если в следующей инкарнации я соберусь соорудить альтернативу опеннету, то ношение шапочек из фольги все же будет там приводить к перманентному бану.
| | |
| 6.174, Аноним (174), 17:04, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Опять же, откуда ты узнаешь, сколько байт ввели? Это надо счётчик для каждого символа, дополнительные проверки.
Ты в код заглядывал?
там while((*q = getchar()) != '\n')
Они и так считывали ввод посимвольно.
> А вот каким образом в grub проверку пароля можно обойти нажав backspace несколько раз -- это другой вопрос.
Это очень веселая и показательная история
opennet.ru/opennews/art.shtml?num=43536
> Это уже умысел.
Не докажете)
| | |
| 6.280, Аноним (213), 21:05, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
>Это надо счётчик для каждого символа
Одна строка - один счётчик.
>дополнительные проверки
И? В чём проблема проверять ввод, как минимум, когда медленные пальци программиста вводят пароль? Вы боитесь неуспеть реализовать cve?
>А вот каким образом в grub проверку пароля можно обойти нажав backspace несколько раз -- это другой вопрос. Это уже умысел.
Точно таким же. Как и в 1970-ые.
| | |
| |
| 7.304, Аноним (59), 22:32, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Ну правильно. Системы были мультизадачные и многопользовательские? А ты тут такты разбазариваешь. Тебя бы первого остракизму предали за растрату капиталистического имущества.
| | |
|
|
|
|
|
|
| 1.45, Аноним (31), 12:38, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ] | +/– | Откровенно говоря, лучше бы Дуглас Макилрой вообще ничего не комментировал Ибо,... большой текст свёрнут, показать | | |
| |
| 2.50, Аноним (50), 12:49, 09/01/2026 [^] [^^] [^^^] [ответить]
| +3 +/– |
Зато сегодня они могут кряхтеть и бухтеть:
"воооот! смyзихлебы!! а вот в мое время! а вот мы!!"
А тут выходит что СИ это язык от бракоделов для бракоделов)
| | |
| 2.51, Аноним (51), 12:50, 09/01/2026 [^] [^^] [^^^] [ответить]
| +4 +/– |
Вызывает восхищение, что чел не просто дожил до 93 лет и способен говорить осмысленные вещи, но и помнит технические подробности о том, чем занимался лет 50 назад.
| | |
| |
| 3.342, Кошкажена (?), 01:49, 10/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> но и помнит технические подробности
...или он все преукрасил (выдумал) как любят делать люди в возрасте, вспоминая старое. По факту воспоминания так и работают примерно.
| | |
|
| 2.57, Аноним (32), 13:00, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
На тот момент важна была работоспособность в принципе
А не надежность , потому что надежность на неработающей системе не имеет смысла
| | |
| |
| 3.70, Аноним (145), 13:20, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> На тот момент важна была работоспособность в принципе
А вот Дуглас говорит что:
"nobody would ever want to input a 200-character line, say, so why bother writing
the extra code to catch it?"
То есть реальная причина была в "да и так сойдет". Но тебе, конечно, виднее, что там было важно на тот момент...
| | |
| |
| 4.344, Кошкажена (?), 01:51, 10/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> А вот Дуглас говори
Да малоли что он говорит. Дениса уже не спросить, но есть Кен Томпсон, а также Роб Пайк. Хотите назвать их бракоделами?
| | |
|
|
| 2.75, Аноним83 (?), 13:39, 09/01/2026 [^] [^^] [^^^] [ответить] | +2 +/– | Вы так и не поняли нифига Идея была в том, что прогу писали для выполнения конк... большой текст свёрнут, показать | | |
| |
| 3.82, Аноним (-), 13:44, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Вы так и не поняли нифига.
Да, только ты один тут владеешь сакральным знанием)
> Так же не забывайте что писалось оно часто для себя и своего окружения, никаких какеров там не было - тупо ломать самого себя. Поэтому скрашилось - ну значит фигню вёл, попробуй ещё раз.
Про червя Морриса он вспоминает просто так?
Или в контексте "мы писать дрмовый код, а потом нам надрали зад".
| | |
| |
| 4.100, Аноним (40), 13:56, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Не надо путать причину и следствие. Пока не появился червь морриса никто не задумывался об уязвимости. Грубо говоря, о заборах, дверях и замках стали задумываться только после того как появились воры. Есть действительно места, где нет воров - там не строят стен и заборов . Зачем? Да, я лично бывал и видел, такое в Средней азии в советское время было сплошь и рядом. Есть более современная расхожая байка про западного аудитора в Японии - он не мог объяснить что склад с запчастями должен запираться. Японцы не могли понять зачем - у них в фирме все равно как в семье. И никто никогда ничего не крал.
| | |
| |
| 5.215, Аноним (216), 18:27, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Не надо путать причину и следствие. Пока не появился червь морриса никто не задумывался об уязвимости
Ты с логикой дружишь? Наличие дыр в коле (причина) привела к появлению червя (следствие).
| | |
|
| |
| 5.237, Аноним (213), 19:56, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
>Притом 100% известно что лишние проверки тормозят выполенение программы от 5% до 80%
Ага, ожидание ввода пароля, где скорость ограничена пальцами пользователя. Апологеты сишки не перестают врать.
>А теперь ответь на вопрос честно: ты бы предпочёл смотреть видосики с ютуба и играть в игры или сидеть без всего этого в безопасности?
Знаете, если проприетарщики не слишком мешают, можно реализовать флеш плеер самостоятельно, но на этот раз правильно.
| | |
|
| 4.117, Аноним (35), 14:13, 09/01/2026 [^] [^^] [^^^] [ответить] | –1 +/– | Перевожу на современный лад если программисту нравится код, написанный им год ... большой текст свёрнут, показать | | |
| |
| 5.238, Аноним (213), 19:57, 09/01/2026 [^] [^^] [^^^] [ответить]
| +2 +/– | |
>в те времена производительность меряли не гигагерцами, а герцами
Мегагерцами, а не герцами, врать не надо.
| | |
| |
| 6.323, Аноним (329), 23:54, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
Простите, действительно соврал. Мне очень стыдно...
Прув (вашей информации): https://retrocomputing.stackexchange.com/questions/6960/what-was-the-clock-spe
> This link[https://ed-thelen.org/comp-hist/pdp-11.html] describes the PDP-11/20 as having a speed of 800 nanoseconds. That works out as 1.25 MHz.
> Because that speed is the speed of the memory, (which is tightly connected to the speed of the CPU), and because the databus is no wider than 16 bits, that means that the PDP-11 will at most execute one instruction per clock cycle. And that speed precludes other memory accesses, like DMA or instruction operands, use of the stack or immediate data, etc. So many instructions will take somewhere between 1 and 5 clock cycles. | | |
|
|
|
| 3.99, Аноним (145), 13:55, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Подразумевалось что на входе для получения нужного результата подают корректные входные данные. Если данные не корректны - то пофиг что оно крашится, юзер ССЗБ.
Ну да, а потом пришел червь Морриса, и они сделали удивленные глаза. И, главное, зачем-то полезли все исправлять.
> Даже одна проверка в цикле запросто роняла производительность на заметную величину
Очень актуально для su, который читает пароль из stdin. То ли дело бежать по char* в поисках нуля за O(n).
Твоя экспертиза - 10/10.
> Так же не забывайте что писалось оно часто для себя и своего окружения, никаких какеров там не было - тупо ломать самого себя
Что ты несешь? Unix - коммерческая ОСь.
> Вы так и не поняли нифига.
Сказал тот, кто промазал по всем пунктам. 😂
| | |
| |
| 4.110, Аноним83 (?), 14:03, 09/01/2026 [^] [^^] [^^^] [ответить]
| –1 +/– | |
> Очень актуально для su, который читает пароль из stdin. То ли дело бежать по char* в поисках нуля за O(n).
Вы бы изучили историю вопроса для начала.
В те времена юзали gets(buff); для чтения ввода, он не умеет в размер буфера.
https://www.geeksforgeeks.org/c/gets-in-c/
Куда вы собрались прикручивать проверку? Внутрь библиотечной функции?
А зачем?
100 сивмволов пароль не корректный, пусть падает - нам не нужно красивое сообщение об ошибке - так тогда думали.
> Что ты несешь? Unix - коммерческая ОСь.
Что это меняет?
Дурака который будет её ломать просто перестанут пускать в машинный зал на посте охраны.
| | |
| |
| 5.132, Аноним (-), 15:01, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Вы бы изучили историю вопроса для начала.
> В те времена юзали gets(buff); для чтения ввода, он не умеет в размер буфера.
Тоже самое можно и про вас сказать.
Какой нафиг gets(buff) если там прям в коде на 25й строке getchar()
while((*q = getchar()) != '\n')
Они посимвольно считывали и прекрасно знали сколько символов было введено.
| | |
| |
| 6.140, Аноним83 (?), 15:29, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Да, я не смотрел в оригинальный код.
Знали, но не парились, потому что было не понятно чем это грозит, а падение проги от некорректного ввода было нормальным поведением.
| | |
|
|
| 4.167, Аноним (163), 16:49, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
>Что ты несешь? Unix - коммерческая ОСь.
Как бы, с версии 7 стала таковой. А до этого была, кроме самой Bell, учебной для университетов.
| | |
|
| 3.235, Аноним (213), 19:53, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
>Если данные не корректны - то пофиг что оно крашится, юзер ССЗБ.
Опять сишники лгут. Оно не крашится, оно предоставляет уязвимость.
>то итоговая производительность запросто может рухнуть более чем в 2х, что тогда было не приемлемо
Пароль будет проверятся в два раза дольше - это так плохо. Давайте лучше сделаем уязвимость. И да, в то время производительность росла астрономическими темпами, пожертвуй даже десятикратно производительностью, и спустя несколько лет этого никто не заметит.
| | |
| 3.239, Аноним (277), 19:57, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Идея была в том, что прогу писали для выполнения конкретной функции. Подразумевалось что на входе для получения нужного результата подают корректные входные данные.
То есть пароль в 200 символов - корректные данные, а 201 - уже нет?
> писалось оно часто для себя и своего окружения, никаких какеров там не было - тупо ломать самого себя. Поэтому скрашилось - ну значит фигню вёл, попробуй ещё раз.
Хм, а Дуглас Макилрой говорит:
"We did gradually learn that automatically
generated input lines--particularly lines of code--could be much longer than any person would write, so buffer overflows that actually happened gradually got fixed."
То есть получилось "скрашилось - ну значит фигню в коде написал, попробуй написать снова по-человечески".
| | |
|
| 2.152, Аноним (-), 16:02, 09/01/2026 [^] [^^] [^^^] [ответить] | –1 +/– | Та не он прокомментировал, стало чуть понятнее Академия уже тогда говорила о т... большой текст свёрнут, показать | | |
| 2.338, Аноним (-), 01:27, 10/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
> крашашийся г*код и выкатывали его в продакшн! А неладное начали подозревать
> только когда их ВНЕЗАПНО поимел червь Морриса.
Они это и сейчас продолдают. Вон в rust - брякнуться в паник это вообще стандартная реакция программы. Зато безопасТно брякается, не то что всякое! Хотя CVE вон там рядом все равно почему-то получили. И чего это они?
| | |
|
| 1.58, Аноним (58), 13:00, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– | |
Хейтеры не желают понимать очевидных вещей. Все версии Юникса это закрытые и проприетарные продукты. Исходные коды которого запрещалось свободно копировать и передавать. Юникс всегда был закрытым и коммерческим. Сейчас все Юниксы мертвы, кроме разве что Солариса.
И только с появлением свободных клонов Юникса, таких как BSD-systems и GNU/Linux наши системы стали безопасными. Да, появляются время от времени уязвимости, но закрытие их стало обычной рутиной. На сегодня GNU/Linux и BSD-systems - по-факту, самые безопасные операционные системы. Да, именно копилефт и пермиссивка сделали код безопасным. Потому-что много людей могут посмотреть исходники и выявить уязвимости. В свободный код проблематично внедрить бэкдор.
| | |
| |
| 2.63, Аноним (174), 13:09, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
> На сегодня GNU/Linux и BSD-systems - по-факту, самые безопасные операционные системы.
Ну да, ну да.
"Продемонстрировано несколько способов обхода изоляции FreeBSD jail
На GitHub опубликован код 5 прототипов эксплоитов...
...в ходе исследования выявлено около 50 проблем
Большая часть проанализированного кода написана в 1990-х годах и давно не подвергалась аудиту." opennet.ru/opennews/art.shtml?num=64550
"Диды писали" (с)
Прям эталон бизапасного кода! Тысячи глаз смотрели не туда! Может они просто смотрели шоколадными?
| | |
| |
| 3.67, Аноним (-), 13:13, 09/01/2026 [^] [^^] [^^^] [ответить]
| –2 +/– | |
Ты явно передёргаваешь. На самом деле это означает что код совершенствуется, и становится безопаснее.
Windows OS, macOS, проприетарные российские дистрибутивы - вот что реально опасно.
| | |
| |
| 4.73, Аноним (145), 13:35, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Ты явно передёргаваешь. На самом деле это означает что код совершенствуется, и становится безопаснее.
Не передергивает он. Поток дыреней, безостановочно льющийся более поувека, не очень совместим с термином "безопасность".
Эти системы, их технологии и походы разработки в плане безопасности двно и безвозвратно скомпрометированы.
| | |
| |
| 5.105, алек емпире (?), 14:00, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
мы хотя бы может знать что эти дыры исправлены, в отличии от проприетарщины, в которой могут умолчать о уязвимости
| | |
| |
| 6.116, Анонимусс (-), 14:13, 09/01/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
> мы хотя бы может знать что эти дыры исправлены, в отличии от
> проприетарщины, в которой могут умолчать о уязвимости
Ну узнал ты что в коде была дыра с 90х и она наконец-то исправлена. Стало легче?
В ссупер свободном гню/ляляксе десять лет жил бекдор от спецслужб США.
А тыщщи глаз долбились в глаз (так себе каламбур, но для пятницы сойдет).
| | |
|
|
| 4.130, Аноним (130), 14:52, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
В непроприетарном дырени около двух лет живут и никого это не смущает. Разницы в закрытом и открытом в плане безопасности нет совсем.
| | |
| |
| 5.139, Экспердодыр (?), 15:28, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> В непроприетарном дырени около двух лет живут и никого это не смущает. Разницы в закрытом и открытом в плане безопасности нет совсем.
А в проприетарном - 20 лет. И половину этого времени активно эксплуатируются, а исправлений нет, и не будет, как хозяин решит. И независимый аудит заказать нельзя. И исправления вносить нельзя. Нарушение лицензии, да и код закрыт.
Вот совсем-совсем никакой разницы. Главное, верить джентельменам на слово.
| | |
|
|
| 3.256, Аноним (242), 20:28, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Продемонстрировано несколько способов обхода изоляции FreeBSD jail
Ты пользуешься джейлами для того чтобы запускать юзверей под рутом? Если да, то тут для тебя в линуксе есть крутая вещь - capabilities процесса. Можешь спавнить сколько угодно http-серверов с портом 80 и 443, даже root не нужен, представляешь?
| | |
|
| 2.68, Анонимусс (?), 13:16, 09/01/2026 [^] [^^] [^^^] [ответить]
| +2 +/– | |
> В свободный код проблематично внедрить бэкдор
Что значит проблематично?
Просто "забываешь" проверить размер буфера и кто угодно может удаленно выполнить код.
Потом просто говоришь "ну забыл, с кем не бывает!"
| | |
| |
| 3.226, Аноним (277), 19:28, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
И, ЧСХ, тут в комментариях к новости о очередной сишной дырени уровня "вылезли за буфер" почти всегда находится тот, кто на полном серьезе говорит "это закладка!".
| | |
|
| 2.71, Аноним (59), 13:22, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Так хэйтеры именно поэтому и облизывают дырявую проприетарь. Нет, говорят, не нужны нам ваши любительские дилетантские поделки. С другой стороны, у виндоус тоже много поклонников.
| | |
| 2.107, нах. (?), 14:00, 09/01/2026 [^] [^^] [^^^] [ответить] | +/– | настолько закрытые и настолько запрещалось - что исходник версии которая и работ... большой текст свёрнут, показать | | |
|
| 1.61, Аноним (174), 13:06, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Откопали копролитЪ.
Умудлились восстановить.
А там ̶а̶р̶м̶я̶н̶е̶ ̶в̶ ̶н̶а̶р̶д̶ы̶ ̶и̶г̶р̶а̶ю̶т̶ классическая сишная дыра!
| | |
| |
| 2.64, Аноним (-), 13:09, 09/01/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
Дыра для сегодняшнего времени. Для тех далёких времён, это не считалось дырой.
| | |
| |
| 3.69, Аноним (-), 13:17, 09/01/2026 [^] [^^] [^^^] [ответить]
| –1 +/– | |
> Дыра для сегодняшнего времени. Для тех далёких времён, это не считалось дырой.
Какого года червь Морриса?
На минуточку код по таким же "стандартам" писали и 80 и в 90.
Некоторые пишут и сейчас.
Просто всем было плевать.
| | |
| |
| 4.79, Аноним (6), 13:42, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
>> Дыра для сегодняшнего времени. Для тех далёких времён, это не считалось дырой.
> Какого года червь Морриса?
> На минуточку код по таким же "стандартам" писали и 80 и в
> 90.
> Некоторые пишут и сейчас.
> Просто всем было плевать.
Отец Морриса, на секундочку, работал в АНБ.
| | |
| 4.91, Аноним (91), 13:49, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
Ты в глаза долбишься.
> Какого года червь Морриса?
1988 года. А код UNIXv4 какого года? 1972-го.
Читай всю новость, прежде чем кидаться комментировать.
| | |
| |
| 5.109, Аноним (-), 14:03, 09/01/2026 [^] [^^] [^^^] [ответить]
| –1 +/– | |
> Ты в глаза долбишься.
Пф, ты сначала мозг включи, а потом оскорбляй.
>> Какого года червь Морриса?
> 1988 года. А код UNIXv4 какого года? 1972-го.
А UNIX System V - 1983.
И что там?
А там та же самая СИшная дpыстня.
github.com/ngn999/UNIX-System-V/blob/182dea74d55cb447d1b0adba2d62b8f8cdcdd392/usr/source/s2/su.c#L4
| | |
| |
| 6.112, Аноним (91), 14:08, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Пф, ты сначала мозг включи, а потом оскорбляй.
Повторю: сначала новость полностью читай.
> По словам Дугласа, до появления червя Морриса в 1988 году мало кто обращал внимание на переполнения буферов. | | |
| |
| 7.114, Аноним (-), 14:09, 09/01/2026 [^] [^^] [^^^] [ответить]
| –1 +/– | |
>> По словам Дугласа, до появления червя Морриса в 1988 году мало кто обращал внимание на переполнения буферов.
Так я и говорю.
Они знали что переполнение это плохо.
Им просто было на это плевать.
| | |
| |
| 8.123, Аноним (91), 14:31, 09/01/2026 [^] [^^] [^^^] [ответить] | +3 +/– | Неправильно Они знали, что в тех условиях, в которых создавалось, это не имело ... текст свёрнут, показать | | |
| |
| 9.169, нах.. (?), 16:50, 09/01/2026 [^] [^^] [^^^] [ответить] | +/– | вот фу таким быть Во-первых надо было конечно первым делом проверить что гиф эт... текст свёрнут, показать | | |
| 9.176, Аноним (174), 17:12, 09/01/2026 [^] [^^] [^^^] [ответить] | –2 +/– | Нет Проверки не нужны Всегда приятно сделать чашечку крепкого кофе и почитать ... большой текст свёрнут, показать | | |
|
|
|
|
|
|
|
|
| 1.83, Admino (ok), 13:45, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> Выявленную проблему прокомментировал 93-летний Дуглас Макилрой (Douglas McIlroy)
Ух ты, дедуля ещё живой и комментирует! Классный чувак, долгой жизни ему!
| | |
| 1.84, Аноним (84), 13:45, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –5 +/– |
Ознакомился с глупостями, начиная с первого комментатора. Заучите наизусть: использование программы не по назначению не означает ее уязвимости.
| | |
| |
| 2.93, Аноним (6), 13:51, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
В каком министерстве можно получит точный номер и ОКВЭД назначения программы? Что делать с программами не внесёнными в реестр министерства?
| | |
| |
| 3.97, Аноним (84), 13:54, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Обратитесь к разработчикам. Определение назначения - их прерогатива. Только сначала лингвистические навыки подтяните, а то не поймут и не ответят.
| | |
| 3.259, Аноним (242), 20:34, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
О, чела который думает, что убирание логина в root по ssh и оставления дырки обратно в виле sudo делает систему безопаснее, порвало. Вытащи наружу su через 'ncat -k -e su', мы тебя попинтестим всем опеннетом.
| | |
|
| 2.94, нах. (?), 13:52, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
извини, но su использовалась по назначению - для получения рутовых прав. И если она это делала даже если ты не знаешь пароля рута - значит это таки уязвимость.
Хотя и чисто теоретическая - кому был тот пароль нужен, мог его у Кена просто спросить.
| | |
|
| 1.86, Аноним (-), 13:46, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
> Код ядра UNIXv4 был написан Кеном Томпсоном,
> а драйверов - Деннисом Ритчи.
> Код содержал уязвимость, приводящую к переполнению буфера
Если это не Настоящие™ Сишники™, то кто тогда достоен этого звания?!
А существуют ли Настоящие™ Сишники™ вообще???
| | |
| |
| 2.101, Аноним (84), 13:56, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
"Настоящим" без разницы, на каком языке создавать выдающиеся исходники. Собственно, это понятно из текста новости.
| | |
| |
| 3.330, Аноним (134), 00:05, 10/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
"Настоящим" без разницы, на каком языке создавать выдающиеся исходники.
Настоящие сишники пишут на паскале.
| | |
|
|
| 1.126, Аноним (126), 14:39, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
На самом деле, любая защита портит жизнь миллионам приличных и законопослушных людей, чтобы защититься от единиц мерзавец. Так и с замечательным языком Си случилось. Однако, если бы шли по коммунистическому пути, то мерзавцев бы практически не осталось, и не нужно было бы городить огород с защитой от переполнения буфера и прочего, и не нужен был бы Раст, который пропихивают вонючие капиталисты. То есть изначально человечество идёт не туда, растрачивая силы во имя зла, то есть империализма, а не добра, то есть общества (коммунизма).
| | |
| |
| 2.135, Аноним (135), 15:06, 09/01/2026 [^] [^^] [^^^] [ответить] | +/– | Всё так Были времена, когда хакеры решали научно-технические задачи, стоявшие п... большой текст свёрнут, показать | | |
| 2.168, nox. (?), 16:49, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Кошелек, брошенный на дороге, беззащитен. Кошелек в кармане определенно более защищен. Замена обсуждения, хорош ли кошелек, обсуждением, нужно ли к каждому кошельку присовокупить капкан, не имеет смысла.
| | |
| 2.172, Аноним (163), 16:58, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Но никто не может дать гарантию, что мерзавцы не появятся извне планеты.
| | |
| 2.178, Аноним (174), 17:17, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
> На самом деле, любая защита портит жизнь миллионам приличных и законопослушных людей, чтобы защититься от единиц мерзавец.
Давай отменим законы запрещающие убивать, грабить и ездить зайцев в автобусе!
> Так и с замечательным языком Си случилось.
В СИ есть какая-то защита?
Из заSHITы в нем только SHIT.
> Однако, если бы шли по коммунистическому пути, то
В стране было бы много лагерей в которые в вагонах для скота свозили неугодных со всей необъятной))
> мерзавцев бы практически не осталось,
Конечно. У власти не могут быть все. А только партийные функционеры и номенклатура!
> добра, то есть общества (коммунизма).
А кто не согласен, тому добрый НКВДшник пустит пулю в затылок!
| | |
| 2.327, Аноним (329), 00:02, 10/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Это не совсем правда. Конкретно в данном случае это именно баг в софте, а не просто злой хакер. Потому что систему ломал бы даже добропорядочный пользователь с паролем в 250 символов (пароль рута должен же быть безопасным). То, что вы описали про хакера (классический "хакер в столовой"), - это, например, timing-based атаки на функции проверки пароля, или современные мелтдауны.
| | |
| 2.343, альбанаромина (?), 01:50, 10/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Нет, ну а что же. Остались ещё социалистические страны. Социализм - это же переходный период на пути к коммунизму, верно? Значит они идут к коммунизму, так? И посмотрите на них. Северная Корея, Куба.. Кстати, что там с Кубой? Про неё давно ничего даже не слышно. Так и сидят без света? А Куба вообще ещё существует? Ляпота. Вот и можно себе представить, как будет выглядеть этот самый коммунизм, когда социализм выглядит сегодня вот так.
| | |
|
| |
| 2.227, 1 (??), 19:30, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
В 73 году там скорее всего только консоль была. А десктоп с обоями.
| | |
|
| 1.161, Аноним (144), 16:37, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– | |
> Позднее код UNIXv4 был приведён в порядок и опубликован на GitHub
По ссылке Equilateral-AI с соавтором Claude Opus 4.5 свалил вместе V4, V5 и V6 без пояснений, что где. И сгенерировал readme с советом переписать на расте.
Option B: Modern Reimplementation
- Implement in modern C/Rust
| | |
| |
| 2.171, nox. (?), 16:52, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Мы вообще-то исторический артефакт обсуждаем. А не проблему, как к "Джоконде" пририсовать бульдозер.
| | |
|
| 1.217, Bottle (?), 18:42, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Наконец-то фанаты философии UNIX смогут пользоваться настоящим Юниксом, написанным академиками!
| | |
| 1.230, Аноним (213), 19:41, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– | |
>Данная утилита включала менее 50 строк кода, устанавливалась с флагом setuid-root и позволяла запустить /bin/sh с правами root при вводе правильного пароля. Код содержал уязвимость, приводящую к переполнению буфера из-за копирования вводимого пользователем пароля в фиксированный 100-символьный массив без проверки размера вводимых данных.
Это просто гимн качеству кода на си. Упаковать уязвимость в 50 строк кода - это надо уметь.
| | |
| |
| 2.295, Джон Титор (ok), 21:39, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
Ну хорош умничать с линтерами, статическими анализаторами, форматерами. Раньше этого не было
| | |
| 2.297, Джон Титор (ok), 21:48, 09/01/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
Для того чтобы создать rust вы почитайте количество технологий которые нужно было создать для этого. А ещё должен быть накопленный опыт чтобы вообще теоретически его создать. Кто-то должен этот опыт систематизировать и обдумать в новый язык программирования. А ещё сюда добавьте рекламу и финансовые вливания в проекты на нем. Вот тот же haskell чем-то на него похож, он был создан ранее, но почему-то не пользовался популярностью. Есть допустим такие языки как Пролог, Лисп которые имеют совсем иной подход к программированию. На них тоже много чего интересного и без ошибок можно сделать, но не популярны - сложные считаются.
| | |
| |
| 3.328, Аноним (134), 00:03, 10/01/2026 [^] [^^] [^^^] [ответить]
| +/– |
А ещё можно было бы написать
var buf: string[100];
и не париться с созданием какого-то нового язычка.
| | |
|
|
| 1.233, Roman Dyaba (ok), 19:50, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Только один даже этот перл кода, побуждает сходить за пивом:
/* To convert to msec, must divide a 64b quantity by 10000. This is actually done
by dividing the 96b quantity 0'time by 10000, producing 64b of quotient, the
high 32b of which are discarded. This can probably be done by a clever multiply...
*/
quo = htod = 0;
for (i = 0; i < 64; i++) { /* 64b quo */
htod = (htod << 1) | ((tod[1] >> 31) & 1); /* shift divd */
tod[1] = (tod[1] << 1) | ((tod[0] >> 31) & 1);
tod[0] = tod[0] << 1;
quo = quo << 1; /* shift quo */
if (htod >= 10000) { /* divd work? */
htod = htod - 10000; /* subtract */
quo = quo | 1; /* set quo bit */
}
}
return quo;
}
void sim_os_sleep (unsigned int sec)
{
sleep (sec);
return;
}
Явно студенты со здоровым чувством юмора были !
| | |
| |
| 2.281, nox. (?), 21:08, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Стиль убогий. Но где вы хороший стиль программирования на С видели? Разве что в документации Borland и в тех проектах, авторы которых восприняли эту эстетику.
| | |
|
| 1.265, Аноним (278), 20:43, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Я не понял, а лицензия то какая на этот код? AT&T разрешение дало на публикацию? Так-то ведь он проприетарный.
| | |
| 1.283, RM (ok), 21:09, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
там интересно, что getchar возвращает 0 а не EOF если конец ввода или ошибка.
в man того времени это даже задокументировали как BUG.
и с типами возвращамых значений не парились.
вообщем дидам было тяжело, а прогресс виден.
| | |
| 1.305, Аноним (310), 22:40, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Вот видите, человек всю жизнь писал на С, и в 93 года у него всё ещё хорошая память и речь. А если бы после написания каждых 10 строчек кода трясся как бы не сделать CVE или писал бы на Rust'е, то ...
Отсюда вывод: не берите ничего сложного в голову.
| | |
| |
| 2.311, Джон Титор (ok), 22:56, 09/01/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Хорошая память и речь зависит от тренировки ума, еды и сна, наследственности, условий жизни. Не стоит сравнивать - у каждого совсем по другому, но это не значит что других людей нужно обесценивать. Ну вот к чему эти натуженные перепирательства между теми кто программирует на С и rust? Зачем?
| | |
| 2.325, Аноним (134), 23:58, 09/01/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> человек всю жизнь писал на С
Джобс тоже всю жизнь писал на Си... До 56 лет дожил.
| | |
|
| 1.306, Аноним (310), 22:43, 09/01/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– | |
>>Интересно они часто там чет теряют касательно обнаруженных уязвимостей?
Теряют часто, но зато уборку делают редко
| | |
|