Принцип построения ос linux
рПМШЪПЧБФЕМЙ ВЕЪ ДПУФБФПЮОПЗП ПРЩФБ ТБВПФЩ Ч УЙУФЕНЕ Linux ЮБУФП ОЕРТБЧЙМШОП РПОЙНБАФ ЛПОГЕРГЙА УЙУФЕНЩ Linux Й ПЦЙДБАФ ПФ ОЕЈ ФПЗП, ЮФП ПОБ ОЕ НПЦЕФ ДБФШ. дМС ФПЗП, ЮФПВЩ ЬЖЖЕЛФЙЧОП ЙУРПМШЪПЧБФШ УЙУФЕНХ, ЧБЦОП РПОСФШ ЖЙМПУПЖЙА Й РТЙОГЙР РПУФТПЕОЙС УЙУФЕНЩ Linux. нЩ ОБЮОЈН У ПРЙУБОЙС ФПЗП РТЙОГЙРБ, РП ЛПФПТПНХ УЙУФЕНБ Linux ОЕ РПУФТПЕОБ.
ч ЛПНРБОЙСИ, ТБЪТБВБФЩЧБАЭЙИ ЛПННЕТЮЕУЛЙЕ РТПЗТБННЩ ДМС УЙУФЕНЩ UNIX, ОБ ЧУЕН РТПФСЦЕОЙЙ ТБЪТБВПФЛЙ УЙУФЕНЩ УПВМАДБЕФУС УФТПЗБС НЕФПДЙЛБ ПВЕУРЕЮЕОЙС ЛБЮЕУФЧБ. ч ЬФХ НЕФПДЙЛХ ЧИПДСФ УЙУФЕНЩ ЛПОФТПМС ЪБ ЙУИПДОЩНЙ ФЕЛУФБНЙ, УЙУФЕНЩ ЛПОФТПМС ЪБ ЙЪНЕОЕОЙСНЙ УЙУФЕНЩ, НЕФПДЙЛЙ ЧЕДЕОЙС ДПЛХНЕОФБГЙЙ, Й НЕФПДЙЛЙ, РП ЛПФПТЩН УППВЭБАФУС Й ЙУРТБЧМСАФУС ПЫЙВЛЙ. тБЪТБВПФЮЙЛЙ ОЕ НПЗХФ, ТХЛПЧПДУФЧХСУШ ЧОЕЪБРОП РПСЧЙЧЫЕКУС Х ОЙИ ЙДЕЕК, ДПВБЧЙФШ ОПЧЩЕ ЧПЪНПЦОПУФЙ Ч УЙУФЕНХ ЙМЙ ЙЪНЕОЙФШ ЕЈ ЛМАЮЕЧЩЕ ТБЪДЕМЩ. йЪНЕОЕОЙС ДПМЦОЩ ВЩФШ ПВПУОПЧБОЩ УППВЭЕОЙЕН ПВ ПЫЙВЛЕ, Й УППВЭЕОЙЕ ПВ ЙЪНЕОЕОЙСИ ДПМЦОП ВЩФШ ЪБОЕУЕОП Ч УРЕГЙБМШОХА УЙУФЕНХ ЛПОФТПМС ЙУИПДОПЗП ФЕЛУФБ, ФБЛ ЮФП РТЙ ОЕПВИПДЙНПУФЙ УДЕМБООЩЕ ЙЪНЕОЕОЙС НПЗХФ ВЩФШ ПФНЕОЕОЩ. лБЦДПНХ ТБЪТБВПФЮЙЛХ РПТХЮБАФУС ПДОБ ЙМЙ ОЕУЛПМШЛП ЮБУФЕК ТБЪТБВБФЩЧБЕНПК УЙУФЕНЩ, Й ФПМШЛП ПО НПЦЕФ ЙЪНЕОСФШ ЬФЙ ТБЪДЕМЩ УЙУФЕНЩ, РПЛБ ЬФЙ ТБЪДЕМЩ ОБИПДСФУС Х ОЕЗП Ч ТБЪТБВПФЛЕ, Й ДП ФЕИ РПТ, РПЛБ ПОЙ ОЕ ВХДХФ ПФНЕЮЕОЩ ЛБЛ ЗПФПЧЩЕ.
ч ФБЛЙИ ПТЗБОЙЪБГЙСИ ЙНЕЕФУС УРЕГЙБМШОЩК ПТЗБОЙЪБГЙПООП ПЖПТНМЕООЩК ПФДЕМ ПВЕУРЕЮЕОЙС ЛБЮЕУФЧБ. ьФПФ ПФДЕМ РТПЙЪЧПДЙФ УФТПЗПЕ ФЕУФЙТПЧБОЙЕ ЛБЦДПК ОПЧПК ЧЕТУЙЙ УЙУФЕНЩ Й УППВЭБЕФ П ЧУЕИ ЪБНЕЮЕООЩИ ПЫЙВЛБИ. чЩСЧМЕООЩЕ ПЫЙВЛЙ ЙУРТБЧМСАФУС ТБЪТБВПФЮЙЛБНЙ. рЕТЕД ЧЩИПДПН ПЮЕТЕДОПК ЧЕТУЙЙ УЙУФЕНЩ ПВЩЮОП ФТЕВХЕФУС, ЮФПВЩ ПРТЕДЕМЈООЩК РТПГЕОФ ПЫЙВПЛ ВЩМ ЙУРТБЧМЕО, Й ЮФП УЙУФЕНБ ЛБЛ ГЕМПЕ ХДПЧМЕФЧПТСЕФ ОЕЛПФПТЩН ЛПОЛТЕФОЩН ЛТЙФЕТЙСН. дМС ЬФПЗП ЙУРПМШЪХАФУС УМПЦОЩЕ УЙУФЕНЩ УФБФЙУФЙЮЕУЛПЗП БОБМЙЪБ.
чРПМОЕ РПОСФОП, ЮФП ЛПНРБОЙЙ-РТПЙЪЧПДЙФЕМА РТПЗТБННОПЗП ПВЕУРЕЮЕОЙС ФТЕВХЕФУС ПГЕОЙЧБФШ УФЕРЕОШ ЗПФПЧОПУФЙ ПЮЕТЕДОПК ЧЕТУЙЙ РТПЗТБННЩ Л ПФРТБЧЛЕ ОБ ФЙТБЦЙТПЧБОЙЕ. юБУФП ЦЕМБФЕМШОП, ЮФПВЩ ЬФБ ПГЕОЛБ ВЩМБ ЛПМЙЮЕУФЧЕООПК. рПЬФПНХ ЛПНРБОЙС ЪБОЙНБЕФУС УВПТПН УФБФЙУФЙЮЕУЛПК ЙОЖПТНБГЙЙ П РТПЙЪЧПДЙФЕМШОПУФЙ ПРЕТБГЙПООЩИ УЙУФЕН. тБЪТБВПФЛБ ЛПННЕТЮЕУЛПК ПРЕТБГЙПООПК УЙУФЕНЩ УЕНЕКУФЧБ UNIXљ— ЬФП ВПМШЫПК ЛПННЕТЮЕУЛЙК РТПЕЛФ, ЮБУФП ВПМШЫПК ОБУФПМШЛП, ЮФП Ч ЕЗП ТБНЛБИ ОБОЙНБАФУС УПФОЙ, ЕУМЙ ОЕ ФЩУСЮЙ, РТПЗТБННЙУФПЧ, ЙУРЩФБФЕМЕК РТПЗТБННОПЗП ПВЕУРЕЮЕОЙС, УРЕГЙБМЙУФПЧ РП ОБРЙУБОЙА ДПЛХНЕОФБГЙЙ Й БДНЙОЙУФТБФЙЧОПЗП РЕТУПОБМБ. тБЪХНЕЕФУС, ОЕФ ДЧХИ РПИПЦЙИ ЛПНРБОЙК, ЧЩРХУЛБАЭЙИ ЛПННЕТЮЕУЛЙЕ ПРЕТБГЙПООЩЕ УЙУФЕНЩ УЕНЕКУФЧБ UNIX, ОП ЧУЕ ПОЙ ХЛМБДЩЧБАФУС Ч ПРЙУБООХА ЧЩЫЕ УИЕНХ.
уИЕНБ, РП ЛПФПТПК УПЪДБЧБМБУШ ПРЕТБГЙПООБС УЙУФЕНБ Linux, ОЕ ЙНЕЕФ ОЙЮЕЗП ПВЭЕЗП У НПДЕМША, ПРЙУБООПК ЧЩЫЕ: ЪДЕУШ ОЕФ ПТЗБОЙЪПЧБООПЗП ХРПТСДПЮЕООПЗП ТБЪЧЙФЙС, УЙУФЕНЩ ЛПОФТПМС ЙУИПДОЩИ ФЕЛУФПЧ, УФТХЛФХТЙТПЧБООПК УЙУФЕНЩ ЖЙЛУБГЙЙ ПЫЙВПЛ Й УФБФЙУФЙЮЕУЛПК УЙУФЕНЩ ЛПОФТПМС ЛБЮЕУФЧБ. Linux СЧМСЕФУС ПРЕТБГЙПООПК УЙУФЕНПК, УПЪДБООПК ИБЛЕТБНЙ, Й ЧПЪНПЦОП ОБЧУЕЗДБ ПУФБОЕФУС ФБЛПК. ъБНЕФЙН, ЮФП УМПЧПН ИБЛЕТ Ч ДБООПК ЛОЙЗЕ ПВПЪОБЮБЕФУС УФТБУФОП ХЧМЕЮЈООЩК УЧПЙН ДЕМПН РТПЗТБННЙУФ, ЛПФПТЩК ЙУРЩФЩЧБЕФ ТБДПУФШ ПФ ТБВПФЩ У ЛПНРШАФЕТБНЙ Й У РПНПЭША ЬФЙИ ЛПНРШАФЕТПЧ ДЕМБЕФ ЙОФЕТЕУОЩЕ ЧЕЭЙ. ьФПљ— РЕТЧПОБЮБМШОПЕ ПРТЕДЕМЕОЙЕ УМПЧБ ИБЛЕТ; ПОП ПФМЙЮБЕФУС ПФ ФПЗП УНЩУМБ, ЛПФПТЩК Ч ОЕЗП УФБМЙ ЧЛМБДЩЧБФШ Ч РПУМЕДОЕЕ ЧТЕНС: ОБТХЫЙФЕМШ ЛПНРШАФЕТОПЗП ЪБЛПОПДБФЕМШУФЧБ ЙМЙ РТПЗТБННЙУФ, ОЕ РТЙЪОБАЭЙК ЪБЛПОПЧ.
оЕ УХЭЕУФЧХЕФ ЛБЛПК-МЙВП ПТЗБОЙЪБГЙЙ, ЛПФПТБС ВЩМБ ВЩ ПФЧЕФУФЧЕООБ ЪБ УПЪДБОЙЕ Й ТБЪЧЙФЙЕ УЙУФЕНЩ Linux. мАВПК РТПЗТБННЙУФ У ДПУФБФПЮОЩНЙ ХНЕОЙСНЙ Й ОБЧЩЛБНЙ ЙНЕЕФ ЧПЪНПЦОПУФШ ХЮБУФЧПЧБФШ Ч ТБЪЧЙФЙЙ Й ЙУРТБЧМЕОЙЙ ПЫЙВПЛ СДТБ УЙУФЕНЩ, РЕТЕОПУЙФШ ОПЧПЕ РТПЗТБННОПЕ ПВЕУРЕЮЕОЙЕ ОБ ДТХЗЙЕ РМБФЖПТНЩ, РЙУБФШ ДПЛХНЕОФБГЙА Й РПНПЗБФШ ОЕПРЩФОЩН РПМШЪПЧБФЕМСН. вПМШЫЕК ЮБУФША УППВЭЕУФЧП УПЪДБФЕМЕК УЙУФЕНЩ Linux ПВЭБЕФУС НЕЦДХ УПВПК У РПНПЭША УРЙУЛПЧ ТБУУЩМЛЙ Й ФЕМЕЛПОЖЕТЕОГЙК Usenet. ч РТПГЕУУЕ УПЪДБОЙС УЙУФЕНЩ ЧПЪОЙЛМП ОЕУЛПМШЛП УПЗМБЫЕОЙК. еУМЙ, ОБРТЙНЕТ, ЛБЛПК-ОЙВХДШ РТПЗТБННЙУФ ИПЮЕФ, ЮФПВЩ ЕЗП ЛПД ВЩМ ЧЛМАЮЕОБ Ч «ПЖЙГЙБМШОПЕ» СДТП УЙУФЕНЩ, ПО ПФРТБЧМСЕФ УЧПК ЛПД мЙОХУХ фПТЧБМШДУХ. мЙОХУ фПТЧБМШДУ ФЕУФЙТХЕФ ЬФПФ ЛПД, Й ЕУМЙ ОПЧЩК ЛПД ОЕ РТПФЙЧПТЕЮЙФ ПВЭЕНХ ДЙЪБКОХ УЙУФЕНЩ Й ОЕ ОБТХЫБЕФ ТБВПФХ ДТХЗЙИ ЮБУФЕК УЙУФЕНЩ, ФП ПО ЧЛМАЮБЕФУС Ч СДТП.
рТЙ ТБЪТБВПФЛЕ УЙУФЕНЩ ЙУРПМШЪПЧБМУС ПФЛТЩФЩК ЖХОЛГЙПОБМШОП-ПТЙЕОФЙТПЧБООЩК РПДИПД. ч РПУМЕДОЕЕ ЧТЕНС ЛПМЙЮЕУФЧП ОПЧЩИ ЖХОЛГЙК Й УХЭЕУФЧЕООЩИ ЙЪНЕОЕОЙК, ЧОПУЙНЩИ Ч УЙУФЕНХ, ХНЕОШЫЙМПУШ, Й ПВЭЙН РТБЧЙМПН УФБМП, ЮФП ОПЧБС ЧЕТУЙС СДТБ ЧЩРХУЛБЕФУС ПДЙО ТБЪ Ч ОЕУЛПМШЛП ОЕДЕМШ. тБЪХНЕЕФУС, ДМЙФЕМШОПУФШ РЕТЕТЩЧПЧ НЕЦДХ ЧЩРХУЛБНЙ ОПЧЩИ ЧЕТУЙКљ— ЧЕМЙЮЙОБ ОЕ РПУФПСООБС. уТЕДЙ ЖБЛФПТПЧ, ЧМЙСАЭЙИ ОБ ЧЩРХУЛ ПЮЕТЕДОПК ЧЕТУЙЙљ— ЮЙУМП ЙУРТБЧМЕООЩИ ПЫЙВПЛ, УППВЭЕОЙС ПФ РПМШЪПЧБФЕМЕК, ЙУРЩФЩЧБАЭЙИ РТЕДЧБТЙФЕМШОЩЕ ЧЕТУЙЙ УЙУФЕНЩ, Й, ОБЛПОЕГ, ЧТЕНС, ЛПФПТПЕ ЙНЕМ ДМС УОБ ЪБ ЬФЙ ОЕДЕМЙ УБН мЙОХУ фПТЧБМШДУ.
оЕ МЙЫОЙН ЪДЕУШ ВХДЕФ УЛБЪБФШ, ЮФП РЕТЕД ЧЩРХУЛПН ОПЧПК ЧЕТУЙЙ ОЕ ЧУЕ ПЫЙВЛЙ ХДБЈФУС ЙУРТБЧЙФШ Й ОЕ ЧУЕ РТПВМЕНЩ ТЕЫЙФШ. оПЧБС ЧЕТУЙС УЮЙФБЕФУС УФБВЙМШОПК Й ЧЩРХУЛБЕФУС УТБЪХ, ЛБЛ ФПМШЛП УПЪДБЈФУС ЧРЕЮБФМЕОЙЕ, ЮФП Ч ОЕК ОЕФ ЛТЙФЙЮЕУЛЙИ ЙМЙ ЙУРТБЧМЕООЩИ ТБОЕЕ ПЫЙВПЛ. йДЕС, ЛПФПТБС ДЧЙЦЕФ УПЪДБФЕМСНЙ УЙУФЕНЩ Linux, УПУФПЙФ ОЕ Ч ФПН, ЮФПВЩ УПЪДБФШ УПЧЕТЫЕООХА РТПЗТБННХ, Ч ЛПФПТПК ОЕФ ПЫЙВПЛ, Б УЛПТЕЕ Ч ФПН, ЮФПВЩ УПЪДБФШ УЧПВПДОХА ТЕБМЙЪБГЙА ПРЕТБГЙПООПК УЙУФЕНЩ УЕНЕКУФЧБ UNIX. уЙУФЕНБ Linux РТЕДОБЪОБЮЕОБ ВПМШЫЕ ДМС ТБЪТБВПФЮЙЛПЧ УЙУФЕНЩ, ЮЕН ДМС ЛПЗП-МЙВП ЕЭЈ.
еУМЙ РТПЗТБННЙУФ ОБРЙУБМ ОЕЛПФПТПЕ РТЙМПЦЕОЙЕ ЙМЙ РТПЗТБННХ, ЛПФПТБС ТЕБМЙЪХЕФ ЛБЛХА-МЙВП ОПЧХА ЧПЪНПЦОПУФШ, ПО ПВЩЮОП ТБУРТПУФТБОСЕФ ЕЈ Ч ФБЛ ОБЪЩЧБЕНПК БМШЖБ-ЧЕТУЙЙ, Ф.љЕ. Ч РТПВОПК ЧЕТУЙЙ. ьФБ ЧЕТУЙС РТЕДОБЪОБЮБЕФУС ДМС ФЕИ ПФЧБЦОЩИ РПМШЪПЧБФЕМЕК, ЛПФПТЩЕ ЗПФПЧЩ ЙУЛБФШ ПЫЙВЛЙ Ч РЕТЧПОБЮБМШОПН ЧБТЙБОФЕ РТПЗТБННЩ. рПУЛПМШЛХ ПВЭЕОЙЕ Ч УППВЭЕУФЧЕ ТБЪТБВПФЮЙЛПЧ УЙУФЕНЩ Linux Ч ПУОПЧОПН РТПЙУИПДЙФ ЮЕТЕЪ йОФЕТОЕФ, РТПЗТБННЩ БМШЖБ-ЧЕТУЙЙ ПВЩЮОП ЧЩУФБЧМСАФУС ОБ ПДЙО ЙМЙ ОЕУЛПМШЛП FTP-УБКФПЧ, РПУЧСЭЈООЩИ УЙУФЕНЕ Linux. лТПНЕ ФПЗП, Ч ПДОХ ЙЪ ФЕМЕЛПОЖЕТЕОГЙК Usenet, РПУЧСЭЈООЩИ УЙУФЕНЕ Linux, РПУЩМБЕФУС УППВЭЕОЙЕ П ФПН, ЛБЛ РПМХЮЙФШ ОПЧХА РТПЗТБННХ Й ЛБЛ ЕЈ ЙУРЩФЩЧБФШ. рПМШЪПЧБФЕМЙ, ЛПФПТЩЕ РЕТЕРЙУЩЧБАФ Й ЙУРЩФЩЧБАФ БМШЖБ-ЧЕТУЙЙ ОПЧЩИ РТПЗТБНН, НПЗХФ ЧРПУМЕДУФЧЙЙ ОБРТБЧМСФШ РП ЬМЕЛФТПООПК РПЮФЕ ТЕЪХМШФБФЩ ЙУРЩФБОЙК, УПЧЕФЩ РП ЙУРТБЧМЕОЙА ПЫЙВПЛ Й ЧПРТПУЩ БЧФПТХ.
рПУМЕ ФПЗП, ЛБЛ РЕТЧПОБЮБМШОЩЕ ПЫЙВЛЙ ЙУРТБЧМЕОЩ, РТПЗТБННЕ РТЙУЧБЙЧБЕФУС ВЕФБ-ЧЕТУЙС. ч ВЕФБ-ЧЕТУЙЙ РТПЗТБННБ ПВЩЮОП УЮЙФБЕФУС УФБВЙМШОПК, ОП ОЕ РПМОПК. рТПЗТБННБ Ч ВЕФБ-ЧЕТУЙЙ ТБВПФБЕФ, ОП Х ОЕЈ НПЗХФ ВЩФШ ТЕБМЙЪПЧБОЩ ОЕ ЧУЕ ЖХОЛГЙЙ. рТПЗТБННБ НПЦЕФ ФБЛЦЕ РЕТЕКФЙ ОЕРПУТЕДУФЧЕООП Ч ЛПОЕЮОПЕ УПУФПСОЙЕ, Ч ЛПФПТПН ПОБ ВХДЕФ УЮЙФБФШУС РПМОПК Й ЗПФПЧПК Л ЙУРПМШЪПЧБОЙА.
уМЕДХЕФ ЙНЕФШ Ч ЧЙДХ, ЮФП УЛБЪБООПЕ ЧЩЫЕ СЧМСЕФУС ЧУЕЗП МЙЫШ УПЗМБЫЕОЙСНЙ, Б ОЕ РТБЧЙМБНЙ. оЕЛПФПТЩЕ РТПЗТБННЙУФЩ ОБУФПМШЛП ХЧЕТЕОЩ Ч ЛПТТЕЛФОПУФЙ ОБРЙУБООЩИ ЙНЙ РТПЗТБНН, ЮФП ПОЙ УЮЙФБАФ ОЕПВСЪБФЕМШОЩН ДМС УЕВС ЧЩРХУЛБФШ БМШЖБ- ЙМЙ ВЕФБ-ЧЕТУЙЙ. рПДПВОЩЕ ТЕЫЕОЙС ЧУЕЗДБ РТЙОЙНБАФУС РТПЗТБННЙУФПН, ЛПФПТЩК РЙЫЕФ ДБООХА РТПЗТБННХ.
оБ РЕТЧЩК ЧЪЗМСД НПЦЕФ РПЛБЪБФШУС ХДЙЧЙФЕМШОЩН, ЮФП ФБЛПК ОЕХРПТСДПЮЕООПК УЙУФЕНЕ ДПВТПЧПМШОЩИ РТПЗТБННЙУФПЧ Й ЙУРЩФБФЕМЕК РТПЗТБННОПЗП ПВЕУРЕЮЕОЙС ХДБЈФУС УПЪДБФШ ЪБЛПОЮЕООХА ПРЕТБГЙПООХА УЙУФЕНХ УЕНЕКУФЧБ UNIX. пДОБЛП, ЛБЛ ПЛБЪЩЧБЕФУС, ЪДЕУШ НЩ ЙНЕЕН ДЕМП У ПДОЙН ЙЪ ОБЙВПМЕЕ ЬЖЖЕЛФЙЧОЩИ НЕФПДПЧ УПЪДБОЙС РТПЗТБННОПЗП ПВЕУРЕЮЕОЙС У ПЮЕОШ УЙМШОПК НПФЙЧБГЙЕК ХЮБУФОЙЛПЧ. чУЕ СДТП УЙУФЕНЩ Linux ОБРЙУБОП БВУПМАФОП У ОХМС . рТЙ ОБРЙУБОЙЙ ЛПДБ ОЕ ЙУРПМШЪПЧБМЙУШ ОЙЛБЛЙЕ ЙУФПЮОЙЛЙ, ЪБЭЙЭЈООЩЕ БЧФПТУЛЙНЙ РТБЧБНЙ. рЕТЕОЕУЕОЙЕ ЧУЕЧПЪНПЦОПЗП УЧПВПДОПЗП РТПЗТБННОПЗП ПВЕУРЕЮЕОЙС РПД Linuxљ— ПЗТПНОБС ЪБДБЮБ, ФТЕВХАЭБС ЛПМПУУБМШОЩИ ХУЙМЙК: УПЪДБАФУС Й РЕТЕОПУСФУС ВЙВМЙПФЕЛЙ, ЛПОУФТХЙТХАФУС ЖБКМПЧЩЕ УЙУФЕНЩ, РЙЫХФУС ДТБКЧЕТЩ ДМС НОПЗЙИ РПРХМСТОЩИ ЧЙДПЧ ХУФТПКУФЧљ— Й ЧУЕ ЬФП ДЕМБЕФУС ОБ БВУПМАФОП ДПВТПЧПМШОЩИ ОБЮБМБИ.
пРЕТБГЙПООБС УЙУФЕНБ Linux ПВЩЮОП ТБУРТПУФТБОСЕФУС Ч ЧЙДЕ ДЙУФТЙВХФЙЧПЧљ— ОБВПТПЧ УЧПЕПВТБЪОП ХРБЛПЧБООЩИ РТПЗТБНН, ЛПФПТЩЕ ЧНЕУФЕ УПУФБЧМСАФ РПМОХА УЙУФЕНХ. дМС ВПМШЫЙОУФЧБ РПМШЪПЧБФЕМЕК ВХДЕФ ПЮЕОШ ФТХДОП ЧЩУФТПЙФШ РПМОХА УЙУФЕНХ У ОХМС, ОБЮЙОБС У СДТБ, ДПВБЧМСС Л ОЕНХ ХФЙМЙФЩ Й ХУФБОБЧМЙЧБС ЧУЕ ОЕПВИПДЙНПЕ РТПЗТБННОПЕ ПВЕУРЕЮЕОЙЕ ЧТХЮОХА. чНЕУФП ЬФПЗП УХЭЕУФЧХАФ НОПЗПЮЙУМЕООЩЕ ДЙУФТЙВХФЙЧЩ РТПЗТБННОПЗП ПВЕУРЕЮЕОЙС, ЛПФПТЩЕ ЧЛМАЮБАФ Ч УЕВС ЧУЕ ОЕПВИПДЙНПЕ ДМС ФПЗП, ЮФПВЩ ХУФБОПЧЙФШ Й ЙУРПМШЪПЧБФШ РПМОХА УЙУФЕНХ. оЕ УХЭЕУФЧХЕФ ЕДЙОУФЧЕООПЗП УФБОДБТФОПЗП ДЙУФТЙВХФЙЧБљ— ЕУФШ ОЕУЛПМШЛП ДЙУФТЙВХФЙЧПЧ, Й ЛБЦДЩК ЙНЕЕФ УЧПЙ РТЕЙНХЭЕУФЧБ Й ОЕДПУФБФЛЙ.
Источник
Лекция 14. Архитектура и принципы построения ОС Linux.
Лекция 14. Архитектура и принципы построения ОС Linux.
1. Основные архитектурные компоненты Linux: ядро, shell, X Window.
2. Файловая структура Linux: каталоги и файлы; управление файлами и файловыми системами.
3. Система команд в Linux. Конвейеры команд. Перенаправление ввода-вывода.
4. Конфигурирование ядра Linux.
Файловая структура Linux: каталоги и файлы; управление файлами и файловыми системами
В ОС Linux все файлы организованы в каталоги, которые, в свою очередь, иерархически соединены друг с другом, образуя одну общую файловую структуру. При обращении к файлу необходимо указывать не только его имя, но и место, которое он занимает в этой файловой структуре. Можно создавать любое количество новых каталогов, добавляя их к файловой структуре. Команды для работы с файлами:
find; cp; mv; ln, — позволяет находить файлы, копировать их и перемещать из одного каталога в другой. В совокупности все эти элементы и образуют файловую структуру ОС Linux.
Файлы в ОС Linux.
Имя файла может содержать любые буквы, знаки подчеркивания и цифры. Можно включать в имена точки и запятые. При этом имя файла не должно начинаться ни с цифры, ни с точки (за исключением некоторых особых случаев). Символы: / \ ? * (косая черта, вопросительный знак, звездочка), – зарезервированы в системе в качестве специальных и в именах файлов использоваться не должны. Максимальная длина имени файла 256 символов. Имя файла может включать и расширение. Для отделения расширения от собственно имени файла служит точка.
Типы файлов.
Все файлы в ОС Linux имеют один и тот же формат байтовый поток. Это позволяет системе Linux распространять файловую концепцию на все компоненты данных. Каталоги и устройства классифицируются как файлы. Рассматривая такую организацию как файлы, Linux позволяет упростить организацию данных и обмен ими. Данные, записанные в файле, можно посылать непосредственно в устройство.
Каталоги, сами по себе являются файлами, но имеют собственную внутреннюю организацию. Файл каталога содержит информацию о каталоге, организованную в специальные структуры. Поскольку все эти различные компоненты рассматриваются как файлы, можно сказать, что они представляют собой различные типы файлов. Байт ориентированное устройство – один тип файла, каталог другой тип файла. Независимо от конкретной реализации ОС Linux существуют четыре стандартных типа файлов: обычные; файлы каталогов; байт-ориентированные файлы устройств; блок-ориентированные файлы устройств.
Все обычные файлы имеют один формат, байтовый поток, но могут использоваться по-разному. Наиболее существенное различие имеет место между двоичными и текстовыми файлами. Пример двоичного файла – программный код после его компиляции. Текстовые файлы можно классифицировать по направлению использования.
Файловая структура.
Файлы в ОС Linux организованы в иерархическую систему каталогов. Из-за сходства такую структуру называют древовидной структурой. Если быть более точным, то эта структура скорее похожа на куст, перевернутый вверх ногами. Ствола здесь нет. Вниз от корня отходят ветви. Каждая ветвь отходит только от одной, а от нее самой может отходить множество ветвей до самого нижнего уровня. В этом смысле файловую структуру скорее, можно назвать «родители-потомки». Аналогичным образом любой каталог является подкаталогом другого каталога, каждый подкаталог может содержать множество подкаталогов, но сам должен быть потомком только одного родительского каталога.
Иерархическая структура изображена на рис. 2.
Вверху находится корневой каталог (обозначается символом «косая черта») от которого ответвляется другие каталоги.
Файловая структура Linux разветвляется на несколько каталогов, начиная с корневого, / — root . В корневом каталоге имеется несколько системных каталогов, которые содержат файлы и программы, относящиеся к самой ОС Linux. Корневой каталог, кроме того, содержит каталог home, который может содержать начальные каталоги всех пользователей системы.
Зарегистрировавшись в системе, пользователь попадает в свой каталог. Имя, присвоенное этому каталогу системой, совпадает с регистрационным именем пользователя. Все файлы, создаваемые для нового пользователя, помещаются в начальный каталог. Получить доступ к каталогу можно либо по имени, либо сделав его каталогом по умолчанию.
Путевые имена.
Имя, которое присваивается каталогу или файлу при его создании, не является полными. Полным именем файла или каталога является его путевое имя. Иерархические связи, существующие между каталогами, образуют пути, и эти пути используются для указания каталога или файла и обращения к нему. На рис. 6 показан путь от корневого каталога / к конечному каталогу.
То есть, можно сказать, что каждый каталог в системе имеет свой собственный уникальный путь. Фактическое имя, которым система обозначает каталог, всегда начинается с корневого каталога и состоит из имен всех каталогов, ведущих и данному каталогу. Путевые имена даются и файлам. Фактическое имя, которым система обозначает этот файл, представляет собой комбинацию имени файла с именами каталогов, образующих путь от корневого каталога до каталога данного файла.
Путевые имена могут быть абсолютными и относительными. Абсолютное имя – это имя или каталог, начинающееся символом корневого каталога. Относительное путевое имя начинается символом рабочего каталога и представляет собой обозначение пути к файлу относительно рабочего каталога.
Системные каталоги.
Корневой каталог являющийся каталогом файловой структуры Linux, содержит ряд системных каталогов. Системные каталоги содержат файлы и программы, сужающие для управления системой и ее сопровождение. Основные системные каталоги следующие (рис.4).
/root – служит начальной структурной единицей файловой системы;
/bin — содержит стандартные системные утилиты;
/lib – содержит библиотеки языков программирования;
/dev — содержит драйверы устройств;
/home— содержит исходные каталоги пользователей;
/sbin— содержит стандартные инструменты администрирования;
/usr — содержит дополнительные системные программы и инструменты администрирования;
/var — содержит файлы протоколов (log files) и буферные файлы принтеров (print spools). Обычно он монтируется с ограничением размера на Web-серверах, поскольку в противном случае log-файлы легко «затопят» все свободное пространство в разделе;
/spool – содержит буферные файлы (например, генерируемые при печати и пересылке по сети);
/etc — содержит администраторские и конфигурационные файлы. Находившиеся ранее здесь командные утилиты должны быть перенесены в разделы /bin и /sbin.
Система команд в Linux
В ОС Linux команда – это любой выполняемый файл. Командой является любой файл, предназначенный для выполнения, а не для хранения данных или конфигурационных параметров.
Чтобы выполнить команду, ее нужно ввести в командной строке:
$ команда опции аргументы
Если файл команды не находится в текущем каталоге, то необходимо ввести команду с указанием полного пути:
Каждому пользователю, вошедшему в систему, предоставляется путь по умолчанию. Узнать его можно с помощью команды:
Результат ее выполнения может выглядеть так:
Файлы располагаются на физических устройствах и на каждом организуются в файловую систему. Для того чтобы получить доступ к файлам, находящимся на каком либо устройстве, необходимо присоединить его файловую систему к определенному каталогу. Эта операция называется монтирование файловой системы.
Вывод информации о файлах.
Команда ls –l имя_файла позволяет получить подробную информацию о файле (рис.5).
Сначала указывается права доступа, затем количество ссылок, имя владельца, имя группы, к которой он относится, размер файла в байтах, дата и время последнего изменения и имя файла.
Конфигурирование ядра Linux
Проверка пакетов исходных текстов
Для рекомпиляции ядра необходимы его исходные тексты. В Red Hat исходные тексты ядра размещаются в одном rpm-пакете, но по умолчанию не устанавливаются. Имя этого пакета:
Кроме исходных текстов, для рекомпиляции ядра нужен компилятор, состоящий из двух компонентов:
собственно компилятор языка С — gсс или egcs.
Создание резервной копии текущего ядра проводится в три этапа:
1. Создание резервной копии исходных текстов ядра, что позволяет восстановить его при повреждении конфигурации.
2. Создание резервной копии самого ядра как заведомо работающего средства запуска системы.
3. Создание новой записи для загрузчика операционной системы, по которой можно будет загрузиться с резервной копии ядра.
Создание резервной копии исходных текстов производится путем копирования каталога с исходными кодами ядра на диск. Восстановление производится копированием в обратном направлении.
При рекомпиляции ядра прежнее ядро записывается в файл с расширением .old. Однако эту копию ядра пока нельзя использовать для загрузки системы. Этим объясняется необходимость выполнения перечисленных выше операций.
Загрузчик операционной системы типа LILO, обычно применяемый для загрузки Linux, конфигурируется установкой ссылки на файл ядра в корневой файловой системе.
После создания резервной копии ядра в файл /etc/lilo.conf нужно добавить еще одну запись, позволяющую запустить Linux с прежним ядром:
открыть файл /etc/lilo. conf в текстовом редакторе;
найти в файле /etc/lilo. conf раздел со ссылкой на образ ядра системы;
создать копию всего раздела;
поменять в копии две позиции:
имя файла ядра заменить на имя его резервной копии (вместе с расширением);
заменить метку раздела чем-либо, наподобие linux. original (исходный Linux) или linux-previous (прежний Linux).
строки, начинающиеся с initrd, заменить на соответствующие резервные, например, initrd-2 .4.2-2. orig. Img;
записать изменения в файл /etc/lilo. conf.
ввести команду /sbin/lilo, чтобы ввести новую запись в загрузчик. При выполнении команды lilo на экран выводятся метки образов, вводимых в загрузчик операционной системы.
При следующей перезагрузке системы на экране появится идентификатор нового ядра в графической подсказке загрузчика LILO.
Конфигурирование нового ядра
При конфигурировании решается, какие функции включать в ядро, какие не включать и т.д. Можно выбирать между конфигурированием старого ядра и установкой/конфигурирование нового. Например, используя Red Hat Linux 7.1, можно изменить конфигурацию существующего ядра 2.4.2, задав новые параметры. Можно также загрузить и установить новое ядро версии 2.4.4. Несмотря на то, что детали конфигурирования в этих двух случаях различны, используемые утилиты и сама методика конфигурирования совпадают.
В Linux есть три отдельные конфигурационные утилиты, каждая из которых имеет свои особенности.
Утилита с интерфейсом командной строки. Пользователь последовательно отвечает на вопросы о функциях, которые необходимо включить в ядро. Эта утилита удобна для специалистов, умеющих работать с ядром, и для тех, у кого есть сценарии конфигурирования для этой утилиты.
Утилита с меню текстового режима. Многоуровневое меню этой утилиты позволяет устанавливать и переустанавливать параметры ядра в любом порядке.
Утилита с графическим интерфейсом. Это наиболее привлекательная утилита, но она запускается только в графической системе X Window.
Перечисленные утилиты создают один и тот же конфигурационный файл, используемый утилитой make при полной или частичной компиляции ядра.
Просматривая параметры в любой конфигурационной программе (командной строки, с текстовым или графическим интерфейсом), необходимо четко представлять влияние этих параметров на работу ядра.
Идентификация параметров в каждой программе своя, но во всех трех представлен один и тот же их набор. Параметры подразделяются на две основные группы:
Если программный блок, соответствующий данному параметру, не загружается как модуль ядра, он может быть одним из двух:
[*] составной частью ядра;
[ ] несоставной частью ядра.
Символы в квадратных скобках (вместе со скобками) соответствуют отметкам параметров в меню конфигурационных программ (кроме утилиты командной строки).
Для модульных параметров возможны три варианта установки (в соответствии с их представлением в меню конфигурационных утилит):
<> не включается в ядро и не создается в виде модуля, который можно загрузить позже:
включается в ядро, так что нет надобности загружать его позже в виде модуля:
Включается как модуль, но не как составная часть ядра. Блок можно устанавливать или удалять из ядра в любой момент.
Иногда значение какого-либо параметра не удается поменять до установки другого параметра. Например, установить поддержку определенного устройства SCSI можно только после общего разрешения поддержки этих устройств.
Когда в системе будут установлены необходимые средства (утилита make и компилятор gсс) и исходные тексты, можно запустить одну из конфигурационных утилит и приступить к конфигурированию ядра.
Конфигуратор с графическим интерфейсом
Запуск конфигурационной утилиты с графическим интерфейсом выполняется в следующей последовательности.
Запустить систему X Windows (с любыми графической средой и рабочим столом).
Открыть окно эмулятора терминала (окно командной строки).
Как и при запуске предыдущей утилиты, на экране промелькнет несколько сообщений о компиляции утилиты, и через несколько минут откроется ее главное окно.
Рис. 8. Утилита конфигурирования ядра с графическим интерфейсом: меню-кнопки установки значений параметров
Графическая утилита не слишком отличается от утилиты menuconf ig. Здесь параметры также разбиты на категории; после щелчка на определенной категории открывается диалоговое окно со списком параметров, каждому из которых можно установить значение, определяющее, что соответствующее средство должно задействоваться как составляющая часть ядра, как загружаемый модуль или не задействоваться вообще. Такое диалоговое окно показано на рис.
Рис. 9. В диалоговых окнах, подобных этому, устанавливаются конфигурационные параметры ядра
Ядро 2.4.2 в Red Hat Linux по умолчанию поддерживает симметричную мультипроцессорную архитектуру. Необходимо установить для соответствующей опции значение n, если в вашем компьютере всего один процессор.
Справа от каждого параметра находится кнопка Help (Справка).
Большое преимущество графической конфигурационной утилиты (особенно его оценят те, кто впервые конфигурирует ядро) – отражение в меню зависимости между различными параметрами. Например, в разделе Block Devices (Блочные устройства) нельзя установить поддержку систем RAID, встроенную в ядро, пока не будет включен параметр Multiple Device Driver Support (Поддержка драйверов для нескольких устройств).
Если в утилите menuconfig зависимость параметров друг от друга показана отступами имен параметров в меню, то в графической утилите установка неразрешенных сочетаний параметров просто невозможна. Работа с графической утилитой помогает понять зависимости между различными модулями.
В конце главного меню графической утилиты находятся команды, аналогичные соответствующим командам утилиты с меню текстового режима.
Save and Exit (Выход с сохранением). Создание файла конфигурации ядра и завершение работы утилиты.
Quit Without Saving (Выход без сохранения). Завершение работы утилиты без создания файла конфигурации ядра.
Без создания файла конфигурации ядра при помощи одной из перечисленных утилит рекомпиляция ядра невозможна.
Load Configuration From File (Загрузка конфигурации). Загрузка конфигурационного файла, созданного ранее.
Store Configuration To File (Запись конфигурации). Запись конфигурационных данных в файл с указанным именем (для дальнейшего использования или передачи коллеге). Это не влияет на необходимость выполнения команды Save and Exit, создающей конфигурационный файл для рекомпиляции ядра.
Компиляция и запуск нового ядра
После завершения конфигурирования нужно проверить наличие нового конфигурационного файла (.config), расположенного в каталоге /usr/src/linux-2 .4.2 (в зависимости от номера версии). Если конфигурационный файл .config на месте, можно использовать команду make для рекомпиляции ядра.
Обычно рекомпиляция ядра длится от 15 минут до нескольких часов. Это зависит от скорости процессора, объема оперативной памяти и ряда других факторов, поэтому все команды, вводимые при компиляции, удобно объединить в одну, через точку с запятой, чтобы они выполнялись последовательно.
Запуск процесса рекомпиляции
Приведенные ниже команды предназначены для создания нового ядра с рекомпиляций всех его модулей и их записью в соответствующие системные каталоги. (Там они будут доступны для команд ядра.)
Для рекомпиляции системы введятся следующие команды.
# make dep; make clean; make bzlmage; make modules; make modules__install
Каждую команду make можно вводить отдельно, после завершения предыдущей.
После ввода этих команд на экране начнут мелькать строки с описанием каталогов, к которым обращается программа make, запуска компилятора gcс. для компиляции различных файлов исходного текста и компоновки различных блоков. Каждой из этих команд потребуется для выполнения несколько минут.
Теперь можно создать загрузочный диск для нового ядра с помощью команды
Перед выполнением этой команды следует вставить отформатированную дискету в накопитель. Готовый загрузочный диск необходимо испытать. Перезагрузите компьютер, не вынимая дискету из накопителя.
После выполнения команд компиляции ядра и возврата к командной строке создается новое ядро. Чтобы загрузить систему с новым ядром, его необходимо переместить в стандартный каталог, из которого оно будет запускаться. Это делается вводом команды
# ср /usr/src/linux-2.4.2/arch/i386/boot/bzlmage /boot/vmlinuz-2.4.2-2
В завершение, для обновления карты загрузки выполните команду lilo:
В имени копируемого образа ядра можно указать номер версии. Важно, чтобы имя этого файла совпадало с именем, указанным в файле /etc/lilo.conf.
Тестирование нового ядра
После перемещения файла нового ядра в стандартный каталог (указанный в файле lilo. conf) систему можно перезагрузить с этим ядром.
Сразу после перезагрузки проверьте работу новых средств, ради которых и затевалась рекомпиляция. Можно выполнить следующие действия.
Сравнение объемов старого и нового ядер. Следует проверить объем памяти, занимаемый операционной системой, введя команду free.
Установка файловой системы или попытка доступа к устройству без загрузки модуля ядра для его поддержки (если поддержка данного устройства встроена в ядро).
Использование сетевых ресурсов (например, алиасов IP), отсутствовавших в прежнем ядре.
Может понадобиться проверка временной метки файла текущего ядра. Для этого введите команду uname. Это позволяет убедиться в том, что в данный момент система работает с рекомпилированным ядром. Метка времени и даты ядра должна совпадать со временем его рекомпиляции.
#1 Tue Mar 9 13:27:39 EST 2001
Если ответ команды uname свидетельствует о том, что система загружена не с новым ядром, разберитесь с системным загрузчиком LILO. Проверьте, правильно ли указано имя загружаемого ядра в файле /etc/lilo.conf.
Лекция 14. Архитектура и принципы построения ОС Linux.
1. Основные архитектурные компоненты Linux: ядро, shell, X Window.
2. Файловая структура Linux: каталоги и файлы; управление файлами и файловыми системами.
3. Система команд в Linux. Конвейеры команд. Перенаправление ввода-вывода.
Источник