el sootvetstvuet polyu rezhima linii v /etc/inittab. Programma init peredaet rezhim linii programmy getty, kak argument. initial-flags ustanavlivayut harakteristiki linii terminala, kogda programma getty pervonachal'no ustanavli- vaet svyaz'. Programma getty raspoznaet flagi, - 14-9a - perechislennye v termio(M) v dokumente User's Reference. CHasto edinstvennym ustanavlivaemym flagom v etom pole yavlyaetsya flag skorosti pere- dachi. Naprimer V300 zadaet skorost' peredachi, ravnuyu 300. - 14-10 - final-flags ustanavlivayut harakteristiki linii terminala (srazu pered tem, kak programma getty vy- polnyaet proceduru login. |ti flagi opi- syvayut rabochie harakteristiki dlya linii. Snova ustanavlivaetsya skorost' peredachi V. Drugie obshchie flagi vklyuchayut SANE (sostavnoj flag, ko- toryj ustanavlivaet dlya ryada harakteristik terminala sootvetstvuyushchie znacheniya, TAV3 (ras- shiryaet tablicy probelami), IXANY (razreshaet lyubomu simvolu vypolnenie restarta vyhoda) i HUPCL (perehvatyvaet liniyu pri konechnom zakry- tii). Flagi mogut vvodit'sya v lyubom poryadke. login-prompt soderzhit soobshchenie LOGIN, vydavaemoe pol'zova- telyu. |to pole pechataetsya tochno v tom vide, v kakom ono vvoditsya, vklyuchaya probely i simvoly tabulyacii. Simvol "@" v pole podskazki login rasshiryaetsya v pervoj stroke (ili vtoroj stro- ke, esli ona imeetsya) v fajle /etc/systemid (esli tol'ko simvolu @ ne predshestvuet znak '\'). Raspoznayutsya neskol'ko posledovatel'nostej simvolov, vklyuchaya: \n perevod stroki \t tabulyaciya \r vozvrat karetki \f perevod formata \v vertikal'naya tabulyaciya \b probel \nnn (3 vos'merichnyh cifry) zadannye simvoly ASCII next-label identificiruet sleduyushchuyu metku v gettydefs dlya getty dlya povtornogo vypolneniya, esli predydu- shchee zakanchivaetsya neudachno. Getty perehodit na sleduyushchuyu metku, esli pol'zovatel' nazhimaet klavishu BREAK pri popytke podklyucheniya k siste- me. Gruppy elementov, takie kak kommutiruemye ili TTY linii, dolzhny obrazovyvat' zakrytyj nabor tak, chto getty perehodit obratno k per- vonachal'nomu vhodu, esli ni odin iz drugih vhodov ne vypolnyaetsya uspeshno. login-program imya programmy, kotoraya v dejstvitel'nosti podklyuchaet pol'zovatelej k sisteme. Po umolcha- - 14-10a - niyu eto programma /etc/login. |to pole yavlyaet- sya vyborochnym. Esli prisutstvuet klyuchevoe slovo AUTO, to getty ne vydaet podskazku dlya imeni pol'zova- telya, no vmesto etogo ispol'zuet imya ustrojs- tva (to est' tty03) kak imya pol'zovatelya i ne- medlenno vypolnyaet programmu login. - 14-11 - Kazhdoe pole razdelyaetsya znakom reshetki (#) i kazhdyj ele- ment v gettydefs razdelyaetsya pustoj strokoj. |lement v gettydefs mozhet vyglyadet' sleduyushchim obrazom: 4#B1200 SANE TAB3 HUPCL #login: #2#AUTO /etc/login new Dalee sleduet opisanie kazhdoj chasti etoj stroki: * chislo 4 identificiruet etot element getty; * sleduyushchee pole zadaet skorost' peredachi 1200; * tret'e pole ukazyvaet skorost' peredachi (V1200), SANE (sostavnoj flag dlya ryada harakteristik) i HUPCL (pereh- vat stroki pri konechnom zakrytii); * login : poyavlyaetsya kak podskazka login. Esli eto zadanie ne uspeshno, getty perehodit k metke 2 v gettydefs; * AUTO pytaetsya podklyuchit' pol'zovatelya vypolneniem /etc/login new. Esli poslednij element takzhe soderzhit filename, to vypol- nyaetsya programma login. (Zametim, chto filename i sootvetstvuyu- shchaya programma login sozdayutsya pol'zovatelem). Naprimer mozhet ispol'zovat'sya vklyuchenie fajla, takogo kak /etc/dial_login dlya linii, prisoedinennoj k modemu. Sleduet zadat' identifikator pol'zovatelya, naznachit' parol', proverit' pol'zovatelya i dalee naznachit' pol'zovatelya. Pri etom vozmozhno potrebuetsya parol' dlya sistemy v dobavlenie k uchetnomu parolyu, a takzhe zadanie special'nogo nabora peremennyh sredy podklyucheniya, vklyuchennyh v /etc/default/dial_login.  Izmenenie fajla gettydefs Fajl /etc/gettydefs zadaet nabory elementov dlya kommutiru- emyh linij i linij terminalov. |ti nabory elementov sootvets- tvuyut zadaniyam rezhimov linij v /etc/inittab. Programma init pe- redaet rezhim linii kak argument dlya getty. - 14-12 - Mozhno redaktirovat' gettydefs dlya dobavleniya novyh ustano- vok dlya terminala ili izmeneniya sushchestvuyushchih. Naprimer zadanie ustanovok dlya terminala mozhet vyglyadet' sleduyushchim obrazom: 4 # B2400 HUPCL # B2400 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 5 5 # B4800 HUPCL # B4800 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 6 6 # B6900 HUPCL # B6900 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 4 Dlya izmeneniya fajla-obrazca gettydefs takim obrazom, chtoby getty pytalas' ispol'zovat' skorost' peredachi 1200 vypolnite sleduyushchie dejstviya: 1. Vyzovite tekctovyj redaktor dlya redaktirovaniya pervoj stroki fajla gettydefs. 2. Izmenite pervoe i tret'e polya s V2400 na V1200. 3. Sohranite gettydefs i vyjdite iz redaktora. Fajl-obrazec budet vyglyadet' kak v sleduyushchem primere: 4 # B1200 HUPCL # B1200 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 5 5 # B4800 HUPCL # B4800 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 6 6 # B6900 HUPCL # B6900 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 4 Vy mozhete takzhe dobavit' dopolnitel'nye zadaniya dlya linii terminala v gettydefs. Flagi i dopustimye znacheniya dlya zadanij dlya terminala perechisleny v stty(C) dokumenta User's Reference. Kogda vy dobavlyaete novyj element, ubedites', chto gruppy elementov v gettydefs obrazuyut zakrytyj nabor, tak chto pole next-label poslednego elementa napravlyaet getty obratno k per- vomu elementu gruppy. Dlya dobavleniya elementa, zadayushchego skorost' peredachi 300 v predshestvuyushchem fajle obrazce gettydefs vypolnite sleduyushchie sha- gi: 1. Vyzovite tekstovyj redaktor dlya redaktirovaniya fajla /etc/ gettydefs. - 14-13 - 2. Najdite tochku, gde vy hotite pomestit' novye opredeleniya ustanovki dlya gettydefs. Poryadok elementov ne sushchestvenen; getty tol'ko prosmatrivaet metku. V dannom primere novyj element yavlyaetsya poslednim elementom fajla. 3. Pomestite simvol vozvrata karetki posle poslednej stroki v fajl i vvedite sleduyushchuyu novuyu stroku # B300 HUPCL # B300 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 4 4. Dlya pomeshcheniya metki 7 v nabor metok izmenite pole next_label dlya elementa s 6 na 7: 6 # B6900 HUPCL # B6900 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 7 Getty teper' napravlyaetsya s metki 6 na metku 7 i dalee ob- ratno na metku 4. 5. Zavershite rabotu tekstovogo redaktora s sohraneniem izme- nennogo fajla gettydefs. Novyj fajl gettydefs vyglyadit sleduyushchim obrazom: 4 # B1200 HUPCL # B1200 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 5 5 # B4800 HUPCL # B4800 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 6 6 # B6900 HUPCL # B6900 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 7 7 # B300 HUPCL # B300 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 4  Proverka parametrov ustanovki terminala Kazhdyj raz, kogda vy izmenyaete parametry ustanovki linii terminala ili dobavlyaete novye elementy v fajl gettydefs sledu- et proverit', chto novye znacheniya udovletvoryayut getty CHtoby sde- lat' eto, ispol'zujte komandu getty s vozmozhnost'yu proverki -s i imenem fajla. Naprimer dlya proverki gettydefs vvedite: getty -c /etc/gettydefs - 14-14 - Esli lyubye iz znachenij i parametrov ustanovki v fajle gettydefs ne razresheny, getty -s otobrazhaet ih na ekrane termi- nala. Dopolnitel'naya informaciya o getty i gettydefs soderzhitsya v razdelah getty(M) i gettydefs(F) dokumenta User's Reference. - 14-15 -  IZMENENIE RABOTY POSLEDOVATELXNOJ LINII Kogda vy "otkryvaete" terminal komandoj enable, sistema avtomaticheski ustanavlivaet rabochie harakteristiki posledova- tel'noj linii po umolchaniyu. Inogda eti znacheniya ne sootvetstvu- yut velichinam, ispol'zuemym terminalom i poetomu dolzhny menyat'- sya, chtoby obespechit' svyaz' mezhdu sistemoj i terminalom. Mozhno otobrazit' rabochie harakteristiki posledovatel'noj linii koman- doj stty (set tty). Esli nuzhno izmenit' harakteristiki "otkry- togo" porta, sleduet ispol'zovat' elementy v fajle gettydefs, a ne komandy stty, privedennye nizhe. Primechanie Lyubye parametry ustanovki dlya porta, zadavaemye komandoj stty, dejstvuyut tol'ko do teh por, poka rassmatrivaemyj port otkryt. Naprimer, esli vy hotite izmenit' skorost' peredachi tty2a, a tty2a ne "otkryt", to snachala komanda stty otkryvaet port, dalee izmenyaet parametry ustanovki porta i okonchatel'no zakryvaet port. Kogda ona zakryvaet port poslednij raz, zna- cheniya parametrov ustanovki vosstanavlivayutsya k svoim pervona- chal'nym znacheniyam. V komandah stty pozdnee v dannom razdele ispol'zuetsya cikl while dlya ustraneniya takogo povedeniya ko- mandy stty. Esli vy vypolnyaete stty perenapravlyaya vhod s </dev/ttyname, to ona rabotaet s tekushchej posledovatel'noj li- niej, kotoruyu vy otkryli. V etom sluchae tak kak posledova- tel'naya liniya ostaetsya otkrytoj posle vydachi komandy stty, znacheniya parametrov ustanovki sohranyayutsya. Mozhno otobrazit' tekushchie rabochie harakteristiki posledova- tel'noj linii vvodom etoj komandy s terminala, prisoedinennogo k etoj linii: stty Esli nevozmozhno podklyuchit'sya k sisteme s etogo terminala, vy mozhete ispol'zovat' drugoj terminal dlya otobrazheniya harakte- ristik. Podklyuchites' k sisteme kak superpol'zovatel' s drugogo terminala i vvedite: ¬2stty < ttyname - 14-15a - V predydushchej komande ttyname - eto imya special'nogo fajla ustrojstva, sootvetstvuyushchego posledovatel'noj linii (smotrite glavu "Oglavleniya UNIX i special'nye fajly ustrojstv"). Napri- mer dannaya komanda otobrazhaet tekushchie harakteristiki posledova- tel'noj linii s imenem /dev/tty1a: - 14-16 - stty < /dev/tty1a Komanda otobrazhaet skorost' peredachi, shemu chetnosti i druguyu informaciyu o posledovatel'noj linii. |ta informaciya ob®- yasnyaetsya v razdele stty(S) dokumenta User's Reference. Odnim iz vozmozhnyh izmenenij dlya posledovatel'noj linii yavlyaetsya izmenenie skorosti peredachi. |to obychno delaetsya s terminala, prisoedinennogo k drugoj posledovatel'noj linii, tak kak izmenenie skorosti narushaet svyaz' mezhdu terminalom i siste- moj. Pered tem, kak vy izmenyaete skorost', vam neobhodimo znat' tekushchuyu skorost' peredachi terminala (smotrite rukovodstvo po apparature terminala dlya opredeleniya tekushchej skorosti pereda- chi). Posle togo, kak vy poluchili skorost' peredachi, podklyuchi- tes' k sisteme kak superpol'zovatel' s drugogo terminala i vve- dite: ¬2(stty ¬1baud-rate; while:; do sleep 3600; done) < ttyname &, gde baud-rate - eto tekushchaya skorost' peredachi terminala, a ttyname - eto imya special'nogo fajla ustrojstva, sootvetstvuyu- shchego posledovatel'noj linii, dlya kotoroj vy hotite provesti iz- meneniya. Skorost' peredachi dolzhna soderzhat'sya v nabore 50, 75, 110, 134, 150, 200, 300, 600, 1200, 2400, 4800 i 9600. Naprimer komanda: (stty 9600; while:; do sleep 3600; done) < /dev/tty1a & izmenyaet skorost' peredachi posledovatel'noj linii /dev/tty1a na 9600. Zametim, chto simvol "men'she, chem" (<) ispol'zuetsya kak dlya otobrazheniya, tak i dlya zadaniya parametrov posledovatel'noj linii s drugogo terminala. Drugim vozmozhnym izmeneniem yavlyaetsya izmenenie sposoba, kotorym sistema obrabatyvaet vhod i vyhod dlya posledovatel'noj linii. Takie izmeneniya obychno delayutsya s terminala, prisoedi- nennogo k posledovatel'noj linii. Naprimer komanda stty tabs privodit k tomu, chto sistema rasshiryaet simvoly tabulyacii - 14-16a - probelami (ispol'zuetsya terminalami, kotorye ne rasshiryayut sim- voly tabulyacii) i komanda: stty echoe¬ privodit k tomu, chto sistema udalyaet udalyaemyj simvol s ekrana terminala, kogda vy ispol'zuete klavishu <BKSP>. Zametim, chto komanda stty mozhet takzhe ispol'zovat'sya dlya adaptacii posledovatel'noj linii k neobychnomu terminalu, k dru- gomu tipu posledovatel'nogo ustrojstva, trebuyushchego generacii i registracii chetnosti ili special'noj obrabotki vvoda i vyvoda. Polnoe opisanie etoj komandy soderzhitsya v razdele stty(C) dokumenta User's Reference. - 14-17 -  ZADANIE TIPA TERMINALA Sistemy UNIX trebuyut, chtoby tip terminala byl yasno oprede- len pered rabotoj s etim terminalom. Predpochtitel'nym metodom zadaniya tipa terminala yavlyaetsya naznachenie tipa peremennoj TERM, special'noj peremennoj sredy, svyazyvayushchej ispol'zuemyj terminal so spiskom harakteristik, privedennom v fajle /etc/termsap. |ti harakteristiki soobshchayut sisteme, kak interp- retirovat' klavishi terminala i kak otobrazhat' dannye na ekrane terminala. Esli vy ispol'zuete obolochku Bourne shell (sh), to naznachenie TERM imeet vid: ¬2TERM=¬1termtype; export Term Esli vy ispol'zuete obolochku S (csh), to naznachenie TERM imeet vid: ¬2setenv TERM termtype termtype dolzhno byt' odnim iz imen, svyazannyh s odnim iz terminalov, opredelennyh v fajle /etc/termcap. Naznachenie dolzh- no vvodit'sya s terminala, tip kotorogo vy ustanavlivaete. Naprimer dlya ustanovki tipa terminala "ansi" iz obolochki Bourne obratites' k terminalu, kotoryj vy hotite ustanovit', vvedite podskazku obolochki ("$"): TERM=ansi; export TERM i nazhmite klavishu <Vozvrat>. Iz obolochki S vvedite podskazku ("%")  setenv TERM ansi i nazhmite <Vozvrat>. Esli vy ne uvereny v tom, kakoe imya vy mozhete ispol'zovat' dlya termtype, vy mozhete prosmotret' imena libo otobrazheniem fajla /etc/termcap, libo chteniem stranicy rukovodstva terminals (M) dokumenta User's Reference, gde perechislyayutsya vse terminaly, obespechennye v fajle /etc/termcap. Dlya otobrazheniya samogo spiska vvedite: more /etc/termcap i nazhmite klavishu <Vozvrat>. - 14-18 - Vy mozhete pozvolit' sisteme opredelit' tip terminala avto- maticheski, kogda vy podklyuchaetes' k sisteme, vklyuchiv naznachenie TERM v fajl .profile (smotrite "Izmenenie fajlov .profile i .login" v glave "Zapusk i ostanov sistemy"). Al'ternativnyj metod zadaniya tipa terminala opisan v raz- dele tset(C) dokumenta User's Reference. Esli vy pozvolite sisteme ustanovit' tip terminala, sledu- et byt' ostorozhnym pri podklyuchenii k sisteme na terminalah, ko- torye ne otnosyatsya k tomu zhe tipu, k kotoromu otnositsya vash obychnyj terminal. U sistemy otsutstvuet sposob proverki kor- rektnosti dannogo terminala, ona predpolagaet tip terminala, analogichnyj vashemu obychnomu terminalu. Esli eto ne tak, vam sleduet ustanovit' tip terminala vruchnuyu. - 14-19 -  AVTOMATICHESKOE ZADANIE TIPA TERMINALA Esli vy hotite, chtoby tip terminala zadavalsya avtomatiches- ki vo vremya podklyucheniya k sisteme, vypolnite sleduyushchuyu procedu- ru: 1. Podklyuchites' k rassmatrivaemomu terminalu i opredelite, kakoe ttyname vy ispol'zuete, vvedya: tty 2. Podklyuchites' kak root i redaktirujte fajl /etc/ttytype tekstovym redaktorom. Izmenite pole tipa terminala dlya li- nii, svyazannoj s rassmatrivaemym terminalom, na neobhodi- myj vam tip terminala. Uchtite model' konsoli. Esli vy ho- tite, chtoby tip terminala byl ustanovlen kak wy50 dlya /dev /tty1a, redaktirujte /etc/ttytype sleduyushchim obrazom: wy50 tty1a 3. Dalee pol'zovatel'skij fajl zapuska dolzhen redaktirovat'sya s sootvetstvuyushchej strokoj komandy tset(C) dlya avtomatiches- kogo zadaniya tipa terminala. V kazhdyj fajl .login pol'zo- vatelya obolochki S dobav'te sleduyushchuyu stroku: tset -s -q > /tmp/tset$$; source /tmp/tset$$; /bin/rm/tmp/tset$$ Ubedites' v udalenii stroki komandy setenv(C), prinimaemoj po umolchaniyu i vklyuchayushchej TERM i TERMCAP iz fajla .login. V kazhdom .profile pol'zovatelya obolochki Bourne dobav'te sleduyushchuyu stroku: eval 'tset -s' Ubedites' v udalenii imeyushchejsya stroki komandy tset iz faj- la .profile. 4. Otklyuchite vseh pol'zovatelej ot sistemy, dalee podklyuchi- tes' k sisteme snova dlya proverki izmeneniya tipa novogo terminala. Posle podklyucheniya k sisteme prover'te novyj termtype vvedya: env - 14-20 -  UDALENIE TERMINALA Vremya ot vremeni mozhet okazat'sya neobhodimym udalit' ter- minal iz sistemy, naprimer, esli vy hotite zamenit' ego nekoto- rym drugim ustrojstvom. Pered tem, kak vy mozhete udalit' termi- nal, vy dolzhny otklyuchit' ego komandoj disable(C). Dlya udaleniya terminala vypolnite sleduyushchie shagi: 1. Vyklyuchite pitanie terminala. 2. Podklyuchites' k sisteme kak superpol'zovatel' s drugogo terminala. 3. Ispol'zujte komandu disable dlya otklyucheniya terminala. Ko- manda imeet vid: ¬2disable ttyname gde ttyname - eto imya posledovatel'noj linii, k kotoroj prisoedinen terminal. Naprimer, komanda: disable /dev/tty1a otklyuchaet terminal, svyazannyj s posledovatel'noj liniej /dev/tty1a. 4. Otsoedinite terminal ot sistemy. Posledovatel'naya liniya, ranee prisoedinennaya k terminalu, teper' svobodna dlya prinyatiya drugogo ustrojstva. - 14-21 -  ISPOLXZOVANIE POSLEDOVATELXNYH MULXTI|KRANOV SREDSTVAMI MSCREEN Esli vy znakomy s multiscreen(M), sredstvami, kotorye obespechivayut mnozhestvo otdel'nyh ekranov login dlya konsoli, to imeetsya vozmozhnost' ispol'zovaniya analogichnogo sredstva dlya terminala. Terminaly, kotorye imeyut mnozhestvo stranic ekrannoj pamyati, mogut ispol'zovat'sya s razdelyaemymi ekranami, kazhdyj so svoim seansom login, tak, kak budto u vas imeetsya neskol'ko terminalov vmesto odnogo. Na terminale WYSE60 legko mozhet byt' sohraneno soderzhimoe dvuh polnyh ekranov aktivnosti. Ispol'zovanie tret'ego ekrana dlya WYSE60 obsuzhdaetsya nizhe. |to oznachaet, chto ispol'zovanie dvuh ekranov ochen' pohozhe na primenenie bolee odnogo terminala. Polnaya funkcional'nost' sessii login obespechivaetsya dlya kazhdogo ekrana, i ranee vypolnyaemye komandy (ili ih rezul'taty) otobra- zhayutsya na kazhdom ekrane, kogda on ispol'zuetsya. V nastoyashchej stat'e opisyvaetsya WYSE60, pri etom v kachestve osnovy dlya vseh primerov ispol'zuyutsya dve stranicy ekrannoj pamyati. Vy mozhete takzhe ogranichit' chislo dostupnyh mscreens. Uti- lita mscreen obespechivaet dostup k sessiyam nabora terminalov, chto vo mnogom pohozhe na operaciyu logging dlya bolee, chem odnogo terminala. |ti sessii obespechivayutsya dlya "psevdo ttys", a ne dlya ustrojstv tty, obychno ispol'zuemyh terminalami ili modema- mi. tty - eto special'nyj fajl, svyazannyj neposredstvenno s ot- del'nym apparatnym ustrojstvom, ispol'zuemym dlya svyazi s oboru- dovaniem, takim kak terminaly ili printery. Za tty sleduet chislo i bukva. Psevdo-tty - eto ustrojstvo, kotoroe ne svyazano s kakoj-libo real'noj apparaturoj i ispol'zuetsya dlya modeliro- vaniya funkcij real'nogo tty. Pol'zovateli setevyh produktov dolzhny uzhe byt' znakomy s psevdo-ttys, tak kak oni yavlyayutsya ustrojstvami, ispol'zuemymi dlya podklyucheniya k sisteme na udalennyh mashinah. Psevdo-tty predstavlyaetsya dvumya programmnymi ustrojstvami, kotorye poyavlya- yutsya v listinge /dev kak "pty" i "ttyp", za kazhdym iz kotoryh sleduet chislo. Pervyj nazyvaetsya "glavnym" tty, a poslednij - "podchinennym". Oni modeliruyut funkcional'nyj tty. Posle ustanovki sistema dopuskaet maksimum 16 ekranov i tol'ko 8 psevdo-ttys sozdayutsya vo vremya procedury ustanovki. Vy mozhete sozdat' bol'shee kolichestvo psevdo-ttys i v rezul'tate poluchit' bol'she ekranov v sisteme s programmoj na risunke 14-1. - 14-21a - |tot predel psevdo-ttys, kotorye mogut ispol'zovat'sya, kontro- liruetsya konfiguriruemym parametrom NSPTTYS, kotoryj opredelyaet chislo psevdo-ttys, raspoznavaemyh sistemoj (po umolchaniyu vo vremya ustanovki zadaetsya 16). Dopuskaetsya maksimum 32 psev- do-ttys. Esli vy planiruete ispol'zovat' bolee 16 psevdo-ttys, vy dolzhny uvelichit' etot parametr v dobavlenie k sozdaniyu do- polnitel'nyh psevdo-ttys. Zametim, chto stroka "dlya h - 14-22 - v 8 9 10" na risunke 14-1 rasshiryaetsya do 23, chto oznachaet, chto sozdaetsya 16 dopolnitel'nyh psevdo-ttys ((0 - 7) uzhe imeyutsya). Sleduet ukorotit' etu stroku, esli vam ne nuzhno tak mnogo psev- do-ttys. Vy mozhete takzhe rasshirit' ee do 31, esli vam nuzhen ma- ksimum 32. +--------------------------------------------------------------+ |# tip '1 /dev/ptyp*' vy poluchite neskol'ko linij, analogichnyh:| |# crw----------- 1 bin terminal 59, 26 maya 08:21 /dev/ptyp0 | |# | |# ustanovite peremennuyu "glavnyj master" (nizhe), ravnuyu privo-| |# dimomu glavnomu nomeru | |major_master=59 | |# tip '1 /dev/ptyp*' vy poluchite neskol'ko linij, analogichnyh:| |# crw----------- 1 bin terminal 58, 26 maya 08:21 /dev/ttyp0 | |# | |# ustanovite peremennuyu "glavnyj master" (nizhe), ravnuyu privo-| |# dimomu glavnomu nomeru | |major_slave=58 | |for x in 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |do | | # make master (vypolnenie "mastera) | | /etc/mknod /dev/ptyp$x c $major_master $x | | chown bin /dev/ptyp$x | | chgrp terminal /dev/ptyp$x | | chmod 600 /dev/ptyp$x | | | | # make slave (vypolnenie "raba") | | /etc/mknod /dev/ptyp$x c $major_slave $x | | chown bin /dev/ptyp$x | | chgrp terminal /dev/ptyp$x | | chmod 600 /dev/ptyp$x | |done | +--------------------------------------------------------------+ Ris. 14-1. Procedura obolochki maketyps. Vypolnite eti shagi dlya konfiguracii dopolnitel'nyh ekranov 1. Konfigurirujte vashe yadro dlya obespecheniya dopolnitel'nyh psevdo-ttys. CHitajte razdel "Perevydelenie resursov yadra pri konfiguracii" v glave "Nastrojka proizvoditel'nosti sistemy" dannogo rukovodstva dlya polucheniya instrukcij po - 14-22a - vypolneniyu configure(ADM). Vyberite kategoriyu 3, Fajly, i -uzly i fajlovye sistemy i ustanovite parametr NSPTTYS v trebuemoe znachenie. Vypolnite instrukcii po pereredaktiro- vaniyu yadra pered prodolzheniem raboty. 2. Dalee kopirujte proceduru na risunke 14-1 v fajl, nazyvae- myj "makeptys". CHtoby sdelat' etu proceduru obolochki vy- polnyaemoj, vvedite sleduyushchuyu komandu: chmod 744 makeptys - 14-23 - 3. Dlya vypolneniya etoj procedury obolochki ubedites', chto vy podklyucheny k sisteme kak root i vypolnite proceduru obo- lochki sleduyushchim obrazom: ./makeptys 4. Posle dobavleniya ustrojstv vy dolzhny konfigurirovat' sis- temu dlya zapuska processa getty na kazhdom psevdo-tty. |to vypolnyaetsya dobavleniem elementov v fajly /etc/inittab i / etc/conf/cf.d/init.base. |lementy, uzhe predstavlennye dlya pervyh vos'mi psevdo-ttys vyglyadyat sleduyushchim obrazom: p0:2:respawn:/etc/getty ttyp0 m p1:2:respawn:/etc/getty ttyp1 m p2:2:respawn:/etc/getty ttyp2 m p3:2:respawn:/etc/getty ttyp3 m p4:2:respawn:/etc/getty ttyp4 m p5:2:respawn:/etc/getty ttyp5 m p6:2:respawn:/etc/getty ttyp6 m p7:2:respawn:/etc/getty ttyp7 m Primechanie. Pervye 8 psevdo-ttys mogut skazat' "iz" vmesto "pereporozhde- niya". (Mysh' trebuet, chtoby psevdo-ttys byli zamaskirovany). Vy mozhete izmenit' ih na "pereporozhdenie", otkryv kazhdoe iz etih ustrojstv, kak v sleduyushchem primere: enable p0 Pri etom otkryvaetsya psevdo-tty /dev/ttyp0. (Ne otkryvajte eti psevdo-ttys, esli vy uzhe ispol'zuete ih dlya myshi). Vy mozhete kopirovat' i dalee modificirovat' eti elementy dlya dopolnitel'nyh ustrojstv. Ubedites', chto vy modifici- rovali oba fajla. Naprimer, esli vy hotite dobavit' 8 do- polnitel'nyh psevdo-ttys, vam sleduet dobavit' sleduyushchie stroki v oba fajla: p8:2:respawn:/etc/getty ttyp8 m p9:2:respawn:/etc/getty ttyp9 m p10:2:respawn:/etc/getty ttyp10 m p11:2:respawn:/etc/getty ttyp11 m p12:2:respawn:/etc/getty ttyp12 m p13:2:respawn:/etc/getty ttyp13 m p14:2:respawn:/etc/getty ttyp14 m p15:2:respawn:/etc/getty ttyp15 m - 14-24 - 5. Dalee vvedite sleduyushchuyu komandu:  /tcb/lib/ttys_update |to garantiruet, chto vashi dobavleniya raspoznayutsya mehaniz- mami bezopasnosti sistemy. Dobavlenie bol'shih vozmozhnostej mscreen v sistemu uvelichi- vaet proizvoditel'nost' pol'zovatelej. Odnako chrezmernoe is- pol'zovanie mozhet snizit' proizvoditel'nost' sistemy. Sistema s desyat'yu pol'zovatelyami, kazhdyj iz kotoryh ispol'zuet dva ekra- na, mozhet privesti k tomu, chto proizvoditel'nost' sistemy budet takoj zhe, kak v sluchae dvadcati pol'zovatelej. Sleduet imet' proizvoditel'nost' v vidu pri reshenii voprosa o tom, kak mnogo mscreen sleduet ispol'zovat' v sisteme, i kto budet imet' voz- mozhnost' ispol'zovat' ih. Poka nikakoj terminal ne soderzhit dostatochno ekrannoj pa- myati dlya sohraneniya informacii, otobrazhaemoj pri ispol'zovanii vseh dvadcati login, kotorye obsluzhivayutsya sredstvami mscreen, lyuboj terminal pozvolyaet pol'zovatelyu vypolnit' pereklyuchenie mezhdu dvadcat'yu ekranami, pri uslovii, chto klaviatura imeet dostatochno dopolnitel'nyh klavish dlya ispol'zovaniya pri pereklyu- chenii ekranov. Odnako pol'zovatel' veroyatno ne budet schitat' poleznym ispol'zovanie mnogih ekranov bez nabora stranic ekran- noj pamyati. Neudobno, naprimer, perepoluchat' ekran terminala kazhdyj raz pri pereklyuchenii ekranov, kogda ispol'zuetsya krupno- formatnaya tablica na odnom ekrane i Vi na drugom. Bol'shaya chast' lyudej, kotorye ispol'zuyut terminaly s minimal'noj pamyat'yu ekra- na predpochtut sloi obolochki shl(C) mscreen dlya mnozhestva sessij login. Dopolnitel'naya informaciya po shl soderzhitsya v dokumente User's Reference.  Poisk neispravnostej V otlichii ot mnogih utilit slozhnye sredstva mscreen trebu- yut ryada uslovij dlya pravil'nogo funkcionirovaniya. Sleduya etim predpolozheniyam vam sleduet obojti ryad naibolee obshchih oshibok, kotorye delayut novye pol'zovateli mscreen. Pri podgotovke k ispol'zovaniyu mscreen ubedites', chto ter- minal budet rabotat' s programmoj. Opredelite, skol'ko - 14-24a - imeetsya ekrannoj pamyati, obrativshis' k rukovodstvu po termina- lu. Utilita mscreen ispol'zuet fajl /etc/mscreencap dlya oprede- leniya togo, kak izmenit' obrazy ekrana dlya otdel'nogo termina- la. Buduchi zapolnen fajl /etc/mscreencap obespechivaetsya lish' dlya ryada terminalov. Ne sleduet govorit', chto drugie terminaly ne rabotayut s mscreen, oni delayut eto. Vam sleduet lish' konfi- gurirovat' fajl /etc/mscreencap pered ispol'zovaniem terminala. Esli vy vypolnyaete mscreen dlya terminala, kotoryj ne imeet ele- mentov v fajle /etc/mscreencap, to mscreen zavershitsya avarijno. Esli vy uvereny, chto terminal budet rabotat' s mscreen i u vas est' rabotayushchaya procedura mscreencap, no procedura mscreen vse zhe zavershaetsya avarijno, prover'te sleduyushchie problemy: - 14-25 - - sozdajte psevdo-ttys. Vam mozhet potrebovat'sya sozdat' bol'shee kolichestvo psevdo-ttys, esli tekushchie psevdo-ttys uzhe ispol'zuyutsya. Ispol'zujte proceduru obolochki s risunka 14-1 dlya sozdaniya bol'shego kolichestva psevdo-ttys. - prover'te pereklyuchenie. Ubedites', chto /etc/mscreencap dlya terminala korrekten. Ispol'zujte odin iz primerov v /etc/mscreencap dlya proverki sposoba, kotorym vyhodnaya posledovatel'nost' funkcional'nyh klavish otobrazhaetsya na otdel'nuyu komandu mscreen. Podklyuchites' k sisteme: vy dolzhny podklyuchit'sya k sisteme otdel'no dlya kazhdogo ekrana, kotoryj vy budete ispol'zovat'. - unichtozh'te processy mscreen. Esli vy testiruete element mscreen i imeete neispravnost' na ekranah, to sleduet vy- polnit' sleduyushchee: 1. Prover'te vypolnyayushchiesya processy: ¬2ps -uusername 2. Unichtozh'te vse processy ¬2mscreen: ¬2kill -g process_numbers  Usovershenstvovannoe ispol'zovanie Mnogie pol'zovateli schitayut, chto mscreen predstavlyaet dos- tatochnye sredstva. Dlya usovershenstvovannyh pol'zovatelej mscreen ili kogo-libo zainteresovannogo v bolee podrobnom izu- chenii mscreen i operacionnoj sistemy imeetsya neskol'ko sovetov po ispol'zovaniyu i rasshireniyu mscreen. Stranica rukovodstva po mscreen(M) predpolagaet sredstva avtomaticheskogo vyzova mscreen iz fajla .login obolochki S. Kro- me avtomaticheskogo vyzova mscreen informaciya na risunke 14-2 opisyvaet tri polnofunkcional'nyh mscreen dlya WYSE 60, a takzhe dobavlyaet ryad udobnyh sredstv dlya pol'zovatelya mscreen. Risunok 14-3 predstavlyaet tot zhe samyj material dlya fajla .profile obo- lochki Bourne. Zametim, chto eti primery sproektirovany dlya do- bavleniya v konec fajla .login ili .profile i zameshchayut lyubuyu su- shchestvuyushchuyu informaciyu o tset. - 14-26 - +--------------------------------------------------------------+ |# Example material for the end of a C-Shell .login file. | |# If logging in via pseudo-tty, surpress terminal | |# initialization | |set ttyname='tty' | |(Primer dlya konca fajla .login obolochki S. | | Esli podklyuchenie k sisteme proishodit cherez psevdo-tty, | | prekratite inicializaciyu terminala. Ustanovite ttyname='tty')| |# Set init to null, iitially.| | |set init=' ' | |(Ustanovite init v nulevoe znachenie, pervonachal'no. | | Ustanovite init=' ') | |set noglob | |# Reset init to the valur "-I" when logging in on a pseudo-tty| |# to surpress the tset terminal initializations string. | |if ( 'expr $ttyname : "/dev/ttyp"' > 0 ) set init = "-I" | |set term = ('tset -m ansi:ansi -m wy60 -m:?wy60 -r -S -Q | |$init') | |setenvTern $term[1] | |setenvTERMCAP $term[2] #terminal data base | |unset noglob term | |# Put WYSE 60 in ECON-80 mode during initial log in process. | |(Ustanovite WYSE 60 v rezhim ECON-80 vo vremya procedury | |nachal'nogo podklyucheniya k sisteme) | |if ( "$init" !="-I" && "STERM" == "wy60" ) /bin/echo | |"\033eG\c" | |# Set the prompt to indicate the tty number of the current | |# mscreen and command. | |(Ustanovite podskazku, chtoby ukazat' nomer tty tekushchego | |mscreen i komandu). | |set prompt = "'expr $ttynamt : '/dev/)' ` % " | |# Release the local variable used. | |(Osvobodite lokal'nye ispol'zuemye peremennye). | |unset ttyname init | |# Run mscreen and logout if the 'stop' key (defined as S-F9 in| |# the default /etc/mscreencap for wy60) is pressed. This | |# string is described in the mscreen(M) manual pages. | |(Vypolnite mscreen i zhurnal, esli klavisha "stop" (opredelennaya| |kak S-F9 v prinimaemom po umolchaniyu fajle /etc/mscreencap dlya| |wy60 nazhata. |ta stroka opisana v rukovodstve po mscreen(M)). | |mscreen -n 3 | |if ($status == 0) logout | +--------------------------------------------------------------+ Ris. 14-2. Procedura .login. - 14-27 - +--------------------------------------------------------------+ | # | | # Example material for the end of a Bourne shell .profile | | # file | | (Primer dlya konca fajla .profile obolochki Bourne) | | | | ttyname='tty' | | | | init="' | | | | if [ `expr $ttyname : "/dev/ttyp"` -gt "0" ] | | then | | init="-I" | | fi | | eval `tset -m ansi:ansi -m wy60:wy60 -m :?wy60 -r -s -q | | $init` | | export PATH | | | | if ["$init" = "-I" -a "STERM" = "wy60" ] | | them | | /bin/echo "\033eg\c" | | fi | | | | PSI=`expr $ttyname : '/dev')'` $ " | | | | unset ttyname init | | | | mscreen -n 3 | | if [ "$?" = "0" ] | | then | | exit | | fi | +--------------------------------------------------------------+ Ris. 14-3. Procedura fajla .profile. Mnogie elementy termcap (vklyuchaya wy60) chistyat bufera ekra- na (kotorye mscreen ispol'zuet pri zapominanii soderzhimogo mno- zhestva ekranov) kak chasti stroki inicializacii. Na risunkah 2 i 3 tset(S) posylaet stroku inicializacii tol'ko vo vremya pervoj procedury .login. Pri podklyuchenii k - 14-27a - psevdo-ttys tset vyzyvaetsya s flagom -I. |to delaetsya dobavle- niem peremennoj "init" v stroku tset. Pervyj raz, kogda vypol- nyaetsya tset "init" imeet znachenie, ravnoe "", ne dobavlyaya niche- go k komande tset. Pri vypolnenii komandy tset vo vremya pervoj procedury login na ekrane otobrazhaetsya stroka "\033tG\c". |ta posledovatel'nost' vyhoda izmenyaet parametry ustanovki COLUMNS v WYSE60 na rezhim ECON-80. Kombinaciya etih parametrov ustanovki osvobozhdaet dostatochnoe kolichestvo ekrannoj pamyati dlya ispol'- zovaniya tremya ekranami. V kachestve dopolnitel'nogo udobstva podskazka pol'zovatelya ustanavlivaetsya dlya otobrazheniya nomera vspomogatel'nogo psevdo-tty, chto pozvolyaet pol'zovatelyu legko otslezhivat' soderzhimoe ispol'zuemyh ekranov. Esli vy ne ispol'zuete terminal WYSE60, vy mozhete zadat' podskazku dlya ukazaniya tekushchego ekrana i vyzvat' mscreen avto- maticheski vo vremya proverki koda vozvrata obolochki, kak eto po- kazano na risunkah 14-2 i 14-3. - 14-28 -  ISPOLXZOVANIE MODEMA V SISTEME Dannyj razdel ob®yasnyaet, kak soedinyat' i ispol'zovat' mo- dem v sisteme UNIX.  Posledovatel'nye linii Operacionnaya sistema obespechivaet upravlenie modemom dlya posledovatel'nyh portov. Tablica 14.1 soderzhit primery imen us- trojstv s upravleniem modemom i bez takogo upravleniya. Tablica 14.1 Posledovatel'nye linii +-----------+-------------------------------------------------+ | Ustrojstvo| Funkciya | +-----------+-------------------------------------------------+ | /dev/tty1a| osnovnoj posledovatel'nyj adapter bez upravleniya | | | modemom | | /dev/tty1A| osnovnoj posledovatel'nyj adapter s upravleniem | | | modemom | | /dev/tty2a| al'ternativnyj posledovatel'nyj adapter bez | | | upravleniya modemom | | /dev/tty2A| al'ternativnyj posledovatel'nyj adapter s  | | | upravleniem modemom | +-----------+-------------------------------------------------+ /dev/tty1a i /dev/tty1A otnosyatsya k odnomu i tomu zhe pos- ledovatel'nomu portu (analogichno /dev/tty2a i /dev/tty2A). Ope- racionnaya sistema ispol'zuet v kazhdom sluchae razlichnye podprog- rammy drajverov ustrojstv. Nel'zya pytat'sya ispol'zovat' odnovremenno porty upravleniya s modemom i bez modema ili zhe vy uvidite sleduyushchee soobshchenie: cannot open: device busy (nel'zya otkryt': ustrojstvo zanyato) Dlya sistem, vklyuchayushchih mnogoportovye posledovatel'nye pla- ty, ustrojstva /dev/tty[1,2] [a-m] otnosyatsya k ispol'zovaniyu bez upravleniya modemom, a /dev/tty[1,2] [A-M] otnosyatsya k is- pol'zovaniyu s upravleniem modemom. - 14-28 -  Vyhodnoj nabor ot vashego komp'yutera Utility up(C) i uucp(C) ispol'zuyutsya dlya vyzova udalennyh sistem i peredachi dannyh v sistemah UNIX. Fajl /usr/lib/uucp/Devices (nazyvaemyj Devices) soderzhit informaciyu, ispol'zuemuyu etimi programmami dlya opredeleniya harakteristik otdel'noj posledovatel'noj linii. Fajl Devices soderzhit linii, kotorye zadayut ustrojstvo dlya linii, ustrojstvo vyzova, svyazannoe s liniej, i skorosti pere- dachi, kotorye budut ispol'zovat'sya UUCP. (Ustrojstva upravleniya modemom sleduet ispol'zovat' s liniyami, svyazannymi s modemami). - 14-29 - Ispol'zovanie programm vyzova po nomeru Dlya vyzova po nomeru i cu i UUCP ispol'zuyut obshchij nabor naborshchikov nomerov, kotorye mogut byt' nezavisimymi dvoichnymi kodami (programmami) analogichno /usr/lib/uucp/dialHA12, ili elementami fajla /usr/lib/uucp/Dialers. (Dopolnitel'naya infor- maciya ob elementah fajla Dialers soderzhitsya v glave "Postroenie udalennoj seti s UUCP" dannogo rukovodstva). Ishodnye dannye dlya nabora programm vyzova po nomeru i formirovaniya fajla dlya perekompilyacii ishodnoj programmy vklyu- cheny v oglavlenie /usr/lib/uucp. Esli u vas imeetsya kakoj-libo drugoj vid modema, to vy mozhete modificirovat' lyubye ishodnye fajly i sozdat' v