NTP и наноядро NTPD

Если Вы находитесь на Ubuntu...

Дайте Постфиксу команду использовать Maildirs вместо Mboxes:

sudo postconf -e "home_mailbox = Maildir/"

Постфикс перезапуска для создания эффекта изменений:

sudo  /etc/init.d/postfix restart

Проверьте почтовый ящик fmaster:

su - fmaster
MAIL=/home/fmaster/Maildir
mail

Можно найти полное руководство здесь.

Если Вы находитесь на CentOS...

Добавьте следующую строку в/etc/postfix/main.cf

home_mailbox = Maildir/

Запаздывающая наклонная черта указывает на формат Maildir. Для определения mbox формата использовать home_mailbox = Mailbox

Можно найти полное руководство здесь.

7
15.01.2017, 00:13
1 ответ

Чтобы убедиться, что я добавил новую строку в пример данных:

exams2008/Zoology/Summer/ZY4019Sum08.pdf
exams2009/Zoology/Summer/ZY4019.pdf
exams2010/Zoology/Summer/ZY4019Sum2010.pdf
exams2011/Zoology/Summer/ZY4019Sum2011.pdf
exams2012/Zoology/Autumn/ZY4019Aut2012.pdf
exams2012/Zoology/Summer/ZY4019Sum2012.pdf
exams2013/Zoology/Autumn/ZY4019Aut2013.pdf
exams2013/Zoology/Summer/ZY4019Sum2013.pdf
exams2014/Zoology/Summer/ZY4019Sum2014.pdf
exams2014/Zoology/Summer/ZY4029Sum2014.pdf <- This is added by me

я добавил это, чтобы показать, что сортировка также зависит от 4-го поля. У него тот же год и то же 3-е поле, но другое 4-е поле. Если я правильно понял, это должно сделать то, что ты хочешь.

sort -t/ -k3,3 -k1.6nr,1.9 -k4 file

Вывод:

exams2013/Zoology/Autumn/ZY4019Aut2013.pdf
exams2012/Zoology/Autumn/ZY4019Aut2012.pdf
exams2014/Zoology/Summer/ZY4019Sum2014.pdf
exams2014/Zoology/Summer/ZY4029Sum2014.pdf
exams2013/Zoology/Summer/ZY4019Sum2013.pdf
exams2012/Zoology/Summer/ZY4019Sum2012.pdf
exams2011/Zoology/Summer/ZY4019Sum2011.pdf
exams2010/Zoology/Summer/ZY4019Sum2010.pdf
exams2009/Zoology/Summer/ZY4019.pdf
exams2008/Zoology/Summer/ZY4019Sum08.pdf

Сначала отсортируйте 3-е поле ( -k3,3 ), затем первые символы поля 6-9 должны быть обратными и цифровыми ( -k1,6nr, 1,9 ), и, наконец, 4-е поле ( -k4 ).

-121--133279-

Дата неправильно извлечена из имени файла. Для этого необходимо выполнить следующую операцию

    date=${f#*}
    date=${date%.gz}
    date=`echo $date| rev `
    date=${date:0:8}
    date=`echo $date| rev `

Эта дата теперь может использоваться для сравнения и удаления

-121--217146-

Примечание: Хотя NTP имел эту идею о наноядре, которое может быть использовано для исправления ОС, которые не используют NTP, в Linux, в частности, в этом случае нет. Код NTP находится в самом ядре, как вы намекаете на 1 .

0: Как этому Nanokernel удается обеспечить точность, меньшую, чем отметка системных часов (например, точность ns)?

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

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

Если ntp находится в ядре, как и для Linux, это время устройства GPS, а не системное время, может использоваться в вызовах gettimeofday () .

Что касается часов компьютера, конечно, я сравниваю время, которое я получаю с GPS или атомными часами, с тем, что компьютер, и когда он получает больше, чем галочка, я решаю отрегулировать его обратно с помощью adjtime (), описанной в ответе на вопрос 3.

  1. Если и когда эта модификация была включена в основную линейку ядра Linux?

Идея NTP Nanokernel была представлена в ntp версии 4.0, которая восходит по крайней мере к 1998 году. Я думаю, что это было в ядре Linux в какой-то форме, по крайней мере, с 2.2.36. linux github регистраций сообщает 1 октября 2006 года о том, что ntp-код был разделен на собственный файл ntp.c в ядре. Но, конечно, это было раньше.

В целом, ничего из этого не является новым.

  1. Как он использует счетчик циклов, потому что насколько мне известно, он не доставляет прерывание, как и Nanokernel непрерывно считывает значение реестра процессора, содержащее текущий счетчик?

Он использует это, как любая другая программа считывает переменную программы. Когда код с его использованием запускается и значение необходимо, скажем, потому что он получил новую информацию обратно,считывает переменную и обновляет ее. Если кому-то нужно получить время, он также использует его в этом расчете. Так что, если код не был написан очень глупым способом (и я уверен, что это не так), нет, он не «непрерывно считывает значение реестра процессора» больше, чем необходимо.

  1. Наконец, NTPD когда-либо изменяет тактовую частоту CPU или просто поддерживает программный тактовый сигнал, где вычисленная настройка тактового сигнала равна applied?

Используется системный вызов adjtime () , который возвращается еще до 1998 года. Регулировочное время обеспечивает периодическое пропускание счетчиком часов приращения для замедления или приращения более чем на 1 для ускорения.

2
27.01.2020, 20:19

Теги

Похожие вопросы