URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 129581
[ Назад ]

Исходное сообщение
"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реализована поддержка сигналов"

Отправлено opennews , 23-Янв-23 10:27 
Для включения в состав ядра Linux предложены изменения, расширяющие возможности  стандартной Си-библиотеки nolibc, входящей в состав исходных текстов ядра Linux (tools/include/nolibc). В случае принятия изменений библиотека будет расширена средствами для обработки сигналов, включающими функции sigaction() и signal()...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=58532


Содержание

Сообщения в этом обсуждении
"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 10:27 
Теперь выражение "линукс это просто ядро" можно забыть. А говорящим - давать ссылку на эту новость. Линукс это не только ядро, но ещё и стандартная си библиотека!

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 10:39 
Бред написал? Тебе никто не запрещает взять ядро, как есть, а все остальные библиотеки написать на языке Модула-2.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 11:26 
> а все остальные библиотеки написать на языке Модула-2

А на bash можно?


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 11:39 
Если ты перепишешь баш на модулу-2 то у тебя есть моё лично разрешение.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 14:12 
А, собственно, интерпретатор языка Bash тогда на чём? Bash на bash? :)

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 21:09 
А вы когда компилятор Си запускаете, у вас тоже вместо бинарника в /bin/gcc код Си текстом лежит?

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено InuYasha , 24-Янв-23 13:45 
Ты разницу между интерпретатором и компилятором понимаешь?

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 18:21 
> А на bash можно?

Покажи как ты из него системные вызовы дергать намерен.


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 21:44 
Ну библиотечные вызовы без проблем: https://github.com/taviso/ctypes.sh

А далее в С-библиотеке (в той же glibc есть) определена универсальная обертка syscall(), которую можно дернуть. Впрочем, конечно удобнее если есть обертки конкретных сисколлов. Вон http-сервер на баше даже sendfile() использует, очень эффективно работает :D - https://github.com/cemeyer/httpd.sh


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 23:48 
> Ну библиотечные вызовы без проблем: https://github.com/taviso/ctypes.sh

Ух ты, эти мсье знают толк в извращениях! Вот так при помощи клея и такой-то матери можно сделать из буханки хлеба^W^W баша прямо питон какойто.

> А далее в С-библиотеке (в той же glibc есть) определена универсальная обертка
> syscall(), которую можно дернуть.

Это круто, конечно, но если мы юзали сабж то наверное glibc был последним что мы хотели бы использовать. Иначе зачем мы все вон то затевали?!


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 18:35 
Любители systemd-free этим занимаются на постоянной основе.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 15:24 
Модула-2 - мёртвый язык используемый только на госпредприятии России. Создатель языка Модула-2 Никлаус Вирт ещё 1980-х гг. заменил её на новую версию - Оберон. Сейчас вроде Оберон-7 актуален.

Мда-а канифоль, ковёр на стене, стенка, люстра, норковая шапка, ламповый чёрно-белый телевизор, дача, стометровые очереди за хлебом... Ужас!


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 15:58 
цикорий вместо кофе в железной банке

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 19:56 
> цикорий вместо кофе в железной банке

+

Когда делали хлеб в муку добавляли опилки и бумагу.


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 24-Янв-23 01:43 
А сейчас "опилки и бумагу" добавляют в колбасу и сосиски

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Омномним , 24-Янв-23 10:09 
Ну вот не надо мне тут.
Белковая эмульсия же.
Кости, кожа, гнилое и тухлое мясо, крыски, проспавшие подъём, и прочие радости жизни.
Температура и давление решают.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено InuYasha , 24-Янв-23 13:47 
Сумасашол? Бумага нынче - дефицит!

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 26-Янв-23 16:08 
> Сумасашол? Бумага нынче - дефицит!

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


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 24-Янв-23 17:33 
Пальмовое масло.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 18:38 
Раз в состав GCC добавляют, значит, живее Оберона. И уж точно не именно для госпредприятий России.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено U202204161753 , 23-Янв-23 18:50 
Если "коротенько, минут на 40", то в Modula-2, Oberon -ах более-менее полных и в Oberon-07 масса тонких отличий.

Поэтому, ничего из списка не способно заменить другое физически.


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 19:43 
Садись два. Виртовкий Паскаль ---> Модула ---> Модула-2 ---> Оберон. У С++ со времени его появления отличий будет поболее.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено U202204161753 , 23-Янв-23 20:21 
Версию от Н.Вирта я знаю. Тем не менее, это теория.

Я же изложил практику.

P.S. "Поболее или поменее" отличий вообще неважно: достаточно одного


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 21:58 
> дача, стометровые очереди за хлебом... Ужас!

Это ты очередь за шкафами или вообще любой мебелью забыл. На дни, если не месяцы, с перекличками в означенное время и вычеркиванием лузеров которые выбыли/забили. А уж как шкафы завезли, там прямо зерг раш начинался.


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 16:26 
Ты видимо шутку не понял, как и ещё 7 человек.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 11:51 
Линукс все еще просто ядро, к-е не слинковано ни с какой динамической библиотекой. Потому что чтоб слинковать ядро динамически, UEFI должен уметь в линуксовый ldconfig. А то что там в архиве идёт какая-то nolibc - дак пофиг.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено ryoken , 23-Янв-23 12:17 
Поясните, с целью повышения уровня образованности... А с какого боку тут вообще UEFI?

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено YetAnotherOnanym , 23-Янв-23 12:38 
Мсье, по-видимому, намекает, что перед тем, как передать управление ядру, загрузчик должен будет не просто загрузить в память само ядро, но также найти и загрузить в память все необходимые .so'шки.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 14:59 
именно

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 18:24 
Слышьте, системные гениусы, ядро не зависит от внешних .so'шек. Как максимум может расширять себя модулями - но UEFI понятия не имеет как их грузить и это уже ядро само грузит. Когда запустится. По этой причине initrd бывает, на случай если для нормальной работы / надо драйвер, например, блочного устройства сначала вгрузить. Единственное что при этом надо знать EFI или любому иному бутлоадеру - как ядру initrd отдать.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 18:42 
Мы знаем, что не зависит и не может зависеть. Потому что в противном случае эти либо кто-то должен сначала выгрузить.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 21:43 
>ядро не зависит от внешних .so'шек

Одно точно зависит, только не от сошек, а от Mach.


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 15:03 
А кто линковать тогда будет ядро с библами? Никогда не думал почему ядро имеет свои собственные strlen, kprintf, memset, etc вместо юзания их из libc? Потому что кто-то должен загрузить эти библы в память перед стартом ядро. Поэтому ядро один большой блоб без внешних библ, потому что некому линковать эти библы.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено anonimus_debilimus , 23-Янв-23 17:39 
Может стоило иметь один kdlopen() а остальное самому загружать?

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 21:14 
А зачем? Так код ядра сам себе самодостаточный. Скачал, скомпилировал, закинул на флешку - работает.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 24-Янв-23 04:16 
> Может стоило иметь один kdlopen() а остальное самому загружать?

Вы только что изобрели initrd, с той разницей что линуховое ядро все же не настолько своей жизнью живет и поэтому модули ему находит и читает все же modprobe/insmod какой, а кернел только парсит регион памяти отдаваемый ядру через init_module(), так что более продвинутые вещи все же прерогатива insmod какого, чтоли.


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 12:28 
Линукс это ядро и минимальная libc библиотека

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Neon , 24-Янв-23 05:50 
Т.е. гвоздями прибито к С-ной либе.))) Классная архитектура. Хорошо хоть не к Basic'у как Спеки)))

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Омномним , 24-Янв-23 10:11 
Ты не поверишь - любой статически собранный бинарник гвоздями прибит к C-ной либе.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Омномним , 24-Янв-23 10:12 
(ну, любой статически собранный бинарник из кода на C, конечно же)

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 27-Янв-23 23:16 
> Ты не поверишь - любой статически собранный бинарник гвоздями прибит к C-ной либе.

Ну расскажи это mirai, которому как раз наплевать какая там системная либа, лишьбы линуксом было. Сорц этого нечто можно на гитхабе посмотреть. Единственное что ему интересно - это должен быть линукс. А что общего с сабжем? Оно тоже подобие libc через сисколы делает внезапно.


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Омномним , 28-Янв-23 00:17 
Какое-то очередное ненужно?
Первый раз слышу это название, видимо область применения очень и очень узкая.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено tim2k , 23-Янв-23 14:14 
Линукс нонче - это ведро и systemd.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 17:20 
Если бы. К сожалению ретрограды норовят затащить ещё протухшие портянки и прочий шлак.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 21:45 
>ещё протухшие портянки

sd-позитивный фетишист объясняет для других на своём языке?


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 24-Янв-23 11:46 
Ну ничего, такими темпами скоро в systemd вкорячат ядро и заживете, хипстеры.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Омномним , 23-Янв-23 10:45 
Ну, да, запихать всё необходимое для минимальной init-подсистемы прямо в ядро, возможно вместе с таковой в будущем - разумная идея. Для эмбедовки очень пригодится.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено КО , 23-Янв-23 12:02 
Такая же разумная как зонды от всех копрорастов и драйвера для Wireguard.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 17:21 
Если бы ты хоть немного понимал в системном программировании, то понял бы, что единственно возможный вариант.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 24-Янв-23 03:46 
Вообще-то ембедовка - реальная, а не как в современных роутерах, где полноценный mips, который помощнее тех 80486 будет, - это как правило один блоб, в котором вообще всё.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Омномним , 24-Янв-23 10:13 
Блоб как правило структурный, даже у RTOS'ов.
Времена неструктурных "на раз" сляпанных блобов почти ушли.
Встречается только в случае совсем уж fixed-function эмбедовки.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 24-Янв-23 02:34 
> Ну, да, запихать всё необходимое для минимальной init-подсистемы прямо в ядро, возможно
> вместе с таковой в будущем - разумная идея. Для эмбедовки очень пригодится.

Ну да. Например kexec boot так наверное забавно делать. При этом в отличие от абы каких бутлоадеров при этом есть вся мощь линуха.


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Омномним , 24-Янв-23 10:14 
Вот да, второе применение - жЫрные дебаг и kexec.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 11:39 
Кто-нибудь знает "некостыльное" применение sleep? Не надёжнее ли следить за завершением какого-либо процесса через pid?

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 12:10 
> Не надёжнее ли следить за завершением какого-либо процесса через pid?

какой pid скажет тебе когда подключенное USB устройство готово к обмену ?


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено YetAnotherOnanym , 23-Янв-23 12:34 
А какой там у ядра PID, согласно народной традиции?

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 14:19 
> А какой там у ядра PID, согласно народной традиции?

не все драйверы в ядре?

https://en.wikipedia.org/wiki/Libusb


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 24-Янв-23 00:04 
> А какой там у ядра PID, согласно народной традиции?

Изначально в линуксе все начинается с ядерного треда, его PID = 0 вроде бы номинально. Потом он кроме всего прочего создаст еще один, который уже PID = 1, он попытается стать вашим init'ом.

Но это не конец истории. Во первых есть такая штука как kthreadd. Обычно он садится на PID=2, хотя является ли это каким-то жестким requirement - черт знает, сорц смотреть надо. Как можно догадаться из названия, это - как инит, но для тредов кернела. Треды ядра считаются запущенными им, он их "parent pid" для всего что важно.

Ах да, из всего этого следует что ядро так то threaded и может запускать треды. Какой там у них PID будет? Да любой валидный. Это мало чем хуже обычного процесса. Ну разве что исполняемого файла нет (линк на образ исполняемого в proc не работает) и убить стандартным способом нельзя.

Если этого показалось мало, есть еще такая штука как kworker. На самом деле довольно забавная штука, используется для дефера тяжелых операций в фоновые воркеры. Те кому в ядре надо тяжелые операции пульнуть могут зарегистрировать это в воркере и отвалить по быстрому. А вот это добро потом в фоне отпедалит запрошенное. Так то довольно продвинуто, для ядра то, такому то сервису и апликушник высокоуровневый позавидует иной раз.

Ну вон ps -AF какой рисует ядерные тредики не как processname а как [processname], квадратные скобки хинтят что это принадлежит ядру. Так что если вы хотели все его PID познать - да вот, изучайте. Ну там ps -AFH вам в руки (это еще и иерархически, показывает что треды ядра под kthreadd живут например).


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено YetAnotherOnanym , 24-Янв-23 13:21 
> Изначально в линуксе все начинается с ядерного треда, его PID = 0
> вроде бы номинально.

Вот-вот, я именно его имел в виду. Дождаться завершения PID=0, чтобы определить готовность USB-устройства - эта идея мне нравится.


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 27-Янв-23 23:18 
Он по моему уже не существует на момент старта инита, так что "condition always true, optimize out". А коли так - считайте что usb девайс всегда доступен, с дельфистов пример берите!

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 24-Янв-23 00:05 
> какой pid скажет тебе когда подключенное USB устройство готово к обмену ?

sleep это тоже не подскажет сам по себе :)



"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 24-Янв-23 10:34 
> sleep это тоже не подскажет сам по себе

он используется по прямому назначению - задержка в многозадачной среде исполнения в ожидании готовности устройства


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 24-Янв-23 20:33 
> он используется по прямому назначению - задержка в многозадачной среде исполнения в
> ожидании готовности устройства

Тут кмк от деталей все сильно зависит, usb устройства разные бывают. Но вообще есть и менее дурацкие способы отлова наличия нужного девайса. Начиная с рулесов udev допустим, когда тот сам желаемую программу позовет по факту "обнаружен девайс VID:PID такой-то". Можно serial или что там еще взять.

Я так себе сделал /dev/board0 допустим для вон той платки. Или /dev/china-crap для кетайского сериального шнурка (crap за глючность его чипа). Ну, как появляется так с ним что-то и делается.


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 25-Янв-23 09:38 
> дурацкие способы отлова наличия нужного девайса

я не про это говорил. Послал ты уже обнаруженной по USB китайской платке команду стереть флешь память - какой удав тебе скажет что процесс завершён и можно следующую команду слать ?  только ждать определённое время - sleep/usleep в зависимости от команды.


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 26-Янв-23 16:11 
> я не про это говорил. Послал ты уже обнаруженной по USB китайской
> платке команду стереть флешь память - какой удав тебе скажет что
> процесс завершён и можно следующую команду слать ?

В моих протоколах мне это ACK-пакет говорит, репортящий статус операции. А, чо, так можно было. Заодно если что-то пошло не так это еще и репортить нехило бы, потому что отдать кастомеру заглюченый девайс - ведет к куче проблем и затрат у всех в этой цепочке.

> только ждать определённое время - sleep/usleep в зависимости от команды.

Это что-то совсем уж донный уровень инженерии. Даже для китайцев.


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 26-Янв-23 17:10 
> Это что-то совсем уж донный уровень инженерии. Даже для китайцев.

подозреваю у тебя просто отсутствует опыт

https://gitlab.com/dfu-util/dfu-util/-/blob/master/src/porta...

https://gitlab.com/dfu-util/dfu-util/-/blob/master/src/main....

https://gitlab.com/dfu-util/dfu-util/-/blob/master/src/dfuse...

и тд


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 27-Янв-23 23:26 
Чего сказать то хотели?
Мои протоколы либо успешно прошивают девайс тем что задумано, либо это валится с диагностикой что не так. И мне такое поведение вполне нравится. При том это не обязан быть USB. Хотя по нему тоже так можно. А в чем прикол? Мне не нравятся заваленые апдейты и левак прошитый в устройства, равно как и отсутствие диагностики что не так. Если вы хотели сказать что г@вняная работа прошивалок это так и задумано - вот я и пожелаю вам удачных обновлений ваших фирмварей.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 31-Янв-23 10:22 
> Мои протоколы либо успешно прошивают девайс тем что задумано, либо это валится с диагностикой что не так.

ваши протоколы никто не видел, а DFU отлично работает везде, от микроконтроллеров до SoC c UDC на u-boot и любой хостовой ОС.


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 21:29 
wait, waitpid, а если нужно из этих функций по тайм-ауту выйти, то они прерываются сигналами. Если нужно просто заблочить исполнение программы, пока child не вернёт статус, то хватит и просто этих двух функций. Если вам нужен таймаут, но не нравятся сигналы, то можно просто через kill(pid, 0) проверять, существует ли такой pid (костыльный метод, т.к. pid может быть не того процесса, который ожидался, но мне лень сейчас придумывать другой), а в качестве функции сна лучше юзать nanosleep вместо usleep (если нужны тайминги меньше секунды), т.к. я заметил, что usleep как-будто в busy-waiting сидит и жрёт процессор, когда nanosleep не жрёт ничего и выдаёт сумасшедшую точность на обычном десктопном процессоре (я так себе часики в статусбарной самописной приложухе для dwm подкручиваю, чтобы секунды тикали именно когда они должны тикать, а не накапливали ошибку и потом перепрыгивали через одну секунду).

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 24-Янв-23 10:31 
> в качестве функции сна лучше юзать nanosleep вместо usleep (если нужны тайминги меньше секунды), т.к. я заметил, что usleep как-будто в busy-waiting сидит

перепиывал недавно пару открытых проектов, нужна была кросскомпиляция mingw под венду - usleep для венды есть в отличии от nanosleep


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 24-Янв-23 00:10 
> Кто-нибудь знает "некостыльное" применение sleep?

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

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

Вопрос: а нам точно надо знать нажатие эникей с чуть не микросекундной точностью? Или плюс-минус сотня миллисекунд которые юзер даже не увидит - не так уж и страшно? Ну полсотни, точно не увидит. А вот тут можно воткнуть sleep() в цикл и он таки будет каждые 50 миллисекунд чекать не нажал ли юзер эникей. А может и что еще. Основательно разгрузив систему от постоянного поллинга с максимальной скоростью.

Пример несколько условный и не является руководством к действию но дает понять в чем прикол. Программа жрущая ядро проца в полку на ожидание чего-то совершенно не рулит. А тут мы сигналим операционке что в принципе не особо торопимся, можно поспать, проц отдайте другим программам на это время.


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено www2 , 24-Янв-23 06:05 
Настраиваешь обработку сигналов и засыпаешь. А что ещё делать, если тебе нужно дождаться поступления сигнала? Только спать.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 11:40 
Круто что они сконцентрировались только на актуальных архитектурах. Иначе бы это сильно раздуло код.

Кто сравнивал размер с минимальным musl?


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аночик , 23-Янв-23 12:24 
745K янв 23 11:20 hello-glibc
25K янв 23 11:22 hello-musl

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 12:25 
Когда современное ядро снова на дискету помещаться начнет?

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 12:33 
Какая дискета? Магнито-оптическая?

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 13:14 
Обычная гибкая магнитная 3.5" дискета на 1.44 МБ.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 13:22 
Но обычная магнитная дискетка - это 5.25" на 180 KiB. А 3.5" на 1.44 МБ - это 3.5", двухсторонняя и к тому же ещё и двойной плотности.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 13:50 
Если обычная 5.25", почему в начале этого века они не продавались? Ни разу не видел USB FDD дисковод на 5.25". Прикольный бы девайс был.
Один немец создал прототип: https://www.youtube.com/watch?v=Bjd2jSHBw7E

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 14:33 
Потому что в любом магазине был USB-FDD адаптер бери и пользуйся. И шлейфов было полно которые и на 3.5 и на 5.25 приводы одновременно.  Ох молодежь всё бы им чтобы было с USB из коробки.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Омномним , 23-Янв-23 23:59 
Чего.
Обычная магнитная дискетка - это 8" на чуть менее 80 кило :D

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Омномним , 24-Янв-23 00:00 
А 3.5 там ещё и на 2.88 были

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено InuYasha , 24-Янв-23 15:03 
Ещё были приводы которые могли дискету форматнуть в 30МБ и крутить её на бешенной скорости, приводя к быстрому износу. ls-120, вроде.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Омномним , 28-Янв-23 00:22 
LS-240, были такие.
Дело там не в скорости было, там запись диска получалась однократной - для любого изменения приходилось переписывать целиком.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 12:51 
А зачем тебе современное? Бери дискету с QNX, добавь драйвера устройств, нашиши или портани нужные программы и пользуйся.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 13:05 
В современном ядре старые баги исправлены, новые добавлены.
QNX - не вариант, проприетарщина.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 14:34 
С чего это QNX вдруг стал не современным?

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 13:41 
Но для чего? Разьема FDD уже давно нет на материнках.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 13:43 
Разъема )))

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Олег , 27-Янв-23 23:02 
Разъёма ))).

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 13:52 
Загрузочные CD/DVD диски эмулируют дискеты.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Омномним , 24-Янв-23 00:08 
Не совсем дискеты. IDE FDD, вкривь-вкось, можно пихнуть необычную геометрию.
Ну и да, в El Torito это не обязательно FDD, можно HDD. Причём с LBA.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 24-Янв-23 00:14 
> Загрузочные CD/DVD диски эмулируют дискеты.

Да они и HDD эмулируют не хуже.


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 14:20 
Зачем? Современная дискета - это флешка. Ну ещё с натягом - DVD-RW.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Брат Анон , 23-Янв-23 19:45 
Нука: запрети аппаратно запись на флешку? Слабо магнитом инфу с флешки стереть?

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 21:09 
> Нука: запрети аппаратно запись на флешку?

У меня флеха с readonly свичом есть. Прекрасно работает, становится ридонли.


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено 5к , 25-Янв-23 09:16 
с чего угодно стереть можно камнем, главное ударить посильнее

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 26-Янв-23 16:13 
> с чего угодно стереть можно камнем, главное ударить посильнее

Этот неандерталец совсем ниасилил микроволновки...


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Гипероним , 27-Янв-23 22:27 
Просто бил недостаточно сильно, видать

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 27-Янв-23 23:28 
> Просто бил недостаточно сильно, видать

Тяжелая, небось, поди еще попади по мелкой флешке таким ящиком :)


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено whoami , 23-Янв-23 17:01 
Оно помещается (примерно 500 кб в минимуме). См. Floppinux.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Mickey_Mouse , 23-Янв-23 17:19 
Куда дискета будет помещаться?

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Oldfan , 26-Июн-23 13:22 
в Gotek Floppy Emulator

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено YetAnotherOnanym , 23-Янв-23 12:32 
> dash, init и sleep

А Busybox? Busybox с ней собрать можно?


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 12:46 
а зачем эта обёртка? функционала системных вызовов недостаточно? в статье перечислены все те же функции, которые теперь зачем-то не будут системными вызовами, как в юзерспейсе.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 17:24 
Функционал - это пассивный содомит. А у системных вызовов - функциональность.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 22:20 
пассивный - это то, что постоянно заботит жителей этой страны

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено анонимомус , 23-Янв-23 15:57 
Ножно больше *libc

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 16:21 
Ручно больше *libc
Что это значит вообще?

Вариации с гениталиями по-крайней мере осмысленны:
***во больше *libc
*****то больше *libc
А другие конечности не работают.


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 23-Янв-23 22:22 
тебе нужно перестать бухать. посмотри на шиroрина в его 23 и увидишь, что будет с тобой через лет 20

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено pavlinux , 23-Янв-23 23:47 
Библиотеки - для девочек, только syscall(NR_*...), только хардкор!  

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 24-Янв-23 00:20 
> Библиотеки - для девочек, только syscall(NR_*...), только хардкор!

Тебя что, в сорц mirai сегодня занесло? Так то прикольный у них самоход получился - вот так вообще плевать какая либц и версия, лишь бы это вообще линуксом было. Специальный бонус - оно такое еще и компилится на дюжину архитектур. Или больше.

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


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 24-Янв-23 03:47 
>> Из ещё не реализованных возможностей упоминается отсутствие функций для сетевых операций и многопоточности, а также неполный набор функций string.h и stdlib.h.

Сеть, потоки и utf-8
Здравствуйте, 750kB


"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено Аноним , 24-Янв-23 20:36 
Можешь в сорце mirai позырить как сделать из сисколов сеть по минимуму. И никаких 750 кило там точно не было.

"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реали..."
Отправлено bOOster , 25-Янв-23 06:28 
Еще какой-то неосилятор posix решил "переписать", под соусом - "стильно, модно, молодежно". Прогресс во всей красе. Правда прогресс абсолютного бардака...