Каква е разликата между обвивка, конзола, терминал и ядро? Също така, каква е разликата между shell и приложни програми?


Отговор 1:

Shell: Интерфейс за достъп до системните услуги, предоставяни от ОС. По принцип това е интерпретатор, който интерпретира командите, които предоставяте и ги преобразува в системни повиквания.

Конзола: Това е устройство, което позволява на потребителя да дава входове под формата на команди и показва съобщения, предупреждения и изход на ядрото.

Терминал: Системните конзоли могат да бъдат генерализирани до компютърни терминали, където терминалът е хардуерно устройство, използвано за въвеждане на данни и показване на данни от компютър.

Конзолата е нещо като терминален емулатор.

Ядро: Тя е централното ядро ​​на операционната система. Той контролира всичко, което се случва в системата и комуникира с хардуера. Той изпълнява задачи като изпълнение на процеси, обработка на прекъсвания и др. Има много подсистеми като управление на процеси, планиране, управление на файлове, управление на устройства и управление на мрежата.

Съставяне на всичко това заедно: Командата, въведена на емулатор на конзола / терминал, се интерпретира от черупката, за да се изпълни ядрото. Така потребителят комуникира чрез черупката с ядрото.


Отговор 2:

1> Всички черупки на преден план (тези със stdin, stdout и stderr) трябва да бъдат свързани с терминал. Така че когато отворите терминал, ще видите, че обвивката, свързана с вашето влизане (проверете / etc / passwd за подробности), се извиква. Първото влизане в конзолата извиква обвивка за вход.

2> Терминалът предоставя начин за показване на знаци. Например. shell използва променливите на средата LINES и COLUMNS, за да знае размера на "дисплея" (всъщност размера на терминала) и предава информацията на всички свои деца. Когато в обвивката се извика редактор (като vi), той наследява тези променливи на средата и показва екрана на редактора, като използва размера на прозореца, определен от LINES и COLUMNS. С прости думи, терминалът осигурява дисциплина на линията и осигурява механизъм за управление на I / O на STDOUT, STDERR и STDIN.

3> Console е терминал по подразбиране, който не се нуждае от X-windows система. Това е като терминал за интерфейс на символни клетки. Това се използва от ядрото, за да показва съобщенията си по време на зареждане и по време на работа и по време на паника. Конзолата се използва, когато не може да се използва X-windows система. По време на стартиране системата X-windows не се появява. По време на паниката на системата, на X-windows системата не може да се вярва, тъй като сривът може да се дължи на повреда в паметта. Записването в конзолата обикновено се извършва чрез директно записване в UART портове.

4> Да. Това всъщност означава, че командата се изпълнява върху обвивка, свързана с терминал.

5> Shell е просто още една приложна програма. Единствената разлика е, че изчаква () s на всичките си деца (тези, които са извикани в този терминал / черупка) и изчиства адресното пространство, след като детето излезе / срине. Това е подобно на това, което прави init / upstart / systemd. Демоните се управляват директно от init / upstart / systemd, тъй като нямат свързан терминал (те затварят STDIN, STDOUT и STDERR).

6> Командният ред се отнася до черупката.