Каква е разликата между ядрото и черупката?


Отговор 1:

Травис Ханс

  • Какво се случва, ако имаме САМО ядрото, но НЕ има обвивка? След това имате машина с действителната ОС, но няма начин да я използвате. Няма "интерфейс" за човешкото взаимодействие с ОС и оттам с машината. (Ако приемем, че графичните интерфейси не съществуват, за простота:) Какво се случва, ако имаме САМО черупката, но НЕ ядро? Това е невъзможно. Shell е програма, предоставена от ОС, така че можете да взаимодействате с нея. Без ядрото / ОС нищо не може да се изпълни (в известен смисъл, не 100% вярно, но вие получавате идеята)

[Код]

ядро:

по-мека, обикновено годна за консумация част от орех, семе или плодов костил, съдържащи се в твърдата му обвивка. [/ code]


Отговор 2:

Краткият отговор е в старите времена (50-те, 60-те и началото на 70-те) няма разлика между двете, но към средата на 60-те като разработчици на ОС решихме, че е лоша идея и започнахме да слоя системата по-добре да се разделя функционалност. Днес, без значение за коя ОС използвате картината, изглежда почти така:

Ядрото има няколко основни отговорности:

  1. Свързване с HW и предоставяне на еднакви имена и модели за различни услуги, които ОС предоставя за изпълнение на програми, осигуряващи защита / сигурност между различни действия, възникващи в паметта на програмата за зареждане / разтоварване на системата и стартиране / спиране на тях, както е подходящо

Ядрото прави това с малък брой добре дефинирани интерфейси, които наричаме „системни повиквания“, които имат точно определени резултати за конкретни действия. Ако програмата представи нещо или някакъв набор от информация на ядрото, ядрото ще върне нещо друго в замяна на тази програма (или грешка).

От друга страна, черупката или командната система е първична програма за интерфейс с човека, въпреки че понякога тя също може да бъде програмируема в скриптов смисъл, така че да могат да се извършват по-сложни действия. Работата му е да превежда от идеи от по-високо ниво в действия, които компютърът може да предприеме по желание на човека. Той използва интерфейсите на OS за услугите, които ядрото предоставя, изпълнява тези операции за човека. В резултат на това терминът „черупка“ идва от идеята / наблюдението, че като потребител „виждате: компютърът сякаш е затворен в черупка“ (т.е. в затворена стая) и единствените неща за компютъра, които вие може да наблюдавате са нещата, които черупката ви позволява да видите. Всичко останало за компютъра е скрито от вас, потребителя.

Както казах, в по-стари времена командната система се завинтваше в ядрото и обикновено не беше отделна програма. Така се разработиха системи като TSS / 360, OS / 360, RT / 11, TOPS и т.н. и първоначално VMS. Като направи командната система, известна още като обвивката, отделна програма от самото ядро, както беше направено с Multics и UNIX, това означаваше, че от същите части за фондация могат да бъдат създадени различни потребителски интерфейси. До края на 70-те повечето ОС отделят командния интерпретатор / обвивка и ядрото в модела, който показвам по-горе.

Помислете например за Mac OSx и Linux. Въпреки че и двете се базират на „UNIX“ технологии и всички поддържат някакъв вид на UNIX обвивка като интерфейс на командния ред, основният опит за вход варира значително в зависимост от „дистрибутора, как е настроен, кой графичен интерфейс използва или коя обвивка е настроена като черупка за вход. „Усещането“ на системите може да бъде съвсем различно. В действителност, Linux и UNIX често са „вградени“ в устройства като навигационните системи в автомобила или вашия „TiVo“ и е малко вероятно да видите „подкана за подсказване“ на тези устройства.

Забележете, Windows не се различава по функционалност и може да направи същото, въпреки че подмяната на интерфейса му се извършва по-рядко. Ключовият момент е, че ядрото и потребителският интерфейс са разделени в слоевете и в резултат на това могат да се вмъкват различни потребителски интерфейси, когато има смисъл.


Отговор 3:

Краткият отговор е в старите времена (50-те, 60-те и началото на 70-те) няма разлика между двете, но към средата на 60-те като разработчици на ОС решихме, че е лоша идея и започнахме да слоя системата по-добре да се разделя функционалност. Днес, без значение за коя ОС използвате картината, изглежда почти така:

Ядрото има няколко основни отговорности:

  1. Свързване с HW и предоставяне на еднакви имена и модели за различни услуги, които ОС предоставя за изпълнение на програми, осигуряващи защита / сигурност между различни действия, възникващи в паметта на програмата за зареждане / разтоварване на системата и стартиране / спиране на тях, както е подходящо

Ядрото прави това с малък брой добре дефинирани интерфейси, които наричаме „системни повиквания“, които имат точно определени резултати за конкретни действия. Ако програмата представи нещо или някакъв набор от информация на ядрото, ядрото ще върне нещо друго в замяна на тази програма (или грешка).

От друга страна, черупката или командната система е първична програма за интерфейс с човека, въпреки че понякога тя също може да бъде програмируема в скриптов смисъл, така че да могат да се извършват по-сложни действия. Работата му е да превежда от идеи от по-високо ниво в действия, които компютърът може да предприеме по желание на човека. Той използва интерфейсите на OS за услугите, които ядрото предоставя, изпълнява тези операции за човека. В резултат на това терминът „черупка“ идва от идеята / наблюдението, че като потребител „виждате: компютърът сякаш е затворен в черупка“ (т.е. в затворена стая) и единствените неща за компютъра, които вие може да наблюдавате са нещата, които черупката ви позволява да видите. Всичко останало за компютъра е скрито от вас, потребителя.

Както казах, в по-стари времена командната система се завинтваше в ядрото и обикновено не беше отделна програма. Така се разработиха системи като TSS / 360, OS / 360, RT / 11, TOPS и т.н. и първоначално VMS. Като направи командната система, известна още като обвивката, отделна програма от самото ядро, както беше направено с Multics и UNIX, това означаваше, че от същите части за фондация могат да бъдат създадени различни потребителски интерфейси. До края на 70-те повечето ОС отделят командния интерпретатор / обвивка и ядрото в модела, който показвам по-горе.

Помислете например за Mac OSx и Linux. Въпреки че и двете се базират на „UNIX“ технологии и всички поддържат някакъв вид на UNIX обвивка като интерфейс на командния ред, основният опит за вход варира значително в зависимост от „дистрибутора, как е настроен, кой графичен интерфейс използва или коя обвивка е настроена като черупка за вход. „Усещането“ на системите може да бъде съвсем различно. В действителност, Linux и UNIX често са „вградени“ в устройства като навигационните системи в автомобила или вашия „TiVo“ и е малко вероятно да видите „подкана за подсказване“ на тези устройства.

Забележете, Windows не се различава по функционалност и може да направи същото, въпреки че подмяната на интерфейса му се извършва по-рядко. Ключовият момент е, че ядрото и потребителският интерфейс са разделени в слоевете и в резултат на това могат да се вмъкват различни потребителски интерфейси, когато има смисъл.


Отговор 4:

Краткият отговор е в старите времена (50-те, 60-те и началото на 70-те) няма разлика между двете, но към средата на 60-те като разработчици на ОС решихме, че е лоша идея и започнахме да слоя системата по-добре да се разделя функционалност. Днес, без значение за коя ОС използвате картината, изглежда почти така:

Ядрото има няколко основни отговорности:

  1. Свързване с HW и предоставяне на еднакви имена и модели за различни услуги, които ОС предоставя за изпълнение на програми, осигуряващи защита / сигурност между различни действия, възникващи в паметта на програмата за зареждане / разтоварване на системата и стартиране / спиране на тях, както е подходящо

Ядрото прави това с малък брой добре дефинирани интерфейси, които наричаме „системни повиквания“, които имат точно определени резултати за конкретни действия. Ако програмата представи нещо или някакъв набор от информация на ядрото, ядрото ще върне нещо друго в замяна на тази програма (или грешка).

От друга страна, черупката или командната система е първична програма за интерфейс с човека, въпреки че понякога тя също може да бъде програмируема в скриптов смисъл, така че да могат да се извършват по-сложни действия. Работата му е да превежда от идеи от по-високо ниво в действия, които компютърът може да предприеме по желание на човека. Той използва интерфейсите на OS за услугите, които ядрото предоставя, изпълнява тези операции за човека. В резултат на това терминът „черупка“ идва от идеята / наблюдението, че като потребител „виждате: компютърът сякаш е затворен в черупка“ (т.е. в затворена стая) и единствените неща за компютъра, които вие може да наблюдавате са нещата, които черупката ви позволява да видите. Всичко останало за компютъра е скрито от вас, потребителя.

Както казах, в по-стари времена командната система се завинтваше в ядрото и обикновено не беше отделна програма. Така се разработиха системи като TSS / 360, OS / 360, RT / 11, TOPS и т.н. и първоначално VMS. Като направи командната система, известна още като обвивката, отделна програма от самото ядро, както беше направено с Multics и UNIX, това означаваше, че от същите части за фондация могат да бъдат създадени различни потребителски интерфейси. До края на 70-те повечето ОС отделят командния интерпретатор / обвивка и ядрото в модела, който показвам по-горе.

Помислете например за Mac OSx и Linux. Въпреки че и двете се базират на „UNIX“ технологии и всички поддържат някакъв вид на UNIX обвивка като интерфейс на командния ред, основният опит за вход варира значително в зависимост от „дистрибутора, как е настроен, кой графичен интерфейс използва или коя обвивка е настроена като черупка за вход. „Усещането“ на системите може да бъде съвсем различно. В действителност, Linux и UNIX често са „вградени“ в устройства като навигационните системи в автомобила или вашия „TiVo“ и е малко вероятно да видите „подкана за подсказване“ на тези устройства.

Забележете, Windows не се различава по функционалност и може да направи същото, въпреки че подмяната на интерфейса му се извършва по-рядко. Ключовият момент е, че ядрото и потребителският интерфейс са разделени в слоевете и в резултат на това могат да се вмъкват различни потребителски интерфейси, когато има смисъл.