В консольном оконном менеджере (мультиплексоре терминалов) GNU screen, предоставляющем многооконный интерфейс в консоли, выявлено 5 уязвимостей. Наиболее опасная проблема (CVE-2025-23395) позволяет получить права root в системе. Исправление выключено в состав сегодняшнего выпуска screen 5.0.1...Подробнее: https://www.opennet.me/opennews/art.shtml?num=63226
Некорректное использование функции strncpy()...
приводящее к аварийному завершению при выполнении специально оформленных команд.Вы же вроде в расте как раз такое и любите - чуть что - сразу паника (аварийное завершение)
А вы в сяшечке всё так же любите игнорировать предыдущие 4 уязвимости, лишь бы растовиков попинать. Почитал описание функции strncpy и за голову схватился - словосочетание "behavior undefined" встречается аж 3 раза. Мы уж лучше в расте красиво навернёмся с подробным стектрейсом и ошибкой, ничего при этом не испортив, чем как сяшечники звучно оподливившись в шаровары.
> Мы уж лучше в расте красиво навернёмся с подробным стектрейсом и ошибкойНикто не мешает написать в строки, которые хранят в себе длину и убрать все эти ошибки на корню.
Да-да, только никто этого не делает :(
Делают.
> Да-да, только никто этого не делает :(В том то и проблема что делают.
Каждый раз заново и каждый раз получается уродский велосипед.
А потом RCE в самописном split string.
> Да-да, только никто этого не делает :(Гнусный п...ж, я себе именно так и сделал, завел struct с указателем на строку и .len - и вот оно. Но увы - это приносит часть "паскалепроблем". В том смысле что отдать такое допустим системным вызовам и функциям либсы и проч - несколько сложнее.
Более того - так можно и .maxlen хранить и юзать всякие getters/setters и тому подобное ибо напрямую вы с таким типом не сможете работать так сразу - защитив себя от прострела пяток. Но к сожалению этот маневр не бесплатен и начинает попахивать занудством типа паскаля или хруста.
> Гнусный п...ж, я себе именно так и сделал, завел struct с указателем на строку и .len - и вот оно.Т.е написал очередной кривой велосипед.
А нормально оно должно быть сразу в std. Ну если говорить о нормальных языках, а не о "недоязыке ассемблере переростке".> Но увы - это приносит часть "паскалепроблем". В том смысле что отдать такое допустим системным вызовам и функциям либсы и проч - несколько сложнее.
Если бы либсы писалась с такой же парадигмой и там были стандартные (описанные в стандарте строки) - то проблем бы не возникло.
> Но к сожалению этот маневр не бесплатен и начинает попахивать занудством типа паскаля или хруста.Занудством?
Лучше быть занудой чем бракоделом))
> Т.е написал очередной кривой велосипед.В каком-то роде - да. Но си прекрасен тем что как раз нет переотожраных дефолтных либ превращающих что угодно в "очередную жабу" когда надо качать 100 метров рантайма на люой пшик, а то и дотнет с 4+ гигз ассемблей, узурпирующий комп на полдня для апдейтов.
И при этом - позволяет довольно неплохо себя расширять. И нет вот этого деления на богов и смертных. Системщики все - вхожи на пантеон. By design. Иначе это - вообще подделки и пародии, а не...
> А нормально оно должно быть сразу в std. Ну если говорить о
> нормальных языках, а не о "недоязыке ассемблере переростке".А еще камлать на богов, признав себя вторым сортом - и они начнут гнобить вон тех, с разделением на 1 и 2 сорт. Ну такое себе в целом. И не то чтобы незаслуженно - ибо большая часть тех, с "нормальными языками" на поверку фундаментальные вещи типа алгоритмики потом как раз и не может - от слова вообще. Деградировав до генераторов третьесортного glue code по сути.
> Если бы либсы писалась с такой же парадигмой и там были стандартные
> (описанные в стандарте строки) - то проблем бы не возникло.Ух, да, теперь еще объясните плиз операционкам написанным 30 лет назал что им надо все сисколы переделать. Убив совместимость с старым софтом в ноль. Иначе эта трансляция никуда не денется, как максимум ее заметут под ковер но это будет новый источник грабель. Хрустики уже даже проверили, получив неск CVE на стдлибу (лол). Да и жабы с дотнетами - тоже.
> Занудством?
> Лучше быть занудой чем бракоделом))Спорный вопрос. Мир принадлежит бракоделам, а зануды осчастливили нас лишь бесполезными концептами, которые никому даром не упали.
>Но си прекрасен тем что как раз нет переотожраных дефолтных либ превращающих что угодно в "очередную жабу" когда надо качать 100 метров рантайма на люой пшик, а то и дотнет с 4+ гигз ассемблейЭто проблема только для первой программы на дотнете или жабе. Вторая программа будет весить по размеру jar файла, так как рантайм уже установлен. А раз разговор про сишников, то они могли бы и so библиотеку собрать, не облезли бы.
>И при этом - позволяет довольно неплохо себя расширятьРасширять си невозоможно. По причине того, что каждое такое расширение будет локальным только для текущего приложения:
>Но увы - это приносит часть "паскалепроблем". В том смысле что отдать такое допустим системным вызовам и функциям либсы и проч - несколько сложнее.Как сказал один умный человек
>Любая достаточно сложная программа на Си или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common LispА всё почему? Вместо того, чтобы написать один раз, но хорошо те же строки, парсер xml или какой-то другой функционал, сишники раз за разом пишут одно и то же с нуля. Каждый раз с похожими багами.
>И нет вот этого деления на богов и смертных.Вы лучше покажите, где это деление есть. В том же Ocaml, у вас из коробки идёт только относительно бедная стандартная библиотека. Хотите стандартную библиотеку с батарейками - она написана отдельно. Хотите поддержку json? Она идёт отдельно. Хотите многопоточность? Она тоже отдельно. Хотите сетевую библиотеку? Она, как вы уже могли догадаться, тоже идёт отдельно. Библиотека для работы с терминалом? Опять отдельно. Так что, если вас по каким-то причинам не устраивает реализация для работы с чем-то, то вы просто берёте и заменяете её на что-то другое.
>Системщики все - вхожи на пантеонРовно до тех пор, пока функционал может быть написан в одиночку. Здесь несколько человек публиковали ссылки на свои проекты, я там смотрел только на реализацию xml парсера. Ошибки там были детского уровня, но на каждую такую ошибку мне говорили, что они и не собирались писать правильно. Они даже не пытались возразить, что их реализация корректна.
>бо большая часть тех, с "нормальными языками" на поверку фундаментальные вещи типа алгоритмики потом как раз и не может - от слова вообщеЯ не могу согласится с вашими словами, поскольку это требует признания, что сишники умеют в алгоритмы. К сожалению, я не помню какой был второй проект, запомнил только первый https://github.com/ProfessorNavigator/mylibrary/blob/30daf3a...
Человеку сказали, что так писать нельзя, сказли даже, что это вредит производительности. Прошло несколько версий, человек этот момент до сих пор не исправил. Во втором проекте, который я видел, была точно такая же ошибка. Это ошибка настоящего сишника, который знает алгоритмы достаточно, чтобы хвастаться, но недостаточно, чтобы писать нормальный код
>Ух, да, теперь еще объясните плиз операционкам написанным 30 лет назал что им надо все сисколы переделатьЗачем? Ocaml, rust, go, вполне себе успешно скрывают от программистов устройство системных вызовов. Если они справились, то сишники тоже смогли бы это сделать
>Иначе эта трансляция никуда не денетсяА зачем вам её куда-то девать?
>как максимум ее заметут под ковер но это будет новый источник грабельСейчас программы сишников могут упасть в любой строке, а после этого падать будут только при системных вызовах. Пока не научатся лечить рак, лечить ни бронхиты, ни переломы нельзя
>Мир принадлежит бракоделам, а зануды осчастливили нас лишь бесполезными концептамиУдивительно, но всё меньше проектов начинают писать на си. И если раньше конкурентом си был паскаль, то сейчас те самые безопасные языки от зануд
> К сожалению, я не помню какой был второй проект, запомнил только первый https://github.com/ProfessorNavigator/mylibrary/blob/30daf3a...А где Вы там увидели C? там как-раз С++, с std::string и std::vector<>
Для С уже тоже строки предлагают стандартизировать (n3210) и даже наворачивают что-то ещё более монструозное (n3306), как по мне. Хотя, опять-же, как по мне, лучше-бы что-то из fmemopen(), open_memstream() и open_wmemstream() стандартизировали. Ну или в крайнем случае что-то типа glib-овское..
>А где Вы там увидели C?Я не помню точно, вроде второй проект был на чистом си, но могу ошибаться. В любом случае, ProfessorNavigator утверждал, что на си/плюсах код писать можно без проблем.
> Это проблема только для первой программы на дотнете или жабе.К счастью у меня таких программ - ноль, и я не имею тех проблем как категории :). И да, скачка 100500 гигазов рантайма - повод НЕ ставить такие программы при прочих равных.
> А раз разговор про сишников, то они могли бы и so
> библиотеку собрать, не облезли бы.В принципе - могли бы. Но все равно есть нюансы. Часть из них - таки по линии совместимости и того что апя систем делали тоже без учета вон того.
> Расширять си невозоможно. По причине того, что каждое такое расширение будет локальным
> только для текущего приложения:Ну вообще-то генерики или auto - расширили таки для всех. При помощи указателей на функции можно даже нечто типа методов делать. А всякими setjmp/longjmp можно и корутины запилить, внезапно.
И между прочим прикрутив вооон ту либу - там не то что сишка расширится, а HTTP сервак на полстранички текста влезет.
>> Любая достаточно сложная программа на Си или Фортране содержит заново
>> написанную, неспецифицированную, глючную и медленную реализацию половины
>> языка Common LispЭто, конечно же, проекция лиспера на тему "когда в руках молоток все вокруг кажется гвоздями".
> же строки, парсер xml или какой-то другой функционал, сишники раз за
> разом пишут одно и то же с нуля. Каждый раз с
> похожими багами.Вообще-то написали, libxml например. Сюрприз!
> Вы лучше покажите, где это деление есть. В том же Ocaml, у
> вас из коробки идёт только относительно бедная стандартная библиотека.Тот же Ocaml - просто всем похрен. Какая разница что там?
> Хотите стандартную библиотеку с батарейками - она написана отдельно.
> Хотите поддержку json? Она идёт отдельно. Хотите многопоточность? Она тоже отдельно.И чем это отличается от си? Там тоже парсер жысона добавляется как apt install somelib-dev - и вот оно, парсер чего я там хотел. Который я, конечно, не буду писать сам в этом случае.
> не устраивает реализация для работы с чем-то, то вы просто берёте
> и заменяете её на что-то другое.Не понимаю чем это от си отличается в результате? Кроме того что - сильно менее популярное и нишевое?
> Ровно до тех пор, пока функционал может быть написан в одиночку.
Совершенно ортогональные соображения. На пантеоне можно фигачить и в эн рук.
> Здесь несколько человек публиковали ссылки на свои проекты, я там смотрел только
> на реализацию xml парсера.Если кто-то лезет писать свой парсер XML - он все же донкихот. Потому что это очень жирная и фичастая спека. И это тот случай когда лучше - готовую либу все же взять. Даже если вы и можете парсер написать.
> Ошибки там были детского уровня, но на
> каждую такую ошибку мне говорили, что они и не собирались писать
> правильно. Они даже не пытались возразить, что их реализация корректна.Это наверное профессор навигатор был, тот еще "девелопер" софта.
> Я не могу согласится с вашими словами, поскольку это требует признания, что
> сишники умеют в алгоритмы.А они таки - умеют, ибо большая часть скоростной алгоритмики на этом глобусе на сях и писана. И не надо мне профессором навигатором тыкать, он вообще - не разработчик софта как таковой, как следует из ника. И из него что програмер, что сишник - весьма условный, доморощенный и кривой.
> Это ошибка настоящего сишника, который знает алгоритмы достаточно, чтобы хвастаться, но
> недостаточно, чтобы писать нормальный кодНавигатор - вообще не разработчик софта как таковой. И прогармить он научился на уровне уроков информатики буквально. И в UI/UX настолько же шарит. Типичным сишником или чем либо еше он конечно не является. Такие вообще обычно на питоне пишут, если что.
> Зачем? Ocaml, rust, go, вполне себе успешно скрывают от программистов устройство системных
> вызовов. Если они справились, то сишники тоже смогли бы это сделатьУ них не было требования держать совместимость с древним софтом - за отстутствием этого софта. И да, вы можете скрыть сисколы поставив вон те либы, например.
> Сейчас программы сишников могут упасть в любой строке, а после этого падать
Я бы и правда переделал работу с строками в си, но - дофига софта отвалится.
> будут только при системных вызовах.
От крутых багов соответственно не избавит. Это самый фиговый класс багов и хрустики уже проверили, словив CVE прямо на стдлиб.
>>Мир принадлежит бракоделам, а зануды осчастливили нас лишь бесполезными концептами
> Удивительно, но всё меньше проектов начинают писать на си.Удивительно, но без си вы не сможете даже пискнуть на опеннет. Когда сможете - тогда и приходите с этим.
> И если раньше конкурентом си был паскаль, то сейчас те самые безопасные языки от зануд
Какой-нибудь хруст занудный лишь местами и условно, пожалуй. Это и делает его достаточно забавным зверьком в всей палитре.
>И да, скачка 100500 гигазов рантайма - повод НЕ ставить такие программы при прочих равных.Это точно так же повод не ставить gtk и qt, а то что это они гигабайты кода ставят. Только вот и софта у вас почему-то почти не останется.
>При помощи указателей на функции можно даже нечто типа методов делатьВам нужна сама возможность расширения, без учёта удобства использования? Даже гномеры ужаснулись тому что получилось, и по быстрому изобрели Vala. А вообще, подобное можно сделать на любом языке с функциями высшего уровня
>А всякими setjmp/longjmp можно и корутины запилить, внезапноВнезапно, но для использования корутин нужно некоторое количество ограничений. Иначе у вас все корутины повиснут, когда любая зависимость сделает блокирующую операцию
>И между прочим прикрутив вооон ту либу - там не то что сишка расширится, а HTTP сервак на полстранички текста влезет.Это уже явная подмена понятий. Библиотеки не расширяют язык. У абсолютно любого языка картина будет абсолютно аналогичная.
>Это, конечно же, проекция лиспера на тему "когда в руках молоток все вокруг кажется гвоздями".Это объективный факт. Сишники любят велосипеды. Очень любят. Может быть плюсовики любят так же. Вот вам прекрасная статья:
Как переписать код на Rust - https://habr.com/ru/articles/511478/
Во-первых, там зачем-то реализуется хеш-таблица(зависимости не изобретены). Во-вторых
>Помните тот прошлый пример, где tvmi падал, получая три уровня глубины кода? Как приятный побочный эффект, после переноса кода на Rust вложенные уровни просто работают.То есть вместо того, чтобы реализовывать бизнес логику, с произвольной глубиной, сишники сконцентрировались на алгоритмах, да так, что даже при не самом интенсивном использовании вылезла ошибка
>Вообще-то написали, libxml например. Сюрприз!Расскажите это здешним кодерам. Я вам даже ссылку на один из проектов привёл. Второй увы забыл.
>И чем это отличается от си?Вы же сами утверждали, что только в си нет разделение на настоящих программистов, и тех кто только склеивает готовый код. И тут сами же говорите, что это не так
>Там тоже парсер жысона добавляется как apt install somelib-devНепонятно какой версии, непонятно, есть ли нужный пакет в дистрибутиве, непонятно как он называется, непонятно, какой командой его ставить. Вам нужно объяснять, чем это плохо, или сами догадаетесь?
>Если кто-то лезет писать свой парсер XML - он все же донкихотЕсли кто-то лезет писать свои строки/ооп на основе структур и указателей/корутины через jmp/хеш-таблицы - он всё же доникихот.
>А они таки - умеют, ибо большая часть скоростной алгоритмики на этом глобусе на сях и писанаО, а вот и стандартная отмазка "настоящий сишник". Разумеется, каждый разоблачённый в г-коде сишник объявляется ненастоящим. Авторы GRUB, которые допустили ошибку с 28 нажатием backspace тоже ненастоящие сишники. Авторы screen, xorg, и вообще всех проектов, где найдены уязвимости
>он вообще - не разработчик софта как таковой, как следует из никаЯ не гадатель по никам. Я вижу его код на крестах, и вижу, что он весьма посредственный
>Я бы и правда переделал работу с строками в си, но - дофига софта отвалится.Просто издайте neon gensis c string lib, и ничего ни у кого не отвалится. Правда потом останется переписать кучу существующего кода, но это так, мелочи
>От крутых багов соответственно не избавитЗато избавит от кучи не крутых. Неужели вы не понимаете, что даже если всего лишь половина текущих багов исчезнет, то это уже хорошо? Да даже если десять процентов исчезнет, это уже больше нуля
>Удивительно, но без си вы не сможете даже пискнуть на опеннетПросто для справки: существует Redox OS, существует Mirage OS. Как следствие, чем дальше, тем меньше надобность именно в си
>Когда сможете - тогда и приходите с этимУже в этой теме вначале некоторые деятели утверждали, что альтернатив screen на rust не существует, а сразу же, как только им превили сразу несколько, сказали, что не считается. Разумеется в следующей теме они точно так же скажут, что софта на расте нет, притворившись, что их никто не уличал во лжи во всех предыдущих темах
>> Т.е написал очередной кривой велосипед.
> В каком-то роде - да.Ну хоть в чем-то мы сошлись во мнении)
> Но си прекрасен тем что как раз нет переотожраных дефолтных либ превращающих что угодно в "очередную жабу" когда надо качать 100 метров ....
О бог-машина! Целый 100 мегабайт!!1
Тут выбор прост - или тыщу раз проверенные системные функции или очередной велосипед порождающий очередную CVE/RCE.>> А нормально оно должно быть сразу в std. Ну если говорить о нормальных языках, а не о "недоязыке ассемблере переростке".
> А еще камлать на богов, признав себя вторым сортом - и они начнут гнобить вон тех, с разделением на 1 и 2 сорт.Боги это кто? Те кто не смогли 2 числа без UB сложить?
Где енумы это "всё инт" в итоге в коде сравниваются апельсины с крокодилами?Не про них ли создатель ЯП писал "The fundamental problem is that it is not possible to write real programs using the X3J11 definition of C. The committee has created an unreal language that no one can or will actually use."
> большая часть тех, с "нормальными языками" на поверку фундаментальные вещи типа алгоритмики потом как раз и не может - от слова вообще.
Эээ? Неужели на каком-то питон нельзя написать разложение фурье или какие-то элиптические кривые? Студенты в университете реализуют Диффи—Хеллмана на лабораторках.
> Деградировав до генераторов третьесортного glue code по сути.
Другой вопрос - зачем писать одно и тоже кучу раз?
> Ух, да, теперь еще объясните плиз операционкам написанным 30 лет назал что им надо все сисколы переделать.
Прикинь да. Выкидывается старое, пишется новое.
> Убив совместимость с старым софтом в ноль.
Если софт нужный - перепишут.
Если нет - значит был не нужный.
Луддиты будут вопить что им срочно нужно самое последнее ядро и новейший софт на железе 30 летней давности. Но слушать их - просто преступление перед прогрессом.> Спорный вопрос. Мир принадлежит бракоделам, а зануды осчастливили нас лишь бесполезными концептами, которые никому даром не упали.
Вранье) Без зануд и их концепций мы бы до сих пор ездили бы на телегах.
Построить современную технику без кучи правил.
Посмотри сколько требований для automotive или авиа.
Да, есть те кто нарушает, зато потом отгребают.
> Никто не мешает написать в строки, которые хранят в себе длину и убрать все эти ошибки на корнюУбрать ошибку на корню - это юзать нормальный язык вместо С.
Но это ж надо уметь делать выводы из полувека наступаней на грабли...
> Убрать ошибку на корню - это юзать нормальный язык вместо С.Странно, но вон тот питонячий бот умер при первой попытке потрогать его палочкой. Оказывается хреново валидировать пользовательские данные можно не только на си :)
Это правда, писать плохой код можно на любом языке. Так что пока компилятор не начнёт бить кодеров линейкой по пальцам, хороший код не появится.
> Это правда, писать плохой код можно на любом языке. Так что пока
> компилятор не начнёт бить кодеров линейкой по пальцам, хороший код не
> появится.Как вы себе представляете компилятор знающий вместо програмера как валидировать входные данные в конкретно вот этой вот задаче? Это по моему надо AI c интеллектом superhuman, и даже так - он тренирован на глючном материале созданном людьми, поэтому и тут без гарантий :)
Вот действительно, как. Проблемыне места си уже давным давно изучены, систематезированы, и проанализированны, уже реализована целая куча инструментов, а сишники до сих пор живут как в 1970, когда си ещё считался хорошей идей. Вы для начала решите насущьные проблемы, а потом переживайте о редких и далёких
широкая душа краев не видит
> Никто не мешает написать в строки, которые хранят в себе длину и убрать все эти ошибкиМешает традиционная сишечная халатность.
Писать нормальный строковый тип - это же что-то там шевелиться надо, тестировать, да и мысли крамольные в голову лезут типа "ну и накой я изобретаю велосипед вместо использования C++?".
А вот православный пердолинг с буферами и str*cpy() - вот он, уже готовый под рукой!
> Никто не мешает написать в строки, которые хранят в себе длину и убрать все эти ошибки на корню.Pascal уже есть ;-)
Он Сям - ровесник. И что - помогло? :)Не упрощайте, нет в практическом программировании ничего простого. Увы.
>> Никто не мешает написать в строки, которые хранят в себе длину и убрать все эти ошибки на корню.
> Pascal уже есть ;-)
> Он Сям - ровесник. И что - помогло? :)Помогло, выше уже скидывал ссылку https://www.adacore.com/uploads/books/pdf/Safe_And_Secure-Ru...
К тому же в любом современном яп есть динамически расширяемые массивы и строки.
>> Pascal уже есть ;-)
>> Он Сям - ровесник. И что - помогло? :)
> Помогло, выше уже скидывал ссылку https://www.adacore.com/uploads/books/pdf/Safe_And_Secure-Ru...Если это про язык Ада, то програмеры на нем - угробили Arian V. Заскорив самый дорогой баг в истории человечества, на минуточку.
>>> Pascal уже есть ;-)
>>> Он Сям - ровесник. И что - помогло? :)
>> Помогло, выше уже скидывал ссылку https://www.adacore.com/uploads/books/pdf/Safe_And_Secure-Ru...
> Если это про язык Ада, то програмеры на нем - угробили Arian
> V.А причем там Ада конкретно?
> Заскорив самый дорогой баг в истории человечества, на минуточку.
Суммарно на си баги дороже вышли все.
>>> Pascal уже есть ;-)
>>> Он Сям - ровесник. И что - помогло? :)
>> Помогло, выше уже скидывал ссылку https://www.adacore.com/uploads/books/pdf/Safe_And_Secure-Ru...
> Если это про язык Ада, то програмеры на нем - угробили Arian
> V. Заскорив самый дорогой баг в истории человечества, на минуточку.
> Запуски ракеты-носителя «Ариан-5»Первый испытательный полёт «Ариан-5» состоялся 4 июня 1996 года и был неудачным. Ракета-носитель была подорвана на 34-й секунде полёта по причине неисправности в управляющем программном обеспечении, которая считается самой дорогостоящей компьютерной ошибкой в истории. Конвертация данных из 64-разрядного числа с плавающей запятой в 16-разрядное привела к зависанию компьютера. Процедура на языке Ада, обрабатывающая эту исключительную ситуацию, была исключена из соображений сохранения производительности системы.То есть программисты убрали ненужный код, который оказался нужным, и все сломалось? А виноват при этом яп? При этом все остальные 116 запусков в период 1996—2023 годы тоже были на этом яп?
> Мы уж лучше в расте красиво навернёмся с подробным стектрейсом и ошибкой,Ну, судя по тому, что никто не использует rustscreen или что-то подобное, похоже растовщики по прежнему наворачиваются с подробным стектрейсом и ошибкой.
> ничего при этом не испортив
Да, сложно испортить код, которого нет.
Молодой человек не слышал про Zellij?
Не трать зря время. По расту методичка такая: на нём ничего не написано, а если что-то и написано, то это безоговорочно какая-то смешная или ненужная ерунда для пацанят на электроскутерах.
Нет, не слышали. Что-то ещё, кроме фаерфокса, вспомните?
> Молодой человек не слышал про Zellij?Что это еще за зелибоба с невыговариваемым названием? Может, хрустикам для начала научиться - хотя-бы выбирать нормальное название проекта, более-менее описывающее его функциональность? Видите, программирование надо начинать с БАЗОВЫХ вещей. Я понимаю что вы только что разучили кучу заклинаний, уверены что умный компилер вас от всего спасет, так что весь мир у ваших ног. Но есть нюансы... :)
Вон там в гугле тоже мир захватывали фуксией. За много лет захватили - полторы фоторамки. А вы даже и не гугл, у вас ресурсов еще меньше. Что там будет у ваших ног? Пара окурков? Это конечно тоже часть мира, но закватывать такое...
Впервый раз услышал. Кого не спрошу все либо на tmux, либо на screen.
А вы в блокнотик себе запишите, чтобы в следуюещем месте сказать "второй раз об этом слышу".
> Ну, судя по тому, что никто не использует rustscreenОй, а типа gnu screen кто-то использует))
Не, ну найдутся пару извращенцев, которым любой kaл, лишь бы gnu... но все нормальные пользуются tmux.> Да, сложно испортить код, которого нет.
Таки есть. Zellij например. Или wezterm.
Но откуда хейтерочку об этом знать.
>> Не, ну найдутся пару извращенцев, которым любой kaл, лишь бы gnu... но
>> все нормальные пользуются tmux.screen умеет открывать COM порт, а tmux попсовый нет, вот и думай что тру, а что kал
> screen умеет открывать COM порт, а tmux попсовый нет,ух, вот целый день сижу и компорты открываю)
> вот и думай что тру, а что kал
Москвич-408 можно было заправлять бензом с ослиной моchой, но почему-то очереди из желающих окунуться в прдолинг с устаревшей техникой как-то не наблюдается.
Ты бы еще поныл, что в городе лошадь припарковать негде и овес не продают на каждом шагу.
>> screen умеет открывать COM порт, а tmux попсовый нет,
> ух, вот целый день сижу и компорты открываю)Для одноплатников - актуально. Сериальные шнурки так то довольно актуальная штука (низкоуровневый, простой интерфейс, всего 3 провода на минималках, пишет даже ранний дебаг с факапами ядра). Конечно про RS232 все забыли, но 3.3V версия идеи - живет себе, как и usb-to-uart шнурки, имя которым легион. У любого кто эмбедовкой занимается этого добра целый пучок есть как правило. Иначе как вы вообще узнаете на чем заткнулся старт системы на вон том одноплатнике? :)
> Москвич-408 можно было заправлять бензом с ослиной моchой, но почему-то очереди из
> желающих окунуться в прдолинг с устаревшей техникой как-то не наблюдается.Кто вам сказал что сериальные шнурки устарели? Это старые песни на новый лад. Более того - ряд девайсов типа сотовых модемов вывешивают "виртуальный uart". Это конечно абстракция, но в силу поддержки ее кучей софта она как раз удобна тем что новый софт специально для - писать не надо.
> Ты бы еще поныл, что в городе лошадь припарковать негде и овес
> не продают на каждом шагу.Внезапно кроме com портов - у всех MCU и SoC есть uart для отладки или - вот - развешивания там управляющей консоли. Доступ к uart пруфает что у меня "физический доступ к оборудованию" поэтому там можно - тадам - управлюящую консоль развесить. И туда же валить допустим лог загрузки. Чтобы в случае чего видеть - а на чем это встряло.
Это все - актуально, производится миллионами, юзается толпой народа и проч. Но вы можете показать вон тем нерюхам как это все делать правильно, конечно.
Чтобы посмотреть «на чем заткнулся старт системы на вон том одноплатнике» сабж не нужен. На любой платформе есть масса способов это сделать. Но «толпа народа» заучила заклинание со Stack Overflow, в котором используется screen.
> Чтобы посмотреть «на чем заткнулся старт системы на вон том одноплатнике» сабж
> не нужен.В принципе - да, но в целом бывает удобно его прицепить, раз уж он это может. Потому что потом через тот же шнурок и порулить можно. Актуально при начальной сборке и тестировании образов, девелопе чего-то под такой таргет и проч.
> На любой платформе есть масса способов это сделать. Но
> «толпа народа» заучила заклинание со Stack Overflow, в котором используется
> screen.В принцтпе можно подниматься на 10-й этаж в стиле человека-паука, на присосках. Но это не очень быстро, не очень просто и не очень безопасно. Поэтому большинство двуногих предпочтет неспортивный, зато простой, общедоступный и понятный им лифт. А могли бы и по вертикальной стене залезть ко всеобщему афигу.
Для уартов есть picocom, зачем эта функциональность в screen?
> Для уартов есть picocom, зачем эта функциональность в screen?На случай если этой штукой захочется порулить более плотно и более продолжительное время?
Запускаешь tmux, в нем запускаешь picocom, дальше как обычно. Заскриптовать если нужно часто, хоть на баше.
> Запускаешь tmux, в нем запускаешь picocom, дальше как обычно. Заскриптовать если нужно
> часто, хоть на баше.Можно много чего. Но зачем напрягаться больше, если уже есть screen?
> Не, ну найдутся пару извращенцев
> screen умеет открывать COM портА вот и первый пожаловал :)
> screen умеет открывать COM порт, а tmux попсовый нет, вот и думай что тру, а что kал"COM порт" - охренеть ... я такого на лаптопчегах уже с десятилетие не видел :)
Да и в серверах - только если карту воткнёшь ...И почему поддержка этого - важна?
А если это важно, то почему я не могу поставить какой нить тоненький tio и перекрыть вообще всё, что можно с последовательным портом делать?
По секрету: он вообще "was originally created as an alternative to screen for connecting to serial devices when used in combination with tmux."
Дарю, оно вещЪ! :)
Ну мне по-крайней мере хватило чуть более чем полностью :)
В сетевом оборудовании зато их дофига еще
Для работы с com-портами в любой UNIX-системе есть специальные программы, которые можно запускать в tmux.
> Таки есть. Zellij например. Или wezterm.А кто ими реально пользуется в работе? Еще раз почти все примеры из жизни - это tmux или screen.
> Но откуда хейтерочку об этом знать.
> хейтерочку
> чем как сяшечники звучно оподливившись в шаровары.А эта фраза растовщичка нечто другое? Тут хейта никакого нет? Или это другое?
>А эта фраза растовщичка нечто другое?Я хоть и не пишу на расте, и вообще считаю, что лучше бы вместо раста был бы ATS, но упорство, с которым сишники отрицают проблемы - удивительно. Казалось бы, в начале нулевых, когда языки с без сборщика мусора и безопасной работой с памятью только проектировались, надменность сишников "просто нужно быть внимательным" ещё могла быть объяснена. Но в 2025 году, когда rust форсится из каждого утюга, а куча других языков типа Cyclone или ATS пусть и не покорили мир, но известны более чем своим авторам, а общедоступной теории достаточно, чтобы школьник с достаточным количеством свободного времени создал свой безопасный язык, приправив это линейными и зависимыми типами, сишники до сих пор продолжают делать вид, что всё хорошо. Не удивлюсь, если и через тридцать лет, сишники будут и дальше продолжать свою мантру "просто нужно быть внимательными", хотя существующий софт уже давным давно можно будет к тому времени переписать.
>>А эта фраза растовщичка нечто другое?
> когда rust форсится из каждого утюгаВот именно. Форсится. Оказывается без unsafe ничего не написать. И нужно быть внимательными, таки да.
> казалось бы, в начале нулевых, когда языки с без сборщика мусора и безопасной работой с памятью только проектировались,
modula, oberon и ada были гораздо раньше.
> будут и дальше продолжать свою мантру "просто нужно быть внимательными",
В любом нетривиальном коде нужно быть внимательным, вообще без разницы на чем он написан, хоть на питоне. Потому что помимио ошибок с памятью, от логических тебе раст вообще никак не поможет.
>Оказывается без unsafe ничего не написатьПока не будет лечения от рака, все больницы закрыть, врачей разогнать
>И нужно быть внимательнымиДавайте, повторите вот это сишное безумие на расте: fork() может потерпеть неудачу: это важно https://habr.com/ru/articles/522208/. Таких примеров куча, и вы и 90% повторить не сможете
>modula, oberon и ada были гораздо раньше.А кто они такие, что на них нужно обращать внимание? Я немного почитал про них, вот лишь один перл
>А теперь ещё немного Виртовского безумия https://ru.wikipedia.org/wiki/%D0%9E%D0%...)
>Оберон
>>Упрощение синтаксиса
>>Чтобы добиться наибольшей надёжности и производительности трансляции, было предпринято значительное упрощение языка за счёт его отказа от средств, которые были сочтены ненужными
>>[...], оператор for, [...]
>Но потом, Вирт понял, что что-то не то
>>Оберон-2
>>в язык возвращён оператор цикла с шагом FOR;
>>Oberon-07
>>добавлен оператор цикла FOR;Вот мне интересно, как удаление, а потом возращение цикла for повышает безопасность? И зачем for потребовалось возвращать аж дважды, он что его ещё раз удалил?
>В любом нетривиальном коде нужно быть внимательным, вообще без разницы на чем он написан, хоть на питонеВ том то и дело, что нет. Этот миф неверен ещё до появления питона. Поскольку в хороших языках вам будет активно помогать компилятор. В плохих языках у вас будут проблемы от любой библиотеки.
>Потому что помимио ошибок с памятью, от логических тебе раст вообще никак не поможет.В примере с fork-ом раст отлично помогает. Если вам не хватает раста, то берите хаскель, идрис и ATS. Я против раста, поскольку в нём нет зависимых типов, нужно что-то вроде ATS. Но, я не системный программист, по этому для меня это не в приоритете. Уж лучше будет раст, чем си и кресты.
> Давайте, повторите вот это сишное безумие на расте: fork() может потерпеть неудачу:
> это важно https://habr.com/ru/articles/522208/. Таких примеров куча, и вы и 90%
> повторить не сможетеПо статье мне стало понятно только то, что автор статьи не читает документацию, что очень печально. Он так-же не будет читать и растовскую документацию, а потом удивляться всякому.
>автор статьи не читает документациюТак в этом и смысл. Для си нужно каждую программу дотошно проверять, и то, легко что-то пропустить
>Он так-же не будет читать и растовскую документациюВ случае rust, он просто получит ошибку типизации, когда kill откажется принимать result. Автор библиотеки однократно делает работу, а дальше уже компилятор проверяет, что программист ничего не забыл
>>Оказывается без unsafe ничего не написать
> Поскольку в хороших языках вам будет активно помогать компилятор.Как в логических ошибках будет помогать компилятор того же раста? Пример в студию.
Элементарно, сделав некорректные состояния невыразимыми. Вот пример для f#, на rust логика будет точно такая же https://habr.com/ru/articles/424895/
> Элементарно, сделав некорректные состояния невыразимыми. Вот пример для f#, на rust логика
> будет точно такая же https://habr.com/ru/articles/424895/А причем здесь это? Вот есть строка длины n, известной во время исполнения. Рассчитывается индекс i во время выполнения и происходит обращение к строке по индексу str[i]. Раст тут ничем не поможет
use std::io;
fn main() {
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let s: Vec<char> = input.trim().chars().collect();
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let idx: usize = input.trim().parse().unwrap();
println!("{}", s[idx]);
}
>Раст тут ничем не поможетЗато поможет любой язык с зависимыми типами, будь то Idris или ATS. Я о зависимых типах писал не раз, даже лично вам, даже лично в этой новости. Запишите его себе в блокнотик, будете растовиков им попрекать
Для того чтоб они помогли всего то и нужна сущая мелочь - нужно чтоб на них начали писать, массово ...А уже и не начнут. Ну ты же понимаешь на что нонешний AI тренируют?
>>Раст тут ничем не поможет
> Зато поможет любой язык с зависимыми типами, будь то Idris или ATS.
> Я о зависимых типах писал не раз, даже лично вам, даже
> лично в этой новости. Запишите его себе в блокнотик, будете растовиков
> им попрекатьУже давно там. Только тяготею к более практичным вещам. Мне ехать, а не шашечки.
Так есть и другие способы работы со строками, даже не в C++, но и в С, и в том числе на микроконтроллерах.
А тащить бородатые "стандартные функции", которые на каждый чих надо обкладывать проверками, но на это все равно где нибудь забьют, так себе стиль.
Стандартные строковые функции - идеальны. Делают ровно то, что заявляют. Если не хочется обкладывать код проверками, то эти проверки придётся интегрировать в сами функции, которые тем не менее придётся обкладывать проверками."Так себе стиль" - просто норма жизни. Без проверок нельзя.
>Стандартные строковые функции - идеальны. Делают ровно то, что заявляютСи идеален, делает то что заявляет. Никто ведь не заявлял, что программы на си будут корректны, правильно? Правильно. Так что всё хорошо, программы на си для того и пишутся, чтобы портить память
>которые тем не менее придётся обкладывать проверками.Внормальных языках будет ошибка компиляции, если вы проверку забудете.
Легендарные сишные строковые функции, как будто специально придуманные для переполнения буферов.Особенно идеальна strncpy. Очевидно, что функция с таким названием копирует строку? А нет, копирует не более n ненулевых байтов из источника и добивает буфер до n нулями (зачем?), ломая инвариант - в буфере после копирования не строка.
Отличная функция для строковой библиотеки, чувствуется могучий дедовский дизайн - собрать столько бесполезной функциональности в одной функции.
Ты просто не знаешь как CPU строки обрабатывает...
А значит тебе непонятно. Вот ты и злишься. Уже признал тупыми всех, хотя единственный тупой - это ты сам :)Не надо тебе в Си.
Тебе даже в Питон - не надо.
Дайте ему Logo какой нить :)))))
CPU никак строки не обрабатывает, нет у него для этого команд.
> CPU никак строки не обрабатывает, нет у него для этого команд.А это что?
"SSE4.2 added STTNI (String and Text New Instructions), several new instructions that perform character searches and comparison on two operands of 16 bytes at a time."
Вместо того чтобы исправить дефекты языка, эти д-бы добавляют инструкции для ускорения strlen.
>Вместо того чтобы исправить дефекты языка, эти д-бы добавляют инструкции для ускорения strlen.Однажды я узнал один ужасающий истина.
Для того, чтобы пользоваться интернетом, нужна куча науки, начиная от физики всяких квантовых эффектов для создания полупроводников, до банальной термодинамики, для работы электростанций, кучи шахт для добычи полезных ископаемых, миллиона человекочасов программистов.
Для того, чтобы победить наркотрафик, наркоманам нужно всего лишь перестать потреблять. Не нужно строить шахты. Не нужно проводить линии электропередач. Не нужно строить переодическую систему элементов. Не нужно писать код. Не нужно проектировать станки.
Одно сделать могут, поскольку это тривиально, а другое нет, поскольку это сложно. Это слишком сложно сделать.
А из предыдущих четырёх раст бы защитил от одной - с состоянием гонки. А остальные точно так же и в расте были бы.
Behavior undefined, это нормально для системного языка программирования. Ненормально когда люди проектирующие язык программирования пытаются полностью устранить Behavior undefined.Behavior undefined - это просто объективное явление, его невозможно полностью устранить. И наличие в языке behavior undefined, не делает язык автоматически плохим. Вам надо уметь гибко мыслить, шаблонное мышление, это плохо.
> Behavior undefined, это нормально для системного языка программированияАга. Допускаешь ошибку и у тебя удаляет все файлы из корня. Почему? Потому что поведение неопределено - компилятор что хочет, то и делает.
> Ага. Допускаешь ошибку и у тебя удаляет все файлы из корня.ага, вступил не туда и остался в лучшем случае без пятки, чвкп*дор :)
>Behavior undefined, это нормально для системного языка программированияНет, не нормально. Неопределённое поведение нужно было для запуска си на разных экзотических архитектурах. Сейчас, когда приличная часть этих архитектур сохранилась разве что в музеях, си продолжает хранить в себе те компромисы, которые давным давно уже никому не нужы
Так уцелевшие архитектуры тоже содержат в себе кучу легаси.
Вопрос не в наличии легаси как такогового, вопрос в том, что при программировании в 2025 году под современный гну/линукс, приходится сталквиваться с ограничениями прямоиком из 1970 года, в перемешку с ограничениями всяких экзотических архитектур типа avr. Если бы screen активно исползьовался под тем допотопным юниксом или на микроконтроллере, то это могло бы иметь смысл, а так это ограничения ради ограничений.
У языка Си нет ограничений. Поэтому программист языка Си должен быть дисциплинированным. А у Раста ограничителем является компилятор, поэтому растаман может себя ничем не ограничивать.Вы путаете.
>Поэтому программист языка Си должен быть дисциплинированнымДолжен, но не обязан. Никто не проверит, что конкретная строчка кода не содержит ошибок
По-хорошему, следует признаться себе, что никаких «строк» (в нормальном понимании) в сишечке нет, и избегать библиотечных функций str* как огня.
Но — зачем напрягаться. Что дедам было хорошо, и нам сгодится.
или уроки учи, str* ты наш
Деды обижаются.
>> приводящее к аварийному завершению при выполнении специально оформленных команд.
>> Bad strncpy() Use Leads to Crashes when Sending Commands
> Вы же вроде в расте как раз такое и любите - чуть что - сразу паника (аварийное завершение)Я расстрою очередного (к)експерта, но panic - это _контролируемое_ завершение программой самой себя, в случае непредвиденной (или осознанно проигнорированной погроммистом) ошибки-ситуации.
А не вот это вот любимое Настоящими Погроммистами "мы тут немного попортили память за пределами буфера, вследствии чего код далее делал незнамо что, пока не прилетел SIGABRT" ...
Дак ведь SIGABRT тоже на сишке написан (в ядре), что не нравится то?
> Дак ведь SIGABRT тоже на сишке написан (в ядре), что не нравится то?И примерно настолько же контролируемый - как и panic() хруста по смыслу :). Т.е. если прогер хотел - может перехватить и обработать.
Сишник, проснись! Что ты собираешься обрабатывать, когда у тебя память испорчена? Это в Расте панику можно перехватить и продолжить работу.
> Сишник, проснись! Что ты собираешься обрабатывать, когда у тебя память испорчена? Это
> в Расте панику можно перехватить и продолжить работу.SIGSEGV/SIGABRT тоже можно - перехватить. И как вы собираетесь работу продолжать при panic()? Насколько я вижу - в ядре линух сумрачные гении родили новую семантику try_* с ... практически сишной семантикой "а что если память не выделилась?!". Вот как раз чтобы нормально реагировать на случаи "а что если нет?!". И вот блин за что боролись, если сделали - ТО ЖЕ САМОЕ?!
> panic - это _контролируемое_ завершение..Но не всегда уместное. А вне десктопа и совсем не уместное.
> немного попортили память за пределами буфера
тут не ручной перезапуск уместен, а замена ПО требуется.
Ну, можно же и на Си нормально работь со строками, без неандертальских функций и тупых строковых буферов. Ну, ладно, хотя бы в коде не требующего сверхбыстродействия.
> А вне десктопа и совсем не уместное.Ты всё перепутал. Это как раз на десктопе таким пугать пользователя нельзя. А на сервере я как раз хочу чтобы упало, а не тихонько неизвестно как то ли работало, то ли память портило. Как падения софта мониторить давно придумали и решили сотней разных способов. А вот как мониторить порчу памяти до сих пор не договорились.
> на сервере я как раз хочу чтобы упалок вменяемому серверу прилагается админ. Проблема закрыта.
А если например контроллер теплицы, или контроллер съёмки с телескопа, то если и упал, поднялся и снова работать. А лучше вовсе не падать.
> как мониторить порчу памяти до сих пор не договорились.
Не использовать без обоснования ретро функции, и нет проблемы.
> А лучше вовсе не падать.Сказки на другом этаже. Когда изобретут неломающееся оборудование, тогда и обсудим как лучше не падать. До тех пор можно считать, что внезапный сбой в самый неподходящий момент — часть естественного поведения любой системы и проектировать соответствующим образом.
> Не использовать без обоснования ретро функции, и нет проблемы.
> без обоснованияТо есть не договорились.
>Но не всегда уместноеМонады изобретены, но сишники как всегда об этом не знают.
На этом софта даже больше сделано чем на расте ;-)))))Но да признаю, pandoc - мне зашёл, юзаю :)
Идея паники понятна, но аноним попался на незнании ОС ни Сижки: sukabrt это тебе он сегфоулт, он швыряется тоже по пурпоузу, как и эксепшен этот ваш панический. Если словил аборт это как раз самое контролируемое что ни на есть
> Идея паники понятна, но аноним попался на незнании ОС ни Сижки: sukabrt
> это тебе он сегфоулт, он швыряется тоже по пурпоузу, как и
> эксепшен этот ваш панический. Если словил аборт это как раз самое
> контролируемое что ни на естьЯ не очень понял, на чем ты попался (особенно, приплетя что-то про ОС) и совсем не понял, что тебе помешало посмотреть для начала в оригинал - там для таких вот Знатоков разжеванно:
> The visible error only occurs when Screen is compiled with the _FORTIFY_SOURCE feature enabled. Otherwise no errors are seen, not even when compiling with -fsanitize=address, likely because after the end of the target buffer another long buffer char message[MAXPATHLEN * 2] follows (thus only application payload data is overwritten).
>Что делает _FORTIFY_SOURCE, Знаток надеюсь, сможет выяснить самостоятельно ...
>> The visible error only occurs when Screen is compiled with the _FORTIFY_SOURCE feature enabled.А в 2025 году остался кто-то у кого ЭТО вообще отключено при сборке софта?
SIGABRT это тоже контролируемое, по вызову abort(). Настоящие сишники любят SIGSEGV.
> SIGABRT это тоже контролируемое, по вызову abort(). Настоящие сишники любят SIGSEGV.SIGABRT там - потому что скомпилировали с _FORTIFY_SOURCE (т.е. с доп. проверками strncpy).
Так-то будет не менее любимое "программа работает без ошибок, просто начинает делать какую-то фигню":
> Otherwise no errors are seen, not even when compiling with -fsanitize=address, likely because after the end of the target buffer another long buffer char message[MAXPATHLEN * 2] follows (thus only application payload data is overwritten).
> SIGABRT там - потому что скомпилировали с _FORTIFY_SOURCE (т.е. с доп. проверками
> strncpy).Сейчас это тупо дефолтные флаги в всех нормальных дистро.
Крашнуться, то есть срочно завершиться - это наилучшее поведение при непредусмотренной работе программы. Так ты быстрее всего поймёшь, что что-то не так.
>Вы же вроде в расте как раз такое и любите - чуть что - сразу паникаКак и ожидалось, про монады сишники ничего не слышали. И даже сейчас, они не пойдут выяснять, что это такое. Память сама себя не испортит, а патч, против порчи памяти, сам себя не напишет.
Просьба уточнить использование термина "монады": имеется ввиду та самая разновидность функтора из теории категорий или кто-то что-то левое назвал "монадой" для большей крутости?
>>= и >|= если впрочем понимаете, о чём я.
Прочитал Википедию за вас:The computer scientist Eugenio Moggi was the first to explicitly link the monad of category theory to functional programming, in a conference paper in 1989, followed by a more refined journal submission in 1991. In earlier work, several computer scientists had advanced using category theory to provide semantics for the lambda calculus. Moggi's key insight was that a real-world program is not just a function from values to other values, but rather a transformation that forms computations on those values. When formalized in category-theoretic terms, this leads to the conclusion that monads are the structure to represent these computations
> Просьба уточнить использование термина "монады":Да чего тут понимать то?
Пока 20-ти летки всё начинают переписывать на Rust-e ...
30-ти летки начинают переписывать всё на Haskell-e ...Можно ставки принимать "кто придёт вторым, а кто предпоследним"(С)
;-)
просто оставлю это здесь..
https://undeadly.org/cgi?action=article;sid=20090712190402
> нынешние сопровождающие GNU screen недостаточно хорошо ориентируются в кодовой базе проектаТо есть диды написали тонны сишного кода в ГНУ/Линуксах и уходят, а сопровождать его вместо них некому.
> То есть диды написали тонны сишного кода в ГНУ/Линуксах и уходятА где там в gnu screen тонна кода?
> а сопровождать его вместо них некому.
Получается некому, а те, кто могут, не хотят. Об этом яжфин говорил, что проблема есть в сопровождающих.
> Об этом яжфин говорил, что проблема есть в сопровождающих.Тогда все эти мансы с растом обретают иной смысл - просто Торвальдс хочет привлечь к разработке молодёжь, а она в си не умеет и не хочет. Ну и скандал, борьба, революция, всё это тоже важно для привлечения молодёжи.
> Тогда все эти мансы с растом обретают иной смысл - просто Торвальдс хочет привлечь к разработке молодёжь, а она в си не умеет и не хочет. Ну и скандал, борьба, революция, всё это тоже важно для привлечения молодёжи.Я думаю там замешаны конторы, у которых ставка на раст. У них профит простой: нужны дешевые разрабы.
> а она в си не умеет и не хочет.
Справедливости ради молодёжь много чего не умеет не хочет. А нет, умеют писать жручие и тормозные поделия на электроне.
> Я думаю там замешаны конторы, у которых ставка на раст. У них профит простой: нужны дешевые разрабы.Для дешёвых разрабов нужен низкой порог входа и превышение предложения над спросом. В расте ни того ни другого не наблюдается.
Скорее гошка, но даже там рынок не насыщен исчо.
> Для дешёвых разрабов нужен низкой порог входа и превышение предложения над спросом. В расте ни того ни другого не наблюдается.Ну я имел ввиду низкий относительно с++.
меня больше тревожит, что некоторые "не умеют в русский язык"
Почем тебя это тревожет
потому-что на нем можно писать прозрачные слова (белый листочек А4) или спокойно одно слово подменять другим и вовсе не синонимичным. Ипаразитным словом теперь является не "б*ять", а "наш". Вот такой вот аксиомный бихевиор.
>>Ипаразитным словом теперь являетсяError 1: ‘Ипаразитным’ was not declared in this scope
> а она в си не умеет и не хочетИ совершенно правильно делает. Оно им надо, в кучах дедовского г… копаться?
>> а она в си не умеет и не хочет
> И совершенно правильно делает. Оно им надо, в кучах дедовского г… копаться?Понять можно, простить - никогда. :)
Надо писать научный труд "отсутствие преемственности в айти". :)
На самом деле, если Торвальдс молодёжи не наберёт, то Линукс тихонечко умрёт, да и многие другие важные свободные проекты тоже.
> Понять можно, простить - никогда. :)Деда ответ (с) )))
> Надо писать научный труд "отсутствие преемственности в айти". :)
Интересно, писал ли кто-то подобное в стиле "молодежь не хочет ухаживать за лошадками! им подавай эти новомодные автомобили!!!
А ведь лошадка это не бездушная железка, у нее есть характер, она умеет фыркать, кушать вкусняшки и пахнуть навозом!"> На самом деле, если Торвальдс молодёжи не наберёт, то Линукс тихонечко умрёт,
Не умрет.
Есть корпорации у которых наемные рабочие, которые будут делать то, что им скажут.
Правда тогда в ядре код от "индивидуалов" будет вообще около нуля, а не процентов 10 как сейчас.> да и многие другие важные свободные проекты тоже.
Если на них забили и они умерли - значит не настолько и важные.
> Есть корпорации у которых наемные рабочие, которые будут делать то, что им
> скажут.Ты переоцениваешь возможности корпов, даже бабло не всемогуще. Если разрабов способных разобраться в сишечке не будет, то их не будет, сколько бабла не вливай.
Всё что корпы смогут сделать в этом случае - найти новый молодой проект с молодым условным Торвальдсом и вложиться в его поддержку.
Но я думаю старый Торвальдс смекнул что к чему и возможно он успеет омолодить состав, хотя и не факт.
> Если на них забили и они умерли - значит не настолько и
> важные.Ну в принципе да, так и есть. Монолит не нужен.
> Ты переоцениваешь возможности корпов, даже бабло не всемогуще.Возможно переоцениваю.
Но я смотрю со своей колокольни полче 10+ лет работы на такую корпу.Да и дело не столько в бабле (но деньги тоже очень важны), сколько в ресурсах в общем смысле.
> Если разрабов способных разобраться в сишечке не будет, то их не будет, сколько бабла не вливай.
Почему? Они не исчезнут мгновенно, как если бы растоманы наняли киллера, который бы стукал ложкой сишника по лбу за каждый выход за границы буфера.
Их кол-во будет уменьшаться, цена будет расти.
У корпа будет несколько путей решения проблемы:
- просто нанимать сишников, несмотря на цену
- перевести проект в легаси и фиксить только баги и этим срезать стоимость на кол-ве людей
- нанять сишника и посадить своих сотрудников за парту
- переписать на другой ЯП или просто написать "то же самое" на другом ЯП с нуля
- и тд...У корпов даже есть ресурсы чтобы создать спрос на ЯП.
Например они объявляют вакансии на редкий язык. За хорошие деньги.
Народ видит что "ого, за N платят в 3 раза больше чем то на чем я пишу сейчас".
Дальше это "рекламируется" и продвигается: например блогпосты с примерами использования, какие-то трюки, видео с конференций.
Потом подтягиваются онлайн курсы и даже университеты.
А потом у тебя GOшка становится стандартом.> Всё что корпы смогут сделать в этом случае - найти новый молодой проект с молодым условным Торвальдсом и вложиться в его поддержку.
У корпов есть одна хорошая и одновременно плохая особенность - они по большей части практичны.
Если им будет быстрее/дешевле найти нового торвальдса - они будут так делать.
Если выгоднее тянуть старое - будут тянуть.Их за это люто ненавидит сообщество, тк стоит они дропнут старую архитектуру или версию, если на ней останется пару нетакусиков.
> У корпа будет несколько путей решения проблемы:
> - просто нанимать сишников, несмотря на цену
> - перевести проект в легаси и фиксить только баги и этим срезать
> стоимость на кол-ве людей
> - нанять сишника и посадить своих сотрудников за парту
> - переписать на другой ЯП или просто написать "то же самое" на
> другом ЯП с нуля
> - и тд...Если Си потеряет популярность и разрабов останется очень мало, то всё кроме предпоследнего пункта (переписать), приведёт к умиранию проекта "ядро Линукс". Разумеется постепенного, до какого-то момента. Завтра это не случится.
> Если выгоднее тянуть старое - будут тянуть.
Железо движется вперёд, приходят новые идеи и технологии, происходит постоянное развитие. То есть "тянуть" какое-то время смогут, но не более того. А если развития не будет, то это и будет "умирание", стагнация.
> Если выгоднее тянуть старое - будут тянуть.
> Их за это люто ненавидит сообщество, тк стоит они дропнут старую архитектуру
> или версию, если на ней останется пару нетакусиков.За что по-твоему сообщество ненавидит, не понял. За то что тянут старые технологии или за то что их дропают? :)
По-моему их ненавидят не за то, что они дропают или тянут, а за то что у них слишком много власти, влияния и сообществу приходится под них подстраиваться.
Ну будет как с modern perl'ом - пользуемся, пока работает, как ломается - переписываем и выкидываем.
О рили?
А чего ж с Cobol не переписали и не выкинули?
А ну да ... у вас же лапки ...
:)
Не поломался, вот и не переписали. Лапки тут не при чём, тем более что в том коде никаких откровений не написано, всё довольно примитивно, а сложности с переписыванием не в том, чтобы примитив понять, а том что диды как обычно ни документации, ни тестов написать не удосужились, культура разработки в те времена была та ещё, лишь некоторые догадывались о её существовании, а уж про то, что она важнее языка на котором код написан так и вовсе только лет десять-пятнадцать как начало до масс доходить.
Ты поплачь, полегчает(С)А по факту ... аэропорт Франкфурта все помойки на планете Земля переворошил чтобы DEC-и свои держать работоспособными. Потому как новое на жабе иногда самолёты мимо садит :))))
(Ну не совсем прямо DEC - но наследникоффф)
Есть задачи сложные технически, например, производство айфона, и есть задачи сложные финансово, например, его покупка. Вы же не станете утверждать, что айфон произвести нельзя, лишь потому, что у нищих людей айфона нет?
> О рили?
> А чего ж с Cobol не переписали и не выкинули?
> А ну да ... у вас же лапки ...
> :)Так и переписали и выкинули в точности вот описанным вот образом. В реальности этот работающий пока кот закопан так глубоко, что в пору проктолога звать...
Но тля на __КАЖДЫЙ__ взмах кредиткой по всему шарику - отрабатывает именно _ОН_! :)
"глубокозакаопанный" и "выкинутый" ... :)))))
> Но тля на __КАЖДЫЙ__ взмах кредиткой по всему шарику - отрабатывает именно _ОН_! :)
> "глубокозакаопанный" и "выкинутый" ... :)))))И?
Каждый слив моего толчка отправляет мистера какаху в увлекательное путешествие по трубам еще времен царя гороха (слава богу хотя бы чугугуниевые, а не деревянные как во всяких сырзанях).
Но это не меняет реальности, что технология безнадежно устарела.
> Но тля на __КАЖДЫЙ__ взмах кредиткой по всему шарику - отрабатывает именно
> _ОН_! :)
> "глубокозакаопанный" и "выкинутый" ... :)))))А на практически каждое щелканье выключателем на 1\6 части суши - немного паскаля (Даже вроде бы не "турбо" - но это не точно), и я даже стесняюсь спрашивать, какие выводы вы сделаете о важности, нужности и незаменимости данного языка...
>На самом деле, если Торвальдс молодёжи не наберёт, то Линукс тихонечко умрётВарианта, что ядро будет написано на нормальном языке, а не там, чуть ли не на каждой строке - неопределённое поведение, вы конечно же не рассматриваете
>Понять можно, простить - никогда. :)Молодёжь не хочет мазохизма с неопределённым поведением, удивительно то как
>>На самом деле, если Торвальдс молодёжи не наберёт, то Линукс тихонечко умрёт
> Варианта, что ядро будет написано на нормальном языке, а не там, чуть
> ли не на каждой строке - неопределённое поведение, вы конечно же
> не рассматриваетеШансы не нулевые. Если Торвальдс успеет сейчас оперативно массово привлечь молодёжь, то может что-то и получится, но будет нелегко. А если не успеет, то молодёжи гораздо проще и быстрее будет написать новое ядро заново с нуля, разумеется не на сях.
>А если не успеет, то молодёжи гораздо проще и быстрее будет написать новое ядро заново с нуляНаписать заново, с нуля, можно мс-дос или миникс, с соответствющим функционалом. У миникса, например, первая файловая система могла быть размером до 64 Мб. Сами понимаете, насколько пригодной получится такая система. Всё остальное требует огромных затрат по времени, в течении которых нужно будет чем-то пользоваться
> Написать заново, с нуля, можно мс-дос или миникс, с соответствющим функционалом. У
> миникса, например, первая файловая система могла быть размером до 64 Мб.
> Сами понимаете, насколько пригодной получится такая система. Всё остальное требует огромных
> затрат по времени, в течении которых нужно будет чем-то пользоватьсяДонкихотских проектов - уже было и есть. Вон redox os, а вон fuchsia. При том за второе гугло вписалось вообще. Но это ему не помогло, гора родила мышь, несмотря на сказ как они ща размахнутся с супер-языками и всем покажут, захватив мир. Через цать лет - захватили 2 фоторамки. В этом месте менеджмент начал о чем-то догадываться и децимировал тиму...
>>А если не успеет, то молодёжи гораздо проще и быстрее будет написать новое ядро заново с нуля
> Написать заново, с нуля, можно мс-дос или миникс, с соответствющим функционалом.А это как раз то, что нам и нужно. Микро- или нано-ядро с соответствующим функционалом.
Написать само по себе микроядро не сложно. Проблема в том, что кроме микроядра нужен драйвер для файловой системы, видеокарты и так далее. Вы посмотрите на фичи btrfs или zfs. И вот здесь уже не получится написать миро-файловую систему, просто потому, что код файловой системы не масштабируется. Посмотрите на те же namespace и cgroups. И все эти фичи нужны одновременно, хоть в микроядеронй, хоть в монолитной
> Вы посмотрите на фичи btrfs или zfs. И вот здесь уже не
> получится написать миро-файловую систему, просто потому, что код файловой системы не
> масштабируется.Ну это скорее проблемы zfs и btrfs. Значит сначала сделают ext4.
> На самом деле, если Торвальдс молодёжи не наберёт, то Линукс тихонечко умрёт, да и многие другие важные свободные проекты тоже.Так и будет. Ядро попилят просто. К тому же GPL как кость в горле для корпов. Плюс всему этому будет способствовать тренд на деглобализацию и закрытие технологий (чтобы не сперли).
> Получается некому, а те, кто могут, не хотят.А кто платить то будет?
Как обычно ... :)Ну ты понил(С)
> То есть диды написали тонны сишного кода в ГНУ/ЛинуксахУгу.
> и уходят
чудовищная безответственность!
> а сопровождать его вместо них некому.
А ты бы хотел ковыряться в старых жигулях как дед на выходных?
Или лучше взять и заняться чем-то более интересным?Я уже молчу что качество того кода мягко говоря отстойное, судя по кол-ву дыр и тяп-ляпов в стиле "мамой клянусь тут не будет переполнения".
> А ты бы хотел ковыряться в старых жигулях как дед на выходных?Я, поднимая седую бороду от жигулей: а? что? кто здесь?
> Или лучше взять и заняться чем-то более интересным?
> Я уже молчу что качество того кода мягко говоря отстойное, судя по
> кол-ву дыр и тяп-ляпов в стиле "мамой клянусь тут не будет
> переполнения".Вообще-то я не осуждаю, по крайней мере вслух. ;)
Я констатирую факт. А уж что с этим делать? Может действительно миру нужно новое ядро и новый, молодой Сталман и Торвальдс.
Где та молодая шпана?
> Я, поднимая седую бороду от жигулей: а? что? кто здесь?Я знаю одного знакомого деда, который на старости (по образованию был преподавателем) освоил миг-маг сварку и сейчас варит каркас для самопального электо-велосипедо-скутера.
А до этого сделал для внуков карт и катамаран из пятилитровых баклажек.
Главное душой не стареть (с)Надеюсь я в старости буду таким же)))
> Я констатирую факт. А уж что с этим делать? Может действительно миру нужно новое ядро и новый, молодой Сталман и Торвальдс.
Не, давайте обойдемся без столлманов.
Хватило одного поборника идей "отнять и поделить" и писателей коммунистических манифестов.А на вопрос "что делать?" уже ответили - добавляйте в ядро то, что эту молодежь привлечет.
Например новые подходы, языки и схемы управления.> Где та молодая шпана?
Думаю в дискордах или тиктоках.
На ютубе тоже много.
>> Где та молодая шпана?
> Думаю в дискордах или тиктоках.
> На ютубе тоже много.Тогда уже можно закапывать. :)
А здесь хоть есть молодёжь, опросы проводили?
> Тогда уже можно закапывать. :)Снобизмом попахивают слова твои.
На темную сторону силы ведет сей путь.> А здесь хоть есть молодёжь, опросы проводили?
А молодежь это кто)?
Мне например 30+ и я себя старым не считаю.
Особенно по сравнению с древностями которые на всяких БЭСМ начинали.Можно конечно зубоскалить, но на ютубе можно посмотреть какой-то тyпoе видео, а можно что-то типа "MIT 6.0001 Introduction to Computer Science and Programming in Python" или "MIT 6.5630 Advanced Topics in Cryptography, Fall 2023"
И каждый найдет то, что ему интересно.Половина моих одноклассников которые росли в 90х спилась.
Я в лет 7-10 развлекался тем, что прыгал по гаражам, лопал выкинутые на помойку кинескопы от телевизора березка и плавил свинец из старых аккумов.Так что я не рассчитываю, что прям все нынешние 16-20 летки станут гениями программирования, но от них это и не требуется)
>> А здесь хоть есть молодёжь, опросы проводили?
> А молодежь это кто)?
> Мне например 30+ и я себя старым не считаю.Границы конечно размыты и индивидуальны, но как раз где-то с 30 это уже не молодёжь. Старым ты ещё не становишься, можно сказать средний возраст, зрелость и т.п.
> миру нужно новое ядро.МИРУ НУЖНО НОВОЕ ЯДРО.
Миру нужны стандарты, ядра могут быть собственной разработки.
ага, волки и овцы - мир
>> миру нужно новое ядро.
> МИРУ НУЖНО НОВОЕ ЯДРО.Как показала проверка гуглей и фуксией - не то чтобы вы соврали, просто не сказали всей правды.
> МИРУ НАФИГНУЖНО НОВОЕ ЯДРО.
Я дополнил недостающий кусок фразы, не благодарите :)
Правочка:
То есть диды написали тонны смешного кода в ГНУ/Линуксах и уходят, а сопровождать его вместо них некому.
>они так и не смогли подготовить исправления для всех уязвимостейВсё, что нужно знать о GNU.
Zellij, tab-rs.
> сотрудникам SUSE пришлось подготовить некоторые патчи самостоятельно. По мнению проводивших аудит исследователей, нынешние сопровождающие GNU screen недостаточно хорошо ориентируются в кодовой базе проекта и не способны полностью разобраться в выявленных проблемах безопасности.А нынешний сопровождающий — это alexander_naumov@opensuse.org ведь? Они там меж собой в suse договориться не могут даже?
Не суди строго: должно быть бро открыл олдскульную кодовую базу и у него глаза потекли, моментально окислился
Эта новость основана на репорте SUSE. Мнение другой стороны, Александра, upstream, мы не знаем. Интересным мне показалось, как они написали, что он им ничего так и не смог предоставить. Никаких патчей. А потом, в их же репорте, что после публикации SUSE патчей, он потребовал изменить авторство, ЧТО ОНИ И СДЕЛАЛИ %) Так на каком основании он потребовал это? И зачем они внесли изменения в авторство патчей (исправили со своего, на его), если не он предоставил пачти, как они написали, а они? =))
Кстати интересно. Он у них получается вообще дурачок дурачок, который ничего не делал, потом начал делать, потом ничего так и не сделал, а потом ещё чуть и эмбарго не нарушил. Ещё он якобы в коде проекта не разбирается.В copyright написано, что он занимается screen уже 10 лет. И кстати именно в его изменениях для 5.0.0 security issues они не нашли. Может человек заниматься проектом столько лет, выпускать релизы, и не знать проект так хорошо, как проверяющие из suse? Наверное что-то не поделили, вот они и решили его убрать. Тоже интересно, что нигде от его имени никаких запросов на аудит кода нет.
Это 100% совпадение конечно.. наверно... но 4 из 5 найденых SUSE проблем, это код, который был добавлен в screen как раз сотрудниками SUSE...Последняя, пятая, с logfile, это то, получилось после того, как безопасную проверку удалил прошлый мэйнтейнер Амадеус, который сейчас покинул проект. И именно эту проблему исправил (добавил обратно) Александр. И SUSE написал критику в его адрес в своем репорте. Ох уж эти совпадения =)
Роллинг это быстрые фиксы с одной стороны и новые вулны с другой.
> только в ветке screen 5.0.0, которая поставляется в Fedora Linux, Arch Linux,
> NetBSD, OpenBSD и Alpine.Спасибо этим господам что побегали для нас по минному полю и разминировали прямо его своими тушками :)
Им спасибо, а мы продолжим юзать tmux в роли терминал-мультиплексора
> Им спасибо, а мы продолжим юзать tmux в роли терминал-мультиплексораОн довольно убогий и не умеет сериальные шнурки...
> не умеет сериальные шнуркиПодавляющему большинству 1% это совершенно не надо и никогда в жизни не понадобится. Какие-то общеприменимые минусы есть?
Для работы с com-портами в любой UNIX-системе есть специальные программы, которые можно запускать в tmux.
> Для работы с com-портами в любой UNIX-системе есть специальные программы, которые можно
> запускать в tmux.Можно, но запускать 2 программы вместо одной - канительнее, и есть риск пересечения шорткатов. С хрен бы его знает каким результатом потом.
> запускать 2 программы вместо одной - канительнееЭ-э, а юниксвей как же?
>> запускать 2 программы вместо одной - канительнее
> Э-э, а юниксвей как же?Юниксвэй хорош там где он упрощает жизнь. И плох там где усложняет.
Смотри 7.157
Да я же сказал, что в роли терминал-мультиплексора продолжаем юзать tmuxА для serail юзай cu, stty, picocom или еще что-нибудь
В NetBSD в 3rd-party пакетах есть обе версии, а в базовой системе идет tmux.
Как обычно, у проектов GNU код низкого качества. Ничего хорошего от этой конторки ждать нельзя.Лучше пользоваться TMUX. У него фич больше, конфиг вменяемый. Сделано людьми для людей.
.. пользоваться им я конечно не буду
Ты вначале на человека сертифицируйся ....
Там ещё и конфиг нужен?
All generalizations are false.
у проектов гну код нормального качества, просто современным программистам инженерных навыков не завезли и они выгорели после чтения первых 10 вызовов функций
Врети - в BSD tmux вместо скрина! А GNU пора закопать на свалке истории как что-то нелепое и в лучших традициях неудавшееся.
Ну вот и сиди на своём tmux, а нам на GNU screen хорошо.
Tmux и screen - это как вим и нано. Вторыми пользуются неофиты и убунтята.
Неверно, совершенно разные весовые категории. Tmux и screen - это как Vim и Emacs.
> Врети - в BSD tmux вместо скрина! А GNU пора закопать на
> свалке истории как что-то нелепое и в лучших традициях неудавшееся.Вообще-то если вам не сказали, на свалке истории - BSD.
В Debian без setuid/setgid. Но как же он тогда работает? Дебьяновская магия!
capabilities(7)
Про NetBSD какая-то ложь. В pkgsrc есть две версии: pkgsrc/misc/screen и pkgsrc/misc/screen4. Первая (без цифры в названии) это 5я версия, но ни одна из них не входит в состав базовой системы.
Какой-то странный эксплойт. Не желает он в подмененный файл писать, поскольку это уже не тот файл:
Error writing logfile: Bad file descriptor
Ну и: Screen version 4.09.01 (GNU) 20-Aug-23
FreeBSD 14.2
Хм, а они успели разделиться на 4 и 5 ветки, оказывается, а я всё проспал. К счастью, видимо.
> Error writing logfile: Bad file descriptor
> Ну и: Screen version 4.09.01 (GNU) 20-Aug-23Хм... запустить эксплойт даже не прочитав его описание и тем более сорцы? А вы жжоте! Продолжайте дальше в том же духе, и вас будет ждать немало интересных сюрпризов :). Никогда не слышали про эксплойт от Ac1d B1tch3z или как их там правильно? Он довольно плоско прикалывался над теми кто любит - вот такое вот.
Про виртуальные машины слышал?
... setuid на бинарник для мультиплексинга экранов? А чё на tee сразу setuid не впихнуть?
> ... setuid на бинарник для мультиплексинга экранов? А чё на tee сразу
> setuid не впихнуть?Ну так в соответствии с новомодными веяниями, TEE = trusted execution environment :)
Подозреваю чтоб логировать логины в wtmp/utmp
нет.экспертиза...мда
> Уязвимость вызвана тем, что при запуске с правами rootНевероятно! Программа, запущенная под root, может выполнить код с правами root!