Что такое кэш ядра (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.