Что такое кэш ядра (kernel cache)?

UPD.1 – читайте в примечании

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


Кэш или кеш (англ.cache, от фр. cacher — «прятать»; произносится [kæʃ] — «кэш») — промежуточный буфер с быстрым доступом, содержащий информацию, которая может быть запрошена с наибольшей вероятностью. Доступ к данным в кэше осуществляется быстрее, чем выборка исходных данных из более медленной памяти или удаленного источника, однако её объём существенно ограничен по сравнению с хранилищем исходных данных.

© Википедия

Другими словами, кэш – уже собранная в процессе работы информация, к которой чаще всего происходит обращение. Все еще сложно? Кэш анализирует вашу систему и поведение, чтобы потом применить психологическую атаку и поработить вас ускорить работу, откидывая лишние кексты и скрипты во время загрузки. И правда – зачем вашей системе грузить кекст, допустим, AMD2400Controller.kext, когда у вас AMD в жизни не было, и стоит nVidia?


Кэш ядра начинает собираться еще при первой загрузке, анализируя, что нужно, а что вообще не используется системой. Продолжается это все дело и во время работы с системой. Например, вы никогда не используете слот SDXC, который присутствует у вас в ноутбуке, и который заведен – да, система его будет видеть, но приоритет кекста AppleSDXC.kext, который отвечает за его работу, будет понижен. Скажем так – это расширение будет “на низком старте”, но полноценно он заработает только после обращения непосредственно к нему.

Идя методом “от обратного”, можно так же выделить повышающийся приоритет некоторых кекстов и скриптов, например таких как DSMOS (Don’t Steal Mac OS X.kext), которые необходимы системе.

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


А теперь каверзный вопрос, ради которого эту статью вообще написали, и ради которого её читаете вы*: “А для чего его сбрасывать или обновлять?”. А все очень и очень просто.

  • Сброс кэша необходим, если вы не можете загрузиться в систему, так как, возможно, в кэш попал какой-либо неверный параметр, или же устаревшая выборка. А так же иногда помогает на “Хаме, Химере, ХРС, короче, ББХ (Бутере на Букву Х)” ©Slice. Зачастую им необходима загрузка без кеша, так как fakeEFI не очень с этим дружит.

Собственно, как сбросить кэш:

  1. Скачать сие прекрасную программу;
  2. Открыть её, и во вкладке “Сервис” нажать галочку возле /S/L/E.Kext Wizard 2015-03-05 00-45-19
  3. Нажимаете начать, и после перезагрузится.

 

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

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

  • Для настоящих маков – загрузка с удержанием кнопки f на клавиатуре;
  • Для пользователей ББХ – ключ “-f”;
  • Для пользователей Кловера – нажатие на пробел, и выбор “Boot Mac OS X without cache”.
  • А так же, можно попробовать из самой системы – программкой:
    1. Скачать сие прекрасную программу;
    2. Открыть её, и во вкладке “Сервис” нажать галочку “Обновить кэш”.Kext Wizard 2015-03-05 00-53-49

Вот, собственно, и всё! Надеемся, что администрация osxpc.ru пролила ясность в это дело. Удачных вам экспериментов, а так же помните – бэкап никто не отменял!

 


* конечно, не факт – может быть вы просто блуждали по сети, и случайно забрели к нам на сайт; или же вы НЛО, который изучает все, что связано с человеческой цивилизацией. Факт остается фактом: главная цель статьи – дать четкое определение, какой смысл в сбросе кэша.

UPD – спасибо пользователю Dmitry за дополнительную информацию. Ознакомьтесь здесь.

3 комментария to “Что такое кэш ядра (kernel cache)?

  • Не совсем правильно. Если кеш склеился неправильно; т.е. если в mkext есть какие-то драйверы привязки которых к другим драйверам оборвались – система начнет снова рыться в /S/L/E и перезагружать кексы. Можно выключить дисаблером, но это ничего не даст в плане мега скорости.

    Минус запихивания всего /S/L/E состоит еще и в том, что после обновления вы рискуете не завестись вообще. Еще есть bootcaches playlist ближе к ядру и BSD.

    Кэш ядра вообще не нужен если честно. Смело можно -f и делать mkext, который с минимальным вариантом двух архитектур i386 и i486(x64) будет грузить только дополнительные для системы OS X kext. Делается это терминалом c настройками debug, log выключенными после проверки и степенью сжатия макисмум. На скорость не влияет почти, а вот стабильность будет уже вовсе непоколебимой.

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

  • В новых версиях кловера исчез пункт boot without caches. Как быть без сей программулины?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.