The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"В Си-библиотеке  nolibc, входящей в состав ядра Linux, реализована поддержка сигналов"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

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

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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 23-Янв-23, 10:27   –8 +/
Теперь выражение "линукс это просто ядро" можно забыть. А говорящим - давать ссылку на эту новость. Линукс это не только ядро, но ещё и стандартная си библиотека!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #2, #13, #19, #37

2. Сообщение от Аноним (2), 23-Янв-23, 10:39   +10 +/
Бред написал? Тебе никто не запрещает взять ядро, как есть, а все остальные библиотеки написать на языке Модула-2.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #7, #44, #49

3. Сообщение от Омномним (?), 23-Янв-23, 10:45   +13 +/
Ну, да, запихать всё необходимое для минимальной init-подсистемы прямо в ядро, возможно вместе с таковой в будущем - разумная идея. Для эмбедовки очень пригодится.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #14, #120

7. Сообщение от Аноним (7), 23-Янв-23, 11:26   +2 +/
> а все остальные библиотеки написать на языке Модула-2

А на bash можно?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #8, #36, #61, #64

8. Сообщение от Аноним (2), 23-Янв-23, 11:39   +9 +/
Если ты перепишешь баш на модулу-2 то у тебя есть моё лично разрешение.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

9. Сообщение от Аноним (9), 23-Янв-23, 11:39   +1 +/
Кто-нибудь знает "некостыльное" применение sleep? Не надёжнее ли следить за завершением какого-либо процесса через pid?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #15, #94, #115, #128

11. Сообщение от Аноним (-), 23-Янв-23, 11:40   +1 +/
Круто что они сконцентрировались только на актуальных архитектурах. Иначе бы это сильно раздуло код.

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #17

13. Сообщение от Аноним (46), 23-Янв-23, 11:51   +/
Линукс все еще просто ядро, к-е не слинковано ни с какой динамической библиотекой. Потому что чтоб слинковать ядро динамически, UEFI должен уметь в линуксовый ldconfig. А то что там в архиве идёт какая-то nolibc - дак пофиг.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #16

14. Сообщение от КО (?), 23-Янв-23, 12:02   –5 +/
Такая же разумная как зонды от всех копрорастов и драйвера для Wireguard.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #54, #121

15. Сообщение от Аноним (15), 23-Янв-23, 12:10   +/
> Не надёжнее ли следить за завершением какого-либо процесса через pid?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #22, #112

16. Сообщение от ryoken (ok), 23-Янв-23, 12:17   +3 +/
Поясните, с целью повышения уровня образованности... А с какого боку тут вообще UEFI?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #23, #43

17. Сообщение от Аночик (?), 23-Янв-23, 12:24   +/
745K янв 23 11:20 hello-glibc
25K янв 23 11:22 hello-musl
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

18. Сообщение от Аноним (18), 23-Янв-23, 12:25   +6 +/
Когда современное ядро снова на дискету помещаться начнет?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #21, #26, #31, #39, #50, #52

19. Сообщение от Аноним (19), 23-Янв-23, 12:28   +1 +/
Линукс это ядро и минимальная libc библиотека
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #126

20. Сообщение от YetAnotherOnanym (ok), 23-Янв-23, 12:32   +/
> dash, init и sleep

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

Ответить | Правка | Наверх | Cообщить модератору

21. Сообщение от Аноним (21), 23-Янв-23, 12:33   –1 +/
Какая дискета? Магнито-оптическая?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #29

22. Сообщение от YetAnotherOnanym (ok), 23-Янв-23, 12:34   +/
А какой там у ядра PID, согласно народной традиции?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #38, #111

23. Сообщение от YetAnotherOnanym (ok), 23-Янв-23, 12:38   +3 +/
Мсье, по-видимому, намекает, что перед тем, как передать управление ядру, загрузчик должен будет не просто загрузить в память само ядро, но также найти и загрузить в память все необходимые .so'шки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #42

25. Сообщение от Аноним (25), 23-Янв-23, 12:46   –1 +/
а зачем эта обёртка? функционала системных вызовов недостаточно? в статье перечислены все те же функции, которые теперь зачем-то не будут системными вызовами, как в юзерспейсе.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #56

26. Сообщение от Аноним (26), 23-Янв-23, 12:51   +4 +/
А зачем тебе современное? Бери дискету с QNX, добавь драйвера устройств, нашиши или портани нужные программы и пользуйся.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #28, #41

28. Сообщение от Аноним (18), 23-Янв-23, 13:05   +2 +/
В современном ядре старые баги исправлены, новые добавлены.
QNX - не вариант, проприетарщина.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

29. Сообщение от Аноним (18), 23-Янв-23, 13:14   +2 +/
Обычная гибкая магнитная 3.5" дискета на 1.44 МБ.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #30

30. Сообщение от Аноним (30), 23-Янв-23, 13:22   +2 +/
Но обычная магнитная дискетка - это 5.25" на 180 KiB. А 3.5" на 1.44 МБ - это 3.5", двухсторонняя и к тому же ещё и двойной плотности.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #33, #109, #110

31. Сообщение от Аноним (31), 23-Янв-23, 13:41   +/
Но для чего? Разьема FDD уже давно нет на материнках.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #32, #34

32. Сообщение от Аноним (31), 23-Янв-23, 13:43   +/
Разъема )))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #161

33. Сообщение от Аноним (18), 23-Янв-23, 13:50   +/
Если обычная 5.25", почему в начале этого века они не продавались? Ни разу не видел USB FDD дисковод на 5.25". Прикольный бы девайс был.
Один немец создал прототип: https://www.youtube.com/watch?v=Bjd2jSHBw7E
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #40

34. Сообщение от Аноним (18), 23-Янв-23, 13:52   +/
Загрузочные CD/DVD диски эмулируют дискеты.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #113, #116

36. Сообщение от Аноним (36), 23-Янв-23, 14:12   +/
А, собственно, интерпретатор языка Bash тогда на чём? Bash на bash? :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #91

37. Сообщение от tim2k (ok), 23-Янв-23, 14:14   +2 +/
Линукс нонче - это ведро и systemd.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #53

38. Сообщение от Аноним (15), 23-Янв-23, 14:19   +/
> А какой там у ядра PID, согласно народной традиции?

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

39. Сообщение от Аноним (36), 23-Янв-23, 14:20   –3 +/
Зачем? Современная дискета - это флешка. Ну ещё с натягом - DVD-RW.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #78

40. Сообщение от Аноним (2), 23-Янв-23, 14:33   +/
Потому что в любом магазине был USB-FDD адаптер бери и пользуйся. И шлейфов было полно которые и на 3.5 и на 5.25 приводы одновременно.  Ох молодежь всё бы им чтобы было с USB из коробки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33

41. Сообщение от Аноним (2), 23-Янв-23, 14:34   +2 +/
С чего это QNX вдруг стал не современным?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

42. Сообщение от Аноним (46), 23-Янв-23, 14:59   –1 +/
именно
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #62

43. Сообщение от Аноним (46), 23-Янв-23, 15:03   +/
А кто линковать тогда будет ядро с библами? Никогда не думал почему ядро имеет свои собственные strlen, kprintf, memset, etc вместо юзания их из libc? Потому что кто-то должен загрузить эти библы в память перед стартом ядро. Поэтому ядро один большой блоб без внешних библ, потому что некому линковать эти библы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #57

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #46, #65, #67, #99

45. Сообщение от анонимомус (?), 23-Янв-23, 15:57   +1 +/
Ножно больше *libc
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #47

46. Сообщение от Аноним (46), 23-Янв-23, 15:58   +1 +/
цикорий вместо кофе в железной банке
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #81

47. Сообщение от Аноним (-), 23-Янв-23, 16:21   +/
Ручно больше *libc
Что это значит вообще?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45 Ответы: #101

49. Сообщение от Аноним (1), 23-Янв-23, 16:26   +2 +/
Ты видимо шутку не понял, как и ещё 7 человек.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

50. Сообщение от whoami (??), 23-Янв-23, 17:01   +2 +/
Оно помещается (примерно 500 кб в минимуме). См. Floppinux.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18

52. Сообщение от Mickey_Mouseemail (?), 23-Янв-23, 17:19   +/
Куда дискета будет помещаться?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #169

53. Сообщение от Аноним (53), 23-Янв-23, 17:20   +/
Если бы. К сожалению ретрограды норовят затащить ещё протухшие портянки и прочий шлак.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #98, #142

54. Сообщение от Аноним (53), 23-Янв-23, 17:21   +1 +/
Если бы ты хоть немного понимал в системном программировании, то понял бы, что единственно возможный вариант.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

56. Сообщение от Аноним (53), 23-Янв-23, 17:24   +/
Функционал - это пассивный содомит. А у системных вызовов - функциональность.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #100

57. Сообщение от anonimus_debilimusemail (?), 23-Янв-23, 17:39   +/
Может стоило иметь один kdlopen() а остальное самому загружать?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43 Ответы: #93, #123

61. Сообщение от Аноним (-), 23-Янв-23, 18:21   +/
> А на bash можно?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #97

62. Сообщение от Аноним (-), 23-Янв-23, 18:24   +1 +/
Слышьте, системные гениусы, ядро не зависит от внешних .so'шек. Как максимум может расширять себя модулями - но UEFI понятия не имеет как их грузить и это уже ядро само грузит. Когда запустится. По этой причине initrd бывает, на случай если для нормальной работы / надо драйвер, например, блочного устройства сначала вгрузить. Единственное что при этом надо знать EFI или любому иному бутлоадеру - как ядру initrd отдать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42 Ответы: #66, #96

64. Сообщение от Аноним (64), 23-Янв-23, 18:35   –1 +/
Любители systemd-free этим занимаются на постоянной основе.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

65. Сообщение от Аноним (36), 23-Янв-23, 18:38   +1 +/
Раз в состав GCC добавляют, значит, живее Оберона. И уж точно не именно для госпредприятий России.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44

66. Сообщение от Аноним (46), 23-Янв-23, 18:42   +/
Мы знаем, что не зависит и не может зависеть. Потому что в противном случае эти либо кто-то должен сначала выгрузить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62

67. Сообщение от U202204161753 (?), 23-Янв-23, 18:50   +/
Если "коротенько, минут на 40", то в Modula-2, Oberon -ах более-менее полных и в Oberon-07 масса тонких отличий.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #77

77. Сообщение от Аноним (-), 23-Янв-23, 19:43   +/
Садись два. Виртовкий Паскаль ---> Модула ---> Модула-2 ---> Оберон. У С++ со времени его появления отличий будет поболее.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67 Ответы: #82

78. Сообщение от Брат Анон (ok), 23-Янв-23, 19:45   +2 +/
Нука: запрети аппаратно запись на флешку? Слабо магнитом инфу с флешки стереть?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #90, #154

81. Сообщение от Аноним (-), 23-Янв-23, 19:56   –1 +/
> цикорий вместо кофе в железной банке

+

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #119

82. Сообщение от U202204161753 (?), 23-Янв-23, 20:21   +1 +/
Версию от Н.Вирта я знаю. Тем не менее, это теория.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77

90. Сообщение от Аноним (-), 23-Янв-23, 21:09   +/
> Нука: запрети аппаратно запись на флешку?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78

91. Сообщение от Аноним (91), 23-Янв-23, 21:09   +1 +/
А вы когда компилятор Си запускаете, у вас тоже вместо бинарника в /bin/gcc код Си текстом лежит?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #147

93. Сообщение от Аноним (91), 23-Янв-23, 21:14   +/
А зачем? Так код ядра сам себе самодостаточный. Скачал, скомпилировал, закинул на флешку - работает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57

94. Сообщение от Аноним (91), 23-Янв-23, 21:29   +1 +/
wait, waitpid, а если нужно из этих функций по тайм-ауту выйти, то они прерываются сигналами. Если нужно просто заблочить исполнение программы, пока child не вернёт статус, то хватит и просто этих двух функций. Если вам нужен таймаут, но не нравятся сигналы, то можно просто через kill(pid, 0) проверять, существует ли такой pid (костыльный метод, т.к. pid может быть не того процесса, который ожидался, но мне лень сейчас придумывать другой), а в качестве функции сна лучше юзать nanosleep вместо usleep (если нужны тайминги меньше секунды), т.к. я заметил, что usleep как-будто в busy-waiting сидит и жрёт процессор, когда nanosleep не жрёт ничего и выдаёт сумасшедшую точность на обычном десктопном процессоре (я так себе часики в статусбарной самописной приложухе для dwm подкручиваю, чтобы секунды тикали именно когда они должны тикать, а не накапливали ошибку и потом перепрыгивали через одну секунду).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #140

96. Сообщение от Аноним (-), 23-Янв-23, 21:43   +/
>ядро не зависит от внешних .so'шек

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62

97. Сообщение от Аноним (97), 23-Янв-23, 21:44   +1 +/
Ну библиотечные вызовы без проблем: https://github.com/taviso/ctypes.sh

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #61 Ответы: #108

98. Сообщение от Аноним (-), 23-Янв-23, 21:45   +/
>ещё протухшие портянки

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53

99. Сообщение от Аноним (99), 23-Янв-23, 21:58   +1 +/
> дача, стометровые очереди за хлебом... Ужас!

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44

100. Сообщение от Аноним (25), 23-Янв-23, 22:20   +1 +/
пассивный - это то, что постоянно заботит жителей этой страны
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56

101. Сообщение от Аноним (25), 23-Янв-23, 22:22   +/
тебе нужно перестать бухать. посмотри на шиroрина в его 23 и увидишь, что будет с тобой через лет 20
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47

107. Сообщение от pavlinux (ok), 23-Янв-23, 23:47   +1 +/
Библиотеки - для девочек, только syscall(NR_*...), только хардкор!  
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #118

108. Сообщение от Аноним (108), 23-Янв-23, 23:48   +/
> Ну библиотечные вызовы без проблем: https://github.com/taviso/ctypes.sh

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97

109. Сообщение от Омномним (?), 23-Янв-23, 23:59   +1 +/
Чего.
Обычная магнитная дискетка - это 8" на чуть менее 80 кило :D
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

110. Сообщение от Омномним (?), 24-Янв-23, 00:00   +/
А 3.5 там ещё и на 2.88 были
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #149

111. Сообщение от Аноним (-), 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 живут например).

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #146

112. Сообщение от Аноним (-), 24-Янв-23, 00:05   +1 +/
> какой pid скажет тебе когда подключенное USB устройство готово к обмену ?

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


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #141

113. Сообщение от Омномним (?), 24-Янв-23, 00:08   +/
Не совсем дискеты. IDE FDD, вкривь-вкось, можно пихнуть необычную геометрию.
Ну и да, в El Torito это не обязательно FDD, можно HDD. Причём с LBA.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34

115. Сообщение от Аноним (-), 24-Янв-23, 00:10   +/
> Кто-нибудь знает "некостыльное" применение sleep?

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

116. Сообщение от Аноним (-), 24-Янв-23, 00:14   +/
> Загрузочные CD/DVD диски эмулируют дискеты.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34

118. Сообщение от Аноним (162), 24-Янв-23, 00:20   +1 +/
> Библиотеки - для девочек, только syscall(NR_*...), только хардкор!

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #107

119. Сообщение от Аноним (119), 24-Янв-23, 01:43   +3 +/
А сейчас "опилки и бумагу" добавляют в колбасу и сосиски
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #81 Ответы: #131, #148, #150

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #135

121. Сообщение от Аноним (121), 24-Янв-23, 03:46   +/
Вообще-то ембедовка - реальная, а не как в современных роутерах, где полноценный mips, который помощнее тех 80486 будет, - это как правило один блоб, в котором вообще всё.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #134

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #152

123. Сообщение от Аноним (-), 24-Янв-23, 04:16   +/
> Может стоило иметь один kdlopen() а остальное самому загружать?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57

126. Сообщение от Neon (??), 24-Янв-23, 05:50   +/
Т.е. гвоздями прибито к С-ной либе.))) Классная архитектура. Хорошо хоть не к Basic'у как Спеки)))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #132

128. Сообщение от www2 (??), 24-Янв-23, 06:05   +/
Настраиваешь обработку сигналов и засыпаешь. А что ещё делать, если тебе нужно дождаться поступления сигнала? Только спать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

131. Сообщение от Омномним (?), 24-Янв-23, 10:09   +1 +/
Ну вот не надо мне тут.
Белковая эмульсия же.
Кости, кожа, гнилое и тухлое мясо, крыски, проспавшие подъём, и прочие радости жизни.
Температура и давление решают.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #119

132. Сообщение от Омномним (?), 24-Янв-23, 10:11   +/
Ты не поверишь - любой статически собранный бинарник гвоздями прибит к C-ной либе.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126 Ответы: #133, #162

133. Сообщение от Омномним (?), 24-Янв-23, 10:12   +1 +/
(ну, любой статически собранный бинарник из кода на C, конечно же)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #132

134. Сообщение от Омномним (?), 24-Янв-23, 10:13   +/
Блоб как правило структурный, даже у RTOS'ов.
Времена неструктурных "на раз" сляпанных блобов почти ушли.
Встречается только в случае совсем уж fixed-function эмбедовки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #121

135. Сообщение от Омномним (?), 24-Янв-23, 10:14   +/
Вот да, второе применение - жЫрные дебаг и kexec.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #120

140. Сообщение от Аноним (15), 24-Янв-23, 10:31   +/
> в качестве функции сна лучше юзать nanosleep вместо usleep (если нужны тайминги меньше секунды), т.к. я заметил, что usleep как-будто в busy-waiting сидит

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94

141. Сообщение от Аноним (15), 24-Янв-23, 10:34   +/
> sleep это тоже не подскажет сам по себе

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112 Ответы: #151

142. Сообщение от Аноним (142), 24-Янв-23, 11:46   +1 +/
Ну ничего, такими темпами скоро в systemd вкорячат ядро и заживете, хипстеры.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53

146. Сообщение от YetAnotherOnanym (ok), 24-Янв-23, 13:21   +2 +/
> Изначально в линуксе все начинается с ядерного треда, его PID = 0
> вроде бы номинально.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111 Ответы: #163

147. Сообщение от InuYasha (??), 24-Янв-23, 13:45   +/
Ты разницу между интерпретатором и компилятором понимаешь?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #91

148. Сообщение от InuYasha (??), 24-Янв-23, 13:47   +/
Сумасашол? Бумага нынче - дефицит!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #119 Ответы: #156

149. Сообщение от InuYasha (??), 24-Янв-23, 15:03   +/
Ещё были приводы которые могли дискету форматнуть в 30МБ и крутить её на бешенной скорости, приводя к быстрому износу. ls-120, вроде.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #110 Ответы: #167

150. Сообщение от Аноним (150), 24-Янв-23, 17:33   +/
Пальмовое масло.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #119

151. Сообщение от Аноним (-), 24-Янв-23, 20:33   +/
> он используется по прямому назначению - задержка в многозадачной среде исполнения в
> ожидании готовности устройства

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #141 Ответы: #155

152. Сообщение от Аноним (-), 24-Янв-23, 20:36   –2 +/
Можешь в сорце mirai позырить как сделать из сисколов сеть по минимуму. И никаких 750 кило там точно не было.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #122

153. Сообщение от bOOster (ok), 25-Янв-23, 06:28   –1 +/
Еще какой-то неосилятор posix решил "переписать", под соусом - "стильно, модно, молодежно". Прогресс во всей красе. Правда прогресс абсолютного бардака...
Ответить | Правка | Наверх | Cообщить модератору

154. Сообщение от (?), 25-Янв-23, 09:16   +/
с чего угодно стереть можно камнем, главное ударить посильнее
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78 Ответы: #158

155. Сообщение от Аноним (15), 25-Янв-23, 09:38   +/
> дурацкие способы отлова наличия нужного девайса

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #151 Ответы: #157

156. Сообщение от Аноним (-), 26-Янв-23, 16:08   +/
> Сумасашол? Бумага нынче - дефицит!

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #148

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #155 Ответы: #159

158. Сообщение от Аноним (-), 26-Янв-23, 16:13   +/
> с чего угодно стереть можно камнем, главное ударить посильнее

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #154 Ответы: #160

159. Сообщение от Аноним (15), 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...

и тд

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #157 Ответы: #164

160. Сообщение от Гипероним (?), 27-Янв-23, 22:27   +/
Просто бил недостаточно сильно, видать
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #158 Ответы: #165

161. Сообщение от Олег (??), 27-Янв-23, 23:02   +1 +/
Разъёма ))).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

162. Сообщение от Аноним (162), 27-Янв-23, 23:16   +/
> Ты не поверишь - любой статически собранный бинарник гвоздями прибит к C-ной либе.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #132 Ответы: #166

163. Сообщение от Аноним (-), 27-Янв-23, 23:18   +/
Он по моему уже не существует на момент старта инита, так что "condition always true, optimize out". А коли так - считайте что usb девайс всегда доступен, с дельфистов пример берите!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #146

164. Сообщение от Аноним (-), 27-Янв-23, 23:26   +/
Чего сказать то хотели?
Мои протоколы либо успешно прошивают девайс тем что задумано, либо это валится с диагностикой что не так. И мне такое поведение вполне нравится. При том это не обязан быть USB. Хотя по нему тоже так можно. А в чем прикол? Мне не нравятся заваленые апдейты и левак прошитый в устройства, равно как и отсутствие диагностики что не так. Если вы хотели сказать что г@вняная работа прошивалок это так и задумано - вот я и пожелаю вам удачных обновлений ваших фирмварей.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #159 Ответы: #168

165. Сообщение от Аноним (-), 27-Янв-23, 23:28   +/
> Просто бил недостаточно сильно, видать

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #160

166. Сообщение от Омномним (?), 28-Янв-23, 00:17   +/
Какое-то очередное ненужно?
Первый раз слышу это название, видимо область применения очень и очень узкая.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #162

167. Сообщение от Омномним (?), 28-Янв-23, 00:22   +/
LS-240, были такие.
Дело там не в скорости было, там запись диска получалась однократной - для любого изменения приходилось переписывать целиком.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #149

168. Сообщение от Аноним (15), 31-Янв-23, 10:22   +/
> Мои протоколы либо успешно прошивают девайс тем что задумано, либо это валится с диагностикой что не так.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #164

169. Сообщение от Oldfan (?), 26-Июн-23, 13:22   +/
в Gotek Floppy Emulator
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру