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. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  –21 +/
Сообщение от Fracta1L (ok), 14-Авг-20, 11:21 
Зачем это нужно при наличии systemd-cron?
Ответить | Правка | Наверх | Cообщить модератору

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

3. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  –28 +/
Сообщение от Fracta1L (ok), 14-Авг-20, 11:29 
Гнутые бороды не могут писать без дыр, так что толку от этого переписывания...
Ответить | Правка | Наверх | Cообщить модератору

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

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

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

106. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от Аноним (106), 15-Авг-20, 09:36 
А откуда ты знаешь что он ТАМ гладко выбрит?
Ответить | Правка | Наверх | Cообщить модератору

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

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

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

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

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

82. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +3 +/
Сообщение от Аноним (82), 14-Авг-20, 18:51 
> Линус Потерринг
> Линус

типун тебе…

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

111. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от dwm (?), 15-Авг-20, 17:40 
Так это для Guix :)
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

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

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

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

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

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

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

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

5. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +3 +/
Сообщение от Аноним (5), 14-Авг-20, 11:41 
>написанная на языке Guile

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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ообщить модератору

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

121. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от 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 и вообще только ради исторического и археологического интереса, ну и как дань уважения предкам :-).

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

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

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

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

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

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

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

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

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


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

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

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

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

108. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +1 +/
Сообщение от Forth (ok), 15-Авг-20, 11:33 
А почему никто не удосужился просто посмотреть? Это же проще всего.
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ообщить модератору

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

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

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

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

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

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

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

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

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

10. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от Аноним (10), 14-Авг-20, 12:02 
Оверинжиниринг!
Ответить | Правка | Наверх | Cообщить модератору

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

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

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

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

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

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

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

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

44. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от kido5217email (?), 14-Авг-20, 14:22 
fish shell. Можно-молодежно.
Ответить | Правка | Наверх | Cообщить модератору

104. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +1 +/
Сообщение от flkghdfgklh (?), 15-Авг-20, 07:38 
> молодежно

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

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

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

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

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

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

109. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от Аноним (109), 15-Авг-20, 13:57 
И в чём же он разжирел?
Ответить | Правка | Наверх | Cообщить модератору

116. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от СеменСеменыч777 (?), 16-Авг-20, 11:50 
> И в чём же он разжирел?

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

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

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

99. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от Аноним (99), 15-Авг-20, 00:59 
Ещё один не отличает DE, IDE и KDE.
Ответить | Правка | Наверх | Cообщить модератору

103. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +1 +/
Сообщение от bergentroll (ok), 15-Авг-20, 07:21 
Xfce.
Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

105. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +2 +/
Сообщение от myhand (ok), 15-Авг-20, 08:26 
emacs
Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

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

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

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

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

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

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

43. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от Xasd6 (?), 14-Авг-20, 14:17 
надо же какой тонкий юмор :-)
Ответить | Правка | Наверх | Cообщить модератору

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

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

68. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от Аноним (66), 14-Авг-20, 17:04 
Cronyism
Ответить | Правка | Наверх | Cообщить модератору

25. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от Аноним (24), 14-Авг-20, 13:03 
Я вот жду, когда у них появится система сборки на Guile.
Ответить | Правка | Наверх | Cообщить модератору

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

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

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

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

73. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от alex312 (?), 14-Авг-20, 17:40 
уже https://www.gnu.org/software/make/manual/html_node/Guile-Int...
Ответить | Правка | Наверх | Cообщить модератору

92. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +2 +/
Сообщение от distrobuilder (?), 14-Авг-20, 22:32 
meson + ninja. и ничего делать не надо
Ответить | Правка | К родителю #38 | Наверх | Cообщить модератору

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

42. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  –2 +/
Сообщение от user90 (?), 14-Авг-20, 13:58 
О нафлудили-то!

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

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

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

56. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от Аноним (56), 14-Авг-20, 16:10 
> лишпе.

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

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

67. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +1 +/
Сообщение от Аноним (67), 14-Авг-20, 17:01 
лишп машт флоу!
Ответить | Правка | Наверх | Cообщить модератору

69. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  –1 +/
Сообщение от Аноним (56), 14-Авг-20, 17:10 
флуд
Ответить | Правка | Наверх | Cообщить модератору

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

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

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

58. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от Аноним (58), 14-Авг-20, 16:15 
> написанная на языке Guile

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

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

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

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

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

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

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

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

72. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  –1 +/
Сообщение от Аноним (20), 14-Авг-20, 17:33 
Питон можно без рантайма.
Ответить | Правка | Наверх | Cообщить модератору

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

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

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

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

89. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от Crazy Alex (ok), 14-Авг-20, 21:27 
и тогда оно ничего уметь не будет. Толку-то?
Ответить | Правка | Наверх | Cообщить модератору

107. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от Аноним (20), 15-Авг-20, 10:56 
Зачем тебе что-то уметь в мать его обёртке над ядром?
Ответить | Правка | Наверх | Cообщить модератору

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

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

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

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

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

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

75. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от user90 (?), 14-Авг-20, 17:55 
> Т.е. главное --- написано на guile?

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

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

78. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от Аноним (77), 14-Авг-20, 18:02 
который есть Лисп?
Ответить | Правка | Наверх | Cообщить модератору

110. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от Аноним (109), 15-Авг-20, 14:13 
Scheme
Ответить | Правка | Наверх | Cообщить модератору

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

83. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от anonymous yet another (?), 14-Авг-20, 18:56 
Хмм... Он даже в Emacs Guile так и не подтянул. Хотя вялотекущая деятельность там, кажется, ещё есть.
Ответить | Правка | Наверх | Cообщить модератору

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

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

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

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

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

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

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

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

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

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

125. "Выпуск Mcron 1.2, реализации cron от проекта GNU "  +/
Сообщение от Michael Shigorinemail (ok), 22-Авг-20, 16:48 
> ни натива

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

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

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

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

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

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

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

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

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

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




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

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