|
2.2, Аноним (2), 18:05, 03/02/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
Она отдельной надстройкой в дистрибутивах добавлялась, а сейчас встроена в Glibc.
| |
|
3.3, Аноним (3), 18:07, 03/02/2022 [^] [^^] [^^^] [ответить]
| –13 +/– |
а как ее убрать обратно? просто не всем нужен юникод, тем более если сидишь в ядерной консоли (поставил зеленые буквы кстати)
| |
|
4.7, Урри (ok), 18:37, 03/02/2022 [^] [^^] [^^^] [ответить]
| +4 +/– |
Просто не используй.
А кому надо - те будут использовать.
| |
|
|
6.12, Аноним (12), 18:48, 03/02/2022 [^] [^^] [^^^] [ответить]
| +3 +/– |
Тогда используй другую реализацию. Glibc это не про чистоту и минимализм, кмк
| |
6.31, Массоны Рептилоиды (?), 21:07, 03/02/2022 [^] [^^] [^^^] [ответить]
| +3 +/– |
> я за чистоту и минимализм, ничего лишнего быть не должно
От прокладки между креслом и клавиатурой не пытался избавиться?
| |
|
5.94, Мент (?), 11:07, 05/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
Нет, это не нужно!
Понял?
Потому что я так решил.
Я имею полное право решать за весь мир.
Потому что я великий эксперт с opennet.
| |
|
4.14, Аноним (14), 18:51, 03/02/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
>Локаль занимает около 400 КБ, из которых 346 КБ составляют данные LC_CTYPE для Unicode, и требует отдельной установки (не встроена в Glibc).
КО: Не ставь.
| |
4.15, Аноним (14), 18:52, 03/02/2022 [^] [^^] [^^^] [ответить]
| +2 +/– |
>если сидишь в ядерной консоли (поставил зеленые буквы кстати)
Как без прокрутки живётся-то?
| |
4.16, Аноним (-), 19:03, 03/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
>а как ее убрать обратно?
Если вы про командный интепретатор типа bash или csh, то там локали глобально и легко настриваются, ничего убирать не надо. Можете систему настроить на язык родных осин.
Если вы про ядро, то в ядре давным давно UTF-8. UTF-8 придумали отцы юниксоиды Кен Томпсон и Роб Пайк, в него ASCII входит как подмножество, в виде первого блока символов.
| |
|
5.67, Тот_Самый_Анонимус (?), 05:50, 04/02/2022 [^] [^^] [^^^] [ответить]
| –2 +/– |
>в него ASCII входит как подмножество, в виде первого блока символов
И в этом минус. Стандарт отжил своё, но его тянут для совместимости, и этот костелизм тянет юникод вниз. Потому эта кодировка не станет последней и окончательной.
| |
|
6.76, kusb (?), 12:51, 04/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
А я тоже придумывал кодировку. Там кириллические и латинские символы были одинаковыми по кодам, а ещё были банки символов, которые переключались командами. Потерял один символ и вce clomaloc' dyhum cgocobom.
| |
|
5.86, Аноним (-), 19:24, 04/02/2022 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Если вы про ядро, то в ядре давным давно UTF-8.
А шрифты для консоли уже могут иметь более 512 глифов? Можно вывести одновременно аглицкий, японский и русский?
Или поддержка юникода все еще немножко "фейковая"?
| |
|
6.95, Аноним (-), 11:57, 05/02/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
>А шрифты для консоли уже могут иметь более 512 глифов?
Юникодная раскладка кириллицы и кириллические буквы на 3-м уровне исполнения у меня нормально работают.
>Или поддержка юникода все еще немножко "фейковая"?
Нет не фейковая. В ядре UTF-8. Ограничения там чисто из технических соображений. А то размер исхожников на иероглифах могут распухнуть.
Шах и мат! Прежде чем что-то писать сначала научись уму разуму.
| |
|
7.103, Аноним (-), 14:16, 05/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
>>А шрифты для консоли уже могут иметь более 512 глифов?
> Юникодная раскладка кириллицы и кириллические буквы на 3-м уровне исполнения у меня
Так "да" или "нет"?
>> Или поддержка юникода все еще немножко "фейковая"?
> Нет не фейковая. В ядре UTF-8. Ограничения там чисто из технических соображений.
Т.е. "да, но пока еще нет"? Или "нет, пока еще нет"?
> А то размер исхожников на иероглифах могут распухнуть.
В тех же бздах вполне себе выводится в консоле разом русский, японский и английский
https://www.opennet.dev/openforum/vsluhforumID3/123250.html#205
Да и в целом - бредоватая отмазка.
> Шах и мат!
Правда, исключительно в фантазиях опеннетный "знатоков".
| |
|
6.141, Аноним (-), 18:38, 07/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
А имена файлов длиной до 255 символов юникода, а не 255 байт уже завезли?
| |
|
|
|
3.4, макпыф (ok), 18:11, 03/02/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Она отдельной надстройкой в дистрибутивах добавлялась
Вы про localedef?
| |
|
|
5.35, макпыф (ok), 21:52, 03/02/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
> патч есть левый который дистры накладывали
У меня ни каких патчей нет
| |
|
|
7.39, макпыф (ok), 22:10, 03/02/2022 [^] [^^] [^^^] [ответить]
| –2 +/– |
> И мозгов тоже.
Похоже что у тебя.
./configure <...>
make
make install
localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true
Все работает. export LANG=C.UTF-8
| |
|
8.54, муу (?), 02:19, 04/02/2022 [^] [^^] [^^^] [ответить] | +2 +/– | это не локаль, а костыль васянский какойто вот более правильный костыль от бород... текст свёрнут, показать | |
|
9.55, муу (?), 02:21, 04/02/2022 [^] [^^] [^^^] [ответить] | +/– | ЗЫ патч выше это по сути то что в glibc замерджили, о чём и речь в новости ранее... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
1.13, Аноним (-), 18:51, 03/02/2022 [ответить] [﹢﹢﹢] [ · · · ]
| –4 +/– |
>В функции семейства printf добавлены спецификаторы формата "%b" и "%B" для вывода целых чисел в двоичном представлении.
Оу щет! Для вывода двоичного кода исторически использовался какой-то трюк с битовыми сдвигами. В Стандартной библиотеке 2011 года новый спецификатор? Неожиданно. Сишка медленно изменяется.
| |
|
2.75, n00by (ok), 12:05, 04/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
Не вижу %b или %B ни в C17 ни в n2731.pdf среди conversion specifiers для fprintf().
| |
|
3.102, Аноним (102), 14:16, 05/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
C17 - это черновик, причём один из многих промежуточных черновиков. Текущий ратифицированный стандарт языка Си - C18 (2018 г.).
| |
|
|
5.118, Аноним (-), 07:40, 06/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
>ISO/IEC 9899:2018 (C17/C18)
Пиши без ошибок, есть теущий ISO/IEC 9899:2018 (C18). С17 - это черновик.
| |
|
6.122, n00by (ok), 09:02, 06/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
>>ISO/IEC 9899:2018 (C17/C18)
> Пиши без ошибок, есть теущий
> теущий
Точно. Пиши.
А ещё учимся читать. Слово "находим" после ссылки подразумевает цитату.
Итак, я жду цитату по существу - что там в "C18" по поводу %b ?
| |
|
|
|
|
|
1.20, Аноним (20), 19:36, 03/02/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
В генту убрали юз custom-cflags на крайнем ебилде. Печаль, всего-то надо было убедится что -fsemantic-interposition включен. Мейнтейнеры генту сломали мне глибц своей libxcrypt, теперь вместо того чтобы разгребать свои косяки решили вообще сделать вид что так и надо.
| |
|
2.22, Аноним (20), 19:42, 03/02/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ещё они в прошлом году сломали песочницы браузеров (фф и хрома, опять же через кривую glibc), теперь притянули сотню перловых пакетов непонятно зачем и какие-то инсталляторы питона. Никогда желание найти дистрибутив с более квалифицированными мейнтейнерами не было так велико. Правда, подозреваю что там не лучше и вариантов вообще не будет, тут как-то всё работает ещё.
| |
|
1.21, Неуклюжий танцор (?), 19:39, 03/02/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
> В функции семейства printf добавлены спецификаторы формата "%b" и "%B" > для вывода целых чисел в двоичном представлении.
Лучше поздно, чем никогда
| |
|
2.23, OpenEcho (?), 19:51, 03/02/2022 [^] [^^] [^^^] [ответить]
| –6 +/– |
> Лучше поздно, чем никогда
И спасибо что реализованно не через dlopen(), а то эта "свободная" библиотека не может жить без опоры на зависимости, такое у нее понимание свободы
| |
|
3.77, OpenEcho (?), 13:22, 04/02/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
Судя по количесву минусов, я спалил контору продвигающую тенденцию обязательных зависимостей для контроля популяции :)
| |
|
|
1.37, Аноним (37), 21:59, 03/02/2022 [ответить] [﹢﹢﹢] [ · · · ]
| –4 +/– |
Обьясните не сведующему, почему мир использует C только в системных утилитах, но не использует его во всем остальном, используя php, java и другие быдло языки. Это же идеальный язык. А для тех кто не хочет работать с памятью придумыли rust и go. Зачем нам другие языки, если этих трех для всего хватит?
| |
|
|
|
4.91, Аноним (-), 08:18, 05/02/2022 [^] [^^] [^^^] [ответить]
| –2 +/– |
Линус Торвальдс таки быдлокодер. Эндрю Таненбаум не даст соврать.
| |
|
3.68, Аноним (68), 06:02, 04/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
Java это С++--
Он сделан чтобы быть проще С++, чтобы решить многие его проблемы
| |
|
4.108, Michael Shigorin (ok), 18:39, 05/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
> Java [...] сделан чтобы быть проще С++
А мне-то казалось, что:
1) для выживания Sun в мире Wintel (не помогло);
2) для предсказуемого по времени -- чудовищного, но управляемого -- процесса разработки оравой (такое себе).
| |
|
5.115, x3who (?), 02:46, 06/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
Для выживания в мире энтерпрайза (он же сейчас чуть более чем везде в отличие от САНа), а на рилтайм там и не замахивались никогда.
| |
|
|
|
2.43, Аноним (-), 00:22, 04/02/2022 [^] [^^] [^^^] [ответить]
| +3 +/– |
> почему мир использует C только в системных утилитах, но не использует
Сотря в каком мире. В моем используется и аж бегом.
| |
2.44, Познавший дзен разработки на C (?), 00:53, 04/02/2022 [^] [^^] [^^^] [ответить]
| –5 +/– |
Идеальный язык для отстрела ног. Мамкины самоделкины и бОльшая часть "профессиональных" сишников считают его "кроссплатформенным ассемблером", а он таким не является с выхода ANSI C.
Поэтому когда вышеописанные люди пишут на Сях, корретный код у них может получиться только случайно.
Плюс к этому Си (как и его гибрид с паскалем golang) ужасно многословен.
Вот и получается, что сложные и объемные приложения на Сях это или сложные и нечитаемые нагромождения указателей на указателм на всякие GObject, и такой код получается жутко медленным, либо еще менее читаемые нагромождения макросов, но тут хотя бы производительность ничего такая. До первого UB, ломающего код собранный с -O1/-O2.
Бойтесь сишников с сишного кода в объемах от 10Kloc.
| |
|
3.98, Аноним (-), 12:07, 05/02/2022 [^] [^^] [^^^] [ответить]
| +3 +/– |
Ну не осилил ты структурировать код на Си. Зачем ты обобщаешь свой негативный опыт на других?
| |
|
2.47, Аноним (47), 01:14, 04/02/2022 [^] [^^] [^^^] [ответить]
| +13 +/– |
В основном, потому что в других местах скорость разработки важнее скорости выполнения. Всё зависит от задач. Я так понимаю, что вы спрашиваете, потому что никогда не разрабатывали в рамках MDM (Master Data Management). C, как впрочем и С++ - это сущий ад, когда приложения работает только с нормативно-справочной информацией.
Давайте представим себе что-нибудь совершенно простенькое. Например небольшую федеральную компанию хотя бы с 80 подразделениями по оптовой торговле, 150-ю розничными точками и собственным отделом логистики. И пусть в ней работает, пусть, 2000 человек. =) Наводящий вопрос. При разработке системы управления предприятием, которая занимается бухгалтерским, налоговым, управленческим, кадровым и складским учетом, строит OLAP-отчеты и так далее и тому подобное... вот вы про какие там указатели будете думать?
Люди пишут ОС на С, прикладной софт и куски юзерспейса, которым нужно ООП на С/С++, но когда дело доходит до MDM, автоматизации бизнес-процессов и потоковой обработки бизнес-данных народ используют чистые ООП-языки вроде C# и Java. Языки вроде PHP доросли до современного уровня не сразу, изначально PHP вообще мало что мог (версия 4), язык для быстрого клепания веб-страничек. Это потом он дорос до того, что из себя представляет. В принципе, на На C# и Java можно написать сайт, но там для этого целые отдельные пайплайны (JSP и ASP.NET).
С веб-ом то же самое, что и с MDM. Никто не запрещает писать CGI-приложения на С. Более того, их постоянно пишут для того чтобы ускорить выполнение того или иного вебсервиса на конкретном физическом сервере. Опять же, это всё внутреннее, серверное, спрятанное за двумя проксями. Это не маленький сайтик во внешнем интернете.
Язык С используется в системных утилитах только в современных Unix-подобных ОС. В Windows, например, на С написано только ядро и то только его основная часть (у этого ядра несколько другая архитектура, оно не совсем монолитное) юзерспейсная часть и системные утилиты на С++ и С#.
Язык программирования - это как иностранный язык. Вопрос не в том, насколько хорошо он устроен с точки зрения лингвистики и информатики, а в том, насколько хорошо ВЫ на нём думаете. Скажем так, лучше очень хорошо знать С# и Java чем плохо знать C и C++.
Обычно подобные вопросы возникают у студентов, которые только-только один язык выучили (ну как выучили, их пузырьком сортировать научили), сравнили с парочкой других и разыгралась буря в стакане... максимализм, синдром утёнка, ложное ощущение собственного превосходства и прочие неуместные эмоции, которые лучше бы прятать. С - это язык структурный и императивный язык, главной особенностью которого является возможность транслировать его в машинные команды напрямую. Идеального в нем ничего нет, наоборот, там одно сплошное "undefined behaviour". Вообще ничего идеального в мире не существует. В реальности все работает иначе, когда время разработки играет роль. На бизнес-задачах С проиграет почти всегда. С++ даст буст в скорости разработке при точечном применении, но там кодовую базу поддерживать - мучение. Нужны специально обученные люди на code review и запрет на использования 50% синтаксических конструкций. А если нужно и этого избежать, добавить переносимость, то вот вам и C# и Java. А если требуется только автоматизация и сценарии, то и они слишком низкоуровневые... и так далее.
А вообще, вы поймете сами, когда выучите хотя бы 5-6 языков на базовом уровне и возьмете по каждому хотя бы парочку реальных проектов. Вот задачка. Напишите мне реализацию удаленного вызова процедур, когда у вас есть 3 сервера. Вам по событию на первом нужно переслать объект (структуру, если так приятнее) на второй и вызвать там функцию. А второй сервер её обработает вам и пошлет данные обратно, но только при условии, если у вас есть авторизация. Авторизацию проводит третий сервер, он... Kerberos KDC. Или если такой сценарий сложный, можете написать RESTful-вебсервисами (но только чур на С, через CGI) и тогда у вас третий сервер будет авторизовывать по OAuth2. А если и это не подходит, то давайте SOAP и SAML, но только чур не тащить реализации XML-библиотек из Java. Обычно об этот вопрос сишники-студенты у которых всё остальное "быдло языки" быстро спесь и величие сбивают, когда за пару недель не способны ничего рабочего.
| |
|
3.51, Ordu (ok), 01:52, 04/02/2022 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Обычно об этот вопрос сишники-студенты у которых всё остальное "быдло языки" быстро спесь и величие сбивают, когда за пару недель не способны ничего рабочего.
Напомнило: http://catb.org/~esr/writings/unix-koans/ten-thousand.html
Сишников таким образом унижают давно, но они каждый раз утираются и продолжают то же самое. Впрочем, я соглашусь с гипотезой о том, что это не столько сишники, сколько недоучившаяся студентота.
| |
3.56, Аноним (57), 02:52, 04/02/2022 [^] [^^] [^^^] [ответить]
| +4 +/– |
Тот редкий случай, когда комментарий анонима в 100500 ценнее, чем комментарии всех зарегистрированных пользователей.
Для меня тут ничего нового нет, но, надеюсь, новички прочитают и проникнутся.
Спасибо!
// b.
| |
|
4.96, Аноним (-), 11:59, 05/02/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
Да это тот редкий случай, когда ты высоко оценил высер человека страдающего Жабой говоного мозга.
| |
|
3.97, Аноним (-), 12:06, 05/02/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
>Люди пишут ОС на С, прикладной софт и куски юзерспейса, которым нужно ООП на С/С++, но когда дело доходит до MDM, автоматизации бизнес-процессов и потоковой обработки бизнес-данных народ используют чистые ООП-языки вроде C# и Java.
Когда вы написали абревиатуру - "С/С++" с вами стало всё понятно. По сообщению, вы не умеете организовывать структурный код на Си? Критикуете людей пишущих на Си и которые не имея опыта, плохо организовывают структурный код на чистом Си?
| |
3.101, Vasyan2 (ok), 13:41, 05/02/2022 [^] [^^] [^^^] [ответить]
| +3 +/– |
А в едь можно было всего лишь сказать:
"на С писать долго а ынтырпрайзу нужна скорость"
| |
3.106, anonimous (?), 17:26, 05/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
> А если и это не подходит, то давайте SOAP и SAML, но только чур не тащить реализации XML-библиотек из Java
20 Using the XML Parser for C - Oracle Help Center
https://docs.oracle.com › ADXDK › adx_c_parser
The Oracle XML parser for C reads an XML document and uses DOM or SAX application programming interfaces (APIs) to provide programmatic access to its ...
| |
|
2.81, Аноним (81), 16:57, 04/02/2022 [^] [^^] [^^^] [ответить] | +/– | Ты хотел спросить почему все еще до сих пор не пишут на SPARK Спрос зависит от ... большой текст свёрнут, показать | |
|
1.71, Аноним (71), 08:50, 04/02/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Что это ещё за Restartable Sequences (rseq). Вчера полдня читал, пытался понять как в коде использовать.
Может кто скинуть примеры в коде на С / C++, желательно без ассемблерных вставок.
| |
1.72, lockywolf (ok), 09:25, 04/02/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
>Объявлен устаревшим и будет удалён в следующем выпуске механизм prelink и связанные с ним переменные окружения LD_TRACE_PRELINKING и LD_USE_LOAD_BIAS.
Что в нём было не так? Знал людей, которые им активно пользовались.
| |
1.80, Аноним (81), 16:47, 04/02/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> Добавлена символическая ссылка /usr/bin/ld.so.
Давайте сделаем черный и белый список дистрибутивов:
cp $(which ls) ${TMP}
/usr/bin/ld.so ${TMP}/ls
или
/lib/ld-linux.so ${TMP}/ls
или где оно у вас там лежит и как называется...
Если команда выдает ошибку - в белый список.
Если команда выполняется - заносим диск в черный список.
> Для приложений, компилируемых с Glibc и GCC 12+, реализован режим защиты "_FORTIFY_SOURCE=3", выявляющий возможные переполнения буфера при выполнении строковых функций, определённых в заголовочном файле string.h.
Кому и зачем теперь еще нужны проги на Rust?
| |
|
2.84, Аноним (20), 18:36, 04/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
Не понял, ты хочешь скрипты сломать? Типа, дистрибутивы из белого списка это где ничего не будет работать? Такими только хомячки пользоваться будут, вон хромос например.
| |
|
3.85, Аноним (85), 19:21, 04/02/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
ld не скрипты запускает, а бинарники!!!
Да:
В белом списке - те дистры где, в установке по умолчанию, левые бинари система не запустит, никак.
В черном списке - те дистрибутивы где, в установке по умолчанию, пользователь может каким-то способом запустить левый бинарь.
Это самый низкий уровень безопасности для ОС - C1. Даже некоторые первые UNIX ему удовлетворяли. А большинство _лину_псов_, сегодня, в установке по умолчанию, оставляет пользователю возможность запускать всякую принесенную бинарную дрянь.
| |
|
4.87, Аноним (20), 20:02, 04/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
Скриптам нужно скачивать и компилировать свои бинари… Это в любой ОС так, не только в линуксе, если хочешь чтобы приложение установилось будь любезен запусти бинарь в каталоге временных данных. Если конечно пользователь в принципе не должен запускать бинари, там уж лучше проверять что весь софт подписан нужным ключом и ключ пользователя имеет полномочия на запуск этого софта.
| |
|
5.89, Аноним (85), 20:19, 04/02/2022 [^] [^^] [^^^] [ответить] | +/– | Скриптом скачать сможешь Если есть права запустить компилятор, то даже скомпили... большой текст свёрнут, показать | |
|
6.90, Аноним (20), 21:24, 04/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
Ну удачи стим под рутом запускать. К стиму то особых претензий нет конечно (хотя веб браузер со свободным доступом в интернет под рутом крутить такое себе), но вот софт там бывает очень разный в нём. С сегодняшними все эти требования это не реально, приложения это шляпа запускаемая в электроне и она должна свободно обновляться или же будут проблемы. А доступ к ptrace и прочему необходим на девелоперских тачках, так что тоже не обрежешь способность вмешиваться в соседние приложения.
| |
|
7.92, Аноним (92), 08:48, 05/02/2022 [^] [^^] [^^^] [ответить] | +/– | Вот именно для этого и вношу предложение вести черный и белый список дистрибутив... большой текст свёрнут, показать | |
|
|
|
|
|
|
1.93, Аноним (68), 09:16, 05/02/2022 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
'уязвимость в функции realpath(), вызванная возвращением при определённых условиях некорректного значения, содержащего неочищенные остаточные данные из стека.'
Компилятор java и даже typescript не дадут читать из неинициализированных во всех ветках условия переменных.
Хотя конечно местные иксперты это быдлоязыки для макак.
| |
|
2.104, Аноним (104), 14:30, 05/02/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
Для ASLR система с разделяемыми библиотеками будет иметь большую рандомизацию.
Линковка с asneeded добавит только нужные либы.
Лучше иметь хорошо вылезаные общие стандартные библиотеки чем в каждой проге писать свои велосипеды:
Стандартная библиотека C: glibc
Стандартная библиотека для авторизации: pambase
Стандартная библиотека для сети: tcpd почему ее забросили?!!
...
Время разработки уменьшается, качество выше.
Проблемы с безопасностью есть когда дистры используют одновременно и статическую и динамическую линковка. При правильном использовании только динамической линковка проблем с безопасностью не будет, а тормоза не большие.
| |
|
3.121, n00by (ok), 08:04, 06/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
>> so никаким образом не уменьшают расходы рамы - это протухший миф.
> Неся полную ахинею, Вы не потрудились хоть как-то её обосновать.
> Откройте для себя да хотя бы smem(8) -- что забавно, написанный как
> раз на питоне:
>[CODE]NAME
> smem - Report memory usage
> with shared memory divided proportionally.
>[/CODE]
Попробую за него.
#include <iostream>
int main() {
std::cout << "Hello!";
}
Результирующий исполняемый файл связан с:
libstdc++.so.6 (~2000 килобайт)
libm.so.6 (~700 килобайт)
libgcc_s.so.1 (~90 килобайт)
libc.so.6 (~1500 килобайт)
ld-linux-x86-64.so.2 (~200 килобайт)
Итого, грубо, 4,5 Мегабайт.
Вот тут https://code.google.com/archive/p/ontl со смертью Гуглокода сломалось форматирование, но видно "24.5 Kb exe file".
Пример импортирует только ntdll, значит аналог в Linux вообще может обойтись без библиотек.
То есть разделяемые библиотеки весят как сотня-другая Хелловордов.
---
Второй момент - время инициализации библиотек. Вот я когда-то сравнивал Хелловорд на OCaml (первый вариант - интерпретатор без зависимостей), погрешность измерения зашкаливает, но представление получить можно:
$ time ./microcaml
Hello World!
real 0m0,002s
user 0m0,002s
sys 0m0,001s
Оригинальный интерпретатор:
$ time ocamlrun test/hello
Hello World!
real 0m0,007s
user 0m0,003s
sys 0m0,004s
Скомпилированный в машинный код вариант:
$ time test/hello.elf
Hello World!
real 0m0,005s
user 0m0,001s
sys 0m0,004s
| |
|
4.130, Аноним (100), 13:39, 07/02/2022 [^] [^^] [^^^] [ответить] | +/– | Эникей, мне вот даже интересно Ладно, кому интересно - я поясню на методичку эт... большой текст свёрнут, показать | |
|
5.133, n00by (ok), 14:12, 07/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
> Как пример, если собрать вот это "#include <iostream>" в so, то оно
> будет весить бесконечность. Ладно, возьмём базовые типы - оно будет весить
> половину от того, что он там насчитал.
Я правильно понимаю, что ты готов собрать std::cout << "Hello!"; в исполняемый файл без зависимостей и вдвое меньше моих 25 кб, или у тебя ещё продолжается пятница и ты совершенно пьян?
| |
|
6.134, Аноним (100), 15:24, 07/02/2022 [^] [^^] [^^^] [ответить] | +/– | Во-первых я не знаю откуда ты родил эту чушь Во-вторых - это можно сделать, оче... большой текст свёрнут, показать | |
|
7.137, n00by (ok), 17:49, 07/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
> Во-вторых - это
> можно сделать, очевидно. Только iostream парашный мне даже трогать лень. Это
> мусорное дерьмо. Слишком сильно заморачиваться нужно.
Смотри, Петка, какая ситуация. Ты пришёл сюда, вывалил некие гипотетические выкладки. Якобы возможно, цитирую #100: "каждая программа будет использовать не просто только нужные ей функции, но эти функции будут адаптированы по месту, заинлайнены и прочее".
Теперь, что бы твои слова были похожи на правду, следует не растопыривать пальцы, а показать какие-то практические результаты. Как только я намекнул тебе на это, появилось слово "заморачиваться" и "лень", что как бэ намекает.
Если же ты протрезвеешь и внимательно прочтёшь моё сообщение дальше тех цифр, что тебя бомбанули, ты увидишь там ссылку на std::cout << "Hello!", который собран в исполняемый файл размером в 25 кб, без зависимостей и лишних функций, вот как в твоей цитате.
Но есть один нюанс - этот практический результат - мой.
Тебе всё понятно в этом моём сообщении, или опять стоит что-то разжевать?
| |
|
8.138, Аноним (100), 17:59, 07/02/2022 [^] [^^] [^^^] [ответить] | +/– | Нет, дошколёнок Зачем мне копаться в бездарном дерьме Я тебя просто пошлю соби... большой текст свёрнут, показать | |
|
9.139, n00by (ok), 18:19, 07/02/2022 [^] [^^] [^^^] [ответить] | +/– | Если ты хочешь, что бы я воспринимал тебе всерьёз, тебе следует не молоть языком... текст свёрнут, показать | |
|
|
|
|
|
|
3.123, Аноним (123), 12:28, 06/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
С какими опциями ALT Linux линкует пакеты, и какие опции компилятора?
Все ли линкуется динамически?
| |
3.128, Аноним (100), 13:25, 07/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
>Неся полную ахинею, Вы не потрудились хоть как-то её обосновать.
Всё было. Непонятно только зачем, зачем эникей пытается со мною спорить?
>Откройте для себя да хотя бы smem(8) -- что забавно, написанный как раз на питоне:
И что же я там увижу? Поподробнее.
>Это был каминаут сторонника небинарности вместо логики, что ли?
Это был "каминаут" не раба, за которого хозяин решает как и что его собирать. Поэтому нет смысла рассуждать о чём-то эникею, который не способен сидеть на чём-то кроме блобов.
>Вы ни разу не в теме, но позволяете себе обобщать чрезмерно. Зачем?
Ни разу ни в теме рандомный эникей. Ну ладно, пусть эникей покажет не-роллинг? Покажет пару диструбутивов? И он так же сможет рассказать почему и зачем с бинарном мусоре нужно версионирование?
| |
3.129, Аноним (100), 13:30, 07/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
Ладно, мне лень спорить с тутошними эникеями блаженными. Ставлю мат в два хода.
>уроки любители статически линкануться
Задача эникею номер раз - сообще о том, где я говорил о какой-то "статически линковаться"? Бот заучил пару методичек и пытается подменять мои тезсы?
>Кому интересно -- см. про chrooted, реализованный в альте более двадцати лет как
Теперь данный эникей, пойдёт и получит реальный список сисколов, который может вызывать программа. При этом эникею ненужно ничего писать - не его это дело. Просто пусть расскажет, как его мусор это может, а если не может - пусть эникей расскажет о том, как он это сможет.
| |
3.131, Аноним (100), 13:57, 07/02/2022 [^] [^^] [^^^] [ответить] | +/– | Заодно объясню людям, почему эти эникей-овощи несут херню в контекте той же скор... большой текст свёрнут, показать | |
3.132, Аноним (100), 14:00, 07/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
Кстати, ещё одно. Дело в том, что любая сошка - это тысячи косвенных вызовов. А данный овощ у нас бегает и рассказывает про эльбрус. И если суперскаляр ещё хоть как-то может компенсировать жопу вызываемую сошками, то вот эльбрус нет.
Пусть данный овощ подойдёт и спросит у дядей про so, косвернные вызовы и прочее. Т.е. данный овощ не только маздайщик, но и засланец интела. Хотя шифруется он под других.
Но невежество оно такое. Асолютно неважно что какой-то овощ "думает" и как себя идентифицирует - он жертва пропаганды. Он адепт влияния хозяина, который внедрил в его пустую черепушку эту херню.
| |
|
|
1.113, Аноним (-), 21:57, 05/02/2022 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Как эта сучья либц надоела, неужели так трудно сделать набор из 30 функций и больше НЕ ТРОГАТЬ ! Никогда не трогать. И тогда расцветет сад вокруг.
| |
|
2.120, Аноним (-), 07:44, 06/02/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
Твой код написанный 10 лет назад перестал на современных и модных дистрибутивах динамически линковаться?
| |
|
|
|
3.136, Какаянахренразница (ok), 17:37, 07/02/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
> А использовать операторы сравнения в коду это так трудно?
Мне бывает нужно вернуть не просто результат сравнения, а наименьше/наибольшее число, причём не всегда из двух и не всегда из целых. Поэтому макросы, вариадические функции и вот это всё.
| |
|
|
|