The OpenNET Project / Index page

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



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

"Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от opennews (ok), 14-Авг-20, 11:21 
После двух лет разработки опубликован релиз проекта GNU Mcron 1.2,  в рамках которого развивается реализации системы cron, написанная на языке Guile. В новом выпуске проведена большая чистка кода - весь код на языке Си переписан и проект теперь включает только исходные тексты на языке Guile...

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

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

Оглавление

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

1. Сообщение от Fracta1L (ok), 14-Авг-20, 11:21   –21 +/
Зачем это нужно при наличии systemd-cron?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #2, #63, #66, #111, #112, #117, #123

2. Сообщение от Совершенно другой аноним (?), 14-Авг-20, 11:26   +14 +/
Ну, как-бы Вы должны быть наоборот довольны - systemd-cron на "дырявом" C, а этот - вовсе нет, не на божественных Rust или Go, конечно, но всё-же.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #3, #32

3. Сообщение от Fracta1L (ok), 14-Авг-20, 11:29   –28 +/
Гнутые бороды не могут писать без дыр, так что толку от этого переписывания...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #4, #24, #85

4. Сообщение от Уровень Предприятия (?), 14-Авг-20, 11:39   +21 +/
Главное, вы с Лёней можете.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

5. Сообщение от Аноним (5), 14-Авг-20, 11:41   +3 +/
>написанная на языке Guile

Linux написано не на Guile! Фатальный недостаток! Срочно переписать!

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

7. Сообщение от Аноним (7), 14-Авг-20, 11:49   +2 +/
и зачем этот Лисп?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #54

8. Сообщение от Аноним (8), 14-Авг-20, 11:57   –3 +/
"вместо постоянного мониторинга времени в Mcron применяется выстраивание заданий в линейную очередь c определением задержек между вызовом каждого элемента очереди"

И что они будут делать если оно запустится до установки времени. или время кто-то установит в процессе работы. Да и что-то мне подсказывает, что процесс определения задержек не сильно отличается по ресурсам от постоянного мониторинга времени. Там же точность нужна до секунд.

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

10. Сообщение от Аноним (10), 14-Авг-20, 12:02   +/
Оверинжиниринг!
Ответить | Правка | Наверх | Cообщить модератору

11. Сообщение от Нанобот (ok), 14-Авг-20, 12:09   +/
> Ключевой особенностью проекта является ... В периоды между активацией заданий mcron полностью неактивен. Подобный подход существенно снижает накладные расходы при работе cron

Экономия на спичках

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

12. Сообщение от Анонимemail (12), 14-Авг-20, 12:16   –3 +/
Достопочтенные комментаторы OpenNet, меня интересует ваше авторитетное мнение. Какая, на ваш взгляд, самая лучшая, придуманная и быстрая DE в среде Linux? Существует ли она? Не шучу, мне правда интересно
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #18, #53, #103, #105

15. Сообщение от Xasd6 (?), 14-Авг-20, 12:31   –1 +/
> Подобный подход существенно снижает накладные расходы при работе cron

ну хорошо бы тогда чтоб показали насколько процентов компьютер в итоге разгрузился

на mcron
по сравнению с vixiecron

оптимизаторы хрЕновы :-) (оптимизировали там где легко, а не там где узкое место :))

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

16. Сообщение от Совершенно другой аноним (?), 14-Авг-20, 12:36   +/
> "вместо постоянного мониторинга времени в Mcron применяется выстраивание заданий в линейную
> очередь c определением задержек между вызовом каждого элемента очереди"
> Да и что-то мне подсказывает, что процесс определения задержек не сильно отличается по
> ресурсам от постоянного мониторинга времени. Там же точность нужна до секунд.

Например, Вы выставили время запуска через 10 минут. В случае постоянного мониторинга процесс будет просыпаться за это время 599 раз, проверять всю очередь (в нашем примере в очередь одно Ваше задание), и запустит его только на 600 раз. В случае их подхода - он проснётся один раз - через 10 минут. А теперь можно посчитать, что будет, если надо запускать раз в неделю или раз в месяц.

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

18. Сообщение от aa (?), 14-Авг-20, 12:43   +6 +/
bash
быстро, удобно
и я не шучу - для тех кто юзает крон, баш вполне себе ДЕ
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #27, #35, #102

20. Сообщение от Аноним (20), 14-Авг-20, 12:48   +/
Я выбираю https://github.com/cronie-crond/cronie все остальные шляпа.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #68

23. Сообщение от Аноним (24), 14-Авг-20, 12:55   +1 +/
Думаю, Фабрис Беллар, который написал виртуалку на JS, смог бы и ядро на Guile.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

24. Сообщение от Аноним (24), 14-Авг-20, 12:58   +10 +/
Ага, значит, ты признаёшь, что дыр можно наклепать на любом языке, в т. ч. и на Rust?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

25. Сообщение от Аноним (24), 14-Авг-20, 13:03   +/
Я вот жду, когда у них появится система сборки на Guile.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #38, #71

26. Сообщение от Аноним (8), 14-Авг-20, 13:03   +/
Планировщик, тоже потребляет ресурсы. В классическом кроне процедура отсчитывающая секунды и проверяющая нет ли заданий для запуска не сильно напрягается.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #30, #31

27. Сообщение от Аноним (24), 14-Авг-20, 13:08   +/
Как будто, cron нельзя юзать пользуясь KDE.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18

30. Сообщение от Совершенно другой аноним (?), 14-Авг-20, 13:16   +2 +/
> Планировщик, тоже потребляет ресурсы. В классическом кроне процедура отсчитывающая секунды
> и проверяющая нет ли заданий для запуска не сильно напрягается.

В смысле?
формально там, по ресурсам что-то типа:


sleep_time = calc_time(when);
sleep(sleep_time);
do_job();

в стандартном кроне, что-то вроде:


sleep_time = calc_time(when);
while (sleep_time > 0)
  sleep(1);
do_job();

т.е. будут дополнительные накладные расходы на sleep_time-1 системных вызовов. Понятно что на самом деле всё гораздо сложнее, но я это в контексте исходной предпосылкой с одним заданием.

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

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

31. Сообщение от Совершенно другой аноним (?), 14-Авг-20, 13:20   +/
> Планировщик, тоже потребляет ресурсы. В классическом кроне процедура отсчитывающая секунды
> и проверяющая нет ли заданий для запуска не сильно напрягается.

прошу прощения, не дописал. А отредактировать не могу. Для крона получится:


sleep_time = calc_time(when);
while (sleep_time > 0)
{ sleep(1);
  sleep_time--;
}
do_job();
[/codee]
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #100

32. Сообщение от Michael Shigorinemail (ok), 14-Авг-20, 13:23   –2 +/
Браво!  Нет, не так -- БРАВО! :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #45

35. Сообщение от Michael Shigorinemail (ok), 14-Авг-20, 13:28   –1 +/
Ну он же флейма хотел, так что нет, никакой не bash, а zsh! (и ещё надо gremlin@ позвать, втопит за tcsh)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #44, #64

36. Сообщение от Michael Shigorinemail (ok), 14-Авг-20, 13:29   –4 +/
Пишете, надеюсь, из узкого места или ещё не дошли?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #43

37. Сообщение от Аноним (8), 14-Авг-20, 13:29   –3 +/
"Понятно что на самом деле всё гораздо сложнее, но я это в контексте исходной предпосылкой с одним заданием."
Вот именно. Сферические кони весьма хороши в вакууме. На практике же классический что-то никто не выбрасывает, хотя режимы энергосбережения существуют уже десятки лет. Сабж же заявляет, что он лучше в плане энергосбережения, но что-то не видно особых сравнений.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #40, #47, #88

38. Сообщение от Michael Shigorinemail (ok), 14-Авг-20, 13:30   –7 +/
А до меня вчера дошло при разглядывании очередного однопотокового выхлопа шмяка, что бы стоило сделать.

Одноклассника autoconf/cmake и подобных, только параллелящегося.  Например, поверх того же make.

Но поскольку я понимаю, что в этом классе софта даже не чайник -- то и делать не стану; а жаль даже немножко...

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

40. Сообщение от Совершенно другой аноним (?), 14-Авг-20, 13:44   +/
> "Понятно что на самом деле всё гораздо сложнее, но я это в
> контексте исходной предпосылкой с одним заданием."
> Вот именно. Сферические кони весьма хороши в вакууме. На практике же классический
> что-то никто не выбрасывает, хотя режимы энергосбережения существуют уже десятки лет.
> Сабж же заявляет, что он лучше в плане энергосбережения, но что-то
> не видно особых сравнений.

Остаётся только надеяться, что авторы в итоге выложат результаты бенчмарков. Другое дело, что их выигрыш в одном может быть потерян в другом. Например, т.к. используется интерпретатор, то некоторые вещи могут наоборот большего времени, чем если бы был использован компилятор и работал нативный код.

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

41. Сообщение от Аноним (8), 14-Авг-20, 13:53   +/
Просто с точки зрения работы ядра, оптимизация крона это такая мелочь по сравнению со всем остальным, что почти никак не повлияет на общее энергосбережение. Надо же один процесс просыпается один раз в секунду, в то время как ядро наносекундами оперирует. Плюс в случае с mcron вы будете иметь n (число заданий) спящих тредов, между которыми нужно будет переключаться, а это тоже ресурсы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #46, #52, #76, #91

42. Сообщение от user90 (?), 14-Авг-20, 13:58   –2 +/
О нафлудили-то!

Юзал когда-то, еще на GuixSD вроде. Насколько могу припомнить, у Mcron больше фичей, чем тут указано.

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

43. Сообщение от Xasd6 (?), 14-Авг-20, 14:17   +/
надо же какой тонкий юмор :-)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #86

44. Сообщение от kido5217email (?), 14-Авг-20, 14:22   +/
fish shell. Можно-молодежно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #104

45. Сообщение от Аноним (45), 14-Авг-20, 14:38   +/
Михаил, а у вас же альтератор на этом? Разработчики довольны? Ну у вас хотя бы можно DSL для своих задач сделать, а для крона решение переехать на язык без статической типизации как-то не очень, не то, чтобы С был лучше.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

46. Сообщение от Crazy Alex (ok), 14-Авг-20, 14:50   +2 +/
Каких ещё тредов? Один тред, в нём - очередь. Классический вариант для эмбеда того же - не на схеме, понятно, но логика точно эта. Минималистично, удобно, надёжно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41

47. Сообщение от Аноним (45), 14-Авг-20, 14:56   +5 +/
>На практике же классический что-то никто не выбрасывает

Про tickless kernel слышал? Это примерно то же самое, 10 лет уже используют.

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

49. Сообщение от CAE (ok), 14-Авг-20, 15:04   –1 +/
Это если заданий немного. Да и то есть сомнения, что при малом кол-ве заданий выигрыш заметен.
Кроме того, надо хотя бы раз в минуту проверять сдвиг реального времени от синхронизации. То есть просыпаться, даже если заданий почти нет. И вести пересчёт таймеров ожидания запуска в списке, если сдвиг произошёл. Плюс если локалтайм сменился - добро пожаловать в ад :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #50, #101

50. Сообщение от Совершенно другой аноним (?), 14-Авг-20, 15:18   +1 +/
> Это если заданий немного. Да и то есть сомнения, что при малом
> кол-ве заданий выигрыш заметен.
> Кроме того, надо хотя бы раз в минуту проверять сдвиг реального времени
> от синхронизации. То есть просыпаться, даже если заданий почти нет. И
> вести пересчёт таймеров ожидания запуска в списке, если сдвиг произошёл. Плюс
> если локалтайм сменился - добро пожаловать в ад :)

В clock_nanosleep() есть TIMER_ABSTIME - можно ждать сразу до назначенного времени (времени ближайшего к выполнению задания), а дальше это уже больше проблемы ядра. По поводу localtime-а - тут, наверное, действительно может быть проблема.

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

51. Сообщение от Вы забыли заполнить поле Name (?), 14-Авг-20, 15:22   +1 +/
как-то ради интереса пробовал этот mcron: при ошибке в конфигурации выдает простыню стек трейса на лишпе.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #56

52. Сообщение от n00by (ok), 14-Авг-20, 15:34   +1 +/
С точки зрения ядра всё складывается из вот таких "почти".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41

53. Сообщение от ДмитрийСССР (?), 14-Авг-20, 15:36   –3 +/
Linux Mint MATE, ничего лучше ещё не нашёл, хотя пробовал много чего.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #99

54. Сообщение от A.Stahl (ok), 14-Авг-20, 15:42   +/
Как минимум чтобы тыкать носом таких как я, когда мы будет ехидно спрашивать "Ну и что там написано-то на этом вашем самом лучшем в мире скобко-расставителе?"
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

55. Сообщение от CAE (ok), 14-Авг-20, 15:59   –1 +/
Сигнал, EINTR и отсутствие remain. Мммм... Не уверен, что ABSTIME хороший выбор для планировщика.
Конечно, сигнал крону - это скорее редкость, хотя и не такая уж, crontab всяко должен сказать "reload plz".
upd. can restarted я не прочёл, прежде чем написал, да, ABSTIME можно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50

56. Сообщение от Аноним (56), 14-Авг-20, 16:10   +/
> лишпе.

лиспе, там „С“.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51 Ответы: #67, #87, #90

57. Сообщение от A.Stahl (ok), 14-Авг-20, 16:15   +7 +/
Спичка здесь, спичка там... Глядишь, а вот уж и лес сэкономлен.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

58. Сообщение от Аноним (58), 14-Авг-20, 16:15   +/
> написанная на языке Guile

И кто это развивать будет кроме полутора сумасшедших бородатых «альтернативщиков»? Код, в особенности развиваемый сообществом, должнн быть написан максимально просто и понятно. А все эти потуги на «правильные» (с точки зрения сумасшедших) языки обрекают проект на провал.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #60, #61, #70, #93

60. Сообщение от CAE (ok), 14-Авг-20, 16:25   +/
Если есть готовый заказчик, который башляет за решение, то привязка к экзотике - это гарантированный сбыт в нужную сторону на определённое время.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58 Ответы: #62

61. Сообщение от user90 (?), 14-Авг-20, 16:25   +/
> И кто это развивать будет кроме полутора сумасшедших бородатых «альтернативщиков»?

Точно! Хоть бы на javascript, дебилы, переписали)))

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

62. Сообщение от user90 (?), 14-Авг-20, 16:27   –1 +/
Ты это про GNU, наркоман?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60

63. Сообщение от Пряникё (?), 14-Авг-20, 16:27   +/
А что такое systemd-cron?..
Это юниты типа timer или там уже еще что-то изобрели?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #65

64. Сообщение от A.Stahl (ok), 14-Авг-20, 16:31   –2 +/
command.com из-под dosbox -- прост и удобен.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

65. Сообщение от Oxyd76 (?), 14-Авг-20, 16:41   +/
Да, это timer driven cron. Ничего так... забавно и даже работает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63

66. Сообщение от Аноним (66), 14-Авг-20, 17:01   –4 +/
Поддерживаю! Зачем пытаться писать то, что уже написан таким профессионалом, как Линус Потерринг. GNU и так уже прославились баш-портянками - время же за современными юнитами Линуса Поттеринга!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #82

67. Сообщение от Аноним (67), 14-Авг-20, 17:01   +1 +/
лишп машт флоу!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56 Ответы: #69

68. Сообщение от Аноним (66), 14-Авг-20, 17:04   +/
Cronyism
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20

69. Сообщение от Аноним (56), 14-Авг-20, 17:10   –1 +/
флуд
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67

70. Сообщение от Crazy Alex (ok), 14-Авг-20, 17:21   +/
Проблема в том, что никакого мейнстрима, который был бы мелок и давал чистый красивый код, нет. Lua разве что, но так себе мейнстрим и так себе качество кода. Питон подразумевает адовый рантайм, JS - тот ещё урод. компилируемые они брать не захотели и в этом что-то есть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58 Ответы: #72

71. Сообщение от anonymous yet another (?), 14-Авг-20, 17:32   +/
Есть guile-встройка у gmake (её только не всегда собирают).
Посмотреть практическое использование (за пределами hello world)
мне не удалось: не нашёл. А посмотреть было бы интересно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

72. Сообщение от Аноним (20), 14-Авг-20, 17:33   –1 +/
Питон можно без рантайма.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70 Ответы: #77

73. Сообщение от alex312 (?), 14-Авг-20, 17:40   +/
уже https://www.gnu.org/software/make/manual/html_node/Guile-Int...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

74. Сообщение от anonymous yet another (?), 14-Авг-20, 17:46   –1 +/
Странно. Оригинальная статья с мотивацией 2003 года. А ведь есть (для сравнения функциональности/архитектурных решений) всякий anacron, или fcron (который перекрывает функциональность классики и anacron, а начинается где-то в 2000-м). А если порыться, то ещё, наверное, всяких реализаций найти можно.

Т.е. главное --- написано на guile?

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

75. Сообщение от user90 (?), 14-Авг-20, 17:55   +/
> Т.е. главное --- написано на guile?

Написано на Guile И используется в Guix(SD), который.. [RTFM]

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

76. Сообщение от Экономный Анон (?), 14-Авг-20, 17:59   +/
> Просто с точки зрения работы ядра, оптимизация крона это такая мелочь по
> сравнению со всем остальным, что почти никак не повлияет на общее
> энергосбережение. Надо же один процесс просыпается один раз в секунду, в
> то время как ядро наносекундами оперирует. Плюс в случае с mcron
> вы будете иметь n (число заданий) спящих тредов, между которыми нужно
> будет переключаться, а это тоже ресурсы.

У меня как у нуба вот какой вопрос: в системе уже стоит cron, на него ещё всякие компоненты системы могут полагаться, может ли mcron полностью заменить его во всех аспектах?
Потому что если его ставить дополнительно, в том же дебиане с зависимостями он ещё 47 Мб пространства отжирает

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

77. Сообщение от Аноним (77), 14-Авг-20, 18:01   –1 +/
Питухонский код выполняется на виртуальной машине. Жаба точно такая же. Ты вообще о чём?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72 Ответы: #79

78. Сообщение от Аноним (77), 14-Авг-20, 18:02   +/
который есть Лисп?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75 Ответы: #110

79. Сообщение от Аноним (20), 14-Авг-20, 18:05   –1 +/
> Питухонский код выполняется на виртуальной машине. Жаба точно такая же. Ты вообще
> о чём?

Сам по себе интерпретатор там дохрена и больше лёгкий (а запуск его мгновенный), тормозит только код который можно и выкинуть при желании.

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

80. Сообщение от rshadow (ok), 14-Авг-20, 18:43   +/
Уже сейчас можно посмотреть powertop например.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40

81. Сообщение от Анонолекс (?), 14-Авг-20, 18:46   +/
Все комменты не читал, но не одобряю. Я нашего Столлмана люблю, но убил бы только за то, что он в любой проект свою реализацию LISPа пропихивает...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #83, #84, #115, #124

82. Сообщение от Аноним (82), 14-Авг-20, 18:51   +3 +/
> Линус Потерринг
> Линус

типун тебе…

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

83. Сообщение от anonymous yet another (?), 14-Авг-20, 18:56   +/
Хмм... Он даже в Emacs Guile так и не подтянул. Хотя вялотекущая деятельность там, кажется, ещё есть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #81 Ответы: #94, #114

84. Сообщение от Аноним (84), 14-Авг-20, 19:23   +/
Вот они, анонимные аналитики Опеннета во всей красе))

Причем тут Столлман - создатель Emacs - в котором Emacs Lisp, и Guile, расскажи-ка. Ты дурбэцило знаешь, сколько всего Лиспов есть? ;)

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

85. Сообщение от Аноним (85), 14-Авг-20, 19:42   +1 +/
Уважаемый гладко выбритый Fracta1L, не затруднит ли Вас продемонстрировать нам пример своего кода (на любом языке), полностью лишённого дыр?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #106

86. Сообщение от Аноним (85), 14-Авг-20, 19:46   +/
Двенадцатиперстный.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43

87. Сообщение от Лишпер (?), 14-Авг-20, 20:38   +/
Специально исковеркал
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56

88. Сообщение от Ordu (ok), 14-Авг-20, 20:52   +1 +/
> Сферические кони весьма хороши в вакууме. На практике же классический что-то никто не выбрасывает, хотя режимы энергосбережения существуют уже десятки лет.

Если не выбрасывают и мы не знаем причины, почему не выбрасывают, то наш долг выбросить, и посмотреть, что произойдёт: а вдруг все не выбрасывают его только потому, что не знают, почему другие не выбрасывают? Если же есть какая-то разумная причина для сохранения "классического" подхода, то по крайней мере мы её узнаем, и в отличие от всех остальных будем знать.

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

89. Сообщение от Crazy Alex (ok), 14-Авг-20, 21:27   +/
и тогда оно ничего уметь не будет. Толку-то?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #79 Ответы: #107

90. Сообщение от Ordu (ok), 14-Авг-20, 21:31   +/
В словаре английского указано, что "to lisp" переводится как "шепелявить". У Пратчетта все Игори были лисперами, lisp'али безбожно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56 Ответы: #119

91. Сообщение от Ordu (ok), 14-Авг-20, 21:39   +1 +/
> Просто с точки зрения работы ядра, оптимизация крона это такая мелочь по сравнению со всем остальным, что почти никак не повлияет на общее энергосбережение. Надо же один процесс просыпается один раз в секунду, в то время как ядро наносекундами оперирует.

Система в спячке, но раз в секунду её надо вывести из спячки, дать поработать процессу, и отправить систему обратно спать. Чёт мне не кажется, что это будет так уж бесплатно, как ты описываешь.

> Плюс в случае с mcron вы будете иметь n (число заданий) спящих тредов, между которыми нужно будет переключаться, а это тоже ресурсы.

Откуда ты вычитал про спящие треды? Как я понял из описания, он закидывает в единый список структурки типа { .wake_time = ???, .cmd = "???" }, сортирует их по wake_time, выбирает первый, и уходит в сон, пока не придёт время запускать первый .cmd.

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

92. Сообщение от distrobuilder (?), 14-Авг-20, 22:32   +2 +/
meson + ninja. и ничего делать не надо
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

93. Сообщение от distrobuilder (?), 14-Авг-20, 22:36   +/
> «правильные» (с точки зрения сумасшедших) языки

Это синдром утёнка: в Беркли всех студентов-первокурсников лиспом портят.

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

94. Сообщение от Анонолекс (?), 14-Авг-20, 23:41   –2 +/
Вася, шёл бы с миром...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #83

96. Сообщение от Анонолекс (?), 14-Авг-20, 23:57   –3 +/
Ну, с 2000 несколько реализацийю. А ты?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #84

98. Сообщение от Анонимemail (98), 15-Авг-20, 00:16   –1 +/
YAC? Велосипед.
Ответить | Правка | Наверх | Cообщить модератору

99. Сообщение от Аноним (99), 15-Авг-20, 00:59   +/
Ещё один не отличает DE, IDE и KDE.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53

100. Сообщение от draw1 (?), 15-Авг-20, 01:20   –1 +/
А в стандартном кроне реально подобным образом сделано? Или это домыслы на основании новости?

Я не пытаюсь подъ@%нуть, если что.
Просто мысль отсортировать задания по времени до наступления события, как минимум, чтоб не проверять каждый раз всю очередь - вроде бы настолько очевидна, что как-то сомнительно что до этого не додумались за столько лет. А если очередь заданий сортировать, то уж практически сразу приходит мысль, что зачем "просыпаться" периодически для бесполезных проверок, если тупо по первому элементу сразу видно через сколько наступит ближайшее событие и раньше просыпаться большого смысла нет...
Либо есть что-то ещё, для чего надо "просыпаться" даже заведомо "зная", что задания выполнять не понадобится, либо стандартный крон все-таки устроен не так примитивно, мне так кажется.

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

101. Сообщение от draw1 (?), 15-Авг-20, 01:58   –1 +/
Если задания отсортированы, то не надо пересчитывать весь список - можно реализовать так, что будет достаточно пересчитать только время до первого элемента списка. Можно ли "немного про#@$ть" время запуска ближайшего задания в угоду экономии "пробуждений" - вопрос...

Смена локалтайма может доставить проблем независимо от того сортировано оно или нет. Часто ли меняется локалтайм? Но даже если часто - если есть задания с высокой периодичностью то это спокойно отловится и скомпенсируется при выполнении ближайшего задания и будет условно "незаметно". Если все задания с низкой периодичностью, то относительная ошибка может быть тоже условно "незаметна" (относительная погрешность времени запуска будет малой). Тут снова тот же компромисс: либо оперативная компенсация всяких "чудес" с текущим временем, либо экономия на "холостых" пробуждениях. "Насколько важна точность по времени запуска заданий" - ответ на этот вопрос, имхо, и определяет как лучше делать планировщик.
Можно, например, как вариант, штатный запуск заданий делать на основе сортировки (точно зная через сколько надо просыпаться), но если время до ближайшего задания больше какого-то порога (компромисс = точность времени запуска заданий), то планировать дополнительное "холостое" пробуждение для анализа не изменилась ли обстановка и т. п.

Можно с ходу придумать с десяток всяких подобных вариаций, ухищрений и оптимизаций. Это относительно несложно реализовать и вроде бы довольно очевидно, поэтому мне кажется что уж, как минимум, до подобного всяко додумались ещё в незапамятные времена (и, думаю, неоднократно).

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

102. Сообщение от СеменСеменыч777 (?), 15-Авг-20, 03:19   +/
bash разжирел за последние 10 лет.

для текста выбираю screen и tcsh,
для X - jwm (возможно, найдется лучше).

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

103. Сообщение от bergentroll (ok), 15-Авг-20, 07:21   +1 +/
Xfce.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

104. Сообщение от flkghdfgklh (?), 15-Авг-20, 07:38   +1 +/
> молодежно

Шел 2004 год, я был молодым, а ты так вообще был в яслях, на опеннете с лором вышла новость про будущего конкурента bash'у под названием fish
Идет 2020 год, я полностью седой дядька, а ты пишешь про молодежность fish'а
Смешно

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

105. Сообщение от myhand (ok), 15-Авг-20, 08:26   +2 +/
emacs
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

106. Сообщение от Аноним (106), 15-Авг-20, 09:36   +/
А откуда ты знаешь что он ТАМ гладко выбрит?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #85

107. Сообщение от Аноним (20), 15-Авг-20, 10:56   +/
Зачем тебе что-то уметь в мать его обёртке над ядром?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #89

108. Сообщение от Forth (ok), 15-Авг-20, 11:33   +1 +/
А почему никто не удосужился просто посмотреть? Это же проще всего.
Ubuntu 20.04, vixie cron 3.0pl1-136ubuntu1
Выдача strace:
clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=60, tv_nsec=0}, 0x7ffc840b1930) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=1535, ...}) = 0
stat("crontabs", {st_mode=S_IFDIR|S_ISVTX|0730, st_size=4096, ...}) = 0
stat("/etc/crontab", {st_mode=S_IFREG|0644, st_size=1042, ...}) = 0
stat("/etc/cron.d", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/etc/cron.d/popularity-contest", {st_mode=S_IFREG|0644, st_size=190, ...}) = 0
stat("/etc/cron.d/anacron", {st_mode=S_IFREG|0644, st_size=285, ...}) = 0
stat("/etc/cron.d/sysstat", {st_mode=S_IFREG|0644, st_size=396, ...}) = 0
stat("/etc/cron.d/atop", {st_mode=S_IFREG|0644, st_size=217, ...}) = 0
stat("/etc/cron.d/e2scrub_all", {st_mode=S_IFREG|0644, st_size=201, ...}) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f85d0b9eb10) = 3867
clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=59, tv_nsec=0}, {tv_sec=58, tv_nsec=996789973}) = ? ERESTART_RESTARTBLOCK (Interrupted by signal)
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=3867, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 3867
wait4(-1, 0x7ffc840b1314, WNOHANG, NULL) = -1 ECHILD (Нет дочерних процессов)
rt_sigreturn({mask=[]})                 = -1 EINTR (Прерван системный вызов)
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=1535, ...}) = 0
clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=59, tv_nsec=0}, 0x7ffc840b1930) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=1535, ...}) = 0
stat("crontabs", {st_mode=S_IFDIR|S_ISVTX|0730, st_size=4096, ...}) = 0
stat("/etc/crontab", {st_mode=S_IFREG|0644, st_size=1042, ...}) = 0
stat("/etc/cron.d", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/etc/cron.d/popularity-contest", {st_mode=S_IFREG|0644, st_size=190, ...}) = 0
stat("/etc/cron.d/anacron", {st_mode=S_IFREG|0644, st_size=285, ...}) = 0
stat("/etc/cron.d/sysstat", {st_mode=S_IFREG|0644, st_size=396, ...}) = 0
stat("/etc/cron.d/atop", {st_mode=S_IFREG|0644, st_size=217, ...}) = 0
stat("/etc/cron.d/e2scrub_all", {st_mode=S_IFREG|0644, st_size=201, ...}) = 0
clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=60, tv_nsec=0},
----------
Делайте выводы сами, все понятно :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #100

109. Сообщение от Аноним (109), 15-Авг-20, 13:57   +/
И в чём же он разжирел?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #102 Ответы: #116

110. Сообщение от Аноним (109), 15-Авг-20, 14:13   +/
Scheme
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78

111. Сообщение от dwm (?), 15-Авг-20, 17:40   +/
Так это для Guix :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

112. Сообщение от лютый жабби__ (?), 15-Авг-20, 18:28   –1 +/
>Зачем это нужно при наличии systemd-cron?

Много минусов на опеннете, значит коммент резонный.

смотрим systemctl list-timers, дистрописатели то уже давно переключились на него.

И от себя - проверил, в отличие от дебиановокронового @reboot системдшный таймеры нормально работает.

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

114. Сообщение от myhand (ok), 16-Авг-20, 08:14   +/
Есть, конечно.  Протянем еще правильные скобочки куда нада!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #83

115. Сообщение от myhand (ok), 16-Авг-20, 08:20   +1 +/
В смысле свою?  Он автор Emacs - вот там, действительно, весьма свой лисп с приветами из 70-х в виде динамического связывания и т.п.

Схему - придумал не RMS, не им она стандартизована и даже сам проект Guile - не он начал.

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

116. Сообщение от СеменСеменыч777 (?), 16-Авг-20, 11:50   +/
> И в чём же он разжирел?

в потреблении RAM и CPU, очевидно же.

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

117. Сообщение от Аноним (117), 16-Авг-20, 13:18   –1 +/
Это просто пример никому не нужной программы, которую евангелисты Гуиле нашли и запердолили в исполняемый файл и делают вид, что на этом недоязыке можно написать системнеы утилиты. Просто попытка показать, что их сиситема не унылое позабытое ... а хрень на которой можно что-то даже полезное сделать. Впрочем кроме этого ничего на Guile полезного вроде бы больше и не написано. Такой вот язык для одной программы крон и то ставить ее можно тольок в случае полного заболевания головы или уничтожении оригинального крона
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

119. Сообщение от другой аноним (?), 18-Авг-20, 03:29   +/
На самом деле это "шепелявить наоборот", говорить "с" вместо "ш". Для русского такой дефект речи близко к невозможен, потому что у нас "ш" -- сравнительно редкий звук. А для английского -- только в путь. Так что скорее уж "сепелявить".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90

121. Сообщение от rvs2016 (ok), 18-Авг-20, 22:35   +/
> sleep_time = calc_time(when);
> sleep(sleep_time);
> do_job();

В таком кроне если кто-то выключил систему во время выполнения команды sleep(sleep_time), а потом включил её до истечения времени sleep_time, то команду do_job() уже будет некому запустить.

А в стандартном кроне если выполнение команды назначено на 5-тысячный год от рождества Христова, то на оставшиеся 3 тысячи лет ноутбук можно выключить и надеяться на то, что потомки его ко времени назначенного задания таки включат и в этом случае задание выполняться таки начнёт! Нужно оно там будет потомкам или не нужно - это другой вопрос. :-)

ps:
Ноутбук за это время скорее всего уже несколько раз "сгниёт". Но потомки его создадут заново. Причём может быть уже в соседней галактике. А может быть даже внутри VirtualBox и вообще только ради исторического и археологического интереса, ну и как дань уважения предкам :-).

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

122. Сообщение от Совершенно другой аноним (?), 19-Авг-20, 11:37   +/
>> sleep_time = calc_time(when);
>> sleep(sleep_time);
>> do_job();
> В таком кроне если кто-то выключил систему во время выполнения команды sleep(sleep_time),
> а потом включил её до истечения времени sleep_time, то команду do_job()
> уже будет некому запустить.

Прошу прощения, не совсем понял о чём Вы. Если Если выключить во время выполнения sleep(), а потом включить до его истечения - так cron при включении ведь заново запуститься, и рассчитает время ожидания исходя из текущего времени запуска. вроде как с этой стороны проблем быть не должно.

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

123. Сообщение от Аноним (123), 20-Авг-20, 20:31   +/
Внезапно но systemd-cron ой как нафик не упал в ну огромном количесве оборудования. В подовляющем я бы сказал (от общей массы) по причине что как минимум systemd там нет и никогда не будет и быть не может.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

124. Сообщение от ананасус (?), 22-Авг-20, 16:42   +/
Она не его, Guile довольно плохая реализация Scheme: ни r7rs в день отгрузки, ни натива, ни образов. Вдобавок украдена.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #81 Ответы: #125, #127

125. Сообщение от Michael Shigorinemail (ok), 22-Авг-20, 16:48   +/
> ни натива

Порой это как раз хорошо.

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

126. Сообщение от rvs2016 (ok), 23-Авг-20, 00:45   +/
> Прошу прощения, не совсем понял о чём Вы. Если Если выключить во
> время выполнения sleep(), а потом включить до его истечения - так
> cron при включении ведь заново запуститься, и рассчитает время ожидания исходя
> из текущего времени запуска. вроде как с этой стороны проблем быть
> не должно.

А. Ну да. Если в случае перезапуска крона предусмотрен перасчёт времени до ближайшего задания, то тогда всё нормально.

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

127. Сообщение от myhand (ok), 23-Авг-20, 08:02   +/
> Она не его, Guile довольно плохая реализация Scheme: ни r7rs в день отгрузки

Это вы вообще об чем?  r7rs поддерживается.

> Вдобавок украдена.

Это еще у кого?

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


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

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




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

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