Як алгоритмічно керувати ОС / etc / hosts?


1

У мене величезний файл / etc / hosts з 18 000 рядків. Я використовую це для блокування рекламодавців і подібних. Моя ефективність перегляду здається прекрасною, але мені цікаво, чи є якийсь розмір, при якому я почну сповільнювати себе? Як ОС зберігає файл хостів під час роботи? Я можу придумати безліч способів - від повільного до швидкого, і моє апріорне припущення полягає в тому, що з ним керують ефективно, оскільки він є настільки важливим для мереж. Ось кілька способів, які я можу придумати, від простих до складніших:

  • Читайте з файлу кожен раз, коли це потрібно.
  • Прочитайте один раз
    • лінійний пошук
    • сортування, а потім двійковий пошук
    • використовувати трійку
    • використовувати хеш, але як це мінімізує зіткнення

Існує маса способів, які здаються розумними. Що насправді використовується?

Схоже, на це питання, мабуть, вже десь відповіли, тому вказівки на існуючий ресурс вітаються. Я виглядав, але, можливо, не в потрібному місці.


Для уточнення, не ОС обробляє /etc/hosts, а скоріше libc.
Ігнасіо Васкес-Абрамс

Щоб уточнити далі, libc, будучи основним інтерфейсом між ядром та користувачем, вважається частиною ОС.
jlliagre

У Linux в будь-якому випадку інші операційні системи можуть (і будуть) відрізнятися.
Крик Хавок

Відмінність у чому?
jlliagre

Тож якщо я десь знайду джерело, щоб десь знаходитись, я маю змогу знайти відповідь?
user43031

Відповіді:


1

Вам слід сказати, яку ОС ви використовуєте, але в будь-якому випадку, звичайним методом підвищення продуктивності роздільної здатності імен у Unix та Unix-подібній системі є використання демона (зазвичай nscd), який кешує позитивні та негативні рішення та швидко відповідає на більшість запитів. Коли / etc / hosts змінено, принаймні за Solaris, цей кеш недійсний.


Я використовую кілька варіантів декількох операційних систем. Мені були б цікаві деталі, як це обробляється на будь-якому з них. Покажчик на nscd корисний. Я не переживаю, що станеться, коли etc / hosts змінено. Мене цікавить спосіб зберігання та доступу до кешу.
user43031

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.