А.В. Столяров - Введение в операционные системы (1152218), страница 11
Текст из файла (страница 11)
Ñîîòâåòñòâóþùàÿ ïðîãðàììàïîä Minix åãî íå óäîâëåòâîðÿëà. ×òîáû çàîäíî ðàçîáðàòüñÿ â óñòðîéñòâå i386, Òîðâàëüäñ ðåøèë íàïèñàòü ñâîé ýìóëÿòîð òåðìèíàëà â âèäå ïðîãðàììû, íå çàâèñÿùåé îò îïåðàöèîííîéñèñòåìû. Ïîçæå àâòîðó ïîòðåáîâàëàñü ïåðåêà÷êà ôàéëîâ, òàê ÷òî ýìóëÿòîð òåðìèíàëà áûëñíàáæåí äðàéâåðîì äèñêîâîäà; â èòîãå àâòîð ñ óäèâëåíèåì îáíàðóæèë, ÷òî ïèøåò îïåðàöèîííóþ ñèñòåìó [4].Íîâàÿ îïåðàöèîííàÿ ñèñòåìà ïîëó÷èëà íàçâàíèå Linux ïî èìåíè ñâîåãîñîçäàòåëÿ. Ïðèìå÷àòåëüíî, ÷òî òàêîå íàçâàíèå äàë ñèñòåìå îäèí èç ñòîðîííèõó÷àñòíèêîâ ïðîåêòà. Ñàì Òîðâàëüäñ ïëàíèðîâàë íàçâàòü ñèñòåìó Freax.Ñàìûé ïåðâûé ïóáëè÷íî äîñòóïíûé êîä (âåðñèÿ 0.01) ïîÿâèëñÿ â 1991 ãîäó,ïåðâàÿ îôèöèàëüíàÿ âåðñèÿ (1.0) − â 1994, âòîðàÿ − â 1996.Ñëåäóåò îòìåòèòü (è ýòî òàêæå îòìå÷àåò ñàì Ëèíóñ Òîðâàëüäñ), ÷òî íåìàëîâàæíóþ ðîëü â ñòðåìèòåëüíîì âçëåòå Linux ñûãðàëà ñóäåáíàÿ âîéíà ìåæäó AT&T è óíèâåðñèòåòîì Áåðêëè, ìåøàâøàÿ ðàñïðîñòðàíåíèþ BSD íà i386.Linux ïîëó÷èë èçðÿäíóþ ôîðó íà ñòàðòå, â èòîãå îñòàâèâ BSD íà âòîðûõðîëÿõ1 .1 Ìíîãèåïðîôåññèîíàëû â Ðîññèè ñ ýòèì óòâåðæäåíèåì íå ñîãëàñÿòñÿ.
Òàê, â ñåêòîðå Internetïðîâàéäèíãà â Ðîññèè FreeBSD ñóùåñòâåííî ïîïóëÿðíåå Linux'à. Ñëåäóåò ïðèçíàòü, îäíàêî, ÷òî çà ïðåäåëàìè Ðîññèè (è åùå ïî÷åìó-òî ßïîíèè) ïîïóëÿðíîñòü FreeBSD ñóùåñòâåííî íèæå44Ñîçäàííîå Òîðâàëüäñîì ÿäðî ðåøèëî ãëàâíóþ ïðîáëåìó âîçãëàâëÿåìîãîÐè÷àðäîì Ñòîëëìàíîì îáùåñòâåííîãî äâèæåíèÿ; ïîëíîñòüþ ñâîáîäíàÿ îïåðàöèîííàÿ ñèñòåìà, íàêîíåö, ïîÿâèëàñü. Áîëåå òîãî, Òîðâàëüäñ ïðèíÿë ðåøåíèå èñïîëüçîâàòü äëÿ ÿäðà ïðåäëîæåííóþ Ñòîëëìàíîì ëèöåíçèþ GNU GPL,òàê ÷òî Ñòîëëìàíó è åãî åäèíîìûøëåííèêàì îñòàëîñü òîëüêî çàÿâèòü î äîñòèãíóòîé öåëè. íàñòîÿùåå âðåìÿ òîðãîâàÿ ìàðêà Unix íå èñïîëüçóåòñÿ äëÿ èìåíîâàíèÿ êîíêðåòíûõ îïåðàöèîííûõ ñèñòåì.
Âìåñòî ýòîãî ðå÷ü èäåò î Unixïîäîáíûõ îïåðàöèîííûõ ñèñòåìàõ, ñîñòàâëÿþùèõ öåëîå ñåìåéñòâî. Ïî ïîïóëÿðíîñòè ëèäèðóþò Linux (ïðåäñòàâëåííûé íåñêîëüêèìè ñîòíÿìè âàðèàíòîâ äèñòðèáóòèâîâ îò ðàçëè÷íûõ ïðîèçâîäèòåëåé) è (ñ íåêîòîðûì îòðûâîì)FreeBSD. Îáå ñèñòåìû ðàñïðîñòðàíÿþòñÿ ñâîáîäíî. Êðîìå òîãî, íåëüçÿ íåîòìåòèòü êîììåð÷åñêèå ñèñòåìû ñåìåéñòâà Unix, ñðåäè êîòîðûõ íàèáîëåå èçâåñòåí SunOS/Solaris (ïðîèçâîäèòåëü − êîìïàíèÿ Sun Microsystems).Ýïîõà êîíöà âîñüìèäåñÿòûõ − íà÷àëà äåâÿíîñòûõ ïîðîäèëà ðàññîãëàñîâàííîñòü â Unix-ñîîáùåñòâå, ñíèæàâøóþ ïåðåíîñèìîñòü ïðîãðàìì ïî ïðè÷èíåðàçëè÷èé â èíòåðôåéñàõ.
Îò÷àñòè ïðîáëåìó ðåøàåò ïîÿâèâøèéñÿ ñòàíäàðòPOSIX 1003.1, îïèñûâàþùèé îñíîâíûå ñèñòåìíûå âûçîâû Unix è ñîçäàííûéïî ïðèíöèïó ïåðåñå÷åíèÿ îñíîâíûõ âåòâåé ðàçâèòèÿ Unix (íà òîò ìîìåíò −BSD è System V).Âûäåðæàâ áîëåå ÷åì òðèäöàòèëåòíþþ èñòîðèþ, Unix (óæå íå êàê êîíêðåòíàÿ îïåðàöèîííàÿ ñèñòåìà, à êàê îáùèé ïîäõîä ê èõ ïîñòðîåíèþ) ñîâåðøåííîíå âûãëÿäèò óñòàðåâøèì, õîòÿ ïðè ýòîì ïðàêòè÷åñêè íå ïðåòåðïåâàë ðåâîëþöèîííûõ èçìåíåíèé ñ ñåðåäèíû 1970-õ ãîäîâ.
Äàæå ñîçäàíèå ãðàôè÷åñêîéíàäñòðîéêè X Window íå âíåñëî ñóùåñòâåííûõ èçìåíåíèé â îñíîâû Unix.10Êðàòêîå ââåäåíèå â UnixÏîïûòàåìñÿ äàòü êðàòêîå ïðåäñòàâëåíèå î Unix â íàäåæäå, ÷òî ýòîïîçâîëèò ÷èòàòåëþ ïðîâåñòè ñàìîñòîÿòåëüíûå ýêñïåðèìåíòû ñ êàêîé-ëèáîUnix'îïîäîáíîé îïåðàöèîííîé ñèñòåìîé.10.1Ñåàíñ ðàáîòûÑåàíñ ðàáîòû ñ ÎÑ Unix íåðàçðûâíî ñâÿçàí ñ ïîíÿòèåì òåðìèíàëà. Òåðìèíàëîì íàçûâàåòñÿ óñòðîéñòâî, ïîäêëþ÷àåìîå ê ëèíèè ñâÿçè, èìåþùåå êëàâèàòóðó äëÿ ââîäà òåêñòîâîé èíôîðìàöèè è äèñïëåé (èëè ïðèíòåð) äëÿ îòîáðàæåíèÿ; ôóíêöèîíàëüíîñòü òåðìèíàëà ñâîäèòñÿ ê ïåðåäà÷å â ëèíèþ ñâÿçè45Ðèñ.
13: Òåðìèíàë vt320 (Digital Equipment Corporation)òåêñòà, íàáèðàåìîãî íà êëàâèàòóðå, è îòîáðàæåíèå íà äèñïëåå (èëè ïðèíòåðå)òåêñòîâ, ïîëó÷åííûõ ïî ëèíèè ñâÿçè. Ïåðâîíà÷àëüíî â êà÷åñòâå òåðìèíàëîâèñïîëüçîâàëèñü òåëåòàéïû; ïîçæå ïðèíòåðû áûëè çàìåíåíû äèñïëåÿìè. íàñòîÿùåå âðåìÿ àïïàðàòíî ðåàëèçîâàííûå òåêñòîâûå òåðìèíàëû ïðèìåíÿþòñÿ ðåäêî. Òåì íå ìåíåå, ñàì òåðìèí â ÎÑ Unix ïðîäîëæàåò èñïîëüçîâàòüñÿ: íàïðèìåð, Linux è FreeBSD ýìóëèðóþò òåðìèíàëû íà ñèñòåìíîéêëàâèàòóðå è âèäåîêàðòå, ïðè÷åì ýìóëèðóåòñÿ íåñêîëüêî âèðòóàëüíûõ òåðìèíàëîâ, íåçàâèñèìûõ äðóã îò äðóãà2 .Îáû÷íî îïåðàöèîííûå ñèñòåìû ñåìåéñòâà Unix òðåáóþò îò ïîëüçîâàòåëÿàóòåíòèôèêàöèè (òî åñòü, ïîïðîñòó ãîâîðÿ, ââîäà âõîäíîãî èìåíè è ïàðîëÿ).Âõîäíîå èìÿ è ïàðîëü âàì ñîîáùèò ñèñòåìíûé àäìèíèñòðàòîð; åñëè æå êîìïüþòåð âàø, è âû ñàìè ïîñòàâèëè íà íåãî îïåðàöèîííóþ ñèñòåìó, òî ïàðîëüàäìèíèñòðàòîðà, à òàêæå âõîäíîå èìÿ è ïàðîëü êàê ìèíèìóì îäíîãî ïîëüçîâàòåëÿ, ñêîðåå âñåãî, âû çàäàëè ïðè óñòàíîâêå ñèñòåìû.Ïðîãðàììà getty, ïðåäíàçíà÷åííàÿ äëÿ çàïðîñà âõîäíîãî èìåíè è ïàðîëÿ,çàïóñêàåòñÿ ñèñòåìîé íåçàâèñèìî íà êàæäîì èç òåðìèíàëîâ, çàäàííûõ êîíôèãóðàöèåé ñèñòåìû.
Òàêèì îáðàçîì, ââåäÿ âõîäíîå èìÿ (ëîãèí) è ïàðîëü, âûçàïóñêàåòå ñåàíñ ðàáîòû ñ âàøèìè ïðàâàìè íà äàííîì (îäíîì) òåðìèíàëå;íà äðóãèõ òåðìèíàëàõ, â òîì ÷èñëå è âèðòóàëüíûõ, ìîæíî íåçàâèñèìî âûïîëíèòü âõîä â ñèñòåìó ñ ïðàâàìè òîãî æå èëè ëþáîãî äðóãîãî ïîëüçîâàòåëÿ.Ïîñëå âõîäà â ñèñòåìó çàïóñêàåòñÿ ïðîãðàììà, íàçûâàåìàÿ êîìàíäíûìèíòåðïðåòàòîðîì. Ýòà ïðîãðàììà â öèêëå ïðî÷èòûâàåò ñ òåðìèíàëà êîìàí2 Äëÿ ïåðåêëþ÷åíèÿ ìåæäó âèðòóàëüíûìè òåðìèíàëàìè èñïîëüçóéòå êîìáèíàöèþ Alt-Fn, ãäå nâèðò. òåðìèíàëà, òî åñòü 1, 2, 3, ..., 1246− íîìåðäû ïîëüçîâàòåëÿ è âûïîëíÿåò èõ. Ñëåäóåò îòìåòèòü, ÷òî êîìàíäíûé èíòåðïðåòàòîð − ýòî îáûêíîâåííàÿ ïîëüçîâàòåëüñêàÿ ïðîãðàììà, êîòîðóþ ìîæíîíå ñ÷èòàòü ÷àñòüþ îïåðàöèîííîé ñèñòåìû.Ñóùåñòâóåò íåñêîëüêî äåñÿòêîâ ðàçëè÷íûõ êîìàíäíûõ èíòåðïðåòàòîðîâ.Ìû áóäåì ðàññìàòðèâàòü ïðèìåðû äëÿ ñòàíäàðòíîãî èíòåðïðåòàòîðà BourneShell.10.2Äåðåâî êàòàëîãîâ è íàâèãàöèÿ.
ÔàéëûÑèñòåìà êàòàëîãîâ â ÎÑ Unix íåñêîëüêî îòëè÷àåòñÿ îò ïðèâû÷íîé ïîëüçîâàòåëÿì MSDOS è WinXX, è íàèáîëåå çàìåòíûå íà ïåðâûé âçãëÿä îòëè÷èÿ −ýòî îòñóòñòâèå áóêâ, îáîçíà÷àþùèõ óñòðîéñòâà (÷òî-òî âðîäå A:, C: è ò.ï.),à òàêæå òî îáñòîÿòåëüñòâî, ÷òî èìåíà êàòàëîãîâ ðàçäåëÿþòñÿ â ÎÑ Unix íåîáðàòíîé, à ïðÿìîé êîñîé ÷åðòîé (/).Ïîñëå âõîäà â ñèñòåìó âû îêàæåòåñü â âàøåì äîìàøíåì êàòàëîãå.
Äîìàøíèé êàòàëîã − ýòî ìåñòî äëÿ õðàíåíèÿ âàøèõ ëè÷íûõ ôàéëîâ. ×òîáûóçíàòü èìÿ (ïóòü) òåêóùåãî êàòàëîãà, ââåäèòå êîìàíäó pwd:$ pwd/home/stud/s2003324Óçíàòü, êàêèå ôàéëû íàõîäÿòñÿ â òåêóùåì êàòàëîãå, ìîæíî ñ ïîìîùüþêîìàíäû ls:$ lsDesktoptmpÈìåíà ôàéëîâ â ÎÑ Unix ìîãóò ñîäåðæàòü ëþáîå êîëè÷åñòâî òî÷åê â ëþáûõ ïîçèöèÿõ, ò.å. íàïðèìåð, èìÿ a.b..c...d....e ÿâëÿåòñÿ âïîëíå äîïóñòèìûì èìåíåì ôàéëà. Ïðè ýòîì äåéñòâóåò ñîãëàøåíèå, ÷òî èìåíà, íà÷èíàþùèåñÿ ñ òî÷êè, ñîîòâåòñòâóþò íåâèäèìûì ôàéëàì.
×òîáû óâèäåòü âñå ôàéëû,âêëþ÷àÿ íåâèäèìûå, ìîæíî âîñïîëüçîâàòüñÿ êîìàíäîé ls -a:$ ls -a. .. .bash_historyDesktoptmpÍåêîòîðûå èç ïîêàçàííûõ èìåí ìîãóò ñîîòâåòñòâîâàòü ïîäêàòàëîãàì òåêóùåãî êàòàëîãà, äðóãèå ìîãóò èìåòü ñïåöèàëüíûå çíà÷åíèÿ. ×òîáû áûëîïðîùå ðàçëè÷àòü ôàéëû ïî òèïàì, ìîæíî âîñïîëüçîâàòüñÿ ôëàæêîì -F:$ ls -aF./ ../ .bash_historyDesktop/47tmp/cpmvrmmkdirrmdirtouchlessÊîïèðîâàíèå ôàéëàÏåðåèìåíîâàíèå èëè ïåðåìåùåíèå ôàéëàÓäàëåíèå ôàéëàÑîçäàíèå êàòàëîãàÓäàëåíèå êàòàëîãàÑîçäàíèå ôàéëà èëè óñòàíîâêà íîâîãî âðåìåíè ìîäèôèêàöèèÏðîñìîòð ñîäåðæèìîãî ôàéëà ñ ðàçáèâêîé íà ñòðàíèöûÒàáëèöà 1: Êîìàíäû äëÿ ðàáîòû ñ ôàéëàìèÒåïåðü ìû âèäèì, ÷òî âñå èìåíà, êðîìå .bash_history, ñîîòâåòñòâóþò êàòàëîãàì.
Çàìåòèì, ÷òî . − ýòî ññûëêà íà ñàì òåêóùèé êàòàëîã, à .. −ññûëêà íà ðîäèòåëüñêèé êàòàëîã (ò.å. êàòàëîã, ñîäåðæàùèé òåêóùèé êàòàëîã;â íàøåì ïðèìåðå ýòî /home/stud).Ïåðåéòè â äðóãîé êàòàëîã ìîæíî êîìàíäîé cd:$ pwd/home/stud/s2003324$ cd tmp$ pwd/home/stud/s2003324/tmp$ cd ..$ pwd/home/stud/s2003324$ cd /usr/include$ pwd/usr/include$ cd /$ pwd/$ cd$ pwd/home/stud/s2003324Ïîñëåäíèé ïðèìåð ïîêàçûâàåò, ÷òî êîìàíäà cd áåç óêàçàíèÿ êàòàëîãà äåëàåòòåêóùèì äîìàøíèé êàòàëîã ïîëüçîâàòåëÿ, êàê ýòî áûëî ñðàçó ïîñëå âõîäà âñèñòåìó.Îñíîâíûå êîìàíäû ðàáîòû ñ ôàéëàìè ïåðå÷èñëåíû â òàáëèöå 1.4810.3Àðãóìåíòû êîìàíäíîé ñòðîêèÁîëüøèíñòâî êîìàíä ïðèíèìàåò äîïîëíèòåëüíûå êëþ÷è, íà÷èíàþùèåñÿñî çíàêà '-'. Òàê, êîìàíäà rm -r the_dir ïîçâîëÿåò óäàëèòü äèðåêòîðèþthe_dir âìåñòå ñî âñåì åå ñîäåðæèìûì.Êàê ìîæíî çàìåòèòü, ÷àñòî êîìàíäà ñîñòîèò èç íåñêîëüêèõ ñëîâ.
Ïîÿñíèì ýòî. Ïåðâîå èç ñëîâ ÿâëÿåòñÿ èìåíåì ïðîãðàììû, êîòîðóþ ñëåäóåò çàïóñòèòü, ëèáî èìåíåì âñòðîåííîé êîìàíäû (òî åñòü êîìàíäû, îáðàáàòûâàåìîéñàìèì èíòåðïðåòàòîðîì áåç ïðèìåíåíèÿ âíåøíèõ ïðîãðàìì; ïðèìåðîì òàêîéêîìàíäû ÿâëÿåòñÿ cd). Èìÿ ïðîãðàììû, ïîäëåæàùåé çàïóñêó, ìîæíî çàäàòüè ñ óêàçàíèåì êàòàëîãà, â êîòîðîì îíà íàõîäèòñÿ, íàïðèìåð:$ /bin/ls -l -a$ /usr/local/bin/pine -f sentÎñòàëüíûå ñëîâà, ñîñòàâëÿþùèå êîìàíäó, íàçûâàþòñÿ àðãóìåíòàìè êîìàíäíîé ñòðîêè è ìîãóò çàäàâàòü êëþ÷è, ïîäîáíûå ðàññìîòðåííûì âûøå (-a, -lè ò.ï.), èìåíà ôàéëîâ è êàòàëîãîâ, è ò.ï.Îáû÷íî èíòåðïðåòàòîð âîñïðèíèìàåò ñèìâîë ïðîáåëà êàê ðàçäåëèòåëü ïàðàìåòðîâ êîìàíäíîé ñòðîêè. Ïðè íåîáõîäèìîñòè, îäíàêî, ìîæíî èñïîëüçîâàòü ïðîáåë è êàê îáû÷íûé ñèìâîë, â òîì ÷èñëå, íàïðèìåð,ñêëåèòü íåñêîëüêî ñëîâ â îäèí ïàðàìåòð.