Шта се дешава у процесу покретања Мац ОС Кс-а?

Anonim

Да ли сте се икада запитали шта се дешава током процеса покретања и покретања Мац ОС Кс-а? Са Мац ОС Кс-ом је мало компликованије него што су ствари некада биле, а давно су прошли дани класичног Мац ОС-а (Систем 9, 8, 7, 6), где је гледање како се наши Мац рачунари покрећу са низом екстензија и контролних панела који увек бисмо могли да идентификујемо само по њиховој икони, а затим да копамо по фасцикли Екстензије да бисмо лако прилагодили шта се учитава и дешава при покретању Мац-а.Данас са Уник-овим основама Мац ОС Кс-а, многи корисници потпуно нису свесни шта се дешава иза кулиса.

Па шта се тачно дешава током процеса покретања Мац ОС Кс-а? Увек можете боље погледати тако што ћете покренути Мац у опширном режиму, али то не објашњава нужно све оно што видите. Срећом, одлично објашњење је доступно преко сегмента на КернелТхреад-у, који пажљиво наводи редослед догађаја покретања Мац ОС Кс-а, од почетка до краја. Прилично је темељан и вредан читања, поновљен у наставку за радознале Мац кориснике.

напомена: Као што је читалац истакао, ППЦ користи ОФ (Опенфирмваре), и386 користи ЕФИ (Ектенсибле Фирмваре Интерфаце)

Шта се дешава током процеса покретања Мац ОС Кс-а? Укључите свој Мац и ево шта се дешава:

  • Напајање је укључено.
  • ОФ или ЕФИ код се извршава.
  • Информације о хардверу се прикупљају и хардвер се иницијализује.
  • Нешто (обично ОС, али и ствари као што је Аппле Хардвер Тест, итд.) је изабрано за покретање. Од корисника може бити затражено да изабере шта да покрене.
  • Контрола прелази на /Систем/Либрари/ЦореСервицес/БоотКс, покретач. БоотКс учитава кернел и такође црта значке ОС, ако их има.
  • БоотКс покушава да учита претходно кеширану листу драјвера уређаја (коју је креирао/ажурирао /уср/сбин/кектцацхе). Такав кеш је типа мкект и садржи речнике информација и бинарне датотеке за више екстензија кернела. Имајте на уму да ако је мкект кеш оштећен или недостаје, БоотКс ће тражити у /Систем/Либрари/Ектенсионс за екстензије које су потребне у тренутном сценарију (како је одређено од вредност својства ОСБундлеРекуиред у Инфо.плист датотеци пакета екстензије.
  • инит рутина језгра се извршава. Одређује се роот уређај система за покретање. У овом тренутку, фирмвер више није доступан.
  • Различите Мацх/БСД структуре података су иницијализоване од стране кернела.
  • И/О комплет је иницијализован.
  • Кернел покреће /сбин/мацх_инит, демон за именовање Мацх сервиса (боотстрап). мацх_инит одржава мапирања између назива услуга и Мацх портова који обезбеђују приступ тим услугама.

Одавде, покретање постаје на нивоу корисника:

  • мацх_инит почиње /сбин/инит, традиционални БСД инит процес. инит одређује ниво покретања и покреће /етц/рц.боот, што поставља машину довољно за покретање једног корисника.

Током његовог извођења, рц.боот и други рц извор скрипти /етц/рц.цоммон , схелл скрипта која садржи услужне функције, као што је ЦхецкФорНетворк() (проверава да ли је мрежа покренута), ГетПИД (), пургедир() (брише само садржај директоријума, не и структуру), итд.

  • рц.боот одређује тип покретања (вишекориснички, безбедни, ЦД-РОМ, мрежа итд.). У случају покретања мреже (променљива сисцтл променљива керн.нетбоот ће бити постављена на1 у ком случају), покреће се /етц/рц.нетбоот са старт аргумент.

/етц/рц.нетбоот обрађује различите аспекте мрежног покретања. На пример, врши мрежна и (ако их има) локална монтирања. Такође позива /уср/бин/нбст да повеже датотеку у сенци са сликом диска која се користи као основни уређај.Идеја је да се уписи преусмере на фајл у сенци, за који се надамо да се налази у локалном складишту.

  • рц.боот открива да ли је потребна провера доследности система датотека. Једнокорисничко покретање и покретање са ЦД-РОМ-а не покрећу фсцк. СафеБоот увек покреће фсцк. рц.боот такође обрађује повратни статус фсцк-а.
  • Ако рц.боот успешно изађе, /етц/рц , затим се покреће скрипта за више корисника. Ако се покреће са ЦД-РОМ-а, скрипта се пребацује на /етц/рц.цдром (инсталација).
  • /етц/рц монтира локалне системе датотека (ХФС+, ХФС, УФС, /дев/ фд, /.вол), осигурава да директоријум /привате/вар/тмп постоји и покреће /етц/рц.инсталлер_цлеануп, ако постоји (остављен од инсталатера пре поновног покретања).
  • /етц/рц.цлеануп се покреће. Он „чисти“ одређени број директоријума/фајлова специфичних за Уник и Мац.
  • БоотЦацхе је покренут.
  • Различите сисцтл варијабле су подешене (као што је максимални број вноде-а, Систем В ИПЦ, итд.). Ако /етц/сисцтл.цонф постоји (плус /етц/сисцтл-мацосксервер.цонф на Мац ОС Кс серверу), чита се и сисцтл променљиве садржане у њему се постављају.
  • сислогд је покренут.
  • Махова датотека симбола је креирана.
  • /етц/рц почиње кектд, демон процес који учитава проширење кернела на захтев процеса кернела или клијента.
  • /уср/либекец/регистер_мацх_боотстрап_серверс се покреће за учитавање различитих услуга заснованих на Мацх боотстрап-у садржаних у / етц/мацх_инит.д
  • портмап и нетинфо су покренути.
  • Ако је /Систем/Либрари/Ектенсионс.мкект старији од /Систем/Либрари/Ектенсионс , /етц/рц брише постојећи мкект и креира нови. Такође га ствара ако не постоји.
  • /етц/рц почиње /уср/сбин/упдате , демон који често испушта кеш меморије унутрашњег система датотека на диск.
  • /етц/рц покреће систем виртуелне меморије. /привате/вар/вм је подешен као директоријум за замену. /сбин/динамиц_пагер се покреће одговарајућим аргументима (шаблон путање за име датотеке, величина креираних датотека за размену, окидачи упозорења о високој и ниској води који одређују када треба креирати додатну замену датотеке или избришите постојеће).
  • /етц/рц почиње /уср/либекец/фик_пребиндингда поправите нетачне унапред везане бинарне датотеке.
  • /етц/рц извршава /етц/рц.цлеанупза чишћење и ресетовање датотека и уређаја.
  • /етц/рц коначно покреће /сбин/СистемСтартер за руковање ставкама за покретање са локација као што су /Систем/Либрари/СтартупИтемс и /Либрари/СтартупИтемс СтартупИтем је програм, обично схелл скрипт, чије име одговара имену фасцикле. Фасцикла садржи датотеку са листом својстава која садржи парове кључ/вредност као што су Десцриптион, Провидес, Рекуирес, ОрдерПреференце, старт/стоп поруке итд. Можете покренути СистемСтартер -н -Д као роот да би програм штампао информације о отклањању грешака и зависности (без стварног покретања било чега).
  • ЦореГрапхицс стартуп ставка покреће Аппле Типе Сервицес демон (АТССервер ) као и Виндов Сервер (ВиндовСервер).

А онда се ваш Мац покреће!

Можете и сами да видите део ове активности помоћу опширног режима (који можете да покренете у опширном режиму по покретању, или чак можете да подесите Мац да се увек покреће у опширном режиму ако желите да увек видите покретање у уник стилу), али ово је прилично детаљно објашњење.

Аппле такође има неку документацију доступну о процесу покретања Мац-а доступну овде у њиховој библиотеци документације за програмере овде.

Имајте на уму да оригинална УРЛ адреса која даје горе наведене информације више није активна, тако да је тај пост укључен горе за потомке путем кеша. Оригинални извор је била нит на КернелТхреад-у на следећем УРЛ-у: хттп://ввв.кернелтхреад.цом/мац/оск/арцх_стартуп.хтмл који је тренутно ван мреже и не преусмерава на нову локацију.

Ако имате било какве ситнице или друге додатке да додате секвенци покретања Мац ОС Кс-а, поделите је у коментарима!

Шта се дешава у процесу покретања Мац ОС Кс-а?