×àñòî Çàäàâàåìûå Âîïðîñû ïî FreeBSD 2.X, 3.X, 4.X è 5.X
The FreeBSD Documentation Project
×àñòî Çàäàâàåìûå Âîïðîñû ïî FreeBSD 2.X, 3.X, 4.X è 5.X The FreeBSD Documentation Project Îïóáëèêîâàíî $FreeBSD: doc/ru_RU.KOI8-R/books/faq/book.sgml,v 1.73 2004/07/29 07:02:53 den Exp $ Copyright © 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 The FreeBSD Documentation Project Ýòîò äîêóìåíò ÿâëÿåòñÿ òàê íàçûâàåìûì FAQ (Frequently Asked Questions), òî åñòü ñïèñêîì ×àñòî Çàäàâàåìûõ Âîïðîñîâ ïî FreeBSD âåðñèé 2.X, 3.X, 4.X è 5.X. Åñëè íå îãîâîðåíî îáðàòíîå, ïðåäïîëàãàåòñÿ, ÷òî âñå çàìå÷àíèÿ ñïðàâåäëèâû äëÿ âåðñèé FreeBSD 2.0.5 è âûøå. Åñëè âû õîòèòå ïîìî÷ü â ñîñòàâëåíèè ýòîãî äîêóìåíòà, ïîøëèòå ïèñüìî â Ñïèñîê ðàññûëêè Ïðîåêòà Äîêóìåíòàöèè FreeBSD (http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc). Ïîñëåäíÿÿ ðåäàêöèÿ ýòîãî äîêóìåíòà âñåãäà äîñòóïíà ñ WWW-ñåðâåðà FreeBSD (http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/faq/index.html). Åãî òàêæå ìîæíî ïîëó÷èòü â âèäå îäíîãî áîëüøîãî HTML-ôàéëà (book.html) ïî HTTP èëè â âèäå îáû÷íîãî òåêñòîâîãî ôàéëà, ôàéëà ôîðìàòà PostScript, PDF èëè äðóãîãî ôîðìàòà ñ FTP-ñåðâåðà (ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/). Âû òàêæå ìîæåòå îñóùåñòâèòü ïîèñê (http://www.FreeBSD.org/search/search.html) â FAQ.
FreeBSD ýòî çàðåãèñòðèðîâàííàÿ òîðãîâàÿ ìàðêà Wind River Systems, Inc. Îæèäàåòñÿ, ÷òî â ñêîðîì âðåìåíè ýòî èçìåíèòñÿ. UNIX ýòî çàðåãèñòðèðîâàííàÿ òîðãîâàÿ ìàðêà The Open Group â ÑØÀ è äðóãèõ ñòðàíàõ.
Sun, Sun Microsystems, SunOS, Solaris, è Java ýòî òîðãîâûå ìàðêè èëè çàðåãèñòðèðîâàííûå òîðãîâûå ìàðêè Sun Microsystems, Inc. â Ñîåäèíåííûõ Øòàòàõ è äðóãèõ ñòðàíàõ.
Apple è QuickTime ýòî òîðãîâûå ìàðêè Apple Computer, Inc., çàðåãèñòðèðîâàííûå â ÑØÀ è äðóãèõ ñòðàíàõ.
Macromedia è Flash ýòî òîðãîâûå ìàðêè èëè çàðåãèñòðèðîâàííûå òîðãîâûå ìàðêè Macromedia, Inc. â Ñîåäèíåííûõ Øòàòàõ
è/èëè äðóãèõ ñòðàíàõ. Microsoft, Windows, è Windows Media ýòî èëè çàðåãèñòðèðîâàííûå òîðãîâûå ìàðêè èëè òîðãîâûå ìàðêè Microsoft Corporation â Ñîåäèíåííûõ Øòàòàõ è/èëè äðóãèõ ñòðàíàõ. PartitionMagic ýòî çàðåãèñòðèðîâàííàÿ òîðãîâàÿ ìàðêà PowerQuest Corporation â Ñîåäèíåííûõ Øòàòàõ è/èëè äðóãèõ ñòðàíàõ. Ìíîãèå èç îáîçíà÷åíèé, èñïîëüçóåìûõ ïðîèçâîäèòåëÿìè è ïðîäàâöàìè äëÿ îáîçíà÷åíèÿ ñâîèõ ïðîäóêòîâ, çàÿâëÿþòñÿ êàê òîðãîâûå ìàðêè. Êîãäà òàêèå îáîçíà÷åíèÿ ïîÿâëÿþòñÿ â ýòîé êíèãå, è Ïðîåêòó FreeBSD èçâåñòíî î òîðãîâîé ìàðêå, ê îáîçíà÷åíèþ äîáàâëÿåòñÿ çíàê ’™’. Ðàñïðîñòðàíåíèå è èñïîëüçîâàíèå èñõîäíûõ (SGML DocBook) è ”ñêîìïèëèðîâàííûõ” ôîðì (SGML, HTML, PDF, PostScript, RTF è ïðî÷èõ) ñ ìîäèôèêàöèåé èëè áåç îíîé, ðàçðåøåíû ïðè ñîáëþäåíèè ñëåäóþùèõ ñîãëàøåíèé: 1. Ðàñïðîñòðàíÿåìûå êîïèè èñõîäíîãî êîäà (SGML DocBook) äîëæíû ñîõðàíÿòü âûøåóïîìÿíóòûå îáúÿâëåíèÿ copyright, ýòîò ñïèñîê ïîëîæåíèé è ñëåäóþùèé îòêàç îò îòâåòñòâåííîñòè â ïåðâûõ ñòðîêàõ ýòîãî ôàéëà â íåèçìåííîì âèäå. 2. Ðàñïðîñòðàíÿåìûå êîïèè ñêîìïèëèðîâàííûõ ôîðì (ïðåîáðàçîâàííûå â äðóãèå DTD, êîíâåðòèðîâàííûå â PDF, PostScript, RTF è äðóãèå ôîðìàòû) äîëæíû ïîâòîðÿòü âûøåóïîìÿíóòûå îáúÿâëåíèÿ copyright, ýòîò ñïèñîê ïîëîæåíèé è ñëåäóþùèé îòêàç îò îòâåòñòâåííîñòè â äîêóìåíòàöèè è/èëè äðóãèõ ìàòåðèàëàõ, ïîñòàâëÿåìûõ ñ äèñòðèáüþöèåé.
Âàæíî: ÝÒÀ ÄÎÊÓÌÅÍÒÀÖÈß ÏÎÑÒÀÂËßÅÒÑß ÏÐÎÅÊÒÎÌ ÄÎÊÓÌÅÍÒÀÖÈÈ FREEBSD "ÊÀÊ ÅÑÒÜ" È ËÞÁÛÅ ßÂÍÛÅ ÈËÈ ÍÅßÂÍÛÅ ÃÀÐÀÍÒÈÈ, ÂÊËÞ×Àß, ÍÎ ÍÅ ÎÃÐÀÍÈ×ÈÂÀßÑÜ ÍÅßÂÍÛÌÈ ÃÀÐÀÍÒÈßÌÈ, ÊÎÌÌÅÐ×ÅÑÊÎÉ ÖÅÍÍÎÑÒÈ È ÏÐÈÃÎÄÍÎÑÒÈ ÄËß ÊÎÍÊÐÅÒÍÎÉ ÖÅËÈ
ÎÒÐÈÖÀÞÒÑß. ÍÈ ÏÐÈ ÊÀÊÈÕ ÓÑËÎÂÈßÕ ÏÐÎÅÊÒ ÄÎÊÓÌÅÍÒÈÐÎÂÀÍÈß FREEBSD ÍÅ ÍÅÑÅÒ ÎÒÂÅÒÑÒÂÅÍÍÎÑÒÈ ÇÀ ËÞÁÎÉ ÏÐßÌÎÉ, ÊÎÑÂÅÍÍÛÉ, ÑËÓ×ÀÉÍÛÉ, ÑÏÅÖÈÀËÜÍÛÉ, ÎÁÐÀÇÖÎÂÛÉ ÈËÈ ÏÎÑËÅÄÓÞÙÈÉ ÓÙÅÐÁÛ (ÂÊËÞ×Àß, ÍÎ ÍÅ ÎÃÐÀÍÈ×ÈÂÀßÑÜ ÏÎÑÒÀÂÊÎÉ ÒÎÂÀÐΠÇÀÌÅÍÛ ÈËÈ ÓÑËÓÃ; ÏÎÒÅÐÞ ÄÀÍÍÛÕ ÈËÈ ÈÕ ÍÅÏÐÀÂÈËÜÍÓÞ ÏÅÐÅÄÀ×Ó ÈËÈ ÏÎÒÅÐÈ; ÏÐÈÎÑÒÀÍÎÂËÅÍÈÅ ÁÈÇÍÅÑÀ), È ÒÅÌ ÍÅ ÌÅÍÅÅ ÂÛÇÂÀÍÍÛÅ È Â ËÞÁÎÉ ÒÅÎÐÈÈ ÎÒÂÅÒÑÒÂÅÍÍÎÑÒÈ, ÍÅÇÀÂÈÑÈÌÎ ÎÒ ÊÎÍÒÐÀÊÒÍÎÉ, ÑÒÐÎÃÎÉ ÎÒÂÅÒÑÒÂÅÍÍÎÑÒÈ, ÈËÈ ÏÐÀÂÎÍÀÐÓØÅÍÈÈ (ÂÊËÞ×Àß ÕÀËÀÒÍÎÑÒÜ ÈËÈ ÈÍÛÌ ÑÏÎÑÎÁÎÌ), ÂÎÇÍÈÊØÅÌ ËÞÁÛÌ ÏÓÒÅÌ ÏÐÈ ÈÑÏÎËÜÇÎÂÀÍÈÈ ÝÒÎÉ ÄÎÊÓÌÅÍÒÀÖÈÈ, ÄÀÆÅ ÅÑËÈ ÁÛ ÁÛËÎ ÑÎÎÁÙÅÍÎ Î ÂÎÇÌÎÆÍÎÑÒÈ ÒÀÊÎÃÎ ÓÙÅÐÁÀ.
Ñîäåðæàíèå 1. Âñòóïëåíèå ............................................................................................................................................................1 2. Äîêóìåíòàöèÿ è ïîääåðæêà ..........................................................................................................................8 3. Óñòàíîâêà .............................................................................................................................................................12 4. Àïïàðàòíàÿ ñîâìåñòèìîñòü ..........................................................................................................................23 5. Óñòðàíåíèå íåêîòîðûõ ïðîáëåì ................................................................................................................33 6. Êîììåð÷åñêèå ïðèëîæåíèÿ .........................................................................................................................48 7. Ïðèêëàäíûå ïðîãðàììû ...............................................................................................................................52 8. Êîíôèãóðèðîâàíèå ÿäðà ...............................................................................................................................56 9. Äèñêè, ôàéëîâûå ñèñòåìû è íà÷àëüíûå çàãðóç÷èêè ........................................................................59 10. Ñèñòåìíîå àäìèíèñòðèðîâàíèå ................................................................................................................70 11. X Window System è âèðòóàëüíûå êîíñîëè................................................................................................79 12. Ðàáîòà â ñåòè .....................................................................................................................................................91 13. Áåçîïàñíîñòü.....................................................................................................................................................98 14. PPP .......................................................................................................................................................................102 15. Êîììóíèêàöèîííûå àäàïòåðû ...............................................................................................................116 16. Ðàçíîå ................................................................................................................................................................124 17. Þìîð îò FreeBSD............................................................................................................................................129 18. Ñëîæíûå òåìû ...............................................................................................................................................132 19. Íàøè áëàãîäàðíîñòè ...................................................................................................................................140 Bibliography ..............................................................................................................................................................141
iv
Ñïèñîê òàáëèö 3-1. Maximum file sizes................................................................................................................................................21 12-1. Ñåòåâûå êàðòû ñîçäàííûå íà îñíîâå íàáîðå ìèêðîñõåì DEC PCI..........................................................93
Ñïèñîê ïðèìåðîâ 11-1. Ñåêöèÿ ”Pointer” äëÿ ìûøè ñ êîë¼ñèêîì èç ôàéëà XF86Config äëÿ XFree86 3.X ñ òðàíñëÿöèåé ÷åðåç moused ................................................................................................................................................................80 11-2. Ñåêöèÿ ”InputDevice” äëÿ ìûøè ñ êîë¼ñèêîì èç ôàéëà XF86Config äëÿ XFree86 4.x ñ ïðåîáðàçîâàíèåì ÷åðåç X-ñåðâåð ..................................................................................................................80 11-3. Ïðèìåð ”.emacs” äëÿ ïðîñòîé ïðîêðóòêè ñòðàíèöû ìûøüþ ñ êîë¼ñèêîì ............................................80 11-4. Ñåêöèÿ ”Pointer” äëÿ ìûøè ñ êîë¼ñèêîì èç ôàéëà XF86Config ñ òðàíñëÿöèåé ñ ïîìîùüþ X-ñåðâåðà ...........................................................................................................................................................81 11-5. Ðàçäåë ”InputDevice” äëÿ ìûøè ñ êîëåñèêîì â XF86Config èç XFree86 4.x ñ òðàíñëÿöèåé ÷åðåç X-ñåðâåð .............................................................................................................................................................81 11-6. Ïðèìåð ”.emacs” äëÿ ïðîñòîé ïðîêðóòêè ñòðàíèöû ïðè ïîìîùè ìûøè ñ êîëåñèêîì .......................81 11-7. Êîíôèãóðàöèÿ Emacs äëÿ ðàáîòû ñ Imwheel .............................................................................................82 11-8. Êîíôèãóðàöèÿ XEmacs äëÿ ðàáîòû ñ Imwheel ..........................................................................................82
v
Ãëàâà 1. Âñòóïëåíèå Äîáðî ïîæàëîâàòü â FAQ ïî FreeBSD 2.X-5.X! Êàê è îáû÷íûé FAQ êîíôåðåíöèé Usenet, ýòîò äîêóìåíò ñîäåðæèò áîëüøèíñòâî èç ÷àñòî çàäàâàåìûõ âîïðîñîâ, êàñàþùèõñÿ îïåðàöèîííîé ñèñòåìû FreeBSD (è, êîíå÷íî æå, îòâåòû íà íèõ). Ïåðâîíà÷àëüíî ïðåäíàçíà÷åííûé äëÿ óìåíüøåíèÿ ïîòîêà ñîîáùåíèé è èçáåæàíèÿ ïîâòîðåíèÿ îäíèõ è òåõ æå âîïðîñîâ, ïîñòåïåííî FAQ ïðåâðàòèëñÿ â öåííûé èñòî÷íèê èíôîðìàöèè. Ìû ïðèëàãàåì âñå óñèëèÿ, ÷òîáû ñäåëàòü ýòîò FAQ ìàêñèìàëüíî èíôîðìàòèâíûì; åñëè ó âàñ åñòü èäåè ïî åãî óñîâåðøåíñòâîâàíèþ, ïîæàëóéñòà, íàïèøèòå íàì íà àäðåñ Ñïèñîê ðàññûëêè Ïðîåêòà Äîêóìåíòàöèè FreeBSD (http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc).
1. FreeBSD - ÷òî ýòî òàêîå?  äâóõ ñëîâàõ, FreeBSD - ýòî UN*X-ïîäîáíàÿ îïåðàöèîííàÿ ñèñòåìà äëÿ ïëàòôîðì i386, IA-64, PC-98, Alpha/AXP è UltraSPARC, ðàçðàáîòàííàÿ íà îñíîâå îïåðàöèîííîé ñèñòåìû ”4.4BSD-Lite” ñ íåêîòîðûìè óñîâåðøåíñòâîâàíèÿìè, âçÿòûìè èç ”4.4BSD-Lite2” Êàëèôîðíèéñêîãî Óíèâåðñèòåòà (Áåðêëè). Òàêæå îíà êîñâåííî áàçèðóåòñÿ íà 386BSD (BSD Net/2, ïåðåíåñ¼ííîé íà ïëàòôîðìó i386 Âèëüÿìîì Äæîëèòöåì (William Jolitz)), õîòÿ îò òîãî ïåðâîíà÷àëüíîãî êîäà îñòàëîñü î÷åíü ìàëî. Áîëåå ïîäðîáíûå îáúÿñíåíèÿ òîãî, ÷òî ïðåäñòàâëÿåò èç ñåáÿ FreeBSD è äëÿ ÷åãî îíà ìîæåò âàì ïðèãîäèòüñÿ, ìîæíî íàéòè íà äîìàøíåé ñòðàíèöå FreeBSD (http://www.FreeBSD.org/index.html).
FreeBSD èñïîëüçóåòñÿ êîìïàíèÿìè, Èíòåðíåò-ïðîâàéäåðàìè, íàó÷íûìè ðàáîòíèêàìè, ïðîôåññèîíàëàìè â âû÷èñëèòåëüíîé òåõíèêå, ñòóäåíòàìè è ðÿäîâûìè ïîëüçîâàòåëÿìè ïî âñåìó ìèðó äëÿ ðàáîòû, îáðàçîâàíèÿ è îòäûõà. Âû ìîæåòå óâèäåòü íåêîòîðûõ èç íèõ â íàøåé ãàëåðåå (http://www.FreeBSD.org/gallery/gallery.html). Äëÿ áîëåå äåòàëüíîãî îçíàêîìëåíèÿ ñ FreeBSD, ïîæàëóéñòà, îáðàòèòåñü ê Ðóêîâîäñòâó ïî FreeBSD
(../handbook/index.html).
2. Êàêîâà öåëü FreeBSD? Öåëü, ïðåñëåäóåìàÿ ïðîåêòîì FreeBSD - ýòî ïðåäîñòàâëåíèå ïðîãðàììíîãî îáåñïå÷åíèÿ, êîòîðîå ìîæåò áûòü èñïîëüçîâàíî â ëþáûõ öåëÿõ áåç êàêèõ áû òî íè áûëî îãðàíè÷åíèé. Ìíîãèå èç íàñ âêëàäûâàþò çíà÷èòåëüíûå óñèëèÿ â å¼ ðàçðàáîòêó (è ïðîåêòèðîâàíèå) è îïðåäåë¼ííî áûëè áû íå ïðîòèâ ïîëó÷åíèÿ ôèíàíñîâîé ïîääåðæêè, íî òðåáîâàòü å¼ ìû íå áóäåì. Ìû íàäååìñÿ, ÷òî íàøà îñíîâíàÿ è ñàìàÿ çíà÷èòåëüíàÿ ”ìèññèÿ” - ïðåäîñòàâèòü êîä âñåì æåëàþùèì, äëÿ ëþáûõ öåëåé, òàê ÷òîáû îí íàøåë ñàìîå øèðîêîå ïðèìåíåíèå è ïðèí¼ñ íàèáîëüøóþ ïîëüçó. Ýòî, íà íàø âçãëÿä, îäíà èç ñàìûõ ôóíäàìåíòàëüíûõ öåëåé Free Software, êîòîðóþ ìû ñ ýíòóçèàçìîì ïîääåðæèâàåì. ×àñòü èñõîäíîãî êîäà íàøåé ñèñòåìû, ïîäïàäàþùàÿ ïîä äåéñòâèå GNU General Public License (GPL) (http://www.FreeBSD.org/copyright/COPYING) èëè GNU Library General Public License (LGPL) (http://www.FreeBSD.org/copyright/COPYING.LIB), èìååò íåñêîëüêî áîëüøå îãðàíè÷åíèé, õîòÿ è ïðåäñòàâëÿåò ñîáîé íàâÿçûâàíèå äîñòóïà ê èñõîäíûì òåêñòàì, à íå íàîáîðîò, êàê îáû÷íî. Èç-çà äîïîëíèòåëüíûõ ñëîæíîñòåé, êîòîðûå ìîãóò âîçíèêíóòü â ñëó÷àå êîììåð÷åñêîãî èñïîëüçîâàíèÿ ïðîãðàììíîãî îáåñïå÷åíèÿ GPL, ìû ñòàðàåìñÿ, ãäå òîëüêî ýòî âîçìîæíî, çàìåíèòü ïîäîáíîå ïðîãðàììíîå îáåñïå÷åíèå àíàëîãè÷íûì, íî ïîäïàäàþùèì ïîä ìåíåå ñòðîãóþ ëèöåíçèþ FreeBSD (http://www.FreeBSD.org/copyright/freebsd-license.html).
1
Ãëàâà 1. Âñòóïëåíèå
3. Åñòü ëè â ëèöåíçèè FreeBSD êàêèå-òî îãðàíè÷åíèÿ? Äà. Ýòè îãðàíè÷åíèÿ íå êàñàþòñÿ òîãî, êàê èìåííî âû èñïîëüçóåòå êîä, íî ãëàâíûì îáðàçîì îïèñûâàþò âàøå îòíîøåíèå ïðè ýòîì â öåëîì ê Ïðîåêòó FreeBSD. Åñëè ó âàñ åñòü ñåðüåçíûå ïðîáëåìû ñ ëèöåíçèðîâàíèåì, ïðî÷òèòå ñîáñòâåííî òåêñò ëèöåíçèîííîãî ñîãëàøåíèÿ (http://www.FreeBSD.org/copyright/freebsd-license.html). Óïðîùåííî îíî ìîæåò áûòü âêðàòöå èçëîæåíî ñëåäóþùèì îáðàçîì. • Íå ãîâîðèòå, ÷òî ýòî íàïèñàíî âàìè. • Íå ñóäèòåñü ñ íàìè, åñëè ÷òî-òî íå ðàáîòàåò.
4. Ìîæåò ëè FreeBSD çàìåíèòü îïåðàöèîííóþ ñèñòåìó, èñïîëüçóåìóþ ìíîþ ñåé÷àñ? Äëÿ áîëüøèíñòâà ëþäåé, äà. Íî ýòîò îòâåò íå òàê óæ îäíîçíà÷åí. Áîëüøèíñòâî ïîëüçîâàòåëåé íà ñàìîì äåëå íå èñïîëüçóþò îïåðàöèîííóþ ñèñòåìó. Îíè ðàáîòàþò ñ ïðèëîæåíèÿìè. Èìåííî ïðèêëàäíûå ïðîãðàììû è èñïîëüçóþò îïåðàöèîííóþ ñèñòåìó. FreeBSD ðàçðàáîòàíà äëÿ òîãî, ÷òîáû äàòü íàäåæíîå è ïîëíîôóíêöèîíàëüíîå îêðóæåíèå äëÿ ïðèëîæåíèé. Îíà ïîääåðæèâàåò øèðîêèé ñïåêòð âåá-áðàóçåðîâ, îôèñíûõ ïàêåòîâ, ïðîãðàìì äëÿ ðàáîòû ñ ýëåêòðîííîé ïî÷òîé, ãðàôè÷åñêèõ ïàêåòîâ, ïðîãðàììíûõ ñðåä, ñåòåâûõ ñåðâåðîâ è ïðàêòè÷åñêè âñå, ÷òî âû ìîæåòå çàõîòåòü. Áîëüøèíñòâî ýòèõ ïðèëîæåíèé ìîãóò áûòü ïîëó÷åíî èç Êîëëåêöèè Ïîðòîâ
(http://www.FreeBSD.org/ports/). Åñëè âàì íåîáõîäèìî èñïîëüçîâàòü ïðèëîæåíèå, êîòîðîå äîñòóïíî òîëüêî äëÿ îäíîé îïåðàöèîííîé ñèñòåìû, âàì ïðîñòî íåëüçÿ çàìåíÿòü îïåðàöèîííóþ ñèñòåìó. Îäíàêî åñòü âåðîÿòíîñòü, ÷òî ïîõîæàÿ ïðîãðàììà ñóùåñòâóåò äëÿ FreeBSD. Åñëè âàì íóæåí ñòàáèëüíî ðàáîòàþùèé ñåðâåð äëÿ îôèñà èëè ñåðâåð Èíòåðíåò, íàäåæíàÿ ðàáî÷àÿ ñòàíöèÿ èëè ïðîñòî âîçìîæíîñòü âûïîëíÿòü ðàáîòó áåç ñáîåâ, FreeBSD ïðàêòè÷åñêè âñåãäà ñïðàâèòñÿ ñî âñåì, ÷òî âàì íóæíî. Ìíîãèå ïîëüçîâàòåëè ïî âñåìó ìèðó, âêëþ÷àÿ êàê íîâè÷êîâ, òàê è îïûòíûõ àäìèíèñòðàòîðîâ UNIX®, èñïîëüçóþò FreeBSD â êà÷åñòâå ñâîåé åäèíñòâåííîé íàñòîëüíîé îïåðàöèîííîé ñèñòåìû. Åñëè âû ïåðåõîäèòå íà FreeBSD ñ êàêîãî-òî äðóãîãî âàðèàíòà UNIX, âû óæå çíàåòå áîëüøèíñòâî âàøèõ ïîòðåáíîñòåé. Åñëè âû çíàêîìû ñ ãðàôè÷åñêèìè îïåðàöèîííûìè ñèñòåìàìè, òàêèìè, êàê Windows èëè ñòàðûå âåðñèè Mac OS, áóäüòå ãîòîâû ê çàòðàòàì äîïîëíèòåëüíîãî âðåìåíè íà èçó÷åíèå ïîäõîäà UNIX ê ðàáîòå. Ýòîò FAQ è Ðóêîâîäñòâî ïî FreeBSD (../handbook/index.html) ÿâëÿþòñÿ ïðåêðàñíûì ñïîñîáîì íà÷àòü ýòî èçó÷åíèå.
5. Ïî÷åìó ñèñòåìà íàçûâàåòñÿ èìåííî FreeBSD? • Îíà ìîæåò èñïîëüçîâàòüñÿ áåçî âñÿ÷åñêèõ âûïëàò, äàæå äëÿ èçâëå÷åíèÿ âûãîäû. • Âñå èñõîäíûå òåêñòû îïåðàöèîííîé ñèñòåìû ñâîáîäíî äîñòóïíû, íà å¼ èñïîëüçîâàíèå â äðóãèõ
ðàçðàáîòêàõ (êàê êîììåð÷åñêèõ, òàê è íåêîììåð÷åñêèõ) è äàëüíåéøåå ðàñïðîñòðàíåíèå íàëîæåíû ìèíèìàëüíûå îãðàíè÷åíèÿ. • Ëþáîé, ó êîãî åñòü óñîâåðøåíñòâîâàíèÿ èëè èñïðàâëåíèÿ, ìîæåò ïðåäîñòàâèòü ñâîé êîä è îí áóäåò
(ïðàâäà, ñ ïàðîé îãîâîðîê) äîáàâëåí â èñõîäíûå òåêñòû ñèñòåìû. Ñëåäóåò îòìåòèòü, ÷òî ñëîâî ”free” èñïîëüçóåòñÿ çäåñü â äâóõ ñìûñëàõ, îäèí îçíà÷àåò ”áåñïëàòíî”, à äðóãîé ”âû ìîæåòå äåëàòü âñ¼, ÷òî õîòèòå”. Çà èñêëþ÷åíèåì ïàðû âåùåé, êîòîðûå âû íå ìîæåòå
2
Ãëàâà 1. Âñòóïëåíèå
äåëàòü ñ FreeBSD, íàïðèìåð, ïðåòåíäîâàòü íà òî, ÷òî ÿâëÿåòåñü å¼ ðàçðàáîò÷èêîì, íà ñàìîì äåëå ìîæíî äåëàòü ñ íåé âñ¼, ÷òî âàì çàáëàãîðàññóäèòñÿ.
6.  ÷¼ì çàêëþ÷àåòñÿ ðàçíèöà ìåæäó FreeBSD è NetBSD, OpenBSD è äðóãèìè îïåðàöèîííûìè ñèñòåìàìè ñ îòêðûòûìè êîäàìè ñåìåéñòâà BSD? Äæåéìñ Õîâàðä (James Howard) ñîçäàë õîðîøåå îïèñàíèå èñòîðèè è ðàçëè÷èé ìåæäó ðàçëè÷íûìè ïðîåêòàìè äëÿ æóðíàëà DaemonNews (http://www.daemonnews.org/) ïîä íàçâàíèåì Ñåìåéíîå äðåâî BSD (http://www.daemonnews.org/200104/bsd_family.html), â êîòîðîì äà¼òñÿ ïîäðîáíûé îòâåò íà ýòîò âîïðîñ.
7. Êàêîâà ïîñëåäíÿÿ âåðñèÿ FreeBSD? Íà äàííîì ýòàïå ðàçðàáîòêè FreeBSD ñóùåñòâóþò äâå ïàðàëëåëüíî ðàçðàáàòûâàåìûå âåòêè; ðåëèçû äåëàþòñÿ èç îáåèõ âåòîê. Ñåðèÿ ðåëèçîâ 4.X âûïîëíÿåòñÿ èç âåòêè -STABLE, à ñåðèÿ ðåëèçîâ 5.X âûïîëíÿåòñÿ èç -CURRENT. Âåðñèÿ 5.3 (ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/5.3-RELEASE/), âûïóùåííàÿ November 2004, ÿâëÿåòñÿ ñàìûì ïîñëåäíèì ðåëèçîì âåòêè -CURRENT. Âåðñèÿ 4.11 (ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/4.11-RELEASE/), âûïóùåííàÿ Jan 2005, ÿâëÿåòñÿ ñàìûì ïîñëåäíèì ðåëèçîì âåòêè -STABLE. Åñëè âêðàòöå, òî âåòêà -STABLE ïðåäíàçíà÷åíà ïîñòàâùèêàì óñëóã Internet, êîðïîðàòèâíûì ïîëüçîâàòåëÿì, à òàêæå âñåì òåì, êîìó â ïåðâóþ î÷åðåäü íóæíà íàä¼æíîñòü è ìèíèìàëüíîå êîëè÷åñòâî îòëè÷èé îò ïîñëåäíåãî ðåëèçà ïî ñðàâíåíèþ ñ íîâûìè (è, âîçìîæíî, íåíàä¼æíî ðàáîòàþùèìè) âîçìîæíîñòÿìè ïîñëåäíåãî ñíýïøîòà -CURRENT. Ðåëèçû ìîæíî äåëàòü èç ëþáîé âåòêè, íî -CURRENT ìîæíî èñïîëüçîâàòü òîëüêî â òîì ñëó÷àå, åñëè âû óâåðåíû, ÷òî ãîòîâû ê ïîñòîÿííûì (ïî ñðàâíåíèþ ñî -STABLE) èçìåíåíèÿì â ðàáîòå ñèñòåìû. Ðåëèçû äåëàþòñÿ ðàç â íåñêîëüêî ìåñÿöåâ. Õîòÿ ìíîãèå ñòàðàþòñÿ îòñëåæèâàòü àêòóàëüíîå ñîñòîÿíèå èñõîäíûõ òåêñòîâ FreeBSD (îáðàòèòå âíèìàíèå íà âîïðîñû î FreeBSD-CURRENT è FreeBSD-STABLE), äåëàòü ýòî íå îáÿçàòåëüíî, òàê êàê èñõîäíûå òåêñòû ïîñòîÿííî ìåíÿþòñÿ. Áîëåå ïîëíóþ èíôîðìàöèþ î ðåëèçàõ FreeBSD ìîæíî ïîëó÷èòü ñî ñòðàíèöû î Ïðîöåññå âûïóñêà ðåëèçîâ (http://www.FreeBSD.org/releng/index.html) íà âåá-ñàéòå FreeBSD.
8. ×òî òàêîå FreeBSD-CURRENT? FreeBSD-CURRENT (../handbook/cutting-edge.html#CURRENT) - ýòî âåðñèÿ îïåðàöèîííîé ñèñòåìû, íàõîäÿùàÿñÿ â ñòàäèè ðàçðàáîòêè, êîòîðàÿ äîëæíà ïîòîì ñòàòü íîâîé âåòêîé FreeBSD-STABLE. Îæèäàåòñÿ, ÷òî ýòî ñëó÷èòñÿ ïðèìåðíî ê âûõîäó 5.3-RELEASE. Òàêèì îáðàçîì, îíà ïðåäñòàâëÿåò ðåàëüíûé èíòåðåñ òîëüêî äëÿ ðàçðàáîò÷èêîâ ñèñòåìû è å¼ ôàíàòîâ. Îáðàòèòåñü ê ñîîòâåòñòâóþùåìó ðàçäåëó (../handbook/cutting-edge.html#CURRENT) Ðóêîâîäñòâà (../handbook/index.html) äëÿ ïðîÿñíåíèÿ äåòàëåé ðàáîòû ñ -CURRENT. Åñëè âû íå ñïåöèàëèñò ïî îïåðàöèîííûì ñèñòåìàì èëè íå â ñîñòîÿíèè îòëè÷èòü ðåàëüíóþ ïðîáëåìó îò âðåìåííûõ ÿâëåíèé, âû íå äîëæíû èñïîëüçîâàòü FreeBSD-CURRENT. Ýòà âåòâü çà÷àñòóþ ìåíÿåòñÿ î÷åíü áûñòðî è âïîëíå ìîæåò áûòü ïðîñòî íå ðàáîòîñïîñîáíà íåêîòîðîå âðåìÿ. Òå, êòî èñïîëüçóþò FreeBSD-CURRENT, äîëæíû áûòü â ñîñòîÿíèè àíàëèçèðîâàòü ëþáûå ïðîáëåìû è ñîîáùàòü î íèõ, åñëè ýòî äåéñòâèòåëüíî îøèáêè, à íå ”ãëþêè”. Ñîîáùåíèÿ òèïà ”make world produces some error about groups” â ñïèñêå ðàññûëêè -CURRENT ìîãóò áûòü âîñïðèíÿòû ïðåíåáðåæèòåëüíî.
3
Ãëàâà 1. Âñòóïëåíèå
Åæåäíåâíî èç âåòîê -CURRENT è -STABLE äåëàþòñÿ ñíýïøîòû (http://www.FreeBSD.org/releases/snapshots.html). Äèñòðèáóòèâû íåêîòîðûõ ñíýïøîòîâ ñäåëàíû îáùåäîñòóïíûìè. Èõ ïðåäíàçíà÷åíèå: • Òåñòèðîâàíèå ñàìîé ïîñëåäíåé âåðñèè èíñòàëëÿòîðà. • Äàòü ëþäÿì, êîòîðûå õîòÿò ðàáîòàòü ñ
-CURRENT èëè -STABLE, íî íå èìåþò âðåìåíè èëè âîçìîæíîñòè (ïðîïóñêíîé ñïîñîáíîñòè) äëÿ îòñëåæèâàíèÿ åæåäíåâíûõ èçìåíåíèé, ïðîñòîé ñïîñîá å¼ óñòàíîâêè.
• Ôèêñàöèÿ òî÷êè äëÿ ïîñëåäóþùèõ ññûëîê â ñëó÷àå, åñëè ïîçæå ìû ÷òî-íèáóäü î÷åíü ñèëüíî
ñëîìàåì. (Õîòÿ CVS, êàê ïðàâèëî, íå ïîçâîëÿåò ñëó÷èòüñÿ íè÷åìó òàêîìó óæàñíîìó :) • Âñå íîâûå âîçìîæíîñòè, êîòîðûì òðåáóåòñÿ òåñòèðîâàíèå, äîëæíû èìåòü êàê ìîæíî áîëüøå
ïîòåíöèàëüíûõ òåñòåðîâ. Íå óòâåðæäàåòñÿ, ÷òî âñÿêèé ñíýïøîò -CURRENT èìååò êà÷åñòâî ”ãîòîâîãî ïðîäóêòà”. Åñëè âàì íóæíà ñòàáèëüíî ðàáîòàþùàÿ è ïîëíîñòüþ îòòåñòèðîâàííàÿ ñèñòåìà, òî íåîáõîäèìî äîæäàòüñÿ âûõîäà ïîëíîãî ðåëèçà èëè âîñïîëüçîâàòüñÿ ñíýïøîòàìè -STABLE. Ñíýïøîòû äîñòóïíû íåïîñðåäñòâåííî ñ ftp://current.FreeBSD.org/pub/FreeBSD/snapshots/ (ftp://current.FreeBSD.org/pub/FreeBSD/snapshots/). Ñíýïøîòû 3-STABLE áîëüøå íå âûïóñêàþòñÿ. Ñíýïøîòû, êàê ïðàâèëî, ãåíåðèðóþòñÿ åæåäíåâíî äëÿ âñåõ àêòèâíî ðàçðàáàòûâàåìûõ âåòîê.
9.  ÷¼ì ñìûñë FreeBSD-STABLE? Ïîñëå òîãî, êàê áûëà âûïóùåíà FreeBSD 2.0.5, ðàçðàáîòêà FreeBSD ðàçäåëèëàñü íà äâå ÷àñòè. Îäíà âåòêà ïîëó÷èëà íàçâàíèå -STABLE (../handbook/current-stable.html#STABLE), à äðóãàÿ -CURRENT (../handbook/current-stable.html#CURRENT). FreeBSD-STABLE ïðåäíàçíà÷åíà äëÿ ïðîâàéäåðîâ óñëóã Èíòåðíåò è äðóãèõ êîììåð÷åñêèõ ïîëüçîâàòåëåé, äëÿ êîòîðûõ íåîæèäàííûå èçìåíåíèÿ èëè ýêñïåðèìåíòàëüíûå âîçìîæíîñòè âåñüìà íåæåëàòåëüíû.  íå¼ âíîñÿòñÿ òîëüêî õîðîøî îòòåñòèðîâàííûå èñïðàâëåíèÿ è äðóãèå íåáîëüøèå ïîñëåäîâàòåëüíûå óñîâåðøåíñòâîâàíèÿ. Ñ äðóãîé ñòîðîíû, FreeBSD-CURRENT ÿâëÿëàñü åäèíîé âåòêîé, íå ðàçðûâàåìîé ñ ìîìåíòà âûõîäà âåðñèè 2.0 è âåäóùåé ê 5.2.1-RELEASE (è ïîñëåäóþùèì ðåëèçàì).  ìîìåíò âûõîäà 5.3-RELEASE îæèäàåòñÿ ñîçäàíèå âåòêè 5-STABLE, à FreeBSD-CURRENT ñòàíåò 6-CURRENT. Åñëè âàì ïîìîæåò êàðòèíêà, òî âîò êàê ýòî âûãëÿäèò:
*ÂÅÒÂÜ*
*ÂÅÒÂÜ*
2.0 | | | [2.1-STABLE] 2.0.5 -> 2.1 -> 2.1.5 -> 2.1.6 -> 2.1.7.1 [êîíåö 2.1-STABLE] | (Ìàð 1997) | | | [2.2-STABLE] 2.2.1 -> 2.2.2-RELEASE -> 2.2.5 -> 2.2.6 -> 2.2.7 -> 2.2.8 [êîíåö] | (Ìàð 1997) (Îêò 97) (Àïð 98) (Èþë 98) (Äåê 98) | | 3.0-SNAPs (íà÷àëî â I êâàðòàëå 1997)
4
Ãëàâà 1. Âñòóïëåíèå
| | 3.0-RELEASE (Îêò 1998) | | [3.0-STABLE] *ÂÅÒÂÜ* 3.1-RELEASE (Ôåâ 1999) -> 3.2 -> 3.3 -> 3.4 -> 3.5 -> 3.5.1 | (Ìàé 1999) (Ñåí 1999) (Äåê 1999) (Èþíü 2000) (Èþëü 2000) | | [4.0-STABLE] *ÂÅÒÂÜ* 4.0 (Ìàðò 2000) -> 4.1 -> 4.1.1 -> 4.2 -> 4.3 -> 4.4 -> ... ïîñëåäóþùèå ðåëèçû 4.X ... | | (Èþëü 2000) (Ñåíòÿáðü 2000) (Íîÿáðü 2000) 5.0-RELEASE (ßíâ 2003) | | 5.1-RELEASE (Èþíü 2003) | | 5.2-RELEASE (ßíâ 2004) | | 5.2.1-RELEASE (Ôåâ 2004) | \|/ + [ïðîäîëæåíèå 5-CURRENT] Âåòâü 2.2-STABLE áûëà çàâåðøåíà âûõîäîì ðåëèçà 2.2.8. Âåòâü 3-STABLE áûëà çàâåðøåíà âûõîäîì ðåëèçà 3.5.1. Åäèíñòâåííûìè èçìåíåíèÿìè â ýòèõ âåòâÿõ ìîãóò áûòü òîëüêî èñïðàâëåíèÿ îøèáîê, êàñàþùèõñÿ áåçîïàñíîñòè. Ïîñëåäíèì ðåëèçîì èç âåòêè 4-STABLE íà äàííûé ìîìåíò ÿâëÿåòñÿ 4.11-RELEASE, âûïóùåííàÿ Jan
2005. Âåòêà 5-CURRENT ïîñòåïåííî äâèæåòñÿ ê ñîçäàíèþ âåòêè 5-STABLE. Ñìîòðèòå ×òî òàêîå FreeBSD-CURRENT? äëÿ áîëåå ïîäðîáíîé èíôîðìàöèè îá ýòîé âåòêå.
10.  êàêîé ìîìåíò âûïóñêàþòñÿ íîâûå âåðñèè FreeBSD? Ãðóïïà Âûïóñêà Ðåëèçîâ FreeBSD âûïóñêàåò íîâóþ âåðñèþ FreeBSD â ñðåäíåì ðàç â ÷åòûðå ìåñÿöà. Äàòû ðåëèçîâ îáû÷íî îáúÿâëÿþòñÿ çàðàíåå, òàê ÷òî òå, êòî ðàáîòàåò íàä ñèñòåìîé, çíàþò, êîãäà èõ ïðîåêòû äîëæíû áûòü çàêîí÷åíû è ïðîòåñòèðîâàíû. Ïåðèîä òåñòèðîâàíèÿ ïðåäøåñòâóåò âûõîäó êàæäîãî ðåëèçà, äëÿ òîãî, ÷òîáû óäîñòîâåðèòüñÿ â òîì, ÷òî äîáàâëåíèå íîâûõ âîçìîæíîñòåé íå ïîâëèÿëî íà ñòàáèëüíîñòü ðàáîòû ðåëèçà. Ìíîãèå ïîëüçîâàòåëè ðàñöåíèâàþò òàêóþ îñòîðîæíîñòü êàê îäíó èç ïðèÿòíåéøèõ ÷åðò FreeBSD, õîòÿ íåîáõîäèìîñòü äîæèäàòüñÿ -STABLE äëÿ ïîëó÷åíèÿ âñåõ ýòèõ íîâûõ âîçìîæíîñòåé ìîæåò íåñêîëüêî ðàçî÷àðîâûâàòü. Äîïîëíèòåëüíàÿ èíôîðìàöèÿ î ïðîöåññå ïîäãîòîâêè ðåëèçà (â òîì ÷èñëå ïëàíû âûïóñêà ïîñëåäóþùèõ ðåëèçîâ) ìîæåò áûòü íàéäåíà íà ñòðàíèöàõ âåá-ñàéòà FreeBSD, ïîñâÿù¼ííûõ âûïóñêó ðåëèçîâ
(http://www.FreeBSD.org/releng/index.html). Äëÿ òåõ, êîìó íóæíî èëè õî÷åòñÿ, åæåäíåâíî âûïóñêàþòñÿ áèíàðíûå ðåëèçû, êàê ýòî îïèñàíî âûøå.
5
Ãëàâà 1. Âñòóïëåíèå
11. Êòî ðàçðàáàòûâàåò FreeBSD? Ðåøåíèÿ, êîòîðûå êàñàþòñÿ êëþ÷åâûõ ìîìåíòîâ â ïðîåêòå FreeBSD, òàêèå, êàê îáùåå íàïðàâëåíèå ðàçâèòèÿ ïðîåêòà èëè êòî ìîæåò äîáàâëÿòü êîä ê äåðåâó èñõîäíûõ òåêñòîâ, ïðèíèìàþòñÿ îñíîâíîé êîìàíäîé (../../articles/contributors/article.html#STAFF-CORE) ðàçðàáîò÷èêîâ (Core Team), ñîñòîÿùåé èç 9 ÷åëîâåê. Òàêæå ñóùåñòâóåò ãîðàçäî áîëüøàÿ ãðóïïà èç áîëåå ÷åì 200 êîììèòòåðîâ (../../articles/contributors/article.html#STAFF-COMMITTERS) (committers), êîòîðûå ìîãóò äåëàòü èçìåíåíèÿ ïðÿìî â äåðåâå èñõîäíûõ òåêñòîâ FreeBSD. Îäíàêî áîëüøèíñòâî íåòðèâèàëüíûõ èçìåíåíèé øèðîêî îáñóæäàåòñÿ â ñïèñêàõ ðàññûëêè, è íå ñóùåñòâóåò íèêàêèõ îãðàíè÷åíèé íà ó÷àñòèå â ïîäîáíûõ äèñêóññèÿõ.
12. Ãäå ìîæíî íàéòè FreeBSD? Âñå îñíîâíûå ðåëèçû FreeBSD äîñòóïíû ïî FTP ñ FTP-ñåðâåðà FreeBSD
(ftp://ftp.FreeBSD.org/pub/FreeBSD/): • Òåêóùèé ðåëèç
3.X-STABLE, 3.5.1-RELEASE, íàõîäèòñÿ â êàòàëîãå ñ 3.5.1-RELEASE (ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/3.5.1-RELEASE).
• Ñàìûé ïîñëåäíèé ðåëèç
5.X, 5.3-RELEASE, ìîæåò áûòü íàéäåí â êàòàëîãå ñ 5.3-RELEASE (ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/5.3-RELEASE).
• Ñàìûé ïîñëåäíèé ðåëèç
4-STABLE, 4.11-RELEASE, ìîæíî íàéòè â êàòàëîãå 4.11-RELEASE (ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/4.11-RELEASE/).
• Ñíýïøîòû
4.X (ftp://current.FreeBSD.org/pub/FreeBSD/snapshots/) îáû÷íî äåëàþòñÿ åæåäíåâíî.
• Âûïóñêè
5.X Snapshot (ftp://current.FreeBSD.org/pub/FreeBSD/), êîòîðûå äåëàþòñÿ åæåäíåâíî èç âåòâè -CURRENT, ïðåäíàçíà÷åíû äëÿ òåñòåðîâ è ðàçðàáîò÷èêîâ.
Èíôîðìàöèÿ î ïîëó÷åíèè/ïðèîáðåòåíèè FreeBSD íà CD, DVD è äðóãèõ íîñèòåëÿõ äîñòóïíà â Ðóêîâîäñòâå (../handbook/mirrors.html)
13. Êàê ñîçäàòü çåðêàëî ïðîåêòà FreeBSD? Èíôîðìàöèÿ î òîì, êàê ñîçäàòü çåðêàëî ïðîåêòà FreeBSD, ìîæåò áûòü íàéäåíà â ñòàòüå Çåðêàëèðîâàíèå FreeBSD (../../articles/hubs/).
14. Êàê ìîæíî ïîëó÷èòü äîñòóï ê áàçå ñîîáùåíèé î ïðîáëåìàõ (Problem Report)? Áàçà äàííûõ âñåõ ñîîáùåíèé ïîëüçîâàòåëåé î ïðîáëåìàõ ìîæåò áûòü çàïðîøåíà ñ ïîìîùüþ íàøåãî âåá-èíòåðôåéñà (http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query). Êîìàíäà send-pr(1) ìîæåò áûòü èñïîëüçîâàíà äëÿ ïåðåäà÷è è èçìåíåíèÿ ñîîáùåíèé î ïðîáëåìàõ ÷åðåç ýëåêòðîííóþ ïî÷òó. Âîçìîæíîñòü îòïðàâêè ñîîáùåíèé î ïðîáëåìàõ ÷åðåç âåá-èíòåðôåéñ â äàííûé ìîìåíò îòêëþ÷åíà ïî ïðè÷èíàì ïîñòîÿííîãî å¼ èñïîëüçîâàíèÿ íå ïî íàçíà÷åíèþ. Ïåðåä òåì, êàê ïîñûëàòü ñîîáùåíèå îá îøèáêå, ïîæàëóéñòà, ïðî÷òèòå ñòàòüþ Ñîñòàâëåíèå ñîîáùåíèé î ïðîáëåìå âî FreeBSD (../../articles/problem-reports/article.html) î òîì, êàê ïèñàòü õîðîøèå ñîîáùåíèÿ îá îøèáêàõ.
6
Ãëàâà 1. Âñòóïëåíèå
15. Ìîãó ëè ÿ çàçåðêàëèðîâàòü âåá-ñåðâåð FreeBSD? Åñòü íåñêîëüêî ñïîñîáîâ çåðêàëèðîâàòü âåá-ñåðâåð. • Âû ìîæåòå ñãðóæàòü óæå îòôîðìàòèðîâàííûå ôàéëû ñ
CVSup-ñåðâåðà FreeBSD ïðè ïîìîùè óòèëèòû net/cvsup. Â ôàéëå /usr/share/examples/cvsup/www-supfile ñîäåðæèòñÿ ïðèìåð êîíôèãóðàöèè CVSup äëÿ çåðêàëèðîâàíèÿ âåá-ñåðâåðà.
• Âû ìîæåòå ñãðóæàòü èñõîäíûé êîä ñòðàíèö âåá-ñåðâåðà ñ ëþáîãî
FTP-ñåðâåðà FreeBSD ïðè ïîìîùè âàøåãî ëþáèìîãî ñðåäñòâà çåðêàëèðîâàíèÿ FTP. Èìåéòå â âèäó, ÷òî âàì íóæíî áóäåò åù¼ ïðåîáðàçîâàòü ýòîò êîä ïåðåä òåì, êàê ðàçìåùàòü ñòðàíèöû íà âàøåì ñåðâåðå. Çåðêàëèðîâàíèå íà÷èíàéòå ñ êàòàëîãà (ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/www).
16. Äðóãèå èñòî÷íèêè èíôîðìàöèè. Ïîæàëóéñòà, ïîñìîòðèòå ñïèñîê èìåþùåéñÿ äîêóìåíòàöèè (http://www.FreeBSD.org/docs.html) íà ãëàâíîé ñòðàíèöå ñàéòà FreeBSD (http://www.FreeBSD.org).
7
Ãëàâà 2. Äîêóìåíòàöèÿ è ïîääåðæêà 1. Åñòü ëè õîðîøèå êíèãè î FreeBSD?  ðàìêàõ ïðîåêòà ñîçäàí øèðîêèé ñïåêòð äîêóìåíòàöèè, êîòîðàÿ äîñòóïíà â îíëàéíå ïî ñëåäóþùåé ññûëêå: http://www.FreeBSD.org/docs.html. Ýòè æå ñàìûå äîêóìåíòû äîñòóïíû è â âèäå ïàêàäæåé, êîòîðûå ìîæíî ñ ë¼ãêîñòüþ óñòàíîâèòü â âàøó ñèñòåìó FreeBSD. Äåòàëüíàÿ èíôîðìàöèÿ î ïàêàäæàõ ñ äîêóìåíòàöèåé ìîæåò áûòü íàéäåíà â ïîñëåäóþùèõ ïàðàãðàôàõ. Êðîìå òîãî, â Áèáëèîãðàôèè â êîíöå ýòîãî FAQ è â Ðóêîâîäñòâå èìåþòñÿ ññûëêè íà äðóãèå ðåêîìåíäóåìûå äëÿ ÷òåíèÿ êíèãè.
2. Åñòü ëè âåðñèè äîêóìåíòàöèè â äðóãîì ôîðìàòå, íàïðèìåð, â âèäå îáû÷íîãî òåêñòà ASCII èëè PostScript? Äà. Äîêóìåíòàöèÿ èìååòñÿ â íåñêîëüêèõ ðàçëè÷íûõ ôîðìàòàõ è óïàêîâàííàÿ ðàçíûìè ñïîñîáàìè íà FTP-ñåðâåðå FreeBSD, è íàõîäèòñÿ îíà â êàòàëîãå /pub/FreeBSD/doc/
(ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/). Äîêóìåíòàöèÿ ïîäðàçäåëÿåòñÿ íà êàòåãîðèè ðàçëè÷íûìè ñïîñîáàìè. Ýòî âêëþ÷àåò: • Èìÿ äîêóìåíòà, íàïðèìåð, faq èëè handbook. • ßçûê è êîäèðîâêà äîêóìåíòà. Îíè îïèðàþòñÿ íà èìåíà ëîêàëèçàöèé, êîòîðûå âû íàéä¼òå â êàòàëîãå
/usr/share/locale âàøåé ñèñòåìû FreeBSD. Íà äàííûé ìîìåíò äëÿ äîêóìåíòàöèè ïîääåðæèâàþòñÿ ñëåäóþùèå ÿçûêè è êîäèðîâêè:
Êîäèðîâêà
ßçûê
en_US.ISO8859-1
Àíãëèéñêèé (ÑØÀ)
de_DE.ISO8859-1
Íåìåöêèé
es_ES.ISO8859-1
Èñïàíñêèé
fr_FR.ISO8859-1
Ôðàíöóçñêèé
ja_JP.eucJP
ßïîíñêèé (êîäèðîâêà EUC)
ru_RU.KOI8-R
Ðóññêèé (êîäèðîâêà KOI8-R)
zh_TW.Big5
Êèòàéñêèé (êîäèðîâêà Big5)
Çàìå÷àíèå: Íåêîòîðûå äîêóìåíòû ìîãóò èìåòüñÿ íå íà âñåõ ÿçûêàõ.
• Ôîðìàò äîêóìåíòà. Ìû ñîçäà¼ì äîêóìåíòàöèþ â íåñêîëüêèõ ðàçëè÷íûõ ôîðìàòàõ. Ó êàæäîãî èç
ôîðìàòîâ èìåþòñÿ ñâîè ïëþñû è ñâîè ìèíóñû. Íåêîòîðûå ôîðìàòû ëó÷øå ïîäõîäÿò äëÿ ÷òåíèÿ â îíëàéíå, êîãäà êàê äðóãèå ïðåäíàçíà÷åíû äëÿ ïîëó÷åíèÿ ýñòåòè÷íî âûãëÿäÿùåé íà áóìàãå êîïèè. Íàëè÷èå äîêóìåíòàöèè âî âñåõ ýòèõ ôîðìàòàõ îáåñïå÷èâàåò âîçìîæíîñòü ïðî÷òåíèÿ íàøèìè ïîëüçîâàòåëÿìè ëþáîé å¼ ÷àñòè êàê ñ ýêðàíà ìîíèòîðà, òàê è íà áóìàãå ïîñëå âûâîäà íà ïå÷àòü. Íà äàííûé ìîìåíò ïîääåðæèâàþòñÿ ñëåäóþùèå ôîðìàòû;
8
Ãëàâà 2. Äîêóìåíòàöèÿ è ïîääåðæêà
Ôîðìàò
Çíà÷åíèå
html-split
Íàáîð ìàëåíüêèõ ñâÿçàííûõ äðóã ñ äðóãîì HTML-ôàéëîâ.
html
Îäèí áîëüøîé HTML-ôàéë, ïîëíîñòüþ ñîäåðæàùèé äîêóìåíò.
pdb
Ôîðìàò áàç äàííûõ Palm Pilot, äëÿ èñïîëüçîâàíèÿ ñ óòèëèòîé iSilo (http://www.iSilo.com/).
pdf
rtf
Adobe’s Portable Document Format PostScript Rich Text Format îò Microsoft a
txt
Îáû÷íûé òåêñò
ps
Ïðèìå÷àíèÿ: a.
Íîìåðà ñòðàíèö ïðè çàãðóçêå â Word àâòîìàòè÷åñêè íå îáíîâëÿþòñÿ. Íàæìèòå CTRL+A, CTRL+EN
• Ñïîñîá êîìïðåññèè è ñîçäàíèÿ àðõèâà. Ñåé÷àñ èñïîëüçóåòñÿ òðè.
1.  ñëó÷àå ôîðìàòà html-split, ôàéëû àðõèâèðóþòñÿ ñ ïîìîùüþ tar(1). Ïîëó÷àþùèéñÿ ôàéë .tar çàòåì ïîäâåðãàåòñÿ ñæàòèþ ïî ñõåìàì, ïîäðîáíî îïèñûâàåìûì äàëåå. 2. Âñå äðóãèå ôîðìàòû ãåíåðèðóþò îäèí ôàéë ñ èìåíåì book.format (òî åñòü book.pdb, book.html, è òàê äàëåå). Ýòè ôàéëû çàòåì ñæèìàþòñÿ ïî äâóì ñõåìàì ñæàòèÿ.
Ñõåìà
Îïèñàíèå
zip
Ôîðìàò Zip. Åñëè âàì íóæíî áóäåò ðàçâåðíóòü ýòî âî FreeBSD, òî ïîòðåáóåòñÿ óñòàíîâèòü ñíà÷àëà ïîðò archivers/unzip.
bz2
Ôîðìàò BZip2. Èñïîëüçóåòñÿ ðåæå, ÷åì Zip, íî, êàê ïðàâèëî, äà¼ò ôàéëû ìåíüøåãî ðàçìåðà. ×òîáû ðàáîòàòü ñ òàêèìè ôàéëàìè, óñòàíîâèòå ïîðò archivers/bzip2.
Òàêèì îáðàçîì, âåðñèÿ Ðóêîâîäñòâà â ôîðìàòå PostScript, óïàêîâàííàÿ ñ ïîìîùüþ BZip2, áóäåò íàõîäèòüñÿ â ôàéëå ñ èìåíåì book.ps.bz2 â êàòàëîãå handbook/.
Ïîñëå âûáîðà ôîðìàòà è ñïîñîáà êîìïðåññèè, â êîòîðîì âû õîòèòå ïîëó÷èòü ôàéë, âû äîëæíû îïðåäåëèòüñÿ, äîëæåí ëè îí áûòü â âèäå ïàêàäæà FreeBSD. Ïëþñîì ñãðóçêè è óñòàíîâêè â âèäå ïàêàäæà ÿâëÿåòñÿ òî, ÷òî äîêóìåíòàöèÿ çàòåì ìîæåò óïðàâëÿòüñÿ îáû÷íûìè ñðåäñòâàìè äëÿ ðàáîòû ñ ïàêàäæàìè, òàêèìè, êàê pkg_add(1) è pkg_delete(1). Åñëè âû ðåøèëè ñãðóçèòü è óñòàíîâèòü ïàêàäæ, òî âû äîëæíû çíàòü èìÿ ôàéëà. Ôàéëû, ñîäåðæàùèå äîêóìåíòàöèþ â âèäå ïàêàäæåé, íàõîäÿòñÿ â êàòàëîãå packages. Êàæäûé òàêîé ôàéë èìååò âèä document-name.lang.encoding.format.tgz.
9
Ãëàâà 2. Äîêóìåíòàöèÿ è ïîääåðæêà
Íàïðèìåð, FAQ íà àíãëèéñêîì ÿçûêå â ôîðìàòå PDF íàõîäèòñÿ â ïàêàäæå faq.en_US.ISO8859-1.pdf.tgz. Çíàÿ ýòî, äëÿ óñòàíîâêè ïàêàäæà ñ àíãëîÿçû÷íûì FAQ â ôîðìàòå PDF âû ìîæåòå âîñïîëüçîâàòüñÿ ñëåäóþùåé êîìàíäîé. # pkg_add ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/packages/faq.en_US.ISO8859-1.pdf.tgz
Ñäåëàâ ýòî, ìîæíî èñïîëüçîâàòü óòèëèòó pkg_info(1) äëÿ îïðåäåëåíèÿ òîãî, êóäà ôàéë áûë óñòàíîâëåí. # pkg_info -f faq.en_US.ISO8859-1.pdf
Information for faq.en_US.ISO8859-1.pdf: Packing list: Package name: faq.en_US.ISO8859-1.pdf CWD to /usr/share/doc/en_US.ISO8859-1/books/faq File: book.pdf CWD to . File: +COMMENT (ignored) File: +DESC (ignored) Êàê âèäèòå, book.pdf áóäåò óñòàíîâëåí â /usr/share/doc/en_US.ISO8859-1/books/faq. Åñëè æå âû íå õîòèòå èñïîëüçîâàòü ïàêàäæè, òî âàì íóæíî ñàìèì ñãðóçèòü óïàêîâàííûå ôàéëû, ðàñïàêîâàòü èõ, à çàòåì ñêîïèðîâàòü äîêóìåíòàöèþ â ñîîòâåòñòâóþùèå ìåñòà. Íàïðèìåð, âåðñèÿ FAQ â âèäå îòäåëüíûõ HTML-ôàéëîâ, óïàêîâàííàÿ ïðè ïîìîùè bzip2(1), íàõîäèòñÿ â ôàéëå doc/ru_RU.KOI8-R/books/faq/book.html-split.tar.bz2. Äëÿ ñãðóçêè è ðàñïàêîâêè ýòîãî ôàéëà âàì íóæíî ñäåëàòü âîò ÷òî. # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2 # bzip2 -d book.html-split.tar.bz2 # tar xvf book.html-split.tar
Ó âàñ ïîëó÷èòñÿ íàáîð ôàéëîâ .html. Ãëàâíûì ÿâëÿåòñÿ index.html, è â í¼ì íàõîäèòñÿ îãëàâëåíèå, ââîäíûé ìàòåðèàë è ññûëêè íà îñòàëüíûå ÷àñòè äîêóìåíòà. Ïîñëå ýòîãî âû èõ ìîæåòå êîïèðîâàòü è ïåðåìåùàòü ïðè íåîáõîäèìîñòè íà îêîí÷àòåëüíîå ìåñòîïîëîæåíèå.
3. Ãäå íàéòè èíôîðìàöèþ ïî ñïèñêàì ðàññûëêè FreeBSD? Èñ÷åðïûâàþùàÿ èíôîðìàöèÿ ñîäåðæèòñÿ â ðàçäåëå (../handbook/eresources.html#ERESOURCES-MAIL) Ðóêîâîäñòâà, êîòîðûé ïîñâÿù¼í ñïèñêàì ðàññûëêè.
4. Ãäå ìîæíî íàéòè èíôîðìàöèþ î ïðîáëåìå 2000 ãîäà âî FreeBSD? Ïîëíàÿ èíôîðìàöèÿ íàõîäèòñÿ íà ñòðàíèöå Ãîòîâíîñòè ê 2000 ãîäó
(http://www.FreeBSD.org/y2kbug.html). 5. Êàêèå ñóùåñòâóþò òåëåêîíôåðåíöèè ïî FreeBSD? Ïîëíàÿ èíôîðìàöèÿ î ãðóïïàõ íîâîñòåé åñòü â ðàçäåëå (../handbook/eresources-news.html) Ðóêîâîäñòâà, êàñàþùåìñÿ òåëåêîíôåðåíöèé.
10
Ãëàâà 2. Äîêóìåíòàöèÿ è ïîääåðæêà
6. Ñóùåñòâóþò ëè êàíàëû IRC (Internet Relay Chat) ïî FreeBSD? Äà, áîëüøèíñòâî ñåòåé IRC èìåþò êàíàë FreeBSD: • Êàíàë #FreeBSD â ñåòè
EFNet (http://www.efnet.org/index.php) ïîñâÿù¼í FreeBSD, íî íå îáðàùàéòåñü òóäà çà òåõíè÷åñêîé ïîääåðæêîé è äàæå íå ïûòàéòåñü íàéòè ÷åëîâåêà, êîòîðûé ïîìîæåò âàì îáîéòèñü áåç ÷òåíèÿ ñòðàíèö Ñïðàâî÷íèêà èëè ñîáñòâåííûõ èçûñêàíèé. Ýòîò êàíàë ïðåäíàçíà÷åí â ïåðâóþ è îñíîâíóþ î÷åðåäü äëÿ îáùåíèÿ, è â êðóã îáñóæäàåìûõ òåì âõîäÿò ñåêñ, ñïîðò, ÿäåðíîå îðóæèå, êàê áóäòî ýòî è åñòü FreeBSD.  îáùåì, âàñ ïðåäóïðåäèëè! Êàíàë äîñòóïåí íà ñåðâåðå irc.chat.org.
• Êàíàë #FreeBSDhelp â ñåòè
EFNet (http://www.efnet.org/index.php) ïðåäíàçíà÷åí äëÿ ïîìîùè ïîëüçîâàòåëÿì FreeBSD. Çäåñü ãîðàçäî áîëåå áëàãîñêëîííî îòíîñÿòñÿ ê âîïðîñàì, ÷åì íà êàíàëå #FreeBSD.
• Êàíàë #FreeBSD â ñåòè
DALNET (http://www.dal.net/) äîñòóïåí íà ñåðâåðå irc.dal.net â ÑØÀ è íà
irc.eu.dal.net â Åâðîïå. • Êàíàë #FreeBSD â ñåòè
UNDERNET (http://www.undernet.org/) äîñòóïåí íà ñåðâåðàõ us.undernet.org â ÑØÀ è eu.undernet.org â Åâðîïå. Òàê êàê ýòî êàíàë âçàèìîïîìîùè, ïðèãîòîâüòåñü ê ÷òåíèþ äîêóìåíòàöèè, ê êîòîðîé âàñ îòîøëþò.
• Êàíàë #FreeBSD â ñåòè
HybNet (http://www.hybnet.net/). Ýòîò êàíàë íà ñàìîì äåëå ÿâëÿåòñÿ êàíàëîì âçàèìîïîìîùè. Ñïèñîê ñåðâåðîâ ìîæíî íàéòè íà ñàéòå ñåòè HybNet (http://www.hybnet.net/).
Âñå ýòè êàíàëû ðàçíûå è íå èìåþò îòíîøåíèÿ äðóã ê äðóãó. Èõ ñòèëè îáùåíèÿ òàêæå îòëè÷àþòñÿ, òàê ÷òî âàì, ìîæåò áûòü, ïðèä¼òñÿ ïîïðîáîâàòü âñå, ÷òîáû íàéòè òîò, êîòîðûé ñîîòâåòñòâóåò âàøåìó ñòèëþ. Êàê è îáû÷íî ñ ëþáûì êàíàëîì IRC, åñëè âû ëåãêî ðàçäðàæàåòåñü èëè íå ìîæåòå èìåòü äåëà ñ áîëüøèì êîëè÷åñòâîì ëèö øêîëüíîãî (è ìëàäøåãî øêîëüíîãî) âîçðàñòà, ïûòàþùèõñÿ îçâó÷èòü ñâîè ïîïûòêè ñàìîóòâåðäèòüñÿ, íå îáðàùàéòå íà ýòî âíèìàíèÿ.
7. Ãäå ìîæíî ïðîéòè ïëàòíûå êóðñû ïî FreeBSD è ïîëó÷èòü ïîääåðæêó? DaemonNews ïðîâîäèò ïëàòíûå êóðñû è îñóùåñòâëÿåò êîììåð÷åñêóþ ïîääåðæêó FreeBSD. Äîïîëíèòåëüíóþ èíôîðìàöèþ ìîæíî íàéòè íà èõ ñàéòå BSD Mall (http://www.bsdmall.com/). FreeBSD Services Ltd îñóùåñòâëÿåò êîììåð÷åñêóþ ïîääåðæêó FreeBSD â Âåëèêîáðèòàíèè (à òàêæå ïðîäà¼ò FreeBSD íà DVD). Áîëåå ïîëíóþ èíôîðìàöèþ ìîæíî ïîëó÷èòü íà èõ âåá-ñàéòå (http://www.freebsd-services.com). FreeBSD Mall ïðåäîñòàâëÿåò ïîääåðæêó FreeBSD íà êîììåð÷åñêîé îñíîâå. Âû ìîæåòå ïîëó÷èòü áîëåå ïîëíóþ èíôîðìàöèþ ñ èõ âåá-ñàéòà (http://www.freebsdmall.com/). ×òîáû ïîïàñòü â ýòîò ñïèñîê, äðóãèå îðãàíèçàöèè, îñóùåñòâëÿþùèå îáó÷åíèå è ïîääåðæêó, äîëæíû îáðàòèòüñÿ ê íàì â ïðîåêò.
11
Ãëàâà 3. Óñòàíîâêà 1. Êàêîé ôàéë íóæíî ñêà÷àòü äëÿ óñòàíîâêè FreeBSD? Äî âûõîäà â ñâåò ðåëèçà FreeBSD 3.1 äëÿ óñòàíîâêè âàì áûë íóæåí òîëüêî îäèí ôàéë ñ îáðàçîì äèñêåòû, floppies/boot.flp. Îäíàêî, íà÷èíàÿ ñ âåðñèè 3.1, âî FreeBSD áûëà äîáàâëåíà èçíà÷àëüíàÿ ïîääåðæêà î÷åíü øèðîêîãî ñïåêòðà îáîðóäîâàíèÿ, ÷òî çàíèìàåò çíà÷èòåëüíî áîëüøèé îáú¼ì äèñêîâîå ïðîñòðàíñòâà, ïîýòîìó äëÿ óñòàíîâêè FreeBSD âåðñèé 3.X è âûøå âàì íóæíû îáðàçû äâóõ äèñêåò: floppies/kernel.flp è floppies/mfsroot.flp. Ýòè îáðàçû íóæíî ïåðåíåñòè íà äèñêåòû ñ ïîìîùüþ òàêèõ óòèëèò, êàê fdimage èëè dd(1). Åñëè âû õîòèòå ñêà÷àòü äèñòðèáóòèâ ñàìîñòîÿòåëüíî (íàïðèìåð, äëÿ óñòàíîâêè ñ ðàçäåëà DOS), âîò ñïèñîê ðåêîìåíäîâàííûõ ÷àñòåé äèñòðèáóòèâà: •
bin/
•
manpages/
•
compat*/
•
doc/
•
src/ssys.*
Ïîëíûå èíñòðóêöèè ïî ýòîé ïðîöåäóðå è îá óñòàíîâêå âîîáùå ìîæíî íàéòè â ðàçäåëå (../handbook/install.html) Ðóêîâîäñòâà, ïîñâÿù¼ííîì èíñòàëëÿöèè FreeBSD.
2. Ïîìîãèòå! Çàãðóçî÷íûé ôàéë íå ïîìåùàåòñÿ íà äèñêåòó! Íà äèñêåòó ðàçìåðîì 3.5 äþéìà (1.44Ìá) ìîæåò ïîìåñòèòüñÿ 1474560 áàéò äàííûõ. Îáðàç äèñêåòû èìååò ðàçìåð ðîâíî 1474560 áàéò. Òèïè÷íûå îøèáêè ïðè ïîäãîòîâêå çàãðóçî÷íîé äèñêåòû: • Îáðàç äèñêåòû áûë çàãðóæåí ïî
FTP íå â ðåæèìå binary.
Íåêîòîðûå êëèåíòñêèå ïðîãðàììû FTP èñïîëüçóþò ïî óìîë÷àíèþ òåêñòîâûé (ascii) ðåæèì ïåðåäà÷è è ïûòàþòñÿ ïîìåíÿòü âñå ïðèíÿòûå ïîñëåäîâàòåëüíîñòè ñèìâîëîâ "êîíåö ñòðîêè" íà ñîîòâåòñòâóþùèå èì â âàøåé ñèñòåìå.  òàêîì ñëó÷àå îáðàç çàãðóçî÷íîãî äèñêà áóäåò íåèçáåæíî èñïîð÷åí. Ïðîâåðüòå ðàçìåð ïîëó÷åííîãî ôàéëà: åñëè îí íå òî÷íî òàêîé æå, êàê íà FTP-ñåðâåðå, òî îøèáêà ïðîèçîøëà, ñêîðåå âñåãî, â ïðîöåññå ïåðåäà÷è. Âî èçáåæàíèå ýòîãî ââåäèòå êîìàíäó binary â êîìàíäíîé ñòðîêå FTP ïîñëå òîãî, êàê âû ïîäêëþ÷èòåñü ê ñåðâåðó, íî äî òîãî, êàê íà÷àëè ñêà÷èâàòü ôàéë.
• Äëÿ ïåðåíîñà îáðàçà íà äèñêåòó áûëà èñïîëüçîâàíà êîìàíäà
DOS copy (èëè å¼ àíàëîã ñ ãðàôè÷åñêèì
èíòåðôåéñîì). Ïðîãðàììû òèïà copy íå ðàáîòàþò ñ îáðàçàìè äèñêåò, ïðåäíàçíà÷åííûìè äëÿ çàãðóçêè. Îáðàç ñîäåðæèò ïîëíîå ñîäåðæèìîå äèñêåòû, äîðîæêà çà äîðîæêîé, è íå ïðåäíàçíà÷åí äëÿ ïîìåùåíèÿ íà äèñêåòó â êà÷åñòâå îáû÷íîãî ôàéëà. Âàì íåîáõîäèìî ïåðåíåñòè åãî íà äèñêåòó ”íåïîñðåäñòâåííî”,
12
Ãëàâà 3. Óñòàíîâêà
èñïîëüçóÿ íèçêîóðîâíåâûå ñðåäñòâà (òàêèå, êàê fdimage èëè rawrite), îïèñàííûå â Ðóêîâîäñòâå
(../handbook/install.html).
3. Ãäå èíñòðóêöèè ïî óñòàíîâêå FreeBSD? Èíñòðóêöèè ïî óñòàíîâêå ìîãóò áûòü íàéäåíû â ãëàâå (../handbook/install.html) Ðóêîâîäñòâà, ïîñâÿù¼ííîé óñòàíîâêå FreeBSD.
4. ×òî ìíå íóæíî èìåòü äëÿ çàïóñêà FreeBSD? Âàì íóæåí ïåðñîíàëüíûé êîìïüþòåð íå íèæå 386, ñ 5 èëè áîëåå ìåãàáàéòàìè ÎÇÓ è ïî êðàéíåé ìåðå 60Ìá ñâîáîäíîãî ïðîñòðàíñòâà íà âèí÷åñòåðå. Ñèñòåìà ìîæåò ðàáîòàòü ñ äåø¼âûì ãðàôè÷åñêèì àäàïòåðîì MDA, íî äëÿ ðàáîòû ñ X11R6 òðåáóåòñÿ àäàïòåð ñòàíäàðòà VGA èëè ëó÷øå. Îáðàòèòåñü òàêæå ê Ãë. 4.
5. Ó ìåíÿ òîëüêî 4Ìá ÎÇÓ. Ñìîãó ëè ÿ óñòàíîâèòü FreeBSD? FreeBSD 2.1.7 áûëà ïîñëåäíåé âåðñèåé, êîòîðóþ ìîæíî áûëî ïðîèíñòàëëèðîâàòü íà ñèñòåìå ñ 4ÌÁ ÎÇÓ. FreeBSD 2.2 è áîëåå ïîçäíèå âåðñèè òðåáóþò äëÿ óñòàíîâêè íîâîé ñèñòåìû ïî êðàéíåé ìåðå 5ÌÁ ÎÇÓ. Âñå âåðñèè FreeBSD áóäóò ðàáîòàòü ñ 4ÌÁ ÎÇÓ, ïðîñòî íà 4ÌÁ íåëüçÿ çàïóñòèòü èíñòàëëÿöèîííóþ ïðîãðàììó. Âû ìîæåòå äîáàâèòü äîïîëíèòåëüíóþ ïàìÿòü äëÿ èíñòàëëÿöèè, åñëè âàì ýòî íóæíî, à ïîñëå òîãî, êàê ñèñòåìà áóäåò óñòàíîâëåíà è çàïóùåíà, âåðíóòüñÿ ê êîíôèãóðàöèè ñ 4ÌÁ. Ëèáî âû ìîæåòå ïîäêëþ÷èòü âàø äèñê ê êîìïüþòåðó ñ ÎÇÓ, áîëüøèì ÷åì 4ÌÁ, óñòàíîâèòü ñèñòåìó è ïåðåñòàâèòü äèñê îáðàòíî. Ïîñëå óñòàíîâêè âû ìîæåòå ïîñòðîèòü ÿäðî, êîòîðîå áóäåò ðàáîòàòü íà 4ÌÁ. Êòî-òî äàæå óìóäðÿëñÿ çàãðóæàòüñÿ ñ 2ÌÁ, õîòÿ ñèñòåìà áûëà ïðàêòè÷åñêè íåðàáîòîñïîñîáíà.
6. Êàê ñäåëàòü îðèãèíàëüíóþ çàãðóçî÷íóþ äèñêåòó?  íàñòîÿùèé ìîìåíò íåò ïðîñòîãî ñïîñîáà ñäåëàòü îðèãèíàëüíóþ çàãðóçî÷íóþ äèñêåòó. Âàì ïðèä¼òñÿ äåëàòü íîâûé ðåëèç ïîëíîñòüþ, âêëþ÷àÿ çàãðóçî÷íóþ äèñêåòó. ×òîáû ñäåëàòü îðèãèíàëüíûé ðåëèç, ñëåäóéòå èíñòðóêöèÿì â ñòàòüå î ïðîöåññå âûïóñêà ðåëèçîâ
(../../articles/releng/article.html).
7. Ìîãó ëè ÿ èìåòü áîëåå ÷åì îäíó îïåðàöèîííóþ ñèñòåìó íà ìî¼ì ÏÊ? Âçãëÿíèòå íà ýòî ðóêîâîäñòâî (../../articles/multi-os/index.html).
8. Ìîæåò ëè Windows 95/98 ñîñóùåñòâîâàòü ñ FreeBSD? Ñíà÷àëà óñòàíîâèòå Windows 95/98, à çàòåì FreeBSD. Ìåíåäæåð çàãðóçêè FreeBSD áóäåò óïðàâëÿòü ïðîöåññîì çàãðóçêè Win95/98 èëè FreeBSD. Åñëè ïîñëå ýòîãî âû åù¼ ðàç âûïîëíèòå ïðîöåäóðó
13
Ãëàâà 3. Óñòàíîâêà
óñòàíîâêè Windows 95/98, òî ïðè ýòîì ìåíåäæåð çàãðóçêè áóäåò ãðóáî óäàë¼í. Åñëè òàêîå ñëó÷èòñÿ, îáðàòèòåñü ê ñëåäóþùåìó ðàçäåëó.
9. Windows 95/98 óíè÷òîæèëà ìîé ìåíåäæåð çàãðóçêè! Êàê ìíå åãî âåðíóòü? Âû ìîæåòå ïåðåóñòàíîâèòü ìåíåäæåð çàãðóçêè FreeBSD òðåìÿ ñïîñîáàìè: • Çàïóñòèòå
DOS, ïåðåéäèòå â êàòàëîã tools/ âàøåãî äèñòðèáóòèâà FreeBSD è íàéäèòå ïðîãðàììó bootinst.exe. Çàïóñòèòå å¼ ñëåäóþùèì îáðàçîì: ...\TOOLS> bootinst.exe boot.bin
è ìåíåäæåð çàãðóçêè áóäåò ïåðåóñòàíîâëåí.
• Çàãðóçèòåñü ñ óñòàíîâî÷íîé äèñêåòû
FreeBSD è ïåðåéäèòå â ìåíþ óñòàíîâêè Custom install. Âûáåðèòå ïóíêò Partition. Âûáåðèòå óñòðîéñòâî, íà êîòîðîì áóäåò ðàñïîëàãàòüñÿ âàø ìåíåäæåðà çàãðóçêè (ýòî áóäåò ñàìûé ïåðâûé äèñê) è êîãäà âû ïåðåéäåòå ê ðåäàêòèðîâàíèþ ðàçäåëîâ, ïåðâûì äåëîì (òî åñòü åù¼ íå äåëàÿ íèêàêèõ èçìåíåíèé) âûáåðèòå (W)rite. Ïîñëåäóåò çàïðîñ íà ïîäòâåðæäåíèå, îòâåòüòå yes, è êîãäà âû ïîïàä¼òå â ìåíþ âûáîðà ìåíåäæåðà çàãðóçêè, âûáåðèòå ïóíêò ”Boot Manager”. Ìåíåäæåð çàãðóçêè áóäåò ïåðåïèñàí íà äèñê. Òåïåðü íóæíî âûéòè èç ìåíþ óñòàíîâêè è çàãðóçèòüñÿ ñ âèí÷åñòåðà êàê îáû÷íî.
• Çàãðóçèòåñü ñ óñòàíîâî÷íîé äèñêåòû (èëè êîìïàêò-äèñêà)
FreeBSD è íàéäèòå ïóíêò ìåíþ ”Fixit”. Âûáåðèòå Fixit floppy èëè CDROM #2 (”æèâàÿ” ôàéëîâàÿ ñèñòåìà) ñîîòâåòñòâåííî âàøåìó ñëó÷àþ è âû îêàæåòåñü â ïðèãëàøåíèè êîìàíäíîãî ïðîöåññîðà. Òåïåðü âûïîëíèòå ñëåäóþùóþ êîìàíäó:
Fixit# fdisk -B -b /boot/boot0 bootdevice
ïîäñòàâèâ âìåñòî bootdevice íàçâàíèå ðåàëüíî èñïîëüçóåìîãî äëÿ çàãðóçêè óñòðîéñòâà, íàïðèìåð, ad0 (ïåðâûé äèñê IDE), ad4 (ïåðâûé äèñê IDE íà äîïîëíèòåëüíîì êîíòðîëëåðå), da0 (ïåðâûé äèñê SCSI) è òîìó ïîäîáíîå.
10. Íà êîìïüþòåðàõ IBM Thinkpad ñåðèé A, T è X îïåðàöèîííàÿ ñèñòåìà óñòàíàâëèâàåòñÿ, íî ïðè ñëåäóþùåé ïåðåçàãðóçêå ìàøèíû çàâèñàþò. Êàê ìîæíî îò ýòîãî èçáàâèòüñÿ? Èç-çà îøèáêè â ïåðâûõ âåðñèÿõ BIOS îò IBM ðàçäåë FreeBSD íà ýòèõ ìàøèíàõ ðàñïîçíà¼òñÿ êàê âîçìîæíûé ñëóæåáíûé ðàçäåë FAT äëÿ ðåæèìà ñíà. Êîãäà BIOS ïûòàåòñÿ îáðàáîòàòü ðàçäåë FreeBSD, ïðîèñõîäèò çàâèñàíèå. Ñîãëàñíî IBM1, èñïðàâëåíèå âêëþ÷åíî â ñëåäóþùèå ðåëèçû ìîäåëåé/BIOS.
Ìîäåëü
Íîìåð âåðñèè BIOS
T20 T21 A20p A20m A21p A21m A21e
IYET49WW è âûøå KZET22WW è âûøå IVET62WW è âûøå IWET54WW è âûøå KYET27WW è âûøå KXET24WW è âûøå KUET30WW
14
Ãëàâà 3. Óñòàíîâêà
Ñîîáùàëîñü, ÷òî â áîëåå ïîçäíèõ âåðñèÿõ BIOS îò IBM ýòà îøèáêà ìîæåò ïîÿâèòüñÿ ñíîâà. Ýòî ñîîáùåíèå (http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=200565+208320+/usr/local/www/db/text/2001/freebsdmobile/20010429.freebsd-mobile) îò Jacques Vidrine â Ñïèñîê ðàññûëêè FreeBSD, ïîñâÿù¼ííûé ïåðåíîñíûì êîìïüþòåðàì (http://lists.FreeBSD.org/mailman/listinfo/freebsd-mobile) îïèñûâàåò ïðîöåäóðó, âûïîëíåíèå êîòîðîé ìîæåò ïîìî÷ü, åñëè âàø íîâûé ëýïòîï îò IBM íå çàãðóæàåò FreeBSD, è âû ìîæåòå èçìåíèòü
BIOS. Åñëè ó âàñ BIOS áîëåå ðàííåé âåðñèè è îáíîâëåíèå äëÿ âàñ íå ïðåäñòàâëÿåòñÿ âîçìîæíûì, òî ýòî ìîæíî îáîéòè, óñòàíîâèâ FreeBSD, èçìåíèâ èäåíòèôèêàòîð ðàçäåëà, èñïîëüçóåìûé FreeBSD è óñòàíîâèâ íîâûå çàãðóçî÷íûå áëîêè, êîòîðûå ìîãóò ðàáîòàòü ñ ðàçëè÷íûìè ID ðàçäåëîâ. Âî-ïåðâûõ, âàì íóæíî ïðèâåñòè êîìïüþòåð â ñîñòîÿíèå, êîãäà îí ïðîõîäèò ÷åðåç ýêðàí ñàìîòåñòèðîâàíèÿ. Äëÿ ýòîãî òðåáóåòñÿ âêëþ÷èòü ìàøèíó, íå ïîçâîëÿÿ åé íàéòè ðàçäåë FreeBSD íà âåäóùåì äèñêå. Îäíèì èç ñïîñîáîâ ñäåëàòü ýòî ÿâëÿåòñÿ èçâëå÷åíèå âèí÷åñòåðà è âðåìåííîå åãî óñòàíîâêà íà áîëåå ñòàðûé ThinkPad (òàêîé, êàê ThinkPad 600) èëè íàñòîëüíûé ÏÊ ñ ïîäõîäÿùèì ïåðåõîäíûì êàáåëåì. Çäåñü âû ìîæåòå óäàëèòü ðàçäåë FreeBSD è âåðíóòü äèñê íà ìåñòî. ThinkPad äîëæåí çàãðóæàòüñÿ ñíîâà. Ñ ðàáîòàþùåé ìàøèíîé âû ìîæåòå èñïîëüçîâàòü ïðîöåäóðó, îïèñàííóþ çäåñü, äëÿ ïîëó÷åíèÿ ðàáî÷åé ñèñòåìû FreeBSD.
1.
Ñãðóçèòå ôàéëû boot1 è boot2 ïî àäðåñó http://people.FreeBSD.org/~bmah/ThinkPad/. Ïîìåñòèòå ýòè ôàéëû êóäà-íèáóäü, îòêóäà âû ñìîæåòå èõ ïîòîì âçÿòü.
2.
Óñòàíîâèòå FreeBSD îáû÷íûì îáðàçîì íà ThinkPad. Íå èñïîëüçóéòå ðåæèì Dangerously Dedicated. Íå ïåðåçàãðóæàéòåñü ïîñëå îêîí÷àíèÿ óñòàíîâêè.
3.
Ïåðåêëþ÷èòåñü â ýêðàí ”Emergency Holographic Shell” (ALT+F4) èëè çàïóñòèòå îáîëî÷êó ”fixit”.
4.
Èñïîëüçóéòå êîìàíäó fdisk(8) äëÿ èçìåíåíèÿ èäåíòèôèêàòîðà ðàçäåëà FreeBSD ñî 165 íà 166 (ýòîò òèï èñïîëüçóåòñÿ â OpenBSD).
5.
Ïåðåïèøèòå ôàéëû boot1 è boot2 íà ëîêàëüíóþ ôàéëîâóþ ñèñòåìó.
6.
Äëÿ çàïèñè boot1 è boot2 íà ñëàéñ ñ FreeBSD âîñïîëüçóéòåñü êîìàíäîé disklabel(8). # disklabel -B -b boot1 -s boot2 ad0sn
Çäåñü n îçíà÷àåò íîìåð ñëàéñà, â êîòîðîì óñòàíîâëåíà FreeBSD.
7.
Âûïîëíèòå ïåðåçàãðóçêó.  ïðèãëàøåíèè çàãðóç÷èêà âàì áóäåò äàí âûáîð äëÿ çàãðóçêè OpenBSD. Íà ñàìîì äåëå ïðè ýòîì çàãðóæàåòñÿ FreeBSD.
Ñëó÷àé, êîãäà âû õîòèòå çàãðóæàòü OpenBSD è FreeBSD íà îäíîì è òîì æå ëýïòîïå, îñòàâëåí ÷èòàòåëþ â êà÷åñòâå óïðàæíåíèÿ.
11. Ìîæíî ëè ïðîèçâîäèòü óñòàíîâêó íà äèñê ñ ïîâðåæä¼ííûìè áëîêàìè? Äî âåðñèè 3.0 â ïîñòàâêó FreeBSD âêëþ÷àëàñü óòèëèòà, èçâåñòíàÿ ïîä èìåíåì bad144, êîòîðàÿ àâòîìàòè÷åñêè ïåðåíîñèëà ïîâðåæä¼ííûå áëîêè. Òàê êàê ñîâðåìåííûå äèñêè ñ èíòåðôåéñîì IDE âûïîëíÿþò ýòó ôóíêöèþ ñàìîñòîÿòåëüíî, òî óòèëèòà bad144 áûëà óäàëåíà èç äåðåâà èñõîäíûõ òåêñòîâ FreeBSD. Åñëè âû ñîáèðàåòåñü óñòàíàâëèâàòü FreeBSD 3.0 è âûøå, òî ìû íàñòîÿòåëüíî ðåêîìåíäóåì ïðèîáðåñòè íîâûé äèñê. Åñëè âû ýòîãî äåëàòü íå ñîáèðàåòåñü, òî óñòàíàâëèâàéòå FreeBSD 2.X.
15
Ãëàâà 3. Óñòàíîâêà
Åñëè âû îáíàðóæèòå èñïîð÷åííûå áëîêè íà ñîâðåìåííîì äèñêå IDE, òî âåñüìà âåðîÿòíî, ÷òî îí ñêîðî âûéäåò èç ñòðîÿ ñîâñåì (ñîáñòâåííàÿ ñïîñîáíîñòü ïåðåíîñèòü èñïîð÷åííûå áëîêè èñ÷åðïàíà, ÷òî îçíà÷àåò î÷åíü áîëüøóþ ïîð÷ó ïîâåðõíîñòè); ìû ðåêîìåíäóåì ïðèîáðåñòè íîâûé äèñê. Åñëè ïîâðåæä¼ííûå áëîêè íàõîäÿòñÿ íà SCSI äèñêå, âçãëÿíèòå íà òàêîå ðåøåíèå.
12. ß òîëüêî ÷òî îáíîâèë ñèñòåìó ñ 3.X äî 4.X, è ïåðâàÿ çàãðóçêà çàâåðøèëàñü íåóäà÷íî ñ ñîîáùåíèåì bad sector table not supported
FreeBSD 3.X è áîëåå ðàííèå âåðñèè ïîääåðæèâàþò óòèëèòó bad144, êîòîðàÿ àâòîìàòè÷åñêè ïåðåíàçíà÷àåò èñïîð÷åííûå áëîêè. Âî FreeBSD 4.X è âûøå ýòîãî íå ïîääåðæèâàåòñÿ, òàê êàê â ñîâðåìåííûå äèñêè IDE ýòà ôóíêöèîíàëüíîñòü óæå âêëþ÷åíà. Îáðàòèòåñü ê ýòîìó âîïðîñó äëÿ ïîëó÷åíèÿ áîëåå ïîëíîé èíôîðìàöèè. ×òîáû èñïðàâèòü ýòî ïîñëå îáíîâëåíèÿ ñèñòåìû, âàì íóæíî ôèçè÷åñêè ïîìåñòèòü äèñê â ðàáî÷óþ ñèñòåìó è âîñïîëüçîâàòüñÿ êîìàíäîé disklabel(8), êàê îïèñàíî â ñëåäóþùåì âîïðîñå.
13. Êàê óêàçàòü íà òî, ÷òî íà äèñêå èìååòñÿ èíôîðìàöèÿ bad144 äî òîãî, êàê ÿ ïîïûòàþñü îáíîâèòü ñèñòåìó äî FreeBSD 4.0 è ýòî ïðèâåäåò ê îøèáêå? Äëÿ ýòîãî âîñïîëüçóéòåñü ïðîãðàììîé disklabel(8). disklabel -r äèñêîâîå óñòðîéñòâî âûäàñò âàì ñîäåðæèìîå ìåòêè äèñêà. Ïîñìîòðèòå íà ïîëå flags. Åñëè âû âèäèòå flags: badsect, òî ýòîò äèñê èñïîëüçóåò bad144. Ê ïðèìåðó, íà ñëåäóþùèõ äèñêàõ âêëþ÷åíî bad144: # disklabel -r wd0
# /dev/rwd0c: type: ESDI disk: wd0s1 label: flags: badsect bytes/sector: 512 sectors/track: 63
14. Êàê óäàëèòü bad144 ñ ìîåé ñèñòåìû âåðñèè äî 4.X, ÷òîáû ÿ ñìîã ñïîêîéíî îáíîâèòü ñèñòåìó? Èñïîëüçóéòå êîìàíäó disklabel -e -rwd0 äëÿ ðåäàêòèðîâàíèÿ ìåòêè äèñêà. Ïðîñòî óäàëèòå ñëîâî badsect èç ïîëÿ ôëàãîâ, ñîõðàíèòå è âûéäèòå. Ôàéë bad144 áóäåò âñå æå çàíèìàòü íåêîòîðîå ïðîñòðàíñòâî íà âàøåì äèñêå, íî äèñê ñàì ïî ñåáå áóäåò âîçìîæíî èñïîëüçîâàòü. Ìû ïðîäîëæàåì ðåêîìåíäîâàòü âàì êóïèòü íîâûé äèñê, åñëè ó âàñ åñòü áîëüøîå êîëè÷åñòâî èñïîð÷åííûõ áëîêîâ.
15. Ñòðàííûå âåùè ïðîèñõîäÿò ïðè çàãðóçêå ñ èíñòàëëÿöèîííîãî äèñêà! Åñëè âû âèäèòå, ÷òî ìàøèíà çàâèñàåò èëè íåîæèäàííî ïåðåçàãðóæàåòñÿ, êîãäà âû ïûòàåòåñü çàãðóçèòüñÿ ñ óñòàíîâî÷íîé äèñêåòû, âû äîëæíû çàäàòü ñåáå òðè âîïðîñà:-
16
Ãëàâà 3. Óñòàíîâêà
1. Âû èñïîëüçóåòå íîâóþ, òîëüêî ÷òî îòôîðìàòèðîâàííóþ äèñêåòó (ïðåäïî÷òèòåëüíî íåèñïîëüçîâàííóþ ïðÿìî èç êîðîáêè, à íå òó, ÷òî ïðèøëà ñ ïîïóëÿðíûì æóðíàëîì è ïîñëåäíèå òðè ãîäà ïðîâåëà ïîä äèâàíîì)? 2. Âû ñêà÷àëè îáðàç äèñêåòû â äâîè÷íîì ðåæèìå? (íå ñìóùàéòåñü, äàæå ëó÷øèå èç íàñ âðåìÿ îò âðåìåíè ñêà÷èâàþò äâîè÷íûé ôàéë â ðåæèìå ASCII!) 3. Åñëè âû èñïîëüçóåòå Windows95 èëè Win98, óäîñòîâåðüòåñü, ÷òî âû çàïóñêàåòå fdimage èëè rawrite â ðåæèìå ÷èñòîãî DOS? Ýòè îïåðàöèîííûå ñèñòåìû ìîãóò âëèÿòü íà ïðîãðàììû, ðàáîòàþùèå íåïîñðåäñòâåííî ñ îáîðóäîâàíèåì, ÷òî è äåëàåò ïðîãðàììà ñîçäàíèÿ óñòàíîâî÷íîãî äèñêà; äàæå çàïóñê èç DOS â ãðàôè÷åñêîé îáîëî÷êå ìîæåò âûçâàòü ïðîáëåìû. Åñòü ñâåäåíèÿ, ÷òî Netscape âûçûâàåò ïðîáëåìû ïðè ñêà÷èâàíèè çàãðóçî÷íîãî äèñêà, òàê ÷òî ëó÷øå âñåãî èñïîëüçîâàòü ñïåöèàëüíóþ ïðîãðàììó FTP, åñëè îíà ó âàñ åñòü.
16. ß çàãðóçèëñÿ ñ ATAPI CDROM, îäíàêî ïðîãðàììà óñòàíîâêè ñîîáùèëà, ÷òî CDROM íå íàéäåí. Êóäà îí ïîäåâàëñÿ? Îáû÷íîé ïðè÷èíîé âîçíèêíîâåíèÿ òàêîé ïðîáëåìû ÿâëÿåòñÿ íåïðàâèëüíî ñêîíôèãóðèðîâàííûé ïðèâîä CDROM. Òåïåðü çà÷àñòóþ ÏÊ ïðîäàþòñÿ ñ CDROM, óñòàíîâëåííûì êàê âåäîìîå óñòðîéñòâî íà âòîðîì êîíòðîëëåðå IDE, íî áåç âåäóùåãî óñòðîéñòâà íà ýòîì êîíòðîëëåðå. Ñîãëàñíî ñïåöèôèêàöèè ATAPI, òàêàÿ êîíôèãóðàöèÿ íåâåðíà, îäíàêî Windows â òàêîì ñëó÷àå âñ¼ æå ðàáîòàåò, è BIOS èãíîðèðóåò ýòî ïðè çàãðóçêå. Âîò ïî÷åìó BIOS ìîæåò âèäåòü CDROM ïðè çàãðóçêå, à FreeBSD äëÿ çàâåðøåíèÿ óñòàíîâêè - íåò. Ïåðåêîíôèãóðèðóéòå âàøó ñèñòåìó òàê, ÷òîáû CDROM îêàçàëñÿ ëèáî îñíîâíûì óñòðîéñòâîì íà òîì IDE-êîíòðîëëåðå, íà êîòîðîì îí óñòàíîâëåí, ëèáî âåäîìûì óñòðîéñòâîì íà êîíòðîëëåðå IDE, êîòîðûé èìååò âåäóùåå óñòðîéñòâî.
17. Ìîæíî ëè ÿ óñòàíîâèòü ñèñòåìó íà ëýïòîï ÷åðåç PLIP (Parallel Line IP)? Äà. Èñïîëüçóéòå ñòàíäàðòíûé êàáåëü Laplink. Åñëè íåîáõîäèìî, îáðàòèòåñü ê ðàçäåëó Ðóêîâîäñòâà î PLIP (../handbook/plip.html) äëÿ âûÿñíåíèÿ äåòàëåé î ðàáîòå â ñåòè ÷åðåç ïàðàëëåëüíûé ïîðò. Åñëè âû ðàáîòàåòå ñ FreeBSD 3.X èëè áîëåå ðàííåé âåðñèåé, âçãëÿíèòå òàêæå íà ñòðàíèöó, ïîñâÿù¼ííóþ ìîáèëüíûì âû÷èñëåíèÿì (http://www.FreeBSD.org/docs.html#PAO).
18. Êàêèå ïàðàìåòðû äèñêà ÿ äîëæåí èñïîëüçîâàòü?
Çàìå÷àíèå: Ïîä ”ïàðàìåòðàìè” äèñêà ìû ïîíèìàåì ÷èñëî äîðîæåê, ãîëîâîê è ñåêòîðîâ íà äîðîæêó íà äèñêå, ÷òî äëÿ ïðîñòîòû îáîçíà÷àåòñÿ êàê C/H/S. Èìåííî òàê ðàáîòàåò BIOS ïåðñîíàëüíûõ êîìïüþòåðîâ ïðè ÷òåíèè èëè çàïèñè äèñêà.
Ýòî âûçûâàåò ìíîãî íåäîðàçóìåíèé ó íà÷èíàþùèõ ñèñòåìíûõ àäìèíèñòðàòîðîâ. Ïðåæäå âñåãî, ôèçè÷åñêèå ïàðàìåòðû äèñêà SCSI íå èìåþò íèêàêîãî çíà÷åíèÿ, òàê êàê FreeBSD ðàáîòàåò â òåðìèíàõ äèñêîâûõ áëîêîâ. Ôàêòè÷åñêè íåò òàêîãî ïîêàçàòåëÿ, êàê ôèçè÷åñêèå ïàðàìåòðû , òàê êàê ïëîòíîñòü ðàçìåùåíèÿ ñåêòîðîâ ðàçëè÷íà ïî âñåìó äèñêó. Òî, ÷òî ïðîèçâîäèòåëè íàçûâàþò ôèçè÷åñêèìè ïàðàìåòðàìè , åñòü íå ÷òî èíîå, êàê ïàðàìåòðû, êîòîðûå îíè ïîëó÷èëè ïî çàíèìàåìîìó ïðîñòðàíñòâó.
17
Ãëàâà 3. Óñòàíîâêà
Äëÿ äèñêîâ IDE, FreeBSD ðàáîòàåò â òåðìèíàõ C/H/S, íî âî âñåõ ñîâðåìåííûõ äèñêàõ îíè ïðåîáðàçîâûâàþòñÿ âî âíóòðåííåå ïðåäñòàâëåíèå. Èìåþò çíà÷åíèå òîëüêî ëîãè÷åñêèå ïàðàìåòðû. Ýòî òî, ÷òî ïîëó÷àåò BIOS, êîãäà ñïðàøèâàåò ”êàêèå ó òåáÿ ïàðàìåòðû?” Çàòåì îíè èñïîëüçóþòñÿ äëÿ îáðàùåíèÿ ê äèñêó. Òàê êàê FreeBSD èñïîëüçóåò BIOS ïðè çàãðóçêå, î÷åíü âàæíî ïîëó÷èòü âåðíûå ïàðàìåòðû.  ÷àñòíîñòè, åñëè ó âàñ íà äèñêå íàõîäÿòñÿ íåñêîëüêî îïåðàöèîííûõ ñèñòåì, îíè îáå äîëæíû èìåòü îäèíàêîâîå ïðåäñòàâëåíèå î ïàðàìåòðàõ äèñêà.  ïðîòèâíîì ñëó÷àå ñåðü¼çíûå ïðîáëåìû ïðè çàãðóçêå íåèçáåæíû!  ñëó÷àå äèñêîâ SCSI, ïàðàìåòðû èñïîëüçóþòñÿ â çàâèñèìîñòè îò òîãî, âêëþ÷åíà ëè ïîääåðæêà ðàñøèðåííîé òðàíñëÿöèè íà âàøåì êîíòðîëëåðå (÷òî ÷àñòî îáîçíà÷àåòñÿ êàê ”ïîääåðæêà äèñêîâ DOS >1GB” èëè ÷òî-òî ïîõîæåå). Åñëè ýòà âîçìîæíîñòü âûêëþ÷åíà, òî èñïîëüçóéòå N äîðîæåê, 64 ãîëîâêè è 32 ñåêòîðà íà äîðîæêó, ãäå N - ýòî ¼ìêîñòü äèñêà â ìåãàáàéòàõ. Íàïðèìåð, 2-ãèãàáàéòíûé äèñê äîëæåí èìåòü 2048 äîðîæåê, 64 ãîëîâêè è 32 ñåêòîðà íà äîðîæêó. Åñëè òðàíñëÿöèÿ âêëþ÷åíà (÷òî îáû÷íî èñïîëüçóåòñÿ äëÿ ïðåîäîëåíèÿ íåêîòîðûõ îãðàíè÷åíèé MSDOS) è ¼ìêîñòü äèñêà ïðåâûøàåò 1ÃÁ, èñïîëüçóåòñÿ M äîðîæåê, 63 ñåêòîðà íà äîðîæêó (íå 64) è 255 ãîëîâîê, ãäå ’M’ - ýòî îáú¼ì äèñêà â ìåãàáàéòàõ, ïîäåë¼ííûé íà 7.844238 (!). Òàêèì îáðàçîì, íàø äèñê îáú¼ìîì 2ÃÁ áóäåò èìåòü 261 äîðîæêó, 63 ñåêòîðà íà äîðîæêó è 255 ãîëîâîê. Åñëè âû íå óâåðåíû, èëè FreeBSD îøèáàåòñÿ ïðè îïðåäåëåíèè ïàðàìåòðîâ äèñêà âî âðåìÿ óñòàíîâêè, ñàìûé ïðîñòîé ñïîñîá ðåøèòü ýòó ïðîáëåìó - ñîçäàòü íà äèñêå ìàëåíüêèé ðàçäåë DOS. Ïîñëå ýòîãî BIOS äîëæíà îïðåäåëèòü ïàðàìåòðû äèñêà ïðàâèëüíî (è âû âñåãäà ìîæåòå óäàëèòü ðàçäåë DOS â ðåäàêòîðå ðàçäåëîâ, åñëè âû íå õîòèòå åãî ñîõðàíèòü. Îäíàêî âû ìîæåòå îñòàâèòü åãî äëÿ íàñòðîéêè ñåòåâûõ àäàïòåðîâ è òîìó ïîäîáíûõ âåùåé. Êðîìå òîãî, ñóùåñòâóåò ñâîáîäíî äîñòóïíàÿ óòèëèòà, ðàñïðîñòðàíÿåìàÿ âìåñòå ñ FreeBSD, êîòîðàÿ íàçûâàåòñÿ pfdisk.exe. Âû ìîæåòå íàéòè å¼ â êàòàëîãå tools êîìïàêò-äèñêà ñ FreeBSD èëè íà ðàçëè÷íûõ FTP-ñåðâåðàõ ñ FreeBSD. Ýòó ïðîãðàììó ìîæíî èñïîëüçîâàòü äëÿ îïðåäåëåíèÿ ïàðàìåòðîâ, èñïîëüçóåìûõ äðóãèìè îïåðàöèîííûìè ñèñòåìàìè, ðàñïîëîæåííûìè íà âàøåì äèñêå. Çàòåì âû ìîæåòå èñïîëüçîâàòü ýòè ïàðàìåòðû â ðåäàêòîðå ðàçäåëîâ.
19. Åñòü ëè îãðàíè÷åíèÿ íà ðàçáèåíèå äèñêà? Äà. Âû äîëæíû óáåäèòüñÿ, ÷òî êîðíåâîé ðàçäåë íàõîäèòñÿ äî 1024 äîðîæêè, òàê ÷òîáû BIOS ìîãëà çàãðóçèòü ñ íåãî ÿäðî. (Çàìåòüòå, ÷òî ýòî îãðàíè÷åíèå BIOS êîìïüþòåðà, à íå FreeBSD). Äëÿ äèñêà SCSI, ýòî, êàê ïðàâèëî, áóäåò îçíà÷àòü, ÷òî êîðíåâîé ðàçäåë ðàñïîëàãàåòñÿ â ïåðâûõ 1024Ìá (èëè â ïåðâûõ 4096Ìá, åñëè âêëþ÷åí ðåæèì ðàñøèðåííîé òðàíñëÿöèè - ïîñìîòðèòå ïðåäûäóùèé âîïðîñ). Äëÿ äèñêîâ IDE ñîîòâåòñòâóþùåå çíà÷åíèå ðàâíî 504Ìá.
20. Ñîâìåñòèìà ëè FreeBSD ñ ìåíåäæåðàìè äèñêîâ? FreeBSD ðàñïîçíà¼ò Ontrack Disk Manager è äîïóñêàåò åãî èñïîëüçîâàíèå. Äðóãèå ìåíåäæåðû äèñêîâ íå ïîääåðæèâàþòñÿ. Åñëè âû õîòèòå èñïîëüçîâàòü äèñê ñ FreeBSD, âàì íå íóæåí ìåíåäæåð äèñêà. Îòêîíôèãóðèðóéòå äèñê íà ñòîëüêî ïðîñòðàíñòâà, ñêîëüêî ñìîæåò îáðàáîòàòü BIOS (îáû÷íî 504 ìåãàáàéòà). è FreeBSD ðàñïîçíàåò, ñêîëüêî ìåñòà ó âàñ åñòü íà ñàìîì äåëå. Åñëè âû èñïîëüçóåòå ñòàðûé äèñê ñ êîíòðîëëåðîì MFM, âàì ìîæåò ïîòðåáîâàòüñÿ òî÷íî óêàçàòü FreeBSD êîëè÷åñòâî èñïîëüçóåìûõ äîðîæåê.
18
Ãëàâà 3. Óñòàíîâêà
Åñëè âû õîòèòå èñïîëüçîâàòü FreeBSD ñîâìåñòíî ñ äðóãîé îïåðàöèîííîé ñèñòåìîé, ýòî ìîæíî ñäåëàòü è áåç ìåíåäæåðà äèñêà: óäîñòîâåðüòåñü, ÷òî çàãðóçî÷íûé ðàçäåë FreeBSD è ðàçäåë äëÿ äðóãîé îïåðàöèîííîé ñèñòåìû íå âûõîäÿò çà ïðåäåëû 1024 äîðîæêè. Åñëè âû áóäåòå îñòîðîæíû, 20 ìåãàáàéòíîãî ðàçäåëà äëÿ çàãðóçêè áóäåò äîñòàòî÷íî.
21. Ïðè çàãðóçêå FreeBSD âûäà¼òñÿ ñîîáùåíèå Missing Operating System Ýòî êëàññè÷åñêèé ñëó÷àé, êîãäà FreeBSD è DOS èëè äðóãàÿ îïåðàöèîííàÿ ñèñòåìà êîíôëèêòóþò ïî ïîâîäó ïàðàìåòðîâ äèñêà. Âàì íóæíî áóäåò ïåðåóñòàíîâèòü FreeBSD, íî èìåéòå â âèäó, ÷òî èíñòðóêöèè, äàííûå âûøå, ïîìîãàþò âñåãäà.
22. Ïîñëå ïðèãëàøåíèÿ ìåíåäæåðà çàãðóçêè F? íè÷åãî íå ïðîèñõîäèò. Ýòî åù¼ îäèí ïðèçíàê ïðîáëåìû, îïèñàííîé â ïðåäûäóùåì ðàçäåëå. Ïàðàìåòðû äèñêà â BIOS è ïàðàìåòðû, èñïîëüçóåìûå FreeBSD, íå ñîâïàäàþò. Åñëè âàø êîíòðîëëåð èëè BIOS ïîääåðæèâàþò òðàíñëÿöèþ äîðîæåê (÷àñòî îáîçíà÷àåìóþ êàê >1GB drive support), ïîïðîáóéòå âêëþ÷èòü ýòó âîçìîæíîñòü è ïåðåóñòàíîâèòü FreeBSD.
23. Íóæíî ëè óñòàíàâëèâàòü âñå èñõîäíûå òåêñòû ñèñòåìû?  îáùåì ñëó÷àå, íåò. Îäíàêî ìû íàñòîÿòåëüíî ðåêîìåíäóåì óñòàíîâèòü, êàê ìèíèìóì, èñõîäíûå òåêñòû íàáîðà base, âêëþ÷àþùèé íåêîòîðûå ôàéëû, çäåñü óïîìèíàåìûå, è sys, â êîòîðûé âêëþ÷åíû èñõîäíûå òåêñòû ÿäðà. Äëÿ ðàáîòû ñèñòåìû ïðèñóòñòâèÿ èñõîäíûõ òåêñòîâ íå òðåáóåòñÿ, ðàçâå ÷òî äëÿ ïðîãðàììû êîíôèãóðèðîâàíèÿ ÿäðà config(8). Çà èñêëþ÷åíèåì èñõîäíûõ òåêñòîâ ÿäðà, ñòðóêòóðà èñõîäíûõ òåêñòîâ ñèñòåìû ïîçâîëÿåò ìîíòèðîâàòü èõ â ðåæèìå "òîëüêî äëÿ ÷òåíèÿ" ÷åðåç NFS è ãåíåðèðîâàòü âûïîëíèìûå ôàéëû ïðîãðàìì (èç-çà îãðàíè÷åíèé â èñõîäíûõ òåêñòàõ ÿäðà ìû ðåêîìåíäóåì ìîíòèðîâàòü èõ íå ïðÿìî â /usr/src, à â êàêîé-íèáóäü äðóãîé êàòàëîã ñ ñèìâîëè÷åñêèìè ññûëêàìè äëÿ äóáëèðîâàíèÿ ñòðóêòóðû êàòàëîãîâ). Íàëè÷èå èñõîäíûõ òåêñòîâ ñèñòåìû çíà÷èòåëüíî îáëåã÷àåò ïðîöåññ ïåðåõîäà íà íîâûå âåðñèè FreeBSD. Äëÿ âûáîðà ïîäìíîæåñòâà èñõîäíûõ òåêñòîâ, êîòîðîå âû õîòèòå óñòàíîâèòü, èñïîëüçóéòå ïóíêò ìåíþ Custom, êîãäà íàõîäèòåñü â ìåíþ Distributions ïðîãðàììû óñòàíîâêè.
24. Íóæíî ëè ïåðåêîìïèëèðîâàòü ÿäðî? Ïîñòðîåíèå íîâîãî ÿäðà âñåãäà áûëî íåîáõîäèìûì øàãîì ïðè óñòàíîâêå FreeBSD, îäíàêî ïîñëåäíèå ðåëèçû ïðåäîñòàâëÿþò áîëåå äðóæåñòâåííûé èíñòðóìåíò êîíôèãóðàöèè ÿäðà.  êîìàíäíîé ñòðîêå íà ïðèãëàøåíèå çàãðóç÷èêà FreeBSD (boot:) ââåäèòå -c è âû ïîïàä¼òå â ýêðàí âèçóàëüíîé íàñòðîéêè, êîòîðàÿ ïîçâîëÿåò êîíôèãóðèðîâàòü íàñòðîéêè ÿäðà äëÿ áîëüøèíñòâà àäàïòåðîâ ISA. Îäíàêî ðåêîìåíäóåòñÿ, ÷òî ïîòîì âû âñ¼ æå ïîñòðîèòå íîâîå ÿäðî, ñîäåðæàùåå òîëüêî òå äðàéâåðû, êîòîðûå âàì íóæíû, äëÿ òîãî, ÷òîáû ñýêîíîìèòü íåìíîãî ÎÇÓ, õîòÿ äëÿ áîëüøèíñòâà ñèñòåì ýòî áîëüøå íå ÿâëÿåòñÿ áîëüøîé íåîáõîäèìîñòüþ.
25. Êàêîé èç ïàðîëåé DES, Blowfish èëè MD5 ÿ äîëæåí èñïîëüçîâàòü, è êàê óêàçàòü, êàêîãî òèïà ïàðîëè èñïîëüçóþòñÿ ïîëüçîâàòåëÿìè? Ïî óìîë÷àíèþ âî FreeBSD èñïîëüçóåòñÿ ôîðìàò ïàðîëåé íà îñíîâå MD5. Ýòî äåëàåòñÿ â ïðåäïîëîæåíèè, ÷òî îí áîëåå çàùèù¼í, ÷åì òðàäèöèîííûé ôîðìàò ïàðîëåé Unix, â êîòîðîì
19
Ãëàâà 3. Óñòàíîâêà
èñïîëüçóåòñÿ ñõåìà íà îñíîâå àëãîðèòìà DES. Ïàðîëè DES îñòàþòñÿ ïðèìåíèìûìè, åñëè âàì íóæíî èñïîëüçîâàòü ôàéë ïàðîëåé ñîâìåñòíî ñ áîëåå ñòàðûìè îïåðàöèîííûìè ñèñòåìàìè, â êîòîðûõ èñïîëüçóåòñÿ ìåíåå çàùèù¼ííûé ôîðìàò ïàðîëåé (èõ ìîæíî èñïîëüçîâàòü, åñëè â ïðîãðàììå sysinstall âû âûáåðèòå óñòàíîâêó äèñòðèáóòèâà ”crypto” èëè óñòàíîâèòå èñõîäíûå òåêñòû ïàêåòà crypto â ñëó÷àå ïîñòðîåíèÿ èç èñõîäíûõ òåêñòîâ). Óñòàíîâêà êðèïòîãðàôè÷åñêèõ áèáëèîòåê ïîçâîëèò âàì òàêæå èñïîëüçîâàòü ïàðîëè â áîëåå çàùèù¼ííîì ôîðìàòå Blowfish. Óïðàâëåíèå âûáîðîì èñïîëüçóåìîãî ôîðìàòà äëÿ íîâûõ ïàðîëåé îñóùåñòâëÿåòñÿ ÷åðåç ïàðàìåòð âõîäà ”passwd_format” â ôàéëå /etc/login.conf, ïðèíèìàþùèé çíà÷åíèÿ ”des”, ”blf” (åñëè îíè åñòü) èëè ”md5”. Áîëåå ïîäðîáíàÿ èíôîðìàöèÿ î ïàðàìåòðàõ âõîäà íàõîäèòñÿ íà ñòðàíèöå Ñïðàâî÷íèêà login.conf(5).
26. Çàãðóçêà ñ óñòàíîâî÷íîé äèñêåòû ïðåðûâàåòñÿ íà ñîîáùåíèè Probing Devices.... Ïî÷åìó? Åñëè ó âàñ óñòàíîâëåíû óñòðîéñòâà IDE Zip èëè Jaz, óáåðèòå èõ è ïîïðîáóéòå ñíîâà. Îíè ìîãóò ìåøàòü èíñòàëëÿöèîííîé ïðîãðàììå. Ïîñëå òîãî, êàê ñèñòåìà áóäåò óñòàíîâëåíà, âû ìîæåòå ñíîâà ïîäêëþ÷èòü óñòðîéñòâà. Íàäååìñÿ, ÷òî ýòî áóäåò èñïðàâëåíî â áîëåå ïîçäíèõ ðåëèçàõ.
27. Ïî÷åìó ïîÿâëÿåòñÿ ñîîáùåíèå panic: cant mount root ïîñëå ïåðåçàãðóçêè òîëüêî ÷òî óñòàíîâëåííîé ñèñòåìû. Ýòà îøèáêà ïðîÿâëÿåòñÿ, êîãäà åñòü íåñîãëàñîâàíèå ìåæäó ïðåäñòàâëåíèÿìè çàãðóçî÷íîãî áëîêà è ÿäðà î äèñêîâûõ óñòðîéñòâàõ. Ýòà îøèáêà îáû÷íî ïðîÿâëÿåòñÿ íà ñèñòåìàõ ñ äâóìÿ äèñêàìè IDE, ñ âèí÷åñòåðàìè, óñòàíîâëåííûìè êàê âåäóùèé èëè åäèíñòâåííûé íà îòäåëüíûõ êîíòðîëëåðàõ IDE, ñ FreeBSD, èíñòàëëèðîâàííîé íà âòîðîì êîíòðîëëåðå IDE. Ïðîãðàììà â çàãðóçî÷íûõ áëîêàõ ïîëàãàåò, ÷òî ñèñòåìà óñòàíîâëåíà íà wd1 (âòîðîé äèñê BIOS), òîãäà êàê ÿäðî äà¼ò ïåðâîìó äèñêó íà âòîðîì êîíòðîëëåðå íàçâàíèå wd2. Ïîñëå îáíàðóæåíèÿ óñòðîéñòâà ÿäðî ïûòàåòñÿ ñìîíòèðîâàòü òî, ÷òî çàãðóçî÷íûå áëîêè âûäàþò çà çàãðóçî÷íûé äèñê, wd1, òîãäà êàê îí íà ñàìîì äåëå wd2, è îøèáàåòñÿ. Äëÿ ðàçðåøåíèÿ ýòîé ïðîáëåìû âûïîëíèòå îäíî èç ñëåäóþùèõ äåéñòâèé:
1. Äëÿ FreeBSD 3.3 è âûøå, ïåðåãðóçèòå ñèñòåìó è íàæìèòå Enter ïðè ïîÿâëåíèè ïðèãëàøåíèÿ Booting kernel in 10 seconds; hit [Enter] to interrupt. Âû îêàæåòåñü â çàãðóç÷èêå. Ïîñëå ýòîãî íàáåðèòå set root_disk_unit="disk_number". Çäåñü â êà÷åñòâå disk_number äîëæåí áûòü óêàçàí 0, åñëè FreeBSD óñòàíîâëåíà íà âåäóùåì äèñêå ïåðâîãî êîíòðîëëåðà IDE, 1, åñëè îíà óñòàíîâëåíà íà âåäîìîì äèñêå ïåðâîãî êîíòðîëëåðà IDE, 2, åñëè ñèñòåìà íàõîäèòñÿ íà âåäóùåì äèñêå âòîðîãî IDE-êîíòðîëëåðà è 3, åñëè îíà óñòàíîâëåíà íà âåäîìîì äèñêå âòîðîãî êîíòðîëëåðà IDE. Çàòåì ââåäèòå êîìàíäó boot, è âàøà ñèñòåìà äîëæíà íîðìàëüíî çàãðóçèòüñÿ. ×òîáû ñäåëàòü ýòè èçìåíåíèÿ ïîñòîÿííûìè (òî åñòü ÷òîáû âàì íå áûëî íóæäû âûïîëíÿòü ýòè äåéñòâèÿ êàæäûé ðàç ïðè ïåðåçàãðóçêå èëè âêëþ÷åíèè âàøåé ìàøèíû ñ FreeBSD), ïîìåñòèòå ñòðî÷êó root_disk_unit="disk_number" â ôàéë /boot/loader.conf.local.
2. Ïðè èñïîëüçîâàíèè FreeBSD 3.2 è áîëåå ðàííèõ âåðñèé â ïðèãëàøåíèè Boot: íàáåðèòå 1:wd(2,a)kernel è íàæìèòå Enter. Åñëè ñèñòåìà çàïóñòèëàñü, âûïîëíèòå êîìàíäó echo "1:wd(2,a)kernel" > /boot.config, ÷òîáû ñäåëàòü ýòî ñòðîêîé çàãðóçêè ïî óìîë÷àíèþ. 3. Ïîìåñòèòå äèñê ñ FreeBSD íà ïåðâè÷íûé êîíòðîëëåð IDE, òàê ÷òîáû èìåíîâàíèÿ äèñêîì ïðèøëè â ñîîòâåòñòâèå.
20
Ãëàâà 3. Óñòàíîâêà
4. Ïåðåñòðîéòå ÿäðî (../handbook/kernelconfig.html), èçìåíèâ êîíôèãóðàöèþ êîíòðîëëåðà wd íà ñëåäóþùåå: controller disk # disk
wdc0 wd0 wd1
at isa? port "IO_WD1" bio irq 14 vector wdintr at wdc0 drive 0 at wdc0 drive 1 # comment out this line
controller disk disk
wdc1 wd1 wd2
at isa? port "IO_WD2" bio irq 15 vector wdintr at wdc1 drive 0 # change from wd2 to wd1 at wdc1 drive 1 # change from wd3 to wd2
Ïðîèíñòàëëèðóéòå íîâîå ÿäðî. Åñëè âû ïåðåìåñòèëè âàøè äèñêè è õîòèòå âîññòàíîâèòü ïðåäûäóùóþ íàñòðîéêó, çàìåíèòå äèñêè â íóæíîé êîíôèãóðàöèè è ïåðåçàãðóçèòåñü. Âàøà ñèñòåìà äîëæíà íîðìàëüíî çàïóñòèòüñÿ.
28. Êàêèå èìåþòñÿ îãðàíè÷åíèÿ íà îáú¼ì îïåðàòèâíîé ïàìÿòè? Ðàçìåð îïåðàòèâíîé ïàìÿòè îãðàíè÷åí îáú¼ìîì â 4 ãèãàáàéòà. Åñëè âû ñîáèðàåòåñü óñòàíàâëèâàòü ñòîëüêî îïåðàòèâíîé ïàìÿòè â êîìïüþòåð, áóäüòå âíèìàòåëüíû. Ñêîðåå âñåãî, âàì ïðèä¼òñÿ èñïîëüçîâàòü ïàìÿòü ECC è äëÿ óìåíüøåíèÿ íàãðóçêè òàêæå âçÿòü 9-÷èïîâûå ìîäóëè ïàìÿòè âìåñòî 18-÷èïîâûõ.
29. Êàêèå ñóùåñòâóþò îãðàíè÷åíèÿ äëÿ ôàéëîâîé ñèñòåìû ffs? Äëÿ ôàéëîâîé ñèñòåìû ffs ìàêñèìàëüíûé òåîðåòè÷åñêèé ðàçìåð ðàâåí 8 òåðàáàéòàì (2à áëîêîâ) èëè 16ÒÁ ïðè ñòàíäàðòíîì ðàçìåðå áëîêà 8Ê. Íà ïðàêòèêå åñòü ïðîãðàììíîå îãðàíè÷åíèå â 1 òåðàáàéò, íî ñ íåêîòîðûìè ìîäèôèêàöèÿìè äîñòèæèìû 4 òåðàáàéòà (è òàêèå ñèñòåìû ñóùåñòâóþò). Ìàêñèìàëüíûé ðàçìåð îäíîãî ôàéëà ffs ðàâåí ïðèìåðíî 1à áëîêîâ, èëè 4ÒÁ ïðè ðàçìåðå áëîêà 4Ê.
Òàáëèöà 3-1. Maximum file sizes
ðàçìåð áëîêà fs
2.2.7-stable
3.0-current
ðàáîòàåò
äîëæíî ðàáîòàòü
4K
4T-1
4T-1
4T-1
>4T
8K
>32G
8T-1
>32G
32T-1
16K
>128G
16T-1
>128G
32T-1
32K
>512G
32T-1
>512G
64T-1
64K
>2048G
64T-1
>2048G
128T-1
Ïðè ðàçìåðå áëîêà ôàéëîâîé ñèñòåìû 4Ê, òðîéíàÿ àäðåñàöèÿ áëîêîâ ðàáîòàåò è âñ¼ äîëæíî áûòü îãðàíè÷åíî ìàêñèìàëüíûì êîëè÷åñòâîì áëîêîâ, êîòîðîå çàäà¼òñÿ â âèäå òðîéíîé ïåðåàäðåñàöèè áëîêà (ïðèìåðíî 1K^3 + 1K^2 + 1K), îäíàêî âñ¼ îãðàíè÷èâàåòñÿ (îøèáî÷íûì) ëèìèòîì 1Ã-1 íà êîëè÷åñòâî áëîêîâ ôàéëîâîé ñèñòåìû. Ýòî îãðàíè÷åíèå äîëæíî áûòü ðàâíûì 2Ã-1. Ïðè êîëè÷åñòâå áëîêîâ, ïðèáëèæàþùåìñÿ ê 2Ã-1, ïîÿâëÿþòñÿ íåêîòîðûå îøèáêè, íî ýòîò ïðåäåë íåäîñòèæèì ïðè ðàçìåðå áëîêà 4Ê. Ïðè ðàçìåðå áëîêà 8Ê è áîëüøå, âñ¼ äîëæíî áûòü îãðàíè÷åíî ëèìèòîì 2Ã-1 íà êîëè÷åñòâî áëîêîâ ôàéëîâîé ñèñòåìû, íî ðåàëüíî îãðàíè÷åíî ïðåäåëîì â 1Ã-1 íà ÷èñëî áëîêîâ ôàéëîâîé ñèñòåìû, êðîìå ñëó÷àÿ -STABLE, íåäîñòèæèìûé ïðè òðîéíîé ïåðåàäðåñàöèè, òàê ÷òî ïðåäåë ðàâåí ìàêñèìàëüíîìó
21
Ãëàâà 3. Óñòàíîâêà
÷èñëó áëîêîâ ôàéëîâîé ñèñòåìû, êîòîðûé ìîæåò áûòü ïðåäñòàâëåí ÷åðåç äâîéíóþ ïåðåàäðåñàöèþ (ïðèìåðíî (ðàçìåð áëîêà/4)^2 + (ðàçìåð áëîêà/4)), è ïîä -CURRENT ïðåâûøåíèå ýòîãî îãðàíè÷åíèÿ ìîæåò âûçâàòü ïðîáëåìû. Èñïîëüçîâàíèå âåðíîãî îãðàíè÷åíèÿ â 2Ã-1 áëîêîâ âûçûâàåò ïðîáëåìû.
30. ß ñêîìïèëèðîâàë íîâîå ÿäðî è ïðè çàãðóçêå ïîëó÷èë ñîîáùåíèå îá îøèáêå archsw.readin.failed. Âû ìîæåòå îñóùåñòâèòü çàãðóçêó ñèñòåìû, ÿâíî óêàçàâ ÿäðî âî âðåìÿ âòîðîãî ýòàïà çàãðóçî÷íîãî ïðîöåññà, íàæàâ ëþáóþ êëàâèøó ïîñëå ïîÿâëåíèÿ ñèìâîëà | äî çàïóñêà çàãðóç÷èêà. Áîëåå òî÷íî, âû îáíîâèëè èñõîäíûå òåêñòû ÿäðà, îòêîìïèëèðîâàëè è óñòàíîâèëè íîâîå ÿäðî áåç âûïîëíåíèÿ make world . Òàêîå íå ïîääåðæèâàåòñÿ. Âûïîëíèòå make world.
31. ×òî òàêîå ”ïðîôèëè áåçîïàñíîñòè”? ”Ïðîôèëü áåçîïàñíîñòè” (security profile) ÿâëÿåòñÿ íàáîðîì íàñòðàèâàåìûõ ïàðàìåòðîâ, ïðè ïîìîùè êîòîðûõ äåëàåòñÿ ïîïûòêà äîñòè÷ü æåëàåìûé áàëàíñ ìåæäó áåçîïàñíîñòüþ è óäîáñòâîì ðàáîòû, ðàçðåøàÿ èëè çàïðåùàÿ çàïóñê îïðåäåëåííûõ ïðîãðàìì è èçìåíÿÿ äðóãèå íàñòðîéêè. Âñå ïîäðîáíîñòè ìîæíî íàéòè â ðàçäåëå Ïðîôèëü áåçîïàñíîñòè (../handbook/install-post.html#SECURITYPROFILE) ãëàâû Ðóêîâîäñòâà î äåéñòâèÿõ ïîñëå óñòàíîâêè (../handbook/install-post.html).
Ïðèìå÷àíèÿ 1. Ïèñüìî îò Keith Frechette .
22
Ãëàâà 4. Àïïàðàòíàÿ ñîâìåñòèìîñòü 1. Ïîääåðæèâàåò ëè FreeBSD àïïàðàòíûå ïëàòôîðìû, îòëè÷íûå îò x86? Äà.  íàñòîÿùåå âðåìÿ FreeBSD ïîääåðæèâàåò àðõèòåêòóðû Intel x86 è DEC (ñåé÷àñ Compaq) Alpha. Íà÷èíàÿ ñ FreeBSD 5.0, òàêæå ïîääåðæèâàþòñÿ àðõèòåêòóðû IA-64, AMD-64 è SPARC-64. Ïëàíèðóþòñÿ ê ïîääåðæêå ïëàòôîðìû MIPS è PowerPC, äîïîëíèòåëüíóþ èíôîðìàöèþ î ïðîèñõîäÿùåé ðàáîòå ìîæíî ïîëó÷èòü, ïîäïèñàâøèñü ñîîòâåòñòâåííî íà Ñïèñîê ðàññûëêè, ïîñâÿù¼ííûé ïîðòèðîâàíèþ FreeBSD íà àðõèòåêòóðó PowerPC (http://lists.FreeBSD.org/mailman/listinfo/freebsd-ppc) èëè Ñïèñîê ðàññûëêè, ïîñâÿù¼ííûé ïîðòèðîâàíèþ FreeBSD íà àðõèòåêòóðó MIPS (http://lists.FreeBSD.org/mailman/listinfo/freebsd-mips). Äëÿ îáñóæäåíèå îáùèõ âîïðîñîâ, êàñàþùèõñÿ íîâûõ àïïàðàòíûõ ïëàòôîðì, ïðåäíàçíà÷åí Ñïèñîê ðàññûëêè, ïîñâÿù¼ííûé ïîðòèðîâàíèþ FreeBSD íà íå-Intel ïëàòôîðìû (http://lists.FreeBSD.org/mailman/listinfo/freebsd-platforms). Åñëè àïïàðàòíàÿ ïëàòôîðìà Âàøåãî êîìïüþòåðà íå ïîääåðæèâàåòñÿ FreeBSD è Âàì íóæíî åãî çàïóñòèòü ïðÿìî ñåé÷àñ, ìû ñîâåòóåì îáðàòèòü Âàø âçãëÿä òàêæå íà NetBSD (http://www.NetBSD.org) è
OpenBSD (http://www.OpenBSD.org).
2. ß õî÷ó ïðèîáðåñòè àïïàðàòóðó äëÿ ìîåé ñèñòåìû FreeBSD. Êàêàÿ ìîäåëü/ïðîèçâîäèòåëü/òèï ëó÷øå âñåãî? Ýòî ïîñòîÿííî îáñóæäàåòñÿ â ñïèñêàõ ðàññûëêè FreeBSD. Òàê êàê àïïàðàòóðà ìåíÿåòñÿ òàê áûñòðî, ìû ýòî îæèäàåì. Ìû âñ¼ æå íàñòîÿòåëüíî ðåêîìåíäóåì, ÷òîáû âû ïðî÷èòàëè Hardware Notes äëÿ FreeBSD 5.3 (http://www.FreeBSD.org/releases/5.3R/hardware.html) èëè 4.11 (http://www.FreeBSD.org/releases/4.11R/hardware.html), à òàêæå âûïîëíèëè ïîèñê ïî àðõèâàì (http://www.FreeBSD.org/search/#mailinglists) ñïèñêîâ ðàññûëêè ïåðåä òåì, êàê çàäàâàòü âîïðîñû î ñàìîì ïîñëåäíåì è ëó÷øåì îáîðóäîâàíèè. Âåñüìà âåðîÿòíî, ÷òî îáñóæäåíèå òðåáóåìîãî âàì îáîðóäîâàíèå êàê ðàç áûëî íà ïðîøëîé íåäåëå. Åñëè âû ïîäáèðàåòå ëýïòîï, ïîñìîòðèòå àðõèâû ñïèñêà ðàññûëêè FreeBSD-mobile.  ïðîòèâíîì ñëó÷àå âàì íóæíû àðõèâû FreeBSD-questions èëè, âîçìîæíî, ñïåöèôè÷íûå ñïèñêè ðàññûëêè ïî êîíêðåòíîìó òèïó îáîðóäîâàíèÿ.
3. Êàêèå òèïû âèí÷åñòåðîâ ïîääåðæèâàåò FreeBSD? FreeBSD ðàáîòàåò ñ äèñêàìè ñòàíäàðòîâ EIDE è SCSI (ñ ñîîòâåòñòâóþùèìè êîíòðîëëåðàìè; îáðàòèòåñü ê ñëåäóþùåìó ðàçäåëó), è âñåìè äèñêàìè, èñïîëüçóþùèìè îðèãèíàëüíûé èíòåðôåéñ ”Western Digital” (MFM, RLL, ESDI è, êîíå÷íî æå, IDE). Íåêîòîðûå êîíòðîëëåðû ESDI, èñïîëüçóþùèå ñîáñòâåííûå èíòåðôåéñû, ìîãóò è íå ðàáîòàòü: ê òàêèì îòíîñÿòñÿ WD1002/3/6/7 è èõ êëîíû. 4. Êàêèå ïîääåðæèâàþòñÿ êîíòðîëëåðû SCSI? Ïîëíûé ñïèñîê ïðèâåä¼í â Hardware Notes äëÿ FreeBSD 5.3 (http://www.FreeBSD.org/releases/5.3R/hardware.html) èëè 4.11
(http://www.FreeBSD.org/releases/4.11R/hardware.html).
23
Ãëàâà 4. Àïïàðàòíàÿ ñîâìåñòèìîñòü
5. Êàêèå ïðèâîäû CDROM ïîääåðæèâàþòñÿ âî FreeBSD? Ïîääåðæèâàþòñÿ ëþáûå SCSI-óñòðîéñòâà ÷òåíèÿ êîìïàêò äèñêîâ, ïîäêëþ÷åííûå ê ïîääåðæèâàåìîìó êîíòðîëëåðó. Êðîìå òîãî, ïîääåðæèâàþòñÿ ñëåäóþùèå îðèãèíàëüíûå èíòåðôåéñû CDROM: •
Mitsumi LU002 (8bit), LU005 (16bit) è FX001D (16bit 2x Speed).
•
Sony CDU 31/33A
•
Sound Blaster íå-SCSI CDROM
•
Matsushita/Panasonic CDROM
•
ATAPI-ñîâìåñòèìûå IDE CDROM
Âñå íå-SCSI àäàïòåðû ñëàâÿòñÿ ñâîåé ìåäëèòåëüíîñòüþ ïî ñðàâíåíèþ ñî SCSI, à íåêîòîðûå CDROM ñòàíäàðòà ATAPI ìîãóò è íå ðàáîòàòü. Îôèöèàëüíûé FreeBSD CDROM ISO, à òàêæå äèñêè CDROM îò Daemon News è FreeBSD Mall, ÿâëÿþòñÿ çàãðóçî÷íûìè.
6. Êàêèå ïðèâîäû CD-RW ïîääåðæèâàþòñÿ âî FreeBSD? FreeBSD ïîääåðæèâàåò âñå ATAPI-ñîâìåñòèìûå IDE-ïðèâîäû CD-R èëè CD-RW. Äëÿ FreeBSD âåðñèè 4.0 è âûøå îáðàòèòåñü ê ñïðàâî÷íîé ñòðàíèöå ïî êîìàíäå burncd(8). Äëÿ áîëåå ðàííèõ âåðñèé FreeBSD ïîñìîòðèòå ïðèìåðû â ôàéëå /usr/share/examples/atapi. FreeBSD ïîääåðæèâàåò òàêæå âñå SCSI-ïðèâîäû CD-R èëè CD-RW. Óñòàíîâèòå è èñïîëüçóéòå ïðîãðàììó cdrecord èç ñèñòåìû ïîðòîâ èëè ïàêàäæåé, íî ïðîâåðüòå, ÷òî â âàøåì ÿäðå ïðèñóòñòâóåò óñòðîéñòâî pass.
7. Ïîääåðæèâàåò ëè FreeBSD óñòðîéñòâà ZIP? Êîíå÷íî æå, FreeBSD ïîääåðæèâàåò ZIP-óñòðîéñòâà SCSI è ATAPI (IDE). Óñòðîéñòâó SCSI ZIP ìîãóò áûòü íàçíà÷åíû SCSI ID òîëüêî 5 èëè 6, è åñëè BIOS âàøåãî SCSI-àäàïòåðà ïîääåðæèâàåò òàêóþ âîçìîæíîñòü, âû ìîæåòå ñ íåãî äàæå çàãðóçèòüñÿ. Íåèçâåñòíî, êàêèå àäàïòåðû ïîçâîëÿþò çàãðóçèòüñÿ ñ óñòðîéñòâ, íîìåðà êîòîðûõ îòëè÷íû îò 0 èëè 1, òàê ÷òî âàì ïðèä¼òñÿ îáðàòèòüñÿ ê äîêóìåíòàöèè, åñëè âàì ýòî íóæíî.
FreeBSD òàêæå ïîääåðæèâàåò óñòðîéñòâà Zip, ðàáîòàþùèå ÷åðåç ïàðàëëåëüíûé ïîðò. Ïðîâåðüòå, ñîäåðæèò ëè âàøå ÿäðî äðàéâåðû äëÿ scbus0, da0, ppbus0 è vp0 (ÿäðî GENERIC ñîäåðæèò âñ¼ ýòî, êðîìå vp0). Åñëè ýòè äðàéâåðû èìåþòñÿ, òî óñòðîéñòâî äîëæíî áûòü äîñòóïíî êàê /dev/da0s4. Äèñêè ìîãóò áûòü ñìîíòèðîâàíû êîìàíäàìè mount /dev/da0s4 /mnt èëè (äëÿ äèñêîâ dos) mount_msdos /dev/da0s4 /mnt ñîîòâåòñòâåííî. Òàêæå ïîñìîòðèòå FAQ ïî ñú¼ìíûì íîñèòåëÿì äàëåå â ýòîé ãëàâå, à òàêæå çàìå÷àíèå î ”ôîðìàòèðîâàíèè” â ãëàâå îá àäìèíèñòðèðîâàíèè.
24
Ãëàâà 4. Àïïàðàòíàÿ ñîâìåñòèìîñòü
8. Ïîääåðæèâàåò ëè FreeBSD ñú¼ìíûå äèñêè òèïà JAZ èëè EZ? Êðîìå IDE-âàðèàíòà óñòðîéñòâà EZ, ýòî âñ¼ óñòðîéñòâà SCSI, òàê ÷òî äëÿ FreeBSD âñå îíè äîëæíû âûãëÿäåòü êàê äèñêè SCSI, à IDE EZ äîëæåí âûãëÿäåòü êàê äèñê IDE. ß íå çíàþ, íàñêîëüêî õîðîøî FreeBSD ïîääåðæèâàåò ñìåíó íîñèòåëÿ âî âðåìÿ ðàáîòû. Êîíå÷íî, ÷òîáû ñìåíèòü äèñê, âàì ñíà÷àëà íóæíî åãî ðàçìîíòèðîâàòü, è îáðàòèòå âíèìàíèå íà òî, ÷òî ïðè çàãðóçêå âñå âíåøíèå óñòðîéñòâà äîëæíû áûòü âêëþ÷åíû, ÷òîáû FreeBSD ìîãëà èõ ðàñïîçíàòü. Ïîñìîòðèòå ýòî çàìå÷àíèå î ”ôîðìàòèðîâàíèè”.
9. Êàêèå ìíîãîïîðòîâûå ïîñëåäîâàòåëüíûå àäàïòåðû ïîääåðæèâàþòñÿ âî FreeBSD? Ñïèñîê òàêèõ óñòðîéñòâ íàõîäèòñÿ â ðàçäåëå î ðàçëè÷íûõ óñòðîéñòâàõ (../handbook/install.html#INSTALL-MISC) Ðóêîâîäñòâà. Íåêîòîðûå áåçûìÿííûå êëîíû òàêèõ àäàïòåðîâ òîæå ðàáîòàþò íîðìàëüíî, îñîáåííî òå, êîòîðûå çàÿâëÿþò î ñâîåé ñîâìåñòèìîñòè ñ AST. Ïðî÷òèòå ñòðàíèöû Ñïðàâî÷íèêà î sio(4) äëÿ ïîëó÷åíèÿ ïîäðîáíîé èíôîðìàöèè î êîíôèãóðèðîâàíèè òàêèõ àäàïòåðîâ.
10. Ïîääåðæèâàåò ëè FreeBSD USB êëàâèàòóðû? FreeBSD 4.X è áîëåå ïîçäíèå âåðñèè èìåþò âñòðîåííóþ ïîääåðæêó êëàâèàòóð USB. Íåêîòîðàÿ ïîääåðæêà óñòðîéñòâ USB ïîÿâèëàñü âî FreeBSD 3.1, íî îíà íå âñåãäà ðàáîòàåò òàê, êàê â âåðñèè 3.2. Åñëè âû õîòèòå ïîýêñïåðèìåíòèðîâàòü ñ ïîääåðæêîé êëàâèàòóðû USB âî FreeBSD 3.X, ñëåäóéòå óêàçàíèÿì íèæå. 1.
Èñïîëüçóéòå FreeBSD 3.X âåðñèé âûøå, ÷åì 3.2.
2.
 êîíôèãóðàöèîííûé ôàéë ÿäðà äîáàâüòå ñëåäóþùèå ñòðîêè è ïåðåñòðîéòå ÿäðî.
controller controller controller controller options
3.
uhci0 ohci0 usb0 ukbd0 KBD_INSTALL_CDEV
Ïåðåéäèòå â êàòàëîã /dev è ñîçäàéòå ñïåöèàëüíûå ôàéëû óñòðîéñòâ ñëåäóþùèì îáðàçîì: # cd /dev # ./MAKEDEV kbd0 kbd1
4.
Îòðåäàêòèðóéòå ôàéë /etc/rc.conf, äîáàâèâ ñëåäóþùèå ñòðîêè:
usbd_enable="YES" usbd_flags="" Åñëè âû õîòèòå èñïîëüçîâàòü êëàâèàòóðó USB âî FreeBSD âåðñèé 4.X èëè áîëåå ïîçäíèõ, âàì äîñòàòî÷íî âêëþ÷èòü ïîääåðæêó USB â ôàéëå /etc/rc.conf. Ïîñëå âêëþ÷åíèÿ ïîääåðæêè USB-êëàâèàòóðû â ñèñòåìå AT-êëàâèàòóðå áóäåò ñîîòâåòñòâîâàòü /dev/kbd0, à êëàâèàòóðå USB /dev/kbd1, åñëè îíè îáå ïîäêëþ÷åíû ê ñèñòåìå. Åñëè ïðèñóòñòâóåò òîëüêî êëàâèàòóðà USB, åé áóäåò ñîîòâåòñòâîâàòü /dev/ukbd0.
25
Ãëàâà 4. Àïïàðàòíàÿ ñîâìåñòèìîñòü
Åñëè âû õîòèòå èñïîëüçîâàòü êëàâèàòóðó USB íà êîíñîëè, âû äîëæíû ÿâíî óêàçàòü äðàéâåðó êîíñîëè íà èñïîëüçîâàíèå èìåþùåéñÿ êëàâèàòóðû USB. Ýòî ìîæåò áûòü ñäåëàíî â ïðîöåññå èíèöèàëèçàöèè ñèñòåìû ñëåäóþùåé êîìàíäîé. # kbdcontrol -k /dev/kbd1 < /dev/ttyv0 > /dev/null
Çàìåòüòå, ÷òî, åñëè êëàâèàòóðà USB ÿâëÿåòñÿ åäèíñòâåííîé ïðèñóòñòâóþùåé, îíà äîñòóïíà êàê /dev/kbd0, è ïîýòîìó êîìàíäà äîëæíà âûãëÿäåòü ïðèìåðíî òàê: # kbdcontrol -k /dev/kbd0 < /dev/ttyv0 > /dev/null
Âûøåóêàçàííóþ êîìàíäó õîðîøî áû äîáàâèòü â /etc/rc.i386. Êàê òîëüêî âû âñ¼ ýòî ñäåëàåòå, êëàâèàòóðà USB áóäåò ðàáîòàòü è â X-îêðóæåíèè áåç êàêèõ-ëèáî îñîáûõ íàñòðîåê. Âûêëþ÷åíèå è âêëþ÷åíèå USB-êëàâèàòóðû íà õîäó ìîæåò åù¼ íå ðàáîòàòü ñîâåðøåííî êîððåêòíî. Âî èçáåæàíèå íåïðèÿòíîñòåé ìû ðåêîìåíäóåì ïîäêëþ÷èòü êëàâèàòóðó ïåðåä çàïóñêîì ñèñòåìû è íå îòêëþ÷àòü å¼ äî çàâåðøåíèÿ ðàáîòû ñèñòåìû. Çà äîïîëíèòåëüíîé èíôîðìàöèåé îáðàòèòåñü ê ñòðàíèöàì ñïðàâî÷íîé ñèñòåìû ïî ukbd(4).
11. Ó ìåíÿ íåîáû÷íàÿ ìûøü òèïà bus mouse. Êàê å¼ íàñòðîèòü? FreeBSD ïîääåðæèâàåò ìûøè òèïîâ bus mouse è InPort bus mouse îò òàêèõ ïðîèçâîäèòåëåé, êàê Microsoft, Logitech è ATI. Äðàéâåð óñòðîéñòâà bus mouse âêëþ÷åí ïî óìîë÷àíèþ â ÿäðî GENERIC âî FreeBSD âåðñèé 2.X, íî íå âêëþ÷¼í â âåðñèþ 3.0 è âûøå. Åñëè âû ñòðîèòå ñîáñòâåííîå ÿäðî ñ ýòèì äðàéâåðîì, äîáàâüòå ñëåäóþùóþ ñòðîêó â êîíôèãóðàöèîííûé ôàéë ÿäðà Âî FreeBSD 3.0 è ðàíåå, äîáàâüòå:
device mse0 at isa? port 0x23c tty irq5 vector mseintr
Âî FreeBSD 3.X ñòðî÷êà äîëæíà èìåòü âèä:
device mse0 at isa? port 0x23c tty irq5
À âî FreeBSD 4.X è âûøå ñòðî÷êà äîëæíà áûòü òàêîé:
device mse0 at isa? port 0x23c irq5
Ìûøü òèïà bus mouse îáû÷íî ïîñòàâëÿåòñÿ ñ îòäåëüíûìè èíòåðôåéñíûìè àäàïòåðàìè. Îíè ïîçâîëÿþò óñòàíîâèòü àäðåñ ïîðòà ââîäà/âûâîäà è íîìåð IRQ, îòëè÷àþùèåñÿ îò ïðèâåä¼ííûõ âûøå. Äëÿ ïîëó÷åíèÿ äîïîëíèòåëüíîé èíôîðìàöèè îáðàòèòåñü ê äîêóìåíòàöèè ïî âàøåé ìûøè è ñòðàíèöå Ñïðàâî÷íèêà mse(4).
26
Ãëàâà 4. Àïïàðàòíàÿ ñîâìåñòèìîñòü
12. Êàê èñïîëüçîâàòü ìûøü PS/2 (òèïà ”mouse port” èëè ”keyboard”)? Âñòðîåííàÿ ïîääåðæêà ìûøè PS/2 èìååòñÿ âî âñåõ ïîñëåäíèõ âåðñèÿõ FreeBSD. Íåîáõîäèìûé äðàéâåð óñòðîéñòâà, psm, âêëþ÷¼í â ÿäðî GENERIC. Åñëè â âàøåì ÿäðå åãî íåò, òî äîáàâüòå ñëåäóþùèå ñòðîêè â ôàéë êîíôèãóðàöèè ÿäðà è ïîñòðîéòå íîâîå ÿäðî. Âî FreeBSD 3.0 è ðàíåå, ñòðî÷êà äîëæíà èìåòü âèä:
device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr Âî FreeBSD 3.1 è âûøå, ñòðî÷êà äîëæíà áûòü òàêîé:
device psm0 at isa? tty irq 12 Âî FreeBSD 4.0 è âûøå ñòðî÷êà äîëæíà èìåòü âèä:
device psm0 at atkbdc? irq 12 Ïîñëå òîãî, êàê ÿäðî ïðàâèëüíî îáíàðóæèëî psm0 âî âðåìÿ çàãðóçêè, ïðîâåðüòå íàëè÷èå ôàéëà óñòðîéñòâà äëÿ psm0 â êàòàëîãå /dev. Ýòî ìîæíî ñäåëàòü, íàáðàâ: # cd /dev; sh MAKEDEV psm0
âîéäÿ â ñèñòåìó àäìèíèñòðàòîðîì.
Çàìå÷àíèå: Âû ìîæåòå ïðîïóñòèòü ýòîò øàã, åñëè èñïîëüçóåòå FreeBSD 5.0-RELEASE èëè áîëåå íîâóþ âåðñèþ ñ âêëþ÷åííûì ìåõàíèçìîì devfs(5), òàê êàê íåîáõîäèìûå ôàéëû óñòðîéñòâ áóäóò ñîçäàâàòüñÿ â êàòàëîãå /dev àâòîìàòè÷åñêè.
13. Ìîæíî ëè êàêèì-ëèáî îáðàçîì èñïîëüçîâàòü ìûøü, êðîìå X Window? Åñëè âû èñïîëüçóåòå ñòàíäàðòíûé äðàéâåð êîíñîëè, syscons(4), òî ìîæåòå èñïîëüçîâàòü óêàçàòåëü ìûøè â òåêñòîâûõ êîíñîëÿõ äëÿ âûäåëåíèÿ è ïåðåíîñà òåêñòà. Çàïóñòèòå äåìîí ìûøè, moused(8), è âêëþ÷èòå îòîáðàæåíèå óêàçàòåëÿ ìûøè íà âèðòóàëüíîé êîíñîëè: # moused -p /dev/xxxx -t yyyy # vidcontrol -m on
Çäåñü xxxx - ýòî èìÿ óñòðîéñòâà ìûøè, à yyyy - òèï ïðîòîêîëà, èñïîëüçóåìîãî ìûøüþ. Äàåìîí ìûøè ìîæåò àâòîìàòè÷åñêè îïðåäåëÿòü òèï ïðîòîêîëà áîëüøèíñòâà ìûøåé, çà èñêëþ÷åíèåì ñòàðûõ, ðàáîòàþùèõ ïî ïîñëåäîâàòåëüíîìó èíòåðôåéñó. Äëÿ âûïîëíåíèÿ àâòîìàòè÷åñêîãî îïðåäåëåíèÿ â êà÷åñòâå ïðîòîêîëà óêàæèòå auto. Åñëè àâòîìàòè÷åñêîå îïðåäåëåíèå íå ðàáîòàåò, òî îáðàòèòåñü ê ñïðàâî÷íûì ñòðàíèöàì ïî moused(8) äëÿ ïîëó÷åíèÿ ñïèñêà ïîääåðæèâàåìûõ òèïîâ ïðîòîêîëîâ. Åñëè ó âàñ ìûøü òèïà PS/2, ïðîñòî äîáàâüòå ñòðî÷êó moused_enable="YES" â ôàéë /etc/rc.conf äëÿ çàïóñêà äàåìîíà ìûøè âî âðåìÿ çàãðóçêè ñèñòåìû. Êðîìå òîãî, åñëè âû õîòèòå èñïîëüçîâàòü äàåìîí ìûøè âî âñåõ âèðòóàëüíûõ òåðìèíàëàõ, à íå òîëüêî íà êîíñîëè, äîáàâüòå allscreens_flags="-m on" â ôàéëå /etc/rc.conf.
27
Ãëàâà 4. Àïïàðàòíàÿ ñîâìåñòèìîñòü
Ïîñëå çàïóñêà äàåìîíà ìûøè, äîñòóï ê ìûøè äîëæåí ñîãëàñîâûâàòüñÿ ìåæäó äàåìîíîì ìûøè è äðóãèìè ïðîãðàììàìè òèïà X Window. Îáðàòèòåñü ê âîïðîñó èç FAQ Ïî÷åìó ìîÿ ìûøü íå ðàáîòàåò ñ X? äëÿ ïîëó÷åíèÿ áîëåå ïîëíîé èíôîðìàöèè ïî ýòîìó âîïðîñó.
14. Êàê ìîæíî âûðåçàòü è êîïèðîâàòü òåêñò ñ ïîìîùüþ ìûøè â òåêñòîâîé êîíñîëè? Ïîñëå òîãî, êàê âû çàïóñòèëè äàåìîí ìûøè (ïîñìîòðèòå ïðåäûäóùèé ðàçäåë), íàæìèòå êíîïêó 1 (ëåâóþ) è äâèãàéòå ìûøü äëÿ âûäåëåíèÿ òåêñòà. Çàòåì íàæìèòå êíîïêó 2 (ñðåäíþþ) äëÿ åãî âñòàâêè ñ ïîçèöèè òåêñòîâîãî êóðñîðà. Íàæàòèå êíîïêè 3 (ïðàâîé) ”ðàñøèðèò” âûáðàííóþ òåêñòîâóþ îáëàñòü. Åñëè ó âàøåé ìûøè îòñóòñòâóåò ñðåäíÿÿ êíîïêà, âû ìîæåòå å¼ ñýìóëèðîâàòü èëè ïåðåíàçíà÷èòü êíîïêè îïöèÿìè äàåìîíà ìûøè. Îáðàòèòåñü ê ñïðàâî÷íûì ñòðàíèöàì ïî moused(8) äëÿ ïîëó÷åíèÿ ïîëíîé èíôîðìàöèè.
15. Ïîääåðæèâàåò ëè FreeBSD USB ìûøè? Ðóäèìåíòàðíàÿ ïîääåðæêà óñòðîéñòâ USB áûëà äîáàâëåíà âî FreeBSD 3.1.  ðàííèõ âåðñèÿõ 3.X îíà íå âñåãäà ðàáîòàëà. Íà÷èíàÿ ñ FreeBSD 4.0, óñòðîéñòâà USB äîëæíû ðàáîòàòü áåç äîïîëíèòåëüíûõ óõèùðåíèé. Åñëè âû õîòèòå ïîýêñïåðèìåíòèðîâàòü ñ ïîääåðæêîé ìûøè USB âî FreeBSD 3.X, ñëåäóéòå íèæåïðèâîäèìûì óêàçàíèÿì.
1.
Èñïîëüçóéòå FreeBSD 3.2 è âûøå.
2.
 êîíôèãóðàöèîííûé ôàéë ÿäðà äîáàâüòå ñëåäóþùèå ñòðîêè è ïåðåñòðîéòå ÿäðî.
device device device device
uhci ohci usb ums
Âî FreeBSD âåðñèé, ïðåäøåñòâóþùèõ 4.0, âìåñòî ýòîãî äîáàâüòå òàêèå ñòðî÷êè:
controller controller controller device
3.
uhci0 ohci0 usb0 ums0
Ïåðåéäèòå â êàòàëîã /dev è ñîçäàéòå ñïåöèàëüíûé ôàéë óñòðîéñòâà òàêîé êîìàíäîé: # cd /dev # ./MAKEDEV ums0
Çàìå÷àíèå: Âû ìîæåòå ïðîïóñòèòü ýòîò øàã, åñëè èñïîëüçóåòå FreeBSD 5.0-RELEASE èëè áîëåå íîâóþ âåðñèþ ñ âêëþ÷åííûì ìåõàíèçìîì devfs(5), òàê êàê íåîáõîäèìûå ôàéëû óñòðîéñòâ áóäóò ñîçäàâàòüñÿ â êàòàëîãå /dev àâòîìàòè÷åñêè.
4.
Îòðåäàêòèðóéòå ôàéë /etc/rc.conf, äîáàâèâ òàêèå ñòðî÷êè:
moused_enable="YES" moused_type="auto" moused_port="/dev/ums0" moused_flags=""
28
Ãëàâà 4. Àïïàðàòíàÿ ñîâìåñòèìîñòü
usbd_enable="YES" usbd_flags="" Ïîäðîáíîå îáñóæäåíèå moused ìîæåò áûòü íàéäåíî â ïðåäûäóùåì ðàçäåëå.
5.
×òîáû èñïîëüçîâàòü ìûøü USB ïðè ðàáîòå â X, îòðåäàêòèðóéòå ôàéë XF86Config. Åñëè âû èñïîëüçóåòå XFree86 3.3.2 è âûøå, òî â ðàçäåëå Pointer äîëæíû ïðèñóòñòâîâàòü òàêèå ñòðîêè:
Device Protocol
"/dev/sysmouse" "Auto"
Åñëè ó âàñ áîëåå ñòàðàÿ âåðñèÿ XFree86, òî â ðàçäåëå Pointer äîëæíû ïðèñóòñòâîâàòü ñòðîêè:
Device Protocol
"/dev/sysmouse" "SysMouse"
Ïîääåðæêå ìûøè ïðè ðàáîòå â X ïîñâÿùåí äðóãîé ðàçäåë. Âûêëþ÷åíèå è âêëþ÷åíèå ìûøè USB íà õîäó ìîæåò åù¼ íå ðàáîòàòü ñîâåðøåííî êîððåêòíî. Âî èçáåæàíèå íåïðèÿòíîñòåé áûëî áû ïðàâèëüíî ïîäêëþ÷èòü ìûøü ïåðåä çàïóñêîì ñèñòåìû è íå îòêëþ÷àòü å¼ äî çàêðûòèÿ ñèñòåìû.
16. Ó ìîåé ìûøè åñòü äîïîëíèòåëüíûå êîë¼ñèêî è êíîïî÷êè. Ìîæíî ëè èõ èñïîëüçîâàòü âî FreeBSD? Îòâåò, ê ñîæàëåíèþ, ”â çàâèñèìîñòè îò îáñòîÿòåëüñòâ”. Ýòè ìûøêè ñ äîïîëíèòåëüíûìè âîçìîæíîñòÿìè, êàê ïðàâèëî, òðåáóþò íàëè÷èÿ ñïåöèàëüíûõ äðàéâåðîâ. Äî òåõ ïîð, ïîêà äðàéâåð ìûøè èëè ïðèêëàäíàÿ ïðîãðàììà íå áóäóò èìåòü îòäåëüíóþ ïîääåðæêó òàêîé ìûøè, îíà áóäåò ðàáîòàòü êàê ñòàíäàðòíàÿ äâóõ- èëè òð¼õêíîïî÷íàÿ ìûøü. Âîçìîæíûå ñïîñîáû èñïîëüçîâàíèÿ êîë¼ñèêîâ ìûøè ïðè ðàáîòå â X Window îïèñàíû â äðóãîì ðàçäåëå.
17. Êàê èñïîëüçîâàòü ìûøü/òðýêáîëë/ñåíñîðíóþ ïàíåëü íà ëýïòîïå? Ïîñìîòðèòå îòâåò íà ïðåäûäóùèé âîïðîñ. Òàêæå ïîñìîòðèòå ñòðàíèöó î ìîáèëüíûõ âû÷èñëåíèÿõ
(http://www.FreeBSD.org/docs.html#PAO). 18. Êàêèå òèïû ñòðèìåðîâ ïîääåðæèâàþòñÿ? FreeBSD ïîääåðæèâàåò óñòðîéñòâà SCSI è QIC-36 (ñ èíòåðôåéñîì QIC-02), âêëþ÷àÿ 8-ìì (Exabyte) è DAT. Íåêîòîðûå ðàííèå ìîäåëè 8-ìì ñòðèìåðîâ íå ñîâñåì ñîîòâåòñòâóþò ñòàíäàðòó SCSI-2 è ìîãóò ðàáîòàòü íå ñîâñåì õîðîøî.
19. Ïîääåðæèâàåò ëè FreeBSD ðîáîòîâ äëÿ ñìåíû ëåíò? FreeBSD ïîääåðæèâàåò ðîáîòèçèðîâàííûå óñòðîéñòâà SCSI ÷åðåç óñòðîéñòâî ch(4) è êîìàíäó chio(1). Ïîäðîáíàÿ èíôîðìàöèÿ îá óïðàâëåíèè òàêèìè ðîáîòàìè ìîæåò áûòü íàéäåíà íà ñòðàíèöå Ñïðàâî÷íèêà ïî êîìàíäå chio(1). Åñëè âû íå èñïîëüçóåòå AMANDA èëè äðóãîå ïðîãðàììíîå îáåñïå÷åíèå, óìåþùåå ðàáîòàòü ñ ðîáîòàìè, èìåéòå â âèäó, ÷òî îíè ìîãóò òîëüêî ïåðåíîñèòü ëåíòû ñ îäíîãî ìåñòà íà äðóãîå, òàê ÷òî âàì íóæíî
29
Ãëàâà 4. Àïïàðàòíàÿ ñîâìåñòèìîñòü
ñàìèì îòñëåæèâàòü, â êàêîì ñëîòå íàõîäèòñÿ íóæíàÿ ëåíòà, è â êàêîé ñëîò íóæíî âåðíóòü ëåíòó, íàõîäÿùóþñÿ â ñòðèìåðå.
20. Êàêèå çâóêîâûå àäàïòåðû ïîääåðæèâàþòñÿ âî FreeBSD? FreeBSD ïîääåðæèâàåò çâóêîâûå àäàïòåðû SoundBlaster, SoundBlaster Pro, SoundBlaster 16, Pro Audio Spectrum 16, AdLib è Gravis UltraSound. Èìååòñÿ îãðàíè÷åííàÿ ïîääåðæêà MPU-401 è ñîâìåñòèìûõ ñ íèì àäàïòåðîâ. Àäàïòåðû, óäîâëåòâîðÿþùèå ñïåöèôèêàöèè Microsoft Sound System, òàêæå ïîääåðæèâàþòñÿ äðàéâåðîì pcm.
Çàìå÷àíèå: Ýòî êàñàåòñÿ òîëüêî çâóêà! Ýòîò äðàéâåð íå ïîääåðæèâàåò CDROM, SCSI èëè äæîéñòèêè íè íà êàêèõ ïîäîáíûõ àäàïòåðàõ, êðîìå SoundBlaster. Ïîääåðæèâàþòñÿ óñòðîéñòâà íà SCSI-èíòåðôåéñå SoundBlaster è íå-SCSI CDROM, íî çàãðóçèòüñÿ ñ íèõ íåâîçìîæíî.
21. Åñòü ëè ðåøåíèå ïðîáëåìû îòñóòñòâèÿ çâóêà ïðè èñïîëüçîâàíèè äðàéâåðà pcm ñ àäàïòåðîì es1370? Ïðè êàæäîé ïåðåçàãðóçêå âàì íóæíî çàïóñêàòü ñëåäóþùóþ êîìàíäó: # mixer pcm 100 vol 100 cd 100
22. Êàêèå ñåòåâûå àäàïòåðû ïîääåðæèâàåò FreeBSD? Îáðàòèòåñü ê ôàéëó Hardware Notes, ïîñòàâëÿåìîìó ñ êàæäûì ðåëèçîì FreeBSD, äëÿ ïîëó÷åíèÿ ïîëíîãî ñïèñêà.
23. Íà ìîåé ìàøèíå îòñóòñòâóåò ìàòåìàòè÷åñêèé ñîïðîöåññîð - ýòî ïëîõî?
Çàìå÷àíèå
: Ýòî êàñàåòñÿ òîëüêî âëàäåëüöåâ êîìïüþòåðîâ 386/486SX/486SLC - âî âñåõ îñòàëüíûõ ìàøèíàõ ìîäóëü âû÷èñëåíèé ñ ïëàâàþùåé òî÷êîé îáúåäèí¼í ñ öåíòðàëüíûì ïðîöåññîðîì.  îáùåì ñëó÷àå ýòî íå ïðîáëåìà, íî â îòñóòñòâèè ñîïðîöåññîðà âû ìîæåòå ñòîëêíóòüñÿ ñî ñíèæåíèåì ïðîèçâîäèòåëüíîñòü è òî÷íîñòè ïðè èñïîëüçîâàíèè ïðîãðàììíîé ýìóëÿöèè ñîïðîöåññîðà (îáðàòèòåñü ê ðàçäåëó îá ýìóëÿöèè âû÷èñëåíèé ñ ïëàâàþùåé òî÷êîé).  ÷àñòíîñòè, ïðîðèñîâêà äóã â X áóäåò Î×ÅÍÜ ìåäëåííîé. Ïðèîáðåòåíèå ìàòåìàòè÷åñêîãî ñîïðîöåññîðà íàñòîÿòåëüíî ðåêîìåíäóåòñÿ, îí òîãî ñòîèò.
Çàìå÷àíèå: Íåêîòîðûå ìàòåìàòè÷åñêèå ñîïðîöåññîðû ðàáîòàþò ëó÷øå, ÷åì äðóãèå. Íàì íåïðèÿòíî ýòî
ïðèçíàâàòü, íî Intel ïîêà íèêîãî íå ïîäâîäèë. Åñëè âû íå óâåðåíû, ÷òî ñîïðîöåññîð áóäåò ðàáîòàòü ñ FreeBSD, èçáåãàéòå êëîíîâ.
30
Ãëàâà 4. Àïïàðàòíàÿ ñîâìåñòèìîñòü
24. Êàêèå åù¼ óñòðîéñòâà ïîääåðæèâàþòñÿ âî FreeBSD?  Ðóêîâîäñòâå (../handbook/install.html#INSTALL-MISC) ïðèâåä¼í ñïèñîê îñòàëüíûõ óñòðîéñòâ, êîòîðûå ïîääåðæèâàþòñÿ âî FreeBSD.
25. Ïîääåðæèâàåò ëè FreeBSD óïðàâëåíèå ýíåðãîñáåðåæåíèåì íà ëýïòîïàõ? FreeBSD ïîääåðæèâàåò APM íà íåêîòîðûõ ìàøèíàõ. Ïîèùèòå â ôàéëå êîíôèãóðàöèè ÿäðà LINT ñëîâî APM. Áîëåå ïîëíàÿ èíôîðìàöèÿ ìîæåò áûòü íàéäåíà â ñïðàâî÷íîé ñòðàíèöå ïî apm(4). 26. Ðåøåíèå ñïåöèôè÷íûõ ïðîáëåì ñ àïïàðàòíûì îáåñïå÷åíèåì Ýòîò ðàçäåë ñîäåðæèò ðåøåíèÿ ñïåöèôè÷íûõ ïðîáëåì ñ àïïàðàòíûì îáåñïå÷åíèåì, ñ êîòîðûìè ñòàëêèâàþòñÿ íàøè ïîëüçîâàòåëè.
27. Êîìïüþòåðû Micron çàâèñàþò ïðè çàãðóçêå Íåêîòîðûå ìàòåðèíñêèå ïëàòû Micron èìåþò BIOS, íå óäîâëåòâîðÿþùóþ ñòàíäàðòó PCI BIOS, ÷òî ïðèâîäèò ê ïå÷àëüíûì ïîñëåäñòâèÿì ïðè çàãðóçêå FreeBSD, ïîòîìó ÷òî èìååò ìåñòî íåñîîòâåòñòâèå óñòðîéñòâ PCI çàíèìàåìûì èìè àäðåñàì. Äëÿ ðåøåíèÿ ýòîé ïðîáëåìû îòêëþ÷èòå â BIOS îïöèþ ”Plug and Play Operating System”. Áîëåå ïîäðîáíàÿ èíôîðìàöèÿ îá ýòîé ïðîáëåìå íàõîäèòñÿ ïî ñëåäóþùåìó àäðåñó:
(http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron)
28. Ïî÷åìó FreeBSD íå ìîæåò íàéòè âíóòðåííèé ìîäåì Plug & Play? Âàì íóæíî äîáàâèòü PnP ID âàøåãî ìîäåìà â ñïèñîê PnP ID äðàéâåðà ïîñëåäîâàòåëüíîãî ïîðòà. Äëÿ âêëþ÷åíèÿ ïîääåðæêè Plug & Play, îòêîìïèëèðóéòå íîâîå ÿäðî ñ îïöèåé controller pnp0 â êîíôèãóðàöèîííîì ôàéëå, è ïåðåçàãðóçèòå ìàøèíó. ßäðî âûâåäåò ñïèñîê ID âñåõ íàéäåííûõ PnP-óñòðîéñòâ. Äîáàâüòå PnP ID ìîäåìà â òàáëèöó â ôàéëå /sys/i386/isa/sio.c, ãäå-òî â ðàéîíå 2777 ñòðîêè. ×òîáû íàéòè òàáëèöó, ïîèùèòå ñëîâî SUP1310 â ñòðóêòóðå siopnp_ids[]. Ñíîâà ïîñòðîéòå ÿäðî, ïðîèíñòàëëèðóéòå åãî è ïåðåçàãðóçèòåñü. Òåïåðü âàø ìîäåì äîëæåí áûòü îïîçíàí. Âàì ìîæåò ïîíàäîáèòüñÿ îòêîíôèãóðèðîâàòü PnP-óñòðîéñòâà êîìàíäîé pnp â êîíôèãóðàòîðå âî âðåìÿ çàãðóçêè ñëåäóþùèì îáðàçîì:
pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8 ÷òîáû ìîäåì áûë ðàñïîçíàí.
29. Ïîääåðæèâàåò ëè FreeBSD ïðîãðàììíûå ìîäåìû, òàêèå, êàê Winmodem? FreeBSD ïîääåðæèâàåò ðàáîòó ñî ìíîãèìè ïðîãðàììíûìè ìîäåìàìè ïîñðåäñòâîì ñïåöèàëüíîãî äîïîëíèòåëüíîãî ïðîãðàììíîãî îáåñïå÷åíèÿ. Óñòàíîâêà ïîðòà comms/ltmdm äîáàâèò ïîääåðæêó äëÿ ìîäåìîâ íà îñíîâå î÷åíü ïîïóëÿðíîãî íàáîðà ìèêðîñõåì Lucent LT. Ïîðò comms/mwavem ïîääåðæèâàåò ìîäåìû, óñòàíîâëåííûå â ëýïòîïàõ IBM Thinkpad 600 è 700. Âû íå ñìîæåòå óñòàíîâèòü FreeBSD, ðàáîòàÿ ÷åðåç ïðîãðàììíûé ìîäåì; ýòî ïðîãðàììíîå îáåñïå÷åíèå äîëæíî áûòü óñòàíîâëåíî ïîñëå óñòàíîâêè ÎÑ.
31
Ãëàâà 4. Àïïàðàòíàÿ ñîâìåñòèìîñòü
30. Êàê ñäåëàòü, ÷òîáû ïðèãëàøåíèå boot: âûâîäèëîñü íà êîíñîëü íà ïîñëåäîâàòåëüíîì ïîðòó? 1. Ïîñòðîéòå ÿäðî ñ ïàðàìåòðîì options COMCONSOLE. 2. Ñîçäàéòå ôàéë /boot.config, ïîìåñòèâ òóäà òîëüêî òåêñò -P. 3. Îòêëþ÷èòå êëàâèàòóðó. Ïîäðîáíàÿ èíôîðìàöèÿ íàõîäèòñÿ â ôàéëå /usr/src/sys/i386/boot/biosboot/README.serial.
31. Ïî÷åìó ñåòåâîé àäàïòåð 3Com PCI íå ðàáîòàåò ñ êîìïüþòåðàìè Micron? Íåêîòîðûå ìàòåðèíñêèå ïëàòû Micron èìåþò BIOS, íå óäîâëåòâîðÿþùóþ ñòàíäàðòó PCI BIOS, ÷òî ïðèâîäèò ê íåñîîòâåòñòâèþ óñòðîéñòâ PCI çàíèìàåìûì èìè àäðåñàì. Ýòî ïðèâîäèò ê ïå÷àëüíûì ïîñëåäñòâèÿì ïðè çàãðóçêå FreeBSD. Äëÿ ðåøåíèÿ ýòîé ïðîáëåìû îòêëþ÷èòå â BIOS îïöèþ ”Plug and Play Operating System”. Áîëåå ïîäðîáíàÿ èíôîðìàöèÿ îá ýòîé ïðîáëåìå íàõîäèòñÿ ïî ñëåäóþùåìó àäðåñó:
http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron (http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron)
32. Ïîääåðæèâàåò ëè FreeBSD ìíîãîïðîöåññîðíûå ñèñòåìû (SMP)? Äà. Ïîääåðæêà SMP â ÿäðå GENERIC íå âêëþ÷åíà, òàê ÷òî äëÿ å¼ âêëþ÷åíèÿ âàì íóæíî ïåðåêîìïèëèðîâàòü ÿäðî. Ïîñìîòðèòå â ôàéë /sys/i386/conf/LINT, ÷òîáû îïðåäåëèòü, êàêèå ïàðàìåòðû íóæíî ïîìåñòèòü â êîíôèãóðàöèîííûé ôàéë âàøåãî ÿäðà.
33. Ïðè çàãðóçêå ñ óñòàíîâî÷íîé äèñêåòû ìàøèíû ñ ìàòåðèíñêîé ïëàòîé ASUS K7V çàâèñàþò. Êàê ýòî èñïðàâèòü? Âîéäèòå â íàñòðîéêó BIOS è âûêëþ÷èòå ”çàùèòó îò çàãðóçî÷íûõ âèðóñîâ”.
32
Ãëàâà 5. Óñòðàíåíèå íåêîòîðûõ ïðîáëåì 1. Íà ìî¼ì âèí÷åñòåðû åñòü çàïîð÷åííûå áëîêè! Åñëè ýòî SCSI-óñòðîéñòâî, òî âèí÷åñòåð äîëæåí èìåòü âîçìîæíîñòü àâòîìàòè÷åñêîé ïåðåàäðåñàöèè òàêèõ áëîêîâ. Îäíàêî ïî íåïîíÿòíûì ïðè÷èíàì âî ìíîãèõ ïîñòàâëÿåìûõ äèñêàõ ýòà âîçìîæíîñòü îòêëþ÷åíà... ×òîáû å¼ âêëþ÷èòü, âàì íóæíî èçìåíèòü ðåæèì ðàáîòû óñòðîéñòâà, ÷òî âî FreeBSD ìîæåò áûòü âûïîëíåíî àäìèíèñòðàòîðîì ïîñðåäñòâîì êîìàíäû # scsi -f /dev/rsd0c -m 1 -e -P 3
è èçìåíèòü çíà÷åíèÿ ïàðàìåòðîâ AWRE è ARRE ñ 0 íà 1:-
AWRE (Auto Write Reallocation Enbld): 1 ARRE (Auto Read Reallocation Enbld): 1 Ïîñëåäóþùèå ïàðàãðàôû áûëè ïðåäîñòàâëåíû Òýäîì Ìèòòåëüøòàäòîì (Ted Mittelstaedt)
Äëÿ äèñêîâ IDE ïîÿâëåíèå çàïîð÷åííûõ áëîêîâ ÿâëÿåòñÿ ïðèçíàêîì âîçìîæíûõ íåïðèÿòíîñòåé. Âñå ñîâðåìåííûå IDE-äèñêè ïîñòàâëÿþòñÿ ñ âêëþ÷åííîé âîçìîæíîñòüþ ïåðåàäðåñàöèè èñïîð÷åííûõ áëîêîâ. Âñå ïðîèçâîäèòåëè âèí÷åñòåðîâ â íàñòîÿùåå âðåìÿ ïðåäîñòàâëÿþò ðàñøèðåííûå ãàðàíòèè è çàìåíÿþò äèñêè ñ çàïîð÷åííûìè áëîêàìè. Åñëè âû âñ¼ æå õîòèòå ñïàñòè âàø äèñê IDE ñ çàïîð÷åííûìè áëîêàìè, âû ìîæåòå ïîïûòàòüñÿ íàéòè ïðîãðàììó äèàãíîñòèêè âèí÷åñòåðîâ îò ïðîèçâîäèòåëÿ è ïðîòåñòèðîâàòü åþ äèñê. Èíîãäà ýòè ïðîãðàììû ìîãóò çàñòàâèòü ýëåêòðîíèêó âèí÷åñòåðà ïåðåñêàíèðîâàòü äèñê â ïîèñêàõ èñïîð÷åííûõ áëîêîâ è çàáëîêèðîâàòü èõ.  ñëó÷àå äèñêîâ ñòàíäàðòîâ ESDI, RLL è MFM, íàëè÷èå èñïîð÷åííûõ áëîêîâ ÿâëÿåòñÿ îáû÷íûì ÿâëåíèåì è íå ÿâëÿåòñÿ áîëüøîé ïðîáëåìîé.  ÏÊ êîíòðîëëåð âèí÷åñòåðà è BIOS áåðóò íà ñåáÿ ðàáîòó ïî áëîêèðîâêå èñïîð÷åííûõ áëîêîâ. Ýòî ïðåêðàñíî ðàáîòàåò â ñëó÷àå îïåðàöèîííûõ ñèñòåì òèïà DOS, êîòîðûå èñïîëüçóþò âûçîâû BIOS äëÿ äîñòóïà ê äèñêó. Îäíàêî äðàéâåð äèñêà âî FreeBSD íå îáðàùàåòñÿ ê BIOS, ïîýòîìó äëÿ îáåñïå÷åíèÿ ïîäîáíîé ôóíêöèîíàëüíîñòè ñóùåñòâóåò bad144. bad144 ðàáîòàåò òîëüêî ñ äðàéâåðîì wd (÷òî îçíà÷àåò, ÷òî ýòà óòèëèòà íå ïîääåðæèâàåòñÿ âî FreeBSD 4.0), å¼ ÍÅÂÎÇÌÎÆÍÎ èñïîëüçîâàòü ñî SCSI. bad144 ïîìåùàåò âñå íàéäåííûå èñïîð÷åííûå ñåêòîðà â ñïåöèàëüíûé ôàéë. Ó bad144 èìååòñÿ îñîáåííîñòü - ñïåöèàëüíûé ôàéë ñ èñïîð÷åííûìè áëîêàìè ïîìåùàåòñÿ íà ïîñëåäíþþ äîðîæêó äèñêà. Òàê êàê ýòîò ôàéë ìîæåò ñîäåðæàòü ñïèñîê èñïîð÷åííûõ ñåêòîðîâ, íàõîäÿùèõñÿ â íà÷àëå äèñêà, ãäå ìîæåò ðàñïîëàãàòüñÿ ôàéë ÿäðà /kernel, îí äîëæåí áûòü äîñòóïåí çàãðóç÷èêó, èñïîëüçóþùåìó âûçîâû BIOS äëÿ ÷òåíèÿ ôàéëà ÿäðà. Ýòî çíà÷èò, ÷òî äèñê, êîòîðûé èñïîëüçóåò bad144, íå äîëæåí èìåòü ðàçìåðû, ïðåâûøàþùèå 1024 äîðîæêè, 16 ãîëîâîê è 63 ñåêòîðà. Ýòî îãðàíè÷èâàåò ðàçìåð äèñêà, îáðàáàòûâàåìîãî bad144, 500 ìåãàáàéòàìè. Äëÿ èñïîëüçîâàíèÿ bad144, ïðîñòî óñòàíîâèòå ”Bad Block” â ïîëîæåíèå ON íà ýêðàíå ïðîãðàììû fdisk âî âðåìÿ íà÷àëüíîé óñòàíîâêè. Ýòî ðàáîòàåò íà÷èíàÿ ñ FreeBSD 2.2.7. Äèñê äîëæåí èìåòü ðàçìåð, íå ïðåâûøàþùèé 1024 äîðîæêè. Ðåêîìåíäóåòñÿ, ÷òîáû äî ýòîãî äèñê ïðîðàáîòàë íå ìåíåå 4 ÷àñîâ äëÿ ïåðåõîäà â ðàáî÷èé òåïëîâîé ðåæèì è ñòàáèëüíûé ðåæèì ðàáîòû ãîëîâîê.
33
Ãëàâà 5. Óñòðàíåíèå íåêîòîðûõ ïðîáëåì
Åñëè äèñê èìååò ðàçìåð, ïðåâûøàþùèé 1024 ãîëîâêè (êàê, íàïðèìåð, áîëüøîé äèñê ESDI), êîíòðîëëåð ESDI èñïîëüçóåò îñîáûé ðåæèì òðàíñëÿöèè, ÷òîáû ýòî ðàáîòàëî â DOS. Äðàéâåð wd áóäåò çíàòü îá ýòèõ ðåæèìàõ òðàíñëÿöèè, ÅÑËÈ âû óêàæåòå íà èñïîëüçîâàíèå ”ïðåîáðàçîâàííûõ” ïàðàìåòðîâ â êîìàíäå ”set geometry” ïðîãðàììû fdisk. Âû òàêæå ÍÅ äîëæíû èñïîëüçîâàòü ðåæèì ”dangerously dedicated” ïðè âûäåëåíèè ðàçäåëà äëÿ FreeBSD, òàê êàê ïðè ýòîì ïàðàìåòðû äèñêà íå ïðèíèìàþòñÿ âî âíèìàíèå. Òàêæå, õîòÿ fdisk áóäåò èñïîëüçîâàòü èçìåí¼ííûå ïàðàìåòðû, îí âñ¼ æå ïîìíèò íàñòîÿùèé ðàçìåð äèñêà, è ïîïûòàåòñÿ ñîçäàòü ñëèøêîì áîëüøîé ðàçäåë FreeBSD. Åñëè ïàðàìåòðû äèñêà èçìåíèëèñü íà òðàíñëèðîâàííûå, ðàçäåë ÄÎËÆÅÍ áûòü ñîçäàí âðó÷íóþ ñ óêàçàíèåì êîëè÷åñòâà áëîêîâ. Ñàìûì áûñòðûì ñïîñîáîì ÿâëÿåòñÿ óñòàíîâêà áîëüøîãî äèñêà ESDI ñ êîíòðîëëåðîì ESDI, çàãðóçêà DOS è âûäåëåíèå íà í¼ì ðàçäåëà DOS. Çàòåì çàïóñòèòå èíñòàëëÿöèîííóþ ïðîãðàììó FreeBSD è â ýêðàíå ïðîãðàììû fdisk íàéäèòå è çàïèøèòå ðàçìåð áëîêà è èõ êîëè÷åñòâî ðàçäåëà DOS. Çàòåì óñòàíîâèòå ïàðàìåòðû â òå æå çíà÷åíèÿ, êîòîðûå èñïîëüçóåò DOS, óäàëèòå ðàçäåë DOS è ñîçäàéòå ”ñîâìåù¼ííûé” ðàçäåë FreeBSD ñ ðàíåå çàïèñàííûì ðàçìåðîì áëîêà. Çàòåì óñòàíîâèòå çàãðóçêó ñ ýòîãî ðàçäåëà è âêëþ÷èòå ñêàíèðîâàíèå èñïîð÷åííûõ áëîêîâ. Âî âðåìÿ óñòàíîâêè ñíà÷àëà, åù¼ äî ñîçäàíèÿ ôàéëîâûõ ñèñòåì, çàïóñòèòñÿ bad144 (âû ìîæåòå ýòî óâèäåòü ïî íàæàòèþ Alt+F2). Åñëè âîçíèêíóò ïðîáëåìû ïðè ñîçäàíèè ôàéëà ñ çàïîð÷åííûìè ñåêòîðàìè, âû óñòàíîâèëè ñëèøêîì áîëüøèå ïàðàìåòðû äèñêà - ïåðåçàãðóçèòåñü è íà÷íèòå âñ¼ ñíà÷àëà (âêëþ÷àÿ ïîâòîðíûå ðàçáèåíèå íà ðàçäåëû è ôîðìàòèðîâàíèå âèí÷åñòåðà â DOS). Åñëè ïåðåàäðåñàöèÿ âêëþ÷åíà è âñ¼ ðàâíî íà äèñêå ïðèñóòñòâóþò çàïîð÷åííûå áëîêè, òî, ïî-âèäèìîìó, îñòà¼òñÿ òîëüêî çàìåíèòü âèí÷åñòåð. Êîëè÷åñòâî èñïîð÷åííûõ áëîêîâ ñ òå÷åíèåì âðåìåíè èìååò òåíäåíöèþ òîëüêî óâåëè÷èâàòüñÿ.
2. Ïî÷åìó FreeBSD íå ðàñïîçíà¼ò ìîé EISA SCSI êîíòðîëëåð Bustek 742a? Íèæåñëåäóþùàÿ èíôîðìàöèÿ ñïåöèôè÷íà äëÿ 742a, íî ìîæåò êàñàòüñÿ è äðóãèõ àäàïòåðîâ îò Buslogic
(Bustek = Buslogic). Ñóùåñòâóþò äâå îñíîâíûõ ”âåðñèè” àäàïòåðîâ 742a. Ýòî àïïàðàòíûå ìîäèôèêàöèè A-G è ìîäèôèêàöèè H è âûøå. Áóêâà, îáîçíà÷àþùàÿ ìîäèôèêàöèþ, ðàñïîëîæåíà ïîñëå íîìåðà ñáîðêè íà êðîìêå àäàïòåðà. Íà àäàïòåðå 742a óñòàíîâëåíû äâå ìèêðîñõåìû ÏÇÓ, îäíà ñîäåðæèò BIOS, à äðóãàÿ ìèêðîêîä (òàê íàçûâàåìîå firmware). Äëÿ FreeBSD íå èìååò çíà÷åíèÿ èñïîëüçóåìàÿ âåðñèÿ BIOS, íî èìååò çíà÷åíèå âåðñèÿ ìèêðîêîäà. Buslogic âûñûëàåò îáíîâëåíèÿ äëÿ ÏÇÓ, åñëè âû ïîçâîíèòå â èõ îòäåë òåõíè÷åñêîé ïîääåðæêè. Ìèêðîñõåìû ñ BIOS è ìèêðîêîäîì ïîñòàâëÿþòñÿ ñîîòâåòñòâóþùèìè ïàðàìè.  ÏÇÓ àäàïòåðà âû äîëæíû èìåòü ñàìóþ ïîñëåäíþþ âåðñèè ìèêðîêîäà äëÿ âàøåé àïïàðàòíîé ìîäèôèêàöèè. Àäàïòåðàì ìîäèôèêàöèé A-G ìîæåò òîëüêî ïîäîéòè BIOS/Firmware âåðñèé âïëîòü äî 2.41/2.21. Àäàïòåðàì ìîäèôèêàöèé H è ñòàðøå ïîäõîäÿò ñàìûå ïîñëåäíèå âåðñèè BIOS/Firmware 4.70/3.37. Îòëè÷èå ìåæäó âåðñèÿìè ìèêðîêîäà çàêëþ÷àåòñÿ â òîì, ÷òî âåðñèÿ ìèêðîêîäà 3.37 ïîääåðæèâàåò òåõíîëîãèþ ”round robin”. Íà àäàïòåðàõ Buslogic ïðîñòàâëåí ñåðèéíûé íîìåð. Åñëè ó âàñ àäàïòåð ñòàðîé ìîäèôèêàöèè, âû ìîæåòå ïîçâîíèòü â ïîäðàçäåëåíèå RMA ôèðìû Buslogic, ñêàçàòü èì ñåðèéíûé íîìåð àäàïòåðà è ïîïûòàòüñÿ îáìåíÿòü åãî íà áîëåå íîâóþ ìîäèôèêàöèþ. Åñëè àäàïòåð äîñòàòî÷íî íîâ, òî îíè åãî ïîìåíÿþò.
FreeBSD 2.1 ïîääåðæèâàåò ìèêðîêîä ìîäèôèêàöèé òîëüêî 2.21 è âûøå. Åñëè ó âàñ âåðñèÿ ìèêðîêîäà ñòàðåå, ÷åì ýòà, òî àäàïòåð íå áóäåò ðàñïîçíàâàòüñÿ êàê àäàïòåð Buslogic. Îäíàêî îí ìîæåò áûòü
34
Ãëàâà 5. Óñòðàíåíèå íåêîòîðûõ ïðîáëåì
îïîçíàí êàê Adaptec 1540. Ðàííèå âåðñèè ìèêðîêîäà îò Buslogic ñîäåðæàò ðåæèì ”ýìóëÿöèè” AHA1540. Îäíàêî äëÿ EISA-àäàïòåðà âñ¼ ýòî âûãëÿäèò êàê-òî íåïðèëè÷íî. Åñëè ó âàñ àäàïòåð ñòàðîé ìîäèôèêàöèè è âû ïîëó÷èëè ìèêðîêîä 2.21 äëÿ íåãî, óñòàíîâèòå ïåðåìû÷êó W1 â ïîëîæåíèå B-C, ïî óìîë÷àíèþ îíà íàõîäèòñÿ â ïîëîæåíèè A-B.
3. Ïî÷åìó FreeBSD íå ðàñïîçíà¼ò SCSI-êîíòðîëëåð íà ìàøèíå HP Netserver?  îáùåì-òî ýòî èçâåñòíàÿ ïðîáëåìà. EISA-êîíòðîëëåðû SCSI, ðàñïîëîæåííûå íà ìàòåðèíñêîé ïëàòå ìàøèí HP Netserver, çàíèìàþò EISA-ñëîò íîìåð 11, òàê ÷òî âñå ”íàñòîÿùèå” ñëîòû EISA áóäóò åìó ïðåäøåñòâîâàòü. Òàê êàê àäðåñíîå ïðîñòðàíñòâî äëÿ ñëîòîâ EISA âûøå 10 ïåðåñåêàåòñÿ ñ àäðåñíûì ïðîñòðàíñòâîì, ïðåäíàçíà÷åííûì äëÿ PCI, òî àâòîêîíôèãóðàòîð FreeBSD â íàñòîÿùåå âðåìÿ íå ìîæåò ýòó ïðîáëåìó íîðìàëüíî îáîéòè. Òàê ÷òî ïîêà ëó÷øåå, ÷òî âû ìîæåòå ïðåäïðèíÿòü, ýòî ïîïûòàòüñÿ óêàçàòü, ÷òî ïåðåñå÷åíèÿ äèàïàçîíîâ àäðåñîâ íåò :), óñòàíîâèâ îïöèþ ÿäðà EISA_SLOTS â çíà÷åíèå 12. Îòêîíôèãóðèðóéòå è îòêîìïèëèðóéòå ÿäðî òàê, êàê ýòî îïèñàíî â ðàçäåëå Ðóêîâîäñòâà (../handbook/kernelconfig.html) î êîíôèãóðèðîâàíèè ÿäðà. Êîíå÷íî, ýòî äàñò âàì òèïè÷íóþ ñèòóàöèè "êóðèöà èëè ÿéöî" ïðè óñòàíîâêå ñèñòåìû íà òàêîé ìàøèíå. Äëÿ îáõîäà ýòîé ïðîáëåìû âíóòðè UserConfig åñòü ñïåöèàëüíûé õàê. Íå èñïîëüçóÿ ”âèçóàëüíîãî” èíòåðôåéñà, à òîëüêî èíòåðôåéñ êîìàíäíîé ñòðîêè, ïðîñòî íàáåðèòå
eisa 12 quit â ïðèãëàøåíèè, è ïðîèíñòàëëèðóéòå ñèñòåìó êàê îáû÷íî.  ëþáîì ñëó÷àå ðåêîìåíäóåòñÿ, ÷òî âû îòêîíôèãóðèðóåòå è ïðîèíñòàëëèðóåòå ñîáñòâåííîå ÿäðî. Íàäååìñÿ, ÷òî áóäóùèå âåðñèè áóäóò ñîäåðæàòü ïîëíîå ðåøåíèå ýòîé ïðîáëåìû.
Çàìå÷àíèå: Âû íå ñìîæåòå èñïîëüçîâàòü ðåæèì dangerously dedicated íà ìàøèíàõ HP Netserver. Ïîëíîå îïèñàíèå ïðè÷èí ñîäåðæèòñÿ â ýòîì çàìå÷àíèè.
4. Âûäàþòñÿ ñîîáùåíèÿ òèïà ed1: timeout. Îáû÷íî ýòî âûçâàíî êîíôëèêòîì ïðåðûâàíèé (íàïðèìåð, äâóõ àäàïòåðîâ, èñïîëüçóþùèõ îäèí è òîò æå IRQ). FreeBSD äî âåðñèè 2.0.5R áûëà íå÷óâñòâèòåëüíà ê òàêèì êîíôëèêòàì, è äðàéâåð ñåòåâîãî àäàïòåðà îñòàâàëñÿ ðàáîòîñïîñîáíûì äàæå ïðè êîíôëèêòàõ IRQ. Îäíàêî ñ âåðñèè 2.0.5R è âûøå, êîíôëèêòû IRQ áîëüøå íå ñ÷èòàþòñÿ áåçîáèäíûìè. Çàãðóçèòåñü ñ îïöèåé -c è ñìåíèòå ñòðîêó, îïèñûâàþùóþ ed0/de0/... íà ñîîòâåòñòâóþùóþ âàøåé ñèñòåìå.. Åñëè âû èñïîëüçóåòå ðàçú¼ì BNC ñåòåâîãî àäàïòåðà, òàéìàóòû óñòðîéñòâà ìîãóò áûòü âûçâàíû ïëîõèì òåðìèíèðîâàíèåì. ×òîáû ýòî ïðîâåðèòü, ïîäêëþ÷èòå òåðìèíàòîð ê àäàïòåðó (áåç êàáåëÿ) è ïîñìîòðèòå, íå èñ÷åçëè ëè ñîîáùåíèÿ îá îøèáêàõ. Íåêîòîðûå NE2000-ñîâìåñòèìûå àäàïòåðû âûäàþò òàêóþ îøèáêó, åñëè íåò ñâÿçè ïî UTP-ïîðòó èëè îòêëþ÷åí êàáåëü.
35
Ãëàâà 5. Óñòðàíåíèå íåêîòîðûõ ïðîáëåì
5. Ïî÷åìó ìîé àäàïòåð 3COM 3C509 ïåðåñòàë ðàáîòàòü áåç âñÿêîé âèäèìîé ïðè÷èíû? Ýòîò àäàïòåð èìååò ñòðàííóþ ïðèâû÷êó òåðÿòü èíôîðìàöèþ î ñâîèõ íàñòðîéêàõ. Îáíîâèòå íàñòðîéêè âàøåãî àäàïòåðà ïðè ïîìîùè óòèëèòû 3c5x9.exe èç DOS.
6. Ìîé ïàðàëëåëüíûé ïðèíòåð ïå÷àòàåò íåâåðîÿòíî ìåäëåííî. ×òî òóò ìîæíî ñäåëàòü? Åñëè ïðîáëåìà òîëüêî â òîì, ÷òî ïðèíòåð ðàáîòàåò óæàñíî ìåäëåííî, ïîïðîáóéòå ñìåíèòü ðåæèì ðàáîòû ïîðòà ïðèíòåðà (../handbook/printing-intro-setup.html#PRINTING-PARALLEL-PORT-MODE) òàê, êàê ýòî îïèñàíî â ðàçäåëå Íàñòðîéêà ïðèíòåðà (../handbook/printing-intro-setup.html) Ðóêîâîäñòâà.
7. Ïðîãðàììû àâàðèéíî çàâåðøàþò ðàáîòó ñ îøèáêîé Signal 11. Îøèáêè âûïîëíåíèÿ, ñâÿçàííûå ñ ñèãíàëîì 11, ïðîèñõîäÿò, êîãäà âàø ïðîöåññ ïûòàåòñÿ îáðàòèòüñÿ ê îáëàñòè ïàìÿòè, äîñòóï ê êîòîðîé åìó íå áûë äàí îïåðàöèîííîé ñèñòåìîé. Åñëè ÷òî-òî ïîäîáíîå ïðîèñõîäèò â ñëó÷àéíûå, íà ïåðâûé âçãëÿä, ïðîìåæóòêè âðåìåíè, òî âàì íóæíî ïîïûòàòüñÿ âûÿñíèòü ïîäðîáíîñòè ïðîèñõîäÿùèõ ñîáûòèé áîëåå äåòàëüíî. Ýòè ïðîáëåìû ìîãóò áûòü êëàññèôèöèðîâàíû ñëåäóþùèì îáðàçîì:
1. Åñëè ïðîáëåìà âîçíèêàåò òîëüêî â îïðåäåë¼ííîì ïðèëîæåíèè, êîòîðîå áûëî ñàìîñòîÿòåëüíî âàìè ðàçðàáîòàíî, òî, ñêîðåå âñåãî, ýòî îøèáêà â âàøåì êîäå. 2. Åñëè ýòî ïðîáëåìà â ÷àñòè áàçîâîãî êîìïëåêòà ñèñòåìû FreeBSD, òî ýòî òîæå ìîæåò áûòü îøèáêà â ïðîãðàììíîì êîäå, õîòÿ â áîëüøèíñòâå ñëó÷àåâ òàêèå ïðîáëåìû îáíàðóæèâàþòñÿ è îøèáêè èñïðàâëÿþòñÿ çàäîëãî äî òîãî, êàê îáû÷íûì ÷èòàòåëÿì FAQ äîâîäèòñÿ èñïîëüçîâàòü ýòîò êîä (èìåííî äëÿ ýòîãî ïðåäíàçíà÷åíà âåðñèÿ -current).  ÷àñòíîñòè, äîñòîâåðíî íå îøèáêà FreeBSD, åñëè âû ñòàëêèâàåòåñü ñ ïðîáëåìîé ïðè êîìïèëÿöèè ïðîãðàììû, íî ïðè ðàáîòå êîìïèëÿòîðà ìåñòî ñáîÿ êàæäûé ðàç èçìåíÿåòñÿ. Íàïðèìåð, ïîëîæèì, ÷òî âû çàïóñêàåòå êîìàíäó ”make buildworld” è êîìïèëÿöèÿ çàâåðøèëàñü àâàðèéíî ïðè ïîïûòêå êîìïèëÿöèè ls.c â ls.o. Åñëè ïðè ñëåäóþùåé ïîïûòêå ïîâòîðíî âûïîëíèòü ”make buildworld” êîìïèëÿöèÿ ïðåðâ¼òñÿ íà òîì æå ñàìîì ìåñòå, òî ýòî îøèáêè ïðîöåññà ïîñòðîåíèÿ -ïîïðîáóéòå îáíîâèòü èñõîäíûå òåêñòû è ïîïðîáóéòå ñíîâà. Åñëè æå êîìïèëÿöèÿ ïðåðûâàåòñÿ â êàêîì-òî äðóãîì ìåñòå, òî â ýòîì ïðàêòè÷åñêè äîñòîâåðíî âèíîâàòî îáîðóäîâàíèå. ×òî âû äîëæíû ñäåëàòü:  ïåðâîì ñëó÷àå âû äîëæíû âîñïîëüçîâàòüñÿ îòëàä÷èêîì, ê ïðèìåðó, gdb, äëÿ íàõîæäåíèÿ òî÷êè ïðîãðàììû, â êîòîðîé äåëàåòñÿ ïîïûòêà äîñòóïà ê íåâåðíîìó àäðåñó è çàòåì èñïðàâèòü ýòó îøèáêó. Âî âòîðîì ñëó÷àå âàì íóæíî ïðîâåðèòü, ÷òî âàøå îáîðóäîâàíèå èñïðàâíî. Ñðåäè ÷àñòî ïðèâîäÿùèõ ê ýòîìó ïðè÷èí:
1. Âàøè âèí÷åñòåðû ìîãóò ïåðåãðåâàòüñÿ: Ïðîâåðüòå ðàáîòó âåíòèëÿòîðîâ â âàøåì ñèñòåìíîì áëîêå, òàê êàê âàø äèñê (è ìîæåò, òàêæå äðóãèå êîìïîíåíòû, ìîãóò ïåðåãðåâàòüñÿ). 2. Ðàáîòàþùèé ïðîöåññîð ïåðåãðåâàåòñÿ: Ýòî ìîæåò ïðîèçîéòè èç-çà âûõîäà ÷àñòîòû ïðîöåññîðà çà ðàáî÷èå ãðàíèöû èëè ïîëîìêè âåíòèëÿòîðà íà ïðîöåññîðå.  ëþáîì ñëó÷àå âàì íóæíî óáåäèòüñÿ, ÷òî âàøå îáîðóäîâàíèå ðàáîòàåò òàê, êàê åìó ïîëîæåíî, ïî êðàéíåé ìåðå, íà ìîìåíò ïîèñêà ïðè÷èí íåèñïðàâíîñòè, äðóãèìè ñëîâàìè, óñòàíîâèòå ÷àñòîòó ðàáîòû íà íàñòðîéêè ïî óìîë÷àíèþ. Åñëè âû ïðåâûñèëè ðàáî÷èå ÷àñòîòû ðàáîòû ïðîöåññîðà, çàìåòüòå, ÷òî äåøåâëå îáõîäèòñÿ ìåäëåííàÿ ñèñòåìà, ÷åì ñãîðåâøàÿ ñèñòåìà, òðåáóþùàÿ çàìåíû! Òàêæå îáùåñòâî íå÷àñòî
36
Ãëàâà 5. Óñòðàíåíèå íåêîòîðûõ ïðîáëåì
ñèìïàòèçèðóåò ïðîáëåìàì íà òàêèõ ñèñòåìàõ, âíå çàâèñèìîñòè îò òîãî, ñ÷èòàåòå ëè âû óâåëè÷åíèå ðàáî÷åé ÷àñòîòû íå âëèÿþùèì íà ðàáîòó èëè íåò.
3. Õèòðàÿ ïàìÿòü: Åñëè ó âàñ óñòàíîâëåíî ìíîæåñòâî ìèêðîñõåì SIMM/DIMM, òî âûòàùèòå èõ âñå è ïîïûòàéòåñü ïîðàáîòàòü èíäèâèäóàëüíî ñ êàæäîé ìèêðîñõåìîé SIMM èëè DIMM è ëîêàëèçîâàòü ïðîáëåìó ëèáî äî ïðîáëåìàòè÷íîé ìèêðîñõåìû DIMM/SIMM, ëèáî äàæå èõ êîìáèíàöèè. 4. ×åðåñ÷óð îïòèìèñòè÷åñêèå íàñòðîéêè ìàòåðèíñêîé ïëàòû: Ïðè íàñòðîéêå âàøåé BIOS è âûáîðå ïîëîæåíèÿ ïåðåìû÷åê íà ìàòåðèíñêîé ïëàòå âû èìååòå âîçìîæíîñòü çàäàòü ðàçëè÷íûå ÷àñòîòû è çàäåðæêè, è â áîëüøèíñòâå ñëó÷àåâ íàñòðîéêè ïî óìîë÷àíèþ äîñòàòî÷íû, íî èíîãäà óñòàíîâêà ñëèøêîì ìàëûõ ïåðèîäîâ îæèäàíèÿ äëÿ ÎÇÓ, óñòàíîâêà ïàðàìåòðà ”RAM Speed: Turbo” è ïîäîáíûõ ïàðàìåòðîâ â BIOS âûçîâåò ñòðàííîå ïîâåäåíèå. Âîçìîæíûì ðåøåíèåì ìîæåò ñòàòü óñòàíîâêà ïàðàìåòðîâ BIOS ïî óìîë÷àíèþ, íî ñíà÷àëà ñòîèò çàïèñàòü âàøè íàñòðîéêè!
5. Íåóñòîé÷èâîå èëè íåäîñòàòî÷íîå ýëåêòðîïèòàíèå ìàòåðèíñêîé ïëàòû. Åñëè â âàøåé ñèñòåìå åñòü íåèñïîëüçóåìûå àäàïòåðû ââîäà/âûâîäà, âèí÷åñòåðû èëè ïðèâîäû êîìïàêò-äèñêîâ, ïîïðîáóéòå âðåìåííî èõ óáðàòü èëè îòêëþ÷èòü îò êàáåëÿ ýëåêòðîïèòàíèÿ, ÷òîáû ïîñìîòðåòü, ñìîæåò ëè âàø áëîê ïèòàíèÿ ðàáîòàòü ñ ìåíüøåé íàãðóçêîé. Èëè ïîïðîáóéòå âîñïîëüçîâàòüñÿ äðóãèì áëîêîì ïèòàíèÿ, æåëàòåëüíî áîëüøåé ìîùíîñòè (íàïðèìåð, åñëè èìåþùèéñÿ áëîê ïèòàíèÿ ðàññ÷èòàí íà 250 Âàòò, ïîïðîáóéòå äðóãîé ìîùíîñòüþ 300 Âàòò). Âû òàêæå äîëæíû ïðî÷èòàòü FAQ ïî SIG11 (ññûëêà äàíà íèæå), â êîòîðîì äàíû ïðåêðàñíûå îïèñàíèÿ âñåõ ýòèõ ïðîáëåì, õîòÿ è ñ òî÷êè çðåíèÿ Linux. Òàêæå îáñóæäàåòñÿ, êàê àïïàðàòóðà èëè ïðîãðàììíîå îáåñïå÷åíèå äëÿ òåñòèðîâàíèÿ ïàìÿòè ìîãóò ïðîïóñêàòü ñáîéíóþ ïàìÿòü. Íàêîíåö, åñëè íè÷åãî èç ýòîãî íå ïîìîãàåò, òî âîçìîæíî, ÷òî ïðîñòî âû íàøëè îøèáêó âî FreeBSD è äîëæíû ñëåäîâàòü èíñòðóêöèÿì ïî ïîñûëêå ñîîáùåíèé î ïðîáëåìàõ. Ïîäðîáíàÿ èíôîðìàöèÿ ïî ýòîìó âîïðîñó ñîäåðæèòñÿ â FAQ ïî ïðîáëåìå SIG11
(http://www.bitwizard.nl/sig11/).
8. Ìîÿ ñèñòåìà àâàðèéíî çàâåðøàåò ðàáîòó ñ ñîîáùåíèÿìè Fatal trap 12: page fault in kernel mode ëèáî panic:, è âûäà¼ò ìíîãî äîïîëíèòåëüíîé èíôîðìàöèè. ×òî ìíå äåëàòü? Ðàçðàáîò÷èêè FreeBSD î÷åíü èíòåðåñóþòñÿ òàêèìè îøèáêàìè, íî èì íóæíî íåñêîëüêî áîëüøå èíôîðìàöèè, ÷åì ïðîñòî ôàêò âîçíèêíîâåíèÿ ýòîé îøèáêè. Ïîëíîñòüþ ñêîïèðóéòå ñîîáùåíèå. Çàòåì îáðàòèòåñü ê ðàçäåëó FAQ îá àâàðèéíûõ çàâåðøåíèÿõ ðàáîòû ÿäðà, ïîñòðîéòå îòëàäî÷íîå ÿäðî è ïîëó÷èòå òðàññó âûçîâîâ. Ýòî ìîæåò çâó÷àòü òðóäíîé çàäà÷åé, íî âàì íå íóæíû íèêàêèå çíàíèÿ ïðîãðàììèðîâàíèÿ; ïðîñòî ñëåäóéòå óêàçàíèÿì.
9. Ïðè çàãðóçêå ìîíèòîð òåìíååò è òåðÿåò ñèíõðîíèçàöèþ! Ýòî èçâåñòíàÿ ïðîáëåìà ñ âèäåîàäàïòåðàìè ATI Mach 64. Îíà âûçâàíà òåì, ÷òî ýòîò àäàïòåð èñïîëüçóåò àäðåñ 2e8, êàê è ÷åòâ¼ðòûé ïîñëåäîâàòåëüíûé ïîðò. Èç-çà îøèáêè (èëè îñîáåííîñòè ðàáîòû?) â äðàéâåðå sio(4) îí îáðàùàåòñÿ ê ïîðòó, äàæå åñëè åñëè îí íå ñóùåñòâóåò, è äàæå åñëè âû îòêëþ÷èòå sio3 (÷åòâ¼ðòûé ïîðò), êîòîðûé, êàê ïðàâèëî, èñïîëüçóåò ýòîò àäðåñ ââîäà/âûâîäà. Ïîêà ýòî íå èñïðàâëåíî, èñïîëüçóéòå ñëåäóþùèé ìåòîä:
1.  ïðèãëàøåíèè çàãðóç÷èêà íàáåðèòå -c. (Ýòî ïåðåâåä¼ò ÿäðî â ðåæèì êîíôèãóðàöèè).
37
Ãëàâà 5. Óñòðàíåíèå íåêîòîðûõ ïðîáëåì
2. Îòêëþ÷èòå óñòðîéñòâà sio0, sio1, sio2 è sio3 (âñå èõ). Ïîñëå ýòîãî äðàéâåð sio íå áóäåò àêòèâèçèðîâàòüñÿ è ïðîáëåì íå áóäåò. 3. Äëÿ ïðîäîëæåíèÿ çàãðóçêè íàáåðèòå exit. Åñëè âàì íóæíî èñïîëüçîâàòü ïîñëåäîâàòåëüíûå ïîðòû, âû äîëæíû ïîñòðîèòü íîâîå ÿäðî ñî ñëåäóþùåé ìîäèôèêàöèåé: â ôàéëå /usr/src/sys/i386/isa/sio.c íàéäèòå ñòðî÷êó, ñîäåðæàùóþ ÷èñëî 0x2e8 è óäàëèòå å¼ âìåñòå ñ ïðåäøåñòâóþùèé çàïÿòîé (îñòàâèâ ñëåäóþùóþ). Ïîñëå ýòîãî ñëåäóéòå îáû÷íûì óêàçàíèÿì ïî ïîñòðîåíèþ ÿäðà. Äàæå ïîñëå ýòèõ èçìåíåíèé âû ìîæåòå îáíàðóæèòü, ÷òî X Window ðàáîòàåò íåíîðìàëüíî. Åñëè ýòî ïðîèçîøëî, óäîñòîâåðüòåñü, ÷òî âû èñïîëüçóåòå XFree86 âåðñèè íå íèæå 3.3.3. Ýòîò è ïîñëåäóþùèå ðåëèçû èìåþò âñòðîåííóþ ïîääåðæêó àäàïòåðîâ Mach64 è äàæå îòäåëüíûé X-ñåðâåð äëÿ òàêèõ àäàïòåðîâ.
10. Ïî÷åìó FreeBSD èñïîëüçóåò òîëüêî 64 ÌÁ ÎÇÓ, òîãäà êàê óñòàíîâëåíî âñå 128 ÌÁ? Òàê êàê äëÿ îïðåäåëåíèÿ îáú¼ìà ïàìÿòè FreeBSD èñïîëüçóåò èíôîðìàöèþ BIOS, îíà îãðàíè÷åíà 16 áèòàìè, èñïîëüçóåìûìè äëÿ âûðàæåíèÿ ðàçìåðà ÎÇÓ â êèëîáàéòàõ (65535 ÊÁ = 64ÌÁ) (èëè ìåíüøå... íåêîòîðûå BIOS îãðàíè÷èâàþò ðàçìåðû ïàìÿòè äî 16ÌÁ). Åñëè ó âàñ áîëüøå ÷åì 64ÌÁ ÎÇÓ, FreeBSD áóäåò ïûòàòüñÿ îáíàðóæèòü ýòó ïàìÿòü; îäíàêî ýòà ïîïûòêà ìîæåò è íå óäàòüñÿ). Äëÿ ðåøåíèÿ ýòîé ïðîáëåìû âàì íóæíî èñïîëüçîâàòü îïöèþ ÿäðà, óêàçàííóþ íèæå. Ñïîñîá âûÿñíåíèÿ ïîëíîé èíôîðìàöèè î ïàìÿòè èç BIOS ñóùåñòâóåò, íî ó íàñ íåò ìåñòà â çàãðóçî÷íîì áëîêå, ÷òîáû ýòî äåëàòü. Êîãäà ïðîáëåìà íåõâàòêè ìåñòà â çàãðóçî÷íûõ áëîêàõ áóäåò ðåøåíà, ìû áóäåì èñïîëüçîâàòü ðàñøèðåííûå ôóíêöèè BIOS äëÿ ïîëó÷åíèÿ ïîëíîé èíôîðìàöèè î ïàìÿòè... íî ïîêà ìû îñòàíîâèëèñü íà îïöèè ÿäðà.
options "MAXMEM=n" Çäåñü n - ýòî îáú¼ì ïàìÿòè â êèëîáàéòàõ. Äëÿ ìàøèíû ñî 128 ÌÁ ÎÇÓ âàì íóæíî èñïîëüçîâàòü çíà÷åíèå 131072.
11. FreeBSD 2.0 àâàðèéíî çàâåðøàåò ðàáîòó ñ ñîîáùåíèåì kmem_map too small!
Çàìå÷àíèå: Ñîîáùåíèå ìîæåò òàêæå âûãëÿäåòü êàê mb_map
too small!
Òàêîå çàâåðøåíèå ðàáîòû ïîêàçûâàåò, ÷òî ñèñòåìå íå õâàòàåò âèðòóàëüíîé ïàìÿòè äëÿ ñåòåâûõ áóôåðîâ (òî÷íåå, ñòðóêòóð mbuf). Âû ìîæåòå óâåëè÷èòü êîëè÷åñòâî âèðòóàëüíîé ïàìÿòè äëÿ ñòðóêòóð mbuf, äîáàâèâ:
options "NMBCLUSTERS=n" â ôàéë êîíôèãóðàöèè ÿäðà, ãäå n - ýòî ÷èñëî â ïðåäåëàõ 512-4096, â çàâèñèìîñòè îò ÷èñëà TCP-ñîåäèíåíèé, êîòîðîå âàì íóæíî îäíîâðåìåííî îáñëóæèâàòü. ß ðåêîìåíäóþ ïîïðîáîâàòü çíà÷åíèå 2048 - ýòî äîëæíî èçáàâèòü âàñ îò àâàðèéíûõ îñòàíîâîâ. Âû ìîæåòå îòñëåæèâàòü êîëè÷åñòâî ñòðóêòóð mbuf, âûäåëåííûõ/èñïîëüçóåìûõ ñèñòåìîé êîìàíäîé netstat -m (îáðàòèòåñü ê netstat(1)). Çíà÷åíèå ïî óìîë÷àíèþ äëÿ NMBCLUSTERS ðàâíî 512 + MAXUSERS * 16.
38
Ãëàâà 5. Óñòðàíåíèå íåêîòîðûõ ïðîáëåì
12. Ïî÷åìó ÿ ïîëó÷àþ ñîîáùåíèå îá îøèáêå /kernel: proc: table is full? ßäðî FreeBSD ïîçâîëÿåò ñóùåñòâîâàòü îäíîâðåìåííî îãðàíè÷åííîìó ÷èñëó ïðîöåññîâ. Îíî âû÷èñëÿåòñÿ íà îñíîâàíèè ïàðàìåòðà MAXUSERS â êîíôèãóðàöèè ÿäðà. MAXUSERS òàêæå âëèÿåò íà äðóãèå îãðàíè÷åíèÿ ÿäðà, òàêèå êàê áóôåðû ðàáîòû ñ ñåòüþ (îáðàòèòåñü ê ýòîìó ðàññìîòðåííîìó ðàíåå âîïðîñó). Åñëè âàøà ìàøèíà ñèëüíî çàãðóæåíà, âàì, íàâåðíîå, ïîíàäîáèòñÿ óâåëè÷èòü MAXUSERS. Êðîìå ìàêñèìàëüíîãî ÷èñëà ïðîöåññîâ, ýòî óâåëè÷èò çíà÷åíèÿ è äðóãèõ ïàðàìåòðîâ, îãðàíè÷èâàþùèõ ñèñòåìó. Ïîñëå FreeBSD 4.4, çíà÷åíèå MAXUSERS ñòàëî ìåíÿåìîé âåëè÷èíîé, êîòîðàÿ ìîæåò áûòü çàäàíà êàê kern.maxusers â /boot/loader.conf. Äëÿ áîëåå ðàííèõ âåðñèé FreeBSD âàì íóæíî áóäåò èçìåíèòü çíà÷åíèå MAXUSERS â ôàéëå êîíôèãóðàöèè ÿäðà. Åñëè âàøà ìàøèíà çàãðóæåíà ñëàáî, òî ïðîñòî âû çàïóñòèëè ñëèøêîì ìíîãî ïðîöåññîâ, è âû ìîæåòå èñïðàâèòü ýòî ÷åðåç sysctl kern.maxproc. Åñëè ýòè ïðîöåññû çàïóùåíû îäíèì è òåì æå ïîëüçîâàòåëåì, âàì òàêæå çàäàòü çíà÷åíèå kern.maxprocperuid íà åäèíèöó ìåíüøèì, ÷åì íîâîå çíà÷åíèå kern.maxproc. (Îíî äîëæíî áûòü ïî êðàéíåé ìåðå íà åäèíèöó ìåíüøèì, ïîòîìó ÷òî ñèñòåìíàÿ ïðîãðàììà init(8), äîëæíà ðàáîòàòü âñåãäà.) ×òîáû çíà÷åíèÿ sysctl ñîõðàíèëèñü ïîñëå ïåðåçàãðóçêè, çàäàéòå èõ â /etc/sysctl.conf äëÿ ïîñëåäíèõ âåðñèé FreeBSD, èëè â /etc/rc.local äëÿ áîëåå ðàííèõ âåðñèé.
13. Ïðè ïåðåçàãðóçêå ñ íîâûì ÿäðîì âûäà¼òñÿ ñîîáùåíèå CMAP busy panic. Ïðîöåäóðà îïðåäåëåíèÿ óñòàðåâøèõ ôàéëîâ /var/db/kvm_*.db èíîãäà äà¼ò ñáîé è èñïîëüçóåò íå òå ôàéëû, ÷òî ìîæåò âûçâàòü àâàðèéíûé îñòàíîâ ñèñòåìû. Åñëè ýòî ñëó÷èëîñü, ïåðåçàãðóçèòåñü â îäíîïîëüçîâàòåëüñêîì ðåæèìå è âûïîëíèòå êîìàíäó: # rm /var/db/kvm_*.db
14. ×òî îçíà÷àåò ñîîáùåíèå ahc0: brkadrint, Illegal Host Access at seqaddr 0x0 Ýòî - ðåçóëüòàò êîíôëèêòà ñî SCSI-àäàïòåðîì Ultrastor. Âî âðåìÿ çàãðóçêè âîéäèòå â ìåíþ êîíôèãóðàöèè ÿäðà è âûêëþ÷èòå óñòðîéñòâî uha0, ÿâëÿþùååñÿ èñòî÷íèêîì ýòîé ïðîáëåìû.
15. Ïðè çàãðóçêå ìîåé ñèñòåìû âûäàåòñÿ ñîîáùåíèå îá îøèáêå ahc0: illegal cable configuration. Ñ ïîäêëþ÷åíèåì êàáåëÿ âñå â ïîðÿäêå. ×òî ïðîèñõîäèò? Íà âàøåé ìàòåðèíñêîé ïëàòå îòñóòñòâóåò âíåøíÿÿ ëîãèêà ïîääåðæêè àâòîìàòè÷åñêîãî òåðìèíèðîâàíèÿ. Óñòàíîâèòå â âàøåì SCSI BIOS ïðàâèëüíîå òåðìèíèðîâàíèå äëÿ âàøåé êîíôèãóðàöèè âìåñòî àâòîìàòè÷åñêîãî òåðìèíèðîâàíèÿ. Äðàéâåð AIC7XXX íå ìîæåò îïðåäåëèòü, åñòü ëè âíåøíÿÿ ëîãèêà äëÿ ðàñïîçíàâàíèÿ êàáåëÿ (è, ñîîòâåòñòâåííî, àâòîìàòè÷åñêîãî òåðìèíèðîâàíèÿ). Äðàéâåð ïðîñòî ïîëàãàåò, ÷òî ýòà ïîääåðæêà äîëæíà áûòü, åñëè êîíôèãóðàöèÿ, ñîäåðæàùàÿñÿ â EEPROM, óñòàíîâëåíà â "automatic termination". Áåç âíåøíåé ëîãèêè ðàñïîçíàâàíèÿ êàáåëÿ äðàéâåð ÷àñòî áóäåò îøèáàòüñÿ ïðè íàñòðîéêå òåðìèíèðîâàíèÿ, ÷òî ìîæåò ñêàçàòüñÿ íà íàäåæíîñòè øèíû SCSI.
39
Ãëàâà 5. Óñòðàíåíèå íåêîòîðûõ ïðîáëåì
16. Sendmail ñîîáùàåò, ÷òî mail loops back to myself  FAQ ïî sendmail íà ýòî äàí òàêîé îòâåò:-
* Âûäàþòñÿ ñîîáùåíèÿ "Local configuration error", ïðèìåðíî òàêèå: 553 relay.domain.net config error: mail loops back to myself 554 <
[email protected]>... Local configuration error Êàê ìîæíî ðåøèòü ýòó ïðîáëåìó? Ñîãëàñíî çàïèñÿì MX, ïî÷òà äëÿ äîìåíà (ñêàæåì, domain.net) áûëà ïåðåíàïðàâëåíà íà óêàçàííûé õîñò (â íàøåì ñëó÷àå relay.domain.net), íî îí íå ðàñïîçíà¼òñÿ êàê domain.net. Äîáàâüòå ñòðîêó domain.net â ôàéë /etc/mail/local-host-names (åñëè âû èñïîëüçóåòå FEATURE(use_cw_file)) èëè äîáàâüòå "Cw domain.net" â /etc/mail/sendmail.cf.
Òåêóùàÿ âåðñèÿ FAQ ïî sendmail (ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq) áîëüøå íå ïîñòàâëÿåòñÿ âìåñòå ñ sendmail. Îäíàêî ýòîò äîêóìåíò ðåãóëÿðíî ïîìåùàåòñÿ â êîíôåðåíöèè
comp.mail.sendmail (news:comp.mail.sendmail), comp.mail.misc (news:comp.mail.misc), comp.mail.smail (news:comp.mail.smail), comp.answers (news:comp.answers) è news.answers (news:news.answers). Âû ìîæåòå ïîëó÷èòü êîïèþ ïî ýëåêòðîííîé ïî÷òå, ïîñëàâ ñîîáùåíèå, ñîäåðæàùåå êîìàíäó send usenet/news.answers/mail/sendmail-faq â òåëå ïèñüìà, â àäðåñ <
[email protected]>.
17. Ïîëíîýêðàííûå ïðèëîæåíèÿ íà óäàë¼ííîé ìàøèíå âåäóò ñåáÿ íåïðàâèëüíî! Íà óäàë¼ííîé ìàøèíå òèï òåðìèíàëà ìîæåò áûòü óñòàíîâëåí â çíà÷åíèå, îòëè÷íîå îò òèïà òåðìèíàëà cons25, òðåáóåìîì ïðè èñïîëüçîâàíèè êîíñîëè FreeBSD. Åñòü íåñêîëüêî âîçìîæíûõ ñïîñîáîâ ðåøåíèÿ ýòîé ïðîáëåìû: • Ïîñëå âõîäà íà äðóãóþ ìàøèíó óñòàíîâèòå çíà÷åíèå ïåðåìåííîé îêðóæåíèÿ
TERM ðàâíûì ansi èëè
sco, åñëè ýòà ìàøèíà çíàåò îá ýòèõ òèïàõ òåðìèíàëîâ. • Èñïîëüçóéòå ýìóëÿòîð
VT100, íàïðèìåð screen íà êîíñîëè FreeBSD. Screen äà¼ò âàì âîçìîæíîñòü îòêðûâàòü íåñêîëüêî ðàáî÷èõ ñåàíñîâ íà îäíîì òåðìèíàëå, è îíà èìååò åù¼ ðÿä ïîëåçíûõ îñîáåííîñòåé. Êàæäîå îêíî ïðîãðàììû screen âåä¼ò ñåáÿ êàê òåðìèíàë VT100, òàê ÷òî ïåðåìåííàÿ TERM íà óäàë¼ííîé ìàøèíå äîëæíà áûòü óñòàíîâëåíà â çíà÷åíèå vt100.
• Îïèøèòå òåðìèíàë cons25 â áàçå äàííûõ õàðàêòåðèñòèê òåðìèíàëîâ íà óäàë¼ííîé ìàøèíå. Ñïîñîá
îïèñàíèÿ çàâèñèò îò èñïîëüçóåìîé íà ýòîé ìàøèíå îïåðàöèîííîé ñèñòåìå. Âàì ìîæåò ïîìî÷ü ÷òåíèå ðóêîâîäñòâ ïî àäìèíèñòðèðîâàíèþ óäàë¼ííîé ñèñòåìû. • Çàïóñòèòå
X-ñåðâåð íà ñòîðîíå FreeBSD è âîéäèòå íà óäàë¼ííóþ ñèñòåìó ñ ïîìîùüþ êàêîãî-ëèáî ýìóëÿòîðà òåðìèíàëà, ðàáîòàþùåãî â X Window, òàêîãî, êàê xterm èëè rxvt. Ïåðåìåííàÿ îêðóæåíèÿ TERM íà óäàë¼ííîé ìàøèíå äîëæíà áûòü óñòàíîâëåíà â çíà÷åíèå xterm èëè vt100.
40
Ãëàâà 5. Óñòðàíåíèå íåêîòîðûõ ïðîáëåì
18. Ïî÷åìó âûâîäÿòñÿ ñîîáùåíèÿ calcru: negative time...? Ýòî ìîæåò áûòü âûçâàíî ðàçëè÷íûìè àïïàðàòíûìè èëè ïðîãðàììíûìè ïðîáëåìàìè, ñâÿçàííûìè ñ ïðåðûâàíèÿìè. Ýòî ìîæåò áûòü ñâÿçàíî êàê ñ îøèáêàìè ïðè ïðîãðàììèðîâàíèè, òàê è ñ ïðèðîäîé ñàìèõ óñòðîéñòâ. Íàïðèìåð, ðàáîòà ñ TCP/IP ïî ïàðàëëåëüíîìó ïîðòó ñ èñïîëüçîâàíèåì áîëüøîãî MTU ïðèâîäèò ê ýòîé ïðîáëåìå, òàêæå êàê èñïîëüçîâàíèå ãðàôè÷åñêèõ àêñåëåðàòîðîâ; â ïîñëåäíåì ñëó÷àå âû äîëæíû ïðîâåðèòü íàñòðîéêó ïðåðûâàíèé íà ãðàôè÷åñêîì àäàïòåðå. Îäíèì èç ïðîÿâëåíèé ýòîé ïðîáëåìû ÿâëÿåòñÿ ïðåðûâàíèå ðàáîòû ïðîöåññîâ ñ äèàãíîñòè÷åñêèì ñîîáùåíèåì ”SIGXCPU exceeded cpu time limit”. Åñëè ýòà ïðîáëåìà íå ìîæåò áûòü ðåøåíà, äëÿ FreeBSD 3.0 îò 29 íîÿáðÿ 1998 è âûøå èçìåíèòå çíà÷åíèå ñèñòåìíîé ïåðåìåííîé: # sysctl -w kern.timecounter.method=1
Çàìå÷àíèå: Èñïîëüçîâàíèå îïöèè -w äëÿ sysctl(8) íå ðåêîìåíäóåòñÿ è ïîëíîñòüþ èãíîðèðóåòñÿ âî FreeBSD 4.4-RELEASE è âñåõ ïîñëåäóþùèõ âåðñèÿõ. Âû ìîæåòå áåçáîëåçíåííî îïóñòèòü å¼ ïðè çàäàíèè ïàðàìåòðîâ ïðè ïîìîùè sysctl, êàê ýòî ïîêàçàíî âûøå.
Ýòî êîñí¼òñÿ ïðîèçâîäèòåëüíîñòè ñèñòåìû, íî, ïðèíèìàÿ âî âíèìàíèå èñòî÷íèê ýòîé ïðîáëåìû, ýòî áóäåò íåçàìåòíî. Åñëè ïðîáëåìà âñ¼ åù¼ äà¼ò î ñåáå çíàòü, îñòàâüòå çíà÷åíèå ýòîé ïåðåìåííîé ðàâíûì åäèíè÷êå è óâåëè÷üòå çíà÷åíèå ïàðàìåòðà NTIMECOUNTER â ôàéëå êîíôèãóðàöèè âàøåãî ÿäðà. Åñëè â êîíöå êîíöîâ âû äîñòèãíåòå çíà÷åíèÿ NTIMECOUNTER=20, òî âàì ýòó ïðîáëåìó ðåøèòü íå óäàñòñÿ, ïðåðûâàíèÿ äàþò ñëèøêîì áîëüøóþ íàãðóçêó íà ïðîöåññîð, ÷òîáû îáåñïå÷èòü îòñëåæèâàíèå âðåìåíè.
19. Âûäà¼òñÿ ñîîáùåíèå pcm0 not found èëè ìîé çâóêîâîé àäàïòåð îïðåäåëÿåòñÿ êàê pcm1, õîòÿ â êîíôèãóðàöèîííîì ôàéëå ÿäðà óêàçàíà ñòðî÷êà device pcm0. ×òî ïðîèñõîäèò ? Òàêîå áûâàåò âî FreeBSD 3.X ñî çâóêîâûìè àäàïòåðàìè PCI. Óñòðîéñòâî pcm0 ïðåäíàçíà÷åíî èñêëþ÷èòåëüíî äëÿ àäàïòåðîâ ISA, ïîýòîìó, åñëè ó âàñ èìååòñÿ àäàïòåð PCI, òî âû óâèäèòå ýòó îøèáêó è âàø àäàïòåð áóäåò ðàñïîçíàí êàê pcm1.
Çàìå÷àíèå: Âû íå ñìîæåòå èçáàâèòüñÿ îò ïðåäóïðåæäàþùåãî ñîîáùåíèÿ, ïðîñòî èçìåíèâ ñòðîêó â
êîíôèãóðàöèîííîì ôàéëå ÿäðà íà device pcm1, òàê êàê ýòî ïðèâåä¼ò ê çàêðåïëåíèþ óñòðîéñòâà pcm1 çà àäàïòåðàìè ISA, à âàø àäàïòåð PCI áóäåò íàéäåí êàê óñòðîéñòâî pcm2 (è ïîÿâèòñÿ ïðåäóïðåæäåíèå pcm1 not found).
Åñëè ó âàñ èìååòñÿ çâóêîâîé àäàïòåð PCI, òî âàì íóæíî òàêæå ñîçäàòü óñòðîéñòâî snd1, à íå snd0:
# cd /dev # ./MAKEDEV snd1
Çàìå÷àíèå: Âû ìîæåòå ïðîïóñòèòü ýòîò øàã, åñëè èñïîëüçóåòå FreeBSD 5.0-RELEASE èëè áîëåå íîâóþ âåðñèþ ñ âêëþ÷åííûì ìåõàíèçìîì devfs(5), òàê êàê íåîáõîäèìûå ôàéëû óñòðîéñòâ áóäóò ñîçäàâàòüñÿ â êàòàëîãå /dev àâòîìàòè÷åñêè.
41
Ãëàâà 5. Óñòðàíåíèå íåêîòîðûõ ïðîáëåì
Òàêîé ñèòóàöèè íå âîçíèêàåò âî FreeBSD 4.X, òàê êàê â íåé áûëî ïîëîæåíî ìíîãî óñèëèé, ÷òîáû ñäåëàòü å¼ áîëåå PnP-öåíòðè÷íîé è óñòðîéñòâî pcm0 áîëüøå íå ïðåäíàçíà÷åíî èñêëþ÷èòåëüíî äëÿ àäàïòåðîâ ISA
20. Ïî÷åìó ïîñëå îáíîâëåíèÿ FreeBSD äî âåðñèè 4.X ìîé PnP-àäàïòåð áîëüøå íå îáíàðóæèâàåòñÿ (èëè îïðåäåëÿåòñÿ êàê unknown)? FreeBSD 4.X òåïåðü ãîðàçäî áîëåå PnP-öåíòðè÷íà , ÷òî îòðàæàåòñÿ íà íåêîòîðûõ óñòðîéñòâàõ PnP (ê ïðèìåðó, çâóêîâûõ àäàïòåðàõ è âíóòðåííèõ ìîäåìàõ), ïåðåñòàþùèõ ðàáîòàòü, õîòÿ îíè ôóíêöèîíèðîâàëè â ñèñòåìå FreeBSD 3.X. Ïðè÷èíû òàêîãî ïîâåäåíèÿ îáúÿñíÿþòñÿ â ñëåäóþùåì ñîîáùåíèè ýëåêòðîííîé ïî÷òû, îïóáëèêîâàííîì â Ñïèñîê ðàññûëêè, ïîñâÿù¼ííûé âîïðîñàì è îòâåòàì ïîëüçîâàòåëåé FreeBSD (http://lists.FreeBSD.org/mailman/listinfo/freebsd-questions) Ïèòåðîì Óýììîì (Peter Wemm) â îòâåò íà âîïðîñ î âíóòðåííåì ìîäåìå, êîòîðûé ïåðåñòàë ðàñïîçíàâàòüñÿ ïîñëå îáíîâëåíèÿ äî FreeBSD 4.X (êîììåíòàðèè âíóòðè [] áûëè äîáàâëåíû äëÿ ïîÿñíåíèÿ êîíòåêñòà ïîñëàíèÿ.
Çàìå÷àíèå: Ñîäåðæàíèå ýòîé öèòàòû ïî ñðàâíåíèþ ñ îðèãèíàëüíûì òåêñòîì áûëî èçìåíåíî.
BIOS, ïîääåðæèâàþùàÿ PNP, ïðåäâàðèòåëüíî îòâîäèò è îñòàâëÿåò åìó [ìîäåìó] ìåñòî â àäðåñíîì ïðîñòðàíñòâå ïîðòîâ, òàê ÷òî [â 3.X] ïðîöåäóðà îáíàðóæåíèÿ â ñòàðîì ñòèëå ISA ”íàõîäèò” åãî çäåñü.  4.0 êîä äëÿ ðàáîòû ñ ISA ãîðàçäî áîëåå PnP-öåíòðè÷åí. [ 3.X] áûëî âîçìîæíî ïðè ðàñïîçíàâàíèè ISA íàéòè ”áåñïðèçîðíîå” óñòðîéñòâî è çàòåì ïî èäåíòèôèêàòîðó PNP-óñòðîéñòâà ïðîèçâåñòè ïîèñê è ïîëó÷èòü îøèáêó èç-çà êîíôëèêòà ðåñóðñîâ. Ïîýòîìó äëÿ ïðåäîòâðàùåíèÿ ïîâòîðíîé ïðîöåäóðû ðàñïîçíàâàíèÿ â í¼ì ñíà÷àëà âûêëþ÷àþòñÿ âñå óïðàâëÿåìûå àäàïòåðû. Ýòî òàêæå îçíà÷àåò, ÷òî äëÿ ïîääåðæèâàåìîãî îáîðóäîâàíèÿ PnP íóæíî çíàòü èõ PnP-èäåíòèôèêàòîðû. Èìåþòñÿ ïëàíû íà îáåñïå÷åíèå âîçìîæíîñòè íàñòðîéêè ýòîãî ñî ñòîðîíû ïîëüçîâàòåëÿ.
×òîáû çàñòàâèòü óñòðîéñòâî ðàáîòàòü ñíîâà, òðåáóåòñÿ îïðåäåëèòü åãî PnP-èäåíòèôèêàòîð è äîáàâèòü åãî â ñïèñîê, êîòîðûé èñïîëüçóåòñÿ ïðîöåäóðîé ðàñïîçíàâàíèÿ ISA äëÿ èäåíòèôèêàöèè óñòðîéñòâ PnP. Ýòîò èäåíòèôèêàòîð ìîæíî ïîëó÷èòü ïðè ïîìîùè ïðîãðàììû pnpinfo(8), íàéäÿ óñòðîéñòâî â å¼ âûäà÷å, âîò, íàïðèìåð, âûâîä êîìàíäû pnpinfo(8) â ñëó÷àå âíóòðåííåãî ìîäåìà: # pnpinfo
Checking for Plug-n-Play devices... Card assigned CSN #1 Vendor ID PMC2430 (0x3024a341), Serial Number 0xffffffff PnP Version 1.0, Vendor Version 0 Device Description: Pace 56 Voice Internal Plug & Play Modem Logical Device ID: PMC2430 0x3024a341 #0 Device supports I/O Range Check TAG Start DF I/O Range 0x3f8 .. 0x3f8, alignment 0x8, len 0x8 [16-bit addr] IRQ: 4 - only one type (true/edge)
[ëèøíèå ñòðîêè TAG èñêëþ÷åíû]
42
Ãëàâà 5. Óñòðàíåíèå íåêîòîðûõ ïðîáëåì
TAG End DF End Tag Successfully got 31 resources, 1 logical fdevs -- card select # 0x0001 CSN PMC2430 (0x3024a341), Serial Number 0xffffffff Logical device #0 IO: 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 IRQ 5 0 DMA 4 0 IO range check 0x00 activate 0x01 Èíôîðìàöèÿ, êîòîðàÿ âàì íóæíà, íàõîäèòñÿ â ñòðîêå ”Vendor ID” â ñàìîì íà÷àëå âûâîäà êîìàíäû. Øåñòíàäöàòåðè÷íîå ÷èñëî â ñêîáêàõ (â ýòîì ïðèìåðå 0x3024a341) ÿâëÿåòñÿ PnP-èäåíòèôèêàòîðîì, à ñòðî÷êà, èäóùàÿ ïðÿìî ïåðåä íèì (PMC2430) ÿâëÿåòñÿ óíèêàëüíûì ASCII-èäåíòèôèêàòîðîì. Ëèáî, åñëè â ñïèñêå, âûäàâàåìîì pnpinfo(8), àäàïòåðà íåò, ìîæíî âîñïîëüçîâàòüñÿ óòèëèòîé pciconf(8). Âîò ÷àñòü âûäà÷è êîìàíäû pciconf -vl äëÿ èíòåãðèðîâàííîãî â ìàòåðèíñêóþ ïëàòó çâóêîâîãî àäàïòåðà: # pciconf -vl
chip1@pci0:31:5: class=0x040100 card=0x00931028 chip=0x24158086 rev=0x02hdr=0x00 vendor = ’Intel Corporation’ device = ’82801AA 8xx Chipset AC’97 Audio Controller’ class = multimedia subclass = audio  äàííîì ñëó÷àå âàì íóæíî èñïîëüçîâàòü çíà÷åíèå äëÿ chip, ”0x24158086”. Ýòó èíôîðìàöèþ (ID ïðîèçâîäèòåëÿ èëè íîìåð ìèêðîñõåìû) íóæíî äîáàâèòü â ôàéë /usr/src/sys/isa/sio.c. Ñíà÷àëà âû äîëæíû ñäåëàòü ðåçåðâíóþ êîïèþ ôàéëà sio.c ïðîñòî íà òîò ñëó÷àé, åñëè ÷òî-òî ïîéä¼ò íå òàê. Ýòà êîïèÿ òàêæå ìîæåò ïîòðåáîâàòüñÿ äëÿ ñîçäàíèÿ ïàò÷à äëÿ ïîñûëêè åãî âìåñòå ñ âàøèì PR (âû æå ñîáèðàåòåñü ïîñëàòü PR, íå ïðàâäà ëè?) îòðåäàêòèðîâàâ ôàéë sio.c è ïîèñêàâ ñòðî÷êó
static struct isa_pnp_id sio_ids[] = { ïîñëå ÷åãî ïåðåìåñòèòåñü íèæå è íàéäèòå ïîäõîäÿùåå ìåñòî, ÷òîáû äîáàâèòü ñòðî÷êó äëÿ âàøåãî óñòðîéñòâà. Çàïèñè èìåþò ïðèìåðíî òàêîé âèä, è îíè îòñîðòèðîâàíû ïî ASCII-ñòðîêàì Vendor ID, êîòîðûå äîëæíû áûòü ïîìåùåíû â ïîëå êîììåíòàðèÿ ñïðàâà îò ñòðîêè êîäà âìåñòå ñ ïîëíûì îïèñàíèåì óñòðîéñòâà (åñëè îíî ïîìåñòèòñÿ) èëè ÷àñòüþ èç Device Description âûâîäà ïðîãðàììû
pnpinfo(8): {0x0f804f3f, {0x39804f3f, {0x3024a341, {0x1000eb49, {0x5002734a,
NULL}, NULL}, NULL}, NULL}, NULL},
/* /* /* /* /*
OZO800f OZO8039 PMC2430 ROK0010 RSS0250
-
Zoom 2812 (56k Modem) */ Zoom 56k flex */ Pace 56 Voice Internal Modem */ Rockwell ? */ 5614Jx3(G) Internal Modem */
43
Ãëàâà 5. Óñòðàíåíèå íåêîòîðûõ ïðîáëåì
Äîáàâüòå øåñòíàäöàòåðè÷íûé èäåíòèôèêàòîð Vendor ID âàøåãî óñòðîéñòâà â ñîîòâåòñòâóþùåå ìåñòî, ñîõðàíèòå ôàéë, ïåðåñòðîéòå ÿäðî è âûïîëíèòå ïåðåçàãðóçêó. Âàøå óñòðîéñòâî äîëæíî òåïåðü áûòü íàéäåíî â âèäå óñòðîéñòâà sio, êàê ýòî è áûëî âî FreeBSD 3.X
21. Ïî÷åìó ïðè çàïóñêå íåêîòîðûõ ïðîãðàìì, íàïðèìåð, top èëè systat, âûäàåòñÿ ñîîáùåíèå îá îøèáêå nlist failed? Ïðîáëåìà â òîì, ÷òî ïðèëîæåíèå, êîòîðîå âû ïûòàåòåñü çàïóñòèòü, èùåò ñïåöèôè÷åñêèå ññûëêè â ÿäðå, íî ïî êàêèì-ëèáî ïðè÷èíàì íå ìîæåò èõ íàéòè; ýòà îøèáêà ïðîèñõîäèò îò îäíîé èç ñëåäóþùèõ ïðîáëåì: • Âàøå ÿäðî è ïðîãðàììû ïîëüçîâàòåëåé íå ñîîòâåòñòâóþò äðóã äðóãó (íàïðèìåð, âû ïîñòðîèëè ÿäðî,
íî íå âûïîëíèëè êîìàíäó installworld, èëè íàîáîðîò), è ïîýòîìó òàáëèöà èìåí îòëè÷àåòñÿ îò òîãî, ÷òî äóìàþò î íåé ïîëüçîâàòåëüñêèå ïðèëîæåíèÿ. Åñëè ýòî âàø ñëó÷àé, ïðîñòî çàâåðøèòå ïðîöåññ îáíîâëåíèÿ (îáðàòèòåñü ê ôàéëó /usr/src/UPDATING äëÿ âûÿñíåíèÿ ïðàâèëüíîé ïîñëåäîâàòåëüíîñòè äåéñòâèé). • Äëÿ çàãðóçêè ÿäðà âû íå èñïîëüçóåòå /boot/loader, à äåëàåòå ýòî íåïîñðåäñòâåííî èç
boot2
(îáðàòèòåñü ê ñïðàâî÷íî ñòðàíèöå ïî boot(8)). Õîòÿ íåò íè÷åãî ïëîõîãî â îáõîäå /boot/loader, îáû÷íî ðàáîòó ïî äîñòóïíîñòè ñèìâîëüíîé èíôîðìàöèè ÿäðà èç ïîëüçîâàòåëüñêèõ ïðèëîæåíèé îí âûïîëíÿåò ëó÷øå.
22. Ïî÷åìó ïîäêëþ÷åíèå ÷åðåç ssh èëè telnet ê ìîåìó êîìïüþòåðó çàíèìàåò òàê äîëãî âðåìåíè? Ñèìïòîì: ìåæäó ìîìåíòîì óñòàíîâëåíèÿ TCP-ñîåäèíåíèÿ è âûäà÷åé êëèåíòñêèì ïðîãðàììíûì îáåñïå÷åíèåì çàïðîñà íà ââîä ïàðîëÿ (èëè, â ñëó÷àå èñïîëüçîâàíèÿ telnet(1), âûäà÷åé ïðèãëàøåíèÿ íà âõîä) ïðîõîäèò áîëüøîé ïðîìåæóòîê âðåìåíè. Ïðîáëåìà: ñêîðåå âñåãî, çàäåðæêà âûçâàíà ïðîãðàììíûì îáåñïå÷åíèåì íà ñòîðîíå ñåðâåðà, êîòîðîå ïûòàåòñÿ ïðåîáðàçîâàòü IP-àäðåñ êëèåíòà â èìÿ õîñòà. Ìíîãèå ñåðâåðû, âêëþ÷àÿ Telnet è SSH, ïîñòàâëÿåìûå ñ FreeBSD, äåëàþò ýòî äëÿ òîãî, ÷òîáû, êðîìå âñåãî ïðî÷åãî, çàïèñàòü èìÿ õîñòà â ôàéëå æóðíàëà äëÿ ñïðàâêè àäìèíèñòðàòîðà. Ëå÷åíèå: Åñëè ïðîáëåìà âîçíèêàåò âíå çàâèñèìîñòè îò òîãî, ê êàêîìó ñåðâåðó âû ïîäêëþ÷àåòåñü ñ âàøåãî êîìïüþòåðà (êëèåíòà), òî ïðè÷èíà â êëèåíòå; èëè æå, åñëè ïðîáëåìà âîçíèêàåò òîëüêî ïðè ÷üåé-ëèáî ïîïûòêå ïîäêëþ÷èòüñÿ ê âàøåìó êîìïüþòåðó (ñåðâåðó), òî ïðîáëåìà ñ ñåðâåðîì. Åñëè ïðîáëåìà ñ êëèåíòîì, òî åäèíñòâåííûì ìåòîäîì åå ðåøåíèÿ ÿâëÿåòñÿ èñïðàâëåíèå DNS, ÷òîáû ñåðâåð ñìîã ðàñïîçíàòü âàøó ìàøèíó. Åñëè ýòî ïðîèñõîäèò â ëîêàëüíîé ñåòè, òî ïðåäïîëîæèòå, ÷òî ýòî ïðîáëåìà ñ ñåðâåðîì è ïðîäîëæàéòå ÷òåíèå; îáðàòíî, åñëè ýòî ïðîèñõîäèò â ãëîáàëüíîé ñåòè Èíòåðíåò, òî â áîëüøèíñòâå ñëó÷àåâ âàì íóæíî îáðàòèòüñÿ ê âàøåìó ïðîâàéäåðó è ïîïðîñèòü èñïðàâèòü ïîëîæåíèå. Åñëè ïðîáëåìà ñ ñåðâåðîì, è ýòî ïðîèñõîäèò â ëîêàëüíîé ñåòè, òî âàì íóæíî íàñòðîèòü ñåðâåð äëÿ ðàçðåøåíèÿ çàïðîñîâ íà ïðåîáðàçîâàíèå àäðåñà â èìÿ õîñòà â äèàïàçîíå âàøèõ ëîêàëüíûõ àäðåñîâ. Îáðàòèòåñü ê ñòðàíèöàì Ñïðàâî÷íèêà ïî hosts(5) è named(8) äëÿ ïîëó÷åíèÿ áîëåå ïîäðîáíîé èíôîðìàöèè. Åñëè ýòî ïðîèñõîäèò â ãëîáàëüíîé ñåòè Èíòåðíåò, òî ïðîáëåìà ìîæåò çàêëþ÷àòüñÿ â íåêîððåêòíîé ðàáîòå ðåñîëâåðà âàøåãî ñåðâåðà. Äëÿ ïðîâåðêè ïîïðîáóéòå íàéòè äðóãîé õîñò--ñêàæåì, www.yahoo.com. Åñëè ýòî íå ðàáîòàåò, ÷òî ïðîáëåìà ó âàñ.
44
Ãëàâà 5. Óñòðàíåíèå íåêîòîðûõ ïðîáëåì
23. ×òî îçíà÷àåò ñîîáùåíèå stray IRQ? Ïîòåðÿííûå IRQ ÿâëÿþòñÿ ïðèçíàêîì ñòðàííîñòåé â ðàáîòå àïïàðàòíûõ IRQ, â îñíîâíîì îáîðóäîâàíèÿ, êîòîðîå óäàëÿåò ñâîè çàïðîñû íà ïðåðûâàíèå ïîñðåäè öèêëà ïîäòâåðæäåíèÿ çàïðîñà íà ïðåðûâàíèå. Èìååòñÿ òðè âàðèàíòà ðàáîòû ñ òàêèìè ñèòóàöèÿìè: • Ïðèìèðèòüñÿ ñ ñîîáùåíèÿìè.  ëþáîì ñëó÷àå ïîäàâëÿþòñÿ âñå ñîîáùåíèÿ, êðîìå êàæäûõ ïåðâûõ
5
íà IRQ. • Óáðàòü ïðåäóïðåæäàþùèå ñîîáùåíèÿ, èçìåíèâ ïàðàìåòð
5 íà 0 â ôóíêöèè isa_strayintr(), òàê
÷òî âñå ïðåäóïðåæäåíèÿ áóäóò ïîäàâëåíû. • Èçáàâèòüñÿ îò ïðåäóïðåæäåíèé, óñòàíîâèâ ïàðàëëåëüíûé ïîðò, èñïîëüçóþùèé
IRQ 7 è äðàéâåð PPP äëÿ íåãî (ýòî åñòü íà áîëüøèíñòâå ñèñòåì), è óñòàíîâèâ äèñê IDE èëè äðóãîå îáîðóäîâàíèå, èñïîëüçóþùåå IRQ 15 è ïîäõîäÿùèé äðàéâåð.
24. Ïî÷åìó â dmesg ðåãóëÿðíî âûâîäÿòñÿ ñîîáùåíèÿ file: table is full? Òàêîå ñîîáùåíèå îá îøèáêå ñèãíàëèçèðóåò î òîì, ÷òî â âàøåé ñèñòåìå èñ÷åðïàíî êîëè÷åñòâî äîñòóïíûõ ôàéëîâûõ äåñêðèïòîðîâ. Ïîæàëóéñòà, îáðàòèòåñü ê ðàçäåëó kern.maxfiles (../handbook/configtuning-kernel-limits.html#KERN-MAXFILES) ãëàâû î Íàñòðîéêå îãðàíè÷åíèé ÿäðà (../handbook/configtuning-kernel-limits.html) Ðóêîâîäñòâà äëÿ âûÿñíåíèÿ âñåõ ïîäðîáíîñòåé è óñòðàíåíèÿ ýòîé ïðîáëåìû.
25. Ïî÷åìó ÷àñû íà ìîåì ëýïòîïå ïîêàçûâàþò íåïðàâèëüíîå âðåìÿ?  âàøåì ëýïòîïå óñòàíîâëåíû äâîå èëè áîëüøåå êîëè÷åñòâî òàéìåðîâ, à FreeBSD âûáðàëà íå òîò. Çàïóñòèòå dmesg(8) è ïîñìîòðèòå ñòðîêè, ñîäåðæàùèå ñëîâî Timecounter.  ïîñëåäíåé èç íèõ óêàçàí òàéìåð, âûáðàííûé ñèñòåìîé, è, ñêîðåå âñåãî, ýòî áóäåò TSC. # dmesg | grep Timecounter
Timecounter "i8254" frequency 1193182 Hz Timecounter "TSC" frequency 595573479 Hz Âû ìîæåòå óäîñòîâåðèòüñÿ â ýòîì, ïðîâåðèâ sysctl(3)-ïåðåìåííóþ kern.timecounter.hardware. # sysctl kern.timecounter.hardware
kern.timecounter.hardware: TSC
BIOS ìîæåò èçìåíèòü ÷àñòîòó TSC—ìîæåò, äëÿ èçìåíåíèÿ ñêîðîñòè ðàáîòû ïðîöåññîðà ïðè ðàáîòå îò áàòàðååê èëè ïåðåâîäÿ â ðåæèì ïîíèæåííîãî ýëåêòðîïèòàíèÿ, íî FreeBSD íå îòñëåæèâàåò ýòî è â ðåçóëüòàòå ÷àñû íà÷èíàþò ñïåøèòü èëè îòñòàâàòü.  ýòîì ïðèìåðå èìååòñÿ òàêæå è òàéìåð i8254, è îí ìîæåò áûòü âûáðàí çàïèñüþ åãî èìåíè â sysctl(3)-ïåðåìåííóþ kern.timecounter.hardware. # sysctl -w kern.timecounter.hardware=i8254
kern.timecounter.hardware: TSC -> i8254 Òåïåðü âàø ëýïòîï áóäåò àêêóðàòíåå ñëåäèòü çà âðåìåíåì.
45
Ãëàâà 5. Óñòðàíåíèå íåêîòîðûõ ïðîáëåì
×òîáû ýòî èçìåíåíèå âñòóïàëî â ñèëó âî âðåìÿ çàãðóçêè ñèñòåìû, äîáàâüòå â ôàéë /etc/sysctl.conf òàêóþ ñòðî÷êó.
kern.timecounter.hardware=i8254
26. Ïî÷åìó ìîé ëýïòîï íåêîððåêòíî ðàñïîçíà¼ò PC-êàðòû? Ýòà ïðîáëåìà ÷àñòî âñòðå÷àåòñÿ íà ëýïòîïàõ, êîòîðûå ðàáîòàþò áîëåå ÷åì ñ îäíîé îïåðàöèîííîé ñèñòåìîé. Íåêîòîðûå íå-BSD îïåðàöèîííûå ñèñòåìû îñòàâëÿþò àïïàðàòíóþ ÷àñòü PC-êàðò â íåóñòîé÷èâîì ñîñòîÿíèè. pccardd ðàñïîçíàåò êàðòó êàê "(null)""(null)", à íå êàê ðåàëüíî èñïîëüçóåìóþ ìîäåëü. Âû äîëæíû óáðàòü âñ¼ ïèòàíèå ñî ñëîòà PC-êàðòû äëÿ ïîëíîãî ñáðîñà àïïàðàòóðû. Ïîëíîñòüþ âûêëþ÷èòå ëýïòîï. (Íå ïåðåâîäèòå åãî íè â ñïÿùèé, íè â æäóùèé ðåæèì; ïèòàíèå äîëæíî áûòü âûêëþ÷åíî ïîëíîñòüþ.) Ïîäîæäèòå íåñêîëüêî ñåêóíä è ïåðåçàãðóçèòåñü. Òåïåðü âàøà PC-êàðòà äîëæíà çàðàáîòàòü.  íåêîòîðûõ ëýïòîïàõ àïïàðàòíàÿ ÷àñòü íåâåðíî ñîîáùàåò î ñâî¼ì âûêëþ÷åíèè. Åñëè îïèñàííîå âûøå íå ðàáîòàåò, îñòàíîâèòå ðàáîòó, âûíüòå áàòàðåþ, ïîäîæäèòå íåñêîëüêî ñåêóíä, âñòàâüòå áàòàðåþ è ïåðåçàãðóçèòåñü.
27. Ñðàçó ïîñëå ýêðàíà BIOS íà÷àëüíûé çàãðóç÷èê FreeBSD âûâîäèò ñîîáùåíèå Read error è îñòàíàâëèâàåòñÿ. Íà÷àëüíûé çàãðóç÷èê FreeBSD íåâåðíî îïðåäåëÿåò ïàðàìåòðû âèí÷åñòåðà. Èõ ìîæíî óñòàíîâèòü âðó÷íóþ óòèëèòîé fdisk ïðè ñîçäàíèè èëè èçìåíåíèè ïàðàìåòðîâ ñëàéñà FreeBSD. Ïðàâèëüíûå çíà÷åíèÿ ïàðàìåòðîâ äèñêà ìîæíî ïîñìîòðåòü â BIOS. Îáðàòèòå âíèìàíèå íà ÷èñëî äîðîæåê, ãîëîâîê è ñåêòîðîâ äëÿ ýòîãî äèñêà.  ïîäïðîãðàììå fdisk óòèëèòû sysinstall(8) íàæìèòå G äëÿ óñòàíîâêè ïàðàìåòðîâ äèñêà (disk geometry). Ïîÿâèòñÿ äèàëîãîâîå îêíî, çàïðàøèâàþùåå êîëè÷åñòâî äîðîæåê, ãîëîâîê è ñåêòîðîâ. Çàäàéòå çíà÷åíèÿ, âçÿòûå èç BIOS è ðàçäåëÿåìûå ñèìâîëàìè ñëýøà.
5000 äîðîæåê, 250 ãîëîâîê è 60 ñåêòîðîâ áóäóò ââåäåíû êàê 5000/250/60 Íàæìèòå Ââîä äëÿ çàäàíèÿ ýòèõ çíà÷åíèé è íàæìèòå W äëÿ òîãî, ÷òîáû çàïèñàòü íîâóþ òàáëèöó ðàçäåëîâ íà äèñê.
28. Äðóãàÿ îïåðàöèîííàÿ ñèñòåìà óíè÷òîæèëà ìîé ìåíåäæåð çàãðóçêè, êàê ìíå åãî âîññòàíîâèòü? Çàïóñòèòå óòèëèòó sysinstall(8) è âûáåðèòå ïóíêò Configure, à çàòåì Fdisk. Âûáåðèòå äèñê, íà êîòîðîì ðàíåå íàõîäèëñÿ ìåíåäæåð çàãðóçêè, ïðè ïîìîùè êëàâèøè ïðîáåë. Íàæìèòå W äëÿ çàïèñè èçìåíåíèé íà äèñê. Ïîÿâèòñÿ äèàëîãîâîå îêíî äëÿ âûáîðà óñòàíàâëèâàåìîãî íà÷àëüíîãî çàãðóç÷èêà. Âûáåðèòå íóæíûé, è îí áóäåò âîññòàíîâëåí.
29. ×òî îçíà÷àåò ñîîáùåíèå swap_pager: indefinite wait buffer:? Ýòî çíà÷èò, ÷òî ïðîöåññ ïûòàåòñÿ ñáðîñèòü ñòðàíèöó ïàìÿòè íà äèñê, è ïîïûòêà ñäåëàòü ýòî îêàí÷èâàåòñÿ íåóäà÷íî âîò óæå â òå÷åíèå áîëåå ÷åì 20 ñåêóíä. Ýòî ìîæåò áûòü âûçâàíî èñïîð÷åííûìè
46
Ãëàâà 5. Óñòðàíåíèå íåêîòîðûõ ïðîáëåì
áëîêàìè íà äèñêå, êàáåëÿìè, ïîäêëþ÷åíèåì èëè äðóãèì îáîðóäîâàíèåì ââîäà/âûâîäà. Åñëè äèñê ñàì ïî ñåáå íà ñàìîì äåëå èñïîð÷åí, âû òàêæå óâèäèòå îøèáêè ðàáîòû ñ äèñêîì â /var/log/messages è ïðè ðàáîòå êîìàíäû dmesg.  ïðîòèâíîì ñëó÷àå ïðîâåðüòå êàáåëè è ïîäêëþ÷åíèÿ.
30. ×òî îçíà÷àþò îøèáêè ”UDMA ICRC”, è êàê èõ èñïðàâèòü? Äðàéâåð ata(4) ñîîáùàåò îá îøèáêàõ ”UDMA ICRC”, êîãäà íàðóøàåòñÿ ïåðåäà÷à â èëè ñ äèñêà â ðåæèìå DMA. Äðàéâåð áóäåò ïîâòîðÿòü ïåðåäà÷ó íåñêîëüêî ðàç. Åñëè ïîâòîðíûå ïîïûòêè îêîí÷àòñÿ íåóäà÷åé, îí ïåðåêëþ÷èòñÿ èç ðåæèìà DMA â áîëåå ìåäëåííûé ðåæèì PIO âçàèìîäåéñòâèÿ ñ óñòðîéñòâîì. Ïðîáëåìà ìîæåò âîçíèêàòü ïî ìíîãèì ïðè÷èíàì, õîòÿ ñàìûì ðàñïðîñòðàí¼ííîé ÿâëÿåòñÿ íåïðàâèëüíîå èëè ñáîÿùåå ïîäêëþ÷åíèå êàáåëåé. Ïðîâåðüòå êàáåëè ATA íà íàëè÷èå ïîâðåæäåíèé è ñîîòâåòñòâèå èñïîëüçóåìîìó ðåæèìó Ultra DMA. Åñëè âû èñïîëüçóåòå äèñêè íà ñú¼ìíûõ ñàëàçêàõ, îíè òàêæå äîëæíû áûòü ñîâìåñòèìûìè ñ ýòèì ðåæèìîì. Óäîñòîâåðüòåñü, ÷òî âñå ñîåäèíåíèÿ ïîäêëþ÷åíû õîðîøî. Ïðîáëåìû òàêæå íàáëþäàëèñü, êîãäà ñòàðûé äèñê óñòàíàâëèâàëñÿ íà òîò æå ñàìûé êàíàë ATA, ÷òî è Ultra DMA 66 (èëè áîëåå áûñòðûé) äèñê. Íàêîíåö, òàêèå îøèáêè ìîãóò óêàçûâàòü íà ñáîéíîñòü ñàìîãî äèñêà. Áîëüøèíñòâî ïðîèçâîäèòåëåé äèñêîâ ïðåäîñòàâëÿþò ïðîãðàììíîå îáåñïå÷åíèå äëÿ òåñòèðîâàíèÿ ñâîèõ äèñêîâ, òàê ÷òî ïðîâåðüòå ñâîé äèñê, è, åñëè ýòî íåîáõîäèìî, ñäåëàéòå ðåçåðâíóþ êîïèþ äàííûõ è çàìåíèòå åãî. Äëÿ ïðîñìîòðà è âûáîðà ðåæèìîâ DMA èëè PIO äëÿ êàæäîãî óñòðîéñòâà ATA ìîæíî èñïîëüçîâàòü óòèëèòó atacontrol(8).  ÷àñòíîñòè, êîìàíäà atacontrol mode channel âûäàñò ðåæèìû, èñïîëüçóåìûå çàäàííûì êàíàëîì ATA, ïðè÷¼ì ïåðâè÷íûé êàíàë íóìåðóåòñÿ íóë¼ì, è òàê äàëåå.
47
Ãëàâà 6. Êîììåð÷åñêèå ïðèëîæåíèÿ Çàìå÷àíèå: Ýòîò ðàçäåë âûãëÿäèò äîâîëüíî çàáðîøåííûì, îäíàêî ìû, êîíå÷íî æå, íàäååìñÿ, ÷òî
ïðîèçâîäèòåëè ñäåëàþò äîáàâëåíèÿ! :) Ïðîåêò FreeBSD ôèíàíñîâî íå çàèíòåðåñîâàí â óñïåõàõ íè îäíîé èç êîìïàíèé, êîòîðûå çäåñü óïîìèíàþòñÿ, õîòÿ ïðèâîäèò èõ ñïèñîê â èíòåðåñàõ îáùåñòâà (â ïðåäïîëîæåíèè, ÷òî êîììåð÷åñêèé èíòåðåñ ê FreeBSD ìîæåò ïîëîæèòåëüíî ïîâëèÿòü íà äàëüíåéøåå ðàçâèòèå FreeBSD). Ìû ïðîñèì ïîñòàâùèêîâ êîììåð÷åñêîãî ïðîãðàììíîãî îáåñïå÷åíèÿ ïðèñûëàòü íàì èíôîðìàöèþ î âàøèõ ïðîäóêòàõ äëÿ âêëþ÷åíèÿ â ýòîò ñïèñîê. Áîëåå ïîëíûé ñïèñîê ïðîèçâîäèòåëåé íàõîäèòñÿ íà ñòðàíèöå ïðîèçâîäèòåëåé (http://www.FreeBSD.org/commercial/commercial.html).
1. Ãäå ìîæíî íàéòè íàáîð îôèñíûõ ïðîãðàìì äëÿ FreeBSD? •
The FreeBSD Mall (http://www.freebsdmall.com/) ïðåäëàãàåò âåðñèþ ApplixWare 5 äëÿ FreeBSD îò VistaSource (http://www.vistasource.com/). ApplixWare ýòî áîëüøîé ìíîãîôóíêöèîíàëüíûé êîììåð÷åñêèé îôèñíûé ïàêåò äëÿ FreeBSD, â êîòîðûé âõîäèò òåêñòîâûé ïðîöåññîð, ýëåêòðîííûå òàáëèöû, ïðîãðàììà äëÿ ðàáîòû ñ ïðåçåíòàöèÿìè, ïàêåò âåêòîðíîé ãðàôèêè è äðóãèå ïðèëîæåíèÿ. ApplixWare ïðåäëàãàåòñÿ êàê ÷àñòü äèñòðèáóòèâà FreeBSD Mall’s BSD Desktop Edition.
• Âåðñèÿ äëÿ
Linux ïàêåòà StarOffice (http://www.sun.com/staroffice/) ïðåêðàñíî ðàáîòàåò âî FreeBSD. Ïðîùå âñåãî óñòàíîâèòü Linux-âåðñèþ ýòîãî ïàêåòà ïðè ïîìîùè Êîëëåêöèþ Ïîðòîâ FreeBSD (../handbook/ports.html). Òàêæå äîëæíû ðàáîòàòü è áóäóùèå âåðñèè ïàêåòà ñ îòêðûòûì êîäîì OpenOffice (http://www.openoffice.org/).
2. Ãäå ìîæíî êóïèòü Motif äëÿ FreeBSD? Open Group îïóáëèêîâàëè èñõîäíûå òåêñòû Motif 2.1.30. Âû ìîæåòå ïðîèíñòàëèðîâàòü èõ ñ ïîìîùüþ ïàêåòà open-motif èëè ñêîìïèëèðîâàòü èõ èç ïîðòîâ. Âîñïîëüçóéòåñü ñåêöèåé Ïîðòû Ðóêîâîäñòâà (../handbook/ports.html) äëÿ ïîëó÷åíèÿ äåòàëüíîé èíôîðìàöèè î òîì, êàê ýòî ñäåëàòü.
Çàìå÷àíèå: Ëèöåíçèÿ Open Motif ïîçâîëÿåò ðàñïðîñòðàíåíèå òîëüêî åñëè áèáëèîòåêà èñïîëüçóåòñÿ íà
ÎÑ ñ
îòêðûòûìè èñõîäíûìè òåêñòàìè (http://www.opensource.org/).
 äîïîëíåíèè íóæíî ñêàçàòü, ÷òî ñóùåñòâóþò òàêæå äèñòðèáüþòîðû ïðåäëàãàþùèå êîììåð÷åñêèé âàðèàíò Motif. Ýòà áèáëèîòåêà íå áåñïëàòíà, íî åå ëèöåíçèÿ ïîçâîëÿåò âåñòè ðàçðàáîòêó ïðèëîæåíèé ñ çàêðûòûìè èñõîäíûìè òåêñòàìè. Îáðàòèòåñü â ôèðìó Apps2go, ïðåäëàãàþùóþ ñàìûé äåø¼âûé äèñòðèáóòèâ Motif 2.1.20 äëÿ FreeBSD (êàê äëÿ i386, òàê è äëÿ Alpha) â ôîðìàòå ELF. Ñóùåñòâóþò äâà äèñòðèáóòèâà, ”äëÿ ðàçðàáîò÷èêîâ” (”development edition”) è åù¼ áîëåå äåø¼âàÿ ”âðåìåíè âûïîëíåíèÿ” (”runtime edition”).  ýòè äèñòðèáóòèâû âêëþ÷åíû: •
OSF/Motif manager, xmbind, panner, wsm.
• Ïàêåò ðàçðàáîò÷èêà ñ
uil, mrm, xm, xmcxx, ôàéëàìè include è Imake.
48
Ãëàâà 6. Êîììåð÷åñêèå ïðèëîæåíèÿ • Ñòàòè÷åñêèå è äèíàìè÷åñêèå
ELF-áèáëèîòåêè (äëÿ èñïîëüçîâàíèÿ ñ FreeBSD 3.0 è âûøå).
• Äåìîíñòðàöèîííûå ïðèëîæåíèÿ.
Ïðè îôîðìëåíèè çàêàçà íå çàáóäüòå óêàçàòü, ÷òî âàì íóæíà âåðñèÿ Motif èìåííî äëÿ FreeBSD (íå çàáóäüòå òàêæå óêàçàòü àðõèòåêòóðó ïðîöåññîðà)! Apps2go òàêæå ïðîäà¼ò âåðñèè äëÿ NetBSD è OpenBSD.  íàñòîÿùèé ìîìåíò èõ ìîæíî ïîëó÷èòü òîëüêî ïî FTP. Äîïîëíèòåëüíàÿ èíôîðìàöèÿ
WWW-ñåðâåð Apps2go (http://www.apps2go.com/) èëè ýëåêòðîííûå àäðåñà îòäåëîâ ïðîäàæ (mailto:
[email protected]) è ïîääåðæêè
(mailto:
[email protected]). èëè òåëåôîíû (817) 431 8775 è +1 817 431-8775 Îáðàòèòåñü â ôèðìó Metro Link äëÿ ïîëó÷åíèÿ äèñòðèáóòèâà Motif 2.1 äëÿ FreeBSD â ôîðìàòàõ ELF èëè a.out.  ýòîò äèñòðèáóòèâ âêëþ÷åíû: •
OSF/Motif manager, xmbind, panner, wsm.
• Ïàêåò ðàçðàáîò÷èêà ñ
uil, mrm, xm, xmcxx, ôàéëàìè include è Imake.
• Ñòàòè÷åñêèå è äèíàìè÷åñêèå áèáëèîòåêè (óêàæèòå
ELF äëÿ èñïîëüçîâàíèÿ ñ FreeBSD 3.0 è âûøå;
èëè a.out ïðè èñïîëüçîâàíèè FreeBSD 2.2.8 è ðàíåå). • Äåìîíñòðàöèîííûå ïðèëîæåíèÿ. • Ïðåôîðìàòèðîâàííûå ñòðàíèöû ñïðàâî÷íèêà.
Ïðè çàêàçå îáÿçàòåëüíî îòìåòüòå, ÷òî âàì òðåáóåòñÿ âåðñèÿ Motif èìåííî äëÿ FreeBSD! Metro Link òàêæå ïðåäëàãàåò âåðñèè äëÿ Linux. Îíè äîñòóïíû íà CDROM èëè äëÿ ñêà÷èâàíèÿ ïî FTP. Îáðàòèòåñü â ôèðìó Xi Graphics çà äèñòðèáóòèâîì Motif 2.0 äëÿ FreeBSD â ôîðìàòå a.out.  ýòîò äèñòðèáóòèâ âêëþ÷åíû: •
OSF/Motif manager, xmbind, panner, wsm.
• Ïàêåò ðàçðàáîò÷èêà ñ
uil, mrm, xm, xmcxx, ôàéëàìè include è Imake.
• Ñòàòè÷åñêèå è äèíàìè÷åñêèå áèáëèîòåêè (äëÿ èñïîëüçîâàíèÿ ñ
FreeBSD 2.2.8 è ðàíåå).
• Äåìîíñòðàöèîííûå ïðèëîæåíèÿ. • Îòôîðìàòèðîâàííûå ñòðàíèöû Ñïðàâî÷íèêà.
Ïðè çàêàçå îáÿçàòåëüíî óêàæèòå, ÷òî âàì òðåáóåòñÿ âåðñèÿ Motif èìåííî äëÿ FreeBSD! Xi Graphics òàêæå ïðåäëàãàåò âåðñèè äëÿ BSDI è Linux. Â íàñòîÿùåå âðåìÿ ýòî íàáîð èç 4 äèñêåò... â áóäóùåì ýòî áóäåò ñòàíäàðòíûé äèñòðèáóòèâ íà êîìïàêò-äèñêå, êàê èõ CDE.
49
Ãëàâà 6. Êîììåð÷åñêèå ïðèëîæåíèÿ
3. Ãäå ìîæíî êóïèòü CDE äëÿ FreeBSD? Ôèðìà Xi Graphics ïðåäëàãàëà CDE äëÿ FreeBSD, íî ñåé÷àñ ýòîò ïðîäóêò â ïðîäàæå îòñóòñòâóåò.
KDE (http://www.kde.org/) - ýòî ñâîáîäíî ðàñïðîñòðàíÿåìûé âàðèàíò äåñêòîïà äëÿ X11, êîòîðûé âî ìíîãîì ïîõîæ íà CDE. Âàì ìîæåò òàêæå ïðèãëÿíóòüñÿ xfce (http://www.xfce.org/). Êàê KDE, òàê è xfce ìîãóò áûòü íàéäåíû â êîëëåêöèè ïîðòîâ (http://www.FreeBSD.org/ports/).
4. Ñóùåñòâóþò ëè êîììåð÷åñêèå âûñîêîïðîèçâîäèòåëüíûå X-ñåðâåðû? Äà, ôèðìû Xi Graphics (http://www.xig.com/) è Metro Link (http://www.metrolink.com/) ïðåäëàãàþò ñâîé ïðîäóêò Accelerated-X äëÿ FreeBSD è äðóãèõ ñèñòåì íà áàçå Intel.
Metro Link ïðåäëàãàåò âûñîêîïðîèçâîäèòåëüíûé X-ñåðâåð, â êîòîðîì ïðåäóñìîòðåíà óïðîù¼ííàÿ ïðîöåäóðà êîíôèãóðèðîâàíèÿ ñ ïîìîùüþ íàáîðà óòèëèò FreeBSD äëÿ ðàáîòû ñ ïýêýäæàìè, ïîääåðæêà íåñêîëüêèõ âèäåîàäàïòåðîâ îäíîâðåìåííî è îí ïîñòàâëÿåòñÿ òîëüêî â áèíàðíîì âèäå, äîñòóïíîì ïî FTP. Íåëüçÿ íå îòìåòèòü, ÷òî Metro Link ïðîäà¼ò âñ¼ ýòî ïî î÷åíü äîñòóïíîé öåíå â 39 äîëëàðîâ. Metro Link ïðîäà¼ò òàêæå Motif äëÿ FreeBSD â ôîðìàòàõ ELF è a.out (ñìîòðèòå âûøå). Äîïîëíèòåëüíàÿ èíôîðìàöèÿ
WWW-ñåðâåð Metro Link (http://www.metrolink.com/) èëè àäðåñà ýëåêòðîííîé ïî÷òû îòäåëîâ ïðîäàæ (mailto:
[email protected]) è ïîääåðæêè
(mailto:
[email protected]). èëè òåëåôîíû (954) 938-0283 è +1 954 938-0283
Xi Graphics ïðåäëàãàåò âûñîêîïðîèçâîäèòåëüíûé X-ñåðâåð, êîòîðûé îáåñïå÷èâàåò ïðîñòóþ êîíôèãóðàöèþ, ïîääåðæêó íåñêîëüêèõ âèäåîàäàïòåðîâ è ïîñòàâëÿåòñÿ òîëüêî â áèíàðíîé ôîðìå, â ôîðìå ñòàíäàðòíîãî äèñòðèáóòèâà íà äèñêåòàõ äëÿ FreeBSD è Linux. Xi Graphics òàêæå ïðåäëàãàåò âûñîêîïðîèçâîäèòåëüíûé X-ñåðâåð ñ ïîääåðæêîé êîìïüþòåðîâ êëàññà laptop. Èìååòñÿ áåñïëàòíàÿ ”äåìîíñòðàöèîííàÿ” âåðñèÿ 5.0.
Xi Graphics òàêæå ïðåäëàãàåò Motif è CDE äëÿ FreeBSD (ñìîòðèòå âûøå). Äîïîëíèòåëüíàÿ èíôîðìàöèÿ
Xi Graphics WWW page (http://www.xig.com/) èëè
Sales (mailto:
[email protected]) èëè Support (mailto:
[email protected]) ïî email. èëè òåëåôîí (800) 946 7433 èëè +1 303 298-7478.
50
Ãëàâà 6. Êîììåð÷åñêèå ïðèëîæåíèÿ
5. Ñóùåñòâóþò ëè ÑÓÁÄ äëÿ FreeBSD? Äà! Îáðàòèòåñü ê ðàçäåëó Ïîñòàâùèêè ïðîãðàììíîãî îáåñïå÷åíèÿ
(http://www.FreeBSD.org/commercial/software_bycat.html#CATEGORY_DATABASE) íà âåá-ñåðâåðå FreeBSD. Òàêæå ïîñìîòðèòå ðàçäåë Áàçû äàííûõ (http://www.FreeBSD.org/ports/databases.html) Êîëëåêöèè ïîðòîâ.
6. Ìîæíî ëè çàïóñòèòü Oracle íà FreeBSD? Äà. Ðóêîâîäñòâî ïî íàñòðîéêå Linux-Oracle íà FreeBSD íàõîäèòñÿ ïî ñëåäóþùèì àäðåñàì: • •
http://www.scc.nl/~marcel/howto-oracle.html (http://www.scc.nl/~marcel/howto-oracle.html) http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-freebsd (http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-freebsd)
51
Ãëàâà 7. Ïðèêëàäíûå ïðîãðàììû 1. Èòàê, ãäå íàõîäÿòñÿ âñå ïðèêëàäíûå ïðîãðàììû? Ïîæàëóéñòà, çàãëÿíèòå íà ñòðàíèöó ïîðòîâ (http://www.FreeBSD.org/ports/index.html), ñîäåðæàùóþ èíôîðìàöèþ î ïðîãðàììíûõ ïðîäóêòàõ, ïåðåíåñ¼ííûõ âî FreeBSD. Íà äàííûé ìîìåíò â ýòîì ñïèñêå íàõîäèòñÿ áîëåå 12,300 ïðèëîæåíèé è îí åæåäíåâíî óâåëè÷èâàåòñÿ, òàê ÷òî ïî÷àùå òóäà çàãëÿäûâàéòå èëè ïîäïèøèòåñü íà ñïèñîê ðàññûëêè freebsd-announce, â êîòîðîì ïóáëèêóåòñÿ èíôîðìàöèÿ î ïîÿâëåíèè íîâûõ ïðèëîæåíèé. Áîëüøèíñòâî ïîðòîâ äîëæíû íîðìàëüíî ðàáîòàòü íà ñèñòåìàõ âåòîê 4.X è 5.X. Ïðè âûõîäå íîâîãî ðåëèçà FreeBSD â íåãî â êàòàëîã ports/ âêëþ÷àåòñÿ àêòóàëüíàÿ íà ìîìåíò âûõîäà êîëëåêöèÿ ïîðòîâ. Ìû òàêæå ïîääåðæèâàåì êîíöåïöèþ ”ïàêàäæà”, ÿâëÿþùåãîñÿ íå áîëåå ÷åì óïàêîâàííûì äèñòðèáóòèâîì â áèíàðíîé ôîðìå ñ íåêîòîðûìè âñòðîåííûìè âîçìîæíîñòÿìè ïî åãî íàñòðîéêå âî âðåìÿ óñòàíîâêè. Ïàêàäæ ìîæåò áûòü ëåãêî ïðîèíñòàëëèðîâàí è äåèíñòàëëèðîâàí ñíîâà áåç óãëóáëåíèÿ â äåòàëè òîãî, êàêèå ôàéëû äîëæíû áûòü èíñòàëëèðîâàíû. Èñïîëüçóéòå ìåíþ óñòàíîâêè ïàêàäæåé â /stand/sysinstall (â ïóíêòå ìåíþ post-configuration) èëè çàïóñêàéòå pkg_add(1) ñ óêàçàíèåì êîíêðåòíûõ ôàéëîâ ñ ïàêàäæàìè, êîòîðûå âû õîòèòå ïðîèíñòàëëèðîâàòü. Ôàéëû ñ ïàêàäæàìè, êàê ïðàâèëî, èäåíòèôèöèðóþòñÿ ïî èõ ñóôôèêñó .tgz, à äëÿ òåõ, êòî èìååò äèñòðèáóòèâ ñèñòåìû íà êîìïàêò-äèñêå, ïðåäíàçíà÷åí êàòàëîã packages/All, ñîäåðæàùèé âñå ýòè ôàéëû. Îíè òàêæå ìîãóò áûòü ïîëó÷åíû ïî ñåòè äëÿ ðàçíûõ âåðñèé FreeBSD ñî ñëåäóþùèõ ñåðâåðîâ: äëÿ 4.X-RELEASE/4-STABLE
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/ (ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/) äëÿ 5.X-CURRENT
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/ (ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/) èëè ñ áëèæàéøåãî ê âàì çåðêàëüíîãî ñåðâåðà. Èìåéòå â âèäó, ÷òî íå âñå ïîðòû ìîãóò áûòü äîñòóïíû â âèäå ïàêàäæåé, òàê êàê ïîñòîÿííî èä¼ò äîáàâëåíèå íîâûõ. Íåïëîõî âðåìÿ îò âðåìåíè ïðîâåðÿòü, êàêèå ïàêàäæè äîñòóïíû íà îñíîâíîì ñåðâåðå ftp.FreeBSD.org (ftp://ftp.FreeBSD.org/pub/FreeBSD/).
2. Ïî÷åìó ghostscript âûäà¼ò ìàññó ñîîáùåíèé íà ìî¼ì 386/486SX. Ó âàñ íåò ñîïðîöåññîðà, âåðíî? Âàì íóæíî äîáàâèòü â ÿäðî äðóãîé ýìóëÿòîð ñîïðîöåññîðà; ýòî äåëàåòñÿ äîáàâëåíèåì ñëåäóþùåé ñòðîêè â ôàéë êîíôèãóðàöèè ÿäðà è ïîñëåäóþùåé åãî ïåðåêîìïèëÿöèåé.
options GPL_MATH_EMULATE
Çàìå÷àíèå: Åñëè âû ïîñòóïàåòå òàêèì îáðàçîì, âàì íóæíî áóäåò óáðàòü îïöèþ MATH_EMULATE.
52
Ãëàâà 7. Ïðèêëàäíûå ïðîãðàììû
3. Êàê íàñòðîèòü INN (Internet News) íà ìîåé ìàøèíå? Ïîñëå óñòàíîâêè ïàêàäæà èëè ïîðòà news/inn äëÿ íà÷àëà çàãëÿíèòå íà ñòðàíè÷êó Äýéâà Áýððà (http://www.cis.ohio-state.edu/~barr/INN.html) (Dave Barr), ïîñâÿù¼ííóþ INN, ãäå âû íàéä¼òå ñîîòâåòñòâóþùèé FAQ.
4. Êàêóþ âåðñèþ Microsoft FrontPage ÿ äîëæåí èìåòü? Èñïîëüçóé ïîðò, äóðà÷îê! Ñðåäè ïîðòîâ èìååòñÿ www/apache13-fp, ãîòîâàÿ ê èñïîëüçîâàíèþ âåðñèÿ Apache ñ ïîääåðæêîé FrontPage.
5. Ïîääåðæèâàåò ëè FreeBSD ñðåäó Java? Äà. Ïîñåòèòå ñòðàíèöó http://www.FreeBSD.org/java/ (http://www.FreeBSD.org/java/index.html).
6. Ïî÷åìó íåêîòîðûé ïîðò íå êîìïèëèðóåòñÿ íà ìîåé ìàøèíå ñ 3.X-STABLE? Åñëè âû èñïîëüçóåòå FreeBSD âåðñèè, çíà÷èòåëüíî îòñòàþùåé îò -CURRENT èëè -STABLE, âàì íóæåí ïàêåò îáíîâëåíèÿ, êîòîðûé ìîæíî íàéòè ïî àäðåñó http://www.FreeBSD.org/ports/ (http://www.FreeBSD.org/ports/index.html). Åñëè âû îòñëåæèâàåòå âñå èçìåíåíèÿ, òî, ñêîðåå âñåãî, êòî-òî âí¼ñ èçìåíåíèÿ â ïîðò, òàê ÷òî îí ðàáîòàåò â -CURRENT, íî íå ðàáîòàåò â -STABLE. Òàê êàê ïðåäïîëàãàåòñÿ, ÷òî êîëëåêöèÿ ïîðòîâ äîëæíà ðàáîòàòü êàê â âåòêå -CURRENT, òàê è â âåòâè -STABLE, òî, ïîæàëóéñòà, ïîøëèòå ñîîáùåíèå îá ýòîé îøèáêå ñ ïîìîùüþ êîìàíäû send-pr(1).
7. Ãäå íàéòè ld.so? a.out-ïðèëîæåíèÿ, òàêèå, êàê Netscape Navigator, òðåáóþò íàëè÷èÿ a.out-áèáëèîòåê. Ïî óìîë÷àíèþ âåðñèè FreeBSD, ïîñòðîåííûå íà ELF-áèáëèîòåêàõ, èõ íå óñòàíàâëèâàþò. Âû ïîëó÷èòå ñîîáùåíèÿ îá îòñóòñòâèè /usr/libexec/ld.so, åñëè ýòî òàê äëÿ âàøåé ñèñòåìû. Ýòè áèáëèîòåêè èìåþòñÿ â âèäå äîáàâëåíèÿ â ïàêåòå compat22. Âîñïîëüçóéòåñü sysinstall(8) äëÿ åãî óñòàíîâêè. Âû ìîæåòå òàêæå óñòàíîâèòü èõ èç èñõîäíîãî êîäà FreeBSD: # cd /usr/src/lib/compat/compat22 # make install clean
Åñëè âû õîòèòå óñòàíîâèòü ïîñëåäíèå áèáëèîòåêè compat22 ïðè âûïîëíåíèè make world, òî îòðåäàêòèðóéòå /etc/make.conf, âêëþ÷èâ òóäà ñòðîêó COMPAT22=YES. Ñòàðûå áèáëèîòåêè ñîâìåñòèìîñòè ìåíÿþòñÿ ðåäêî, åñëè âîîáùå ìåíÿþòñÿ, òàê ÷òî ýòî, â îáùåì-òî, è íå íóæíî. Òàêæå ïîñìîòðèòå ôàéëû ERRATA äëÿ 3.1-RELEASE è 3.2-RELEASE.
8. ß îáíîâèë èñõîäíûå òåêñòû, êàê òåïåðü îáíîâèòü óñòàíîâëåííûå ïîðòû? Ñ FreeBSD íå ïîñòàâëÿåòñÿ èíñòðóìåíò îáíîâëåíèÿ ïîðòîâ, íî åñòü íåñêîëüêî ïðîãðàìì, íåñêîëüêî îáëåã÷àþùèõ ýòîò ïðîöåññ. Âû ìîæåòå òàêæå óñòàíîâèòü äîïîëíèòåëüíûå èíñòðóìåíòû äëÿ óïðîùåíèÿ ðàáîòû ñ ïîðòàìè. Êîìàíäà pkg_version(1) ìîæåò ãåíåðèðîâàòü ñêðèïò, êîòîðûé îáíîâèò óñòàíîâëåííûå ïîðòû äî ïîñëåäíèõ âåðñèé, ïðèñóòñòâóþùèõ â äåðåâå ïîðòîâ.
53
Ãëàâà 7. Ïðèêëàäíûå ïðîãðàììû # pkg_version -c > /tmp/myscript
Ïîëó÷àåìûé ñêðèïò íåîáõîäèìî îòðåäàêòèðîâàòü âðó÷íóþ ïåðåä åãî èñïîëüçîâàíèåì. Ïîñëåäíèå âåðñèè êîìàíäû pkg_version(1) çàñòàâëÿþò äåëàòü ýòî, ïîìåùàÿ â íà÷àëî ñêðèïòà êîìàíäó exit(1). Âû äîëæíû ñîõðàíèòü âûâîäèìûé ðåçóëüòàò ðàáîòû ñêðèïòà, òàê êàê â íåì îòìå÷àþòñÿ ïàêàäæè, çàâèñÿùèå îò òåõ, ÷òî áûëè îáíîâëåíû. Èõ òàêæå ìîæåò ïîòðåáîâàòüñÿ îáíîâèòü. Îáû÷íûé ñëó÷àé, êîãäà òðåáóåòñÿ îáíîâëåíèå, ýòî ñëó÷àé èçìåíåíèÿ íîìåðîâ âåðñèè äèíàìè÷åñêîé áèáëèîòåêè, òàê ÷òî ïîðòû, èñïîëüçóþùèå ýòó áèáëèîòåêó, äîëæíû áûòü ïåðåêîìïèëèðîâàíû äëÿ èñïîëüçîâàíèÿ íîâîé âåðñèè.
Çàìå÷àíèå: Íà÷èíàÿ ñ FreeBSD 5.0 (è äëÿ áîëåå ïîçäíèõ âåðñèé), pkg_version(1) áîëåå íå ïîääåðæèâàåò ïàðàìåòð -c.
Åñëè ó âàñ äîñòàòî÷íûé îáúåì äèñêîâîãî ïðîñòðàíñòâà, âû ìîæåòå èñïîëüçîâàòü èíñòðóìåíò portupgrade äëÿ àâòîìàòèçàöèè âñåãî ýòîãî.  portupgrade âêëþ÷åíû ðàçëè÷íûå óòèëèòû äëÿ óïðîùåíèÿ ðàáîòû ñ ïàêàäæàìè. Îí íàõîäèòñÿ â sysutils/portupgrade. Òàê êàê îí íàïèñàí íà ÿçûêå Ruby, òî âðÿä ëè portupgrade ìîæåò áûòü êàíäèäàòîì íà âêëþ÷åíèå â ïîñòàâêó FreeBSD. Îäíàêî ýòî âîâñå íå çíà÷èò, ÷òî åãî íåëüçÿ èñïîëüçîâàòü. Åñëè âàøà ñèñòåìà íàõîäèòñÿ â ðàáîòå ïîñòîÿííî, äëÿ ñîçäàíèÿ ñïèñêà ïîðòîâ, êîòîðûì ìîæåò ïîòðåáîâàòüñÿ îáíîâëåíèå, êàæäóþ íåäåëþ, ìîæíî èñïîëüçîâàòü ñèñòåìó periodic(8), çàäàâ weekly_status_pkg_enable="YES" â ôàéëå /etc/periodic.conf.
9. Ïî÷åìó âîçìîæíîñòè /bin/sh òàê ìàëû? Ïî÷åìó áû âî FreeBSD íå èñïîëüçîâàòü bash èëè êàêîé-ëèáî äðóãîé êîìàíäíûé ïðîöåññîð? Ïîòîìó ÷òî â ñòàíäàðòå POSIX ñêàçàíî, ÷òî âñå êîìàíäíûå ïðîöåññîðû äîëæíû âåñòè ñåáÿ òàê æå, êàê
shell. Áîëåå ïîäðîáíûé îòâåò çàêëþ÷àåòñÿ â ñëåäóþùåì: ìíîãèì òðåáóåòñÿ, ÷òîáû ðàçðàáàòûâàåìûå ñêðèïòû äëÿ êîìàíäíîãî ïðîöåññîðà áûëè ïåðåíîñèìû ìåæäó ìíîãèìè ñèñòåìàìè. Èìåííî ïîýòîìó â POSIX î÷åíü ïîäðîáíî îïèñàí êîìàíäíûé ïðîöåññîð è íàáîð óòèëèò. Áîëüøèíñòâî ñêðèïòîâ ïèøóòñÿ íà ÿçûêå ïðîöåññîðà Bourne shell, ê òîìó æå íåêîòîðûå âàæíûå ïðîãðàììíûå âûçîâû (make(1), system(3), popen(3) è èõ àíàëîãè íà ÿçûêàõ ñêðèïòîâ âûñîêîãî óðîâíÿ, òàêèõ êàê Perl èëè Tcl) ïðåäïîëàãàþò äëÿ èíòåðïðåòàöèè êîìàíä èñïîëüçîâàíèå èìåííî Bourne shell. Òàê êàê Bourne shell èñïîëüçóåòñÿ ñòîëü øèðîêî è ÷àñòî, òî î÷åíü âàæíî, ÷òîáû îí ñòàðòîâàë î÷åíü áûñòðî, åãî ïîâåäåíèå áûëî ñòðîãî ðåãëàìåíòèðîâàíî è ïðè ýòîì ïîòðåáíîñòè â îïåðàòèâíîé ïàìÿòè áûëè ìàëû.  èìåþùåéñÿ ðåàëèçàöèè ìû ïðèëîæèëè ìàêñèìóì óñèëèé äëÿ âîïëîùåíèÿ â æèçíü âñåõ ýòèõ òðåáîâàíèé îäíîâðåìåííî. Äëÿ òîãî, ÷òîáû ñîõðàíèòü /bin/sh íåáîëüøèì ïî ðàçìåðó, ìû íå âêëþ÷èëè ìíîãèå èç îáû÷íûõ âîçìîæíîñòåé, êîòîðûå èìåþòñÿ â äðóãèõ êîìàíäíûõ ïðîöåññîðàõ. Îäíàêî â Êîëëåêöèþ Ïîðòîâ âêëþ÷åíû êîìàíäíûå ïðîöåññîðû, îáëàäàþùèå ãîðàçäî áîëüøèìè âîçìîæíîñòÿìè, òàêèå, êàê bash, scsh, tcsh è zsh. (Âû ìîæåòå ñàìè ñðàâíèòü èñïîëüçîâàíèå ïàìÿòè âñåìè ýòèìè îáîëî÷êàìè, ïîñìîòðåâ â êîëîíêè ”VSZ” è ”RSS” âûâîäà êîìàíäû ps -u).
54
Ãëàâà 7. Ïðèêëàäíûå ïðîãðàììû
10. Ïî÷åìó Netscape è Opera çàïóñêàþòñÿ òàê äîëãî? Îáû÷íî ïðîáëåìà çàêëþ÷àåòñÿ â òîì, ÷òî íà âàøåé ìàøèíå íåïðàâèëüíî íàñòðîåí DNS. È Netscape, è Opera ïðè çàïóñêå îáðàùàþòñÿ ê DNS. Áðàóçåð íå ïîÿâèòñÿ íà âàøåì ðàáî÷åì ñòîëå, ïîêà ïðîãðàììà ëèáî íå ïîëó÷èò îòâåò íà ñâîé çàïðîñ, ëèáî íå îïðåäåëèò, ÷òî ñèñòåìà ê ñåòè íå ïîäêëþ÷åíà.
11. ß îáíîâèë íåêîòîðûå ðàçäåëû Êîëëåêöèè Ïîðòîâ ïðè ïîìîùè CVSup, è òåïåðü ìíîãèå ïîðòû ïåðåñòàëè ñòðîèòüñÿ ñî ñòðàííûìè äèàãíîñòè÷åñêèìè ñîîáùåíèÿìè! ×òî ñëó÷èëîñü? Êîëëåêöèÿ Ïîðòîâ êàêèì-òî îáðàçîì îêàçàëàñü íåðàáîòîñïîñîáíîé? Åñëè âû îáíîâëÿåòå Êîëëåêöèþ Ïîðòîâ òîëüêî ÷àñòè÷íî, èñïîëüçóÿ îäèí èç áîëåå ìåëêèõ íàáîðîâ CVSup, îáõîäÿñü áåç CVSup-íàáîðà ports-all, òî âû äîëæíû âñåãäà îáíîâëÿòü òàêæå è íàáîð ports-base! Ïðè÷èíû îïèñàíû â Ðóêîâîäñòâå (../handbook/cvsup.html#CVSUP-COLLEC-PBASE-WARN).
12. Êàê ñîçäàòü àóäèî-CD èç ôàéëîâ MIDI? Äëÿ ñîçäàíèÿ àóäèî-CD èç MIDI-ôàéëîâ ñíà÷àëà óñòàíîâèòå èç ïîðòîâ ïðîãðàììó audio/timidity++, çàòåì óñòàíîâèòå íàáîð ïàò÷åé GUS îò Ýðèêà Óýëøà (Eric A. Welsh), äîñòóïíûé ïî àäðåñó (http://www.stardate.bc.ca/eawpatches/html/default.htm). Ïîñëå êîððåêòíîé óñòàíîâêè timidity++ midi-ôàéëû ìîãóò áûòü ïðåîáðàçîâàíû â wav-ôàéëû ñëåäóþùåé êîìàíäîé: % timidity -Ow -s 44100 -o /tmp/juke/01.wav 01.mid
wav-ôàéëû çàòåì ìîãóò áûòü ïðåîáðàçîâàíû â äðóãèå ôîðìàòû èëè çàïèñàíû êàê àóäèî-CD, ÷òî îïèñàíî â Ðóêîâîäñòâå FreeBSD.
55
Ãëàâà 8. Êîíôèãóðèðîâàíèå ÿäðà 1. ß õî÷ó èçìåíèòü íàñòðîéêè ÿäðà. Ýòî ñëîæíî? Âîâñå íåò! Îáðàòèòåñü ê ñîîòâåòñòâóþùåìó ðàçäåëó (../handbook/kernelconfig.html) Ðóêîâîäñòâà, êîòîðûé ïîñâÿù¼í ýòîìó âîïðîñó.
Çàìå÷àíèå: Ìû ðåêîìåíäóåòñÿ ñîõðàíèòü êîïèþ âàøåãî íîâîãî ôàéëà ÿäðà /kernel â ôàéë kernel.ÃÃÌÌÄÄ ïîñëå òîãî, êàê âû ïîëó÷èòå íîðìàëüíî ðàáîòàþùåå ÿäðî. Òàêæå ñäåëàéòå ðåçåðâíóþ êîïèþ íîâîãî êàòàëîãà /modules â êàòàëîã /modules.ÃÃÌÌÄÄ.  òàêîì ñëó÷àå, åñëè âû èñïîðòèòå ÷òî-ëèáî â âàøåì êîíôèãóðàöèîííîì ôàéëå, òî ñìîæåòå çàãðóçèòü ðåçåðâíîå ÿäðî, âìåñòî òîãî, ÷òîáû íà÷èíàòü âñ¼ ñíîâà ñ kernel.GENERIC. Ýòî, â ÷àñòíîñòè, èìååò ñìûñë, åñëè âû ïðîèçâîäèòå çàãðóçêó ñèñòåìû ñ êîíòðîëëåðà, êîòîðûé íå ïîääåðæèâàåòñÿ â ñòàíäàðòíîì ÿäðå GENERIC.
2. ß íå ìîãó ñêîìïèëèðîâàòü ÿäðî. Îòñóòñòâóåò _hw_float.Ïî÷åìó? Ïîçâîëüòå ìíå óãàäàòü. Âû, íàâåðíîå, óäàëèëè npx0 (ïîñìîòðèòå ñïðàâêó ïî npx(4)) èç âàøåãî ôàéëà êîíôèãóðàöèè ÿäðà, ïîòîìó ÷òî ó âàñ íåò ñîïðîöåññîðà, äà? À âîò è íåïðàâèëüíî! :-) Ñòðîêà npx0 ÎÁßÇÀÒÅËÜÍÀ. Äàæå åñëè ó âàñ íåò ìàòåìàòè÷åñêîãî ñîïðîöåññîðà, âû äîëæíû âêëþ÷èòü ïîääåðæêó óñòðîéñòâà npx0.
3. Ïî÷åìó ìî¼ ÿäðî òàêîå áîëüøîå (áîëüøå 10ÌÁ)? Ñêîðåå âñåãî, âû êîìïèëèðîâàëè ÿäðî â îòëàäî÷íîì ðåæèìå . ßäðà, ïîñòðîåííûå â ýòîì ðåæèìå, ñîäåðæàò ìíîãî ñèìâîëüíîé èíôîðìàöèè, êîòîðàÿ èñïîëüçóåòñÿ äëÿ îòëàäêè è ñèëüíî óâåëè÷èâàåò ðàçìåð ÿäðà. Çàìåòüòå, ÷òî, åñëè âû ðàáîòàåòå ñ FreeBSD âåðñèè 3.0 è ñòàðøå, òî óìåíüøåíèÿ ïðîèçâîäèòåëüíîñòè ïðè èñïîëüçîâàíèè îòëàäî÷íîãî ÿäðà íåò èëè îíî íåçíà÷èòåëüíî, îäíàêî îòëàäî÷íîå ÿäðî ïîëåçíî èìåòü ïîä ðóêîé íà ñëó÷àé àâàðèéíîãî çàâåðøåíèÿ ðàáîòû ñèñòåìû. Îäíàêî, åñëè âû èñïûòûâàåòå íåõâàòêó äèñêîâîãî ïðîñòðàíñòâà èëè ïðîñòî íå õîòèòå èñïîëüçîâàòü îòëàäî÷íîå ÿäðî, ïðîâåðüòå, ÷òî èìåþò ìåñòî ñëåäóþùèå äâå âåùè: •  êîíôèãóðàöèîííîì ôàéëå âàøåãî ÿäðà íåò ñòðî÷êè, èìåþùåé òàêîé âèä:
makeoptions DEBUG=-g
• Âû íå çàïóñêàëè óòèëèòó
config(8) ñ îïöèåé -g.
Îáå èç âûøåïåðå÷èñëåííûõ ñèòóàöèé ïðèâåäóò ê ïîñòðîåíèþ ÿäðà â îòëàäî÷íîì ðåæèìå. Åñëè æå âû òî÷íî ñëåäóåòå óêàçàííûì øàãàì, òî ñìîæåòå ïîñòðîèòü îáû÷íîå ÿäðî è çàìåòèòå çíà÷èòåëüíîå óìåíüøåíèå åãî ðàçìåðà; áîëüøèíñòâî ÿäåð èìåþò ðàçìåð îò 1.5ÌÁ äî 2ÌÁ.
56
Ãëàâà 8. Êîíôèãóðèðîâàíèå ÿäðà
4. Ïî÷åìó ïîÿâëÿþòñÿ êîíôëèêòû ïðåðûâàíèé ïðè âêëþ÷åíèè ïîääåðæêè ìíîãîïîðòîâûx êîììóíèêàöèîííûõ àäàïòåðîâ. Êîãäà ÿ êîìïèëèðóþ ÿäðî ñ ïîääåðæêîé ìíîãîïîðòîâûõ êîììóíèêàöèîííûõ àäàïòåðîâ, ñîîáùàåòñÿ, ÷òî òîëüêî ïåðâûé ïîðò áóäåò òåñòèðîâàòüñÿ, à âñå îñòàëüíûå ïðîïóñêàþòñÿ èç-çà êîíôëèêòîâ ïðåðûâàíèé. Êàê ýòî èñïðàâèòü? Ïðîáëåìà ñîñòîèò â òîì, ÷òî âî FreeBSD âñòðîåí êîä, ïðåäîõðàíÿþùèé ÿäðî îò àïïàðàòíûõ è ïðîãðàììíûõ êîíôëèêòîâ. Âàì íóæíî óáðàòü óêàçàíèÿ IRQ íà âñåõ ïîðòàõ, êðîìå îäíîãî. Íàïðèìåð:
# # Âûñîêîñêîðîñòíîé ìíîãîïîðòîâûé êîììóíèêàöèîííûé àäàïòåð - 16550 UARTS # device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr
5. Ïî÷åìó ìíå íå óäà¼òñÿ îòêîìïèëèðîâàòü íè îäèí âàðèàíò ÿäðà, äàæå GENERIC? Åñòü íåñêîëüêî ïðè÷èí, ïðèâîäÿùèõ ê âîçíèêíîâåíèþ ýòîé ïðîáëåìû. Âîò îíè, â ñëó÷àéíîì ïîðÿäêå: • Âû íå èñïîëüçóåòå íîâûå öåëè make buildkernel è make installkernel, è âàøå äåðåâî èñõîäíûõ
òåêñòîâ îòëè÷àåòñÿ îò òîãî, êîòîðîå èñïîëüçîâàëîñü äëÿ ïîñòðîåíèÿ ðàáîòàþùåé â äàííûé ìîìåíò ñèñòåìû (íàïðèìåð, âû âûïîëíÿåòå ïîñòðîåíèå 4.3-RELEASE íà ñèñòåìå 4.0-RELEASE). Åñëè âû ïûòàåòåñü âûïîëíèòü îáíîâëåíèå, òî, ïîæàëóéñòà, ïðî÷èòàéòå ôàéë /usr/src/UPDATING, îáðàòèâ îñîáîå âíèìàíèå íà ðàçäåë ”COMMON ITEMS” â åãî êîíöå. • Âû èñïîëüçóåòå íîâûå öåëè make buildkernel è make installkernel, íî âûïîëíåíèå öåëè make
buildworld íå áûëî çàâåðøåíî. Ïîëíîå è êîððåêòíîå âûïîëíåíèå öåëè make buildkernel çàâèñèò îò ôàéëîâ, ãåíåðèðóþùèõñÿ ïðè âûïîëíåíèè öåëè make buildworld. • Äàæå åñëè âû ïûòàåòåñü ïîñòðîèòü
FreeBSD-STABLE, âîçìîæíî, ÷òî âû ñêà÷àëè äåðåâî èñõîäíûõ òåêñòîâ â ìîìåíò, êîãäà îíî ìîäèôèöèðîâàëîñü èëè áûëî íåðàáîòîñïîñîáíî ïî äðóãèì ïðè÷èíàì; àáñîëþòíî ãàðàíòèðóåòñÿ ïîñòðîåíèå òîëüêî ðåëèçîâ, õîòÿ â áîëüøèíñòâå ñëó÷àåâ FreeBSD-STABLE ñòðîèòñÿ áåç ïðîáëåì. Åñëè âû åù¼ ýòîãî íå ñäåëàëè, ïîïðîáóéòå ñãðóçèòü äåðåâî èñõîäíûõ òåêñòîâ ïîâòîðíî è ïîñìîòðåòü, ðàçðåøèëàñü ëè ïðîáëåìà. Ïîïðîáóéòå èñïîëüçîâàòü äðóãîé ñåðâåð â ñëó÷àå, åñëè åñòü ïðîáëåìû ñ òåì, êîòîðûé âû èñïîëüçóåòå ñåé÷àñ.
6. Êàêèì îáðàçîì ìîæíî îïðåäåëèòü, êàêîé ïëàíèðîâùèê èñïîëüçóåòñÿ â ðàáîòàþùåé ñèñòåìå? Ïðîñòî íàáåðèòå: # sysctl kern.quantum
Åñëè âû óâèäèòå
unknown oid ’kern.quantum’ ýòî çíà÷èò, ÷òî èñïîëüçóåòñÿ ïëàíèðîâùèê ”SCHED_ULE”, îäíàêî, åñëè âû óâèäèòå
kern.quantum: 100000
57
Ãëàâà 8. Êîíôèãóðèðîâàíèå ÿäðà
òî âûáðàí îðèãèíàëüíûé ïëàíèðîâùèê ”SCHED_4BSD”.
7. ×òî òàêîå ’kern.quantum’? ”kern.quantum” îïðåäåëÿåò ìàêñèìàëüíîå êîëè÷åñòâî òàêòîâ, êîòîðîå ïðîöåññ ìîæåò âûïîëíÿòüñÿ, íå áóäó÷è ïðåðâàííûì. Ýòîò ïàðàìåòð ñïåöèôè÷åí äëÿ ïëàíèðîâùèêà 4BSD, òàê ÷òî âû ìîæåòå èñïîëüçîâàòü åãî íàëè÷èå äëÿ îïðåäåëåíèÿ òèïà èñïîëüçóåìîãî ïëàíèðîâùèêà.
58
Ãëàâà 9. Äèñêè, ôàéëîâûå ñèñòåìû è íà÷àëüíûå çàãðóç÷èêè 1. Êàê äîáàâèòü â ñèñòåìó íîâûé äèñê? Îáðàòèòåñü ê Ðóêîâîäñòâó ïî ôîðìàòèðîâàíèþ äèñêîâ íà ñåðâåðå www.FreeBSD.org
(../../articles/formatting-media/index.html). 2. Êàê ïåðåíåñòè ñèñòåìó íà áîëüøîé íîâûé äèñê? Ñàìûé ëó÷øèé ñïîñîá çàêëþ÷àåòñÿ â ïåðåóñòàíîâêå ÎÑ íà íîâûé äèñê è ïîñëåäóþùåì ïåðåíîñå äàííûõ ïîëüçîâàòåëåé. Ýòî î÷åíü ðåêîìåíäóåòñÿ äåëàòü, åñëè âû ñëåäîâàëè âåòêå -STABLE â òå÷åíèå áîëåå îäíîãî ðåëèçà èëè îáíîâëÿëè ðåëèç, à íå óñòàíàâëèâàëè íîâûé. Âû ìîæåòå óñòàíîâèòü ïðîãðàììó booteasy íà îáà äèñêà ñ ïîìîùüþ êîìàíäû boot0cfg(8) è âûïîëíÿòü çàãðóçêó ñ ëþáîãî èç íèõ äî òåõ ïîð, ïîêà íå áóäåòå óäîâëåòâîðåíû íîâîé êîíôèãóðàöèåé ñèñòåìû. Ïðîïóñòèòå ñëåäóþùèé àáçàö, ÷òîáû ïåðåéòè ê âîïðîñó ïåðåíîñà äàííûõ ïîñëå ýòîé îïåðàöèè. Åñëè âû ðåøèëè íå äåëàòü íîâîé óñòàíîâêè, òî âàì íóæíî ðàçáèòü íà ðàçäåëû è ðàçìåòèòü íîâûé äèñê ñ ïîìîùüþ /stand/sysinstall èëè fdisk(8) è disklabel(8). Âû òàêæå äîëæíû óñòàíîâèòü íà îáà äèñêà ïðîãðàììó booteasy ñ ïîìîùüþ boot0cfg(8), ÷òîáû èìåòü âîçìîæíîñòü âûïîëíÿòü çàãðóçêó êàê ñòàðîé, òàê è íîâîé ñèñòåìû ïîñëå âûïîëíåíèÿ êîïèðîâàíèÿ. Îáðàòèòåñü ê ðóêîâîäñòâó ïî ôîðìàòèðîâàíèþ íîñèòåëåé (../../articles/formatting-media/index.html) çà ïîäðîáíûì îïèñàíèåì ýòîãî ïðîöåññà. Èòàê, ïîñëå ïîäãîòîâêè äèñêà âû ìîæåòå ïåðåíîñèòü äàííûå. Ê ñîæàëåíèþ, âû íå ìîæåòå ïðîñòî ñêîïèðîâàòü äàííûå. Òàêèå âåùè, êàê ôàéëû óñòðîéñòâ (â êàòàëîãå /dev), ôëàãè è ññûëêè áóäóò ýòîìó ìåøàòü. Âàì íóæíî èñïîëüçîâàòü èíñòðóìåíòû, êîòîðûå ðàáîòàþò ñ òàêèìè ñëó÷àÿìè, à èìåííî dump(8). Õîòÿ ðåêîìåíäóåòñÿ âûïîëíÿòü ïåðåíîñ äàííûõ â îäíîïîëüçîâàòåëüñêîì ðåæèìå, ýòî íå îáÿçàòåëüíîå óñëîâèå. Âû íå äîëæíû èñïîëüçîâàòü íè÷åãî, êðîìå dump(8) è restore(8) äëÿ ïåðåíîñà êîðíåâîé ôàéëîâîé ñèñòåìû. Êîìàíäà tar(1) ìîæåò ñðàáîòàòü, à ìîæåò è íå ñðàáîòàòü. Òàêæå âû äîëæíû èñïîëüçîâàòü dump(8) è restore(8) ïðè ïåðåíîñå îäíîãî ðàçäåëà â äðóãîé ïóñòîé ðàçäåë. Ïîñëåäîâàòåëüíîñòü øàãîâ ïðè èñïîëüçîâàíèè ïðîãðàììû dump äëÿ ïåðåíîñà äàííûõ ðàçäåëà â íîâûé ðàçäåë òàêîâà:
1.
âûïîëíèòå êîìàíäó newfs íàä íîâûì ðàçäåëîì.
2.
ñìîíòèðóéòå åãî âî âðåìåííûé êàòàëîã.
3.
ïåðåéäèòå â ýòîò êàòàëîã.
4.
Âûïîëíèòå êîìàíäó dump íàä ñòàðûì ðàçäåëîì, íàïðàâèâ âûâîä â íîâûé ðàçäåë.
Íàïðèìåð, åñëè âû ñîáèðàåòåñü ïåðåíåñòè êîðíåâóþ ôàéëîâóþ ñèñòåìó íà óñòðîéñòâî /dev/ad1s1a ñ èñïîëüçîâàíèåì êàòàëîãà /mnt â êà÷åñòâå âðåìåííîé òî÷êè ìîíòèðîâàíèÿ, òî ýòî äåëàåòñÿ òàê: # # # #
newfs /dev/ad1s1a mount /dev/ad1s1a /mnt cd /mnt dump 0af - / | restore xf -
59
Ãëàâà 9. Äèñêè, ôàéëîâûå ñèñòåìû è íà÷àëüíûå çàãðóç÷èêè
Ïåðåðàçáèåíèå ðàçäåëîâ ñ èñïîëüçîâàíèåì dump òðåáóåò íåñêîëüêî áîëüøå óñèëèé. Äëÿ îáúåäèíåíèÿ ðàçäåëà òèïà /var ñ åãî âûøåñòîÿùèì ðàçäåëîì, ñîçäàéòå íîâûé ðàçäåë, äîñòàòî÷íî áîëüøîé äëÿ ðàçìåùåíèÿ èõ îáîèõ, ïåðåìåñòèòå âûøåñòîÿùèé ðàçäåë òàê, êàê ýòî îïèñàíî âûøå, à çàòåì ïåðåìåñòèòå íèæåñòîÿùèé ðàçäåë â ïóñòîé êàòàëîã, ñîçäàííûé ïðè ïåðâîì ïåðåìåùåíèè: # # # # # #
newfs /dev/ad1s1a mount /dev/ad1s1a /mnt cd /mnt dump 0af - / | restore xf cd var dump 0af - /var | restore xf -
Äëÿ îòäåëåíèÿ êàòàëîãà îò âûøåñòîÿùåãî, ñêàæåì, äëÿ ðàçìåùåíèÿ /var â ñîáñòâåííîì ðàçäåëå, êîòîðîãî íå áûëî, ñîçäàéòå îáà ðàçäåëà, çàòåì ñìîíòèðóéòå íèæåñòîÿùèé ðàçäåë â ïîäõîäÿùèé êàòàëîã âî âðåìåííóþ òî÷êó ìîíòèðîâàíèÿ, à çàòåì ïåðåìåñòèòå ñòàðûé åäèíûé ðàçäåë: # # # # # # #
newfs /dev/ad1s1a newfs /dev/ad1s1d mount /dev/ad1s1a /mnt mkdir /mnt/var mount /dev/ad1s1d /mnt/var cd /mnt dump 0af - / | restore xf -
Âû ìîæåòå èñïîëüçîâàòü cpio(1), pax(1), tar(1) âìåñòî dump(8) äëÿ äàííûõ ïîëüçîâàòåëåé. Íà ìîìåíò íàïèñàíèÿ ýòîãî äîêóìåíòà áûëî èçâåñòíî, ÷òî îíè òåðÿþò èíôîðìàöèþ î ôëàãàõ ôàéëîâ, òàê ÷òî èñïîëüçóéòå èõ ñ îñòîðîæíîñòüþ.
3. Íå óãðîæàåò ëè ðåæèì ”dangerously dedicated” ìîåìó çäîðîâüþ?  ïðîöåññå óñòàíîâêè âû ìîæåòå âûáðàòü äâà ðàçëè÷íûõ ìåòîäà ðàçáèåíèÿ âàøåãî äèñêà (äèñêîâ). Ïî óìîë÷àíèþ ýòî äåëàåòñÿ â ðåæèìå ñîâìåñòèìîñòè ñ äðóãèìè îïåðàöèîííûìè ñèñòåìàìè íà ýòîé æå ìàøèíå ñ èñïîëüçîâàíèåì çàïèñåé â òàáëèöå ðàçäåëîâ fdisk (òî, ÷òî íàçûâàåòñÿ ”ñëàéñîì” âî FreeBSD), ñî ñëàéñîì (ðàçäåëîì), âûäåëåííûì FreeBSD. Îïöèîíàëüíî, âû ìîæåòå âûáðàòü óñòàíîâêó ìåíåäæåðà çàãðóçêè äëÿ ïåðåêëþ÷åíèÿ ìåæäó îïåðàöèîííûìè ñèñòåìàìè. Ëèáî âû ìîæåòå âûäåëèòü äèñê ïîëíîñòüþ ïîä FreeBSD, íå çàáîòÿñü î ñîâìåñòèìîñòè ñ äðóãèìè îïåðàöèîííûìè ñèñòåìàìè. Ïî÷åìó æå ýòîò ðåæèì íàçûâàåòñÿ ”dangerous”? Äåëî â òîì, ÷òî äèñê â ýòîì ðåæèìå íå áóäåò ñîäåðæàòü òîãî, ÷òî îáû÷íûå óòèëèòû äëÿ ÏÊ ðàñïîçíàþò êàê òàáëèöó ðàçäåëîâ.  çàâèñèìîñòè îò òîãî, íàñêîëüêî õîðîøî îíè íàïèñàíû, îíè ìîãóò ñîîáùèòü âàì îá ýòîì, êàê òîëüêî îáíàðóæàò òàêîé äèñê, èëè, ÷òî ãîðàçäî õóæå, ìîãóò çàïîðòèòü çàãðóç÷èê BSD, äàæå íå ñïðàøèâàÿ è íå ñîîáùàÿ îá ýòîì. Ê òîìó æå èçâåñòíî, ÷òî ðàçìåòêà äèñêà â ðåæèìå ”dangerously dedicated” ââîäèò â çàáëóæäåíèå BIOS ìíîãèõ ïðîèçâîäèòåëåé, âêëþ÷àÿ AWARD (êîòîðûå èñïîëüçóþòñÿ â êîìïüþòåðàõ HP Netserver, Micronics è ìíîãèõ äðóãèõ) è Symbios/NCR (ïðîèçâîäèòåëÿ ïîïóëÿðíûõ SCSI-êîíòðîëëåðîâ ñåðèè 53C8xx). È ýòî íå ïîëíûé ñïèñîê, åñòü åù¼ äðóãèå ïðîèçâîäèòåëè. Ñèìïòîìàìè ïîäîáíûõ ïðîáëåì ÿâëÿåòñÿ ñîîáùåíèå read error, âûâîäèìîå çàãðóç÷èêîì FreeBSD, êîãäà îí íå ìîæåò íàéòè ñàì ñåáÿ, à òàêæå çàâèñàíèÿ ñèñòåìû ïðè çàãðóçêå. Òîãäà çà÷åì âîîáùå íóæåí ýòîò ðåæèì? Îí ýêîíîìèò âñåãî ëèøü íåñêîëüêî êèëîáàéò äèñêîâîãî ïðîñòðàíñòâà è ìîæåò âûçâàòü ñåðü¼çíûå ïðîáëåìû ïðè íîâîé èíñòàëëÿöèè. Ïðè÷èíîé ïîÿâëåíèÿ
60
Ãëàâà 9. Äèñêè, ôàéëîâûå ñèñòåìû è íà÷àëüíûå çàãðóç÷èêè
ýòîãî ðåæèìà ÿâëÿåòñÿ æåëàíèå èçáåæàòü ïîÿâëåíèÿ îäíîé èç ñàìûõ ðàñïðîñòðàí¼ííûõ ïðîáëåì, ñ êîòîðîé ñòàëêèâàþòñÿ íîâè÷êè - ñîîòâåòñòâèå ïàðàìåòðîâ BIOS è ðåàëüíûõ ïàðàìåòðîâ äèñêà.
”Ïàðàìåòðû” äèñêà ÿâëÿþòñÿ óñòàðåâøåé êîíöåïöèåé, íî îíà ëåæèò â îñíîâå ðàáîòû BIOS ñ äèñêîì. Êîãäà ïðîãðàììà óñòàíîâêè FreeBSD ñîçäà¼ò ñëàéñû, îíà çàïèñûâàåò èõ ðàñïîëîæåíèå â ñîîòâåòñòâèè ñ òåì, êàê ñ íèìè áóäåò ðàáîòàòü BIOS. Åñëè ýòî äåëàåòñÿ íåïðàâèëüíî, âû íå ñìîæåòå âûïîëíèòü çàãðóçêó ñèñòåìû. Ðåæèì ”dangerously dedicated” ïûòàåòñÿ îáîéòè ýòî, óïðîùàÿ ðåøåíèå äàííîé ïðîáëåìû. Èíîãäà îí äåëàåò ýòî ïðàâèëüíî. Îäíàêî ýòî çíà÷èò, ÷òî åãî íóæíî èñïîëüçîâàòü òîëüêî êàê ïîñëåäíþþ àëüòåðíàòèâó - åñòü ñïîñîáû ïîëó÷øå, ðåøàþùèå ïðîáëåìó â 99 ñëó÷àÿõ èç 100. Èòàê, êàê èçáåæàòü èñïîëüçîâàíèÿ ðåæèìà ”DD” âî âðåìÿ óñòàíîâêè? Ñíà÷àëà çàïèøèòå ïàðàìåòðû äèñêà, êîòîðûå ñîîáùàåò BIOS. Âû ìîæåòå âûÿñíèòü ýòî, çàñòàâèâ ÿäðî âûâåñòè ýòè ïàðàìåòðû ïðè çàãðóçêå, óêàçàâ -v â ïðèãëàøåíèè boot:, èëè èñïîëüçóÿ boot -v â çàãðóç÷èêå. Ïåðåä òåì, êàê çàïóñòèòñÿ ïðîãðàììà óñòàíîâêè, ÿäðî âûâåäåò ïàðàìåòðû, èñïîëüçóåìûå BIOS. Íå âîëíóéòåñü ïîäîæäèòå çàïóñêà ïðîãðàììû óñòàíîâêè, à çàòåì âîñïîëüçóéòåñü ñêðîëëèíãîì, ÷òîáû ïîñìîòðåòü çíà÷åíèÿ ýòèõ ïàðàìåòðîâ. Êàê ïðàâèëî, BIOS íóìåðóåò äèñêè â òîì æå ïîðÿäêå, ÷òî è FreeBSD, ñíà÷àëà IDE, çàòåì SCSI. Êîãäà âû ðàçáèâàåòå äèñê íà ñëàéñû, ïðîâåðüòå, ÷òî ïàðàìåòðû äèñêà, âûâîäèìûå â îêíå ïðîãðàììû FDISK, êîððåêòíû (òî åñòü îíè ñîîòâåòñòâóþò ïàðàìåòðàì BIOS); åñëè ýòî íå òàê, íàæìèòå g, ÷òîáû èõ èñïðàâèòü. Âû ìîæåòå ýòî ñäåëàòü, åñëè íà äèñêå íåò àáñîëþòíî íè÷åãî èëè åñëè ýòîò äèñê áûë ïåðåíåñ¼í ñ äðóãîé ñèñòåìû. Çàìåòüòå, ÷òî ýòî êàñàåòñÿ òîëüêî çàãðóçî÷íîãî äèñêà; FreeBSD ïðåêðàñíî ðàçáåð¼òñÿ ñ îñòàëüíûìè äèñêàìè, êîòîðûå ìîãóò ó âàñ áûòü. Êàê òîëüêî âû äîáèëèñü ñîîòâåòñòâèÿ ïàðàìåòðîâ äèñêà â BIOS è FreeBSD, ñêîðåå âñåãî, ïðîáëåì ó âàñ áîëüøå íå áóäåò, è èñïîëüçîâàòü ðåæèì ”DD” íå ïîòðåáóåòñÿ. Åñëè, îäíàêî, ñòðàøíîå ñîîáùåíèå read error ïðîäîëæàåò ïîÿâëÿòüñÿ ïðè çàãðóçêå, ñàìîå âðåìÿ ïåðåêðåñòèòüñÿ è ïîïðîáîâàòü ýòîò ðåæèì òåðÿòü âàì áîëüøå íå÷åãî. ×òîáû âåðíóòü äèñê èç ðåæèìà ”dangerously dedicated” ê íîðìàëüíîìó ðåæèìó èñïîëüçîâàíèÿ, åñòü äâà ñïîñîáà. Ïåðâûé çàêëþ÷àåòñÿ â òîì, ÷òî âû çàïèñûâàåòå äîñòàòî÷íîå êîëè÷åñòâî áàéòîâ NULL ïîâåðõ MBR, ÷òîáû ëþáîé èíñòàëëÿòîð äóìàë, ÷òî ýòî ÷èñòûé äèñê. Ýòî ìîæíî ñäåëàòü, íàïðèìåð, êîìàíäîé # dd if=/dev/zero of=/dev/rda0 count=15
Äðóãîé ñïîñîá - íåäîêóìåíòèðîâàííîé êîìàíäîé DOS C:\> fdisk /mbr
ïðîèíñòàëëèðîâàòü íîâóþ MBR, óäàëèâ çàãðóç÷èê BSD.
4. Íà êàêèõ ðàçäåëàõ ìîæíî áåç îïàñêè èñïîëüçîâàòü ìåõàíèçì Soft Updates? ß ñëûøàë, ÷òî èñïîëüçîâàíèå Soft Updates íà / ìîãóò ïðèâîäèòü ê ïðîáëåìàì. Êðàòêèé îòâåò: îáû÷íî âû ìîæåòå èñïîëüçîâàòü Soft Updates áåç îïàñêè íà âñåõ ðàçäåëàõ. Ïîäðîáíûé îòâåò: Áûëî íåñêîëüêî âîçðàæåíèé ïðîòèâ èñïîëüçîâàíèÿ Soft Updates íà êîðíåâîì ðàçäåëå. Soft Updates èìåþò äâå õàðàêòåðèñòèêè, êîòîðûå ýòîìó ñïîñîáñòâóþò. Âî-ïåðâûõ, ðàçäåë ñ Soft Updates èìååò ìàëî øàíñîâ ïîòåðè äàííûõ ïî âðåìÿ àâàðèéíîãî îñòàíîâà ñèñòåìû. (Ðàçäåë íå áóäåò ïîïîð÷åí; ïðîñòî áóäóò ïîòåðÿíû äàííûå.) Êðîìå òîãî, Soft Updates ìîãóò ïðèâîäèòü ê âðåìåííîé íåõâàòêå äèñêîâîãî ïðîñòðàíñòâà.
61
Ãëàâà 9. Äèñêè, ôàéëîâûå ñèñòåìû è íà÷àëüíûå çàãðóç÷èêè
Ïðè èñïîëüçîâàíèè Soft Updates ÿäðî ìîæåò çàäåðæèâàòü äî òðèäöàòè ñåêóíä ðåàëüíóþ çàïèñü èçìåíåíèé íà ôèçè÷åñêèé äèñê. Åñëè âû óäàëÿåòå áîëüøîé ôàéë, îí îñòàåòñÿ íà äèñêå, ïîêà ÿäðî íå âûïîëíèò óäàëåíèÿ íà ñàìîì äåëå. Ýòî ìîæåò ïðèâåñòè ê î÷åíü ïðîñòîé ïðîáëåìå. Ïðåäïîëîæèì, ÷òî âû óäàëèëè îäèí áîëüøîé ôàéë è òóò æå ñîçäàëè äðóãîé áîëüøîé ôàéë. Ïåðâûé áîëüøîé ôàéë åùå íå óäàëåí ðåàëüíî ñ ôèçè÷åñêîãî äèñêà, òàê ÷òî íà äèñêå ìîæåò íå îêàçàòüñÿ äîñòàòî÷íîãî ïðîñòðàíñòâà äëÿ âòîðîãî áîëüøîãî ôàéëà. Âû ïîëó÷èòå îøèáêó, ãîâîðÿùóþ î òîì, ÷òî íà ðàçäåëå íåò äîñòàòî÷íîãî ïðîñòðàíñòâà, õîòÿ âû òî÷íî çíàåòå, ÷òî òîëüêî ÷òî îñâîáîäèëè åãî áîëüøîé îáúåì! Åñëè âû ïîïðîáóåòå åùå ðàç âûïîëíèòü îïåðàöèþ ñåêóíäàìè ïîçæå, ñîçäàíèå ôàéëà ñðàáîòàåò òàê, êàê ýòî è îæèäàëîñü. Ýòî íå ðàç çàñòàâëÿëî ïîëüçîâàòåëåé ïî÷åñàòü ãîëîâó è äâàæäû ïðîâåðèòü ñâîå ïñèõè÷åñêîå çäîðîâüå, ôàéëîâóþ ñèñòåìó FreeBSD è îáà ýòèõ îáúåêòà. Åñëè ñèñòåìà ìîæåò àâàðèéíî îñòàíîâèòüñÿ ïîñëå òîãî, êàê ÿäðî ïðèìåò íàáîð äàííûõ äëÿ çàïèñè íà äèñê, íî ïåðåä òåì, êàê äàííûå ðåàëüíî çàïèøóòñÿ, òî äàííûå ìîãóò ïîòåðÿòüñÿ èëè îêàçàòüñÿ èñïîð÷åííûìè. Òàêîé ðèñê âåñüìà ìàë, íî â îáùåì-òî, óïðàâëÿåì. Èñïîëüçîâàíèå êýøèðîâàíèå çàïèñè íà IDE î÷åíü ñèëüíî óâåëè÷èâàåò ýòîò ðèñê; íàñòîÿòåëüíî ðåêîìåíäóåòñÿ âûêëþ÷èòü êýøèðîâàíèå çàïèñè äëÿ IDE ïðè èñïîëüçîâàíèè Soft Updates. Ýòè ïðîáëåìû âëèÿþò íà âñå ðàçäåëû, èñïîëüçóþùèå Soft Updates. Èòàê, ÷òî ýòî îçíà÷àåò äëÿ êîðíåâîãî ðàçäåëà? Æèçíåííî âàæíàÿ èíôîðìàöèÿ íà êîðíåâîì ðàçäåëå ìåíÿåòñÿ î÷åíü ðåäêî. Ôàéëû, òàêèå, êàê /kernel è ñîäåðæèìîå /etc ìåíÿåòñÿ òîëüêî ïðè îáñëóæèâàíèè ñèñòåìû, èëè êîãäà ïîëüçîâàòåëè ìåíÿþò ñâîè ïàðîëè. Åñëè â ñèñòåìå ïðîèçîéäåò ñáîé â ïåðèîä òðèäöàòèñåêóíäíîãî îêíà ïîñëå âûïîëíåíèÿ òàêîãî èçìåíåíèÿ, âîçìîæíî, ÷òî äàííûå îêàæóòñÿ ïîòåðÿííûìè. Ýòîò ðèñê íåçíà÷èòåëåí äëÿ áîëüøèíñòâà ïðèìåíåíèé, íî âû äîëæíû èìåòü â âèäó, ÷òî îí åñòü. Åñëè âàøà ñèñòåìà íå ìîæåò ïðèíÿòü òàêîé ðèñê, íå èñïîëüçóéòå Soft Updates ñ êîðíåâîé ôàéëîâîé ñèñòåìîé!
/ òðàäèöèîííî ÿâëÿåòñÿ îäíèì èç ñàìûõ ìàëåíüêèõ ðàçäåëîâ. Ïî óìîë÷àíèþ FreeBSD ðàçìåùàåò êàòàëîã /tmp â /. Åñëè ó âàñ çàáèò /tmp, âû ìîæåòå âñòðåòèòüñÿ ñ âîçíèêàþùèìè âðåìÿ îò âðåìåíè ïðîáëåìàìè ñ èñêîâûì ïðîñòðàíñòâîì. Ñîçäàíèå ñèìâîëè÷åñêîé ññûëêè /tmp, óêàçûâàþùåé íà /var/tmp, ðåøèò ýòó ïðîáëåìó.
5. ×òî íå òàê ñ óñòðîéñòâîì ccd? Ñèìïòîì âûãëÿäèò òàê: # ccdconfig -C
ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format Ýòî ñîîáùåíèå îáû÷íî âûäà¼òñÿ, êîãäà âû ïûòàåòåñü îáúåäèíèòü ðàçäåëû c, ïî óìîë÷àíèþ èìåþùèå òèï unused. Äðàéâåð ccd òðåáóåò, ÷òîáû èñïîëüçóåìûå ðàçäåëû èìåëè òèï FS_BSDFFS. Îòðåäàêòèðóéòå ìåòêè òåõ äèñêîâ, êîòîðûå âû õîòèòå èñïîëüçîâàòü, ñìåíèâ òèïû ðàçäåëîâ íà 4.2BSD.
6. Ïî÷åìó íåâîçìîæíî îòðåäàêòèðîâàòü ìåòêó äèñêà ccd? Ñèìïòîì âûãëÿäèò òàê: # disklabel ccd0
(çäåñü âûâîäèòñÿ èíôîðìàöèÿ î äèñêå, ïðîáóåì îòðåäàêòèðîâàòü ìåòêó) # disklabel -e ccd0
62
Ãëàâà 9. Äèñêè, ôàéëîâûå ñèñòåìû è íà÷àëüíûå çàãðóç÷èêè
(ðåäàêòèðîâàíèå, ñîõðàíåíèå, âûõîä) disklabel: ioctl DIOCWDINFO: No disk label on disk; use "disklabel -r" to install initial label Ýòî ïðîèñõîäèò èç-çà òîãî, ÷òî ìåòêà äèñêà, âîçâðàùàåìàÿ ccd, íà ñàìîì äåëå ”íåíàñòîÿùàÿ”, íå ñîîòâåòñòâóþùàÿ ðåàëüíî ðàñïîëàãàþùåéñÿ íà äèñêå. Âû ìîæåòå ðåøèòü ýòó ïðîáëåìó, ÿâíî çàïèñàâ ýòó ìåòêó îáðàòíî ñëåäóþùèì îáðàçîì: # disklabel ccd0 > /tmp/disklabel.tmp # disklabel -Rr ccd0 /tmp/disklabel.tmp # disklabel -e ccd0
(òåïåðü ýòî áóäåò ðàáîòàòü)
7. Ìîæíî ëè ñìîíòèðîâàòü äðóãèå ôàéëîâûå ñèñòåìû? Digital UNIX Êîìïàêò-äèñêè ñ ôàéëîâîé ñèñòåìîé UFS ìîãóò áûòü çàìîíòèðîâàíû áåç âñÿêèõ ïðîáëåì. Ìîíòèðîâàíèå ôàéëîâûõ ñèñòåì Digital UNIX èëè äðóãèõ ñèñòåì, ïîääåðæèâàþùèõ UFS, ìîæåò áûòü áîëåå ñëîæíûì, â çàâèñèìîñòè îò îñîáåííîñòåé ðàçáèåíèÿ äèñêà êîíêðåòíîé îïåðàöèîííîé ñèñòåìîé.
Linux FreeBSD ïîääåðæèâàåò ðàçäåëû ext2fs. Çà äîïîëíèòåëüíîé èíôîðìàöèåé îáðàòèòåñü ê ñòðàíèöå ñïðàâî÷íèêà mount_ext2fs(8). NT Âî FreeBSD èìååòñÿ äðàéâåð äîñòóïà ê NTFS â ðåæèìå ”òîëüêî ÷òåíèå”. Äëÿ ïîëó÷åíèÿ áîëåå ïîëíîé èíôîðìàöèè îáðàòèòåñü ê mount_ntfs(8). Íàñ èíòåðåñóåò ëþáàÿ äîïîëíèòåëüíàÿ èíôîðìàöèÿ ïî ýòîìó âîïðîñó.
8. Êàê ñìîíòèðîâàòü âòîðè÷íûé ðàçäåë DOS? Âòîðè÷íûå ðàçäåëû DOS íàõîäÿòñÿ ïîñëå ÂÑÅÕ ïåðâè÷íûõ ðàçäåëîâ. Íàïðèìåð, åñëè ðàçäåë ”E” ÿâëÿåòñÿ âòîðûì ðàçäåëîì DOS íà âòîðîì äèñêå SCSI, âàì íóæíî ñîçäàòü ñïåöèàëüíûå ôàéëû äëÿ ïÿòîãî ”ñëàéñà” â êàòàëîãå /dev, à çàòåì ñìîíòèðîâàòü /dev/da1s5: # cd /dev # sh MAKEDEV da1s5 # mount -t msdos /dev/da1s5 /dos/e
Çàìå÷àíèå: Âû ìîæåòå ïðîïóñòèòü ýòîò øàã, åñëè èñïîëüçóåòå FreeBSD 5.0-RELEASE èëè áîëåå íîâóþ âåðñèþ ñ âêëþ÷åííûì ìåõàíèçìîì devfs(5).
63
Ãëàâà 9. Äèñêè, ôàéëîâûå ñèñòåìû è íà÷àëüíûå çàãðóç÷èêè
9. Ñóùåñòâóåò ëè êðèïòîãðàôè÷åñêàÿ ôàéëîâàÿ ñèñòåìà äëÿ FreeBSD? Äà; ïîñìîòðèòå ïîðò security/cfs.
10. Êàê ìîæíî èñïîëüçîâàòü çàãðóç÷èê NT äëÿ çàïóñêà FreeBSD? Èäåÿ çàêëþ÷àåòñÿ â êîïèðîâàíèè ïåðâîãî ñåêòîðà êîðíåâîãî ðàçäåëà FreeBSD â ôàéë, íàõîäÿùèéñÿ â ðàçäåëå DOS/NT. Ïðåäïîëîæèì, ÷òî âû íàçâàëè ýòîò ôàéë c:\bootsect.bsd (ïî àíàëîãèè ñ c:\bootsect.dos), ïîñëå ÷åãî ìîæåòå îòðåäàêòèðîâàòü ôàéë c:\boot.ini, ÷òîáû îí âûãëÿäåë ïðèìåðíî òàê:
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT" C:\BOOTSECT.BSD="FreeBSD" C:\="DOS" Åñëè FreeBSD óñòàíîâëåíà íà òîò æå ñàìûé äèñê, ÷òî è çàãðóçî÷íûé ðàçäåë NT, ïðîñòî ñêîïèðóéòå /boot/boot1 â C:\BOOTSECT.BSD. Îäíàêî, åñëè FreeBSD óñòàíîâëåíà íà äðóãîé äèñê, òî /boot/boot1 ðàáîòàòü íå áóäåò, íóæíî êîïèðîâàòü /boot/boot0.
/boot/boot0 íóæíî óñòàíàâëèâàòü ñ ïîìîùüþ sysinstall, âûáðàâ ìåíåäæåð çàãðóçêè FreeBSD â äèàëîãîâîì îêíå ïðè âûáîðå ìåíåäæåðà çàãðóçêè. Ýòî ïîòîìó ÷òî â /boot/boot0 îáëàñòü òàáëèöû ðàçäåëîâ çàïîëíåíà ñèìâîëàìè NULL, à sysinstall êîïèðóåò ñþäà òàáëèöó ðàçäåëîâ ïåðåä òåì, êàê ñêîïèðîâàòü /boot/boot0 â îáëàñòü MBR.
Âíèìàíèå: Íå êîïèðóéòå ïðîñòî /boot/boot0 âìåñòî /boot/boot1, ýòèì âû ïåðåçàïèøåòå òàáëèöó ðàçäåëîâ âèí÷åñòåðà è âàø êîìïüþòåð ïåðåñòàíåò çàãðóæàòüñÿ!
Ïðè çàïóñêå ìåíåäæåð çàãðóçêè FreeBSD çàäà¼ò ÎÑ, êîòîðàÿ çàãðóæàëàñü ïîñëåäíèé ðàç, óñòàíàâëèâàÿ äëÿ ýòîé îïåðàöèîííîé ñèñòåìû ïðèçíàê àêòèâèçàöèè â òàáëèöå ðàçäåëîâ, à çàòåì çàïèñûâàåò 512 áàéò ñàìîãî ñåáÿ îáðàòíî â MBR, òàê ÷òî åñëè âû ïðîñòî ñêîïèðóåòå /boot/boot0 â C:\BOOTSECT.BSD, òî â MBR áóäåò çàïèñàíà ïóñòàÿ òàáëèöà ðàçäåëîâ ñ ôëàãîì àêòèâíîñòè â íåêîòîðîì ìåñòå.
11. Êàê çàãðóçèòü FreeBSD è Linux ñ ïîìîùüþ LILO? Åñëè ó âàñ óñòàíîâëåíû FreeBSD è Linux íà îäíîì è òîì æå äèñêå, ñëåäóéòå óêàçàíèÿì ïî óñòàíîâêå LILO î çàãðóçêå íå-Linux îïåðàöèîííûõ ñèñòåì. Îíè ñâîäÿòñÿ ê ñëåäóþùåìó: Çàãðóçèòå Linux, è äîáàâüòå ñëåäóþùèå ñòðîêè â ôàéë /etc/lilo.conf:
other=/dev/hda2 table=/dev/hda label=FreeBSD
64
Ãëàâà 9. Äèñêè, ôàéëîâûå ñèñòåìû è íà÷àëüíûå çàãðóç÷èêè
(çäåñü ìû ïðåäïîëàãàåì, ÷òî ñëàéñ ñ FreeBSD èçâåñòåí Linux êàê /dev/hda2; èçìåíèòå ýòó ñòðîêó â ñîîòâåòñòâèè ñ âàøåé êîíôèãóðàöèåé). Çàòåì äîñòàòî÷íî áóäåò çàïóñòèòü lilo, âîéäÿ â ñèñòåìó êàê àäìèíèñòðàòîð. Åñëè FreeBSD ðàñïîëàãàåòñÿ íà äðóãîì äèñêå, âàì íóæíî äîáàâèòü ñòðî÷êó loader=/boot/chain.b â êîíôèãóðàöèîííûé ôàéë LILO. Íàïðèìåð:
other=/dev/dab4 table=/dev/dab loader=/boot/chain.b label=FreeBSD
 íåêîòîðûõ ñëó÷àÿõ äëÿ óñïåøíîé çàãðóçêè ñî âòîðîãî äèñêà âàì ìîæåò ïîòðåáîâàòüñÿ óêàçàòü íîìåð äèñêà BIOS çàãðóç÷èêó FreeBSD. Íàïðèìåð, åñëè äèñê SCSI ñ FreeBSD îïðåäåëÿåòñÿ BIOS êàê äèñê 1, â ïðèãëàøåíèè çàãðóç÷èêà FreeBSD íóæíî óêàçàòü:
Boot: 1:da(0,a)/kernel
Âî FreeBSD 2.2.5 è âûøå âû ìîæåòå íàñòðîèòü boot(8) íà àâòîìàòè÷åñêîå ïðèíÿòèå òàêèõ ïàðàìåòðîâ âî âðåìÿ çàãðóçêè.  äîêóìåíòå Linux+FreeBSD mini-HOWTO (http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+FreeBSD.html) ñîäåðæèòñÿ ìíîãî èíôîðìàöèè, êàñàþùåéñÿ âçàèìîäåéñòâèÿ FreeBSD è Linux.
12. Êàê çàãðóçèòü FreeBSD è Linux ñ ïîìîùüþ BootEasy? Óñòàíîâèòå LILO â íà÷àëî çàãðóçî÷íîãî ðàçäåëà Linux, à íå â Master Boot Record. Ïîñëå ýòîãî ìîæíî çàïóñòèòü LILO èç BootEasy. Ýòî ðåêîìåíäóåòñÿ ñäåëàòü â ëþáîì ñëó÷àå ïðè îäíîâðåìåííîì èñïîëüçîâàíèè Windows 95 è Linux, ÷òîáû óïðîñòèòü âîññòàíîâëåíèå ðàáîòîñïîñîáíîñòè Linux ïîñëå ïåðåèíñòàëëÿöèè Windows 95 (êîòîðàÿ ÿâëÿåòñÿ Ðåâíèâîé Îïåðàöèîííîé Ñèñòåìîé è íå òåðïèò ïðèñóòñòâèÿ äðóãèõ îïåðàöèîííûõ ñèñòåì â
Master Boot Record).
13. Êàê ñìåíèòü ïðèãëàøåíèå çàãðóç÷èêà ñ ??? íà ÷òî-íèáóäü áîëåå çíà÷àùåå? Âû íå ìîæåòå ñäåëàòü ýòî ñî ñòàíäàðòíûì ìåíåäæåðîì çàãðóçêè, íå ïåðåïèñàâ åãî. Ñðåäè ïîðòîâ èç êàòåãîðèè sysutils åñòü íåñêîëüêî äðóãèõ ìåíåäæåðîâ çàãðóçêè, êîòîðûå ïðåäîñòàâëÿþò òàêóþ ôóíêöèîíàëüíîñòü.
14. Êàê èñïîëüçîâàòü óñòðîéñòâî äëÿ ÷òåíèÿ ñìåííûõ äèñêîâ? Êàêèì áû íè áûëî ýòî óñòðîéñòâî, òèïà ZIP, EZ (èëè äàæå îáû÷íûì äèñêîâîäîì, åñëè âû õîòèòå åãî èñïîëüçîâàòü) èëè êàêèì-òî äðóãèì, êàê òîëüêî îíî áóäåò óñòàíîâëåíî è ðàñïîçíàíî ñèñòåìîé, è âû âñòàâèòå â íåãî êàðòðèäæ/äèñêåòó/÷òî-òàì-åù¼, âñ¼ áóäåò âûãëÿäåòü ïðèìåðíî îäèíàêîâî.
(ýòîò ðàçäåë îïèðàåòñÿ íà FAQ ïî óñòðîéñòâàì ZIP (http://www.vmunix.com/mark/FreeBSD/ZIP-FAQ.html) Ìàðêà Ìýéî (Mark Mayo))
65
Ãëàâà 9. Äèñêè, ôàéëîâûå ñèñòåìû è íà÷àëüíûå çàãðóç÷èêè
Åñëè ýòî óñòðîéñòâî ZIP èëè îáû÷íûé äèñêîâîä, è ó âàñ óæå åñòü ôàéëîâàÿ ñèñòåìà DOS íà äèñêåòàõ, òî âû ìîæåòå èñïîëüçîâàòü êîìàíäó òèïà: # mount -t msdos /dev/fd0c /floppy
äëÿ îáû÷íûõ äèñêåò, èëè # mount -t msdos /dev/da2s4 /zip
äëÿ äèñêåò ZIP ñî ñòàíäàðòíîé êîíôèãóðàöèåé. Äëÿ äðóãèõ äèñêîâ ïîñìîòðèòå èõ ïàðàìåòðû ñ ïîìîùüþ êîìàíäû fdisk(8) èëè sysinstall(8). Îñòàëüíûå ïðèìåðû äàíû äëÿ ïðèâîäà ZIP íà da2, òðåòüåì äèñêå SCSI. Åñëè ýòî äèñêåòà èëè ñìåííûé äèñê, êîòîðûé áóäåò èñïîëüçîâàòüñÿ äëÿ îáìåíà èíôîðìàöèåé ñ äðóãèìè ëþäüìè, õîðîøåé èäååé áóäåò ïîìåùåíèå òóäà ôàéëîâîé ñèñòåìû BSD. Âû ïîëó÷èòå ïîääåðæêó äëèííûõ èì¼í ôàéëîâ, óâåëè÷åíèå ïðîèçâîäèòåëüíîñòè ïî êðàéíåé ìåðå â äâà ðàçà è ãîðàçäî áîëüøóþ íàä¼æíîñòü. Ïåðâûì äåëîì âàì ñíîâà áóäåò íóæíî âûïîëíèòü ðàçáèåíèå äèñêà íà ðàçäåëû/ôàéëîâûå ñèñòåìû. Âû ìîæåòå âîñïîëüçîâàòüñÿ óòèëèòîé fdisk(8) ëèáî sysinstall(8), à â ñëó÷àå íåáîëüøîãî äèñêà, íà êîòîðîì íå íóæíî ðàñïîëàãàòü íåñêîëüêî îïåðàöèîííûõ ñèñòåì, ïðîñòî ñîòðèòå òàáëèöó ðàçäåëîâ (ñëàéñîâ) FAT è èñïîëüçóéòå ðàçáèåíèå íà ðàçäåëû BSD. # dd if=/dev/zero of=/dev/rda2 count=2 # disklabel -Brw da2 auto
Âû ìîæåòå èñïîëüçîâàòü disklabel(8) èëè sysinstall(8) äëÿ ñîçäàíèÿ íåñêîëüêèõ ðàçäåëîâ BSD. Âàì íàâåðíÿêà ïðèä¼òñÿ ýòî ñäåëàòü, åñëè âû ñòàíåòå äîáàâëÿòü ìåñòî äëÿ ðàçäåëà ïîäêà÷êè íà âèí÷åñòåðå, õîòÿ ýòî íå èìååò îòíîøåíèÿ ê óñòðîéñòâàì òèïà ZIP.  èòîãå âû äîëæíû ñîçäàòü íîâóþ ôàéëîâóþ ñèñòåìó (â ýòîì ïðèìåðå îíà çàíèìàåò âåñü íàø äèñê ZIP): # newfs /dev/rda2c
è ñìîíòèðîâàòü å¼: # mount /dev/da2c /zip
Õîðîøî åù¼ äîáàâèòü ñòðîêó òèïà ñëåäóþùåé â ôàéë /etc/fstab (ïðî÷òèòå ñïðàâêó ïî fstab(5)), ÷òîáû â áóäóùåì ìîæíî áûëî ïðîñòî äàâàòü êîìàíäó mount /zip:
/dev/da2c /zip ffs rw,noauto 0 0
15. Ïðè ìîíòèðîâàíèè êîìïàêò-äèñêà, âûäà¼òñÿ ñîîáùåíèå Incorrect super block.  ïàðàìåòðàõ êîìàíäû mount(8) âàì íóæíî óêàçàòü òèï óñòðîéñòâà, êîòîðûé âû ñîáèðàåòåñü ñìîíòèðîâàòü. Ýòî îïèñàíî â ðàçäåëå Ðóêîâîäñòâà îá îïòè÷åñêèõ íîñèòåëÿõ (../handbook/creating-cds.html), à èìåííî â ðàçäåëå Èñïîëüçîâàíèå CD ñ äàííûìè
(../handbook/creating-cds.html#MOUNTING-CD).
66
Ãëàâà 9. Äèñêè, ôàéëîâûå ñèñòåìû è íà÷àëüíûå çàãðóç÷èêè
16. Ïðè ìîíòèðîâàíèè êîìïàêò-äèñêà âûäà¼òñÿ ñîîáùåíèå Device not configured. Îáû÷íî ýòî îçíà÷àåò, ÷òî â ïðèâîäå CDROM íåò êîìïàêò-äèñêà ëèáî óñòðîéñòâî íà øèíå íå áûëî óâèäåíî. Ïîæàëóéñòà, ïîñìîòðèòå ðàçäåë îá èñïîëüçîâàíèè CD ñ äàííûìè (../handbook/creating-cds.html#MOUNTING-CD) â Ðóêîâîäñòâå, ãäå ïîäðîáíî îáñóæäàåòñÿ ýòîò âîïðîñ.
17. Êîãäà ÿ ìîíòèðóþ CDROM, âñå íåàíãëèéñêèå ñèìâîëû â èìåíàõ ôàéëîâ âûâîäÿòñÿ êàê ”?”. Ñêîðåå âñåãî, íà âàøåì êîìïàêò-äèñêå äëÿ õðàíåíèÿ èíôîðìàöèè î ôàéëàõ è êàòàëîãàõ èñïîëüçóåòñÿ ðàñøèðåíèå ”Joliet”. Ýòî îïèñàíî â ãëàâå Ðóêîâîäñòâà î ñîçäàíèè è èñïîëüçîâàíèè CDROM (../handbook/creating-cds.html), à èìåííî â ðàçäåëå îá èñïîëüçîâàíèè CDROM ñ äàííûìè
(../handbook/creating-cds.html#MOUNTING-CD). 18. ß çàïèñàë CD âî FreeBSD è òåïåðü íå ìîãó ñ÷èòàòü åãî íè â êàêîé äðóãîé îïåðàöèîííîé ñèñòåìîé. Ïî÷åìó? Ñêîðåå âñåãî, âû çàïèñàëè íà CD íåïîñðåäñòâåííî íåîáðàáîòàííûé ôàéë áåç ïåðâîíà÷àëüíîãî ñîçäàíèÿ ôàéëîâîé ñèñòåìû ISO 9660. Ïðî÷òèòå ãëàâó Ðóêîâîäñòâà î ñîçäàíèè CDROM (../handbook/creating-cds.html), â ÷àñòíîñòè, ðàçäåë î çàïèñè äàííûõ íåïîñðåäñòâåííî íà êîìïàêò-äèñêè
(../handbook/creating-cds.html#RAWDATA-CD). 19. Êàê ñîçäàòü îáðàç CD ñ äàííûìè? Ýòî îïèñàíî â ðàçäåëå Ðóêîâîäñòâà î êîïèðîâàíèè CD ñ äàííûìè (../handbook/creating-cds.html#IMAGING-CD). Áîëåå ïîëíóþ èíôîðìàöèþ î ðàáîòå ñ êîìïàêò-äèñêàìè ìîæíî íàéòè â ðàçäåëå î ñîçäàíèè êîìïàêò-äèñêîâ (../handbook/creating-cds.html) ãëàâû îá óñòðîéñòâàõ õðàíåíèÿ äàííûõ Ðóêîâîäñòâà.
20. Ïî÷åìó ÿ íå ìîãó ñìîíòèðîâàòü (êîìàíäîé mount àóäèî CD? Åñëè âû ïîïûòàåòåñü ñìîíòèðîâàòü àóäèî CD, âû ïîëó÷èòå ïðèìåðíî òàêîå ñîîáùåíèå îá îøèáêå: cd9660: /dev/acd0c: Invalid argument. Ïðè÷èíà ýòîãî çàêëþ÷àåòñÿ â òîì, ÷òî êîìàíäà mount ðàáîòàåò òîëüêî ñ ôàéëîâûìè ñèñòåìàìè. Íà àóäèî CD ôàéëîâûõ ñèñòåì íåò; îíè ñîäåðæàò òîëüêî äàííûå. Âàì íóæíà ïðîãðàììà, ÷èòàþùàÿ àóäèî CD, íàïðèìåð, ïîðò audio/xmcd port.
21. Êàê âûïîëíèòü mount äëÿ ìíîãîñåàíñîâîãî CD? Ïî óìîë÷àíèþ mount(8) áóäåò ïûòàòüñÿ ñìîíòèðîâàòü ïîñëåäíþþ äîðîæêó (ñåàíñ) CD ñ äàííûìè. Åñëè âû õîòèòå çàãðóçèòü áîëåå ðàííèé ñåàíñ, òî äîëæíû âîñïîëüçîâàòüñÿ îïöèåé êîìàíäíîé ñòðîêè -s. Ïîæàëóéñòà, îáðàòèòåñü ê ñïðàâêå ïî êîìàíäå mount_cd9660(8) äëÿ ïîëó÷åíèÿ êîíêðåòíûõ ïðèìåðîâ.
22. Êàê ðàçðåøèòü îáû÷íûì ïîëüçîâàòåëÿì ìîíòèðîâàòü äèñêåòû, êîìïàêò-äèñêè è äðóãèå ñìåííûå íîñèòåëè? Îáû÷íûì ïîëüçîâàòåëÿì ìîæíî ïîçâîëèòü ìîíòèðîâàòü óñòðîéñòâà. Âîò êàê ýòî äåëàåòñÿ:
1.
Êàê ïîëüçîâàòåëü root, óñòàíîâèòå ñèñòåìíóþ ïåðåìåííóþ vfs.usermount â çíà÷åíèå 1. # sysctl -w vfs.usermount=1
2.
Ðàáîòàÿ ïîëüçîâàòåëåì root, íàçíà÷üòå ñîîòâåòñòâóþùèå ïðàâà íà óñòðîéñòâà ñ ïîáëî÷íûì äîñòóïîì, êîòîðûå ñîîòâåòñòâóþò ñìåííûì íîñèòåëÿì. Íàïðèìåð, ÷òîáû ïîçâîëèòü ïîëüçîâàòåëÿì ìîíòèðîâàòü äèñêåòû â ïåðâîì äèñêîâîäå, âîñïîëüçóéòåñü êîìàíäîé
67
Ãëàâà 9. Äèñêè, ôàéëîâûå ñèñòåìû è íà÷àëüíûå çàãðóç÷èêè # chmod 666 /dev/fd0
×òîáû ðàçðåøèòü ïîëüçîâàòåëÿì èç ãðóïïû operator ìîíòèðîâàòü êîìïàêò-äèñêè, ñäåëàéòå òàê: # chgrp operator /dev/cd0c # chmod 640 /dev/cd0c
3.
Íàêîíåö, äîáàâüòå ñòðî÷êó vfs.usermount=1 â ôàéë /etc/sysctl.conf, ÷òîáû îíà ñðàáàòûâàëà âî âðåìÿ çàãðóçêè ñèñòåìû.
Òåïåðü âñå ïîëüçîâàòåëè ìîãóò ìîíòèðîâàòü äèñêåòó /dev/fd0 â ñîáñòâåííûå êàòàëîãè: % %
mkdir ~/my-mount-point mount -t msdos /dev/fd0 ~/my-mount-point
Ïîëüçîâàòåëè èç ãðóïïû operator òåïåðü ìîãóò ìîíòèðîâàòü êîìïàêò-äèñê /dev/cd0c â ñîáñòâåííûå êàòàëîãè: % %
mkdir ~/my-mount-point mount -t cd9660 /dev/cd0c ~/my-mount-point
Ðàçìîíòèðîâêà óñòðîéñòâà îñóùåñòâëÿåòñÿ ïðîñòî: % umount ~/my-mount-point
Èñïîëüçîâàíèå vfs.usermount, îäíàêî, èìååò íåêîòîðûå íåãàòèâíûå ñòîðîíû, ñâÿçàííûå ñ âîïðîñàìè áåçîïàñíîñòè. Áîëåå ïðàâèëüíûì ñïîñîáîì ðàáîòû ñ íîñèòåëÿìè â ôîðìàòå MSDOS ÿâëÿåòñÿ èñïîëüçîâàíèå ïàêåòà mtools (http://www.FreeBSD.org/cgi/ports.cgi?query=%5Emtools-&stype=name) èç êîëëåêöèè ïîðòîâ.
23. Êîìàíäû du è df ïîêàçûâàþò ðàçíûé îáúåì äîñòóïíîãî äèñêîâîãî ïðîñòðàíñòâà. ×òî ïðîèñõîäèò? Âàì íóæíî ðàçîáðàòüñÿ, ÷òî íà ñàìîì äåëå äåëàþò êîìàíäû du è df. du ïðîõîäèò ïî äåðåâó êàòàëîãîâ, çàìåðÿÿ, íàñêîëüêî áîëüøîé îáúåì çàíèìàåò êàæäûé ôàéë, è âûäàåò îáùèé îáúåì. df ïðîñòî çàïðàøèâàåò ôàéëîâóþ ñèñòåìó îá îñòàâøåìñÿ îáúåìå. Ýòî âûãëÿäèò êàê îäíî è òî æå, îäíàêî ôàéë áåç çàïèñè â êàòàëîãå çàòðîíåò df, íî íå ïîâëèÿåò íà du. Êîãäà ïðîãðàììà èñïîëüçóåò ôàéë, à âû åãî óäàëèëè, ôàéë íà ñàìîì äåëå íå óäàëÿåòñÿ èç ôàéëîâîé ñèñòåìû, ïîêà ïðîãðàììà íå ïðåêðàòèò åãî èñïîëüçîâàòü. Îäíàêî ôàéë òóò æå óäàëÿåòñÿ èç ñïèñêà êàòàëîãà. Âû ìîæåòå ëåãêî ýòî âèäåòü ïðè ïîìîùè òàêîé ïðîãðàììû, êàê more. Ïðåäïîëîæèì, ÷òî ó âàñ èìååòñÿ ôàéë, íàñòîëüêî áîëüøîé, ÷òî åãî ïðèñóòñòâèå âëèÿåò íà âûâîä êîìàíä du è df. (Òàê êàê â íàñòîÿùåå âðåìÿ äèñêè ìîãóò áûòü íàñòîëüêî áîëüøèìè, ýòî ìîæåò áûòü î÷åíü áîëüøîé ôàéë!) Åñëè âû óäàëèòå ýòîò ôàéë â ïðîöåññå ðàáîòû more íàä íèì, íà êîìàíäó more ýòî íå ïîâëèÿåò è îíà íå ñîîáùèò, ÷òî íå ìîæåò ïðîñìàòðèâàòü ôàéë. Çàïèñü î ôàéëå ïðîñòî óäàëåíà èç êàòàëîãà, òàê ÷òî äðóãèå ïðîãðàììû èëè ïîëüçîâàòåëè íå ñìîãóò ê íåìó îáðàòèòüñÿ. du ïîêàæåò, ÷òî ôàéë èñ÷åç — îíà ïðîñìàòðèâàåò äåðåâî êàòàëîãîâ, à ôàéëà òàì íå áóäåò. df ïîêàçûâàåò, ÷òî îí âñå åùå çäåñü, òàê êàê ôàéëîâàÿ ñèñòåìà çíàåò, ÷òî more âñå åùå èñïîëüçóåò ýòî ïðîñòðàíñòâî. Êàê òîëüêî âû çàêîí÷èòå ðàáîòó ñ more, êîìàíäû du è df ïðèäóò â ñîîòâåòñòâèå. Çàìåòüòå, ÷òî ïîäñèñòåìà îòëîæåííûõ îáíîâëåíèé (Soft Updates) ìîæåò çàäåðæèâàòü îñâîáîæäåíèå äèñêîâîãî ïðîñòðàíñòâà; âàì ìîæåò ïîòðåáîâàòüñÿ ïîäîæäàòü äî 30 ñåêóíä, ïðåæäå, ÷åì èçìåíåíèÿ áóäóò çàìåòíû!
68
Ãëàâà 9. Äèñêè, ôàéëîâûå ñèñòåìû è íà÷àëüíûå çàãðóç÷èêè
Òàêàÿ ñèòóàöèÿ ÷àñòà íà âåá-ñåðâåðàõ. Ìíîãèå óñòàíàâëèâàþò âåá-ñåðâåð íà FreeBSD è çàáûâàþò îáíîâëÿòü ôàéëû ïðîòîêîëîâ. Æóðíàë äîñòóïà çàïîëíÿåò /var. Íîâûé àäìèíèñòðàòîð óäàëÿåò ôàéë, íî ñèñòåìà âñå åùå ñîîáùàåò î òîì, ÷òî ðàçäåë çàïîëíåí. Îñòàíîâêà è ïåðåçàïóñê ïðîãðàììû âåá-ñåðâåðà îñâîáîäèò ôàéë, ïîçâîëÿÿ ñèñòåìå îñâîáîäèòü äèñêîâîå ïðîñòðàíñòâî. Äëÿ ïðåäîòâðàùåíèÿ ýòîãî íàñòðîéòå newsyslog(8).
24. Êàê äîáàâèòü äîïîëíèòåëüíóþ âèðòóàëüíóþ ïàìÿòü? Â ãëàâå Ðóêîâîäñòâà î êîíôèãóðàöèè è òîíêîé íàñòðîéêå (../handbook/config-tuning.html) âû íàéä¼òå ðàçäåë (../handbook/adding-swap-space.html), â êîòîðîì îïèñûâàåòñÿ, êàê ýòî ñäåëàòü.
25. Ïî÷åìó âîçìîæíî çàïîëíåíèå ðàçäåëà áîëüøå ÷åì íà 100%? ×àñòü êàæäîãî ðàçäåëà UFS (ïî óìîë÷àíèþ 8%) çàðåçåðâèðîâàíî äëÿ èñïîëüçîâàíèÿ îïåðàöèîííîé ñèñòåìîé è ïîëüçîâàòåëåì root. Óòèëèòà df(1) íå ó÷èòûâàåò ýòî ïðè ïîäñ÷¼òå çíà÷åíèÿ â êîëîíêå Capacity, òàê ÷òî îíî ìîæåò ïðåâûøàòü 100%. Òàêæå âû çàìåòèòå, ÷òî êîëîíêà Blocks âñåãäà áîëüøå, ÷åì ñóììà çíà÷åíèé â êîëîíêàõ Used è Avail, îáû÷íî íà 8%. Äëÿ ïîëó÷åíèÿ áîëåå ïîäðîáíîé èíôîðìàöèè îáðàòèòåñü ê îïèñàíèþ îïöèè -m â ñïðàâêå ïî tunefs(8).
69
Ãëàâà 10. Ñèñòåìíîå àäìèíèñòðèðîâàíèå 1. Ãäå ðàñïîëîæåíû ôàéëû êîíôèãóðàöèè ñèñòåìû? Îñíîâíûì íàñòðîå÷íûì ôàéëîì ÿâëÿåòñÿ /etc/defaults/rc.conf (îáðàòèòåñü ê rc.conf(5)) Ñêðèïòû íà÷àëüíîãî çàïóñêà ñèñòåìû, òàêèå, êàê /etc/rc è /etc/rc.d (îáðàòèòåñü ê rc(8)) ïðîñòî âêëþ÷àþò ýòîò ôàéë. Íå ðåäàêòèðóéòå ýòîò ôàéë! Âìåñòî ýòîãî, åñëè â ôàéëå /etc/defaults/rc.conf èìååòñÿ ïàðàìåòð, êîòîðûé âû õîòèòå èçìåíèòü, òî âû äîëæíû ñêîïèðîâàòü ñòðî÷êó ñ íèì â ôàéë /etc/rc.conf è ïîìåíÿòü åãî çíà÷åíèå èìåííî çäåñü. Íàïðèìåð, åñëè âû õîòèòå çàïóñòèòü named, ïîñòàâëÿåìûé ñåðâåð DNS, òî âñ¼, ÷òî âàì íóæíî ñäåëàòü, ýòî: # echo named_enable="YES" >> /etc/rc.conf
×òîáû çàïóñòèòü ìåñòíûå ñåðâèñû, ïîìåñòèòå ñêðèïòû â êàòàëîã /usr/local/etc/rc.d. Ó ýòèõ ñêðèïòîâ äîëæåí áûòü âûñòàâëåí áèò âûïîëíèìîñòè, è èõ èìåíà äîëæíû îêàí÷èâàòüñÿ íà .sh.
2. Êàê ïðîùå âñåãî äîáàâèòü ïîëüçîâàòåëÿ? Èñïîëüçóéòå êîìàíäó adduser(8) èëè pw(8) â ñëó÷àå âûïîëíåíèÿ áîëåå ñëîæíûõ îïåðàöèé. ×òîáû óäàëèòü ïîëüçîâàòåëÿ, èñïîëüçóéòå êîìàíäó rmuser(8) èëè, åñëè ýòî áóäåò íåîáõîäèìî, pw(8).
3. Ïî÷åìó ïîñëå ðåäàêòèðîâàíèÿ ìîåãî ôàéëà crontab ÿ ïîëó÷àþ ñîîáùåíèÿ âèäà root: not found? Îáû÷íî ýòî ñëó÷àåòñÿ ïðè ðåäàêòèðîâàíèè ñèñòåìíîãî crontab-ôàéëà (/etc/crontab) è ïîñëåäóþùåãî èñïîëüçîâàíèÿ óòèëèòû crontab(1) äëÿ åãî óñòàíîâêè: # crontab /etc/crontab
Ýòî íåïðàâèëüíî. Ñèñòåìíûé crontab-ôàéë èìååò ôîðìàò, îòëè÷íûé îò ïîëüçîâàòåëüñêèõ crontab-ôàéëîâ, êîòîðûå îáíîâëÿåò óòèëèòà crontab(1) (ñòðàíèöà Ñïðàâî÷íèêà ïî crontab(5) îïèñûâàåò îòëè÷èÿ áîëåå ïîäðîáíî). Åñëè ýòî èìåííî òî, ÷òî âû ñäåëàëè, òî äîïîëíèòåëüíûé crontab-ôàéë ÿâëÿåòñÿ ïðîñòî êîïèåé ôàéëà /etc/crontab â íåïðàâèëüíîì ôîðìàòå. Óäàëèòå åãî òàêîé êîìàíäîé: # crontab -r
 ñëåäóþùèé ðàç ïðè ðåäàêòèðîâàíèè ôàéëà /etc/crontab, âàì íå íóæíî äåëàòü íè÷åãî äëÿ îïîâåùåíèÿ óòèëèòû cron(8) î ñäåëàííûõ èçìåíåíèÿõ, òàê êàê îíà ðàñïîçíàåò èõ àâòîìàòè÷åñêè. Åñëè âû õîòèòå çàïóñêàòü ÷òî-òî îäèí ðàç â äåíü, íåäåëþ èëè ìåñÿö, òî, íàâåðíîå, ëó÷øå îáíîâèòü ñêðèïòû /usr/local/etc/periodic è ïîçâîëèòü êîìàíäå periodic(8), çàïóñêàåìîé ñèñòåìíîé cron-óòèëèòîé, ïëàíèðîâàòü èõ âûïîëíåíèå âìåñòå ñ äðóãèìè ïåðèîäè÷åñêèìè ñèñòåìíûìè çàäà÷àìè. Ðåàëüíàÿ ïðè÷èíà îøèáêè çàêëþ÷àåòñÿ â òîì, ÷òî ñèñòåìíûé crontab-ôàéë èìååò äîïîëíèòåëüíîå ïîëå, óêàçûâàþùåå, êàêîé ïîëüçîâàòåëü çàïóñêàåò êîìàíäó.  ñèñòåìíîì crontab-ôàéëå, ïîñòàâëÿåìîì ñ FreeBSD è èñïîëüçóåìîì ïî óìîë÷àíèþ, ýòî ïîëüçîâàòåëü root äëÿ âñåõ ñòðîê. Åñëè ýòîò crontab-ôàéë èñïîëüçóåòñÿ â êà÷åñòâå crontab-ôàéëà ïîëüçîâàòåëÿ root (÷òî íå òî æå ñàìîå , ÷òî ñèñòåìíûé
70
Ãëàâà 10. Ñèñòåìíîå àäìèíèñòðèðîâàíèå
crontab-ôàéë), cron(8) ïîëàãàåò, ÷òî ñëîâî root ÿâëÿåòñÿ ïåðâûì â êîìàíäå íà âûïîëíåíèå, íî òàêîé êîìàíäû íå ñóùåñòâóåò.
4. Êîìàíäà su âûäàåò, ÷òî you are not in the correct group to su root, êîãäà ÿ ïûòàþñü ñìåíèòü ïðèâèëåãèè íà root. Ýòî îñîáåííîñòü ðàáîòû ñèñòåìû çàùèòû. Äëÿ òîãî, ÷òîáû èçìåíèòü ñâîè ïðèâèëåãèè íà ïîëüçîâàòåëÿ root (èëè ëþáîãî äðóãîãî ïîëüçîâàòåëÿ, èìåþùåãî ïðèâèëåãèè àäìèíèñòðàòîðà), âû äîëæíû áûòü ÷ëåíîì ãðóïïû wheel. Åñëè áû ýòîãî íå áûëî, ëþáîé, èìåþùèé äîñòóï ê ñèñòåìå è óçíàâøèé ïàðîëü ïîëüçîâàòåëÿ root, ñìîã ïîëó÷èòü â ñèñòåìå àäìèíèñòðàòîðñêèå ïîëíîìî÷èÿ. Ñ òàêîé æå çàùèòîé ýòîãî íå ïîëó÷èòñÿ; su(1) áóäåò ïðåïÿòñòâîâàòü ïîïûòêàì äàæå ââåñòè ïàðîëü, åñëè íåêòî íå ÿâëÿåòåñü ÷ëåíîì ãðóïïû wheel. ×òîáû ðàçðåøèòü êîìó-ëèáî ìåíÿòü ïðèâèëåãèè íà root, ïðîñòî âêëþ÷èòå åãî â ãðóïïó wheel.
5. ß ñäåëàë îøèáêó â ôàéëå rc.conf èëè â êàêîì-òî äðóãîì ôàéëå íà÷àëüíîé çàãðóçêè, è òåïåðü íå ìîãó åãî îòðåäàêòèðîâàòü èç-çà òîãî, ÷òî ôàéëîâàÿ ñèñòåìà íàõîäèòñÿ â ðåæèìå òîëüêî äëÿ ÷òåíèÿ. ×òî ìíå äåëàòü? Ïðè ïîëó÷åíèè ïðèãëàøåíèÿ íà ââîä ïîëíîãî ïóòè äî êîìàíäíîãî ïðîöåññîðà, ïðîñòî íàæìèòå ENTER, à çàòåì âûïîëíèòå êîìàíäó mount / äëÿ ïîâòîðíîãî ìîíòèðîâàíèÿ êîðíåâîé ôàéëîâîé ñèñòåìû â ðåæèìå ÷òåíèÿ/çàïèñè. Âàì ìîæåò òàêæå ïîòðåáîâàòüñÿ âûïîëíèòü êîìàíäó mount -a -t ufs äëÿ ìîíòèðîâàíèÿ ôàéëîâîé ñèñòåìû, â êîòîðîé ðàñïîëîæåí âàø ëþáèìûé ðåäàêòîð. Åñëè ðåäàêòîð ðàñïîëîæåí íà ñåòåâîé ôàéëîâîé ñèñòåìå, òî âàì ïîòðåáóåòñÿ âûïîëíèòü ñåòåâûå íàñòðîéêè âðó÷íóþ äî ìîíòèðîâàíèÿ ñåòåâîé ôàéëîâîé ñèñòåìû, ëèáî âîñïîëüçîâàòüñÿ ðåäàêòîðîì, íàõîäÿùèìñÿ â ëîêàëüíîé ôàéëîâîé ñèñòåìå, òàêèì, êàê ed(1). Åñëè âû ñîáèðàåòåñü èñïîëüçîâàòü ïîëíîýêðàííûé ðåäàêòîð, òàêîé, êàê vi(1) èëè emacs(1), òî âàì íóæíî áóäåò âûïîëíèòü êîìàíäó export TERM=cons25, ÷òîáû òàêèå ðåäàêòîðû ñìîãëè êîððåêòíî âçÿòü äàííûå èç áàçû äàííûõ termcap(5). Ïîñëå âûïîëíåíèÿ ýòèõ øàãîâ âû ñìîæåòå îòðåäàêòèðîâàòü ôàéë /etc/rc.conf òàê, êàê âû ýòî îáû÷íî äåëàåòå äëÿ èñïðàâëåíèÿ îøèáêè. Ñîîáùåíèå îá îøèáêå, âûâîäèìîå ñðàçó æå ïîñëå ñîîáùåíèé ïðè çàãðóçêå ÿäðà, äîëæíî óêàçàòü âàì íà íîìåð ñòðîêè â ôàéëå, êîòîðàÿ ñîäåðæèò îøèáêó.
6. Ó ìåíÿ ïðîáëåìû ñ óñòàíîâêîé ïðèíòåðà. Îáðàòèòåñü ê ñîîòâåòñòâóþùåìó ðàçäåëó (../handbook/printing.html) Ðóêîâîäñòâà, ïîñâÿù¼ííîìó ïå÷àòè.  í¼ì îïèñàíû ðåøåíèÿ áîëüøèíñòâà âàøèõ ïðîáëåì. Íåêîòîðûå ïðèíòåðû äëÿ âûïîëíåíèÿ ëþáûõ îïåðàöèé ïî ïå÷àòè òðåáóþò íàëè÷èÿ íà õîñòå äðàéâåðà. Òàêèå òàê íàçûâàåìûå ”WinPrinters” èçíà÷àëüíî âî FreeBSD íå ïîääåðæèâàþòñÿ. Åñëè âàø ïðèíòåð íå ðàáîòàåò â DOS èëè Windows NT 4.0, òî, ñêîðåå âñåãî, ýòî WinPrinter. Åäèíñòâåííîå, ÷òî âàì îñòà¼òñÿ ñäåëàòü â íàäåæäå íà òî, ÷òî âû çàñòàâèòå åãî ðàáîòàòü, ýòî ïðîâåðèòü, ïîääåðæèâàåò ëè åãî ïîðò print/pnm2ppa.
71
Ãëàâà 10. Ñèñòåìíîå àäìèíèñòðèðîâàíèå
7. Ðàñêëàäêà êëàâèàòóðû íåâåðíà. Ïîæàëóéñòà, îáðàòèòåñü ê ðàçäåëó Ðóêîâîäñòâà, ïîñâÿù¼ííîìó èñïîëüçîâàíèþ ëîêàëèçàöèè (../handbook/using-localization.html), à èìåííî ê ÷àñòè, îïèñûâàþùåé íàñòðîéêó êîíñîëè (../handbook/using-localization.html#SETTING-CONSOLE).
8. Ó ìåíÿ ïðè çàãðóçêå ïîÿâëÿþòñÿ ñîîáùåíèÿ âèäà unknown: can’t assign resources Íèæå ñëåäóåò ÷àñòü ïèñüìà, îïóáëèêîâàííîãî â ñïèñêå ðàññûëêè freebsd-current. Ñîîáùåíèå ”can’t assign resources” ãîâîðèò î òîì, ÷òî óñòðîéñòâî ÿâëÿåòñÿ óñòàðåâøèì ISA-óñòðîéñòâîì, äëÿ êîòîðîãî â ÿäðå ïðèñóòñòâóåò äðàéâåð, íå ïîääåðæèâàþùèé PnP. Ê òàêèì óñòðîéñòâàì îòíîñÿòñÿ êîíòðîëëåðû êëàâèàòóðû, ìèêðîñõåìà êîíòðîëëåðà ïðîãðàììèðóåìûõ ïðåðûâàíèé, à òàêæå äðóãèå ÷àñòè ñòàíäàðòíîãî íàáîðà. Ðåñóðñû íå ìîãóò âûäåëåíû, ïîòîìó ÷òî óæå åñòü äðàéâåð, èñïîëüçóþùèé ýòè àäðåñà. —Garrett Wollman <
[email protected]>, 24 àïðåëÿ 2001
9. Ïî÷åìó íå ïîëó÷àåòñÿ çàñòàâèòü ðàáîòàòü äèñêîâûå êâîòû? 1. Íå âêëþ÷àéòå êâîòèðîâàíèå íà /, 2. Ïîìåùàéòå ôàéë ñ êâîòàìè â òó ôàéëîâóþ ñèñòåìó, êîòîðóþ îí îáñëóæèâàåò, òî åñòü:
Ôàéëîâàÿ ñèñòåìà
Ôàéë êâîò
/usr
/usr/admin/quotas
/home
/home/admin/quotas
...
...
10. Ïîääåðæèâàåò ëè FreeBSD âûçîâû IPC èç System V? Äà, FreeBSD ïîääåðæèâàåò IPC èç System V, â òîì ÷èñëå ñîâìåñòíî èñïîëüçóåìóþ ïàìÿòü, ñîîáùåíèÿ è ñåìàôîðû. Âî FreeBSD âåðñèé, âûøåäøèõ ïîñëå 3.2, IPC èç System V ïîääåðæèâàþòñÿ â ÿäðå GENERIC.  áîëåå ðàííèõ âåðñèÿõ FreeBSD äëÿ âêëþ÷åíèÿ èõ ïîääåðæêè íóæíî äîáàâèòü ñëåäóþùèå ñòðîêè â ôàéë êîíôèãóðàöèè ÿäðà.
options options options
SYSVSHM SYSVSEM SYSVMSG
# enable shared memory # enable for semaphores # enable for messaging
Ïåðåêîìïèëèðóéòå è ïåðåóñòàíîâèòå ÿäðî.
11. Êàêîå äðóãîå ïðîãðàììíîå îáåñïå÷åíèå äëÿ ïî÷òîâîãî ñåðâåðà ìîæíî èñïîëüçîâàòü âìåñòî Sendmail? Sendmail (http://www.sendmail.org/) ÿâëÿåòñÿ ïðîãðàììíûì îáåñïå÷åíèåì äëÿ ðàáîòû ïî÷òîâîãî ñåðâåðà âî FreeBSD, èñïîëüçóåìûì ïî óìîë÷àíèþ, íî âû ìîæåòå ñ ëåãêîñòüþ çàìåíèòü åãî äðóãèì MTA (ê ïðèìåðó, óñòàíîâëåííûì èç ïîðòîâ).  äåðåâå ïîðòîâ óæå èìåþòñÿ ðàçëè÷íûå àëüòåðíàòèâíûå MTA, èç êîòîðûõ mail/exim, mail/postfix, mail/qmail, mail/zmailer ÿâëÿþòñÿ îäíèìè èç ñàìûõ ïîïóëÿðíûõ.
72
Ãëàâà 10. Ñèñòåìíîå àäìèíèñòðèðîâàíèå
Ðàçíîîáðàçèå õîðîøî, à òîò ôàêò, ÷òî ó âàñ åñòü âûáîð èç ìíîãèõ ðàçëè÷íûõ ïî÷òîâûõ ñåðâåðîâ, ÿâëÿåòñÿ õîðîøèì ïðèçíàêîì; ïîýòîìó ïîïûòàéòåñü íå çàäàâàòü âîïðîñû òèïà ”Sendmail ëó÷øå, ÷åì Qmail?” â ñïèñêàõ ðàññûëêè. Åñëè âû çàõîòèòå ïîëó÷èòü îòâåò, ñíà÷àëà ïðîñìîòðèòå àðõèâû ñïèñêîâ ðàññûëêè. Äîñòîèíñòâà è íåäîñòàòêè êàæäîãî èç èìåþùèõñÿ MTA óæå îáñóæäàëèñü íåîäíîêðàòíî.
12. ß çàáûë ïàðîëü ïîëüçîâàòåëÿ root! ×òî äåëàòü? Áåç ïàíèêè! Ïðîñòî ïåðåçàïóñòèòå ñèñòåìó, íàáåðèòå boot -s â ïðèãëàøåíèè Boot: (èëè ïðîñòî -s â ñëó÷àå èñïîëüçîâàíèÿ âåðñèé FreeBSD äî 3.2) äëÿ âõîäà â îäíîïîëüçîâàòåëüñêèé ðåæèì. Íà âîïðîñ îá èñïîëüçóåìîé îáîëî÷êå íàæìèòå ENTER. Íà ïðèãëàøåíèå # ââåäèòå mount -u /, ÷òîáû ïåðåìîíòèðîâàòü êîðíåâóþ ôàéëîâóþ ñèñòåìó â ðåæèìå ÷òåíèÿ/çàïèñè, ïîñëå ÷åãî âûïîëíèòå êîìàíäó mount -a äëÿ ìîíòèðîâàíèÿ âñåõ ôàéëîâûõ ñèñòåì. Çàïóñòèòå êîìàíäó passwd root, ÷òîáû ñìåíèòü ïàðîëü ïîëüçîâàòåëÿ root, à çàòåì exit(1) äëÿ ïðîäîëæåíèÿ ïðîöåññà çàãðóçêè.
13. Êàê çàïðåòèòü ïåðåçàãðóçêó ïî íàæàòèþ Control+Alt+Delete? Åñëè âû èñïîëüçóåòå äðàéâåð êîíñîëè syscons (êîòîðûé ÿâëÿåòñÿ ñòàíäàðòíûì), ïåðåãåíåðèðóéòå è óñòàíîâèòå íîâîå ÿäðî ñî ñëåäóþùèì ïàðàìåòðîì.
options SC_DISABLE_REBOOT â êîíôèãóðàöèîííîì ôàéëå. Åñëè æå âû èñïîëüçóåòå äðàéâåð êîíñîëè PCVT, òî âìåñòî âûøåóêàçàííîé âêëþ÷èòå â êîíôèãóðàöèîííûé ôàéë ñëåäóþùóþ ñòðîêó.
options PCVT_CTRL_ALT_DEL
14. Êàê ïðåîáðàçîâàòü òåêñòîâûå ôàéëû DOS â ôîðìàò Unix? Èñïîëüçóéòå òàêóþ êîìàíäó: % perl -i.bak -npe ’s/\r\n/\n/g’ file ...
ãäå file - ýòî èìÿ ôàéëà(îâ) äëÿ ïðåîáðàçîâàíèÿ. Ïðåîáðàçîâàíèå äåëàåòñÿ â òîì æå ñàìîì ôàéëå, îðèãèíàëüíûå ôàéëû ñîõðàíÿþòñÿ ñ ðàñøèðåíèåì .bak. Ýòî ïðåîáðàçîâàíèå òàêæå ìîæíî âûïîëíèòü ñ ïîìîùüþ êîìàíäû tr(1): % tr -d ’\r’ < dos-text-file > unix-file
ãäå dos-text-file - ýòî èìÿ ôàéëà, ñîäåðæàùåãî òåêñò DOS, à â ôàéë unix-file áóäåò ïîìåù¼í óæå ïðåîáðàçîâàííûé òåêñò. Ýòîò ñïîñîá ìîæåò ðàáîòàòü ãîðàçäî áûñòðåå, ÷åì ïðè èñïîëüçîâàíèè perl.
15. Êàê ïðåðâàòü ïðîöåññ ïî èìåíè? Èñïîëüçóéòå êîìàíäó killall(1).
73
Ãëàâà 10. Ñèñòåìíîå àäìèíèñòðèðîâàíèå
16. Ïî÷åìó su âûäà¼ò ñîîáùåíèå î òîì, ÷òî ÿ íå âõîæó â root ACL? Ýòà îøèáêà âûäà¼òñÿ ðàñïðåäåë¼ííîé ñèñòåìîé àóòåíòèôèêàöèè Kerberos. Ýòà îøèáêà íå ôàòàëüíà, îäíàêî ýòî ðàçäðàæàåò. Âû ìîæåòå çàïóñòèò su ñ êëþ÷îì -K ëèáî äåèíñòàëëèðîâàòü Kerberos, êàê îïèñàíî â ñëåäóþùåì ðàçäåëå.
17. Êàê äåèíñòàëëèðîâàòü Kerberos? ×òîáû óáðàòü Kerberos èç ñèñòåìû, ïåðåóñòàíîâèòå äèñòðèáóòèâ bin òîãî ðåëèçà, êîòîðûé ó âàñ çàïóùåí. Åñëè ó âàñ åñòü CDROM, âû ìîæåòå ñìîíòèðîâàòü êîìïàêò-äèñê (ïîëîæèì, â êàòàëîã /cdrom) è âûïîëíèòü êîìàíäó # cd /cdrom/bin # ./install.sh
Ëèáî âû ìîæåòå óáðàòü âñå îïöèè MAKE_KERBEROS èç ôàéëà /etc/make.conf è âûïîëíèòü ïîëíîå ïåðåñòðîåíèå ñèñòåìû.
18. ×òî ñëó÷èëîñü ñ /dev/MAKEDEV? Âî FreeBSD 5.X èñïîëüçóåòñÿ ñèñòåìà devfs(8) óñòðîéñòâ ïî òðåáîâàíèþ. Äðàéâåðû óñòðîéñòâ àâòîìàòè÷åñêè ñîçäàþò íîâûå ôàéëû óñòðîéñòâ, êàê òîëüêî â íèõ ïîÿâëÿåòñÿ íåîáõîäèìîñòü, òàêèì îáðàçîì îáõîäÿñü áåç /dev/MAKEDEV. Åñëè âû ðàáîòàåòå ñ FreeBSD 4.X èëè áîëåå ðàííåé âåðñèåé, è ôàéë /dev/MAKEDEV îòñóòñòâóåò, òî ó âàñ äåéñòâèòåëüíî åñòü ïðîáëåìà. Âîçüìèòå êîïèþ èç èñõîäíûõ êîäîâ ñèñòåìû, êàê ïðàâèëî, èç /usr/src/etc/MAKEDEV.
19. Êàê äîáàâèòü â ñèñòåìó äîïîëíèòåëüíûå ïñåâäîòåðìèíàëû? Åñëè ó âàñ ìíîãî ïîëüçîâàòåëåé, ðàáîòàþùèé â ñåàíñàõ telnet, ssh, X èëè â screen, âàì ìîæåòå ñòîëêíóòüñÿ ñ ïðîáëåìîé íåõâàòêè ïñåâäîòåðìèíàëîâ. Èõ êîëè÷åñòâî ìîæíî óâåëè÷èòü ñëåäóþùèì îáðàçîì:
1.
Îòêîìïèëèðóéòå è èíñòàëëèðóåòå íîâîå ÿäðî, â êîíôèãóðàöèîííûé ôàéë êîòîðîãî âõîäèò òàêàÿ ñòðîêà:
pseudo-device pty 256
2.
Âûïîëíèòå ñëåäóþùèå êîìàíäû: # cd /dev # sh MAKEDEV pty{1,2,3,4,5,6,7}
äëÿ ñîçäàíèÿ 256 äîïîëíèòåëüíûõ ôàéëîâ óñòðîéñòâ äëÿ íîâûõ òåðìèíàëîâ.
3.
Îòðåäàêòèðóéòå ôàéë /etc/ttys, äîáàâèâ ïî ñòðîêå äëÿ êàæäîãî èç 256 òåðìèíàëîâ. Îíè äîëæíû ñîîòâåòñòâîâàòü ôîðìàòó ñóùåñòâóþùèõ ñòðîê, òî åñòü äîëæíû âûãëÿäåòü âîò òàê:
ttyqc none network
74
Ãëàâà 10. Ñèñòåìíîå àäìèíèñòðèðîâàíèå
Ïîðÿäîê íàçíà÷åíèÿ áóêâ ïðè çàïèñè â âèäå ðåãóëÿðíîãî âûðàæåíèÿ èìååò âèä tty[pqrsPQRS][0-9a-v].
4.
Òåïåðü îñòàëîñü òîëüêî ïåðåçàïóñòèòü ñèñòåìó ñ íîâûì ÿäðîì.
20. Ïî÷åìó íå ïîëó÷àåòñÿ ñîçäàòü óñòðîéñòâî snd0? Òàêîãî óñòðîéñòâà, êàê snd, íå ñóùåñòâóåò. Ýòî íàçâàíèå èñïîëüçóåòñÿ â êà÷åñòâå êðàòêîãî îáîçíà÷åíèÿ ðàçëè÷íûõ óñòðîéñòâ, êîòîðûå ñîñòàâëÿþò âî FreeBSD çâóêîâîé äðàéâåð, òàêèõ êàê mixer, sequencer è dsp. Äëÿ ñîçäàíèÿ ýòèõ óñòðîéñòâ âû äîëæíû ñäåëàòü ñëåäóþùåå: # cd /dev # sh MAKEDEV snd0
Çàìå÷àíèå: Âû ìîæåòå ïðîïóñòèòü ýòîò øàã, åñëè èñïîëüçóåòå FreeBSD 5.0-RELEASE èëè áîëåå íîâóþ âåðñèþ ñ âêëþ÷åííûì ìåõàíèçìîì devfs(5).
21. Êàê ïåðå÷èòàòü ñîäåðæèìîå /etc/rc.conf è ïåðåñòàðòîâàòü /etc/rc áåç ïåðåçàãðóçêè ñèñòåìû? Ïåðåéäèòå â îäíîïîëüçîâàòåëüñêèé ðåæèì, à çàòåì âîçâðàòèòåñü îáðàòíî â ìíîãîïîëüçîâàòåëüñêèé. Íà êîíñîëè âûïîëíèòå ñëåäóþùåå: # shutdown now
(Çàìå÷àíèå: áåç -r èëè -h) # return # exit
22. ß ïûòàëñÿ îáíîâèòü ìîþ ñèñòåìó äî ïîñëåäíåé -STABLE, à ïîëó÷èë -RC èëè -PRERELEASE! ×òî ïðîèñõîäèò? Êðàòêèé îòâåò: ýòî æå ïðîñòî íàçâàíèå. RC îçíà÷àåò ”Release Candidate”. Ýòî çíà÷èò, ÷òî âñêîðå ïðîèçîéäåò âûõîä ðåëèçà. Âî FreeBSD ïîÿâëåíèå -PRERELEASE, êàê ïðàâèëî, ðàâíîçíà÷íî ïðåêðàùåíèþ âíåñåíèÿ èçìåíåíèé â êîä ñèñòåìû ïåðåä ïîÿâëåíèåì ðåëèçà. (Äëÿ íåêîòîðûõ ðåëèçîì ìåòêà -BETA èñïîëüçîâàëàñü òî÷íî òàê æå, êàê è PRERELEASE.) Ïîäðîáíûé îòâåò: âî FreeBSD ðåëèçû âûïóñêàþòñÿ èç îäíîãî èç äâóõ ìåñò. Êðóïíûå ðåëèçû, òî÷êà-íîëü, òàêèå, êàê 3.0-RELEASE è 4.0-RELEASE, îòâåòâëÿþòñÿ îò îñíîâíîãî ïîòîêà ðàçðàáîòêè, áîëåå èçâåñòíîãî êàê -CURRENT. Ìåëêèå ðåëèçû, òàêèå, êàê 3.1-RELEASE èëè 4.2-RELEASE, ÿâëÿëèñü ñíýïøîòàìè àêòèâíîé âåòêè -STABLE. Íà÷èíàÿ ñ 4.3-RELEASE, êàæäûé ðåëèç òàêæå èìååò ñâîþ âåòâü, êîòîðîé ìîãóò ñëåäîâàòü òå, êîìó íåîáõîäèì ñâåðõêîíñåðâàòèâíûé ìåòîä îáíîâëåíèÿ (êàê ïðàâèëî, âíåñåíèå òîëüêî òåõ èñïðàâëåíèé, êîòîðûå êàñàþòñÿ âîïðîñîâ îáåñïå÷åíèÿ áåçîïàñíîñòè).
75
Ãëàâà 10. Ñèñòåìíîå àäìèíèñòðèðîâàíèå
Êîãäà äåëàåòñÿ ðåëèç, òî âåòâü, èç êîòîðîé îí âûïóñêàåòñÿ, ïîäâåðãàåòñÿ íåêîòîðîé ïîäãîòîâêå. ×àñòüþ ýòîãî ïðîöåññà ÿâëÿåòñÿ çàìîðàæèâàíèå êîäà. Êîãäà èíèöèèðóåòñÿ çàìîðàæèâàíèå êîäà, òî èìÿ âåòêè èçìåíÿåòñÿ äëÿ òîãî, ÷òîáû îòðàçèòü ôàêò áëèçîñòè ðåëèçà. Íàïðèìåð, åñëè âåòêà íàçûâàëàñü 4.5-STABLE, òî å¼ èìÿ áóäåò èçìåíåíî íà 4.6-PRERELEASE, ÷òîáû îáîçíà÷èòü ìîìåíò ïðåêðàùåíèÿ âíåñåíèÿ èçìåíåíèé â êîä ñèñòåìû è ïåðèîä äîïîëíèòåëüíîãî òåñòèðîâàíèÿ ïåðåä âûõîäîì ðåëèçà.  ýòî âðåìÿ èñïðàâëåíèÿ îøèáîê ìîãóò áûòü âíåñåíû â êîä ñèñòåìû äëÿ òîãî, ÷òîáû áûòü âêëþ÷åííûìè â ðåëèç. Êîãäà èñõîäíûé êîä ïîäãîòîâëåí ê âûïóñêó ðåëèçà, èìÿ áóäåò èçìåíåíî íà 4.6-RC äëÿ îáîçíà÷åíèÿ òîãî, ÷òî ðåëèç áóäåò ñäåëàí, ñêîðåå âñåãî, èìåííî èç ýòîãî êîäà. Êîãäà êîä íàõîäèòñÿ íà ýòàïå RC, â í¼ì ìîãóò èñïðàâëÿòüñÿ òîëüêî ñàìûå êðèòè÷íûå îøèáêè. Êàê òîëüêî ðåëèç (â íàøåì ïðèìåðå 4.6-RELEASE) è âåòêà ðåëèçà áóäóò ñîçäàíû, âåòâü áóäåò ïåðåèìåíîâàíà â
4.6-STABLE. Äëÿ ïîëó÷åíèÿ äîïîëíèòåëüíîé èíôîðìàöèè î íîìåðàõ âåðñèé è ðàçëè÷íûõ âåòêàõ CVS îáðàòèòåñü ê ñòàòüå î âûïóñêå ðåëèçîâ (../../articles/releng/article.html).
23. ß ïîïûòàëñÿ óñòàíîâèòü íîâîå ÿäðî, îäíàêî óòèëèòà chflags íå ñðàáîòàëà. Êàê ýòî îáîéòè? Êðàòêèé îòâåò: Ñêîðåå âñåãî, âû ðàáîòàåòå â ðåæèìå áåçîïàñíîñòè, áîëüøåì, ÷åì 0. Äëÿ óñòàíîâêè ÿäðà ïåðåçàãðóçèòå ìàøèíó è âîéäèòå â îäíîïîëüçîâàòåëüñêèé ðåæèì. Ïîäðîáíûé îòâåò: FreeBSD çàïðåùàåò ìåíÿòü ñèñòåìíûå ôëàãè ïðè ðàáîòå íà óðîâíÿõ áåçîïàñíîñòè, ïðåâûøàþùèõ 0. Âû ìîæåòå îïðåäåëèòü âàø óðîâåíü òàêîé êîìàíäîé: # sysctl kern.securelevel
Âû íå ìîæåòå ïîíèçèòü óðîâåíü áåçîïàñíîñòè; äëÿ óñòàíîâêè ÿäðà âàì íóæíî ïåðåçàãðóçèòüñÿ â îäíîïîëüçîâàòåëüñêèé ðåæèì, èëè èçìåíèòü óðîâåíü áåçîïàñíîñòè â /etc/rc.conf, à çàòåì âûïîëíèòü ïåðåçàãðóçêó. Îáðàòèòåñü ê ñòðàíèöå Ñïðàâî÷íèêà ïî init(8) çà ïîäðîáíîé èíôîðìàöèåé îá óðîâíå áåçîïàñíîñòè è ïîñìîòðèòå /etc/defaults/rc.conf è ñïðàâî÷íóþ ñòðàíèöó ïî rc.conf(5) äëÿ âûÿñíåíèÿ ïîäðîáíîñòåé î ôàéëå rc.conf.
24. Íå ïîëó÷àåòñÿ èçìåíèòü ñèñòåìíîå âðåìÿ áîëüøå ÷åì íà îäíó ñåêóíäó! Êàê ýòî îáîéòè? Êðàòêèé îòâåò: Ñêîðåå âñåãî, âû ðàáîòàåòå íà óðîâíå áåçîïàñíîñòè, ïðåâûøàþùåì 1. Äëÿ ñìåíû äàòû ïåðåçàãðóçèòå ìàøèíó è âîéäèòå â îäíîïîëüçîâàòåëüñêèé ðåæèì. Ïîäðîáíûé îòâåò: FreeBSD çàïðåùàåò ìåíÿòü ñèñòåìíîå âðåìÿ íà áîëüøå ÷åì îäíó ñåêóíäó ïðè ðàáîòå íà óðîâíÿõ áåçîïàñíîñòè, ïðåâûøàþùèõ 1. Âû ìîæåòå îïðåäåëèòü âàø óðîâåíü òàêîé êîìàíäîé: # sysctl kern.securelevel
Âû íå ìîæåòå ïîíèçèòü óðîâåíü áåçîïàñíîñòè; äëÿ èçìåíåíèÿ äàòû âàì íóæíî ïåðåçàãðóçèòüñÿ â îäíîïîëüçîâàòåëüñêèé ðåæèì, èëè èçìåíèòü óðîâåíü áåçîïàñíîñòè â /etc/rc.conf, à çàòåì âûïîëíèòü ïåðåçàãðóçêó. Îáðàòèòåñü ê ñòðàíèöå Ñïðàâî÷íèêà ïî init(8) çà ïîäðîáíîé èíôîðìàöèåé îá óðîâíå áåçîïàñíîñòè, è ïîñìîòðèòå /etc/defaults/rc.conf è ñïðàâî÷íóþ ñòðàíèöó ïî rc.conf(5) äëÿ âûÿñíåíèÿ ïîäðîáíîñòåé î ôàéëå rc.conf.
76
Ãëàâà 10. Ñèñòåìíîå àäìèíèñòðèðîâàíèå
25.  rpc.statd; åñòü îøèáêà ðàáîòû ñ ïàìÿòüþ ! Îí èñïîëüçóåò 256 Mb ïàìÿòè ! Íåò, òàì íåò îøèáîê è îí íå èñïîëüçóåò 256 Mb ïàìÿòè. Åìó ïðîñòî íðàâèòñÿ (÷òî îí ïîñòîÿííî è äåëàåò) îòîáðàæàòü íåïðèëè÷íî áîëüøîé êóñîê ïàìÿòè â ñâîå àäðåñíîå ïðîñòðàíñòâî äëÿ óäîáñòâà. Çäåñü íåò íè÷åãî íåïðàâèëüíîãî ñ òåõíè÷åñêîé òî÷êè çðåíèÿ, ýòî ïðîñòî ñáèâàåò ñ òîëêó ïðîãðàììû âðîäå top(1) è ps(1)
rpc.statd(8) îòîáðàæàåò ñâîé ñòàòóñíûé ôàéë (íàõîäÿùèéñÿ íà /var) â ñâîå àäðåñíîå ïðîñòðàíñòâî. Äëÿ òîãî ÷òîá ïîñòîÿííî íå áåñïîêîèòñÿ î áóäóùèõ ïåðåîòðàæåíèÿõ, êîãäà ôàéë âûðàñòåò â ðàçìåðàõ, îí ïðîñòî îòîáðàæàåò åãî ñ îãðîìíûì ðàçìåðîì çàðàíåå. Ýòî ïðîñòî çàìåòèòü â èñõîäíûõ òåêñòàõ, ãäå êàê âû ìîæåòå óâèäåòü ïàðàìåòð äëèíà ê ôóíêöèè mmap(2) èìååò çíà÷åíèå 0x10000000, èëè îäíà øåñòíàäöàòàÿ àäðåñíîãî ïðîñòðàíñòâà äëÿ IA32, òî åñòü 256Mb.
26. Ïî÷åìó ÿ íå ìîãó ñíÿòü ñ ôàéëà ôëàã schg? Âû ðàáîòàåòå â ñèñòåìå ñ ïîâûøåííûì (òî åñòü áîëüøèì, ÷åì 0) óðîâíåì çàùèòû. Ïîíèçüòå óðîâåíü çàùèòû è ïîïðîáóéòå åùå ðàç. Äëÿ ïîëó÷åíèÿ áîëåå ïîäðîáíîé èíôîðìàöèè îáðàòèòåñü ê ðàçäåëó FAQ îá óðîâíå çàùèòû è ñïðàâî÷íîé ñòðàíèöå î init(8).
27. Ïî÷åìó â SSH àóòåíòèôèêàöèÿ ïîñðåäñòâîì ôàéëà .shosts íå âêëþ÷åíà ïî óìîë÷àíèþ â ïîñëåäíèõ âåðñèÿõ FreeBSD? Ïðè÷èíîé, ïî êîòîðîé .shosts àóòåíòèôèêàöèÿ íå ðàáîòàåò ïî óìîë÷àíèþ â ïîñëåäíèõ âåðñèÿõ FreeBSD, ÿâëÿåòñÿ òî ÷òî ssh(1) íå óñòàíàâëèâàåòñÿ áîëåå ñ áèòîì èçìåíåíèÿ ïðèâèëåãèé íà ïîëüçîâàòåëÿ root. Åñëè âû õîòèòå ”èñïðàâèòü” ýòî, òî âû ìîæåòå ñäåëàòü îäíî èç äâóõ íèæåïðèâåä¼ííûõ äåéñòâèé: • Êàê ïîñòîÿííóþ ïðàâêó, óñòàíîâèòå ENABLE_SUID_SSH â true â ôàéëå /etc/make.conf è
ïåðåêîìïèëèðóéòå ssh. • Êàê âðåìåííóþ ïðàâêó èçìåíèòå ïðàâà äîñòóïà ê ôàéëó /usr/bin/ssh íà 4555 êîìàíäîé chmod
4555 /usr/bin/ssh èç-ïîä àäìèíèñòðàòîðà. À ïîòîì äîáàâüòå ñòðîêó ENABLE_SUID_SSH=true â ôàéë /etc/make.conf, ÷òîá ýòî èçìåíåíèå îñòàëîñü â ñèëå ïîñëå î÷åðåäíîãî îáíîâëåíèÿ ñèñòåìû ñ ïîìîùüþ make world.
28. ×òî òàêîå vnlru? vnlru ñáðàñûâàåò è îñâîáîæäàåò vnode, êîãäà ñèñòåìà äîñòèãàåò ñâîåãî îãðàíè÷åíèÿ ïî ïàðàìåòðó kern.maxvnodes. Ýòîò ïîäïðîöåññ ÿäðà â îñíîâíîì ðàáîòàåò âõîëîñòóþ è àêòèâèðóåòñÿ òîëüêî ïðè íàëè÷èè îãðîìíîãî îáúåìà ÎÇÓ è îáðàùåíèè ê äåñÿòêàì èëè òûñÿ÷àì ôàéëîâ ìàëåíüêîãî ðàçìåðà.
29. ×òî îçíà÷àþò ðàçëè÷íûå ñîñòîÿíèÿ ïàìÿòè, ïîêàçûâàåìûå óòèëèòîé top? • Active: ïî ñòàòèñòèêå ñòðàíèöû íåäàâíî èñïîëüçîâàëèñü. • Inactive: ïî ñòàòèñòèêå ñòðàíèöû íåäàâíî íå èñïîëüçîâàëèñü. • Cache: (íàèáîëåå ÷àñòî) ñòðàíèöû, êîòîðûõ ïåðåìåùåíû èç ÷èñëà íåàêòèâíûõ â ñòàòóñ, â êîòîðîì
îíè ñîäåðæàò äàííûå, íî êîòîðûå ìîãóò ÷àñòî ñðàçó æå èñïîëüçîâàòüñÿ ïîâòîðíî (êàê ñ èõ ñòàðûì ñîäåðæèìûì, òàê è ïîâòîðíî ñ íîâûì.) Ýòî ìîæåò áûòü íåêîòîðîå íåïîñðåäñòâåííîå ïåðåìåùåíèå èç ÷èñëà àêòèâíûõ â ñîñòîÿíèå ’cache’, åñëè èçâåñòíà ÷èñòîòà (íåìîäèôèöèðîâàííîñòü) ñòðàíèöû, íî
77
Ãëàâà 10. Ñèñòåìíîå àäìèíèñòðèðîâàíèå
òàêîå ïåðåìåùåíèå îïðåäåëÿåòñÿ ïîëèòèêîé, çàâèñÿùåé îò âûáîðà àëãîðèòìà ðàçðàáîò÷èêîì VM-ñèñòåìû. • Free: ñòðàíèöû, íå ñîäåðæàùèå äàííûõ, è êîòîðûå ìîãóò áûòü èñïîëüçîâàíû ïðè íåêîòîðûõ
óñëîâèÿõ, êîãäà ñòðàíèöû êýøà ìîãóò íå ïîäîéòè. Ñâîáîäíûå ñòðàíèöû ìîãóò ïîâòîðíî èñïîëüçîâàòüñÿ â ñîñòîÿíèÿõ ïðåðûâàíèÿ èëè ïðîöåññàõ. • Wired: ñòðàíèöû, çàôèêñèðîâàííûå â ïàìÿòè, îáû÷íî äëÿ èñïîëüçîâàíèÿ ÿäðîì, à òàêæå èíîãäà äëÿ
ñïåöèàëüíîãî èñïîëüçîâàíèÿ ïðîöåññàìè. Ñòðàíèöû ÷àùå âñåãî çàïèñûâàþòñÿ íà äèñê (òèïà ñèíõðîíèçàöèè VM), êîãäà îíè íàõîäÿòñÿ â ñîñòîÿíèè ’inactive’, îäíàêî ñòðàíèöû â ñîñòîÿíèè ’active’ òàêæå ìîãóò ñáðàñûâàòüñÿ (íî ýòî òðåáóåò íàëè÷èÿ îïðåäåë¼ííûõ âîçìîæíîñòåé ÖÏÓ.) Ýòî çàâèñèò îò íàëè÷èÿ è âîçìîæíîñòè îòñëåæèâàíèÿ ñî ñòîðîíû ÖÏÓ áèòà ’ìîäèôèöèðîâàííîñòè’, è â íåêîòîðûõ ñèòóàöèÿõ ýòî ìîæåò áûòü ëó÷øå äëÿ áëîêà ñèíõðîíèçèðóåìûõ ñòðàíèö VM, âíå çàâèñèìîñòè îò èõ àêòèâíîñòè.  áîëüøèíñòâå âñòðå÷àþùèõñÿ ñèòóàöèé ëó÷øå âñåãî ïðåäñòàâëÿòü ’íåàêòèâíóþ’ î÷åðåäü êàê î÷åðåäü ñðàâíèòåëüíî íåèñïîëüçóåìûõ ñòðàíèö, êîòîðûå ìîãóò áûòü, à ìîãóò è íå áûòü â ïðîöåññå çàïèñè íà äèñê. ’Êýøèðóåìûå’ ñòðàíèöû óæå ’ñèíõðîíèçèðîâàíû’, íå îòîáðàæàþòñÿ, íî äîñòóïíû äëÿ íåïîñðåäñòâåííîãî èñïîëüçîâàíèÿ ïðîöåññîì ñî ñâîåé ñòàðîé èëè íîâîé ïðèâÿçêîé. Ñâîáîäíûå ñòðàíèöû äîñòóïíû íà óðîâíå ïðåðûâàíèÿ, îäíàêî êýøèðóåìûå èëè ñâîáîäíûå ñòðàíèöû ìîãóò èñïîëüçîâàòüñÿ â ïðîöåññå ïîâòîðíî. Êýøèðóåìûå ñòðàíèöû íåäîñòàòî÷íî çàáëîêèðîâàíû äëÿ òîãî, ÷òîáû áûòü äîñòóïíûìè íà óðîâíå ïðåðûâàíèÿ. Åñòü åù¼ íåêîòîðûå äðóãèå ôëàãè (íàïðèìåð, ôëàã Busy èëè ñ÷¼ò÷èê çàíÿòîñòè), êîòîðûå ìîãóò èçìåíèòü íåêîòîðûå îïèñàííûå ïðàâèëà.
30. Ñêîëüêî ñâîáîäíîé ïàìÿòè äîñòóïíî? Åñòü íåñêîëüêî ïîíÿòèé ”ñâîáîäíîé ïàìÿòè”.  îäíîì ñëó÷àå ýòî îáú¼ì ïàìÿòè, íåïîñðåäñòâåííî äîñòóïíîé â äàííûé ìîìåíò áåç ñòðàíè÷íîé âûãðóçêè ÷åãî-ëèáî. Ýòîò îáú¼ì ðàâåí ïðèìåðíî ðàçìåðó î÷åðåäè êýøà + ðàçìåð î÷åðåäè íà âûñâîáîæäåíèå (ñ ó÷¼òîì äîïóñòèìûõ îòêëîíåíèé, çàâèñÿùèõ îò íàñòðîåê ñèñòåìû.)  äðóãîì ñëó÷àå ”ñâîáîäíàÿ ïàìÿòü” îáîçíà÷àåò îáùèé îáú¼ì ïðîñòðàíñòâà VM. Îí ìîæåò ñëîæíî âû÷èñëÿòüñÿ, íî çàâèñèò îò îáú¼ìà ðàçäåëà ïîäêà÷êè è ïàìÿòè. Äðóãèå îïðåäåëåíèÿ ”ñâîáîäíîé ïàìÿòè” òàêæå âîçìîæíû, íî îíè äîñòàòî÷íî áåñïîëåçíû, âåäü â ëþáîì ñëó÷àå âàæíî ñîõðàíÿòü íèçêèé óðîâåíü ïîäêà÷êè è èçáåãàòü èñ÷åðïàíèÿ ðàçäåëà ïîäêà÷êè.
31. ×òî òàêîå /var/empty? ß íå ìîãó åãî óäàëèòü! /var/empty ïðåäñòàâëÿåò ñîáîé êàòàëîã, êîòîðûé èñïîëüçóåò ïðîãðàììà sshd(8) ïðè âûïîëíåíèè ðàçäåëåíèÿ ïîëíîìî÷èé. Êàòàëîã /var/empty ïóñò, åãî âëàäåëüöåì ÿâëÿåòñÿ root è íà í¼ì óñòàíîâëåí ôëàã schg. Õîòÿ ýòîò êàòàëîã óäàëÿòü íå ðåêîìåíäóåòñÿ, äëÿ âûïîëíåíèÿ ýòîé îïåðàöèè âàì íóæíî ñíà÷àëà ñíÿòü ôëàã schg. Îáðàòèòåñü ê ñïðàâî÷íûì ñòðàíèöàì ïî chflags(1) äëÿ ïîëó÷åíèÿ áîëåå ïîëíîé èíôîðìàöèè (è ïîìíèòå ïðî îòâåò íà âîïðîñ î ñíÿòèè ôëàãà schg).
78
Ãëàâà 11. X Window System è âèðòóàëüíûå êîíñîëè 1. ß õî÷ó çàïóñòèòü X, êàê ýòî ñäåëàòü? Ñàìûé ïðîñòîé ñïîñîá - ýòî óêàçàòü âî âðåìÿ èíñòàëëÿöèè, ÷òî âû õîòèòå èñïîëüçîâàòü X. Çàòåì ñëåäóéòå óêàçàíèÿì â äîêóìåíòàöèè ïî óòèëèòå xf86config, êîòîðàÿ ïðåäíàçíà÷åíà äëÿ êîíôèãóðèðîâàíèÿ ðàáîòû XFree86 ñ âàøèì ãðàôè÷åñêèì àäàïòåðîì/ìûøüþ/èòä. Âû ìîæåòå òàêæå ïîïðîáîâàòü ñåðâåð Xaccel. Çà ïîäðîáíîé èíôîðìàöèåé îáðàòèòåñü ê ðàçäåëó, ïîñâÿù¼ííîìó ïðîäóêòàì ôèðì Xi Graphics è Metro Link.
2. ß ïîïûòàëñÿ çàïóñòèòü X, íî ïîëó÷èë ñîîáùåíèå KDENABIO failed (Operation not permitted) ïîñëå ââîäà êîìàíäû startx. ×òî ìíå òåïåðü äåëàòü? Âåðîÿòíåå âñåãî, â âàøåé ñèñòåìå óñòàíîâëåí ïîâûøåííûé óðîâåíü áåçîïàñíîñòè. Ïðè ïîâûøåííîì óðîâíå çàùèòû ñèñòåìó X çàïóñòèòü íåâîçìîæíî. ×òîáû âûÿñíèòü, ïî÷åìó ýòî òàê, îáðàòèòåñü ê ñòðàíèöàì ñïðàâêè ïî init(8). Òàê ÷òî âîïðîñ ñâîäèòñÿ ê òîìó, êàê âàì ýòî îáîéòè, è ó âàñ çäåñü åñòü â îñíîâíîì äâà âàðèàíòà: ïîíèçèòü âàø óðîâåíü çàùèòû îáðàòíî ê íóëþ (îáû÷íî ýòî äåëàåòñÿ â /etc/rc.conf) èëè âî âðåìÿ çàãðóçêè çàïóñêàòü xdm(1) (äî òîãî, êàê ïîâûøàåòñÿ óðîâåíü çàùèòû). Îáðàòèòåñü ê Â: 9. äëÿ ïîëó÷åíèÿ áîëåå ïîëíîé èíôîðìàöèè î çàïóñêå xdm(1) âî âðåìÿ çàãðóçêè.
3. Ïî÷åìó ìîÿ ìûøü íå ðàáîòàåò ñ X? Åñëè âû èñïîëüçóåòå syscons (ñòàíäàðòíûé äðàéâåð êîíñîëè), òî ìîæåòå íàñòðîèòü ïîääåðæêó óêàçàòåëÿ ìûøè âî âñåõ âèðòóàëüíûõ ýêðàíàõ. Âî èçáåæàíèå êîíôëèêòîâ ñ X, äðàéâåð syscons ïîääåðæèâàåò âèðòóàëüíîå óñòðîéñòâî /dev/sysmouse. Âñå ñîáûòèÿ, ïîëó÷àåìûå îò ðåàëüíîé ìûøè, ïèøóòñÿ â óñòðîéñòâî sysmouse ÷åðåç moused. Åñëè âû õîòèòå èñïîëüçîâàòü âàøó ìûøü íà îäíîé èëè íåñêîëüêèõ âèðòóàëüíûõ êîíñîëÿõ, ïðîäîëæàÿ èñïîëüçîâàòü X, ïîñìîòðèòå Â: 13. è íàñòðîéòå moused. Çàòåì îòðåäàêòèðóéòå /etc/XF86Config òàê, ÷òîáû â í¼ì áûëè ñëåäóþùèå ñòðîêè.
Section Protocol Device .....
Pointer "SysMouse" "/dev/sysmouse"
Ïðèìåð âûøå ïðåäíàçíà÷åí äëÿ XFree86 3.3.2 è âûøå. Äëÿ áîëåå ðàííèõ âåðñèé ïàðàìåòð Protocol äîëæåí áûòü MouseSystems. Íåêîòîðûå ïðåäïî÷èòàþò èñïîëüçîâàòü â X óñòðîéñòâî /dev/mouse. ×òîáû îíî ðàáîòàëî, ôàéë óñòðîéñòâà /dev/mouse äîëæåí ÿâëÿòüñÿ ññûëêîé íà /dev/sysmouse (ïîñìîòðèòå ñïðàâêó ïî
sysmouse(4)): # cd /dev
79
Ãëàâà 11. X Window System è âèðòóàëüíûå êîíñîëè # rm -f mouse # ln -s sysmouse mouse
4. Ó ìîåé ìûøè åñòü êîë¼ñèêî. Ìîãó ëè ÿ åãî èñïîëüçîâàòü ïðè ðàáîòå â X? Äà. Íî âàì íóæíî áóäåò íàñòðîèòü ïðîãðàììû-êëèåíòû äëÿ X. Ïîñìîòðèòå ñòðàíè÷êó Êîëàñà Íààáó
(Colas Nahaboo) (http://www.inria.fr/koala/colas/mouse-wheel-scroll/) (http://www.inria.fr/koala/colas/mouse-wheel-scroll/). Åñëè âû ñîáèðàåòåñü èñïîëüçîâàòü ïðîãðàììó imwheel, ñëåäóéòå ýòèì ïðîñòûì óêàçàíèÿì:
1. Òðàíñëÿöèÿ ñîáûòèé îò êîë¼ñèêà Ðàáîòà ïðîãðàììû imwheel îñíîâàíà íà òðàíñëÿöèè ñîáûòèé îò êíîïîê ìûøè 4 è 5 â ñîáûòèÿ îò êëàâèàòóðû. Òî åñòü âàì íóæíî çàñòàâèòü äðàéâåð ìûøè òðàíñëèðîâàòü ñîáûòèÿ îò êîë¼ñèêà â ñîáûòèÿ îò êíîïîê 4 è 5. Åñòü äâà ñïîñîáà ñäåëàòü ýòî, â ïåðâîì èç êîòîðûõ òðàíñëÿöèþ âûïîëíÿåò moused(8). Âî âòîðîì ìåòîäå òðàíñëÿöèþ ñîáûòèé âûïîëíÿåò ñàì X-ñåðâåð.
a. Èñïîëüçîâàíèå moused(8) äëÿ òðàíñëÿöèè ñîáûòèé îò êîë¼ñèêà Äëÿ òîãî, ÷òîáû moused(8) âûïîëíÿë ïðåîáðàçîâàíèå ñîáûòèé, ïðîñòî äîáàâüòå îïöèþ -z 4 ê êîìàíäå, çàïóñêàþùåé moused(8). Íàïðèìåð, åñëè îáû÷íî âû çàïóñêàåòå moused(8) êîìàíäîé moused -p /dev/psm0, òî òåïåðü âû äîëæíû áóäåòå èñïîëüçîâàòü moused -p /dev/psm0 -z 4. Åñëè moused(8) çàïóñêàåòñÿ ó âàñ àâòîìàòè÷åñêè âî âðåìÿ çàãðóçêè ÷åðåç /etc/rc.conf, òî âû ìîæåòå ïðîñòî äîáàâèòü îïöèþ -z 4 ê ïåðåìåííîé moused_flags â ôàéëå /etc/rc.conf. Òåïåðü âàì íóæíî óêàçàòü X, ÷òî âû èñïîëüçóåòå 5-êíîïî÷íóþ ìûøü. Äëÿ ýòîãî ïðîñòî äîáàâüòå ñòðî÷êó Buttons 5 â ñåêöèþ ”Pointer” ôàéëà /etc/XF86Config. Íàïðèìåð, â âàøåì ôàéëå /etc/XF86Config ñåêöèÿ ”Pointer” ìîæåò ïðèíÿòü òàêîé âèä:
Ïðèìåð 11-1. Ñåêöèÿ ”Pointer” äëÿ ìûøè ñ êîë¼ñèêîì èç ôàéëà XF86Config äëÿ XFree86 3.X ñ òðàíñëÿöèåé ÷åðåç moused Section "Pointer" Protocol Device Buttons EndSection
"SysMouse" "/dev/sysmouse" 5
Ïðèìåð 11-2. Ñåêöèÿ ”InputDevice” äëÿ ìûøè ñ êîë¼ñèêîì èç ôàéëà XF86Config äëÿ XFree86 4.x ñ ïðåîáðàçîâàíèåì ÷åðåç X-ñåðâåð Section "InputDevice" Identifier "Mouse1" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/sysmouse" Option "Buttons" "5" EndSection
80
Ãëàâà 11. X Window System è âèðòóàëüíûå êîíñîëè
Ïðèìåð 11-3. Ïðèìåð ”.emacs” äëÿ ïðîñòîé ïðîêðóòêè ñòðàíèöû ìûøüþ ñ êîë¼ñèêîì ;; wheel mouse (global-set-key [mouse-4] ’scroll-down) (global-set-key [mouse-5] ’scroll-up)
b. Èñïîëüçîâàíèå X-ñåðâåðà äëÿ òðàíñëÿöèè ñîáûòèé îò êîë¼ñèêà Åñëè moused(8) ó âàñ íå çàïóùåí èëè åñëè âû íå õîòèòå, ÷òîáû moused(8) çàíèìàëñÿ òðàíñëÿöèåé ñîáûòèé îò êîë¼ñèêà, òî ýòî ìîæåò ñäåëàòü X-ñåðâåð. Ýòî òðåáóåò íåêîòîðûõ ìîäèôèêàöèé â âàøåì ôàéëå /etc/XF86Config. Âî-ïåðâûõ, âàì íóæíî ïðàâèëüíî âûáðàòü ïðîòîêîë äëÿ âàøåé ìûøè. Áîëüøèíñòâî ìàíèïóëÿòîðîâ ñ êîë¼ñèêàìè èñïîëüçóþò ïðîòîêîë ”IntelliMouse”. Îäíàêî XFree86 ïîääåðæèâàåò äðóãèå ïðîòîêîëû, òàêèå, êàê ”MouseManPlusPS/2” äëÿ ìûøåé Logitech MouseMan+. Ïîñëå òîãî, êàê âû âûáåðèòå èñïîëüçóåìûé ïðîòîêîë, â ñåêöèþ ”Pointer” íóæíî áóäåò äîáàâèòü ñòðî÷êó Protocol. Âî-âòîðûõ, âàì íóæíî óêàçàòü, ÷òî X-ñåðâåð áóäåò ïåðåîïðåäåëÿòü ñîáûòèÿ îò êîë¼ñèêà â ñîáûòèÿ îò êíîïîê 4 è 5. Ýòî äåëàåòñÿ çàäàíèåì îïöèè ZAxisMapping. Íàïðèìåð, åñëè âû íå èñïîëüçóåòå moused(8) è âàøà ìûøü IntelliMouse ïîäêëþ÷åíà ê ïîðòó äëÿ ìûøè PS/2, â âàøåì ôàéëå /etc/XF86Config äîëæíî áûòü óêàçàíî ñëåäóþùåå:
Ïðèìåð 11-4. Ñåêöèÿ ”Pointer” äëÿ ìûøè ñ êîë¼ñèêîì èç ôàéëà XF86Config ñ òðàíñëÿöèåé ñ ïîìîùüþ X-ñåðâåðà Section "Pointer" Protocol Device ZAxisMapping EndSection
"IntelliMouse" "/dev/psm0" 4 5
Ïðèìåð 11-5. Ðàçäåë ”InputDevice” äëÿ ìûøè ñ êîëåñèêîì â XF86Config èç XFree86 4.x ñ òðàíñëÿöèåé ÷åðåç X-ñåðâåð Section "InputDevice" Identifier "Mouse1" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/psm0" Option "ZAxisMapping" "4 5" EndSection
Ïðèìåð 11-6. Ïðèìåð ”.emacs” äëÿ ïðîñòîé ïðîêðóòêè ñòðàíèöû ïðè ïîìîùè ìûøè ñ êîëåñèêîì ;; wheel mouse (global-set-key [mouse-4] ’scroll-down) (global-set-key [mouse-5] ’scroll-up)
81
Ãëàâà 11. X Window System è âèðòóàëüíûå êîíñîëè
2. Óñòàíîâêà ïðîãðàììû imwheel Òåïåðü óñòàíîâèòå ïðîãðàììó Imwheel èç Êîëëåêöèè Ïîðòîâ. Îíà íàõîäèòñÿ â êàòåãîðèè x11. Ýòà óòèëèòà áóäåò ïðåîáðàçîâûâàòü ñîáûòèÿ îò êîë¼ñèêà âàøåé ìûøè â ñîáûòèÿ îò êëàâèàòóðû. Íàïðèìåð, îíà ìîæåò ïîñëàòü â ïðîãðàììó ïîñëåäîâàòåëüíîñòü Page Up, êîãäà âû êðóòèòå êîë¼ñèêî âïåð¼ä. Äëÿ ïðåîáðàçîâàíèÿ ñîáûòèé îò êîë¼ñèêà â íàæàòèÿ êëàâèø imwheel èñïîëüçóåò êîíôèãóðàöèîííûé ôàéë, ïðè÷¼ì äëÿ ðàçíûõ ïðèëîæåíèé âîçìîæíà ïîñûëêà ðàçíûõ ïîñëåäîâàòåëüíîñòåé. Êîíôèãóðàöèîííûì ôàéëîì, èñïîëüçóåìûì ïî óìîë÷àíèþ, ÿâëÿåòñÿ /usr/X11R6/etc/imwheelrc. Âû ìîæåòå ñêîïèðîâàòü åãî â ~/.imwheelrc è îòðåäàêòèðîâàòü, åñëè õîòèòå èçìåíèòü ïàðàìåòðû ðàáîòû imwheel. Ôîðìàò êîíôèãóðàöèîííîãî ôàéëà îïèñàí íà ñòðàíèöå Ñïðàâî÷íèêà î imwheel(1).
3. Íàñòðîéêà ðåäàêòîðà Emacs äëÿ ðàáîòû ñ Imwheel (ïî æåëàíèþ ) Åñëè âû èñïîëüçóåòå emacs èëè XEmacs, òî â âàø ôàéë ~/.emacs íóæíî äîáàâèòü ìàëåíüêèé ðàçäåë. Äëÿ ðåäàêòîðà emacs, äîáàâüòå ñëåäóþùåå:
Ïðèìåð 11-7. Êîíôèãóðàöèÿ Emacs äëÿ ðàáîòû ñ Imwheel ;;; For imwheel (setq imwheel-scroll-interval 3) (defun imwheel-scroll-down-some-lines () (interactive) (scroll-down imwheel-scroll-interval)) (defun imwheel-scroll-up-some-lines () (interactive) (scroll-up imwheel-scroll-interval)) (global-set-key [?\M-\C-\)] ’imwheel-scroll-up-some-lines) (global-set-key [?\M-\C-\(] ’imwheel-scroll-down-some-lines) ;;; end imwheel section Äëÿ ðåäàêòîðà XEmacs, â âàø ôàéë ~/.emacs äîáàâüòå ñëåäóþùåå:
Ïðèìåð 11-8. Êîíôèãóðàöèÿ XEmacs äëÿ ðàáîòû ñ Imwheel ;;; Äëÿ imwheel (mwheel-install) (setq mwheel-follow-mouse t) ;;; end imwheel section
4. Çàïóñê Imwheel Âû ìîæåòå ïðîñòî íàáðàòü êîìàíäó imwheel â âàøåì â îêíå xterm ïîñëå óñòàíîâêè. Îíà ñàìà ïåðåéä¼ò â ôîíîâûé ðåæèì è íåìåäëåííî íà÷í¼ò ðàáîòó. Åñëè âû õîòèòå èñïîëüçîâàòü imwheel âñåãäà, ïðîñòî äîáàâüòå å¼ çàïóñê â âàø .xinitrc èëè .xsession. Âñå ïðåäóïðåæäåíèÿ î PID-ôàéëàõ, êîòîðûå âûâîäèò imwheel, ìîæíî ïðîèãíîðèðîâàòü. Ýòè ïðåäóïðåæäåíèÿ èìåþò ñìûñë òîëüêî â Linux-âåðñèè imwheel.
82
Ãëàâà 11. X Window System è âèðòóàëüíûå êîíñîëè
5. Êàê èñïîëüçîâàòü óäàë¼ííûå X-äèñïëåè? Èç ñîîáðàæåíèé îáåñïå÷åíèÿ èíôîðìàöèîííîé áåçîïàñíîñòè îòêðûâàòü óäàë¼ííûå îêíà íà ìàøèíå ïî óìîë÷àíèþ çàïðåùåíî. Äëÿ âêëþ÷åíèÿ ýòîé âîçìîæíîñòè ïðîñòî çàïóñòèòå X ñ àðãóìåíòîì -listen_tcp: % startx -listen_tcp
6. Ìåíþ è äèàëîãîâûå îêíà â X Window ðàáîòàþò íåïðàâèëüíî! Ïîïðîáóéòå âûêëþ÷èòü Num Lock. Åñëè êëàâèøà Num Lock âî âðåìÿ çàãðóçêè ïî óìîë÷àíèþ âêëþ÷åíà, äîáàâüòå â ñåêöèþ Keyboard ôàéëà XF86Config ñëåäóþùóþ ñòðîêó.
# Let the server do the NumLock processing. # required when using pre-R6 clients ServerNumLock
This should only be
7. ×òî òàêîå âèðòóàëüíûå êîíñîëè è êàê èçìåíèòü èõ êîëè÷åñòâî? Âèðòóàëüíûå êîíñîëè, óïðîù¼ííî ãîâîðÿ, ïîçâîëÿþò âàì èìåòü íåñêîëüêî îäíîâðåìåííûõ ñåàíñîâ ðàáîòû ñ òîé æå ñàìîé ìàøèíîé áåç óñòàíîâêè êàêîé áû òî íè áûëî ñåòè èëè çàïóñêà X. Ïðè çàïóñêå ñèñòåìû ïîñëå âûâîäà ñîîáùåíèé ýòàïà çàãðóçêè íà êîíñîëü âûäà¼òñÿ ïðèãëàøåíèå íà âõîä â ñèñòåìó. Âû ìîæåòå ââåñòè ñâî¼ èìÿ è ïàðîëü è íà÷àòü ðàáîòàòü (èëè èãðàòü!) íà ïåðâîé âèðòóàëüíîé êîíñîëè.  êàêîé-òî ìîìåíò âû ìîæåòå çàõîòåòü çàïóñòèòü åù¼ îäíó ñåàíñ, ñêàæåì, ÷òîáû çàãëÿíóòü â äîêóìåíòàöèþ ïî ïðîãðàììå, êîòîðóþ âû çàïóñòèëè èëè äëÿ äëÿ ÷òåíèÿ ýëåêòðîííîé ïî÷òû âî âðåìÿ îæèäàíèÿ çàâåðøåíèÿ ïåðåäà÷è äàííûõ ïî FTP. Ïðîñòî íàæìèòå Alt+F2 (óäåðæèâàÿ êëàâèøó Alt, íàæìèòå F2) è âû îáíàðóæèòå ïðèãëàøåíèå, æäóùåå âàñ íà âòîðîé ”âèðòóàëüíîé êîíñîëè”! Êîãäà çàõîòèòå âåðíóòüñÿ ê ïåðâîíà÷àëüíîìó ñåàíñó, íàæìèòå Alt+F1. Ïîñëå èíñòàëëÿöèè ïî óìîë÷àíèþ âî FreeBSD çàäåéñòâîâàíû òðè âèðòóàëüíûõ êîíñîëè (8 íà÷èíàÿ ñ 3.3-RELEASE), à êîìáèíàöèè êëàâèø Alt+F1, Alt+F2 è Alt+F3 ñëóæàò äëÿ ïåðåêëþ÷åíèÿ ìåæäó íèìè. ×òîáû óâåëè÷èòü êîëè÷åñòâî êîíñîëåé, îòðåäàêòèðóéòå ôàéë /etc/ttys (ïîñìîòðèòå ñïðàâêó ïî ttys(5)), äîáàâèâ òóäà çàïèñè äëÿ òåðìèíàëîâ ñ èìåíàìè îò ttyv4 äî ttyvc ïîñëå ñëîâ ”Virtual terminals”:
# Edit the existing entry for ttyv3 in /etc/ttys and change # "off" to "on". ttyv3 "/usr/libexec/getty Pc" cons25 on secure ttyv4 "/usr/libexec/getty Pc" cons25 on secure ttyv5 "/usr/libexec/getty Pc" cons25 on secure ttyv6 "/usr/libexec/getty Pc" cons25 on secure ttyv7 "/usr/libexec/getty Pc" cons25 on secure ttyv8 "/usr/libexec/getty Pc" cons25 on secure ttyv9 "/usr/libexec/getty Pc" cons25 on secure ttyva "/usr/libexec/getty Pc" cons25 on secure
83
Ãëàâà 11. X Window System è âèðòóàëüíûå êîíñîëè
ttyvb
"/usr/libexec/getty Pc"
cons25
on secure
Èñïîëüçóéòå èç íèõ ñòîëüêî, ñêîëüêî ïîñ÷èòàåòå íóæíûì. ×åì áîëüøå âèðòóàëüíûõ òåðìèíàëîâ ó âàñ èìååòñÿ, òåì áîëüøå ðåñóðñîâ îíè èñïîëüçóþò; ýòî ìîæåò èìåòü çíà÷åíèå, åñëè ó âàñ ìåíüøå ÷åì 8ÌÁ ÎÇÓ. Âû ìîæåòå ñìåíèòü ñòàòóñ êîíñîëåé ñ secure íà insecure.
Âàæíî: Åñëè âû õîòèòå çàïóñòèòü X, âû äîëæíû îñòàâèòü äëÿ íåãî ïî êðàéíåé ìåðå îäèí íåèñïîëüçóåìûé
(èëè âûêëþ÷åííûé) âèðòóàëüíûé òåðìèíàë. Òàêèì îáðàçîâ, åñëè âû õîòèòå èìåòü ïðèãëàøåíèÿ login íà âñåõ äâåíàäöàòè ôóíêöèîíàëüíûõ êëàâèøè, òî âàì íå ïîâåçëî - âû ìîæåòå ýòî ñäåëàòü òîëüêî äëÿ îäèííàäöàòè èç íèõ, åñëè õîòèòå íà ýòîé æå ìàøèíå åù¼ çàïóñòèòü X-ñåðâåð.
Ñàìûì ïðîñòûì ñïîñîáîì óáðàòü êîíñîëü ÿâëÿåòñÿ ïðîñòî å¼ âûêëþ÷åíèå. Íàïðèìåð, åñëè âû çàïóñòèëè íà âñåõ 12 êîíñîëÿõ âèðòóàëüíûå òåðìèíàëû, êàê óêàçàíî âûøå, è åù¼ õîòèòå çàïóñòèòü X, òî äîëæíû áóäåòå èçìåíèòü ïàðàìåòðû äâåíàäöàòîãî âèðòóàëüíîãî òåðìèíàëà ñ:
ttyvb
"/usr/libexec/getty Pc"
cons25
on
secure
"/usr/libexec/getty Pc"
cons25
off secure
íà:
ttyvb
Åñëè íà âàøåé êëàâèàòóðå òîëüêî äåñÿòü ôóíêöèîíàëüíûõ êëàâèø, òî ïîñëåäíèå ñòðîêè áóäóò âûãëÿäåòü òàê:
ttyv9 ttyva ttyvb
"/usr/libexec/getty Pc" "/usr/libexec/getty Pc" "/usr/libexec/getty Pc"
cons25 cons25 cons25
off secure off secure off secure
(Âû òàêæå ìîæåòå ïðîñòî èõ óäàëèòü.) Ïîñëå òîãî, êàê âû îòðåäàêòèðîâàëè ôàéë /etc/ttys, ïðîâåðüòå, ÷òî ó âàñ èìååòñÿ äîñòàòî÷íîå êîëè÷åñòâî óñòðîéñòâ äëÿ âèðòóàëüíûõ òåðìèíàëîâ. Ñàìûé ïðîñòîé ñïîñîá ñäåëàòü ýòî: # cd /dev # sh MAKEDEV vty12
Çàìå÷àíèå: Âî FreeBSD 5.X, åñëè âû èñïîëüçóåòå DEVFS, âàì íå íóæíî ñîçäàâàòü óñòðîéñòâà âðó÷íóþ, ïîòîìó ÷òî íåîáõîäèìûå ôàéëû óñòðîéñòâ áóäóò ñîçäàâàòüñÿ â êàòàëîãå /dev àâòîìàòè÷åñêè.
Ñàìûì ïðîñòûì (è íàä¼æíûì) ñïîñîáîì àêòèâèðîâàòü âèðòóàëüíûå êîíñîëè ÿâëÿåòñÿ ïåðåçàãðóçêà. Îäíàêî åñëè âû âîâñå íå õîòèòå ýòîãî äåëàòü, ïðîñòî îñòàíîâèòå X Window System è âûïîëíèòå (êàê ïîëüçîâàòåëü root): # kill -HUP 1
Ïðè ýòîì òðåáóåòñÿ, ÷òîáû âû ïîëíîñòüþ çàêðûëè X Window, åñëè îíà áûëà çàïóùåíà, äî çàïóñêà ýòîé êîìàíäû. Åñëè âû ýòî íå ñäåëàåòå, âàøà ñèñòåìà ìîæåò ïîâèñíóòü/çàáëîêèðîâàòüñÿ ïîñëå âûïîëíåíèÿ êîìàíäû kill.
84
Ãëàâà 11. X Window System è âèðòóàëüíûå êîíñîëè
8. Êàê îñóùåñòâëÿåòñÿ äîñòóï ê âèðòóàëüíûì êîíñîëÿì èç X? Èñïîëüçóéòå êîìáèíàöèþ êëàâèø Ctrl+Alt+Fn äëÿ ïåðåêëþ÷åíèÿ îáðàòíî â âèðòóàëüíóþ êîíñîëü. Íàæàòèå Ctrl+Alt+F1 âåðí¼ò âàñ íà ïåðâóþ âèðòóàëüíóþ êîíñîëü. Ïîñëå òîãî, êàê âû îêàçàëèñü â òåêñòîâîé êîíñîëè, ìîæåòå èñïîëüçîâàòü, êàê îáû÷íî, êîìáèíàöèè Alt+Fn äëÿ ïåðåêëþ÷åíèÿ ìåæäó íèìè. ×òîáû âåðíóòüñÿ â ñåàíñ ðàáîòû X, âû äîëæíû ïåðåêëþ÷èòüñÿ â âèðòóàëüíóþ êîíñîëü, íà êîòîðîé çàïóùåíà X Window. Åñëè âû çàïóñòèëè X èç êîìàíäíîé ñòðîêè (íàïðèìåð, ïðè ïîìîùè êîìàíäû startx), òî ñåàíñ ðàáîòû X áóäåò ïðèâÿçàí ê ñëåäóþùåé íåèñïîëüçóåìîé âèðòóàëüíîé êîíñîëè, à íå ê òîé òåêñòîâîé êîíñîëè, ñ êîòîðîé îí áûë çàïóùåí. Åñëè ó âàñ èìååòñÿ âîñåìü àêòèâíûõ âèðòóàëüíûõ òåðìèíàëîâ, òî X áóäåò ðàáîòàòü íà äåâÿòîì, è âàì íóæíî áóäåò âîñïîëüçîâàòüñÿ êîìáèíàöèåé Alt+F9 äëÿ âîçâðàòà â X.
9. Êàê çàïóñòèòü XDM âî âðåìÿ çàãðóçêè? Åñòü äâå ôèëîñîôñêèå øêîëû, ïðîïîâåäóþùèå ðàçëè÷íûå ìåòîäû çàïóñêà xdm (http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=xdm). Ïîñëåäîâàòåëè îäíîãî òå÷åíèÿ çàïóñêàþò xdm èç /etc/ttys (ïîñìîòðèòå ttys(5)), èñïîëüçóÿ ïðèâîäèìûé ïðèìåð, òîãäà êàê äðóãèå âñòàâëÿþò çàïóñê xdm â ñêðèïò rc.local (ïîñìîòðèòå ñïðàâêó ïî rc(8)) èëè X.sh, ïîìåùàÿ ïîñëåäíèé â êàòàëîã /usr/local/etc/rc.d. Îáà ìåòîäà ðàâíîïðàâíû, è îäèí èç íèõ ìîæåò ðàáîòàòü â ñèòóàöèÿõ, ñ êîòîðûìè íå ñïðàâëÿåòñÿ äðóãîé è íàîáîðîò.  îáîèõ ñëó÷àÿ ðåçóëüòàò îäèí è òîò æå: X âûâîäèò ãðàôè÷åñêîå ïðèãëàøåíèå login:. Ïëþñîì ìåòîäà ñ èñïîëüçîâàíèåì ttys ÿâëÿåòñÿ äîêóìåíòèðîâàíèå òîãî, íà êàêîì vty áóäåò çàïóùåí X è òî, ÷òî îòâåòñòâåííîñòü çà ïåðåçàïóñê X-ñåðâåðà ïðè çàâåðøåíèè ñåàíñà ðàáîòû ëåæèò íà ïðîöåññå init. Ìåòîä ñ èñïîëüçîâàíèåì rc.local ïîçâîëÿåò ïðîñòî ïðåêðàòèòü ðàáîòó xdm, åñëè ïðè çàïóñêå X âîçíèêëè êàêèå-íèáóäü ïðîáëåìû. Èç rc.local xdm äîëæåí áûòü çàïóùåí áåç àðãóìåíòîâ, (òî åñòü êàê äàåìîí). xdm äîëæåí áûòü çàïóùåí ÏÎÑËÅ çàïóñêà getty(8), èíà÷å îíè áóäóò êîíôëèêòîâàòü, áëîêèðóÿ êîíñîëü. Ëó÷øå âñåãî âûäåðæàòü ïàóçó ñåêóíä íà 10 è ïîòîì çàïóñòèòü xdm. Åñëè xdm çàïóñêàåòñÿ èç /etc/ttys, òî åñòü âåðîÿòíîñòü êîíôëèêòà ìåæäó xdm è getty(8). Îäíèì èç ñïîñîáîâ èçáåæàòü ýòîãî ÿâëÿåòñÿ äîáàâëåíèå íîìåðà vt â ôàéë /usr/X11R6/lib/X11/xdm/Xservers.
:0 local /usr/X11R6/bin/X vt4
 âûøåïðèâåä¼ííîì ñëó÷àå X-ñåðâåðó óêàçûâàåòñÿ ðàáîòàòü íà /dev/ttyv3. Çàìåòüòå, ÷òî íîìåðà îòëè÷àþòñÿ íà åäèíèöó. Äåëî â òîì, ÷òî X-ñåðâåð ñ÷èòàåò vty îò åäèíèöû, êîãäà êàê îòñ÷¼ò vty â ÿäðå FreeBSD âåä¼òñÿ ñ íóëÿ.
10. Ïðè çàïóñêå xconsole âûäà¼òñÿ ñîîáùåíèå Couldn’t open console. Åñëè âû çàïóñêàåòå X ñ èñïîëüçîâàíèåì ñöåíàðèÿ startx ïðàâà íà óñòðîéñòâî /dev/console íå èçìåíÿþòñÿ, ïîýòîìó òàêèå ïðîãðàììû, êàê xterm -C è xconsole, íå áóäóò ðàáîòàòü. Ýòî çàâèñèò îò ïðàâ äîñòóïà, óñòàíîâëåííûõ äëÿ êîíñîëè ïî óìîë÷àíèþ.  ìíîãîïîëüçîâàòåëüñêîé ñèñòåìå âîâñå íå íóæíî, ÷òîáû ëþáîé ïîëüçîâàòåëü ìîã âûâîäèòü èíôîðìàöèþ íà ñèñòåìíóþ êîíñîëü.
85
Ãëàâà 11. X Window System è âèðòóàëüíûå êîíñîëè
Äëÿ ïîëüçîâàòåëåé, âîøåäøèõ â ñèñòåìó ÷åðåç VTY, äëÿ ðåøåíèÿ ýòîé ïðîáëåìû ñóùåñòâóåò ôàéë
fbtab(5).  îáùåì, ðàñêîììåíòèðóéòå ñòðî÷êó âèäà
/dev/ttyv0 0600 /dev/console
â ôàéëå /etc/fbtab (ïîñìîòðèòå ñïðàâêó ïî fbtab(5)), è ýòîãî áóäåò äîñòàòî÷íî äëÿ òîãî, ÷òîáû âñÿêèé, êòî âîø¼ë â ñèñòåìó ñ òåðìèíàëà /dev/ttyv0, èìåë äîñòóï ê êîíñîëè.
11. Ðàíüøå ÿ çàïóñêàë XFree86, ðàáîòàÿ êàê îáû÷íûé ïîëüçîâàòåëü, à òåïåðü ïðè çàïóñêå âûäàåòñÿ ñîîáùåíèå î òîì, ÷òî ÿ äîëæåí áûòü ïîëüçîâàòåëåì root! Âñå X-ñåðâåðû äîëæíû çàïóñêàòüñÿ ïîëüçîâàòåëåì root, ÷òîáû èìåòü ïðÿìîé äîñòóï ê âàøåìó âèäåîîáîðóäîâàíèþ. Áîëåå ñòàðûå âåðñèè XFree86 ( flags psm0 0x100 UserConfig> quit
13. Ïî÷åìó ìîÿ ìûøü PS/2 îò MouseSystems íå ðàáîòàåò? Áûëî íåñêîëüêî ñîîáùåíèé, ÷òî íåêîòîðûå ìîäåëè ìûøåé PS/2 îò MouseSystems ðàáîòàþò òîëüêî â ðåæèìå ”âûñîêîãî ðàçðåøåíèÿ”.  äðóãèõ ðåæèìàõ êóðñîð ìûøè ïîñòîÿííî ïðûãàåò â âåðõíèé ëåâûé óãîë ýêðàíà. Óêàæèòå ôëàã 0x04 äðàéâåðó ìûøè PS/2 äëÿ ïåðåâîäà å¼ â ðåæèì âûñîêîãî ðàçðåøåíèÿ. Âîéäèòå â UserConfig, çàäàâ îïöèþ -c â ïðèãëàøåíèè çàãðóç÷èêà:
boot: -c Çàòåì â êîìàíäíîé ñòðîêå UserConfig íàáåðèòå:
UserConfig> flags psm0 0x04 UserConfig> quit  ïðåäûäóùåì ðàçäåëå îïèñàíà âîçìîæíàÿ ïðè÷èíà ïðîáëåì ñ ìûøüþ.
14. Ïðè êîìïèëÿöèè ïðèëîæåíèé äëÿ X ïðîãðàììà imake íå ìîæåò íàéòè ôàéë Imake.tmpl. Ãäå îí íàõîäèòñÿ? Ôàéë Imake.tmpl ÿâëÿåòñÿ ÷àñòüþ ïàêåòà Imake, ñòàíäàðòíîãî èíñòðóìåíòà äëÿ ïîñòðîåíèÿ X-ïðèëîæåíèé. Îí, òàêæå êàê åù¼ íåñêîëüêî çàãîëîâî÷íûõ ôàéëîâ, òðåáóåìûõ äëÿ ïîñòðîåíèÿ X-ïðèëîæåíèé, ñîäåðæèòñÿ â äèñòðèáóòèâå ïðîãðàìì X. Âû ìîæåòå èõ ïðîèíñòàëëèðîâàòü èç sysinstall(8) èëè âçÿòü èç äèñòðèáóòèâà X.
15. Ïðèëîæåíèå äëÿ X, êîòîðîå ÿ êîìïèëèðóþ, çàâèñèò îò XFree86 3.3.X, îäíàêî ó ìåíÿ óñòàíîâëåíà XFree86 4.X. ×òî ÿ äîëæåí ñäåëàòü? ×òîáû óêàçàòü íà êîìïîíîâêó ñ áèáëèîòåêàìè XFree86 4.X ïðè ïîñòðîåíèè ïîðòà, äîáàâüòå ñëåäóþùåå â /etc/make.conf (åñëè ýòîãî ôàéëà ó âàñ íåò, ñîçäàéòå åãî):
XFREE86_VERSION=
4
16. Êàê ïîìåíÿòü ìåñòàìè êíîïêè ìûøè? Ïîìåñòèòå êîìàíäó xmodmap -e "pointer = 3 2 1" â îäèí èç âàøèõ ñêðèïòîâ .xinitrc èëè .xsession.
17. Êàê óñòàíîâèòü ýêðàííóþ çàñòàâêó è ãäå òàêèå çàñòàâêè ìîæíî íàéòè? Ïåðåä ñàìûì âûïóñêîì ðåëèçà FreeBSD 3.1 â ñèñòåìó áûëà äîáàâëåíà âîçìîæíîñòü âûâîäà ”çàñòàâêè” âî âðåìÿ çàãðóçêè. Íà äàííûé ìîìåíò ýêðàíû çàñòàâîê äîëæíû áûòü 256-öâåòíûìè ôàéëàìè ôîðìàòà
87
Ãëàâà 11. X Window System è âèðòóàëüíûå êîíñîëè
BMP *.BMP èëè ZSoft PCX (*.PCX). Êðîìå òîãî, îíè äîëæíû èìåòü ðàçìåð 320x200 èëè ìåíüøå äëÿ ðàáîòû ñî ñòàíäàðòíûìè àäàïòåðàìè VGA. Åñëè âû âêëþ÷èëè ïîääåðæêó VESA ïðè êîìïèëÿöèè ÿäðà, ñìîæåòå èñïîëüçîâàòü çàñòàâêè ðàçìåðîì äî 1024x768. Ðåàëüíàÿ ïîääåðæêà VESA ìîæåò áûòü âêîìïèëèðîâàíà â ÿäðî ïðè óêàçàíèè îïöèè VESA ëèáî çàãðóæåíà â âèäå kld-ìîäóëÿ ÿäðà âî âðåìÿ íà÷àëüíîé çàãðóçêè. ×òîáû èñïîëüçîâàòü çàñòàâêó, âàì íóæíî èçìåíèòü ôàéëû, óïðàâëÿþùèå ïðîöåññîì çàãðóçêè FreeBSD. Ôîðìàò ýòèõ ôàéëîâ áûë èçìåí¼í ïåðåä âûïóñêîì ðåëèçà FreeBSD 3.2, òàê ÷òî åñòü äâà ñïîñîáà çàãðóçêè ýêðàííûõ çàñòàâîê: •
FreeBSD 3.1 Ïåðâûì äåëîì íóæíî íàéòè ýêðàííóþ çàñòàâêó â ôîðìàòå BMP. Ðåëèç 3.1 ïîääåðæèâàåò çàñòàâêè òîëüêî â ôîðìàòå Windows. Ïîñëå òîãî, êàê âû íàøëè ïîíðàâèâøóþñÿ âàì çàñòàâêó, ñêîïèðóéòå å¼ â ôàéë /boot/splash.bmp. Çàòåì âàì íóæíî ïîìåñòèòü â ôàéë /boot/loader.rc ñëåäóþùèå ñòðîêè:
load kernel load -t splash_image_data /boot/splash.bmp load splash_bmp autoboot
•
FreeBSD 3.2+ Êðîìå ïîääåðæêè çàñòàâîê â ôîðìàòå PCX, FreeBSD 3.2 âêëþ÷àåò áîëåå ãèáêóþ ñèñòåìó êîíôèãóðàöèè ïðîöåññà çàãðóçêè. Åñëè âû õîòèòå, òî ìîæåòå èñïîëüçîâàòü ìåòîä, óêàçàííûé âûøå äëÿ FreeBSD 3.1. Åñëè æå âû õîòèòå èñïîëüçîâàòü ôîðìàò PCX, çàìåíèòå splash_bmp íà splash_pcx. Ñ äðóãîé ñòîðîíû, åñëè âû õîòèòå èñïîëüçîâàòü íîâóþ ñèñòåìó êîíôèãóðàöèè ïðîöåññà çàãðóçêè, âàì íóæíî ñîçäàòü ôàéë /boot/loader.rc, ñîäåðæàùèé ñëåäóþùèå ñòðîêè:
include /boot/loader.4th start è ôàéë /boot/loader.conf ñî ñòðîêàìè:
splash_bmp_load="YES" bitmap_load="YES" Çäåñü ïðåäïîëàãàåòñÿ, ÷òî â êà÷åñòâå çàñòàâêè âû èñïîëüçóåòå ôàéë /boot/splash.bmp. Åñëè âû èñïîëüçóåòå PCX-ôàéë, ñêîïèðóéòå åãî ïîä èìåíåì /boot/splash.pcx, ñîçäàéòå ôàéë /boot/loader.rc, êàê óêàçàíî âûøå, è ñîçäàéòå ôàéë /boot/loader.conf, êîòîðûé ñîäåðæèò ñëåäóþùåå:
splash_pcx_load="YES" bitmap_load="YES" bitmap_name="/boot/splash.pcx"
Òåïåðü âñ¼, ÷òî âàì íóæíî - ýòî ñàìà çàñòàâêà. Ïîèùèòå çàñòàâêè â ãàëåðåå ïî àäðåñó
http://www.baldwin.cx/splash/.
88
Ãëàâà 11. X Window System è âèðòóàëüíûå êîíñîëè
18. Ìîæíî ëè â X èñïîëüçîâàòü êëàâèøè Windows®, êîòîðûå åñòü íà êëàâèàòóðå? Äà. Âñ¼, ÷òî âàì íóæíî ñäåëàòü, ýòî ñ ïîìîùüþ xmodmap(1) çàäàòü ôóíêöèè, êîòîðûå âû õîòèòå ê ýòèì êëàâèøàì ïðèâÿçàòü. Ïîëîæèì, ÷òî âñå êëàâèàòóðû ”Windows” ñòàíäàðòíû è 3 êëàâèøè èìåþò ñëåäóþùèå êëàâèàòóðíûå êîäû •
115 - êëàâèøà Windows ìåæäó êëàâèøàìè Ctrl è Alt ñ ëåâîé ñòîðîíû
•
116 - êëàâèøà Windows ñïðàâà îò êëàâèøè AltGr
•
117 - êëàâèøà Menu, ñëåâà îò êëàâèøè Ctrl, íàõîäÿùåéñÿ ñïðàâà
×òîáû çàñòàâèòü ëåâóþ êëàâèøó Windows íàáèðàòü çàïÿòóþ, ïîïðîáóéòå âûïîëíèòü òàêóþ êîìàíäó: # xmodmap -e "keycode 115 = comma"
×òîáû óâèäåòü ðåçóëüòàò, âàì íóæíî áóäåò ïåðåçàïóñòèòü âàø îêîííûé ìåíåäæåð. Äëÿ òîãî, ÷òîáû ïåðåîïðåäåëåíèÿ êëàâèø Windows âûïîëíÿëîñü àâòîìàòè÷åñêè êàæäûé ðàç ïðè çàïóñêå X, ìîæíî ïîìåñòèòü âûçîâ êîìàíä xmodmap â âàø ~/.xinitrc ëèáî, ÷òî ïðåäïî÷òèòåëüíåé, ñîçäàòü ôàéë ~/.xmodmaprc è âêëþ÷èòü â íåãî ïàðàìåòðû äëÿ xmodmap, ïî îäíîìó íà ñòðîêó, è äîáàâèòü ñòðîêó
xmodmap $HOME/.xmodmaprc â âàø ~/.xinitrc. Íàïðèìåð, âû ìîæåòå ïåðåîïðåäåëèòü ýòè 3 êëàâèøè òàê, ÷òîáû îíè âûïîëíÿëè ôóíêöèè êëàâèø F13, F14 è F15 ñîîòâåòñòâåííî. Ýòî ïîçâîëèò ëåãêî ïðèâÿçàòü èõ ê ïîëåçíûì ôóíêöèÿì â ïðèëîæåíèÿõ èëè âàøåì ìåíåäæåðå îêîí, êàê áóäåò ïîêàçàíî äàëåå. ×òîáû ñäåëàòü ýòî, ïîìåñòèòå â ôàéë ~/.xmodmaprc âîò òàêèå ñòðîêè:
keycode 115 = F13 keycode 116 = F14 keycode 117 = F15 Åñëè, ê ïðèìåðó, âû èñïîëüçóåòå fvwm2, òî ìîæåòå ïåðåîïðåäåëèòü êëàâèøè òàêèì îáðàçîì, ÷òî F13 ñâîðà÷èâàåò â èêîíêó (èëè âîññòàíàâëèâàåò ïðåäûäóùèå ðàçìåðû) îêíà, íà êîòîðîå óêàçûâàåò êóðñîð, F14 ïåðåìåùàåò îêíî ñ êóðñîðîì íà ïåðåäíèé ïëàí èëè, åñëè îíî óæå âïåðåäè, âîçâðàùàåò îáðàòíî, à F15 âûçûâàåò ãëàâíîå ìåíþ ïðèëîæåíèÿ Workplace, äàæå åñëè êóðñîð íàõîäèòñÿ íå íà ðàáî÷åì ñòîëå, ÷òî áûâàåò ïîëåçíî, åñëè íåò íè îäíîãî âèäèìîãî êóñî÷êà ðàáî÷åãî ñòîëà (ê òîìó æå ëîãîòèï íà êëàâèøå ñîîòâåòñòâóåò ýòîé ôóíêöèè). Âîò ñòðîêè èç ~/.fvwmrc, ñ ïîìîùüþ êîòîðûõ äîñòèãàþòñÿ îïèñàííûå âûøå ôóíêöèè:
Key F13 Key F14 Key F15
FTIWS FTIWS A
A A A
Iconify RaiseLower Menu Workplace Nop
89
Ãëàâà 11. X Window System è âèðòóàëüíûå êîíñîëè
19. Êàê çàñòàâèòü ðàáîòàòü àïïàðàòíîå óñêîðåíèå 3D-ãðàôèêè äëÿ OpenGL? Íàëè÷èå 3D-óñêîðåíèÿ çàâèñèò îò âåðñèè èñïîëüçóåìîãî âàìè XFree86 è òèïà ãðàôè÷åñêîãî àäàïòåðà. Åñëè ó âàñ àäàïòåð NVIDIA, òî âû ìîæåòå èñïîëüçîâàòü áèíàðíûå ôàéëû äðàéâåðîâ äëÿ FreeBSD 4.7, ðàçìåù¼ííûå â ðàçäåëå Drivers (http://www.nvidia.com/content/drivers/drivers.asp) èõ ñàéòà. Îòíîñèòåëüíî èñïîëüçîâàíèÿ àïïàðàòíîãî óñêîðåíèÿ â XFree86-4 ñ äðóãèìè àäàïòåðàìè, âêëþ÷àÿ Matrox G200/G400, ATI Rage 128/Radeon, à òàêæå 3dfx Voodoo 3, 4, 5 è Banshee, äîïîëíèòåëüíóþ èíôîðìàöèþ ìîæíî ïî÷åðïíóòü íà ñòðàíè÷êå XFree86-4 Direct Rendering on FreeBSD (http://people.FreeBSD.org/~anholt/dri/). Ïîëüçîâàòåëè XFree86 âåðñèè 3.3 ìîãóò âîñïîëüçîâàòüñÿ ïîðòîì Utah-GLX, íàõîäÿùèìñÿ â graphics/utah-glx, äëÿ ïîëó÷åíèÿ ÷àñòè÷íîãî óñêîðåíèÿ OpenGL äëÿ íàáîðîâ ìèêðîñõåì Matrox Gx00, ATI Rage Pro, SiS 6326, i810, Savage è ñòàðûõ àäàïòåðîâ NVIDIA.
90
Ãëàâà 12. Ðàáîòà â ñåòè 1. Ãäå ìîæíî íàéòè èíôîðìàöèþ î ”áåçäèñêîâîé çàãðóçêå”? ”Áåçäèñêîâàÿ çàãðóçêà” îçíà÷àåò, ÷òî ìàøèíà ñ FreeBSD çàãðóæàåòñÿ ïî ñåòè è ÷èòàåò íåîáõîäèìûå ôàéëû ñ ñåðâåðà, à íå ñî ñâîåãî äèñêà. Ïîäðîáíîå îïèñàíèå åñòü â ñîîòâåòñòâóþùåé ãëàâå (../handbook/diskless.html) Ðóêîâîäñòâà. 2. Ìîæåò ëè ìàøèíà ñ FreeBSD èñïîëüçîâàòüñÿ êàê ìàðøðóòèçàòîð? Äà. Ïîæàëóéñòà, îáðàòèòåñü ê ðàçäåëó Ðóêîâîäñòâà, ïîñâÿù¼ííîìó ñëîæíûì âîïðîñàì ðàáîòû â ñåòè (../handbook/advanced-networking.html), îñîáåííî â òîé ÷àñòè, ÷òî êàñàåòñÿ ìàðøðóòèçàöèè è ìàðøðóòèçàòîðîâ (../handbook/routing.html).
3. Ìîæíî ëè ïîäêëþ÷èòü ìàøèíó ñ Windows ê Internet ñ ïîìîùüþ FreeBSD? Êàê ïðàâèëî, òå, êòî çàäàþò òàêèå âîïðîñû, èìåþò äîìà äâà êîìïüþòåðà, îäèí ñ FreeBSD, à äðóãîé ñ êàêîé-òî âåðñèåé Windows; èäåÿ ñîñòîèò â èñïîëüçîâàíèè FreeBSD äëÿ ïîäêëþ÷åíèÿ ê Internet, à çàòåì îñóùåñòâëÿòü âûõîä â Internet èç Windows ÷åðåç FreeBSD. Íà ñàìîì äåëå ýòî ïðîñòî ÷àñòíûé ñëó÷àé ïðåäûäóùåãî âîïðîñà, êîòîðûé õîðîøî îòðàáîòàí. Åñëè äëÿ ïîäêëþ÷åíèÿ ê Internet âû èñïîëüçóåòå êîììóòèðóåìîå ñîåäèíåíèå, òî ppp(8) ðåæèìà ïîëüçîâàòåëÿ èìååò ïàðàìåòð -nat. Åñëè âû çàïóñòèòå ppp(8) ñ ïàðàìåòðîì -nat, óñòàíîâèâ â ôàéëå /etc/rc.conf ïåðåìåííóþ gateway_enable â çíà÷åíèå YES è ïðàâèëüíî íàñòðîèòå ìàøèíó ñ Windows, òî âñ¼ äîëæíî ïðåêðàñíî çàðàáîòàòü. Äëÿ ïîëó÷åíèÿ äîïîëíèòåëüíîé èíôîðìàöèè, ïîæàëóéñòà, îáðàòèòåñü ê ñòðàíèöàì ñïðàâî÷íîé ñèñòåìû ïî êîìàíäå ppp(8) èëè ðàçäåëó Ðóêîâîäñòâà î PPP ðåæèìà ïîëüçîâàòåëÿ (../handbook/userppp.html). Åñëè âû èñïîëüçóåòå PPP ðåæèìà ÿäðà, èëè ó âàñ Ethernet-ïîäêëþ÷åíèå ê Internet, òî íóæíî èñïîëüçîâàòü natd(8). Ïîæàëóéñòà, îáðàòèòåñü ê ðàçäåëó î natd (../handbook/network-natd.html) Ðóêîâîäñòâà äëÿ ïîëó÷åíèÿ ââîäíîé èíôîðìàöèè.
4. Ïîääåðæèâàåò ëè FreeBSD ïðîòîêîëû SLIP è PPP? Äà. Îáðàòèòåñü ê ñòðàíèöàì ñïðàâî÷íèêà ïî êîìàíäàì slattach(8), sliplogin(8), ppp(8), è pppd(8). ppp(8) è pppd(8) ìîãóò îáñëóæèâàòü êàê âõîäÿùèå, òàê è èñõîäÿùèå ñîåäèíåíèÿ, êîãäà êàê sliplogin(8) èìååò äåëî èñêëþ÷èòåëüíî ñî âõîäÿùèìè ñîåäèíåíèÿì, à slattach(8) òîëüêî ñ èñõîäÿùèìè. Áîëåå ïîäðîáíàÿ èíôîðìàöèÿ îá èõ èñïîëüçîâàíèè íàõîäèòñÿ â ðàçäåëå Ðóêîâîäñòâà î ïðîòîêîëàõ PPP è SLIP (../handbook/ppp-and-slip.html). Åñëè âû èìååòå äîñòóï â Internet òîëüêî ÷åðåç êîìàíäíóþ ñòðîêó îáîëî÷êè, âàì ìîæåò ïîäîéòè ïàêàäæ net/slirp. Ñ åãî ïîìîùüþ ìîæíî ïîëó÷èòü (îãðàíè÷åííûé) äîñòóï ê òàêèì ñëóæáàì, êàê FTP è http ïðÿìî ñ âàøåé ìàøèíû.
5. Ïîääåðæèâàåò ëè FreeBSD òåõíîëîãèþ NAT èëè Masquerading? Äà. Åñëè âû ñîáèðàåòåñü èñïîëüçîâàòü NAT ñ ïîëüçîâàòåëüñêèì ñîåäèíåíèåì PPP, ïîæàëóéñòà, îáðàòèòåñü ê ðàçäåëó Ðóêîâîäñòâà î ïîëüçîâàòåëüñêîì PPP (../handbook/userppp.html). Åñëè æå âû
91
Ãëàâà 12. Ðàáîòà â ñåòè
õîòèòå èñïîëüçîâàòü NAT âìåñòå ñ äðóãèì òèïîì ñåòåâîãî ïîäêëþ÷åíèÿ, ïîæàëóéñòà, âçãëÿíèòå íà ðàçäåë î natd (../handbook/network-natd.html) Ðóêîâîäñòâà.
6. Êàê ÿ ìîãó ñîåäèíèòü äâå FreeBSD ñèñòåìû ñ ïîìîùüþ ïàðàëëåëüíîãî ñîåäèíåíèÿ, èñïîëüçóÿ PLIP? Ïîæàëóéñòà, îáðàòèòåñü ê ðàçäåëó Ðóêîâîäñòâà î PLIP (../handbook/plip.html).
7. Ïî÷åìó ÿ íå ìîãó ñîçäàòü óñòðîéñòâî /dev/ed0? Äåëî â òîì, ÷òî òàêèå óñòðîéñòâà íå íóæíû.  ñòàíäàðòå ñåòåâîãî âçàèìîäåéñòâèÿ Áåðêëè ñåòåâûå èíòåðôåéñû íàïðÿìóþ äîñòóïíû òîëüêî ÿäðó. Çà äîïîëíèòåëüíîé èíôîðìàöèåé îáðàòèòåñü ê ôàéëó /etc/rc.network è ñòðàíèöàì ñïðàâî÷íèêà, îïèñûâàþùèì ðàçëè÷íûå ñåòåâûå ïðîãðàììû, óïîìèíàåìûå çäåñü. Åñëè âñ¼ ýòî îñòàâèò âàñ â íåäîóìåíèè, ïî÷èòàéòå êíèãó, îïèñûâàþùóþ àäìèíèñòðèðîâàíèå ñåòè â äðóãîé BSD-ïîäîáíîé îïåðàöèîííîé ñèñòåìå; ñ íåêîòîðûìè íåçíà÷èòåëüíûìè èñêëþ÷åíèÿìè, àäìèíèñòðèðîâàíèå ñåòè âî FreeBSD â îñíîâíîì ñîâïàäàåò ñ SunOS 4.0 è Ultrix.
8. Êàê íàñòðîèòü àëèàñ â ñåòè Ethernet? Åñëè àëèàñ íàõîäèòñÿ â òîé æå ñàìîé ñåòè, ÷òî è óæå íàñòðîåííûé íà èíòåðôåéñå àäðåñ, òî äîáàâüòå â êîìàíäíîé ñòðîêå äëÿ ifconfig(8) äîáàâüòå netmask 0xffffffff ïðèìåðíî ñëåäóþùèì îáðàçîì: # ifconfig ed0 alias 192.0.2.2 netmask 0xffffffff
 ïðîòèâíîì ñëó÷àå ïðîñòî çàäàéòå ñåòåâîé àäðåñ è ìàñêó îáû÷íûì îáðàçîì: # ifconfig ed0 alias 172.16.141.5 netmask 0xffffff00
9. Êàê çàñòàâèòü àäàïòåð 3C503 èñïîëüçîâàòü äðóãîé òèï ñåòåâîãî ðàçú¼ìà? Åñëè âû õîòèòå çàäåéñòâîâàòü äðóãîé ðàçú¼ì, òî äîëæíû óêàçàòü äîïîëíèòåëüíûé ïàðàìåòð ïðè âûçîâå êîìàíäû ifconfig(8). Ðàçú¼ìîì ïî óìîë÷àíèþ ÿâëÿåòñÿ link0. ×òîáû çàäåéñòâîâàòü ðàçú¼ì AUI, à íå BNC, èñïîëüçóéòå link2. Ýòè ôëàãè äîëæíû áûòü óêàçàíû ñ ïîìîùüþ ïåðåìåííûõ ifconfig_* â ôàéëå /etc/rc.conf (ïîñìîòðèòå ñïðàâêó ïî rc.conf(5)).
10. Ó ìåíÿ ïðîáëåìû ïðè ðàáîòå NFS âî FreeBSD. Íåêîòîðûå ñåòåâûå àäàïòåðû ðàáîòàþò (ìÿãêî ãîâîðÿ) õóæå, ÷åì äðóãèå, ÷òî ìîæåò èíîãäà âûçûâàòü ïðîáëåìû ïðè ðàáîòå ïðèëîæåíèé òèïà NFS, èíòåíñèâíî èñïîëüçóþùèõ ñåòü. Ïîäðîáíîñòè îïèñàíû â ñîîòâåòñòâóþùåé ãëàâå (../handbook/nfs.html) Ðóêîâîäñòâà, ïîñâÿù¼ííîé NFS.
11. Ïî÷åìó ÿ íå ìîãó ñìîíòèðîâàòü äèñê Linux ïî NFS? Íåêîòîðûå âåðñèè NFS äëÿ Linux ïîääåðæèâàþò çàïðîñû íà ìîíòèðîâàíèå òîëüêî ñ ïðèâèëåãèðîâàííîãî ïîðòà; ïîïðîáóéòå # mount -o -P linuxbox:/blah /mnt
92
Ãëàâà 12. Ðàáîòà â ñåòè
12. Ïî÷åìó ÿ íå ìîãó ñìîíòèðîâàòü äèñê Sun ïî NFS? Ðàáî÷èå ñòàíöèè Sun ïîä óïðàâëåíèåì SunOS 4.X ïîääåðæèâàþò çàïðîñû íà ìîíòèðîâàíèå òîëüêî ñ ïðèâèëåãèðîâàííîãî ïîðòà; ïîïðîáóéòå # mount -o -P sunbox:/blah /mnt
13. Ïî÷åìó mountd ïðîäîëæàåò âûäàâàòü ñîîáùåíèÿ can’t change attributes è bad exports list íà ìî¼ì ñåðâåðå NFS, ðàáîòàþùåì ïîä óïðàâëåíèåì FreeBSD?  áîëüøèíñòâå ñëó÷àåâ ïðîáëåìà çàêëþ÷àåòñÿ â íåäîñòàòî÷íîì ïîíèìàíèè êîððåêòíîãî ôîðìàòà ôàéëà /etc/exports. Ïîæàëóéñòà, ïðîñìîòðèòå åù¼ ðàç ñïðàâî÷íóþ èíôîðìàöèþ ïî exports(5) è ðàçäåë îá NFS (../handbook/nfs.html) â Ðóêîâîäñòâå, îñîáåííî â ÷àñòè íàñòðîéêè NFS
(../handbook/nfs.html#CONFIGURING-NFS). 14. Ïðîáëåìû ïðè ñâÿçè ïî PPP ñ ìàøèíàìè NeXTStep. Ïîïðîáóéòå îòìåíèòü âñå ðàñøèðåíèÿ TCP â ôàéëå /etc/rc.conf (ïîñìîòðèòå ñïðàâêó ïî rc.conf(5)), èçìåíèâ çíà÷åíèå ñëåäóþùåé ïåðåìåííîé â NO:
tcp_extensions=NO Ìàðøðóòèçàòîðû Annex ôèðìû Xylogic íå ðàáîòàþò ïî ýòîé æå ïðè÷èíå, ïîýòîìó ïðè ïîäêëþ÷åíèè ê íèì âàì íóæíî ïðîäåëàòü òî æå ñàìîå.
15. Êàê âêëþ÷èòü ïîääåðæêó multicast IP? Ïî óìîë÷àíèþ FreeBSD ïîääåðæèâàåò ðàáîòó ñ ìíîãîàäðåñíîãî ñåòåâîãî âåùàíèÿ. Åñëè âû õîòèòå èñïîëüçîâàòü âàø êîìïüþòåð êàê ìàðøðóòèçàòîð ìíîãîàäðåñíîãî òðàôèêà, âàì íóæíî ïåðåêîìïèëèðîâàòü ÿäðî ñ âêëþ÷åííîé îïöèåé MROUTING è çàïóñòèòü mrouted(8). Âî FreeBSD âî âðåìÿ çàãðóçêè áóäåò çàïóñêàòüñÿ mrouted(8), åñëè ïåðåìåííàÿ mrouted_enable â ôàéëå /etc/rc.conf óñòàíîâëåíà â çíà÷åíèå YES. Ïðèëîæåíèÿ MBONE íàõîäÿòñÿ â ñîáñòâåííîé êàòåãîðèè ïîðòîâ, mbone (http://www.FreeBSD.org/ports/mbone.html). Åñëè âû èùåòå ïðèëîæåíèÿ äëÿ îðãàíèçàöèè êîíôåðåíöèé vic è vat, ïîñìîòðèòå òàì!
16. Êàêèå ñåòåâûå àäàïòåðû ñäåëàíû íà íàáîðå ìèêðîñõåì DEC PCI? Âîò ñïèñîê, ñîñòàâëåííûé Ãëåíîì Ôîñòåðîì (Glen Foster) , ñ íåêîòîðûìè íåçíà÷èòåëüíûìè äîáàâëåíèÿìè:
Òàáëèöà 12-1. Ñåòåâûå êàðòû ñîçäàííûå íà îñíîâå íàáîðå ìèêðîñõåì DEC PCI
Ïðîèçâîäèòåëü
Ìîäåëü
ASUS
PCI-L101-TB
Accton
ENI1203
Cogent
EM960PCI
93
Ãëàâà 12. Ðàáîòà â ñåòè
Ïðîèçâîäèòåëü
Ìîäåëü
Compex
ENET32-PCI
D-Link
DE-530
Dayna
DP1203, DP2100
DEC
DE435, DE450
Danpex
EN-9400P3
JCIS
Condor JC1260
Linksys
EtherPCI
Mylex
LNP101
SMC
EtherPower 10/100 (Ìîäåëü 9332)
SMC
EtherPower (Ìîäåëü 8432)
TopWare
TE-3500P
Znyx (2.2.x)
ZX312, ZX314, ZX342, ZX345, ZX346, ZX348
Znyx (3.x)
ZX345Q, ZX346Q, ZX348Q, ZX412Q, ZX414, ZX442, ZX444, ZX474, ZX478, ZX212, ZX214 (10mbps/hd)
17. Ïî÷åìó ÿ äîëæåí èñïîëüçîâàòü FQDN äëÿ õîñòîâ íå â ìîåé ñåòè? Âû, íàâåðíîå, îáíàðóæèëè, ÷òî õîñò, ê êîòîðîìó âû îáðàòèëèñü, îêàçàëñÿ íà ñàìîì äåëå â äðóãîì äîìåíå; íàïðèìåð, åñëè âû íàõîäèòåñü â äîìåíå foo.example.org è õîòèòå îáðàòèòüñÿ ê õîñòó mumble â äîìåíå example.org, òî äîëæíû óêàçàòü åãî ïîëíîå äîìåííîå èìÿ, mumble.example.org, à íå ïðîñòî mumble. Òðàäèöèîííî, ýòî ïîçâîëÿë äåëàòü ðåñîëâåð BSD BIND. Îäíàêî òåêóùàÿ âåðñèÿ bind (ïîñìîòðèòå ñïðàâêó ïî named(8)), ïîñòàâëÿåìàÿ ñ FreeBSD, áîëüøå íå äîáàâëÿåò èìåíà äîìåíîâ, îòëè÷àþùèõñÿ îò òîãî, â êîòîðîì âû íàõîäèòåñü, äëÿ íå ïîëíîñòüþ óêàçàííûõ èì¼í õîñòîâ. Òàê ÷òî íåïîëíî óêàçàííûé õîñò mumble áóäåò íàéäåí ëèáî êàê mumble.foo.example.org, ëèáî áóäåò èñêàòüñÿ â êîðíåâîì äîìåíå. Ýòî îòëè÷àåòñÿ îò ïðåäûäóùåãî ïîâåäåíèÿ, ïðè êîòîðîì ïîèñê ïðîäîëæàëñÿ â mumble.example.org è mumble.edu. Ïîñìîòðèòå RFC 1535 î ïðè÷èíàõ îáúÿâëåíèÿ òàêîãî ïîâåäåíèÿ ïëîõîé ïðàêòèêîé è äàæå îøèáêîé â áåçîïàñíîñòè. Êàê õîðîøåå ðåøåíèå, âû ìîæåòå ïîìåñòèòü ñòðîêó
search foo.example.org example.org âìåñòî ðàíåå èñïîëüçóåìîé
domain foo.example.org â ôàéë /etc/resolv.conf (ïîñìîòðèòå ñïðàâêó ïî resolv.conf(5)). Îäíàêî óäîñòîâåðüòåñü, ÷òî ïîðÿäîê ïîèñêà íå íàðóøàåò ”ãðàíèö ïîëíîìî÷èé ìåæäó ìåñòíûì è âíåøíèì àäìèíèñòðèðîâàíèåì”, êàê ýòî íàçâàíî â RFC 1535.
94
Ãëàâà 12. Ðàáîòà â ñåòè
18. Permission denied äëÿ ëþáûõ äåéñòâèé, ñâÿçàííûõ ñ ðàáîòîé ñåòè. Åñëè âû êîìïèëèðîâàëè ÿäðî ñ îïöèåé IPFIREWALL, èìåéòå â âèäó, ÷òî ïîëèòèêîé ïî óìîë÷àíèþ ÿâëÿåòñÿ çàïðåò ïðîõîæäåíèÿ âñåõ ïàêåòîâ, êîòîðûå ÿâíî íå ðàçðåøåíû. Åñëè âû ñëó÷àéíî íåâåðíî îòêîíôèãóðèðîâàëè ìåæñåòåâîé ýêðàí, òî äëÿ âîññòàíîâëåíèÿ ðàáîòîñïîñîáíîñòü ñåòè äàéòå òàêóþ êîìàíäó, âîéäÿ ñóïåðïîëüçîâàòåëåì: # ipfw add 65534 allow all from any to any
Òàêæå âû ìîæåòå çàäàòü firewall_type=’open’ â ôàéëå /etc/rc.conf. Áîëåå ïîäðîáíàÿ èíôîðìàöèÿ î êîíôèãóðèðîâàíèè ìåæñåòåâîãî ýêðàíà â FreeBSD íàõîäèòñÿ â ñîîòâåòñòâóþùåì ðàçäåëå (../handbook/firewalls.html) Ðóêîâîäñòâà.
19. Êàêóþ íàãðóçêó âûçûâàåò èñïîëüçîâàíèå IPFW? Ïîæàëóéñòà, îáðàòèòåñü ê ðàçäåëó Ðóêîâîäñòâà î ìåæñåòåâûõ ýêðàíàõ (../handbook/firewalls.html), îñîáåííî â ÷àñòè, êàñàþùåéñÿ äîïîëíèòåëüíîé íàãðóçêè îò IPFW è îïòèìèçàöèè
(../handbook/firewalls.html#IPFW-OVERHEAD). 20. Ïî÷åìó ìî¼ ïðàâèëî ”fwd” äëÿ ipfw ïî ïåðåíàïðàâëåíèþ ñåðâèñà íà äðóãóþ ìàøèíó íå ðàáîòàåò? Âîçìîæíî, ïîòîìó ÷òî âû õîòèòå âûïîëíÿòü òðàíñëÿöèþ ñåòåâûõ àäðåñîâ (NAT), à íå ïðîñòî ïåðåíàïðàâëÿòü ïàêåòû. Ïðàâèëî ”fwd” äåëàåò òî÷íî òî, ÷òî îçíà÷àåò; îíî ïåðåíàïðàâëÿåò ïàêåòû. Äàííûå âíóòðè ïàêåòà îíî íå ìåíÿåò. Ïóñòü, ñêàæåì, ó íàñ èìååòñÿ ïðàâèëî òàêîãî âèäà:
01000 fwd 10.0.0.1 from any to foo 21 Êîãäà ïàêåò ñ àäðåñîì íàçíà÷åíèÿ foo äîñòèãàåò ìàøèíû ñ ýòèì ïðàâèëîì, òî îí ïåðåíàïðàâëÿåòñÿ íà 10.0.0.1, íî â í¼ì îñòà¼òñÿ àäðåñ íàçíà÷åíèÿ foo! Àäðåñ íàçíà÷åíèÿ ïàêåòà íå ìåíÿåòñÿ íà 10.0.0.1. Áîëüøèíñòâî ìàøèí, ñêîðåå âñåãî, îòáðîñÿò ïîëó÷åííûé ïàêåò, èìåþùèé àäðåñ íàçíà÷åíèÿ, èì íå ñîîòâåòñòâóþùèé. Òàêèì îáðàçîì, ïðàâèëî ”fwd” íå ÷àñòî ðàáîòàåò òàê, êàê îæèäàåò ïîëüçîâàòåëü. Òàêîå ïîâåäåíèå ÿâëÿåòñÿ îñîáåííîñòüþ, à íå îøèáêîé. Îáðàòèòåñü ê FAQ î ïåðåíàïðàâëåíèè ñåðâèñîâ, ðóêîâîäñòâó ïî natd(8) èëè îäíîé èç íåñêîëüêèõ óòèëèò äëÿ ïåðåíàïðàâëåíèÿ èç Êîëëåêöèè Ïîðòîâ (http://www.FreeBSD.org/ports/index.html) äëÿ òîãî, ÷òîáû ñäåëàòü ýòî ïðàâèëüíî.
21. Êàê ìîæíî ïåðåíàïðàâèòü çàïðîñû ñ îäíîé ìàøèíû íà äðóãóþ? Âû ìîæåòå ïåðåíàïðàâèòü çàïðîñ íà FTP (èëè äðóãîé ñåðâèñ) ñ ïîìîùüþ ïàêàäæà socket, äîñòóïíîãî â äåðåâå ïîðòîâ â êàòåãîðèè ”sysutils”. Ïðîñòî çàìåíèòå êîìàíäíóþ ñòðîêó çàïóñêà ñåðâèñà íà âûçîâ socket, òèïà:
ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.example.com ftp ãäå ftp.example.com è ftp ÿâëÿþòñÿ ñîîòâåòñòâåííî õîñòîì è ïîðòîì äëÿ ïåðåíàïðàâëåíèÿ.
95
Ãëàâà 12. Ðàáîòà â ñåòè
22. Ãäå ìîæíî íàéòè ñðåäñòâà óïðàâëåíèÿ ñåòåâûì òðàôèêîì? Äëÿ FreeBSD èìåþòñÿ òðè ñðåäñòâà óïðàâëåíèÿ òðàôèêîì. dummynet(4), èíòåãðèðîâàííûé â ñèñòåìó FreeBSD (áîëåå òî÷íî, â ipfw(4)); ñâîáîäíî ðàñïðîñòðàíÿåìûé ALTQ (http://www.csl.sony.co.jp/person/kjc/programs.html) è êîììåð÷åñêèé ïðîäóêò Bandwidth Manager îò Emerging
Technologies (http://www.etinc.com/). 23. Ïî÷åìó ïîÿâëÿþòñÿ ñîîáùåíèÿ /dev/bpf0: device not configured? Âû çàïóñêàåòå ïðîãðàììó, êîòîðîé òðåáóåòñÿ Berkeley Packet Filter (bpf(4)), îäíàêî åãî íåò â âàøåì ÿäðå. Ïåðåêîìïèëèðóéòå ÿäðî, äîáàâèâ â åãî êîíôèãóðàöèîííûé ôàéë ñëåäóþùóþ ñòðîêó:
pseudo-device bpf # Berkeley Packet Filter Äëÿ FreeBSD 4.X è áîëåå ðàííèõ âåðñèé âû äîëæíû òàêæå ñîçäàòü ôàéë óñòðîéñòâà. Ïîñëå ïåðåçàãðóçêè ñèñòåìû ïåðåéäèòå â êàòàëîã /dev è âûïîëíèòå êîìàíäó: # sh MAKEDEV bpf0
Îáðàòèòåñü ê ðàçäåëó Ðóêîâîäñòâà, ïîñâÿù¼ííîìó ñîçäàíèþ ôàéëîâ óñòðîéñòâ (../handbook/kernelconfig-nodes.html) çà ïîäðîáíîé èíôîðìàöèåé ïî óïðàâëåíèþ óñòðîéñòâàìè.
24. Êàê ñìîíòèðîâàòü äèñê Windows-ìàøèíû â ìîåé ëîêàëüíîé ñåòè, êàê ýòî äåëàåò smbmount â Linux? Èñïîëüçóéòå ïàêåò SMBFS.  íåãî âêëþ÷¼í íàáîð èçìåíåíèé â ÿäðå è ïîëüçîâàòåëüñêèå ïðîãðàììû. Ïðîãðàììû è èíôîðìàöèÿ äîñòóïíû â âèäå ïîðòà net/smbfs èç Êîëëåêöèè Ïîðòîâ èëè êàê ÷àñòü áàçîâîé ñèñòåìû â 4.5-RELEASE è áîëåå ïîçäíèõ âåðñèÿõ.
25. ×òî çíà÷àò ýòè ñîîáùåíèÿ ”icmp-response bandwidth limit 300/200 pps” â ìîèõ æóðíàëüíûõ ôàéëàõ? Ýòî ÿäðî ñîîáùàåò âàì, ÷òî èìåëà ìåñòî íåêîòîðàÿ àêòèâíîñòü, ïðèâîäÿùàÿ ê ïîñûëêå áîëüøåãî êîëè÷åñòâà îòâåòíûõ ïàêåòîâ ICMP èëè ñáðîñîâ TCP (RST), ÷åì, êàê ïðåäïîëàãàåòñÿ, ýòî ñëåäóåò äåëàòü. Îòâåòû ICMP ÷àñòî ãåíåðèðóþòñÿ â ðåçóëüòàòå ïîïûòîê ïîäêëþ÷åíèÿ ê íåçàíÿòûì ïîðòàì UDP. Ñáðîñû TCP ãåíåðèðóþòñÿ â ðåçóëüòàòå ïîïûòîê ïîäêëþ÷åíèÿ ê íåîòêðûòûì ïîðòàì TCP. Êðîìå âñÿêèõ ïðî÷èõ, òàêèå ñîîáùåíèÿ ìîãóò áûòü âûçâàíû ñëåäóþùèìè äåéñòâèÿìè: • Ëîáîâàÿ àòàêà òèïà îòêàç â îáñëóæèâàíèè
DoS (â îòëè÷èå îò àòàê â îäèí ïàêåò, êîòîðûå èñïîëüçóþò
êîíêðåòíóþ áðåøü â çàùèòå). • Ñêàíèðîâàíèå ïîðòîâ â ïîïûòêå îñóùåñòâèòü ïîäêëþ÷åíèå ê áîëüøîìó êîëè÷åñòâó ïîðòîâ (â
îòëè÷èå îò ïðîá íåñêîëüêèõ èçâåñòíûõ ïîðòîâ). Ïåðâîå ÷èñëî â ñîîáùåíèè óêàçûâàåò âàì, êàêîå êîëè÷åñòâî ïàêåòîâ ÿäðî ïîñûëàëî áû ïðè îòñóòñòâèè îãðàíè÷åíèé, à âòîðîå ÷èñëî óêàçûâàåò ëèìèò. Âû ìîæåòå óïðàâëÿòü ýòèì îãðàíè÷åíèåì ïðè ïîìîùè ñèñòåìíîé ïåðåìåííîé net.inet.icmp.icmplim ïðèâîäèìûì íèæå ñïîñîáîì, ãäå 300 ÿâëÿåòñÿ îãðàíè÷åíèåì íà êîëè÷åñòâî ïîñûëàåìûõ ïàêåòîâ â ñåêóíäó: # sysctl -w net.inet.icmp.icmplim=300
Åñëè âû íå õîòèòå âèäåòü ïîäîáíûå ñîîáùåíèÿ â æóðíàëüíûõ ôàéëàõ, íî õîòèòå èñïîëüçîâàòü ýòî îãðàíè÷åíèå â ÿäðå, òî ìîæåòå èñïîëüçîâàòü ñèñòåìíóþ ïåðåìåííóþ net.inet.icmp.icmplim_output äëÿ ïîäàâëåíèÿ âûâîäà, êàê ýòî ïîêàçàíî çäåñü:
96
Ãëàâà 12. Ðàáîòà â ñåòè # sysctl -w net.inet.icmp.icmplim_output=0
È íàêîíåö, åñëè âû õîòèòå âûêëþ÷èòü ýòî îãðàíè÷åíèå, òî ìîæåòå óñòàíîâèòü çíà÷åíèå ñèñòåìíîé ïåðåìåííîé net.inet.icmp.icmplim (ñìîòðèòå ïðèìåð âûøå) ðàâíûì 0. Âûêëþ÷åíèå ýòîãî ëèìèòà íå ïðèâåòñòâóåòñÿ ïî ïðè÷èíàì, ïåðå÷èñëåííûì âûøå.
26. ×òî ýòî çà ñîîáùåíèÿ arp: unknown hardware address format? Ýòî îçíà÷àåò, ÷òî êàêîå-òî óñòðîéñòâî â âàøåé ëîêàëüíîé ñåòè èñïîëüçóåò MAC-àäðåñ â ôîðìàòå, íå ðàñïîçíàâàåìîì FreeBSD. Ñêîðåå âñåãî, ýòî ïðîèñõîäèò èç-çà òîãî, ÷òî êòî-òî â ñåòè ýêñïåðèìåíòèðóåò ñ ñåòåâûì àäàïòåðîì. ×àùå âñåãî ýòî ïðîèñõîäèò â ñåòÿõ ñ êàáåëüíûìè ìîäåìàìè. Ýòî áåçîáèäíî è íå äîëæíî âëèÿòü íà ïðîèçâîäèòåëüíîñòü ìàøèíû ñ FreeBSD.
27. ß òîëüêî ÷òî óñòàíîâèë CVSup, íî ïðè ïîïûòêå åãî çàïóñòèòü ïîëó÷èë ñîîáùåíèÿ îá îøèáêàõ. ×òî íå òàê? Ñíà÷àëà ïîñìîòðèòå, åñòü ëè ñðåäè ïîëó÷àåìûõ âàìè ñîîáùåíèé òî, ÷òî ïîêàçàíî íèæå.
/usr/libexec/ld-elf.so.1: Shared object "libXaw.so.6" not found Îøèáêè, ïîäîáíûå ýòîé, âîçíèêàþò ïðè óñòàíîâêå ïîðòà net/cvsup íà ìàøèíó áåç ïàêåòà XFree86. Åñëè âû õîòèòå èñïîëüçîâàòü GUI, èìåþùèéñÿ â CVSup, òî âàì íóæíî òåïåðü óñòàíîâèòü XFree86. Ëèáî, åñëè âû õîòèòå èñïîëüçîâàòü CVSup òîëüêî èç êîìàíäíîé ñòðîêè, òî âû äîëæíû óäàëèòü ðàíåå óñòàíîâëåííûé ïàêàäæ. Çàòåì óñòàíîâèòå ïîðò net/cvsup-without-gui. Áîëåå ïîäðîáíî ýòî îïèñàíî â ðàçäåëå î CVSup (http://www.FreeBSD.org/doc/ru_RU.KOI8-R/books/handbook/cvsup.html) Ðóêîâîäñòâà.
97
Ãëàâà 13. Áåçîïàñíîñòü 1. ×òî îçíà÷àåò òåðìèí sandbox (ïåñî÷íèöà)? ”Sandbox” - ýòî òåðìèí, èñïîëüçóåìûé ïðè îáåñïå÷åíèè áåçîïàñíîñòè. Îí èìååò äâà çíà÷åíèÿ: • Ïðîöåññ, ïîìåù¼ííûé âíóòðü íåêîòîðûõ âèðòóàëüíûõ ñòåí, êîòîðûå ïðåäíàçíà÷åíû äëÿ òîãî, ÷òîáû
ïðåäîòâðàòèòü âçëîì âñåé ñèñòåìû â ðåçóëüòàòå âçëîìà ýòîãî êîíêðåòíîãî ïðîöåññà. Ãîâîðèòñÿ, ÷òî ïðîöåññ ìîæåò ”èãðàòü” â ãðàíèöàõ ýòèõ ñòåí. ×òî áû ýòîò ïðîöåññ íè äåëàë, îí ýòè ñòåíû ðàçðóøèòü íå ìîæåò, ïîýòîìó âàì íå íóæåí åãî îñîáûé àóäèò, ÷òîáû ñ óâåðåííîñòüþ ñêàçàòü, íàñêîëüêî åãî ðàáîòà áåçîïàñíà äëÿ ñèñòåìû. Ñòåíîé ìîæåò ñëóæèòü, íàïðèìåð, èäåíòèôèêàòîð ïîëüçîâàòåëÿ. Âîò îïðåäåëåíèå, äàâàåìîå íà ñòðàíèöàõ ñïðàâî÷íèêà ïî named è ÷àñòî èñïîëüçóåìîå ïðè îáñóæäåíèè áåçîïàñíîñòè ñèñòåì. Ðàññìîòðèì, íàïðèìåð, ñëóæáó ntalk (ñìîòðèòå /etc/inetd.conf). Ðàíüøå ýòà ñëóæáà çàïóñêàëàñü ñ èäåíòèôèêàòîðîì ïîëüçîâàòåëÿ root, à ñåé÷àñ - tty. Ïîëüçîâàòåëü tty - ýòî òà ïåñî÷íèöà, êîòîðàÿ îñëîæíÿåò âçëîì ñèñòåìû ÷åðåç ntalk ïîñðåäñòâîì èñïîëüçîâàíèÿ ýòîãî èäåíòèôèêàòîðà ïîëüçîâàòåëÿ.
• Ïðîöåññ, ïîìåù¼ííûé âíóòðü ñèìóëèðóåìîé ìàøèíû. Ýòî äà¼ò áîëüøèé óðîâåíü áåçîïàñíîñòè. Â
îáùåì ýòî îçíà÷àåò, ÷òî íåêòî, âçëîìàâøèé ïðîöåññ, ìîæåò äóìàòü. ÷òî ìîæåò ñëîìàòü è ñèñòåìó â öåëîì, îäíàêî ôàêòè÷åñêè ìîæåò ñëîìàòü òîëüêî ñèìóëÿòîð ýòîé ìàøèíû è íå ìîæåò ìîäèôèöèðîâàòü íèêàêèõ ðåàëüíûõ äàííûõ. Ñàìûì ðàñïðîñòðàí¼ííûì ñïîñîáîì äîñòèãíóòü òàêîãî ðåçóëüòàòà ÿâëÿåòñÿ ïîñòðîåíèå èìèòèðóþùåãî îêðóæåíèÿ â êàòàëîãå è çàòåì çàïóñê ïðîöåññîâ â ýòîì êàòàëîãå ÷åðåç chroot (ò.å. çàäàâ ýòîò êàòàëîã â êà÷åñòâå / äëÿ ýòîãî ïðîöåññà, à íå ðåàëüíûé / âñåé ñèñòåìû). Äðóãèì ÷àñòî èñïîëüçóåìûì ìåòîäîì ÿâëÿåòñÿ ìîíòèðîâàíèå íèçëåæàùåé ôàéëîâîé ñèñòåìû â ðåæèìå "òîëüêî äëÿ ÷òåíèÿ" è çàòåì ñîçäàíèå óðîâíÿ ôàéëîâîé ñèñòåìû ïîâåðõ íå¼, ÷òî äà¼ò ïðîöåññó âèäèìîñòü äîñòóïà ïî çàïèñè íà òó ôàéëîâóþ ñèñòåìó. Ïðîöåññ áóäåò ïîëàãàòü, ÷òî ìîæåò çàïèñûâàòü â òå ôàéëû, íî ýòî áóäåò åäèíñòâåííûé ïðîöåññ, êîòîðûé óâèäèò ðåçóëüòàò - äðóãèå ïðîöåññû íå áóäóò ýòîãî äåëàòü, íè â êîåì ñëó÷àå. Ïîïûòêà ñäåëàòü òàêîé òèï ïåñî÷íèöû íàñòîëüêî ïðîçðà÷íà, ÷òî ïîëüçîâàòåëü (èëè âçëîìùèê) äàæå íå ïîéì¼ò, ÷òî îí â íåé íàõîäèòñÿ.
 Unix ðåàëèçîâàíû äâà òèïà ”ïåñî÷íèö”. Îäèí íà óðîâíå ïðîöåññà, è îäèí íà óðîâíå èäåíòèôèêàòîðîâ ïîëüçîâàòåëåé. Êàæäûé ïðîöåññ â Unix ïîëíîñòüþ çàùèù¼í îò äðóãèõ ïðîöåññîâ. Íèêàêîé ïðîöåññ íå ìîæåò ìîäèôèöèðîâàòü àäðåñíîå ïðîñòðàíñòâî äðóãîãî ïðîöåññà. Ýòî îòëè÷àåòñÿ îò Windows, ãäå ïðîöåññ ìîæåò ëåãêî çàïèñàòü ÷òî-ëèáî â àäðåñíîå ïðîñòðàíñòâî äðóãîãî ïðîöåññà, ÷òî ïðèâîäèò ê àâàðèéíûì ñèòóàöèÿì.  Unix êàæäûì ïðîöåññîì âëàäååò íåêîòîðûé èäåíòèôèêàòîð ïîëüçîâàòåëÿ. Åñëè ýòîò ïîëüçîâàòåëü íå root, îí îãðàæäàåò ïðîöåññ îò äðóãèõ, âëàäåëüöàìè êîòîðûõ ÿâëÿþòñÿ äðóãèå ïîëüçîâàòåëè. Ýòîò èäåíòèôèêàòîð èñïîëüçóåòñÿ òàêæå äëÿ çàùèòû äàííûõ íà äèñêå.
98
Ãëàâà 13. Áåçîïàñíîñòü
2. ×òî òàêîå óðîâåíü çàùèòû (securelevel)? Óðîâåíü çàùèòû ÿâëÿåòñÿ ìåõàíèçìîì îáåñïå÷åíèÿ áåçîïàñíîñòè, ðåàëèçîâàííûì â ÿäðå.  îáùåì, êîãäà óðîâåíü çàùèòû áîëüøå íóëÿ, ÿäðî îãðàíè÷èâàåò âûïîëíåíèå íåêîòîðûõ îïåðàöèé; äàæå àäìèíèñòðàòîðó (òî åñòü ïîëüçîâàòåëþ root) çàïðåùàåòñÿ èõ âûïîëíÿòü. Íà ìîìåíò íàïèñàíèÿ ýòîãî òåêñòà ìåõàíèçì óðîâíÿ çàùèòû ìîæåò, êðîìå âñåãî ïðî÷åãî, îãðàíè÷èâàòü âîçìîæíîñòè ïî • ñíÿòèþ íåêîòîðûõ ôëàãîâ ñ ôàéëîâ, òàêèõ, êàê schg (ñèñòåìíûé ôëàã íåèçìåíÿåìîñòè), • çàïèñè â ïàìÿòü ÿäðà ÷åðåç óñòðîéñòâà /dev/mem è /dev/kmem, • çàãðóçêå ìîäóëåé ÿäðà è • èçìåíåíèþ ïðàâèë äëÿ
ipfirewall(4).
Äëÿ âûÿñíåíèÿ ñîñòîÿíèÿ óðîâíÿ çàùèòû â ðàáîòàþùåé ñèñòåìå ïðîñòî âûïîëíèòå ñëåäóþùóþ êîìàíäó: # sysctl kern.securelevel
Ðåçóëüòàò áóäåò ñîäåðæàòü íàçâàíèå sysctl(8)-ïåðåìåííîé (â íàøåì ñëó÷àå ýòî kern.securelevel) è ÷èñëî. Ïîñëåäíåå è ÿâëÿåòñÿ òåêóùèì çíà÷åíèåì óðîâíÿ çàùèòû. Åñëè îíî ïîëîæèòåëüíî (òî åñòü áîëüøå íóëÿ), òî ïî êðàéíåé ìåðå íåêîòîðûå èç çàùèò ýòîãî ìåõàíèçìà âêëþ÷åíû. Âû íå ìîæåòå ïîíèçèòü óðîâåíü çàùèòû ðàáîòàþùåé ñèñòåìû; âîçìîæíîñòü ñäåëàòü ýòî ïðîòèâîðå÷èò íàçíà÷åíèþ ýòîãî ìåõàíèçìà. Åñëè âàì íóæíî âûïîëíèòü ðàáîòó, êîòîðàÿ òðåáóåò íå ïîëîæèòåëüíûé óðîâåíü çàùèòû (ê ïðèìåðó, âûïîëíåíèå installworld èëè ñìåíà äàòû), âàì ïîòðåáóåòñÿ èçìåíèòü íàñòðîéêè óðîâíÿ çàùèòû ñèñòåìû â ôàéëå /etc/rc.conf (âàì íóæíî îáðàòèòü âíèìàíèå íà ïåðåìåííûå kern_securelevel è kern_securelevel_enable) è ïåðåçàãðóçèòü ñèñòåìó. Áîëåå ïîäðîáíàÿ èíôîðìàöèÿ îá óðîâíÿõ çàùèòû è î òîì, êàêèå ñïåöèôè÷åñêèå äåéñòâèÿ âûïîëíÿþò âñå óðîâíè, ìîæåò áûòü íàéäåíà íà ñïðàâî÷íûõ ñòðàíèöàõ î init(8).
Âíèìàíèå: Óðîâåíü çàùèòû íå ÿâëÿåòñÿ ïàíàöååé; â í¼ì åñòü ìíîãî íåäîñòàòêîâ. Çà÷àñòóþ îí äà¼ò îáìàí÷èâîå ÷óâñòâî áåçîïàñíîñòè.
Îäíîé èç ñàìûõ áîëüøèõ ïðîáëåì ÿâëÿåòñÿ òî, ÷òî äëÿ åãî ýôôåêòèâíîé ðàáîòû âñå ôàéëû, èñïîëüçóåìûå â ïðîöåññå çàãðóçêè, äîëæíû áûòü çàùèùåíû. Åñëè àòàêóþùèé ñìîæåò çàñòàâèòü ñèñòåìó âûïîëíÿòü ñâîé êîä äî óñòàíîâêè óðîâíÿ çàùèòû (÷òî ïðîèñõîäèò äîñòàòî÷íî ïîçäíî âî âðåìÿ ïðîöåññà çàãðóçêè, òàê êàê íåêîòîðûå âåùè, âûïîëíÿåìûå ñèñòåìîé â ýòî âðåìÿ, íå ìîãóò áûòü ñäåëàíû ïðè ïîâûøåííîì óðîâíå çàùèòû), òî ýòà çàùèòà ìîæåò áûòü îòêëþ÷åíà. Õîòÿ òàêàÿ çàäà÷à ïî çàùèòå âñåõ ôàéëîâ, èñïîëüçóåìûõ â ïðîöåññå çàãðóçêè, òåõíè÷åñêè âïîëíå îñóùåñòâèìà, åñëè ýòî áóäåò ñäåëàíî, òî ïîääåðæêà ñèñòåìû ñòàíåò êîøìàðîì, òàê êàê äëÿ èçìåíåíèÿ êîíôèãóðàöèîííîãî ôàéëà ïðèä¼òñÿ îñòàíàâëèâàòü ñèñòåìó, ïåðåâîäÿ å¼ ïî êðàéíåé ìåðå â îäíîïîëüçîâàòåëüñêèé ðåæèì. Ýòî îáñòîÿòåëüñòâî, à òàêæå ðÿä äðóãèõ, ÷àñòî îáñóæäàþòñÿ â ñïèñêàõ ðàññûëêè, â ÷àñòíîñòè, âî Ñïèñîê ðàññûëêè FreeBSD, ïîñâÿù¼ííûé èíôîðìàöèîííîé áåçîïàñíîñòè (http://lists.FreeBSD.org/mailman/listinfo/freebsd-security). Ïîæàëóéñòà, ïîèùèòå â àðõèâàõ (http://www.FreeBSD.org/search/index.html) áîëåå ïîäðîáíîå îáñóæäåíèå. Íåêîòîðûå íàäåþòñÿ, ÷òî ìåõàíèçì óðîâíåé çàùèòû âñêîðå îòîìð¼ò, à íà åãî ñìåíó ïðèä¼ò áîëåå ãèáêèé ìåõàíèçì, íî ïîêà âñ¼ ýòî òóìàííî. Ñ÷èòàéòå ñåáÿ ïðåäóïðåæä¼ííûìè.
99
Ãëàâà 13. Áåçîïàñíîñòü
3. BIND (named) ðàáîòàåò íà ïîðòó 53 è íà îäíîì èç ïîðòîâ ñ áîëüøèì íîìåðîì. ×òî ïðîèñõîäèò? Âî FreeBSD âåðñèé 3.0 è âûøå èñïîëüçóåòñÿ âåðñèÿ BIND, êîòîðàÿ äëÿ èñõîäÿùèõ çàïðîñîâ èñïîëüçóåò ñëó÷àéíî âûáèðàåìûé ïîðò ñ áîëüøèì íîìåðîì. Åñëè äëÿ èñõîäÿùèõ çàïðîñîâ âû õîòèòå èñïîëüçîâàòü ïîðò ñ íîìåðîì 53 äëÿ ðàáîòû çà ìåæñåòåâûì ýêðàíîì ëèáî ïðîñòî äëÿ ñîáñòâåííîãî ñïîêîéñòâèÿ, òî ìîæåòå ïîïðîáîâàòü íàñòðîèòü ôàéë /etc/namedb/named.conf ñëåäóþùèì îáðàçîì:
options { query-source address * port 53; }; Ìîæåòå çàìåíèòü ñèìâîë * íåêîòîðûì IP-àäðåñîì, åñëè õîòèòå íàñòðîèòü âñå åùå æåñò÷å. Êñòàòè, ïîçäðàâëÿåì. Ïðåêðàñíî, ÷òî âû ÷èòàåòå âûâîä êîìàíäû sockstat(1) è îáðàùàåòå âíèìàíèå íà àíîìàëèè!
4. Sendmail æä¼ò ñîåäèíåíèé êàê íà ñòàíäàðòíîì ïîðòó 25, òàê è íà ïîðòó 587! ×òî ïðîèñõîäèò? Ïîñëåäíèå âåðñèè Sendmail ïîääåðæèâàþò ìåõàíèçì ïîñûëêè ïî÷òû, êîòîðûé ðàáîòàåò ïî ïîðòó 587. Ýòà âîçìîæíîñòü ïîêà øèðîêî íå èñïîëüçóåòñÿ, íî åå ïîïóëÿðíîñòü ðàñòåò.
5. ×òî ýòî çà ïîëüçîâàòåëü toor ñ UID 0? ß ïîäâåðãñÿ âçëîìó? Íå âîëíóéòåñü, toor ÿâëÿåòñÿ ”àëüòåðíàòèâíûì” àäìèíèñòðàòèâíûì ïîëüçîâàòåëåì (toor - ýòî root, çàïèñàííûé çàäîì íàïåðåä). Ðàíüøå îí ñîçäàâàëñÿ ïðè óñòàíîâêå êîìàíäíîãî èíòåðïðåòàòîðà bash(1), îäíàêî òåïåðü îí ñîçäàåòñÿ ïî óìîë÷àíèþ. Åãî ïðåäïîëàãàåòñÿ èñïîëüçîâàòü ñ íåñòàíäàðòíûì êîìàíäíûì èíòåðïðåòàòîðîì, òàê ÷òîáû âàì íå íóæíî áûëî ìåíÿòü èñïîëüçóåìûé ïî óìîë÷àíèþ êîìàíäíûé ïðîöåññîð äëÿ ïîëüçîâàòåëÿ root. Ýòî âàæíî, òàê êàê îáîëî÷êè, íå ÿâëÿþùèåñÿ ÷àñòüþ äèñòðèáóòèâà ñèñòåìû (íàïðèìåð, êîìàíäíûé ïðîöåññîð, óñòàíàâëèâàåìûé èç ïîðòîâ èëè ïàêàäæåé), ñêîðåå âñåãî, óñòàíàâëèâàþòñÿ â êàòàëîã /usr/local/bin, êîòîðûé ïî óìîë÷àíèþ ðàñïîëàãàåòñÿ â äðóãîé ôàéëîâîé ñèñòåìå. Åñëè êîìàíäíûé ïðîöåññîð äëÿ ïîëüçîâàòåëÿ root ðàñïîëàãàåòñÿ â /usr/local/bin, è /usr (èëè äðóãàÿ ôàéëîâàÿ ñèñòåìà, ñîäåðæàùàÿ /usr/local/bin) ïî êàêîé-ëèáî ïðè÷èíå íå ñìîíòèðîâàíà, òî root íå ñìîæåò âîéòè â ñèñòåìó äëÿ èñïðàâëåíèÿ ýòîé ïðîáëåìû (õîòÿ åñëè âû ïåðåçàãðóçèòå ñèñòåìó â îäíîïîëüçîâàòåëüñêèé ðåæèì, âû ñìîæåòå óêàçàòü êîìàíäíûé ïðîöåññîð). Íåêîòîðûå èñïîëüçóþò toor äëÿ âûïîëíåíèÿ ïîâñåäíåâíûõ àäìèíèñòðàòèâíûõ ðàáîò ñ íåñòàíäàðòíûì êîìàíäíûì ïðîöåññîðîì, îñòàâëÿÿ root ñî ñòàíäàðòíîé îáîëî÷êîé äëÿ ðàáîòû â îäíîïîëüçîâàòåëüñêîì ðåæèìå èëè âûïîëíåíèÿ àâàðèéíûõ ðàáîò. Ïî óìîë÷àíèþ âû íå ñìîæåòå âîéòè â ñèñòåìó êàê ïîëüçîâàòåëü toor, ïîòîìó ÷òî ó íåãî íåò ïàðîëÿ, òàê ÷òî, åñëè âû õîòèòå åãî èñïîëüçîâàòü, çàðåãèñòðèðóéòåñü â ñèñòåìå êàê root è çàäàéòå ïàðîëü äëÿ ïîëüçîâàòåëÿ toor.
6. Ïî÷åìó suidperl ðàáîòàåò íåïðàâèëüíî?  öåëÿõ îáåñïå÷åíèÿ áåçîïàñíîñòè suidperl ïî óìîë÷àíèþ óñòàíàâëèâàåòñÿ áåç suid-áèòà. Ñèñòåìíûé àäìèíèñòðàòîð ìîæåò âêëþ÷èòü èñïîëüçîâàíèå suid-áèòà ñëåäóþùåé êîìàíäîé. # chmod u+s /usr/bin/suidperl
100
Ãëàâà 13. Áåçîïàñíîñòü
Åñëè âû õîòèòå, ÷òîáû suid-áèò äëÿ suidperl áûëî óñòàíîâëåí âî âðåìÿ îáíîâëåíèÿ èç èñõîäíûõ òåêñòîâ, îòðåäàêòèðóéòå /etc/make.conf, äîáàâèâ ENABLE_SUIDPERL=true ïåðåä çàïóñêîì make buildworld.
101
Ãëàâà 14. PPP 1. Íå ìîãó çàñòàâèòü ðàáîòàòü ppp. ×òî ÿ äåëàþ íå òàê? Ïåðâûì äåëîì ïðî÷òèòå ñòðàíèöû ñïðàâî÷íèêà, ïîñâÿù¼ííûå ppp(8), à òàêæå ñîîòâåòñòâóþùèé ðàçäåë (../handbook/ppp-and-slip.html#USERPPP) Ðóêîâîäñòâà. Âêëþ÷èòå ïðîòîêîëèðîâàíèå êîìàíäîé
set log Phase Chat Connect Carrier lcp ipcp ccp command Ýòà êîìàíäà ìîæåò áûòü íàáðàíà â êîìàíäíîé ñòðîêå ppp(8) èëè îíà ìîæåò íàõîäèòüñÿ â êîíôèãóðàöèîííîì ôàéëå /etc/ppp/ppp.conf (íà÷àëî ñåêöèè default - ëó÷øåå äëÿ íå¼ ìåñòî. Óäîñòîâåðüòåñü, ÷òî ôàéë /etc/syslog.conf (ïîñìîòðèòå ñïðàâêó ïî syslog.conf(5)) ñîäåðæèò ñòðîêè
!ppp *.*
/var/log/ppp.log
è ôàéë /var/log/ppp.log ñóùåñòâóåò. Òåïåðü âû ñìîæåòå íàéòè ïîëíóþ èíôîðìàöèþ î ïðîèñõîäÿùåì â ôàéëå ïðîòîêîëà. Íå áåñïîêîéòåñü, åñëè íå âñ¼ âàì áóäåò òàì ïîíÿòíî. Åñëè âû áóäåòå ïîëüçîâàòüñÿ ÷üåé-òî ïîìîùüþ, ïðîòîêîë âàì ïðèãîäèòñÿ. Åñëè âàøà âåðñèÿ ppp(8) íå ïîíèìàåò êîìàíäó set log, âû äîëæíû ñêà÷àòü ïîñëåäíþþ âåðñèþ (http://people.FreeBSD.org/~brian/). Îíà ðàññ÷èòàíà íà FreeBSD âåðñèé 2.1.5 è âûøå.
2. Ppp ïðîñòî çàâèñàåò, êîãäà ÿ åãî çàïóñêàþ Îáû÷íî ýòî ïðîèñõîäèò, êîãäà íå ìîæåò áûòü îïðåäåëåíî èìÿ âàøåãî õîñòà. Íàèëó÷øèé ñïîñîá èñïðàâèòü ýòî - óäîñòîâåðèòüñÿ, ÷òî ôàéë /etc/hosts èñïîëüçóåòñÿ âàøèì ðåñîëâåðîì. Îòðåäàêòèðóéòå ôàéë /etc/host.conf, ïîìåñòèâ íà ïåðâîå ìåñòî ñòðî÷êó hosts. Çàòåì ïðîñòî äîáàâüòå çàïèñè î âàøåé ìàøèíå â ôàéë /etc/hosts. Åñëè ó âàñ íåò ëîêàëüíîé ñåòè, èçìåíèòå ñòðîêó localhost:
127.0.0.1
foo.example.com foo localhost
 ïðîòèâíîì ñëó÷àå ïðîñòî äîáàâüòå åù¼ îäíó çàïèñü î âàøåì õîñòå. Îáðàòèòåñü ê ñîîòâåòñòâóþùèì ñòðàíèöàì ñïðàâî÷íèêà çà ïîäðîáíûì îïèñàíèåì. Åñëè âû âûïîëíèëè ýòè óêàçàíèÿ, âû ñìîæåòå óñïåøíî âûïîëíèòü êîìàíäó ping -c1 ‘hostname‘.
3. Ppp íå çâîíèò â ðåæèìå -auto Âî-ïåðâûõ, ïðîâåðüòå, ÷òî ó âàñ åñòü ìàðøðóò ïî óìîë÷àíèþ. Âûïîëíèâ êîìàíäó netstat -rn (ïîñìîòðèòå ñïðàâêó ïî netstat(1)), âû äîëæíû óâèäåòü äâå ñòðîêè òàêîãî âèäà:
Destination default 10.0.0.2
Gateway 10.0.0.2 10.0.0.1
Flags UGSc UH
Refs 0 0
Use 0 0
Netif Expire tun0 tun0
102
Ãëàâà 14. PPP
Çäåñü ïðåäïîëàãàåòñÿ, ÷òî âû èñïîëüçîâàëè àäðåñà, ïðèâåä¼ííûå â Ðóêîâîäñòâå, Ñïðàâî÷íèêå èëè ôàéëå ppp.conf.sample. Åñëè ó âàñ íåò ìàðøðóòà ïî óìîë÷àíèþ, ýòî ìîæåò áûòü èç-çà èñïîëüçîâàíèÿ ñòàðîé âåðñèè ppp(8), êîòîðàÿ íå ïîíèìàåò ñëîâà HISADDR â ôàéëå ppp.conf. Åñëè âàøà âåðñèÿ ppp(8) èç FreeBSD âåðñèé ðàíåå ÷åì 2.2.5, çàìåíèòå ñòðîêó
add 0 0 HISADDR
íà
add 0 0 10.0.0.2
Äðóãàÿ ïðè÷èíà îòñóòñòâèÿ ìàðøðóòà ïî óìîë÷àíèþ ìîæåò êðûòüñÿ â òîì, ÷òî âû îøèáî÷íî óñòàíîâèëè ìàðøðóò ïî óìîë÷àíèþ â âàøåì ôàéëå /etc/rc.conf (ïîñìîòðèòå ñïðàâêó ïî rc.conf(5)) (ýòîò ôàéë íàçûâàëñÿ /etc/sysconfig äî 2.2.2-RELEASE), è âû ïðîïóñòèëè ñòðîêó
delete ALL
â ppp.conf.  òàêîì ñëó÷àå îáðàòèòåñü ê ñîîòâåòñòâóþùåìó ðàçäåëó (../handbook/ppp-and-slip.html#USERPPP-FINAL) Ðóêîâîäñòâà.
4. ×òî îçíà÷àåò ñîîáùåíèå No route to host? Ýòà îøèáêà ïîÿâëÿåòñÿ èç-çà îòñóòñòâóþùåãî ðàçäåëà
MYADDR: delete ALL add 0 0 HISADDR
â ôàéëå /etc/ppp/ppp.linkup. Îí íåîáõîäèì, åñëè âàø IP àäðåñ âûäåëÿåòñÿ äèíàìè÷åñêè èëè àäðåñ ìàðøðóòèçàòîðà âàì íå èçâåñòåí. Åñëè âû èñïîëüçóåòå èíòåðàêòèâíûé ðåæèì, âû ìîæåòå íàáðàòü ñëåäóþùèå êîìàíäû ïîñëå âõîäà â ïàêåòíûé ðåæèì (ïàêåòíûé ðåæèì èäåíòèôèöèðóåòñÿ çàãëàâíûìè áóêâàìè PPP â ïðèãëàøåíèè):
delete ALL add 0 0 HISADDR
Îáðàòèòåñü ê ðàçäåëó PPP è äèíàìè÷åñêèå IP àäðåñà
(../handbook/ppp-and-slip.html#USERPPP-DYNAMICIP) Ðóêîâîäñòâà çà ïîäðîáíîé èíôîðìàöèåé.
5. Ñîåäèíåíèå ðàçðûâàåòñÿ ÷åðåç 3 ìèíóòû Òàéìàóò äëÿ PPP ïî óìîë÷àíèþ ðàâåí 3 ìèíóòàì. Ýòî ìîæåò áûòü èçìåíåíî ñòðîêîé
set timeout NNN
103
Ãëàâà 14. PPP
ãäå NNN - âðåìÿ íåàêòèâíîñòè â ñåêóíäàõ, ïîñëå êîòîðîãî ñîåäèíåíèå çàêðûâàåòñÿ. Åñëè NNN ðàâíî íóëþ, ñîåäèíåíèå íèêîãäà íå ðàçðûâàåòñÿ ïî òàéìàóòó. Ýòó êîìàíäó ìîæíî ïîìåñòèòü â ôàéë ppp.conf èëè íàáðàòü åå â èíòåðàêòèâíîì ðåæèìå. Èçìåíåíèå ýòîãî ïàðàìåòðà òàêæå âîçìîæíî ïðè àêòèâíîì ñîåäèíåíèè, åñëè ïîäêëþ÷èòüñÿ ê ñîêåòó ppp ñåðâåðà ñ ïîìîùüþ ïðîãðàìì telnet(1) èëè pppctl(8). Îáðàòèòåñü ê ñòðàíèöàì Ñïðàâî÷íèêà, ïîñâÿù¼ííûì ppp(8).
6. Ñîåäèíåíèå ðàçðûâàåòñÿ ïðè áîëüøîé íàãðóçêå Åñëè ó âàñ âêëþ÷åí Link Quality Reporting (LQR), âîçìîæíî, ÷òî ñëèøêîì ìíîãî ïàêåòîâ LQR òåðÿåòñÿ â êàíàëå. Ppp äåëàåò âûâîä, ÷òî êàíàë ïëîõ, è ðàçðûâàåò ñîåäèíåíèå.  FreeBSD äî âåðñèè 2.2.5 LQR áûëî âêëþ÷åíî ïî óìîë÷àíèþ. Ñåé÷àñ îíî ïî óìîë÷àíèþ âûêëþ÷åíî. LQR ìîæíî âûêëþ÷èòü ñòðîêîé
disable lqr
7. Ñîåäèíåíèå ðàçðûâàåòñÿ â ñëó÷àéíûå ïðîìåæóòêè âðåìåíè Èíîãäà, íà øóìíîé ëèíèè èëè äàæå íà ëèíèè ñ âêëþ÷åííûì ðåæèìîì îæèäàíèÿ çâîíêà, âàø ìîäåì ìîæåò âåøàòü òðóáêó, äóìàÿ (ñîâåðøåííî íàïðàñíî), ÷òî ïîòåðÿë íåñóùóþ.  áîëüøèíñòâå ìîäåìîâ åñòü ïàðàìåòð, îïðåäåëÿþùèé ÷óâñòâèòåëüíîñòü ê âðåìåííîé ïîòåðå íåñóùåé. Íàïðèìåð, â ìîäåìå USR Sportster, ýòî îïðåäåëÿåòñÿ çíà÷åíèåì ðåãèñòðà S10 â äåñÿòûõ äîëÿõ ñåêóíäû. ×òîáû ñäåëàòü ñâÿçü áîëåå óñòîé÷èâîé, äîáàâüòå ñëåäóþùóþ ïîñëåäîâàòåëüíîñòü ïîñûëîê-îæèäàíèé â ñòðîêó íàáîðà:
set dial "...... ATS10=10 OK ......"
Îáðàòèòåñü ê ðóêîâîäñòâó ïî âàøåìó ìîäåìó.
8. Ñîåäèíåíèå ÷àñòî ðâ¼òñÿ â ñëó÷àéíûå ïðîìåæóòêè âðåìåíè Ìíîãèå ñîîáùàþò îá îáðûâàõ ñîåäèíåíèé áåç âèäèìîé ïðè÷èíû. Ïåðâûì äåëîì íóæíî âûÿñíèòü, ñ êàêîé ñòîðîíû ñîåäèíåíèÿ ðâ¼òñÿ ñâÿçü. Åñëè âû èñïîëüçóåòå âíåøíèé ìîäåì, ìîæåòå ïðîñòî ïîïðîáîâàòü èñïîëüçîâàòü óòèëèòó ping(8) è ïîñìîòðåòü, ìèãàåò ëè èíäèêàòîð TD ïðè ïåðåäà÷å äàííûõ. Åñëè îí ìèãàåò (à èíäèêàòîð RD íåò), ïðîáëåìà ñ òîé ñòîðîíû. Åñëè èíäèêàòîð TD íå çàãîðàåòñÿ, ïðîáëåìà ñ âàøåé ñòîðîíû. Ïðè èñïîëüçîâàíèè âíóòðåííåãî ìîäåìà âàì íåîáõîäèìî âîñïîëüçîâàòüñÿ êîìàíäîé set server, óêàçàâ å¼ â ôàéëå ppp.conf. Êîãäà ïðîèçîéä¼ò îáðûâ ñâÿçè, ïîäêëþ÷èòåñü ê ppp(8) ñ ïîìîùüþ pppctl(8). Åñëè âàøå ñåòåâîå ïîäêëþ÷åíèå íåîæèäàííî âîññòàíîâèòñÿ (PPP îæèâàåò ïðè ïðîÿâëåíèè àêòèâíîñòè íà äèàãíîñòè÷åñêîì ñîêåòå) èëè èëè åñëè âû íå ñìîæåòå ñîåäèíèòüñÿ (çäåñü ìû ïîëàãàåì, ÷òî êîìàíäà set socket â íà÷àëüíûé ìîìåíò áûëà âûïîëíåíà óñïåøíî), òî ïðîáëåìà èìååò ëîêàëüíûé õàðàêòåð. Åñëè âû ñìîæåòå ïîäêëþ÷èòüñÿ, íî ñâÿçè âñ¼ ðàâíî íåò, âêëþ÷èòå âûâîä îòëàäî÷íîé èíôîðìàöèè êîìàíäîé set log local async è çàïóñòèòå ping èç äðóãîãî îêíà èëè òåðìèíàëà, ÷òîáû ïðîâåðèòü ñâÿçü.  îòëàäî÷íîì âûâîäå áóäóò ïîêàçàíû äàííûå, ïåðåäàâàåìûå è ïîëó÷àåìûå èç êàíàëà ñâÿçè. Åñëè äàííûå ïîñûëàþòñÿ, íî íå ïðèíèìàþòñÿ îáðàòíî, ïðîáëåìà ñ ïðîòèâîïîëîæíîé ñòîðîíû. Âûÿñíèâ, ÿâëÿåòñÿ ýòà ïðîáëåìà ëîêàëüíîé èëè óäàë¼ííîé ñèñòåìû, âû èìååòå äâà âàðèàíòà äåéñòâèé:
104
Ãëàâà 14. PPP • Åñëè ïðîáëåìà íà óäàë¼ííîé ìàøèíå, òî ïðî÷òèòå Â: • Åñëè ïðîáëåìà ñ âàøåé ñòîðîíû, ïðî÷òèòå Â:
9..
10..
9. Óäàë¼ííàÿ ñèñòåìà íå îòâå÷àåò Çäåñü âû ìàëî ÷òî ìîæåòå ñäåëàòü. Áîëüøèíñòâî ïðîâàéäåðîâ îòêàçûâàþòñÿ îêàçàòü ïîìîùü, åñëè âû èñïîëüçóåòå ÎÑ íå îò Microsoft. Âû ìîæåòå äîáàâèòü êîìàíäó enable lqr â âàø ppp.conf, ÷òî ïîçâîëèò ppp(8) îòñëåäèòü îøèáêè â óäàë¼ííîé ñèñòåìå è çàêðûâàòü ñîåäèíåíèå, îäíàêî òàêîå îáíàðóæåíèå äîñòàòî÷íî ìåäëåííî è ïîýòîìó íå òàê óæ ïîëåçíî. Âû ìîæåòå òàêæå ïðîñòî íå ñîîáùàòü ñâîåìó ïðîâàéäåðó, ÷òî çàïóñêàåòå user-PPP.... Ïåðâûì äåëîì ïîïðîáóéòå îòêëþ÷èòü âñþ ìåñòíóþ êîìïðåññèþ, óêàçàâ â êîíôèãóðàöèîííîì ôàéëå ñëåäóþùåå:
disable pred1 deflate deflate24 protocomp acfcomp shortseq vj deny pred1 deflate deflate24 protocomp acfcomp shortseq vj
Òåïåðü ïîïðîáóéòå óñòàíîâèòü ñîåäèíåíèå åù¼ ðàç è óäîñòîâåðèòüñÿ, ÷òî ñèòóàöèÿ íå èçìåíèëàñü. Åñëè êà÷åñòâî ñîåäèíåíèÿ óëó÷øèëîñü èëè ïðîáëåìà îêàçàëàñü ïîëíîñòüþ ðåø¼ííîé, âûÿñíèòå, íàñòðîéêà ÷åãî ïðèâîäèëà ê ïðîáëåìàì ìåòîäîì ïðîá è îøèáîê. Ýòî äàñò âàì äîïîëíèòåëüíóþ çàùèòó, êîãäà âû áóäåòå ðàçãîâàðèâàòü ñ âàøèì ïðîâàéäåðîì (õîòÿ ïðè ýòîì ìîæåò îáíàðóæèòüñÿ, ÷òî âû ðàáîòàåòå íå ñ ïðîäóêòîì Microsoft). Ïåðåä òåì, êàê çâîíèòü ïðîâàéäåðó, âêëþ÷èòå âûâîä îòëàäî÷íîé èíôîðìàöèè, êàê âû ýòî äåëàëè ðàíåå è ïîäîæäèòå, ïîêà ñîåäèíåíèå ñíîâà íå ïðåðâ¼òñÿ. Ïðàâäà, äëÿ ýòîãî òðåáóåòñÿ íåêîòîðîå äèñêîâîå ïðîñòðàíñòâî. Èíòåðåñ ìîãóò ïðåäñòàâëÿòü ïîñëåäíèå ïðî÷èòàííûå èç ïîðòà äàííûå. Îáû÷íî ýòî äàííûå â ôîðìàòå ascii è îíè ìîãóò äàæå ñîäåðæàòü îïèñàíèå ïðîáëåìû (”Memory fault, core dumped” ?). Åñëè âàø ïðîâàéäåð ñîãëàñåí ïîìî÷ü âàì, íóæíî áóäåò âêëþ÷èòü ðåæèì îòëàäêè ñ èõ ñòîðîíû, à ïîòîì, êîãäà ñâÿçü ïðåðâ¼òñÿ â ñëåäóþùèé ðàç, îíè ìîãóò ñêàçàòü âàì, ïî÷åìó âîçíèêëè ïðîáëåìû ñ èõ ñòîðîíû. Áóäåò õîðîøî, åñëè âû ïðèøë¼òå äåòàëüíîå îïèñàíèå íà àäðåñ Brian Somers , èëè äàæå ïîïðîñèòå ïðîâàéäåðà ñâÿçàòüñÿ ñî ìíîé íàïðÿìóþ.
10. Ppp çàâèñàåò Ëó÷øå âñåãî â ýòîì ñëó÷àå ïåðåêîìïèëèðîâàòü ppp(8), äîáàâèâ ïàðàìåòðû CFLAGS+=-g è STRIP= â êîíåö Makefile, à çàòåì âûïîëíèòü êîìàíäó make clean && make && make install. Êîãäà ppp(8) çàâèñíåò, íàéäèòå èäåíòèôèêàòîð ïðîöåññà ppp(8) ñ ïîìîùüþ êîìàíäû ps ajxww | fgrep ppp è âûïîëíèòå êîìàíäó gdb ppp PID . Çàòåì â ïðèãëàøåíèè gdb âû ìîæåòå èñïîëüçîâàòü êîìàíäó bt äëÿ ïîëó÷åíèÿ ñòåêà âûçîâîâ. Ïîøëèòå ðåçóëüòàò íà àäðåñ Brian Somers .
11. Íè÷åãî íå ïðîèñõîäèò ïîñëå ñîîáùåíèÿ Login OK! Äî âåðñèè FreeBSD 2.2.5, êàê òîëüêî ñâÿçü óñòàíàâëèâàëàñü, ppp(8) îæèäàë íà÷àëà ñîãëàñîâàíèÿ Line Control Protocol (LCP) ñ ïðîòèâîïîëîæíîé ñòîðîíû. Ìíîãèå ïðîâàéäåðû Internet íå íà÷èíàþò
105
Ãëàâà 14. PPP
ñîãëàñîâàíèÿ è ïðåäïîëàãàþò, ÷òî ýòî ñäåëàåò êëèåíò. ×òîáû çàñòàâèòü ppp(8) èíèöèèðîâàòü ñîãëàñîâàíèå ïàðàìåòðîâ LCP, èñïîëüçóéòå ñëåäóþùóþ ñòðîêó:
set openmode active
Çàìå÷àíèå: Íè÷åãî ñòðàøíîãî íå ïðîèçîéä¼ò, åñëè ñîãëàñîâàíèå íà÷íóò îáå ñòîðîíû, ïîýòîìó ðåæèì
èíèöèèðîâàíèÿ ñåé÷àñ ïî óìîë÷àíèþ àêòèâíûé. Îäíàêî, â ñëåäóþùåì ðàçäåëå îïèñûâàåòñÿ ñèòóàöèÿ, êîãäà ýòî ïðèâîäèò ê íåêîòîðûì íåïðèÿòíîñòÿì.
12.  ïðîòîêîëå åñòü ñîîáùåíèÿ î òîì, ÷òî ”magic being the same”. Èíîãäà, ñðàçó æå ïîñëå óñòàíîâëåíèÿ ñîåäèíåíèÿ, âû ìîæåòå óâèäåòü ñîîáùåíèÿ â ïðîòîêîëå, ãîâîðÿùèå ÷òî ”magic is the same”. Èíîãäà ýòè ñîîáùåíèÿ ïðîõîäÿò áåçáîëåçíåííî, à èíîãäà îäíà èç ñòîðîí ïðåêðàùàåò ðàáîòó. Áîëüøèíñòâî ðåàëèçàöèé PPP íå ìîæåò ñïðàâèòüñÿ ñ òàêîé ñèòóàöèåé, è, äàæå êîãäà ñâÿçü âûãëÿäèò óñòàíîâèâøåéñÿ, âû áóäåòå âèäåòü òîëüêî áåñêîíå÷íî ïîâòîðÿþùèåñÿ êîíôèãóðàöèîííûå çàïðîñû è ïîäòâåðæäåíèÿ â ôàéëå ïðîòîêîëà äî òåõ ïîð, ïîêà ppp(8) îêîí÷àòåëüíî íå çàêðîåò ñîåäèíåíèå. Îáû÷íî ýòî ïðîèñõîäèò íà ñåðâåðàõ ñ ìåäëåííûìè äèñêàìè, íà êîòîðûõ ïîðò îáñëóæèâàåò ïðîãðàììà getty, à ppp(8) âûïîëíÿåòñÿ èç ñöåíàðèÿ ðåãèñòðàöèè èëè äðóãîé ïðîãðàììû ïîñëå ðåãèñòðàöèè ïîëüçîâàòåëÿ. Áûëè ñîîáùåíèÿ, ÷òî òàêîå ñëó÷àåòñÿ ïîñòîÿííî ïðè èñïîëüçîâàíèè slirp. Ïðè÷èíà çàêëþ÷àåòñÿ â òîì, ÷òî âî âðåìÿ, ïðîõîäÿùåå ìåæäó çàâåðøåíèåì ðàáîòû getty(8) è çàïóñêîì ppp(8), ppp(8) ñî ñòîðîíû êëèåíòà íà÷èíàåò ïîñûëàòü ïàêåòû Line Control Protocol (LCP). Òàê êàê ðåæèì ýõà îñòà¼òñÿ âñ¼ åù¼ âêëþ÷åííûì, ppp(8) êëèåíòà ïîëó÷àåò ”îòðàæåíèÿ” ñâîèõ çàïðîñîâ. ×àñòüþ ïðîöåññà ñîãëàñîâàíèÿ ïàðàìåòðîâ LCP ÿâëÿåòñÿ îïðåäåëåíèå ”ìàãè÷åñêîãî” ÷èñëà äëÿ êàæäîé ñòîðîíû ñîåäèíåíèÿ äëÿ îáíàðóæåíèÿ ”îòðàæåíèé”. Ñîãëàñíî ñïåöèôèêàöèè, êîãäà îäíà ñòîðîíà ïûòàåòñÿ èñïîëüçîâàòü ñîâïàäàþùåå "ìàãè÷åñêîå" ÷èñëî, äîëæåí áûòü ïîñëàí îòâåò NAK è äîëæíî áûòü âûáðàíî íîâîå "ìàãè÷åñêîå" ÷èñëî.  òîò ìîìåíò, êîãäà íà ïîðòó ñåðâåðà âêëþ÷åí ðåæèì ýõà, êëèåíò ppp(8) ïîñûëàåò ïàêåòû LCP, ïîëó÷àåò òî æå ñàìîå "ìàãè÷åñêîå" ÷èñëî â îòðàæ¼ííîì ïàêåòå è îòâå÷àåò íà íåãî NAK. Îí òàêæå âèäèò îòðàæ¼ííûé NAK (êîòîðûé òàêæå îçíà÷àåò, ÷òî ppp(8) äîëæåí èçìåíèòü ñâî¼ "ìàãè÷åñêîå" ÷èñëî).  ïîòåíöèàëå ýòî ìîæåò âûçâàòü ïîÿâëåíèå îãðîìíîãî êîëè÷åñòâà ïðîöåññîâ ñìåí "ìàãè÷åñêèõ" ÷èñåë, è âñå îíè íàêàïëèâàþòñÿ â áóôåðå òåðìèíàëà. Êàê òîëüêî çàïóñòèòñÿ ñåðâåð ppp(8), îí áóäåò ïåðåãðóæåí çàïðîñàìè íà ñìåíó "ìàãè÷åñêèõ", íåìåäëåííî ðåøèò, ÷òî ýòîãî ìíîãî äëÿ ñîãëàñîâàíèÿ LCP è ïðåðâ¼ò ñîåäèíåíèå.  òî æå ñàìîå âðåìÿ, êëèåíò, êîòîðûé áîëüøå íå âèäèò îòðàæåíèé, îñòàíàâëèâàåòñÿ äëÿ òîãî, ÷òîáû óâèäåòü, ÷òî ñåðâåð çàêðûë ñîåäèíåíèå. Ýòîãî ìîæíî èçáåæàòü, ïîçâîëèâ íà÷èíàòü ñîãëàñîâàíèå ïðîòèâîïîëîæíîé ñòîðîíå ñëåäóþùåé ñòðîêîé â ôàéëå ppp.conf:
set openmode passive
Ýòî çàñòàâèò ppp(8) îæèäàòü íà÷àëà ñîãëàñîâàíèÿ LCP. Íåêîòîðûå ñåðâåðû, îäíàêî, ìîãóò íèêîãäà íå íà÷àòü ñîãëàñîâàíèå. Åñëè ýòî òîò ñàìûé ñëó÷àé, âû ìîæåòå ñäåëàòü ñëåäóþùåå:
106
Ãëàâà 14. PPP
set openmode active 3
Ýòî çàñòàâèò ppp(8) ïàññèâíî æäàòü 3 ñåêóíäû, è òîëüêî çàòåì ïîñûëàòü çàïðîñû LCP. Åñëè ïðîòèâîïîëîæíàÿ ñòîðîíà íà÷í¼ò ïîñûëàòü â ýòîò ìîìåíò çàïðîñû, ppp(8) íåìåäëåííî îòâåòèò, íå îæèäàÿ èñòå÷åíèÿ òð¼õñåêóíäíîãî èíòåðâàëà.
13. Ñîãëàñîâàíèå LCP ïðîäîëæàåòñÿ, ïîêà íå çàêðîåòñÿ ñîåäèíåíèå  íàñòîÿùèé ìîìåíò îäíîé èç íåïðèÿòíûõ îñîáåííîñòåé ðåàëèçàöèè ppp(8) ÿâëÿåòñÿ òî, ÷òî îíà íå ñâÿçûâàåò ñîîáùåíèÿ LCP, CCP & IPCP ñ çàïðîñàìè. Êàê ðåçóëüòàò, åñëè ðåàëèçàöèÿ PPP ñ îäíîé ñòîðîíû áîëåå ÷åì íà 6 ñåêóíä ìåäëåííåå, ÷åì ñ äðóãîé, ïðîòèâîïîëîæíàÿ ñòîðîíà áóäåò ïîñûëàòü äâà äîïîëíèòåëüíûõ çàïðîñà íà ñîãëàñîâàíèå ïàðàìåòðîâ LCP. Ýòî ôàòàëüíî. Ïðåäïîëîæèì, ÷òî ó íàñ ðàáîòàþò äâå ðåàëèçàöèè, íà ìàøèíàõ A è B. A íà÷èíàåò ïîñûëàòü çàïðîñû LCP ñðàçó æå ïîñëå ñîåäèíåíèÿ, à B òðåáóåòñÿ 7 ñåêóíä äëÿ çàïóñêà. Êîãäà B çàïóñêàåòñÿ, A ïîñëàëî 3 LCP-çàïðîñà. Ïîëàãàåì, ÷òî ðåæèì ýõà âûêëþ÷åí, â ïðîòèâíîì ñëó÷àå ìû ñòîëêíóëèñü áû ñ ïðîáëåìàìè "ìàãè÷åñêîãî" ÷èñëà, îïèñàííûìè â ïðåäûäóùåì ðàçäåëå. B ïîñûëàåò REQ, çàòåì ACK íà ïåðâûé REQ îò A. Ýòî ïðèâîäèò ê òîìó, ÷òî A âõîäèò â ñîñòîÿíèå OPENED è ïîñûëàåò (ïåðâûé) ACK îáðàòíî B.  òî æå ñàìîå âðåìÿ B ïîñûëàåò îáðàòíî åù¼ äâà ACK â îòâåò íà äâà äîïîëíèòåëüíûõ REQ, ïîñëàííûå A äî ñòàðòà B. B çàòåì ïîëó÷àåò ïåðâûé ACK îò A è âîçâðàùàåòñÿ â ñîñòîÿíèå REQ-SENT, ïîñëàâ åù¼ îäèí (÷åòâ¼ðòûé) REQ ñîãëàñíî RFC. Çàòåì îí ïîëó÷àåò òðåòèé ACK è âõîäèò â ñîñòîÿíèå OPENED.  ýòî æå âðåìÿ B ïðèíèìàåò ÷åòâ¼ðòûé REQ îò A, ÷òî âîçâðàùàåò åãî â ñîñòîÿíèå ACK-SENT è ïîñûëàåò åù¼ îäèí (âòîðîé) REQ è (÷åòâ¼ðòûé) ACK ñîãëàñíî RFC. A ïîëó÷àåò REQ, ïåðåõîäèò â ñîñòîÿíèå REQ-SENT è ïîñûëàåò åù¼ îäèí REQ. Îí íåìåäëåííî ïðèíèìàåò ïîñëåäóþùèé ACK è âõîäèò â ñîñòîÿíèå OPENED. Ýòî áóäåò ïðîäîëæàòüñÿ äî òåõ ïîð, ïîêà îäíà èç ñòîðîí íå îáíàðóæèò, ÷òî ýòî íè ê ÷åìó íå ïðèâîäèò è íå çàêðîåò ñîåäèíåíèå. Ëó÷øèì ñïîñîáîì èçáåæàòü ýòîé ñèòóàöèè ÿâëÿåòñÿ êîíôèãóðàöèÿ îäíîé èç ñòîðîí êàê passive, ÷òîáû îíà æäàëà äðóãóþ äëÿ íà÷àëà ñîãëàñîâàíèÿ. Ýòî ìîæíî ñäåëàòü êîìàíäîé
set openmode passive
Ñ ýòîé êîìàíäîé íóæíî áûòü îñòîðîæíûì. Âû òàêæå äîëæíû áóäåòå èñïîëüçîâàòü êîìàíäó
set stopped N
äëÿ îãðàíè÷åíèÿ ïåðèîäà îæèäàíèÿ, â òå÷åíèè êîòîðîãî ppp(8) æä¼ò íà÷àëà ñîãëàñîâàíèÿ ñ ïðîòèâîïîëîæíîé ñòîðîíû. Êàê âàðèàíò, ìîæåò áûòü èñïîëüçîâàíà ñòðîêà
set openmode active N
(ãäå N - ïåðèîä îæèäàíèÿ â ñåêóíäàõ ïåðåä òåì, êàê íà÷àòü ñîãëàñîâàíèå).
107
Ãëàâà 14. PPP
14. Âñêîðå ïîñëå ñîåäèíåíèÿ ppp áëîêèðóåòñÿ  âåðñèÿõ FreeBSD ðàíåå 2.2.5, áûëà âîçìîæíà ñèòóàöèÿ, êîãäà ñâÿçü âûêëþ÷àëàñü î÷åíü ñêîðî ïîñëå ñîåäèíåíèÿ èç-çà íåêîððåêòíîé îáðàáîòêè çàïðîñà íà ñîãëàñîâàíèÿ ñæàòèÿ äàííûõ ppp(8). Ýòî ñëó÷àëîñü, êîãäà îáå ñòîðîíû ïûòàëèñü óñòàíîâèòü ðàçíûå òèïû CCP (Compression Control Protocol). Ýòà ïðîáëåìà ñåé÷àñ ðåøåíà, íî åñëè âû âñ¼ åù¼ èñïîëüçóåòå ñòàðóþ âåðñèþ ppp(8), ïðîáëåìà ìîæåò áûòü îáîéäåíà ñ ïîìîùüþ ñòðîêè
disable pred1
15. Êîãäà ÿ âûïîëíÿþ êîìàíäó shell äëÿ òåñòèðîâàíèÿ ñîåäèíåíèÿ, ppp áëîêèðóåòñÿ Êîãäà âû âûïîëíÿåòå êîìàíäó shell èëè !, ppp(8) çàïóñêàåò îáîëî÷êó (åñëè áûëè çàäàíû ïàðàìåòðû, ppp(8) èõ èñïîëüçóåò). Ppp áóäåò æäàòü îêîí÷àíèÿ âûïîëíåíèÿ êîìàíäû, ïðåæäå ÷åì ïðîäîëæèòü. Åñëè âû ïîïûòàåòåñü âîñïîëüçîâàòüñÿ ñâÿçüþ PPP ïîñëå çàïóñêà êîìàíäû, ñâÿçü áóäåò âûãëÿäåòü çàáëîêèðîâàííîé. Ýòî ïðîèñõîäèò èç-çà òîãî, ÷òî ppp(8) æä¼ò çàâåðøåíèÿ âûïîëíåíèÿ çàïóùåííîé êîìàíäû. Åñëè âàì íåîáõîäèìî âûïîëíÿòü ïîäîáíûå êîìàíäû, èñïîëüçóéòå êîìàíäó !bg.  ýòîì ñëó÷àå íóæíàÿ êîìàíäà áóäåò âûïîëíÿòüñÿ â ôîíîâîì ðåæèìå, à ppp(8) ñìîæåò ïðîäîëæèòü îáñëóæèâàíèå êàíàëà ñâÿçè.
16. Ïî÷åìó ïðîãðàììà ppp, îáñëóæèâàþùàÿ íóëü-ìîäåì, íèêîãäà íå çàêðûâàåòñÿ? ppp(8) íå ìîæåò îïðåäåëèòü, ÷òî ñîåäèíåíèå áûëî çàêðûòî. Ýòî ïðîèñõîäèò èç-çà ìåòîäà èñïîëüçîâàíèÿ ñèãíàëüíûõ ëèíèé íóëü-ìîäåìíîãî êàáåëÿ. Ïðè èñïîëüçîâàíèè òàêîãî òèïà ñîåäèíåíèÿ âñåãäà âêëþ÷àéòå LQR. enable lqr Ïî óìîë÷àíèþ LQR âêëþ÷àåòñÿ, åñëè ýòî áûëî çàòðåáîâàíî ñ ïðîòèâîïîëîæíîé ñòîðîíû íà ýòàïå ñîãëàñîâàíèÿ ïàðàìåòðîâ ñîåäèíåíèÿ.
17.  ðåæèìå -auto ppp íåîæèäàííî íà÷èíàåò çâîíèòü Åñëè ppp(8) íà÷èíàåò íåîæèäàííî çâîíèòü, âû äîëæíû îïðåäåëèòü ïðè÷èíó è çàäàòü ôèëüòðû dfilters äëÿ ïðåäîòâðàùåíèÿ ïîäîáíûõ çâîíêîâ. Äëÿ âûÿñíåíèÿ ïðè÷èíû òàêîãî ïîâåäåíèÿ, èñïîëüçóéòå ñòðîêó:
set log +tcp/ip
Ýòî âêëþ÷èò ïðîòîêîëèðîâàíèå âñåãî òðàôèêà ÷åðåç ñîåäèíåíèå.  ñëåäóþùèé ðàç, êîãäà íåîæèäàííî áóäåò óñòàíîâëåíî ñîåäèíåíèå, âû óñòàíîâèòå ïðè÷èíó ïî âðåìåííûì îòìåòêàì â ôàéëå ïðîòîêîëà. Ïîñëå ýòîãî âû ìîæåòå çàïðåòèòü äîçâîíêó ïðè âûÿñíåííûõ óñëîâèÿõ. Êàê ïðàâèëî, òàêèå ïðîáëåìû âîçíèêàþò èç-çà îáðàùåíèé ê DNS. Äëÿ ïðåäîòâðàùåíèÿ îáðàùåíèé ê DNS è óñòàíîâëåíèÿ ñîåäèíåíèÿ
108
Ãëàâà 14. PPP
(÷òî íå çàïðåòèò ppp(8) ïðîïóñêàòü ïàêåòû ÷åðåç óæå óñòàíîâëåííîå ñîåäèíåíèå), èñïîëüçóéòå òàêóþ êîìáèíàöèþ: set dfilter 1 deny udp src eq 53 set dfilter 2 deny udp dst eq 53 set dfilter 3 permit 0/0 0/0
Ýòî ìîæåò âàì íå ïîäîéòè, òàê êàê çàêðîåò âîçìîæíîñòü äîçâîíêè ïî çàïðîñó - áîëüøèíñòâó ïðîãðàìì íóæíî îáðàòèòüñÿ ê DNS äî òîãî, êàê íà÷àòü ðàáîòàòü.  ñëó÷àå DNS, âû äîëæíû ïîïûòàòüñÿ îïðåäåëèòü, êòî ïûòàåòñÿ îïðåäåëèòü èìÿ õîñòà.  áîëüøèíñòâå ñëó÷àåâ âèíîâíûì îêàçûâàåòñÿ sendmail(8). Óäîñòîâåðüòåñü, ÷òî âû óêàçàëè ïðîãðàììå sendmail íå îñóùåñòâëÿòü îáðàùåíèé ê DNS â åãî êîíôèãóðàöèîííîì ôàéëå. Îáðàòèòåñü ê ðàçäåëó îá èñïîëüçîâàíèè ýëåêòðîííîé ïî÷òû ïðè êîììóòèðóåìîì ñîåäèíåíèè (../handbook/smtp-dialup.html) â Ðóêîâîäñòâå çà ïîäðîáíûì îïèñàíèåì ñîçäàíèÿ êîíôèãóðàöèîííîãî ôàéëà è ÷òî òóäà íóæíî ïîìåñòèòü. Âàì ìîæåò ïîíàäîáèòüñÿ äîáàâèòü â ôàéë .mc ñòðîêó:
define(‘confDELIVERY_MODE’, ‘d’)dnl Ýòî çàñòàâèò sendmail ñòàâèòü âñå ñîîáùåíèÿ â î÷åðåäü äî òåõ ïîð, ïîêà íå áóäåò çàïóùåíà å¼ îáðàáîòêà (êàê ïðàâèëî, sendmail çàïóñêàåòñÿ ñ ïàðàìåòðàìè -bd -q30m, óêàçûâàþùèìè, ÷òî îáðàáàòûâàòü î÷åðåäü íóæíî êàæäûå 30 ìèíóò) èëè äî òåõ ïîð, ïîêà íå áóäåò âûïîëíåíà êîìàíäà sendmail -q (ìîæåò áûòü, èç ôàéëà ppp.linkup).
18. ×òî îçíà÷àþò îøèáêè CCP  ôàéëå ïðîòîêîëà ïîÿâëÿþòñÿ òàêèå ñîîáùåíèÿ îá îøèáêàõ:
CCP: CcpSendConfigReq CCP: Received Terminate Ack (1) state = Req-Sent (6)
Ýòî ïðîèñõîäèò, åñëè ppp(8) ïûòàåòñÿ óñòàíîâèòü êîìïðåññèþ òèïà Predictor1, à ïðîòèâîïîëîæíàÿ ñòîðîíà íå õî÷åò óñòàíàâëèâàòü íèêàêîé êîìïðåññèè. Ýòè ñîîáùåíèÿ áåçîáèäíû, íî åñëè âû õîòèòå îò íèõ èçáàâèòüñÿ, âû ìîæåòå çàïðåòèòü êîìïðåññèþ Predictor1 è ó ñåáÿ òîæå:
disable pred1
19. Ïî÷åìó ppp íå ïðîòîêîëèðóåò ñêîðîñòü ñîåäèíåíèÿ? Äëÿ âûâîäà ïðîòîêîëà âçàèìîäåéñòâèÿ ñ ìîäåìîì âàì íóæíî âêëþ÷èòü ñëåäóþùåå:
set log +connect
Ýòî çàñòàâèò ppp(8) ïðîòîêîëèðîâàòü âñ¼, âïëîòü äî ïîñëåäíåé ïðî÷ò¼ííîé ÷åðåç ”expect” ñòðîêè. Åñëè âû õîòèòå âèäåòü ñêîðîñòü ñîåäèíåíèÿ è èñïîëüçóåòå PAP èëè CHAP (è ïîýòîìó âàì íå íóæíî îïðåäåëÿòü íèêàêèõ ñöåíàðèåâ âõîäà ÷åðåç set login ïîñëå ïîëó÷åíèÿ ñòðîêè CONNECT ñöåíàðèåì
109
Ãëàâà 14. PPP
äîçâîíêè dial), âû äîëæíû óêàçàòü ppp(8), ÷òî íóæíî îæèäàòü ïîëíóþ ñòðîêó CONNECT, âðîäå ñëåäóþùåãî:
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \ \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n"
Çäåñü ìû ïîëó÷èëè ñòðîêó CONNECT, íè÷åãî íå ïîñûëàåì, çàòåì îæèäàåì ñèìâîëà ïåðåâîäà ñòðîêè, çàñòàâëÿÿ ppp(8) ïðèíÿòü ïîëíûé îòâåò ìîäåìà.
20. Ppp èãíîðèðóåò ñèìâîë \ â chat-ñêðèïòå Ppp îáðàáàòûâàåò êàæäóþ ñòðîêó â âàøèõ êîíôèãóðàöèîííûõ ôàéëàõ, òàê ÷òî îí ìîæåò ïðîèíòåðïðåòèðîâàòü ñòðîêó âèäà set phone "123 456 789" ïðàâèëüíî è îáíàðóæèòü. ÷òî íîìåð ÿâëÿåòñÿ íà ñàìîì äåëå åäèíñòâåííûì àðãóìåíòîì. Äëÿ òîãî, ÷òîáû óêàçàòü ñèìâîë ", âû äîëæíû ýêðàíèðîâàòü åãî ñèìâîëîì îáðàòíîãî ñëýøà (\). Êîãäà èíòåðïðåòàòîð chat îáðàáàòûâàåò êàæäóþ ñòðîêó, îí åù¼ ðàç ïðîñìàòðèâàåò àðãóìåíò äëÿ òîãî, ÷òîáû íàéòè êàêóþ-ëèáî ñïåöèàëüíóþ ïîñëåäîâàòåëüíîñòü òèïà \P èëè \T (îáðàòèòåñü ê Ñïðàâî÷íèêó).  ðåçóëüòàòå ýòîé äâîéíîé èíòåðïðåòàöèè âû äîëæíû âñåãäà èñïîëüçîâàòü ïðàâèëüíîå ÷èñëî ýêðàíèðóþùèõ ñèìâîëîâ. Åñëè âàì íóæíî ïåðåäàòü ñèìâîë \, íàïðèìåð, âàøåìó ìîäåìó, âàì íåîáõîäèìî óêàçàòü ÷òî-òî òèïà:
set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK" ÷òî ïðèâåä¼ò ê òàêîé ïîñëåäîâàòåëüíîñòè:
ATZ OK AT\X OK èëè
set phone 1234567 set dial "\"\" ATZ OK ATDT\\T" ÷òî äàñò òàêóþ ïîñëåäîâàòåëüíîñòü:
ATZ OK ATDT1234567
21. Ppp ïîëó÷àåò îøèáêó çàùèòû, íî ÿ íå âèæó ôàéëà ppp.core Ppp (èëè ëþáàÿ äðóãàÿ ïðîãðàììà òàêîãî ðîäà) íèêîãäà íå ñîçäà¼ò ôàéëîâ äàìïà ïàìÿòè. Òàê òàê ppp(8) çàïóñêàåòñÿ ñ ýôôåêòèâíûì uid, ðàâíûì 0, òî îïåðàöèîííàÿ ñèñòåìà íå áóäåò çàïèñûâàòü äàìï ïàìÿòè ppp(8) íà äèñê ïåðåä åãî çàâåðøåíèåì. Åñëè, îäíàêî ppp(8) âñ¼ æå ïðåêðàòèò ðàáîòó èç-çà íàðóøåíèÿ çàùèòû, èëè ïî äðóãîìó ñèãíàëó, êîòîðûé âûçûâàåò ñîçäàíèå äàìïà ïàìÿòè, è âû óâåðåíû,
110
Ãëàâà 14. PPP
÷òî èñïîëüçóåòå ñàìóþ ïîñëåäíþþ âåðñèþ (ñìîòðèòå ñàìîå íà÷àëî ðàçäåëà), òî âû äîëæíû ñäåëàòü ñëåäóþùåå: % % % % % % # #
tar xfz ppp-*.src.tar.gz cd ppp*/ppp echo STRIP= >>Makefile echo CFLAGS+=-g >>Makefile make clean all su make install chmod 555 /usr/sbin/ppp
Òåïåðü ó âàñ åñòü îòëàäî÷íàÿ âåðñèÿ ppp(8). Âàì íóæíî ñòàòü ñóïåðïîëüçîâàòåëåì äëÿ çàïóñêà ppp(8), òàê êàê ñîîòâåòñòâóþùèå áèòû ïðàâ áûëè óáðàíû. Êîãäà çàïóñòèòå ppp(8), îáðàòèòå îñîáîå âíèìàíèå íà òî, êàêîé êàòàëîã ó âàñ áûë òåêóùèì íà ýòîò ìîìåíò. Èòàê, åñëè ppp(8) ïîëó÷èò îøèáêó íàðóøåíèÿ çàùèòû, îí ñáðîñèò äàìï ïàìÿòè ñ èìåíåì ppp.core. Çàòåì âàì íóæíî ñäåëàòü ñëåäóþùåå: % su # gdb /usr/sbin/ppp ppp.core (gdb) bt
..... (gdb) f 0
.... (gdb) i args
.... (gdb) l
.....
Âñÿ ýòà èíôîðìàöèÿ äîëæíà áûòü ïðåäîñòàâëåíà âìåñòå ñ âàøèì âîïðîñîì, ÷òîáû ïðîáëåìó ìîæíî áûëî ïðîäèàãíîñòèðîâàòü. Åñëè âû óìååòå îáðàùàòüñÿ ñ gdb, âû ìîæåòå ïîïðîáîâàòü íàéòè ïðè÷èíû îáðàçîâàíèÿ äàìïà, à òàêæå àäðåñà è çíà÷åíèÿ îòíîñÿùèõñÿ ê ýòîìó ïåðåìåííûõ.
22. Ïðîöåññ, âûçâàâøèé ïðîçâîíêó â ðåæèìå auto, íèêîãäà íå ïîëó÷àåò çàòðåáîâàííîãî ñîåäèíåíèÿ Ýòà ïðîáëåìà ïðîÿâëÿëàñü, êîãäà ppp(8) â ðåæèìå auto áûë íàñòðîåí íà äèíàìè÷åñêîå ñîãëàñîâàíèå ëîêàëüíîãî IP-àäðåñà ñ ïðîòèâîïîëîæíîé ñòîðîíîé. Ýòî èñïðàâëåíî â ïîñëåäíåé âåðñèè - ïîèùèòå íà ñòðàíèöå ñïðàâî÷íèêà ñëîâî iface. Ïðè÷èíîé áûëî òî, ÷òî êîãäà ýòà ïðîãðàììà èñïîëüçóåò ñèñòåìíûé âûçîâ connect(2), äëÿ ñîêåòà íàçíà÷àåòñÿ IP-àäðåñ tun-èíòåðôåéñà. ßäðî ñîçäà¼ò ïåðâûé èñõîäÿùèé ïàêåò è çàïèñûâàåò åãî â óñòðîéñòâî tun. Çàòåì ppp(8) ÷èòàåò ïàêåò è óñòàíàâëèâàåò ñîåäèíåíèå. Åñëè â ðåçóëüòàòå ñîãëàñîâàíèÿ ppp(8) äèíàìè÷åñêîãî IP-àäðåñà àäðåñ èíòåðôåéñà èçìåíèòñÿ, ñîêåò áóäåò ðàáîòàòü íåêîððåêòíî. Ëþáûå IP-ïàêåòû, ïåðåäàâàåìûå ÷åðåç ñîêåò, áóäóò îòáðîøåíû. Åñëè äàæå ýòîãî íå ïðîèçîéä¼ò, îòâåòíûå äàííûå íå áóäóò äîñòèãàòü îòïðàâèòåëÿ, òàê êàê ýòîò àäðåñ áîëüøå åìó íå ïðèíàäëåæèò.
111
Ãëàâà 14. PPP
Òåîðåòè÷åñêè åñòü íåñêîëüêî ñïîñîáîâ ðåøèòü ýòó ïðîáëåìó. Ëó÷øå âñåãî, åñëè ïðîòèâîïîëîæíàÿ ñòîðîíà íàçíà÷èò èíòåðôåéñó òîò æå ñàìûé IP-àäðåñ :-) Òåêóùàÿ âåðñèÿ ppp(8) èìåííî òàê è ïîñòóïàåò, áîëåå ðàííèå ðåàëèçàöèè ýòîãî íå äåëàëè. Ñàìûì ïðîñòûì ðåøåíèåì áóäåò ïðîñòî íèêîãäà íå ìåíÿòü IP-àäðåñ tun-èíòåðôåéñà, à âìåñòî ýòîãî èçìåíÿòü íà ëåòó âñå èñõîäÿùèå ïàêåòû òàê, ÷òîáû IP-àäðåñ èñòî÷íèêà ìåíÿëñÿ ñ IP-àäðåñà èíòåðôåéñà íà ñîîòâåòñòâóþùèé ñ ïðîòèâîïîëîæíîé ñòîðîíû. Ýòî, â ñóùíîñòè, òî æå ñàìîå, ÷òî äåëàåò îïöèÿ iface-alias â ñàìîé ïîñëåäíåé âåðñèè ppp(8) (ñ ïîìîùüþ áèáëèîòåêè libalias(3) è êëþ÷à -nat äëÿ ppp(8)) - îíà îòñëåæèâàåò âñå íàçíà÷åííûå ðàíåå èíòåðôåéñó àäðåñà è çàìåùàåò èõ íà ïîñëåäíèé èç íàçíà÷åííûõ. Äðóãîé âîçìîæíûé (è, íàâåðíîå, ñàìûé íàä¼æíûé) ñïîñîá - ýòî ñîçäàòü ñèñòåìíûé âûçîâ, ìåíÿþùèé IP-àäðåñà âñåì óæå ñâÿçàííûì ñîêåòàì. ppp(8) èñïîëüçîâàë áû ýòîò âûçîâ äëÿ ìîäèôèêàöèè ñîêåòîâ âñåõ ðàáîòàþùèõ ïðîãðàìì ïîñëå ñîãëàñîâàíèÿ íîâîãî IP-àäðåñà. Ýòîò æå ñàìûé ñèñòåìíûé âûçîâ ìîãëè áû èñïîëüçîâàòü êëèåíòû DHCP, êîãäà îíè îñóùåñòâëÿþò ïîâòîðíóþ ïðèâÿçêó ê ñîêåòó. Åù¼ îäíîé âîçìîæíîñòüþ ÿâëÿåòñÿ ðàçðåøåíèå èíòåðôåéñó ñòàíîâèòüñÿ àêòèâíûì áåç IP-àäðåñà. Èñõîäÿùèì ïàêåòàì áóäåò äàâàòüñÿ IP àäðåñ 255.255.255.255 äî òåõ ïîð, ïîêà íå áóäåò äàí ioctl-çàïðîñ SIOCAIFADDR. ïðèâîäÿùèé ê ïîëíîé ïðèâÿçêå ñîêåòà. ppp(8) íóæíî áóäåò èçìåíÿòü IP-àäðåñ èñòî÷íèêà è êîíòðîëüíóþ ñóììó ïàêåòà, òîëüêî åñëè îí óñòàíîâëåí â 255.255.255.255. Ýòî, îäíàêî, ÿâëÿåòñÿ íåêîòîðûì õàêîì, òàê êàê ÿäðî áóäåò ïîñûëàòü íåêîððåêòíûå ïàêåòû íà íå ïîëíîñòüþ ñêîíôèãóðèðîâàííûé èíòåðôåéñ, â ïðåäïîëîæåíèè, ÷òî ñóùåñòâóåò ìåõàíèçì èñïðàâëåíèÿ ýòèõ ïàêåòîâ.
23. Ïî÷åìó áîëüøèíñòâî èãð íå ðàáîòàåò ñ îïöèåé -nat? Ïðè÷èíîé, ïî êîòîðîé èãðû è ïîäîáíûå ïðîãðàììû íå ðàáîòàþò ñ áèáëèîòåêîé libalias çàêëþ÷àåòñÿ â òîì, ÷òî âíåøíÿÿ ìàøèíà áóäåò ïûòàòüñÿ îòêðûòü ñîåäèíåíèå èëè ïîñûëàòü (íåæäàííûå) UDP ïàêåòû íà ìàøèíó âíóòðåííåé ñåòè. Ïðîãðàììíîå îáåñïå÷åíèå, îáåñïå÷èâàþùåå îïöèþ -nat, íå çíàåò î òîì, ÷òî îíà äîëæíà ïåðåñûëàòü ýòè ïàêåòû ìàøèíå âíóòðåííåé ñåòè. ×òîáû ýòî âñ¼ æå çàðàáîòàëî, óäîñòîâåðüòåñü, ÷òî åäèíñòâåííîé çàïóùåííîé ïðîãðàììîé ÿâëÿåòñÿ ïðîãðàììíîå îáåñïå÷åíèå, ñ êîòîðûì âû èñïûòûâàåòå ïðîáëåìû, çàòåì íàïóñòèòå tcpdump íà tun-èíòåðôåéñ ìàðøðóòèçàòîðà ëèáî âêëþ÷èòå ïðîòîêîëèðîâàíèå tcp/ip â ppp(8) (set log +tcp/ip) íà ìàðøðóòèçàòîðå. Êîãäà âû çàïóñòèòå íåêîððåêòíî ðàáîòàþùåå ïðîãðàììíîå îáåñïå÷åíèå, âû äîëæíû óâèäåòü ïàêåòû, ïðîõîäÿùèå ÷åðåç ìàðøðóòèçàòîð. Êîãäà ÷òî-òî íà÷í¼ò ïðèõîäèòü èçâíå, îíî áóäåò îòáðîøåíî (â ýòîì-òî è ïðîáëåìà). Çàìåòüòå íîìåð ïîðòà ïîëó÷àòåëÿ ýòèõ ïàêåòîâ, çàòåì çàâåðøèòå ðàáîòó âàøåãî ïðîãðàììíîãî îáåñïå÷åíèÿ. Âûïîëíèòå ýòó ïðîöåäóðó íåñêîëüêî ðàç äëÿ òîãî, ÷òîáû óáåäèòüñÿ, ÷òî íîìåð ïîðòà ïîñòîÿíåí. Åñëè ýòî òàê, òî ñëåäóþùàÿ ñòðî÷êà â ñîîòâåòñòâóþùåì ðàçäåëå /etc/ppp/ppp.conf çàñòàâèò ïðîãðàììíîå îáåñïå÷åíèå ôóíêöèîíèðîâàòü íîðìàëüíî:
nat port proto internalmachine:port port
Çäåñü proto - ýòî tcp ëèáî udp, internalmachine - ýòî ìàøèíà, êîòîðîé âû õîòèòå ïåðåíàïðàâëÿòü ïàêåòû, è port - ýòî íîìåð ïîðòà ïîëó÷àòåëÿ ïàêåòîâ. Íåñîìíåííî, âû íå ñìîæåòå èñïîëüçîâàòü ïðîãðàììíîå îáåñïå÷åíèå íà äðóãèõ ìàøèíàõ, íå èçìåíÿÿ óêàçàííóþ âûøå êîìàíäó, à òàêæå çàïóñêàòü ïðîãðàììíîå îáåñïå÷åíèå íà äâóõ ìàøèíàõ âíóòðè ñåòè îäíîâðåìåííî - â êîíöå êîíöîâ, âíåøíèé ìèð âèäèò âñþ âàøó ñåòü êàê åäèíñòâåííóþ ìàøèíó.
112
Ãëàâà 14. PPP
Åñëè íîìåðà ïîðòîâ íåïîñòîÿííû, åñòü åù¼ òðè âàðèàíòà:
1. Íàñòðîéòå ïîääåðæêó ýòîãî â libalias. Ïðèìåðû ”îñîáûõ ñëó÷àåâ” ìîæíî íàéòè â /usr/src/lib/libalias/alias_*.c (alias_ftp.c - õîðîøåå íà÷àëî). Ýòî îçíà÷àåò, ÷òî âàì íóæíî áóäåò èñïîëüçîâàòü ÷òåíèå íåêîòîðûõ ðàñïîçíàâàåìûõ èñõîäÿùèõ ïàêåòîâ, îáíàðóæèâàòü êîìàíäû äëÿ óñòàíîâëåíèÿ âíåøíåé ìàøèíîé îáðàòíîé ñâÿçè íà âíóòðåííþþ ìàøèíó íà êîíêðåòíûé (ñëó÷àéíûé) ïîðò è íàñòðàèâàòü ”ìàðøðóò” â òàáëèöå ñîîòâåòñòâèé òàê, ÷òîáû ïîñëåäóþùèå ïàêåòû ïðîõîäèëè íîðìàëüíî. Ýòî ñàìîå òðóäî¼ìêîå ðåøåíèå, íî îíî íàèëó÷øåå è ïîçâîëèò ïðîãðàììíîìó îáåñïå÷åíèþ ðàáîòàòü íà íåñêîëüêèõ ìàøèíàõ.
2. Èñïîëüçóéòå ïðîêñè-ñåðâåð. Ïðèëîæåíèå ìîæåò ïîääåðæèâàòü, íàïðèìåð, socks5 èëè (êàê â ñëó÷àå ”cvsup”) ìîæåò èìåòü ðåæèì ”passive”, îáõîäÿùèéñÿ áåç çàïðîñîâ ê ïðîòèâîïîëîæíîé ñòîðîíå íà îòêðûòèå îáðàòíîãî ñîåäèíåíèÿ. 3. Ïåðåíàçíà÷üòå âñ¼ íà âíóòðåííþþ ìàøèíó ñ ïîìîùüþ êîìàíäû nat addr. Ýòî ðåøåíèå â ëîá.
24. Êòî-íèáóäü âåä¼ò ñïèñîê ïîëåçíûõ íîìåðîâ ïîðòîâ? Ïîêà íåò, íî íèæå íàõîäèòñÿ ñïèñîê, ìîãóùèé òàêîâûì ñòàòü (åñëè ê ýòîìó áóäåò ïðîÿâëåí êàêîé-ëèáî èíòåðåñ).  êàæäîì ïðèìåðå internal íóæíî çàìåíèòü íà IP-àäðåñ ìàøèíû, ó÷àñòâóþùåé â èãðå. •
Asheron’s Call nat port udp internal:65000 65000 Íàõîäÿñü â èãðå, âðó÷íóþ ñìåíèòå íîìåð ïîðòà íà 65000. Åñëè ó âàñ åñòü íåñêîëüêî ìàøèí, íà êîòîðûõ âû õîòèòå èãðàòü, íàçíà÷üòå êàæäîé ìàøèíå óíèêàëüíûé íîìåð ïîðòà (òî åñòü 65001, 65002 è òàê äàëåå), è äîáàâüòå ïî ñòðî÷êå nat port äëÿ êàæäîé ìàøèíû.
•
Half Life nat port udp internal:27005 27015
•
PCAnywhere 8.0 nat port udp internal:5632 5632 nat port tcp internal:5631 5631
•
Quake nat port udp internal:6112 6112 Àëüòåðíàòèâíîå ðåøåíèå, îáåñïå÷èâàþùåå ïîääåðæêó ïðîêñè äëÿ Quake, ìîæíî íàéòè íà ñåðâåðå
www.battle.net (http://www.battle.net/support/proxy/).
•
Quake 2
113
Ãëàâà 14. PPP
nat port udp internal:27901 27910 nat port udp internal:60021 60021 nat port udp internal:60040 60040
•
Red Alert nat port udp internal:8675 8675 nat port udp internal:5009 5009
25. ×òî òàêîå îøèáêè FCS? FCS ÿâëÿåòñÿ ñîêðàùåíèåì îò Frame Check Sequence (êîíòðîëü ïîñëåäîâàòåëüíîñòè êàäðîâ). Êàæäûé êàäð PPP èìååò êîíòðîëüíóþ ñóììó äëÿ ïðîâåðêè òîãî, ÷òî ïðèíÿòûå äàííûå ñîâïàäàþò ñ ïåðåäàííûìè. Åñëè FCS ïðèíÿòîãî ïàêåòà íåêîððåêòíà, ïàêåò îòáðàñûâàåòñÿ è ñ÷¼ò÷èê FCS äëÿ HDLC óâåëè÷èâàåòñÿ. Çíà÷åíèÿ îøèáîê óðîâíÿ HDLC ìîæíî âûâåñòè êîìàíäîé show hdlc. Åñëè ó âàñ ïëîõàÿ ëèíèÿ (èëè äðàéâåð êîììóíèêàöèîííîãî àäàïòåðà îòáðàñûâàåò ïàêåòû), îøèáêè FCS íåèçáåæíû. Ýòî îáû÷íî íå ÿâëÿåòñÿ ïðè÷èíîé äëÿ âîëíåíèé, õîòÿ ýòî ñóùåñòâåííî çàìåäëÿåò ïðîòîêîëû êîìïðåññèè. Åñëè ó âàñ âíåøíèé ìîäåì, ïðîâåðüòå êà÷åñòâî ýêðàíèðîâàíèÿ ñîåäèíèòåëüíîãî êàáåëÿ - ýòî ìîæåò èçáàâèòü îò ïðîáëåìû. Åñëè âàøà ñâÿçü çàìèðàåò, êàê òîëüêî âû ñîåäèíèëèñü è íàáëþäàåòñÿ áîëüøîå êîëè÷åñòâî îøèáîê FCS, ýòî ìîæåò áûòü âûçâàíî íå ïîëíîé ïðîçðà÷íîñòüþ êàíàëà äëÿ 8-áèòîâûõ äàííûõ. Ïðîâåðüòå, ÷òî ìîäåì íå èñïîëüçóåò ïðîãðàììíîãî óïðàâëåíèÿ ïîòîêîì (XON/XOFF). Åñëè æå îáîðóäîâàíèå äîëæíî , èñïîëüçîâàòü ïðîãðàììíîå óïðàâëåíèå ïîòîêîì, òî âîñïîëüçóéòåñü êîìàíäîé set accmap 0x000a0000 äëÿ óêàçàíèÿ ppp(8) ýêðàíèðîâàòü ñèìâîëû ^Q è ^S. Äðóãîé ïðè÷èíîé ñëèøêîì áîëüøîãî êîëè÷åñòâà îøèáîê FCS ìîæåò áûòü ïðåêðàùåíèå ïðîòèâîïîëîæíîé ñòîðîíîé ñåàíñà PPP.  ýòîì ñëó÷àå Âàì ìîæåò ïîíàäîáèòüñÿ âêëþ÷èòü ïðîòîêîëèðîâàíèå async äëÿ ïðîâåðêè òîãî, íå ÿâëÿþòñÿ ëè ïîñòóïàåìûå èç ëèíèè äàííûå íà ñàìîì äåëå ïðèãëàøåíèÿìè login èëè shell. Åñëè âû ïîëó÷èëè ïðèãëàøåíèå shell ñ ïðîòèâîïîëîæíîé ñòîðîíû, âîçìîæíî çàâåðøåíèå ppp(8) áåç îáðûâà ñâÿçè êîìàíäîé close lcp (ïîñëåäóþùàÿ êîìàíäà term ñíîâà âåðí¼ò âàñ ê ïðèãëàøåíèþ shell íà óäàë¼ííîé ìàøèíå). Åñëè íè÷åãî â ôàéëå ïðîòîêîëà íå ãîâîðèò î òîì, ÷òî ñâÿçü áûëà ïðåðâàíà, âû äîëæíû ñïðîñèòü ó àäìèíèñòðàòîðà óäàë¼ííîé ìàøèíû (âàøåãî ïðîâàéäåðà), ïî÷åìó ñåàíñ áûë çàêðûò.
26. Ïî÷åìó ïðè ðàáîòå â MacOS è Windows 98 ñîåäèíåíèÿ çàìèðàþò, êîãäà íà ìàðøðóòèçàòîðå èñïîëüçóåòñÿ PPPoE Ìû áëàãîäàðèì Ìàéêëà Âîçíÿêà (Michael Wozniak) <
[email protected]>, êîòîðûé ñîîáùèë ñëåäóþùóþ èíôîðìàöèþ, è Äýíà Ôëåììèíãà (Dan Flemming) çà ðåøåíèå ïðîáëåìû â ñëó÷àå Mac: Ýòî ïðîèñõîäèò èç-çà ýôôåêòà, êîòîðûé ìîæíî íàçâàòü ”÷¼ðíîé äûðîé” íà ìàðøðóòèçàòîðå. MacOS è Windows 98 (è, ìîæåò áûòü, äðóãèå îïåðàöèîííûå ñèñòåìû îò Microsoft), ïîñûëàþò ïàêåòû TCP ñ çàïðàøèâàåìûì ðàçìåðîì ñåãìåíòà, êîòîðûé ñëèøêîì âåëèê äëÿ òîãî, ÷òîáû áûòü ïîìåù¼ííûì â
114
Ãëàâà 14. PPP
êàäð PPPoE (äëÿ ñåòè Ethernet ðàçìåð MTU ïî óìîë÷àíèþ ðàâåí 1500) è ñ óñòàíîâëåííûì áèòîì ”íå ôðàãìåíòèðîâàòü” (ïî óìîë÷àíèþ äëÿ TCP), à ìàðøðóòèçàòîðû Telco íå ïîñûëàåò ïàêåò ICMP ”íóæíî ôðàãìåíòèðîâàòü” îáðàòíî íà ñàéò www, ñ êîòîðûì âû ðàáîòàåòå. (Ëèáî ìàðøðóòèçàòîð ïîñûëàåò ïàêåòû ICMP ïðàâèëüíî, à ìåæñåòåâîé ýêðàí íà ñòîðîíå âåá-ñåðâåðà èõ ñáðàñûâàåò.) Êîãäà âåá-ñåðâåð ïîñûëàåò âàì êàäðû, êîòîðûå íå ïîìåùàþòñÿ â ïîòîê PPPoE, òî ìàðøðóòèçàòîðû Telco èõ îòáðàñûâàþò è ñòðàíè÷êè íå çàãðóæàþòñÿ (÷àñòü ñòðàíèö/ãðàôèêè âñ¼ æå âèäíî, ïîòîìó ÷òî îíè ìåíüøå, ÷åì MSS). Ïîõîæå, ÷òî òàêèå íàñòðîéêè äåéñòâóþò ïî óìîë÷àíèþ íà áîëüøèíñòâå êîíôèãóðàöèé PPPoE Telco (åñëè îíè âîîáùå çíàþò, êàê ïðîãðàììèðîâàòü ìàðøðóòèçàòîð... äà óæ...). Îäíèì èç ñïîñîáîâ èñïðàâèòü ýòî ÿâëÿåòñÿ èñïîëüçîâàíèå óòèëèòû regedit íà ìàøèíàõ 96/98 äëÿ òîãî, ÷òîáû äîáàâèòü â ðååñòð ñëåäóþùèé ïàðàìåòð...
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTU Ýòî äîëæíà áûòü ñòðîêà ñî çíà÷åíèåì ”1436”, òàê êàê èìåþòñÿ ñâåäåíèÿ, ÷òî íåêîòîðûå ìàðøðóòèçàòîðû ADSL íå ìîãóò ðàáîòàòü ñ ïàêåòàìè ðàçìåðîì, ïðåâûøàþùèì ýòó âåëè÷èíó.  Windows 2000 ýòîò ïàðàìåòð ðååñòðà áûë ïåðåíåñ¼í â Tcpip\Parameters\Interfaces\ID àäàïòåðà \MTU è èìååò òèï DWORD. Îáðàòèòåñü ê äîêóìåíòàì èç Microsoft Knowledge Base Q158474 - Windows TCPIP Registry Entries (http://support.microsoft.com/support/kb/articles/Q158/4/74.asp) è Q120642 - TCPIP & NBT Configuration Parameters for Windows NT (http://support.microsoft.com/support/kb/articles/Q120/6/42.asp) äëÿ ïîëó÷åíèÿ áîëåå ïîëíîé èíôîðìàöèè ïî èçìåíåíèþ MTU â Windows äëÿ ðàáîòû ñ NAT-ìàðøðóòèçàòîðîì. Äðóãèì âàðèàíòîì ñ Windows 2000 ÿâëÿåòñÿ óñòàíîâêà â ðåãèñòðå DWORD-ïàðàìåòðà Tcpip\Parameters\Interfaces\ID àäàïòåðà \EnablePMTUBHDetect â 1, êàê ýòî îòìå÷åíî â äîêóìåíòå Microsoft 120642, óêàçàííîì âûøå. Ê íåñ÷àñòüþ, â MacOS íåò âîçìîæíîñòè èçìåíèòü íàñòðîéêè TCP/IP. Îäíàêî èìååòñÿ êîììåð÷åñêîå ïðîãðàììíîå îáåñïå÷åíèå, òàêîå, êàê OTAdvancedTuner (OT for OpenTransport, the MacOS TCP/IP stack) êîìïàíèè Sustainable Softworks (http://www.softworks.com/), êîòîðîå ïîçâîëÿåò ïîëüçîâàòåëÿì íàñòðàèâàòü ïàðàìåòðû TCP/IP. Ïîëüçîâàòåëè MacOS NAT äîëæíû âûáðàòü ip_interface_MTU èç âûïàäàþùåãî ìåíþ, ââåñòè ÷èñëî 1450 âìåñòî 1500 â îêíå, çàòåì ù¼ëêíóòü íà êíîïêå, ñëåäóþùåé çà Save as Auto Configure, è ù¼ëêíóòü íà Make Active.  ñàìîé ïîñëåäíåé âåðñèè ppp(8) (2.3 è âûøå) èìååòñÿ êîìàíäà enable tcpmssfixup, êîòîðàÿ àâòîìàòè÷åñêè âûðàâíèâàåò çíà÷åíèå MSS ê íóæíîìó. Ýòà âîçìîæíîñòü ïî óìîë÷àíèþ âêëþ÷åíà. Åñëè ó âàñ âîçíèêëè ïðîáëåìû ñ áîëåå ñòàðîé âåðñèåé ppp(8), òî âàñ ìîæåò çàèíòåðåñîâàòü ïîðò
tcpmssd.
27. Íè÷åãî íå ïîìîãàåò - ÿ óæå îò÷àÿëñÿ! Åñëè âñ¼ óæå ïåðåïðîáîâàíî, è íè÷åãî íå ïîëó÷àåòñÿ, ïîøëèòå íàì ìàêñèìàëüíîå êîëè÷åñòâî èíôîðìàöèè, âàø êîíôèãóðàöèîííûé ôàéë, ñïîñîá çàïóñêà ppp(8), ñîîòâåòñòâóþùèå ÷àñòè ôàéëà ïðîòîêîëà, è âûâîä êîìàíäû netstat -rn (äî è ïîñëå ñîåäèíåíèÿ) â Ñïèñîê ðàññûëêè, ïîñâÿù¼ííûé âîïðîñàì è îòâåòàì ïîëüçîâàòåëåé FreeBSD (http://lists.FreeBSD.org/mailman/listinfo/freebsd-questions) èëè â òåëåêîíôåðåíöèþ comp.unix.bsd.freebsd.misc (news:comp.unix.bsd.freebsd.misc), è ìîæåò áûòü, êòî-íèáóäü óêàæåò âàì âåðíîå íàïðàâëåíèå.
115
Ãëàâà 15. Êîììóíèêàöèîííûå àäàïòåðû Â ýòîì ðàçäåëå îñâåùåíû âîïðîñû î ðàáîòå ïîñëåäîâàòåëüíûõ àäàïòåðîâ âî FreeBSD. Ïðîòîêîëû PPP è SLIP ðàññìàòðèâàþòñÿ â ðàçäåëå Ðàáîòà â ñåòè.
1. Êàê óçíàòü, êàêèå ïîñëåäîâàòåëüíûå ïîðòû áûëè îáíàðóæåíû FreeBSD? Ïðè çàãðóçêå ÿäðà FreeBSD îíî áóäåò ïûòàòüñÿ íàéòè ïîñëåäîâàòåëüíûå ïîðòû, ñ ïîääåðæêîé êîòîðûõ áûëî îòêîìïèëèðîâàíî. Âû ìîæåòå ïîâíèìàòåëüíåé ïðèñìîòðåòüñÿ ê âûäàâàåìûì ñîîáùåíèÿì ëèáî âûïîëíèòü êîìàíäó % dmesg | grep sio
ïîñëå çàãðóçêè è çàïóñêà ñèñòåìû. Âîò ïðèìåð âûâîäà óêàçàííîé êîìàíäû:
sio0 at 0x3f8-0x3ff irq 4 on isa sio0: type 16550A sio1 at 0x2f8-0x2ff irq 3 on isa sio1: type 16550A
Çäåñü ïðèñóòñòâóþò äâà ïîñëåäîâàòåëüíûõ ïîðòà. Ïåðâûé èñïîëüçóåò irq 4, ïîðò ââîäà/âûâîäà 0x3f8 è ïîñòðîåí íà ìèêðîñõåìå UART òèïà 16550A. Âòîðîé èñïîëüçóåò òîò æå òèï ìèêðîñõåìû, íî èñïîëüçóåò irq 3 è àäðåñ ïîðòà ââîäà/âûâîäà 0x2f8. Âíóòðåííèå ìîäåìû âûãëÿäÿò òî÷íî òàêæå, êàê ïîñëåäîâàòåëüíûå ïîðòû, çà èñêëþ÷åíèåì òîãî, ÷òî ê ìîäåì íèì ”ïîäêëþ÷åí” âñåãäà.  ÿäðî GENERIC âñòðîåíà ïîääåðæêà äâóõ ïîñëåäîâàòåëüíûõ ïîðòîâ, ñ irq è àäðåñàìè ïîðòîâ ââîäà/âûâîäà, êàê â ïðèìåðå âûøå. Åñëè ýòè íàñòðîéêè íå ñîîòâåòñòâóþò âàøèì, èëè åñëè âû äîáàâèëè âíóòðåííèå ìîäåìû, èëè ó âàñ áîëüøå ïîñëåäîâàòåëüíûõ ïîðòîâ, ÷åì îïèñàíî â ÿäðå, ïðîñòî ïåðåêîíôèãóðèðóéòå ÿäðî. Çà äîïîëíèòåëüíîé èíôîðìàöèåé îáðàòèòåñü ê ðàçäåëó î ïîñòðîåíèè ÿäðà.
2. Êàê óçíàòü, êàêèå âíóòðåííèå ìîäåìû áûëè îáíàðóæåíû FreeBSD? Ïîñìîòðèòå îòâåò íà ïðåäûäóùèé âîïðîñ.
3. Êàê îñóùåñòâëÿåòñÿ äîñòóï ê ïîñëåäîâàòåëüíûì ïîðòàì âî FreeBSD? Òðåòèé ïîñëåäîâàòåëüíûé ïîðò, sio2 (ïîñìîòðèòå ñïðàâêó ïî sio(4)), êîòîðûé â DOS íàçûâàåòñÿ COM3), îáîçíà÷àåòñÿ êàê /dev/cuaa2 äëÿ óñòðîéñòâ, âûïîëíÿþùèõ èñõîäÿùèå çâîíêè, è /dev/ttyd2 äëÿ óñòðîéñòâ, ïðèíèìàþùèõ âõîäÿùèå çâîíêè. Êàêàÿ ðàçíèöà ìåæäó ýòèìè äâóìÿ êëàññàìè óñòðîéñòâ? Âû äîëæíû èñïîëüçîâàòü ttydX äëÿ âõîäÿùèõ ñîåäèíåíèé. Ïðè îòêðûòèè /dev/ttydX â áëîêèðóþùåì ðåæèìå, ïðîöåññ áóäåò îæèäàòü íåàêòèâíîñòè ñîîòâåòñòâóþùåãî óñòðîéñòâà cuaaX , à çàòåì ïîÿâëåíèÿ ñèãíàëà î íàëè÷èè íåñóùåé. Ïðè îòêðûòèè óñòðîéñòâà cuaaX , îí ïðîâåðÿåò, ÷òî ïîñëåäîâàòåëüíûé ïîðò íå èñïîëüçóåòñÿ óæå óñòðîéñòâîì ttydX . Åñëè ïîðò äîñòóïåí, îí ”ïîõèùàåò” åãî ó óñòðîéñòâà ttydX . Òàêæå óñòðîéñòâî cuaXX íå ñëåäèò çà íàëè÷èåì íåñóùåé. Ñ òàêîé ñõåìîé ðàáîòû è ìîäåìîì, íàõîäÿùèìñÿ â ðåæèìå àâòîîòâåòà, âû ìîæåòå ïîçâîëèòü ïîëüçîâàòåëÿì âõîäèòü â ñèñòåìó è â òî æå âðåìÿ ìîæåòå îñóùåñòâëÿòü èñõîäÿùèå çâîíêè, à ñèñòåìà ïîçàáîòèòñÿ î âîçìîæíûõ êîíôëèêòàõ.
116
Ãëàâà 15. Êîììóíèêàöèîííûå àäàïòåðû
4. Êàê âêëþ÷èòü ïîääåðæêó ìíîãîïîðòîâûõ ïîñëåäîâàòåëüíûõ àäàïòåðîâ? Ïîâòîðèì åù¼ ðàç: èíôîðìàöèÿ î êîíôèãóðèðîâàíèè ÿäðà ñîäåðæèòñÿ â ðàçäåëå, ïîñâÿù¼ííîì ýòîìó âîïðîñó. Äëÿ ìíîãîïîðòîâûõ ïîñëåäîâàòåëüíûõ àäàïòåðîâ â ôàéëå êîíôèãóðàöèè ÿäðà ïîìåñòèòå êëþ÷åâîå ñëîâî sio(4) äëÿ êàæäîãî ïîðòà íà àäàïòåðå. Íî irq è âåêòîð äîëæåí áûòü óêàçàí òîëüêî ó îäíîãî ïîðòà. Âñå ïîðòû íà àäàïòåðå äîëæíû èñïîëüçîâàòü îäíî è òî æå irq. Èñïîëüçóéòå ïîñëåäíèé ïîñëåäîâàòåëüíûé ïîðò äëÿ óêàçàíèÿ irq. Òàêæå âêëþ÷èòå îïöèþ COM_MULTIPORT.  ñëåäóþùåì ïðèìåðå äàíî îïèñàíèå 4-ïîðòîâîãî àäàïòåð AST íà irq 7:
options "COM_MULTIPORT" device sio4 at isa? port device sio5 at isa? port device sio6 at isa? port device sio7 at isa? port
0x2a0 0x2a8 0x2b0 0x2b8
tty tty tty tty
flags flags flags flags
0x781 0x781 0x781 0x781 irq 7 vector siointr
Ôëàãè óêàçûâàþò, ÷òî óïðàâëÿþùèé ïîðò èìååò ìëàäøèé íîìåð óñòðîéñòâà 7 (0x700), âêëþ÷åíà äèàãíîñòèêà íà âðåìÿ îáíàðóæåíèÿ (0x080), è âñå ïîðòû èñïîëüçóþò îäíî è òî æå irq (0x001).
5. Ìîæåò ëè FreeBSD èñïîëüçîâàòü íåñêîëüêî ìíîãîïîðòîâûõ àäàïòåðîâ ñ îäèíàêîâûì irq? Ïîêà íåò. Âû äîëæíû íàçíà÷èòü óíèêàëüíûé irq äëÿ êàæäîãî àäàïòåðà.
6. Ìîæíî ëè óñòàíîâèòü ðåæèì ðàáîòû ïî óìîë÷àíèþ äëÿ ïîðòà? Âàøåìó ïðèëîæåíèþ ìîæåò ïîíàäîáèòüñÿ îòêðûòü óñòðîéñòâà ttydX (èëè cuaaX ). Êîãäà ïðîöåññ îòêðûâàåò óñòðîéñòâî, îíî èìååò íàáîð ïàðàìåòðîâ ââîäà/âûâîäà. Âû ìîæåòå ïîñìîòðåòü èõ çíà÷åíèÿ êîìàíäîé # stty -a -f /dev/ttyd1
Êîãäà âû ìåíÿåòå íàñòðîéêè ýòîãî óñòðîéñòâà, îíè äåéñòâóþò âïëîòü äî çàêðûòèÿ óñòðîéñòâà. Ïðè ïîâòîðíîì îòêðûòèè îíî áóäóò èìåòü ðåæèìû ðàáîòû ïî óìîë÷àíèþ. ×òîáû èçìåíèòü çíà÷åíèÿ ðåæèìîâ ðàáîòû ïî óìîë÷àíèþ, âû ìîæåòå îòêðûòü è èçìåíèòü íàñòðîéêè â óñòðîéñòâå ”íà÷àëüíîãî ñîñòîÿíèÿ”. Íàïðèìåð, ÷òîáû ñäåëàòü ðåæèìîì ïî óìîë÷àíèþ ðåæèì CLOCAL, 8 áèò, è óïðàâëåíèå ïîòîêîì XON/XOFF äëÿ óñòðîéñòâà ttyd5, ñäåëàéòå ñëåäóþùåå: # stty -f /dev/ttyid5 clocal cs8 ixon ixoff
Äëÿ âûïîëíåíèÿ òàêèõ äåéñòâèé ïðåäíàçíà÷åí ñêðèïò /etc/rc.serial. Òåïåðü ïðè îòêðûòèè óñòðîéñòâà ttyd5 ïðèëîæåíèå áóäåò èìåòü èìåííî òàêîé ðåæèì ðàáîòû ñ ïîðòîì. Îíî, îäíàêî. ìîæåò èçìåíèòü ýòè ðåæèìû ïî ñâîåìó óñìîòðåíèþ. Âû ìîæåòå çàïðåòèòü èçìåíåíèå ïðèëîæåíèåì íåêîòîðûõ ðåæèìîâ ðàáîòû, âûïîëíèâ íàñòðîéêè óñòðîéñòâà ”ïîñòîÿííîãî ñîñòîÿíèÿ”. Íàïðèìåð, ÷òîáû ñäåëàòü ñêîðîñòü ðàáîòû ttyd5 ïîñòîÿííîé è ðàâíîé 57600 bps, âûïîëíèòå # stty -f /dev/ttyld5 57600
117
Ãëàâà 15. Êîììóíèêàöèîííûå àäàïòåðû
Òåïåðü, åñëè ïðèëîæåíèå îòêðîåò ttyd5 è ïîïûòàåòñÿ èçìåíèòü ñêîðîñòü ðàáîòû ïîðòà, îíà âñ¼ ðàâíî îñòàíåòñÿ ðàâíîé 57600 bps. Åñòåñòâåííî, âû äîëæíû ñäåëàòü óñòðîéñòâà íà÷àëüíîãî è ïîñòîÿííîãî ñîñòîÿíèé äîñòóïíûìè íà çàïèñü òîëüêî ïîëüçîâàòåëþ root. Ñêðèïò MAKEDEV(8) ïðè ñîçäàíèè ôàéëîâ óñòðîéñòâ ýòîãî ÍÅ äåëàåò.
7. Êàê ñäåëàòü âõîä ÷åðåç ìîäåì? Ïîõîæå, ÷òî âû õîòèòå ñòàòü Internet-ïðîâàéäåðîì, äà? Ñíà÷àëà âàì íåîáõîäèìî ïîäêëþ÷èòü ê ñèñòåìå îäèí èëè íåñêîëüêî ìîäåìîâ, êîòîðûå ìîãóò ðàáîòàòü â ðåæèìå àâòîîòâåòà. Ìîäåì äîëæåí äåðæàòü ñèãíàë íàëè÷èÿ íåñóùåé, òîëüêî êîãäà îíà ïðèñóòñòâóåò. Îí äîëæåí âåøàòü òðóáêó è ïåðåèíèöèàëèçèðîâàòü, êîãäà ñèãíàë ãîòîâíîñòè óñòðîéñòâà DTE (DTR) ìåíÿåò ñîñòîÿíèå èç âêëþ÷åííîãî íà âûêëþ÷åííûé. Äîëæíî èñïîëüçîâàòüñÿ àïïàðàòíîå (RTS/CTS) óïðàâëåíèå ïîòîêîì èëè âîâñå îòñóòñòâîâàòü. Åù¼ îí äîëæåí ðàáîòàòü íà ïîñòîÿííîé ñêîðîñòè ñ ïîðòîì êîìïüþòåðà, íî (÷òî óäîáíî äëÿ çâîíÿùèõ) ñ ñîãëàñîâàíèåì ñêîðîñòè ïåðåäà÷è ñ äðóãèì ìîäåìîì. Äëÿ áîëüøèíñòâà ìîäåìîâ, ïîääåðæèâàþùèõ íàáîð êîìàíä Hayes, ñëåäóþùàÿ ïîñëåäîâàòåëüíîñòü êîìàíä âûïîëíèò ýòè íàñòðîéêè è ñîõðàíèò èõ â ýíåðãîíåçàâèñèìîé ïàìÿòè:
AT &C1 &D3 &K3 &Q6 S0=1 &W Èíôîðìàöèÿ î òîì, êàê ñäåëàòü ýòè íàñòðîéêè áåç îáðàùåíèÿ ê òåðìèíàëüíûì ïðîãðàììàì MS-DOS, ñîäåðæèòñÿ â ðàçäåëå î ïîñûëêå AT-êîìàíä. Çàòåì îïèøèòå ìîäåì â ôàéëå /etc/ttys (ïîñìîòðèòå ñïðàâêó ïî ttys(5)).  í¼ì ïåðå÷èñëåíû âñå ïîðòû, ñ êîòîðûõ îïåðàöèîííàÿ ñèñòåìà îæèäàåò âõîäà ïîëüçîâàòåëåé. Äîáàâüòå ñòðîêó, êîòîðàÿ âûãëÿäèò êàê ýòà:
ttyd1 "/usr/libexec/getty std.57600" dialup on insecure  ýòîé ñòðîêå óêàçàíî, ÷òî êî âòîðîìó ïîñëåäîâàòåëüíîìó ïîðòó (/dev/ttyd1) ïîäêëþ÷åí ìîäåì íà ñêîðîñòè 57600 bps áåç êîíòðîëÿ ïî ÷¼òíîñòè (std.57600, ÷òî áåð¼òñÿ èç ôàéëà /etc/gettytab (ïîñìîòðèòå ñïðàâêó ïî gettytab(5)). Òèï òåðìèíàëà äëÿ ýòîãî ïîðòà îïðåäåë¼í êàê dialup. Ïîðò âêëþ÷åí (on) è íåáåçîïàñåí (insecure), ÷òî îçíà÷àåò, ÷òî ïîïûòêè âîéòè â ñèñòåìó ïîëüçîâàòåëåì root ñ ýòîãî ïîðòà áóäóò îòâåðãíóòû. Äëÿ ïîðòîâ, îáñëóæèâàþùèõ âõîäÿùèå çâîíêè, êàê ýòîò, èñïîëüçóéòå óñòðîéñòâà âèäà ttydX . Èñïîëüçîâàíèå ñëîâà dialup â êà÷åñòâå èìåíè òåðìèíàëà ÿâëÿåòñÿ îáû÷íîé ïðàêòèêîé. Ìíîãèå ïîëüçîâàòåëè âêëþ÷àþò â ñâîè ôàéëû .profile èëè .login ñêðèïòû äëÿ çàäàíèÿ ðåàëüíîãî òèïà òåðìèíàëà, åñëè íà÷àëüíûì ÿâëÿåòñÿ òèï dialup.  ïðèìåðå ïîðò îïèñàí íåáåçîïàñíûì. ×òîáû âîéòè ïîëüçîâàòåëåì root íà ýòîì ïîðòó, âàì íóæíî ñíà÷àëà âîéòè îáû÷íûì ïîëüçîâàòåëåì, à çàòåì êîìàíäîé su(1) ñòàòü ïîëüçîâàòåëåì root. Åñëè ïîðò èìååò àòðèáóò secure, òî ïîëüçîâàòåëü root ìîæåò âõîäèòü ñ ýòîãî ïîðòà íåïîñðåäñòâåííî. Ïîñëå ðåäàêòèðîâàíèÿ ôàéëà /etc/ttys âàì íóæíî ïîñëàòü ñèãíàë ïîòåðè ñâÿçè èëè HUP ïðîöåññó
init(8): # kill -HUP 1
118
Ãëàâà 15. Êîììóíèêàöèîííûå àäàïòåðû
Ýòî çàñòàâèò ïðîöåññ init(8) ñíîâà ïðî÷èòàòü ôàéë /etc/ttys. Ïðîöåññ init çàïóñòèò ïðîöåññû getty äëÿ âñåõ ïîðòîâ ñ õàðàêòåðèñòèêîé on. Âû ìîæåòå ïðîâåðèòü, äîñòóïíû ëè âõîäû ñ êîíêðåòíîãî ïîðòà, âûïîëíèâ êîìàíäó % ps -ax | grep ’[t]tyd1’
Âû äîëæíû óâèäåòü íå÷òî âðîäå ñëåäóþùåãî:
747 ??
I
0:00.04 /usr/libexec/getty std.57600 ttyd1
8. Êàê ïîäêëþ÷èòü òåðìèíàë ê FreeBSD? Åñëè âû ñîáèðàåòåñü èñïîëüçîâàòü äðóãîé êîìïüþòåð â êà÷åñòâå òåðìèíàëà äëÿ FreeBSD, ñîåäèíèòå èõ ïîñëåäîâàòåëüíûå ïîðòû íóëü-ìîäåìíûì êàáåëåì. Åñëè ó âàñ åñòü òåðìèíàë, îáðàòèòåñü ê åãî äîêóìåíòàöèè. Çàòåì ìîäèôèöèðóéòå ôàéë /etc/ttys (ïîñìîòðèòå ñïðàâêó ïî ttys(5)) îïèñàííûì âûøå ñïîñîáîì. Íàïðèìåð, åñëè âû ïîäêëþ÷àåòå òåðìèíàë WYSE-50 ê ïÿòîìó ïîñëåäîâàòåëüíîìó ïîðòó, èñïîëüçóéòå òàêóþ ñòðî÷êó:
ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure
 ýòîì ïðèìåðå îïèñàí ïîðò íà /dev/ttyd4, èìåþùèé òåðìèíàë wyse50, ïîäêëþ÷åííûé íà ñêîðîñòè 34800 bps áåç êîíòðîëÿ ïî ÷åòíîñòè (std.38400 èç ôàéëà /etc/gettytab, èíôîðìàöèþ î êîòîðîì ìîæíî ïîëó÷èòü èç ñïðàâêè ïî gettytab(5)) è ðàçðåø¼í íåïîñðåäñòâåííûé âõîä ïîëüçîâàòåëÿ root (secure).
9. Ïî÷åìó íå óäà¼òñÿ çàïóñòèòü tip èëè cu? Ñêîðåå âñåãî, â âàøåé ñèñòåìå çàïóñê ïðîãðàìì tip(1) è cu(1) ðàçðåø¼í òîëüêî ïîëüçîâàòåëþ uucp è ÷ëåíàì ãðóïïû dialer. Âû ìîæåòå èñïîëüçîâàòü ãðóïïó dialer äëÿ óïðàâëåíèÿ äîñòóïîì ê âàøåìó ìîäåìó èëè óäàë¼ííûì ñèñòåìàì. Äîñòàòî÷íî äîáàâèòü ïîëüçîâàòåëÿ â ãðóïïó dialer. Âû ìîæåòå ðàçðåøèòü âñåì ïîëüçîâàòåëÿì âàøåé ñèñòåìû çàïóñêàòü tip(1) è cu(1), âûïîëíèâ êîìàíäû: # chmod 4511 /usr/bin/cu # chmod 4511 /usr/bin/tip
10. Ìîé ìîäåì Hayes íå ïîääåðæèâàåòñÿ---÷òî ìîæíî ñäåëàòü? Íà ñàìîì äåëå ñòðàíèöà Ñïðàâî÷íèêà î ïðîãðàììå tip(1) óñòàðåëà. Ìîäåìû Hayes ïîääåðæèâàþòñÿ ñèñòåìîé. Ïðîñòî äîáàâüòå at=hayes â âàø ôàéë /etc/remote (ïîñìîòðèòå ñïðàâêó ïî remote(5)). Äðàéâåð ìîäåìîâ Hayes íå äîñòàòî÷íî óì¼í, ÷òîáû ïîääåðæèâàòü íåêîòîðûå èç íîâûõ âîçìîæíîñòåé ñîâðåìåííûõ ìîäåìîâ---ñîîáùåíèÿ òèïà BUSY, NO DIALTONE èëè CONNECT 115200 áóäóò ïðèâîäèòü åãî â çàìåøàòåëüñòâî. Âû äîëæíû âûêëþ÷èòü âûâîä òàêèõ ñîîáùåíèé ïðè èñïîëüçîâàíèè ïðîãðàììû tip(1) (êîìàíäîé ATX0&W).
119
Ãëàâà 15. Êîììóíèêàöèîííûå àäàïòåðû
Êðîìå òîãî, çíà÷åíèå òàéìàóòà ïî óìîë÷àíèþ äëÿ ïðîãðàììû tip(1) ðàâåí 60 ñåêóíäàì. Âàø ìîäåì äîëæåí èñïîëüçîâàòü ìåíüøåå çíà÷åíèå, èíà÷å tip áóäåò äóìàòü, ÷òî ó âàñ ïðîáëåìû ñî ñâÿçüþ. Ïîïðîáóéòå ATS7=45&W. Íà ñàìîì äåëå tip â òîì âèäå, êàêîì ïîñòàâëÿåòñÿ, íå ïîääåðæèâàåò ìîäåìû Hayes ïîëíîñòüþ. Ðåøåíèåì ÿâëÿåòñÿ ðåäàêòèðîâàíèå ôàéëà tipconf.h â êàòàëîãå /usr/src/usr.bin/tip/tip. ×òîáû ýòî ñäåëàòü, âàì íóæåí äèñòðèáóòèâ èñõîäíûõ òåêñòîâ ñèñòåìû. Çàìåíèòå ñòðîêó #define HAYES 0 íà #define HAYES 1. Çàòåì âûïîëíèòå êîìàíäû make è make install. Ïîñëå ýòèõ äåéñòâèé âñ¼ ðàáîòàåò çàìå÷àòåëüíî.
11. Êàê ÿ äîëæåí ââåñòè ýòè AT-êîìàíäû? Ñîçäàéòå òàê íàçûâàåìîå ”ïðÿìîå” îïèñàíèå â âàøåì ôàéëå /etc/remote (ïîñìîòðèòå ñïðàâêó ïî remote(5)). Íàïðèìåð, åñëè âàø ìîäåì ïîäêëþ÷åí ê ïåðâîìó ïîñëåäîâàòåëüíîìó ïîðòó, /dev/cuaa0, ñäåëàéòå òàêóþ ñòðîêó:
cuaa0:dv=/dev/cuaa0:br#19200:pa=none
Óêàæèòå ìàêñèìàëüíóþ ñêîðîñòü îáìåíà ñ ïîðòîì, ïîääåðæèâàåìóþ ìîäåìîì â ïàðàìåòðå br. Çàòåì âûïîëíèòå êîìàíäó tip cuaa0 (îáðàòèòåñü ê ñïðàâêå ïî tip(1)) è âû ïîäêëþ÷èòåñü ê ìîäåìó. Åñëè â âàøåé ñèñòåìå íåò óñòðîéñòâà /dev/cuaa0, ñäåëàéòå ñëåäóþùåå: # cd /dev # sh MAKEDEV cuaa0
Èëè èñïîëüçóéòå cu, âîéäÿ àäìèíèñòðàòîðîì, ñ òàêèìè ïàðàìåòðàìè: # cu -lline -sspeed
ãäå line - ýòî èìÿ ïîñëåäîâàòåëüíîãî ïîðòà (íàïðèìåð, /dev/cuaa0), à speed - ñêîðîñòü ðàáîòû ìîäåìà ñ ïîðòîì (íàïðèìåð, 57600). Ïîñëå ââîäà AT-êîìàíä, íàáåðèòå ~. äëÿ çàâåðøåíèÿ ðàáîòû.
12. Ïî÷åìó íå ñðàáàòûâàåò çíàê äëÿ îïèñàíèÿ õàðàêòåðèñòèêè pn? Çíàê â õàðàêòåðèñòèêå, îïèñûâàþùåé íîìåð òåëåôîíà, óêàçûâàåò ïðîãðàììå tip îáðàòèòüñÿ ê ôàéëó /etc/phones äëÿ ïîèñêà òåëåôîííîãî íîìåðà. Îäíàêî çíàê ÿâëÿåòñÿ òàêæå è ñïåöèàëüíûì ñèìâîëîì â ôàéëàõ îïèñàíèÿ õàðàêòåðèñòèê òèïà /etc/remote. Ýêðàíèðóéòå åãî ñèìâîëîì îáðàòíîãî ñëýøà:
pn=\@
13. Êàê íàáðàòü òåëåôîííûé íîìåð èç êîìàíäíîé ñòðîêè? Ïîìåñòèòå òàê íàçûâàåìîå ”îáùåå” îïèñàíèå â âàø ôàéë /etc/remote (ïîñìîòðèòå ñïðàâêó ïî remote(5)). Íàïðèìåð:
120
Ãëàâà 15. Êîììóíèêàöèîííûå àäàïòåðû
tip115200|Dial any phone number at 115200 bps:\ :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du: tip57600|Dial any phone number at 57600 bps:\ :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:
Òîãäà âû ñìîæåòå âûïîëíÿòü êîìàíäû âðîäå tip -115200 5551234. Åñëè ïðåäïî÷èòàåòå ïðîãðàììó cu(1), à íå tip(1), èñïîëüçóéòå îáùåå îïèñàíèå äëÿ cu:
cu115200|Use cu to dial any number at 115200bps:\ :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:
è âûïîëíÿéòå êîìàíäó cu 5551234 -s 115200.
14. Íóæíî ëè ïðè ýòîì êàæäûé ðàç çàäàâàòü ñêîðîñòü ðàáîòû ñ ïîðòîì? Ñîçäàéòå îïèñàíèå äëÿ tip1200 èëè cu1200, íî íå îñòàíàâëèâàéòåñü íà ýòîì è èñïîëüçóéòå ïîäõîäÿùóþ ñêîðîñòü ïðè çàäàíèè õàðàêòåðèñòèêè br. tip(1) ïîëàãàåò, ÷òî õîðîøèì çíà÷åíèåì ïî óìîë÷àíèþ ÿâëÿåòñÿ 1200 bps, ïîýòîìó îí èñïîëüçóåò îïèñàíèå äëÿ tip1200. Îäíàêî âàñ íèêòî íå çàñòàâëÿåò èñïîëüçîâàòü èìåííî ýòó ñêîðîñòü.
15. Ìíå íóæíî èìåòü äîñòóï ê íåñêîëüêèõ õîñòàì ÷åðåç òåðìèíàëüíûé ñåðâåð. Âìåñòî òîãî, ÷òîáû êàæäûé ðàç îæèäàòü ïîäêëþ÷åíèÿ ê òåðìèíàëüíîìó ñåðâåðó, à çàòåì íàáèðàòü êîìàíäó CONNECT host, èñïîëüçóéòå õàðàêòåðèñòèêó cm ïðîãðàììû tip. Íàïðèìåð, âîò òàêîå îïèñàíèå â ôàéëå /etc/remote (îáðàòèòåñü ê ñïðàâêå ïî remote(5)):
pain|pain.deep13.com|Forrester’s machine:\ :cm=CONNECT pain\n:tc=deep13: muffin|muffin.deep13.com|Frank’s machine:\ :cm=CONNECT muffin\n:tc=deep13: deep13:Gizmonics Institute terminal server:\ :dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234:
ïîçâîëèò âàì ïðîñòî íàáèðàòü tip pain èëè tip muffin äëÿ ïîäêëþ÷åíèÿ ê õîñòàì pain èëè muffin è tip deep13 äëÿ äîñòóïà ê òåðìèíàëüíîìó ñåðâåðó.
16. Ìîæåò ëè tip èñïîëüçîâàòü íåñêîëüêî òåëåôîíîâ äëÿ îäíîãî ñàéòà? Ýòà ïðîáëåìà âîçíèêàåò, êîãäà â óíèâåðñèòåòå åñòü ïàðà ìîäåìíûõ âõîäîâ è íåñêîëüêî òûñÿ÷ ñòóäåíòîâ, ïûòàþùèõñÿ èìè âîñïîëüçîâàòüñÿ... Ñîçäàéòå îïèñàíèå äëÿ âàøåãî óíèâåðñèòåòà â ôàéëå /etc/remote (ïîñìîòðèòå ñïðàâêó ïî remote(5)) è èñïîëüçóéòå ïðè çàäàíèè õàðàêòåðèñòèêè pn:
big-university:\ :pn=\@:tc=dialout dialout:\ :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:
121
Ãëàâà 15. Êîììóíèêàöèîííûå àäàïòåðû
Ïîñëå ýòîãî ïðîïèøèòå íîìåðà òåëåôîíîâ óíèâåðñèòåòà â ôàéëå /etc/phones (ïîñìîòðèòå ñïðàâêó ïî
phones(5)): big-university big-university big-university big-university
5551111 5551112 5551113 5551114
tip(1) áóäåò ïûòàòüñÿ âîñïîëüçîâàòüñÿ âñåìè òåëåôîííûìè íîìåðàìè â óêàçàííîì ïîðÿäêå, ïðåæäå ÷åì çàâåðøèòü ðàáîòó. Åñëè âû õîòèòå, ÷òîáû ïîïûòêè áûëè ïðîäîëæåíû, çàïóñòèòå tip(1) â öèêëå while.
17. Ïî÷åìó íóæíî íàæèìàòü CTRL+P äâàæäû äëÿ ïîñûëêè îäíîãî ýòîãî ñèìâîëà CTRL+P? Ïî óìîë÷àíèþ CTRL+P ÿâëÿåòñÿ ñïåöèàëüíûì ñèìâîëîì ”ïðèíóäèòåëüíîãî ââîäà”, èñïîëüçóåìûì äëÿ óêàçàíèÿ ïðîãðàììå tip(1), ÷òî ñëåäóþùèé ñèìâîë ÿâëÿåòñÿ áàéòîì äàííûõ. Âû ìîæåòå íàçíà÷èòü ôóíêöèþ ñèìâîëà ïðèíóäèòåëüíîãî ââîäà ëþáîìó äðóãîìó ñèìâîëó ñ ïîìîùüþ êîìàíäû ~s, êîòîðàÿ ïðåäíàçíà÷åíà äëÿ ”óñòàíîâêè çíà÷åíèé ïåðåìåííûõ”. Íàáåðèòå ~sforce=single-char ñ íà÷àëà íîâîé ñòðîêè. Çäåñü ïîä single-char èìååòñÿ â âèäó ëþáîé îäèíî÷íûé ñèìâîë. Åñëè âû íå çàäàäèòå single-char, òî ñèìâîëîì ïðèíóäèòåëüíîãî ââîäà áóäåò íóëåâîé ñèìâîë, êîòîðûé ìîæíî ïîëó÷èòü, íàæàâ CTRL+2 èëè CTRL+SPACE. Ïîäõîäÿùèì çíà÷åíèåì äëÿ single-char ÿâëÿåòñÿ SHIFT+CTRL+6, ÷òî èñïîëüçóåòñÿ òîëüêî íåêîòîðûìè òåðìèíàëüíûìè ñåðâåðàìè. Âû ìîæåòå çàäàòü ëþáîå çíà÷åíèå äëÿ ñèìâîëà ïðèíóäèòåëüíîãî ââîäà, óêàçàâ åãî â âàøåì ôàéëå $HOME/.tiprc:
force=single-char
18. Íåîæèäàííî âñ¼ ñòàëî íàáèðàòüñÿ ÇÀÃËÀÂÍÛÌÈ ÁÓÊÂÀÌÈ? Äîëæíî áûòü, âû íàæàëè CTRL+A, ñèìâîë ”ïåðåõîäà â âåðõíèé ðåãèñòð” ïðîãðàììû tip(1), ñïåöèàëüíî ïðåäíàçíà÷åííûé äëÿ òåõ, ó êîãî íå ðàáîòàåò êëàâèøà Caps Lock. Èñïîëüçóéòå êîìàíäó ~s, êàê ýòî áûëî ñäåëàíî âûøå, è óñòàíîâèòå çíà÷åíèå ïåðåìåííîé ”raisechar” âî ÷òî-íèáóäü ïîäõîäÿùåå.  äåéñòâèòåëüíîñòè âû ìîæåòå óñòàíîâèòü åãî ðàâíûì ñèìâîëó ïðèíóäèòåëüíîãî ââîäà, åñëè íå ñîáèðàåòåñü ïîëüçîâàòüñÿ ýòèìè îñîáåííîñòÿìè. Ñëåäóþùèé ïðèìåð ôàéëà .tiprc äîëæåí ïîíðàâèòüñÿ ïîëüçîâàòåëÿì ðåäàêòîðà Emacs, êîòîðûì ÷àñòî ïðèõîäèòñÿ íàæèìàòü CTRL+2 è CTRL+A:
force=^^ raisechar=^^ Çäåñü ^^ îáîçíà÷àåò SHIFT+CTRL+6.
122
Ãëàâà 15. Êîììóíèêàöèîííûå àäàïòåðû
19. Êàê ìîæíî ïåðåäàâàòü ôàéëû ñ ïîìîùüþ ïðîãðàììû tip? Åñëè âû ñîåäèíèëèñü ñ äðóãîé Unix-ñèñòåìîé, âû ìîæåòå ïîñûëàòü è ïðèíèìàòü ôàéëû êîìàíäàìè ~p (ïåðåäà÷à) è ~t (ïðè¼ì). Ýòè êîìàíäû çàïóñêàþò ïðîãðàììû cat(1) è echo(1) íà óäàë¼ííîé ñèñòåìå, ÷òîáû ïðèíÿòü è ïîñëàòü ôàéëû. Ñèíòàêñèñ âûçîâà èìååò òàêîé âèä:
~p [] ~t []
Êîíòðîëü îøèáîê ïåðåäà÷è ïðè ýòîì íå îñóùåñòâëÿåòñÿ, òàê ÷òî âàì ìîæåò ïîíàäîáèòüñÿ äðóãîé ïðîòîêîë ïåðåäà÷è, íàïðèìåð, zmodem.
20. Êàê èñïîëüçîâàòü zmodem âìåñòå ñ tip? Ïåðâûì äåëîì óñòàíîâèòå îäíó èç ïðîãðàìì, ðåàëèçóþùèõ ïðîòîêîë zmodem èç êîëëåêöèè ïîðòîâ (òàì åñòü ïàðî÷êà â êàòåãîðèè comms, lrzsz è rzsz). Äëÿ ïðè¼ìà ôàéëîâ çàïóñòèòå ïðîãðàììó ïåðåäà÷è íà ïðîòèâîïîëîæíîé ñòîðîíå. Çàòåì íàæìèòå enter è íàáåðèòå ~C rz (èëè ~C lrz, åñëè ó âàñ óñòàíîâëåí lrzsz) äëÿ íà÷àëà ïðè¼ìà èõ íà ëîêàëüíóþ ìàøèíó. Äëÿ ïîñûëêè ôàéëîâ, çàïóñòèòå ïðîãðàììó ïðè¼ìà íà ïðîòèâîïîëîæíîé ñòîðîíå. Çàòåì íàæìèòå enter è íàáåðèòå ~C sz files (èëè ~C lsz files) äëÿ ïîñûëêè ôàéëîâ íà óäàë¼ííóþ ñèñòåìó.
123
Ãëàâà 16. Ðàçíîå 1. Ïî÷åìó FreeBSD èñïîëüçóåò ãîðàçäî áîëüøå ìåñòà â ðàçäåëå ïîäêà÷êè, ÷åì Linux? Ýòî òîëüêî êàæåòñÿ, ÷òî äëÿ FreeBSD òðåáóåòñÿ áîëüøå ìåñòà íà ðàçäåëå ïîäêà÷êè, ÷åì äëÿ Linux. Íà ñàìîì äåëå ýòî íå òàê. Ãëàâíîå îòëè÷èå FreeBSD îò Linux â ýòîì ïëàíå çàêëþ÷àåòñÿ â òîì, ÷òî FreeBSD àêòèâíî ïåðåìåùàåò íåèñïîëüçóåìûå ñòðàíèöû ïàìÿòè, ê êîòîðûì íå áûëî îáðàùåíèé, â ðàçäåë ïîäêà÷êè, ÷òîáû óâåëè÷èòü îáú¼ì äîñòóïíîé ôèçè÷åñêîé ïàìÿòè äëÿ àêòèâíîãî èñïîëüçîâàíèÿ. Linux æå ïåðåìåùàåò ñòðàíèöû ïàìÿòè â ðàçäåë ïîäêà÷êè òîëüêî â êðàéíåì ñëó÷àå. Ïîëó÷àåìîå âî FreeBSD óâåëè÷åíèå íàãðóçêè íà ðàçäåë ïîäêà÷êè êîìïåíñèðóåòñÿ áîëåå ýôôåêòèâíûì èñïîëüçîâàíèåì îïåðàòèâíîé ïàìÿòè. Çàìåòüòå, ÷òî, õîòÿ FreeBSD ïðåäïî÷èòàåò èñïîëüçîâàòü ðàçäåë ïîäêà÷êè, îíà íå ìîæåò ñáðîñèòü âñå íåàêòèâíûå ñòðàíèöû â ñâîï ïðè ïîëíîñòüþ íåàêòèâíîé ñèñòåìå. Òàê ÷òî âðÿä ëè ìîæåò âîçíèêíóòü ñèòóàöèÿ, êîãäà, ïðîñíóâøèñü ðàíî óòðîì, âû îáíàðóæèòå, ÷òî âñÿ âàøà ñèñòåìà íàõîäèòñÿ â ðàçäåëå ïîäêà÷êè, õîòÿ îíà ïðîñòàèâàëà âñþ íî÷ü.
2. Ïî÷åìó óòèëèòà top(1) ïîêàçûâàåò î÷åíü ìàëåíüêèé îáú¼ì ñâîáîäíîé ïàìÿòè, äàæå êîãäà çàïóùåíî âñåãî ëèøü íåñêîëüêî ïðèëîæåíèé? Ïðîñòî äåëî â òîì, ÷òî ïîä ñâîáîäíîé ïàìÿòüþ ïîäðàçóìåâàåòñÿ íèêàê íå èñïîëüçóåìàÿ ïàìÿòü. Âñÿ ïàìÿòü, êîòîðàÿ âàøåé ïðîãðàììå ÿâíî íå âûäåëÿëàñü, èñïîëüçóåòñÿ ÿäðîì FreeBSD äëÿ äèñêîâîãî êýøà. Çíà÷åíèÿ, ïîêàçûâàåìûå óòèëèòîé top(1), ïîìå÷åííûå êàê Inact, Cache è Buf - ýòî âñ¼ êýøèðîâàííûå äàííûå ðàçíûõ ñòåïåíåé óñòàðåâàíèÿ. Òî, ÷òî äàííûå íàõîäÿòñÿ â êýøå, îçíà÷àåò, ÷òî ñèñòåìà íå áóäåò îáðàùàòüñÿ ê ìåäëåííîìó äèñêó ñíîâà çà òåìè äàííûìè, îáðàùåíèå ê êîòîðûì áûëî íåäàâíî, ïîâûøàÿ òàêèì îáðàçîì îáùóþ ïðîèçâîäèòåëüíîñòü.  îáùåì ñëó÷àå ìàëåíüêèå çíà÷åíèÿ â ïóíêòå Free, ïîêàçûâàåìûå óòèëèòîé top(1) äëÿ ñâîáîäíîé ïàìÿòè - ýòî õîðîøî, åñëè, êîíå÷íî îíè íå î÷åíü ìàëåíüêèå.
3. Ïî÷åìó êîìàíäîé chmod íåâîçìîæíî èçìåíèòü ïðàâà íà ñèìâîëè÷åñêèå ññûëêè? Ñèìâîëè÷åñêèå ññûëêè íå èìåþò àòðèáóòîâ äîñòóïà, à ïî óìîë÷àíèþ óòèëèòà chmod(1) íå ñëåäóåò ñèìâîëè÷åñêîé ññûëêå äëÿ èçìåíåíèÿ ïðàâ äîñòóïà ê ôàéëó, íà êîòîðûé óêàçûâàåò ññûëêà. Ïîýòîìó, åñëè ó âàñ åñòü ôàéë, ñêàæåì, ñ èìåíåì foo è ñèìâîëè÷åñêàÿ ññûëêà bar íà ýòîò ôàéë, òî ýòà êîìàíäà âñåãäà áóäåò âûïîëíÿòüñÿ óñïåøíî. % chmod g-w bar
Îäíàêî ïðàâà íà ôàéë foo íå èçìåíÿòñÿ. ×òîáû ýòî ðàáîòàëî, èñïîëüçóéòå îïöèè -H èëè -L âìåñòå ñ îïöèåé -R. Îáðàòèòåñü ê ñòðàíèöàì Ñïðàâî÷íèêà ïî êîìàíäå chmod(1) è ïî symlink(7).
Âíèìàíèå: Îïöèÿ -R âûïîëíÿåò êîìàíäó chmod(1) ÐÅÊÓÐÑÈÂÍÎ . Áóäüòå îñòîðîæíû, çàäàâàÿ êàòàëîãè èëè
ñèìâîëè÷åñêèå ññûëêè íà êàòàëîãè â ïàðàìåòðàõ chmod(1). Åñëè âû õîòèòå èçìåíèòü ïðàâà íà êàòàëîã, íà êîòîðûé óêàçûâàåò ñèìâîëè÷åñêàÿ ññûëêà, èñïîëüçóéòå chmod(1) áåç îïöèé è ñëåäóéòå ñèìâîëè÷åñêîé ññûëêå ñ ïîìîùüþ ëèäèðóþùåãî ñëýøà (/). Íàïðèìåð, åñëè foo ÿâëÿåòñÿ ñèìâîëè÷åñêîé ññûëêîé íà êàòàëîã bar, à âû õîòèòå èçìåíèòü ïðàâà íà foo (íà ñàìîì äåëå bar), âû äîëæíû âûïîëíèòü êîìàíäó òèïà ñëåäóþùåé: % chmod 555 foo/
124
Ãëàâà 16. Ðàçíîå Åñëè çàäàí ëèäèðóþùèé ñëýø, òî chmod(1) áóäåò ñëåäîâàòü ñèìâîëè÷åñêîé ññûëêå, foo, ìåíÿÿ ïðàâà íà êàòàëîã bar.
4. Ìîæíî ëè çàïóñêàòü ïðîãðàììû äëÿ DOS âî FreeBSD? Äà, äëÿ çàïóñêà íåêîòîðûõ êîìàíä DOS ìîæíî èñïîëüçîâàòü âêëþ÷¼ííóþ â ïîñòàâêó ïðîãðàììó ýìóëÿöèè DOS doscmd. Åñëè doscmd âàñ íå óäîâëåòâîðèò, òî äîïîëíèòåëüíàÿ óòèëèòà emulators/pcemu ýìóëèðóåò 8088 è íàáîð ñåðâèñîâ BIOS, äîñòàòî÷íûé äëÿ çàïóñêà ìíîãèõ ïðèëîæåíèé òåêñòîâîãî ðåæèìà DOS. Åé òðåáóåòñÿ X Window System.
5. ×òî ìíå íóæíî ñäåëàòü, ÷òîáû ïåðåâåñòè äîêóìåíòàöèþ FreeBSD íà ðîäíîé ÿçûê? Îçíàêîìüòåñü ñ FAQ ïî Ïåðåâîäàì (../fdp-primer/translations.html) èç FreeBSD Documentation Project Primer.
6. Ïî÷åìó âîçâðàùàåòñÿ ìîÿ ýëåêòðîííàÿ ïî÷òà. îòïðàâëåííàÿ íà ëþáîé èç àäðåñîâ FreeBSD.org?  ïî÷òîâîé ñèñòåìå FreeBSD.org â Postfix ïðèìåíÿþòñÿ íåêîòîðûå áîëåå ñòðîãèå ïðîâåðêè âõîäÿùåé ïî÷òû, è îòâåðãàþòñÿ ñîîáùåíèÿ, êîòîðûå ñôîðìèðîâàíû íåïðàâèëüíî ëèáî ïîòåíöèàëüíî ÿâëÿþòñÿ ñïàìîì. Âàøà ïî÷òà ìîæåò íå ïðèíèìàòüñÿ ïî îäíîé èç ñëåäóþùèõ ïðè÷èí: • Ýëåêòðîííàÿ ïî÷òà áûëà ïîñëàíà ñ äîìåíà èëè áëîêà IP-àäðåñîâ, êîòîðûå èçâåñòíû íàì êàê ñïàìåðû.
Ïî÷òîâûå ñåðâåðû FreeBSD îòâåðãàþò ýëåêòðîííóþ ïî÷òó îò èçâåñòíûõ èñòî÷íèêîâ ñïàìà. Åñëè âû ïîëüçóåòåñü óñëóãàìè êîìïàíèè èëè äîìåíà, ðàññûëàþùåãî èëè ïåðåñûëàþùåãî ñïàì, ïîæàëóéñòà, ïåðåêëþ÷èòåñü íà äðóãîãî ïîñòàâùèêà óñëóã, êîòîðûé ýòîãî íå äåëàåò.
• Òåëî ñîîáùåíèÿ ýëåêòðîííîé ïî÷òû ñîäåðæèò òîëüêî
HTML.
Ïî÷òà äîëæíà ïîñûëàòü òîëüêî êàê îáû÷íûé òåêñò. Ïîæàëóéñòà, íàñòðîéòå âàø ïî÷òîâûé àãåíò íà îòïðàâêó òîëüêî òåêñòà.
• Ïî÷òîâàÿ ïðîãðàììà
FreeBSD.org íå ìîæåò ïðåîáðàçîâàòü àäðåñ IP ïîäêëþ÷àþùåãîñÿ õîñòà â
ñèìâîëè÷åñêîå èìÿ. Ðàáîòà îáðàòíîãî DNS ÿâëÿåòñÿ ñòàíäàðòíûì òðåáîâàíèåì äëÿ ïðèíÿòèÿ ïî÷òû îò õîñòà. Íàñòðîéòå îáðàòíûé DNS äëÿ IP-àäðåñà âàøåãî ïî÷òîâîãî ñåðâåðà. Ìíîãèå ñïîñîáû äîìàøíåãî ïîäêëþ÷åíèÿ (DSL, êàáåëü, êîììóòèðóåìîå ñîåäèíåíèå è òîìó ïîäîáíîå) íå ïðåäîñòàâëÿþò òàêîé âîçìîæíîñòè.  òàêîì ñëó÷àå ïåðåñûëàéòå ñâîþ ýëåêòðîííóþ ïî÷òó ÷åðåç ïî÷òîâûé ñåðâåð âàøåãî ïîñòàâùèêà óñëóã.
• Èìÿ õîñòà, óêàçàííîå íà ýòàïå
EHLO/HELO ïðîöåññà îáìåíà ñîîáùåíèÿìè SMTP íå ìîæåò áûòü
ïðåîáðàçîâàíî â IP-àäðåñ.
125
Ãëàâà 16. Ðàçíîå
Íà ýòîì ýòàïå äèàëîãà SMTP, ïåðåä ïðèíÿòèåì ïî÷òû, íåîáõîäèì ïîëíîå è ïðåîáðàçóåìîå èìÿ õîñòà. Åñëè ó âàñ íåò èìåíè õîñòà, êîòîðûé çàðåãèñòðèðîâàí â DNS, òî äëÿ ïåðåñûëêè ñâîåé ïî÷òû âû äîëæíû èñïîëüçîâàòü ïî÷òîâûé ñåðâåð âàøåãî ïîñòàâùèêà óñëóã.
• Âàøå ñîîáùåíèå èìååò èäåíòèôèêàòîð, îêàí÷èâàþùèéñÿ ñòðî÷êîé
”localhost”.
Íåêîòîðûå ïî÷òîâûå ïðîãðàììû ãåíåðèðóþò íåïðàâèëüíûå èäåíòèôèêàòîðû ñîîáùåíèé, êîòîðûå íå ìîãóò áûòü ïðèíÿòû. Âàì íóæíî çàñòàâèòü ïî÷òîâóþ ïðîãðàììó ïîëüçîâàòåëÿ ãåíåðèðîâàòü ïðàâèëüíûé èäåíòèôèêàòîð ñîîáùåíèÿ ëèáî íàñòðîèòü âàø àãåíò ïåðåäà÷è ïî÷òû íà çàìåíó ýòèõ èäåíòèôèêàòîðîâ.
7. Ãäå ìîæíî ïîëó÷èòü áåñïëàòíûé äîñòóï ê FreeBSD? Õîòÿ FreeBSD íå ïðåäîñòàâëÿåò áåñïëàòíûé äîñòóï íè ê îäíîìó èç ñâîèõ ñåðâåðîâ, äðóãèå êîìïàíèè ïðåäîñòàâëÿþò Unix-ñèñòåìû ñ îòêðûòûì äîñòóïîì. Ñòîèìîñòü ýòîé óñëóãè ðàçëè÷íà, òàêæå êàê è îãðàíè÷åííûé íàáîð óñëóã.
Arbornet, Inc (http://www.arbornet.org/), òàêæå èçâåñòíûé êàê M-Net, ïðåäîñòàâëÿåò ñâîáîäíûé äîñòóï ê Unix-ñèñòåìàì ñ 1983 ãîäà. Íà÷èíàÿ íà ïëàòôîðìå Altos ñ ðàáîòàþùåé System III, ñàéò ïåðåø¼ë íà BSD/OS â 1991.  èþíå 2000 ñàéò ñìåíèë ñèñòåìó ñíîâà, òåïåðü íà FreeBSD. M-Net ìîæåò áûòü äîñòóïíà ÷åðåç ïðîòîêîëû telnet è SSH è ïðåäîñòàâëÿåò äîñòóï ê ïîëíîìó íàáîðó ïðîãðàììíîãî îáåñïå÷åíèÿ FreeBSD. Îäíàêî äîñòóï ê ñåòè îãðàíè÷åí äëÿ ÷ëåíîâ è ñïîíñîðîâ, êîòîðûå ïîääåðæèâàþò ñèñòåìó, êîòîðàÿ ðàáîòàåò êàê íåïðèáûëüíàÿ îðãàíèçàöèÿ. M-Net ïðåäîñòàâëÿåò òàêæå óñëóãè ýëåêòðîííîé äîñêè îáúÿâëåíèé (BBS) è èíòåðàêòèâíîãî ÷àòà. Grex (http://www.grex.org/) ïðåäñòàâëÿåò ñîáîé ñàéò, î÷åíü ïîõîæèé íà M-Net, âêëþ÷àÿ òî æå ñàìîå ïðîãðàììíîå îáåñïå÷åíèå äëÿ ýëåêòðîííîé äîñêè îáúÿâëåíèé (BBS) è èíòåðàêòèâíîãî ÷àòà. Îäíàêî ïëàòôîðìîé ÿâëÿåòñÿ Sun 4M ïîä óïðàâëåíèåì SunOS
8. ×òî òàêîå sup è êàê ýòî ìîæíî èñïîëüçîâàòü? Ñîêðàùåíèå SUP (http://www.FreeBSD.org/cgi/ports.cgi?^sup) îçíà÷àåò Software Update Protocol, êîòîðûé áûë ðàçðàáîòàí â CMU äëÿ ñèíõðîíèçàöèè èñõîäíûõ òåêñòîâ. Ìû èñïîëüçóåì åãî äëÿ ñèíõðîíèçàöèè èñõîäíûõ òåêñòîâ íà óäàë¼ííûõ ñàéòàõ ñ îñíîâíûì ñåðâåðîì ðàçðàáîò÷èêîâ. Ïðîòîêîë SUP èñïîëüçóåò ïðîïóñêíóþ ñïîñîáíîñòü êàíàëà íåýôôåêòèâíî, è áûë îòâåðãíóò.  íàñòîÿùåå âðåìÿ ðåêîìåíäóåìûì ìåòîäîì äëÿ ñèíõðîíèçàöèè èñõîäíûõ òåêñòîâ ÿâëÿåòñÿ ïðîòîêîë
CVSup (../handbook/synching.html#CVSUP).
9. Êàê çîâóò ýòîãî ìàëåíüêîãî ñèìïàòè÷íîãî êðàñíîãî ïàðíÿ? Ó íåãî íåò îïðåäåë¼ííîãî èìåíè, îí íàçûâàåòñÿ ïðîñòî ”äàåìîí BSD”. Åñëè âàì íåïðåìåííî íóæíî èìÿ, íàçûâàéòå åãî ”beastie”. Çàìåòüòå, ÷òî ”beastie” ïðîèçíîñèòñÿ êàê ”BSD”. Áîëüøå î äàåìîíå BSD âû ìîæåòå óçíàòü èç åãî äîìàøíåé ñòðàíèöû
(http://www.mckusick.com/beastie/index.html).
126
Ãëàâà 16. Ðàçíîå
10. Ìîãó ëè ÿ èñïîëüçîâàòü èçîáðàæåíèå äàåìîíà BSD? Âïîëíå. Ïðàâà íà äàåìîíà BSD èìååò Marshall Kirk McKusick. Äëÿ âûÿñíåíèÿ ïîäðîáíîñòåé îòíîñèòåëüíî ïðàâèë åãî èñïîëüçîâàíèÿ âû ìîæåòå îáðàòèòüñÿ ê ñòðàíèöå àâòîðà Statement on the Use
of the BSD Daemon Figure (http://www.mckusick.com/beastie/mainpage/copyright.html).  îáùåì, âû ìîæåòå ñâîáîäíî èñïîëüçîâàòü èçîáðàæåíèå â âûñîêîõóäîæåñòâåííîì ñòèëå è â ëè÷íûõ öåëÿõ, åñëè äàþòñÿ ñîîòâåòñòâóþùèå îòñûëêè. Åñëè âû õîòèòå èñïîëüçîâàòü åãî â êîììåð÷åñêèõ öåëÿõ, âû äîëæíû îáðàòèòüñÿ ê Êåðêó ÌàêÊóçèêó. Äîïîëíèòåëüíàÿ èíôîðìàöèÿ íàõîäèòñÿ íà äîìàøíåé ñòðàíèöå Äàåìîíà BSD (http://www.mckusick.com/beastie/index.html).
11. Íå íàéäåòñÿ ëè ó âàñ èçîáðàæåíèé äàåìîíà BSD, êîòîðûå ìîæíî èñïîëüçîâàòü? Â êàòàëîãå /usr/share/examples/BSD_daemon/ åñòü ðèñóíêè â ôîðìàòàõ eps è Xfig.
12. ×òî òàêîå MFC? MFC - ýòî ñîêðàùåíèå îò ”Merged From -CURRENT”. Îíî èñïîëüçóåòñÿ â ïðîòîêîëàõ èçìåíåíèé CVS äëÿ îòìåòêè òîãî, ÷òî èçìåíåíèå áûëî ïåðåíåñåíî â âåòâü STABLE èç CURRENT. 13. ×òî îçíà÷àåò ñîêðàùåíèå BSD? Ýòî ñîêðàùåíèå çíà÷èò ÷òî-òî íà ñåêðåòíîì ÿçûêå, êîòîðûé ìîãóò çíàòü òîëüêî ïîñâÿù¼ííûå. Ýòî íåëüçÿ ïåðåâåñòè îäèí ê îäíîìó, îäíàêî äîñòàòî÷íî ñêàçàòü, ÷òî ïåðåâîä ñ BSD - ýòî ÷òî-òî ìåæäó ”Êîìàíäà Formula-1”, ”Ïèíãâèíû - ýòî âêóñíûå ïëþøêè” è ”Ìû ïðèêîëüíåå, ÷åì Linux”. :-) Åñëè ñåðü¼çíî, òî BSD ÿâëÿåòñÿ ñîêðàùåíèåì îò ”Berkeley Software Distribution”, íàçâàíèÿ, êîòîðîå áûëî âûáðàíî Berkeley CSRG (Computer Systems Research Group) äëÿ èõ äèñòðèáóòèâà Unix.
14. ×òî îçíà÷àåò ñîêðàùåíèå POLA? Ïðèíöèï Íàèìåíüøåãî Óäèâëåíèÿ (Principle of Least Astonishment). Îí îçíà÷àåò, ÷òî ïðè äàëüíåéøåì ðàçâèòèè FreeBSD èçìåíåíèÿ, âèäèìûå ïîëüçîâàòåëþ, ìàêñèìàëüíî íå äîëæíû áûòü äëÿ íåãî ñþðïðèçîì. Ê ïðèìåðó, ïðîèçâîëüíàÿ ïåðåñòàíîâêà ïåðåìåííûõ íà÷àëüíîé çàãðóçêè â /etc/defaults/rc.conf íàðóøàåò POLA. Ðàçðàáîò÷èêè ñëåäóþò POLA, êîãäà ïëàíèðóþò âíåñòè èçìåíåíèÿ â ñèñòåìå, êîòîðûå áóäóò âèäíû ïîëüçîâàòåëþ.
15. ×òî òàêîå repo-copy? repo-copy (÷òî ÿâëÿåòñÿ êðàòêîé ôîðìîé îò ”repository copy”) îáîçíà÷àåò ïðÿìîå êîïèðîâàíèå ôàéëîâ âíóòðè õðàíèëèùà CVS. Áåç repo-copy, åñëè åñòü íåîáõîäèìîñòü ñêîïèðîâàòü èëè ïåðåìåñòèòü ôàéë â äðóãîå ìåñòî ðåïîçèòîðèÿ, òî êîììèòòåð äîëæåí âûïîëíÿòü êîìàíäû cvs add äëÿ ïîìåùåíèÿ ôàéëà íà íîâîå ìåñòî, à çàòåì cvs rm, ÷òîáû óäàëèòü ñòàðûé ôàéë, åñëè ñòàðàÿ êîïèÿ äîëæíà áûòü óäàëåíà. Ìèíóñîì ýòîãî ìåòîäà ÿâëÿåòñÿ òî, ÷òî èñòîðèÿ (òî åñòü çàïèñè â æóðíàëàõ CVS) ðàáîòû ñ ôàéëîì íå êîïèðóþòñÿ â íîâîå ìåñòî. Òàê êàê Ïðîåêò FreeBSD îñîçíà¼ò âàæíîñòü ñîõðàíåíèÿ èñòîðèè, âìåñòî îïèñàííîãî ïðîöåññà çà÷àñòóþ èñïîëüçóåòñÿ êîïèðîâàíèå â ðåïîçèòîðèè. Ýòî äåéñòâèå çàêëþ÷àåòñÿ â òîì, ÷òî îäèí èç õîçÿåâ ðåïîçèòîðèÿ êîïèðóåò ôàéëû íåïîñðåäñòâåííî âíóòðè ðåïîçèòîðèÿ, íå ïîëüçóÿñü êîìàíäàìè cvs(1).
127
Ãëàâà 16. Ðàçíîå
16. Ïî÷åìó ÿ äîëæåí áåñïîêîèòüñÿ î öâåòå ôàð âåëîñèïåäà? Íà ñàìîì äåëå êðàòêèé, î÷åíü êðàòêèé îòâåò íà ýòîò âîïðîñ çàêëþ÷àåòñÿ â òîì, ÷òî âû ýòîãî äåëàòü íå äîëæíû. Åñëè äàâàòü áîëåå ïîäðîáíûé îòâåò, òî âàøå óìåíèå äåëàòü ôàðû íå äîëæíî îçíà÷àòü, ÷òî âû äîëæíû ïðåïÿòñòâîâàòü äðóãèì äåëàòü èõ ïðîñòî ïîòîìó, ÷òî âàì íå íðàâèòñÿ öâåò, â êîòîðûé îíè ñîáèðàþòñÿ èõ îêðàøèâàòü. Ýòà ìåòàôîðà îçíà÷àåò, ÷òî âàì íå íóæíî îáñóæäàòü êàæäóþ ìåëî÷ü ïðîñòî ïîòîìó, ÷òî âû çíàåòå î íåé äîñòàòî÷íî ìíîãî. Íåêîòîðûå ëþäè îòìå÷àþò, ÷òî îáú¼ì øóìà, ãåíåðèðóåìûé ïðè ïîÿâëåíèè íåêîòîðîãî èçìåíåíèÿ, íàõîäèòñÿ â îáðàòíîé çàâèñèìîñòè îò ñëîæíîñòè ñàìîãî èçìåíåíèÿ. Áîëåå ïðîñòðàííûé è ïîëíûé îòâåò çàêëþ÷àåòñÿ â òîì, ÷òî ïîñëå î÷åíü äîëãîãî îáñóæäåíèÿ òîãî, äîëæíà ëè óòèëèòà sleep(1) îáðàáàòûâàòü äðîáíîå ÷èñëî, çàäàííîå â êà÷åñòâå âòîðîãî àðãóìåíòà, Poul-Henning Kamp îïóáëèêîâàë áîëüøîå ñîîáùåíèå, îçàãëàâëåííîå ” Âåëîñèïåäíàÿ ôàðà (ëþáîãî öâåòà) íà çåë¼íîé òðàâå...
(http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=506636+517178+/usr/local/www/db/text/1999/freebsdhackers/19991003.freebsd-hackers)”. Ñîîòâåòñòâóþùèå ÷àñòè ýòîãî ñîîáùåíèÿ öèòèðóþòñÿ íèæå. ”×òî òàì íàñ÷¼ò ýòîé âåëîñèïåäíîé ôàðû?” Êòî-òî èç âàñ ìåíÿ ñïðàøèâàë. Ýòî äîëãàÿ èñòîðèÿ, èëè æå ýòî ñòàðàÿ èñòîðèÿ, íî íà ñàìîì äåëå îíà êîðîòêà.  íà÷àëå 1960-õ ãîäîâ Ïàðêèíñîí (C. Northcote Parkinson) íàïèñàë êíèãó ”Çàêîí Ïàðêèíñîíà”, êîòîðàÿ ñîäåðæèò ìíîãî èíòåðåñíûõ âçãëÿäîâ íà ïðîöåññ óïðàâëåíèÿ.
[íåìíîãî âûäåðæåê èç êðàòêîãî ñîäåðæàíèÿ êíèãè]  êîíêðåòíîì ïðèìåðå ñ âåëîñèïåäíîé ôàðîé äðóãèì âàæíûì îáúåêòîì ÿâëÿåòñÿ àòîìíàÿ ýëåêòðîñòàíöèÿ. ß ïîëàãàþ, ÷òî ýòî èëëþñòðèðóåò äðåâíîñòü êíèãè. Ïàðêèíñîí ïîêàçàë, ÷òî âû ìîæåòå ïðèéòè íà ñîâåùàíèå ðóêîâîäèòåëåé è ïîëó÷èòü äîáðî íà ñòðîèòåëüñòâî ìíîãîìèëëèîííîé èëè äàæå ìíîãîìèëëèàðäíîé àòîìíîé ýëåêòðîñòàíöèè, íî åñëè âû õîòèòå ïîëó÷èòü ôèíàíñèðîâàíèå ïðîèçâîäñòâà âåëîñèïåäíûõ ôàð, òî ïîãðÿçíåòå â áåñêîíå÷íûõ îáñóæäåíèÿõ. Ïàðêèíñîí îáúÿñíÿåò ýòî òåì, ÷òî àòîìíàÿ ñòàíöèÿ íàñòîëüêî áîëüøîé, äîðîãîé è ñëîæíûé îáúåêò, ÷òî ëþäè íå ìîãóò åãî îñîçíàòü è âìåñòî òîãî, ÷òîáû ïîïðîáîâàòü ýòî ñäåëàòü, îíè ïîëàãàþòñÿ íà òî, ÷òî êòî-òî óæå ïðîâåðèë âñå ìåëî÷è äî òîãî, êàê âñ¼ çàøëî òàê äàëåêî.  ñâîåé êíèãå Ðè÷àðä Ï. Ôåéíìàíí (Richard P. Feynmann) äà¼ò íåñêîëüêî èíòåðåñíûõ è î÷åíü ïîó÷èòåëüíûõ ïðèìåðîâ, ñâÿçàííûõ ñ Ëîñ Àëàìîñ. Âåëîñèïåäíàÿ ôàðà - ýòî ïðîòèâîïîëîæíûé ñëó÷àé. Ëþáîé ìîæåò ñäåëàòü ôàðó çà îäèí óèêýíä, è ó íåãî åù¼ îñòàíåòñÿ âðåìÿ ïîñìîòðåòü ôóòáîë ïî òåëåâèçîðó. Òàê ÷òî íå âàæíî, íàñêîëüêî õîðîøî âû ãîòîâèëèñü ê îáñóæäåíèþ, íàñêîëüêî óáåäèòåëüíû áóäóò âàøè àðãóìåíòû, êòî-íèáóäü âîñïîëüçóåòñÿ øàíñîì ïîêàçàòü, ÷òî îí íå çðÿ åñò ñâîé õëåá, ÷òî îí îáðàùàåò âíèìàíèå, ÷òî îí çäåñü .  Äàíèè ýòî íàçûâàåòñÿ ”îñòàâèòü îòïå÷àòîê ñâîåãî ïàëüöà”. Ýòî êàñàåòñÿ ëè÷íîé ãîðäîñòè è ïðåñòèæà, ýòî ïîõîæå íà âîçìîæíîñòü óêàçàòü êóäà-òî è ñêàçàòü: ” Âîí òàì! Ýòî ñäåëàë ÿ .” Ýòî ñèëüíî âûðàæåíî â ïîëèòèêàõ, íî ïðèñóòñòâóåò âî ìíîãèõ ëþäÿõ, êîòîðûå ïîëó÷àþò âîçìîæíîñòü ñäåëàòü ýòî. Ïðîñòî âñïîìíèòå îá îòïå÷àòêàõ íîã âî âëàæíîì öåìåíòå. —Poul-Henning Kamp on freebsd-hackers, October 2, 1999
128
Ãëàâà 17. Þìîð îò FreeBSD 1. Íàñêîëüêî ãðååòñÿ ïðîöåññîð ïðè ðàáîòå FreeBSD? Â. Êòî-íèáóäü äåëàë çàìåðû òåìïåðàòóðû ïðè ðàáîòå FreeBSD? ß çíàþ, ÷òî Linux ãðååòñÿ ìåíüøå, ÷åì DOS, íî íèêîãäà íå âèäåë óïîìèíàíèÿ FreeBSD. Íàâåðíîå, îí ñèëüíî ãðååòñÿ. Î. Íåò, íî ìû ñäåëàëè ðàçëè÷íûå âêóñîâûå òåñòû ó äîáðîâîëüöåâ ñ çàâÿçàííûìè ãëàçàìè, êîòîðûå äî ýòîãî ïðèíÿëè ïî 250 ìèêðîãðàìì LSD-25. 35% äîáðîâîëüöåâ çàÿâèëî, ÷òî FreeBSD èìååò âêóñ àïåëüñèíà, òîãäà êàê âêóñ Linux ðàñöåíèâàëñÿ êàê ôèîëåòîâûé òóìàí. Íè îäíà èç ãðóïï íå îòìåòèëà çíà÷èòåëüíîé ðàçíèöû â òåìïåðàòóðå. Ìû õîòåëè îïóáëèêîâàòü ïîëíûå ðåçóëüòàòû ýòîãî îïðîñà, êîãäà îáíàðóæèëè, ÷òî ñëèøêîì ìíîãî äîáðîâîëüöåâ ïîêèíóëè ïîìåùåíèå âî âðåìÿ òåñòîâ, ÷òî íåñêîëüêî ñìàçàëî ðåçóëüòàòû. Äóìàåì, ÷òî áîëüøèíñòâî èç íèõ ðàáîòàþò ñåé÷àñ â Apple íàä èõ íîâûì GUI ”÷åøè è íþõàé”. Ýòî ñòàðûé äîáðûé áèçíåñ! Ñåðü¼çíî, è FreeBSD, è Linux èñïîëüçóþò èíñòðóêöèþ HLT (halt), êîãäà ñèñòåìà ïðîñòàèâàåò, ÷òî óìåíüøàåò ïîòðåáëåíèå ýíåðãèè è â ñâîþ î÷åðåäü, âûäåëåíèå òåïëà. Âäîáàâîê, åñëè ó âàñ íàñòðîåí APM (êîìïëåêñíîå óïðàâëåíèå ýíåðãîïîòðåáëåíèåì), òî FreeBSD ìîæåò ïåðåâîäèòü ïðîöåññîð â ðåæèì ïîíèæåííîãî ýíåðãîïîòðåáëåíèÿ.
2. Êòî òàì ñêðåá¼òñÿ â ìèêðîñõåìàõ ïàìÿòè?? Â. Äåëàåò ëè FreeBSD ÷òî-íèáóäü ”ýäàêîå” ïðè êîìïèëÿöèè ÿäðà, ÷òî âûçûâàåò ïîñêðèïûâàíèå ìèêðîñõåì ïàìÿòè? Ïðè êîìïèëÿöèè (è â êîðîòêèé ïðîìåæóòîê âðåìåíè ïîñëå îáíàðóæåíèÿ äèñêîâîäà ïðè ñòàðòå ñèñòåìû) îò ìèêðîñõåì ïàìÿòè èñõîäèò ñòðàííûé öàðàïàþùèé çâóê. Î. Äà! Âû, íàâåðíîå, âèäåëè ÷àñòîå óïîìèíàíèå ”äàåìîíîâ” â äîêóìåíòàöèè ïî BSD, íî íå ìíîãèå çíàþò, ÷òî ýòî íàñòîÿùèå íåìàòåðèàëüíûå ñóùåñòâà, êîòîðûå òåïåðü çàâëàäåëè âàøèì êîìïüþòåðîì. Öàðàïàþùèé çâóê, èçäàâàåìûé ìèêðîñõåìàìè ïàìÿòè - ýòî íà ñàìîì äåëå âûñîêî÷àñòîòíîå ïåðåø¼ïòûâàíèå ìåæäó äàåìîíàìè, êîãäà îíè ðåøàþò, êàê ëó÷øå ñïðàâèòüñÿ ñ ðàçëè÷íûìè çàäà÷àìè ïî àäìèíèñòðèðîâàíèþ ñèñòåìû. Åñëè øóì äîñòèã âàøèõ óøåé, êîìàíäà DOS fdisk /mbr èõ ñïóãí¼ò, íî íå óäèâëÿéòåñü, åñëè îíè îòðåàãèðóþò ñîîòâåòñòâóþùèì îáðàçîì è ïîïûòàþòñÿ âàñ îñòàíîâèòü. Ôàêòè÷åñêè, åñëè âî âðåìÿ âûïîëíåíèÿ ýòîé êîìàíäû âû óñëûøèòå ñàòàíèíñêèé ãîëîñ Áèëëà Ãåéòñà èç âñòðîåííîãî äèíàìèêà, áåãèòå è äàæå íå îãëÿäûâàéòåñü! Èçáàâëåííûå îò ïðîòèâîñòîÿíèÿ ñ äàåìîíàìè BSD, áëèçíåöû-äåìîíû DOS è Windows ÷àñòî ìîãóò çàõâàòèòü ïîëíûé êîíòðîëü íå òîëüêî íàä âàøåé ìàøèíîé è íàâëå÷ü âå÷íîå ïðîêëÿòèå íà âàøó äóøó. Òåïåðü, êîãäà âû ýòî çíàåòå, åñëè áû ó âàñ áûë âûáîð, äóìàåì, ÷òî âû áû ïðåäïî÷ëè ñëûøàòü öàðàïàþùèé çâóê, íå òàê ëè?
3. Ñêîëüêî òðåáóåòñÿ ðàçðàáîò÷èêîâ FreeBSD, ÷òîáû ñìåíèòü ýëåêòðè÷åñêóþ ëàìïî÷êó? Íåîáõîäèìî èìåòü ðîâíî îäíó òûñÿ÷ó ñòî øåñòüäåñÿò äåâÿòü ðàçðàáîò÷èêîâ: Äâàäöàòü òðè ñîîáùàò â -CURRENT î òîì, ÷òî íå ãîðèò ñâåò; ×åòûðå íà÷íóò óòâåðæäàòü, ÷òî ýòî ïðîáëåìà êîíôèãóðàöèè è òàêèå ñîîáùåíèÿ íóæíî ïîñûëàòü â
-questions;
129
Ãëàâà 17. Þìîð îò FreeBSD
Òðîå îôîðìÿò PR ïî ýòîìó ïîâîäó, ïðè÷¼ì îäíî èõ íèõ áóäåò íàïðàâëåíî â doc è áóäåò ñîäåðæàòü òîëüêî ñòðî÷êó ”çäåñü òåìíî”; Îäèí çàêîììèòèò íåîòòåñòèðîâàííóþ ëàìïî÷êó, ÷òî ñëîìàåò ïîñòðîåíèå ñèñòåìû, à çàòåì ÷åðåç ïÿòü ìèíóò âåðí¼ò âñ¼ íàçàä; Âîñåìü ïîðóãàþòñÿ ñ àâòîðàìè PR ïî ïîâîäó âêëþ÷åíèÿ ïàò÷åé â PR; Ïÿòü ñîîáùàò î òîì, ÷òî íå ïðîõîäèò êîìïèëÿöèÿ ñèñòåìû; Òðèäöàòü îäèí ÷åëîâåê îòâåòèò, ÷òî ó íèõ âñ¼ ðàáîòàåò è íàâåðíîå, òå âûïîëíÿëè cvsup â íåïîäõîäÿùåå âðåìÿ; Îäèí ïîøë¼ò ïàò÷ äëÿ íîâîé ëàìïî÷êè â -hackers; Îäèí ïîæàëóåòñÿ, ÷òî ó íåãî èìåëèñü ïàò÷èêè åù¼ òðè ãîäà íàçàä, íî êîãäà îí ïîñëàë èõ â -CURRENT, îíè áûëè ïðîèãíîðèðîâàíû è îí èìåë íåóäà÷íûé îïûò ðàáîòû ñ ñèñòåìîé PR; êðîìå òîãî ïðåäëàãàåìàÿ ëàìïî÷êà íå èìååò îòðàæàòåëÿ. Òðèäöàòü ñåìü íà÷íóò êðè÷àòü, ÷òî ëàìïî÷êè íå îòíîñÿòñÿ ê áàçîâîé ñèñòåìå, ÷òî êîììèòòåðû íå èìåþò ïðàâà äåëàòü òàêèå âåùè áåç îïðîñà îáùåñòâåííîñòè è ×ÒÎ ÂÎÎÁÙÅ -CORE ÄÅËÀÅÒ ÏÎ ÝÒÎÌÓ ÏÎÂÎÄÓ? Äâå ñîòíè íàïèøóò î öâåòå âåëîñèïåäíûõ ôàð; Òðîå ñêàæóò, ÷òî ýòîò ïàò÷ íå ñîîòâåòñòâóåò style(9) Ñåìíàäöàòü âîçðàçÿò, ÷òî ïðåäëàãàåìàÿ íîâàÿ ëàìïà ïîäïàäàåò ïîä ëèöåíçèþ GPL; Ïÿòüñîò âîñåìüäåñÿò øåñòü ðàçäóþò ôëåéì ïî ïîâîäó ñðàâíåíèÿ ëèöåíçèé GPL, BSD, MIT, NPL è ëè÷íûõ ìíåíèé î íåèçâåñòíûõ îñíîâàòåëåé FSF; Ñåìåðî ïîøëþò ðàçëè÷íûå ÷àñòè ýòèõ îáñóæäåíèé â -chat è -advocacy; Îäèí çàêîììèòèò ïðåäëàãàåìóþ ëàìïó, õîòÿ îíà ñâåòèò õóæå, ÷åì ñòàðàÿ; Äâîå îòêàòÿò ýòè èçìåíåíèÿ ñ óæàñíîé ðóãàíüþ â æóðíàëå êîììèòà î òîì, ÷òî ëó÷øå FreeBSD áóäåò ñèäåòü â òåìíîòå, ÷åì ñ òóñêëîé ëàìïîé. Ñîðîê øåñòü ãðîìêî âîñïðîòèâÿòñÿ ýòîìó èçìåíåíèþ è ïîòðåáóþò îáúÿñíåíèé îò -core; Îäèííàäöàòü ïîïðîñÿò óìåíüøèòü ðàçìåð ëàìïî÷êè, ÷òîáû îíà ïîäîøëà ê èõ Òàìàãî÷è íà ñëó÷àé, åñëè ìû êîãäà-íèáóäü ñîáåð¼ìñÿ ïåðåíîñèòü FreeBSD íà ýòó ïëàòôîðìó; Ñåìüäåñÿò òðè çàÿâÿò î SNR â -hackers è -chat è â çíàê ïðîòåñòà îòïèøóòñÿ; Òðèíàäöàòü ïîøëþò ïèñüìà ”unsubscribe”, ”How do I unsubscribe?” èëè ”Please remove me from the list” ñ îáû÷íîé ïîäïèñüþ; Îäèí çàêîììèòèò ðàáîòàþùóþ ëàìïî÷êó â òî âðåìÿ, êàê âñå áóäóò ñëèøêîì çàíÿòû ðóãàíüþ, ÷òîáû ýòî çàìåòèòü; Òðèäöàòü îäèí ÷åëîâåê íàïèøåò, ÷òî íîâàÿ ëàìïî÷êà áóäåò ñâåòèòü íà 0.364% ÿð÷å, åñëè å¼ îòêîìïèëèðîâàòü ñ ïîìîùüþ TenDRA (õîòÿ ïðè ýòîì îíà ïðèîáðåò¼ò ôîðìó êóáà) è ÷òî FreeBSD äîëæíà ïåðåéòè íà êîìïèëÿòîð TenDRA, à íå íà GCC; Îäèí çàìåòèò, ÷òî ó ëàìïî÷êè îòñóòñòâóåò öîêîëü; Äåâÿòü (âêëþ÷àÿ àâòîðîâ PR) ñïðîñÿò ”÷òî òàêîå MFC?”; Ñïóñòÿ äâå íåäåëè ïîñëå ñìåíû ëàìïî÷êè ïÿòüäåñÿò ñåìü ÷åëîâåê ñîîáùàò î òîì, ÷òî ñâåòà âñ¼ ðàâíî íåò.
130
Ãëàâà 17. Þìîð îò FreeBSD
Nik Clayton äîáàâèë: ß ñèëüíî ñìåÿëñÿ íàä âñåì ýòèì. È òîãäà ÿ ïîäóìàë, ”Ïîñòîéòå-êà, íàéä¼òñÿ ëè êòî-íèáóäü, ÷òîáû çàäîêóìåíòèðîâàòü ýòî?” È íà ìåíÿ ñíèçîøëî îçàðåíèå :-)
4. Êóäà íàïðàâëÿþòñÿ äàííûå, çàïèñûâàåìûå â /dev/null? Îíè îòïðàâëÿþòñÿ â ñïåöèàëüíóþ ñòî÷íóþ òðóáó äëÿ äàííûõ â CPU, ãäå ïðåîáðàçóþòñÿ â òåïëî, âûäóâàåìîå ÷åðåç îõëàæäàþùèå âåíòèëÿòîðû. Âîò ïî÷åìó îõëàæäåíèå ÖÏ ñòàíîâèòñÿ âñå áîëåå âàæíûì; òàê êàê ëþäè èñïîëüçóþò âñå áîëåå áûñòðûå ïðîöåññîðû, îíè âñå ìåíåå çàáîòÿòñÿ î äàííûõ, âñå áîëüøåå èõ êîëè÷åñòâî îêàí÷èâàåò ñâîé ïóòü â /dev/null, ïåðåãðåâàÿ ÖÏ. Åñëè âû óäàëèòå /dev/null (÷òî ñîîòâåòñòâåííî îòêëþ÷èò òðóáó äàííûõ â ÖÏ), òî âàø ïðîöåññîð ìîæåò îõëàäèòüñÿ, íî ñèñòåìà íà÷íåò ïåðåïîëíÿòüñÿ èçëèøíèìè äàííûìè è íà÷íåò ðàáîòàòü ñ îøèáêàìè. Åñëè ó âàñ áûñòðîå ñåòåâîå ïîäêëþ÷åíèå, âû ìîæåòå îõëàäèòü CPU, ÷èòàÿ äàííûå èç /dev/random è ïîñûëàÿ èõ êóäà-íèáóäü; îäíàêî âû ðèñêóåòå ïåðåãðåòü âàøå ñåòåâîå ñîåäèíåíèå è / èëè ðàçîçëèòü âàøåãî ïðîâàéäåðà, òàê êàê áîëüøèíñòâî äàííûõ ïðåîáðàçóåòñÿ â òåïëî íà åãî îáîðóäîâàíèè, íî, êàê ïðàâèëî, ó íåãî õîðîøåå îõëàæäåíèå, òàê ÷òî åñëè âû íå ïåðåñòàðàåòåñü, âñå äîëæíî áûòü â ïîðÿäêå. Ïîë Ðîáèíñîí (Paul Robinson) äîáàâëÿåò:
Åñòü è äðóãèå ìåòîäû. Êàê çíàåò êàæäûé õîðîøèé ñèñòåìíûé àäìèíèñòðàòîð, ÷àñòüþ õîðîøåé ïðàêòèêè ÿâëÿåòñÿ ïîñûëêà äàííûõ íà ýêðàí èíòåðåñíûì îáðàçîì, ÷òîáû ôåè, êîòîðûå îáðàçóþò êàðòèíêó, áûëè ñ÷àñòëèâû. Ýêðàííûå ôåè (÷àñòî íåïðàâèëüíî íàçûâàåìûå ’ïèêñåëàìè’) ðàçëè÷àþòñÿ ïî òèïó ãîëîâíûõ óáîðîâ, êîòîðûå îíè íîñÿò (êðàñíûå, çåëåíûå èëè ñèíèå), è ïðÿ÷óòñÿ èëè ïîÿâëÿþòñÿ (ïîêàçûâàÿ, òàêèì îáðàçîì, öâåò ñâîèõ øëÿï), êîãäà ïîëó÷àþò íåìíîãî ïèùè. Âèäåîàäàïòåðû ïðåîáðàçóþò äàííûå â åäó äëÿ ôåé, à çàòåì ïîñûëàþò åå ôåÿì - ÷åì äîðîæå àäàïòåð, òåì ëó÷øå åäà, òåì ëó÷øå âåäóò ñåáÿ ôåè. Îíè òàêæå íóæäàþòñÿ â ïîñòîÿííîé ñòèìóëÿöèè - âîò çà÷åì íóæíû õðàíèòåëè ýêðàíîâ. Ïðîäîëæèâ íàøå ïðåäïîëîæåíèå, âû ìîæåòå ïðîñòî âûäàâàòü ñëó÷àéíûå äàííûå íà êîíñîëü, òàêèì îáðàçîì ïîçâîëÿÿ ôåÿì èõ ïîòðåáëÿòü. Ýòî âîâñå ïðèâîäèò ê ïðåêðàùåíèþ âûäåëåíèÿ òåïëà, ôåè ïîñòîÿííî ñ÷àñòëèâû, à äàííûå áûñòðî èñ÷åçàþò, äàæå åñëè íà âàøåì ýêðàíå âñå âûãëÿäèò íåñêîëüêî õàîòè÷íî. Êàê áûâøèé àäìèíèñòðàòîð êðóïíîãî ïðîâàéäåðà, êîòîðûé èìåë ìíîãî ïðîáëåì ïðè ïîïûòêå ïîääåðæèâàòü ïîñòîÿííóþ òåìïåðàòóðó â ñåðâåðíîé êîìíàòå, ÿ âûñòóïàþ ïðîòèâ òîãî, ÷òîáû ëþäè ïîñûëàëè íåíóæíûå èì äàííûå â ñåòü. Âîëøåáíèêîâ, êîòîðûå âûïîëíÿþò êîììóòàöèþ ïàêåòîâ è ìàðøðóòèçàöèþ, ýòî òàêæå çàòðóäíÿåò.
131
Ãëàâà 18. Ñëîæíûå òåìû 1. Êàê ìîæíî óçíàòü áîëüøå î âíóòðåííåì óñòðîéñòâå FreeBSD?  íàñòîÿùåå âðåìÿ íåò êíèãè ïî âíóòðåííåìó óñòðîéñòâó ÎÑ, ñïåöèôè÷íîìó äëÿ FreeBSD. Îäíàêî áîëüøèíñòâî îáùèõ ïðåäñòàâëåíèé î UNIX íåïîñðåäñòâåííî ïðèìåíèìî ê FreeBSD. Êðîìå òîãî, íåò êíèã, ñïåöèôè÷íûõ äëÿ BSD, êîòîðûå åù¼ àêòóàëüíû. Ñïèñîê ìîæíî íàéòè â ðàçäåëå Ðóêîâîäñòâà Áèáëèîãðàôèÿ ïî âíóòðåííåìó óñòðîéñòâó îïåðàöèîííîé ñèñòåìû (../handbook/bibliography-osinternals.html).
2. Êàê ìîæíî îêàçàòü ïîìîùü ïðîåêòó FreeBSD? Ïîæàëóéñòà, îáðàòèòåñü ê ñîîòâåòñòâóþùåé ñòàòüå (../../articles/contributing/article.html), â êîòîðîé âû ïîëó÷èòå ñîâåòû îòíîñèòåëüíî òîãî, êàê ýòî ñäåëàòü. Âàøà ïîìîùü áîëåå ÷åì ïðèâåòñòâóåòñÿ!
3. ×òî òàêîå SNAP è RELEASE?  Õðàíèëèùå CVS (http://www.FreeBSD.org/cgi/cvsweb.cgi) ñåé÷àñ íàõîäÿòñÿ òðè àêòèâíî/ïîëóàêòèâíî ðàçâèâàþùèõñÿ âåòêè FreeBSD. (Áîëåå ðàííèå âåòêè èçìåíÿþòñÿ î÷åíü ðåäêî, èìåííî ïîýòîìó â ðàçðàáîòêå òîëüêî òðè àêòèâíûõ âåòêè): • RELENG_3
AKA 3.X-STABLE
• RELENG_4
AKA 4-STABLE
• HEAD
AKA -CURRENT AKA 5.X-CURRENT
HEAD - ýòî íå ðåàëüíûé òýã âåòêè, êàê äðóãèå äâà; ýòî ïðîñòî ñèìâîëüíàÿ êîíñòàíòà äëÿ îáîçíà÷åíèÿ ”òåêóùåãî, íå âåòâÿùåãîñÿ, íàõîäÿùåãîñÿ â ðàçðàáîòêå äåðåâà ”, òî åñòü ”-CURRENT”. Íà äàííûé ìîìåíò ”-CURRENT” ÿâëÿåòñÿ íàõîäÿùèìñÿ â ðàçðàáîòêå äåðåâîì 5.X, âåòêà 4-STABLE, RELENG_4, îòäåëèëàñü îò ”-CURRENT” â ìàðòå 2000 ãîäà.
4. Êàê ñàìîìó ñäåëàòü ðåëèç? Ïîæàëóéñòà, îáðàòèòåñü ê ñòàòüå î ïðîöåññå âûïóñêà ðåëèçîâ (../../articles/releng/article.html).
5. Ïî êîìàíäå make world áûëè ïåðåóñòàíîâëåíû âñå ïðîãðàììû. Äà, òàê è äîëæíî áûòü; êàê ãîâîðèò íàçâàíèå ýòîé êîìàíäû, make world âûïîëíÿåò ïîñòðîåíèå âñåõ ñèñòåìíûõ ôàéëîâ ñ íóëÿ, òàê ÷òî â èòîãå ìîæåòå áûòü óâåðåíû, ÷òî ïîëó÷èòå ÷èñòóþ ðàáî÷óþ ñèñòåìó (âîò ïî÷åìó ýòî çàíèìàåò ñòîëüêî âðåìåíè). Åñëè â ìîìåíò çàïóñêà êîìàíä make world èëè make install îïðåäåëåíà ïåðåìåííàÿ îêðóæåíèÿ DESTDIR, òî âíîâü ñîçäàâàåìûå ôàéëû áóäóò ïîìåùåíû â äåðåâî êàòàëîãîâ. èäåíòè÷íîå ñóùåñòâóþùåìó, ñ êîðíåì, ðàñïîëàãàþùèìñÿ â ${DESTDIR}. Îäíàêî íåêîòîðûå ñëó÷àéíûå êîìáèíàöèè ìîäèôèêàöèé ñîâìåñòíî èñïîëüçóåìûõ áèáëèîòåê è âåðñèé êîìïèëèðóåìûõ ïðîãðàìì ïðè èñïîëíåíèè êîìàíäû make world, ìîãóò ýòîìó ïîìåøàòü.
132
Ãëàâà 18. Ñëîæíûå òåìû
6. Ïî÷åìó cvsup.FreeBSD.org íå ÿâëÿåòñÿ îäíîé DNS-çàïèñüþ äëÿ íåñêîëüêèõ ìàøèí, ÷òîáû ðàñïðåäåëèòü íàãðóçêó ìåæäó íåñêîëüêèìè CVSup-ñåðâåðàìè? Õîòÿ çåðêàëà CVSup îáíîâëÿþòñÿ ñ îñíîâíîãî CVSup-ñåðâåðà êàæäûé ÷àñ, ýòî îáíîâëåíèå ìîæåò ïðîèñõîäèòü â ëþáîé ìîìåíò â òå÷åíèå ÷àñà. Ýòî çíà÷èò, ÷òî íåêîòîðûå ñåðâåðû áóäóò èìåòü áîëåå íîâûé êîä, ÷åì îñòàëüíûå, õîòÿ ðàçíèöà ìåæäó âåðñèÿìè êîäà íå ïðåâûøàåò ÷àñà. Åñëè áû äëÿ ñåðâåðîâ cvsup.FreeBSD.org èñïîëüçîâàëàñü îäíà DNS-çàïèñü, òî ïðîñòîå ïåðåíàïðàâëåíèå ïîëüçîâàòåëåé íà ñëó÷àéíî âûáðàííûé ñåðâåð CVSup, ïðè óñëîâèè, ÷òî CVSup áóäåò çàïóñêàòüñÿ äâà ðàçà ïîäðÿä, ìîæåò ïðèâåñòè ê ñãðóçêå êîäà, áîëåå ñòàðîãî, ÷åì òîò, ÷òî ïðèñóòñòâóåò â ñèñòåìå.
7. Ïî÷åìó ïðè çàãðóçêå ñèñòåìû âûäà¼òñÿ ñîîáùåíèå ”(bus speed defaulted)?”. Àäàïòåðû SCSI Adaptec 1542 ïîçâîëÿþò ïðîãðàììíî èçìåíÿòü ñêîðîñòü äîñòóïà ê øèíå. Ïðåäûäóùèå âåðñèè äðàéâåðà 1542 ïûòàëèñü îïðåäåëèòü ìàêñèìàëüíî âîçìîæíóþ ñêîðîñòü ðàáîòû è óñòàíîâèòü ýòî çíà÷åíèå. Ìû îáíàðóæèëè, ÷òî ó íåêîòîðûõ ïîëüçîâàòåëåé ýòî ïðèâîäèëî ê íàðóøåíèþ ðàáîòîñïîñîáíîñòè ñèñòåìû, ïîýòîìó ýòà âîçìîæíîñòü ñåé÷àñ âûíåñåíà â ïàðàìåòð êîíôèãóðàöèè ÿäðà TUNE_1542. Èñïîëüçîâàíèå ýòîé îïöèè íà òåõ ñèñòåìàõ, ãäå îíà ðàáîòàåò, ìîæåò ïðèâåñòè ê óñêîðåíèþ äîñòóïà ê äèñêàì, à òàì, ãäå ýòî íå ðàáîòàåò, ìîæåò ïðèâåñòè ê ïîòåðå äàííûõ.
8. Ìîæíî ëè ðàáîòàòü ñ -CURRENT ïðè îãðàíè÷åííîì äîñòóïå â Internet? Äà, ýòî ìîæíî äåëàòü áåç ñêà÷èâàíèÿ ïîëíîãî äåðåâà èñõîäíûõ òåêñòîâ ñ ïîìîùüþ ñèñòåìû CTM
(../handbook/synching.html#CTM). 9. Êàê âû ðàçäåëÿåòå äèñòðèáóòèâ íà ôàéëû ïî 240Ê? Êîìàíäà split(1) â ñîâðåìåííûõ BSD-ñèñòåìàõ èìååò îïöèþ -b, ïîçâîëÿþùóþ ðàçðåçàòü ôàéëû íà ÷àñòè ñ òî÷íîñòüþ äî áàéòà. Âîò ïðèìåð èç ôàéëà /usr/src/Makefile.
bin-tarball: (cd ${DISTDIR}; \ tar cf - . \ gzip --no-name -9 -c | \ split -b 240640 - \ ${RELEASEDIR}/tarballs/bindist/bin_tgz.)
10. ß íàïèñàë íåêîòîðîå äîáàâëåíèå ê ÿäðó, êîìó åãî ïîñëàòü? Îáðàòèòåñü ê ñòàòüå î òîì, êàê ïîìî÷ü ïðîåêòó FreeBSD (../../articles/contributing/article.html), ÷òîáû âûÿñíèòü, êàê ýòî ñäåëàòü. È ñïàñèáî Âàì çà Âàøè óñèëèÿ!
11. Êàê ðàñïîçíàþòñÿ è èíèöèàëèçèðóþòñÿ àäàïòåðû ISA Plug N Play? Îò: Ôðýíêà Äóðäû IV (Frank Durda IV) Åñëè ðàññìàòðèâàòü íà ñàìîì íèçêîì óðîâíå, òî ñóùåñòâóåò íåñêîëüêî ïîðòîâ ââîäà/âûâîäà, â êîòîðûå äîëæíû âûâîäèòü èíôîðìàöèþ âñå àäàïòåðû PnP, êîãäà êîìïüþòåð ïûòàåòñÿ âûïîëíèòü çàïðîñ î
133
Ãëàâà 18. Ñëîæíûå òåìû
íàëè÷èè óñòàíîâëåííûõ àäàïòåðîâ. Òàê ÷òî, êîãäà çàïóñêàåòñÿ ïðîöåäóðà îïðåäåëåíèÿ àäàïòåðîâ PnP, îíà âûïîëíÿåò çàïðîñ î íàëè÷èè êàêèõ-ëèáî àäàïòåðîâ PnP, à âñå òàêèå àäàïòåðû âûäàþò ñâîé íîìåð ìîäåëè ïðè ÷òåíèè òîãî æå ïîðòà ââîäà/âûâîäà, ïîýòîìó ïðîöåäóðà îïðåäåëåíèÿ ïîëó÷èò îòâåò íà ñâîé çàïðîñ, ñîñòîÿùèé èç ëîãè÷åñêè íàëîæåííûõ íîìåðîâ ìîäåëåé, èíòåðïðåòèðóåìûé êàê ”äà”.  ýòîì îòâåòå ïî êðàéíåé ìåðå îäèí áèò áóäåò óñòàíîâëåí â åäèíèöó. Çàòåì êîä îïðåäåëåíèÿ àäàïòåðîâ ìîæåò ”âûêëþ÷àòü” àäàïòåðû ñ ID (íàçíà÷àåìûìè Microsoft/Intel), áîëüøèìè, ÷åì X. Ïîòîì ñëåäóåò ïîïûòêà îïðåäåëèòü, îñòàëèñü ëè åù¼ àäàïòåðû, îòâå÷àþùèå íà çàïðîñ. Åñëè îòâåò 0, òî àäàïòåðîâ ñ ID, áîëüøèìè ÷åì X, íåò. Ïîñëå ýòîãî äåëàåòñÿ ïîïûòêà îïðåäåëèòü íàëè÷èå àäàïòåðîâ ñ íîìåðàìè, ìåíüøèìè ÷åì X. Åñëè îíè åñòü, òî ñòàíîâèòñÿ èçâåñòíî, ÷òî åñòü àäàïòåðû ñ íîìåðàìè, ìåíüøèìè, ÷åì X. Òîãäà ïðîèñõîäèò çàïðîñ àäàïòåðàì, áîëüøèì ÷åì X-(limit-4), íà âûêëþ÷åíèå. Çàïðîñ ïîâòîðÿåòñÿ. Ïðèìåíèâ ýòîò ìåòîä ïîëóäâîè÷íîãî ïîèñêà ãðàíèö ðàñïîëîæåíèÿ ID äîñòàòî÷íîå êîëè÷åñòâî ðàç, êîä èäåíòèôèêàöèè íàéä¼ò âñå àäàïòåðû PnP, óñòàíîâëåííûå â äàííîé ìàøèíå çà ÷èñëî èòåðàöèé, ãîðàçäî ìåíüøåå, ÷åì ìîæåò çàíÿòü ïåðåáîð 2^64 âîçìîæíûõ âàðèàíòîâ ID.
ID ïðåäñòàâëÿåò ñîáîé äâà 32-ðàçðÿäíûå ÷èñëà (âñåãî èõ 2^64) + 8 áèò êîíòðîëüíîé ñóììû. Ïåðâûå 32 áèòà ÿâëÿþòñÿ èäåíòèôèêàòîðîì ïðîèçâîäèòåëÿ. Îíè íèêîãäà íå ñîîáùàþòñÿ, îäíàêî ÷àñòî áûâàåò, ÷òî ðàçëè÷íûå òèïû àäàïòåðîâ îò îäíîãî è òîãî æå ïðîèçâîäèòåëÿ èìåþò ðàçëè÷íûå 32-áèòíûå çíà÷åíèÿ èäåíòèôèêàòîðà ïðîèçâîäèòåëÿ. Íåîáõîäèìîñòü â 32 ðàçðÿäàõ òîëüêî äëÿ çàäàíèÿ ïðîèçâîäèòåëÿ àäàïòåðà âûãëÿäèò íåñêîëüêî èçëèøíèì. Îñòàâøèåñÿ 32 áèòà ÿâëÿþòñÿ ñåðèéíûì íîìåðîì, Ethernet-àäðåñîì, ÷åì-ëèáî, äåëàþùèì ýòîò àäàïòåð óíèêàëüíûì. Ïðîèçâîäèòåëü íå äîëæåí âûïóñêàòü äðóãèõ àäàïòåðîâ, èìåþùèõ òî æå ñàìîå çíà÷åíèå ýòèõ áèòîâ, åñëè, êîíå÷íî, ó íèõ íå ðàçíûå èäåíòèôèêàòîðû ïðîèçâîäèòåëÿ. Òàêèì îáðàçîì, âû ìîæåòå èìåòü íåñêîëüêî àäàïòåðîâ îäèíàêîâîãî òèïà, íî ñ ðàçëè÷íûìè 64-ðàçðÿäíûìè íîìåðàìè. Ãðóïïû ïî 32 áèòà íå ìîãóò áûòü íóëåâûìè. Ýòî ïîçâîëÿåò ïðè ëîãè÷åñêîì îáúåäèíåíèè OR èõ íîìåðîâ ïîëó÷àòü íåíóëåâîå çíà÷åíèå âî âðåìÿ íà÷àëüíîãî ïîèñêà àäàïòåðîâ. Êàê òîëüêî ñèñòåìà îïðåäåëèëà ID âñåõ àäàïòåðîâ, îíà àêòèâèçèðóåò êàæäûé àäàïòåð, ïî îäíîìó çà ðàç (÷åðåç òå æå ïîðòû ââîäà/âûâîäà), è îïðåäåëÿåò, êàêèå ðåñóðñû òðåáóþòñÿ äàííîìó àäàïòåðó, êàêèå âîçìîæíûå ïðåðûâàíèÿ äîñòóïíû è òä. Ñêàíèðîâàíèå è ñáîð èíôîðìàöèè ïðîèñõîäèò ïî âñåì àäàïòåðàì. Ýòà èíôîðìàöèÿ ñîîòíîñèòñÿ ñ ñîäåðæàùåéñÿ â ôàéëàõ ECU íà äèñêå èëè â MLB BIOS. Ïîääåðæêà PnP èç ECU è BIOS äëÿ àïïàðàòóðû íà MLB îáû÷íî èìååò ñèíòåòè÷åñêèé õàðàêòåð, è ïåðèôåðèÿ íå âûïîëíÿåò ïîëíîñòüþ ïðîöåäóðó íàñòîÿùåãî PnP. Îäíàêî, èñïîëüçóÿ BIOS è èíôîðìàöèþ èç ECU, ïðîöåäóðà èíèöèàëèçàöèè ìîæåò îáíàðóæèòü óñòðîéñòâà PnP, êîòîðûå íå ìîãóò áûòü íàéäåíû äðóãèì ñïîñîáîì. Çàòåì óñòðîéñòâà PnP îïðàøèâàþòñÿ åù¼ ðàç äëÿ íàçíà÷åíèÿ èì ïîðòîâ ââîäà/âûâîäà, DMA, IRQ è àäðåñîâ îòîáðàæàåìîé ïàìÿòè. Òåïåðü óñòðîéñòâà äîëæíû èìåòü èìåííî òàêèå íàñòðîéêè è îíè äîëæíû îñòàâàòüñÿ òàêèìè äî ñëåäóþùåé ïåðåçàãðóçêè, õîòÿ íèãäå íå ñêàçàíî, ÷òî âû íå ìîæåòå èõ ìåíÿòü, êîãäà çàõîòèòå. Çäåñü ñäåëàíî ìíîãî óïðîùåíèé, îäíàêî îáùóþ èäåþ âû äîëæíû óëîâèòü.
Microsoft èñïîëüçîâàëà äëÿ PnP íåêîòîðûå ïîðòû ñòàòóñà ïåðâîãî ïðèíòåðà, ïî èõ ëîãèêå, íå ñóùåñòâóåò àäàïòåðîâ, èñïîëüçóþùèõ ýòè àäðåñà äëÿ ââîäà/âûâîäà. ß îáíàðóæèë îäèí òàêîé àäàïòåð ïðèíòåðà îò IBM, êîòîðûé äåêîäèðóåò çàïèñü â ïîðò ñòàòóñà â ìîìåíò íà÷àëüíîãî îïðîñà óñòðîéñòâ PnP, íà ÷òî MS îòâåòèë ”õóëèãàí”. Òàê ÷òî îíè âûïîëíÿþò çàïèñü â ïîðò ñòàòóñà ïðèíòåðà äëÿ óñòàíîâêè àäðåñîâ, âäîáàâîê èñïîëüçóþò ýòîò àäðåñ + 0x800, è åù¼ îäèí ïîðò ââîäà/âûâîäà, êîòîðûé ìîæåò ðàñïîëàãàòüñÿ ãäå óãîäíî â äèàïàçîíå ìåæäó 0x200 è 0x3ff, äëÿ ÷òåíèÿ.
134
Ãëàâà 18. Ñëîæíûå òåìû
12. Ìíå íóæíî ñòàðøåå ÷èñëî äëÿ íàïèñàííîãî ìíîþ äðàéâåðà óñòðîéñòâà.  FreeBSD-CURRENT ïîñëå ôåâðàëÿ 2003 ãîäà ïîÿâèëñÿ ìåõàíèçì äèíàìè÷åñêîãî è àâòîìàòè÷åñêîãî âûäåëåíèÿ ñòàðøèõ íîìåðîâ äëÿ äðàéâåðîâ óñòðîéñòâ âî âðåìÿ âûïîëíåíèÿ. Ýòîò ìåõàíèçì ãîðàçäî áîëåå ïðåäïî÷òèòåëåí, ÷åì óñòàðåâøàÿ ïðîöåäóðà ñòàòè÷åñêîãî ðàñïðåäåëåíèÿ ñòàðøèõ íîìåðîâ óñòðîéñòâ. Íåêîòîðûå êîììåíòàðèè ïî ýòîìó ïîâîäó ìîæíî íàéòè â ôàéëå src/sys/conf/majors. Åñëè ïî êàêèì-òî ïðè÷èíàì âàì îáÿçàòåëüíî íóæíî èñïîëüçîâàòü ñòàòè÷åñêèå ñòàðøèå íîìåðà, òî ïðîöåññ èõ ïîëó÷åíèÿ çàâèñèò îò òîãî, ïëàíèðóåòå âû ñäåëàòü ýòîò äðàéâåð îáùåäîñòóïíûì èëè íåò. Åñëè ýòî òàê, òî, ïîæàëóéñòà, ïîøëèòå íàì êîïèþ èñõîäíûõ òåêñòîâ äðàéâåðà âìåñòå ñ ñîîòâåòñòâóþùèìè ìîäèôèêàöèÿìè â ôàéëå files.i386, ïðèìåð îïèñàíèÿ óñòðîéñòâà â ôàéëå êîíôèãóðàöèè ÿäðà è ñîîòâåòñòâóþùèé êîä MAKEDEV(8) äëÿ ñîçäàíèÿ ñïåöèàëüíûõ ôàéëîâ óñòðîéñòâ, êîòîðûå èñïîëüçóåò âàøå óñòðîéñòâî. Åñëè ýòî íå òàê. èëè ýòî íåâîçìîæíî èç-çà ëèöåíçèîííûõ îãðàíè÷åíèé, òî äëÿ ñòàðøåãî ÷èñëà ñèìâîëüíîãî óñòðîéñòâà è ñòàðøåãî ÷èñëà áëî÷íîãî óñòðîéñòâà äëÿ ýòèõ öåëåé áûëè çàðåçåðâèðîâàíû çíà÷åíèÿ 32 è 8 ñîîòâåòñòâåííî; èñïîëüçóéòå èõ.  ëþáîì ñëó÷àå. ìû áóäåì ðàäû óñëûøàòü î âàøåì äðàéâåðå â Ñïèñîê ðàññûëêè FreeBSD, ïîñâÿù¼ííûé òåõíè÷åñêèì äèñêóññèÿì (http://lists.FreeBSD.org/mailman/listinfo/freebsd-hackers).
13. Àëüòåðíàòèâíûé ìåòîä ðàçìåùåíèÿ êàòàëîãîâ  îòâåò íà âîïðîñ î äðóãèõ ìåòîäàõ ðàçìåùåíèÿ êàòàëîãîâ ìîãó ñêàçàòü, ÷òî èñïîëüçóåìàÿ â íàñòîÿùåå ñõåìà íå ïðåòåðïåëà èçìåíåíèé ñ 1983 ãîäà. Ýòè ñîãëàøåíèÿ áûëè ïðåäíàçíà÷åíû äëÿ îðèãèíàëüíîé ôàéëîâîé ñèñòåìû FFS, ÿ íèêîãäà èõ íå ïåðåñìàòðèâàë. Ýòà ñõåìà ïðåêðàñíî ðàáîòàåò, ïîçâîëÿÿ èçáåæàòü ïåðåïîëíåíèÿ ãðóïï äîðîæåê. Êàê íåêîòîðûå èç âàñ çàìå÷àëè, îíà ðàáîòàåò ïëîõî ïðè ïîèñêå. Áîëüøèíñòâî ôàéëîâûõ ñèñòåì ñîçäàþòñÿ èç àðõèâîâ, êîòîðûå áûëè ñîçäàíû ñ ãëóáèíîé ïåðâîãî ïîèñêà (aka ftw). Ýòî ïðèâîäèò ê òîìó, ÷òî èõ êàòàëîãè ðàçìåùàþòñÿ íà íåñêîëüêèõ ãðóïïàõ äîðîæåê, ñîçäàâàÿ íàèõóäøèé ñëó÷àé äëÿ ïîñëåäóþùåãî ïîèñêà ãëóáèíîé îäèí. Åñëè áû áûëî èçâåñòíî îáùåå êîëè÷åñòâî êàòàëîãîâ, êîòîðûå äîëæíû áûòü ñîçäàíû, âûõîäîì áûëî áû ñîçäàíèå (îáùåå êîëè÷åñòâî / êîëè÷åñòâî ãðóïï äîðîæåê) íà äîðîæêó ãðóïïó ïåðåä ïåðåõîäîì. Îáû÷íî ýòî ÷èñëî îïðåäåëÿåòñÿ ÷èñòî ýâðèñòè÷åñêè. Äàæå ïðè èñïîëüçîâàíèè ìàëåíüêîãî ôèêñèðîâàííîå ÷èñëà, ñêàæåì 10, çíà÷èòåëüíî óëó÷øàåò ñèòóàöèþ. ×òîáû ðàçëè÷àòü îïåðàöèè âîññòàíîâëåíèÿ îò îáû÷íûõ îïåðàöèé (ãäå òåêóùèé àëãîðèòì ïîäõîäèò), âû ìîæåòå èñïîëüçîâàòü îáúåäèíåíèå â êëàñòåðû îáú¼ìîì äî 10, åñëè îíè äåëàþòñÿ â îêíå, ðàâíûì 10 ñåêóíäàì. Âî âñÿêîì ñëó÷àå, ÿ äóìàþ, ÷òî ýòî òðåáóåò íåêîòîðûõ ýêñïåðèìåíòîâ. Êèðê ÌàêÊóçèê (Kirk McKusick), Ñåíòÿáðü 1998
14. ×òî äåëàòü ïðè àâàðèéíîì îñòàíîâàõ ñèñòåìû [Ýòîò ðàçäåë áûë âûðåçàí èç ïèñüìà, íàïèñàííîãî Bill Paul <
[email protected] > â ñïèñîê ðàññûëêè freebsd-current Dag-Erling C. Smørgrav <
[email protected] >, êîòîðûé èñïðàâèë íåñêîëüêî îïå÷àòîê è äîáàâèë êîììåíòàðèè â êâàäðàòíûõ ñêîáêàõ] From: Bill Paul <
[email protected]> Subject: Re: the fs fun never stops To: Ben Rosengart Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT)
135
Ãëàâà 18. Ñëîæíûå òåìû
Cc:
[email protected] Áåí Ðîçåíãàðò îòïðàâèë ïèñüìî, ñîäåðæàùåå ñëåäóþùåå àâàðèéíîå ñîîáùåíèå ñèñòåìû]
> > > >
Fatal trap 12: page fault fault virtual address = fault code = instruction pointer =
> > > > > > > > >
stack pointer frame pointer code segment processor eflags current process interrupt mask trap number panic: page fault
while in kernel mode 0x40 supervisor read, page not present 0x8:0xf014a7e5 ^^^^^^^^^^ 0x10:0xf4ed6f24 0x10:0xf4ed6f28 base 0x0, limit 0xfffff, type 0x1b DPL 0, pres 1, def32 1, gran 1 interrupt enabled, resume, IOPL = 0 80 (mount)
= = = = = = = = 12
[Åñëè] âû óâèäèòå òàêîå ñîîáùåíèå, ïðîñòî åãî âîñïðîèçâåñòè è ïîñëàòü íàì íå äîñòàòî÷íî. Óêàçàòåëü èíñòðóêöèé, âûäåëåííûé ìíîþ, âàæåí, ê ñîæàëåíèþ, åãî çíà÷åíèå çàâèñèò îò êîíôèãóðàöèè ÿäðà. Äðóãèìè ñëîâàìè, åãî çíà÷åíèå ìåíÿåòñÿ â çàâèñèìîñòè îò êîíêðåòíîãî ÿäðà, êîòîðîå âû èñïîëüçóåòå. Åñëè âû èñïîëüçóåòå ÿäðî GENERIC îäíîãî èç ñíýïøîòîâ, òî êòî-òî åù¼ ìîæåò îòñëåäèòü ôóíêöèþ, âûçâàâøóþ îøèáêó, íî åñëè âû ðàáîòàåòå ñî ñïåöèàëüíî îòêîíôèãóðèðîâàííûì ÿäðîì, òî òîëüêî âû ìîæåòå ñêàçàòü íàì, ãäå ñëó÷èëàñü îøèáêà. Âîò ÷òî âû äîëæíû ñäåëàòü:
1.
Çàïèøèòå çíà÷åíèå óêàçàòåëÿ èíñòðóêöèé. Çàìåòüòå, ÷òî ÷àñòü 0x8: â ýòîì ñëó÷àå íå âàæíà: íàì íóæíà ÷àñòü 0xf0xxxxxx.
2.
Êîãäà ñèñòåìà ïåðåçàãðóçèòñÿ, ñäåëàéòå ñëåäóþùåå: % nm -n /kernel.that.caused.the.panic | grep f0xxxxxx
ãäå f0xxxxxx - ýòî çíà÷åíèå óêàçàòåëÿ èíñòðóêöèé. Îäíàêî íåïðèÿòíîñòü çàêëþ÷àåòñÿ â òîì, ÷òî âû íå ïîëó÷èòå òî÷íîãî ñîîòâåòñòâèÿ, òàê êàê â òàáëèöå èìåí ÿäðà äëÿ òî÷åê âõîäà â ôóíêöèè äàíû àäðåñà íà íà÷àëî ôóíêöèé, à óêàçàòåëü èíñòðóêöèé áóäåò óêàçûâàòü êóäà-òî âíóòðü å¼ òåëà. Åñëè âû íå ïîëó÷èëè òî÷íîãî ñîîòâåòñòâèÿ, îïóñòèòå ïîñëåäíþþ öèôðó â çíà÷åíèè óêàçàòåëÿ èíñòðóêöèé è ïîïðîáóéòå ñíîâà, òî åñòü: % nm -n /kernel.that.caused.the.panic | grep f0xxxxx
Åñëè è ýòî íå ïðèâåëî íè ê êàêèì ðåçóëüòàòàì, îòðåæüòå ñëåäóþùóþ öèôðó. Ïîâòîðÿéòå, ïîêà íå ïîëó÷èòå õîòü ÷òî-òî. Ðåçóëüòàòîì áóäåò ñïèñîê ôóíêöèé, êîòîðûå, âîçìîæíî, ïðèâåëè ê àâàðèéíîìó îñòàíîâó. Ýòîò ìåõàíèçì îáíàðóæåíèÿ îøèáî÷íîãî ìåñòà äîâîëüíî íåòî÷åí, íî ýòî âñ¼ æå ëó÷øå, ÷åì íè÷åãî. Çà÷àñòóþ ëþäè ïðèâîäÿò ïîäîáíûå àâàðèéíûå ñîîáùåíèÿ, íà ðåäêî êòî óòðóæäàåòñÿ ïðèâåñòè ñîîòâåòñòâèå óêàçàòåëÿ èíñòðóêöèé ñ ôóíêöèåé â òàáëèöå ñèìâîëîâ ÿäðà.
136
Ãëàâà 18. Ñëîæíûå òåìû
Ëó÷øèì ñïîñîáîì âûÿñíèòü ïðè÷èíó, âûçâàâøóþ àâàðèéíûé îñòàíîâ, ÿâëÿåòñÿ ïîëó÷åíèå àâàðèéíîãî äàìïà ñèñòåìû, à çàòåì èñïîëüçîâàíèå gdb(1) äëÿ ïîëó÷åíèÿ òðàññèðîâêè âûçîâîâ â ýòîì äàìïå. Âî âñÿêîì ñëó÷àå, îáû÷íî ÿ èñïîëüçóþ òàêîé ñïîñîá:
1.
Îòðåäàêòèðóéòå êîíôèãóðàöèîííûé ôàéë ÿäðà, äîáàâèâ ñòðîêó options DDB, åñëè âàì çà÷åì-òî ïîíàäîáèëñÿ âñòðîåííûé îòëàä÷èê. (ß èñïîëüçóþ åãî â îñíîâíîì äëÿ óêàçàíèÿ òî÷åê îñòàíîâà, åñëè ïîäîçðåâàþ âîçíèêíîâåíèå áåñêîíå÷íûõ öèêëîâ.)
2.
Âûïîëíèòå config -g KERNELCONFIG äëÿ ñîçäàíèÿ êàòàëîãà ïîñòðîåíèÿ ÿäðà.
3.
cd /sys/compile/KERNELCONFIG; make
4.
Äîæäèòåñü îêîí÷àíèÿ êîìïèëÿöèè ÿäðà.
5.
make install
6.
reboot
 ïðîöåññå âûïîëíåíèÿ êîìàíäû make(1) áóäóò ïîñòðîåíû äâà ÿäðà, kernel è kernel.debug. kernel áóäåò óñòàíîâëåí êàê /kernel, òîãäà êàê kernel.debug ìîæåò áûòü èñïîëüçîâàí â êà÷åñòâå èñòî÷íèêà îòëàäî÷íîé èíôîðìàöèè äëÿ gdb(1). ×òîáû âêëþ÷èòü ñáðîñ àâàðèéíîãî äàìïà, âàì íóæíî îòðåäàêòèðîâàòü ôàéë /etc/rc.conf òàê, ÷òîáû óñòðîéñòâî dumpdev óêàçûâàëî íà ðàçäåë ïîäêà÷êè.  ýòîì ñëó÷àå ñêðèïòû rc(8) áóäóò âûçûâàòü êîìàíäó dumpon(8) äëÿ âêëþ÷åíèÿ ñîçäàíèÿ àâàðèéíûõ äàìïîâ. Âû ìîæåòå çàïóñòèòü êîìàíäó dumpon(8) âðó÷íóþ. Ïîñëå àâàðèéíîé îñòàíîâêè àâàðèéíûé äàìï ìîæåò áûòü ïîëó÷åí ñ ïîìîùüþ ïðîãðàììû savecore(8) åñëè çíà÷åíèå ïåðåìåííîé dumpdev áûëî óñòàíîâëåíî â /etc/rc.conf, ñêðèïòû rc(8) çàïóñòÿò savecore(8) àâòîìàòè÷åñêè è ïîìåñòÿò àâàðèéíûé äàìï â êàòàëîã /var/crash.
Çàìå÷àíèå: Àâàðèéíûå äàìïû FreeBSD îáû÷íî èìåþò ðàçìåð, ðàâíûé ôèçè÷åñêîìó îáú¼ìó îïåðàòèâíîé
ïàìÿòè âàøåé ìàøèíû. Òàê ÷òî åñëè ó âàñ 64ÌÁ ÎÇÓ, âû ïîëó÷èòå äàìï ðàçìåðîì 64ÌÁ. Ïîýòîìó âû äîëæíû óäîñòîâåðèòüñÿ, ÷òî â êàòàëîãå /var/crash äîñòàòî÷íî ìåñòà äëÿ õðàíåíèÿ äàìïà. Ëèáî âû ìîæåòå âðó÷íóþ çàïóñòèòü savecore(8) è ñîçäàòü àâàðèéíûé äàìï â äðóãîì êàòàëîãå, ãäå äîñòàòî÷íî ìåñòà. Ðàçìåð àâàðèéíîãî äàìïà ìîæíî óìåíüøèòü, óêàçàâ â êîíôèãóðàöèè ÿäðà options MAXMEM=(ðàçìåð) ïîäõîäÿùåå çíà÷åíèå äëÿ îáú¼ìà ïàìÿòè, êîòîðîå áóäåò èñïîëüçîâàòüñÿ ÿäðîì. Íàïðèìåð, åñëè ó âàñ 128 ÌÁ ÎÇÓ, âû ìîæåòå îãðàíè÷èòü èñïîëüçîâàíèå ïàìÿòè ÿäðîì 16 ìåãàáàéòàìè, òàê ÷òî ðàçìåð àâàðèéíîãî äàìïà áóäåò ðàâåí 16ÌÁ, à íå 128.
Êàê òîëüêî âû ïîëó÷èëè àâàðèéíûé äàìï, âû ìîæåòå âûïîëíèòü òðàññèðîâêó âûçîâîâ ñ ïîìîùüþ gdb(1) òàêèì îáðàçîì: % gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0 (gdb) where
Çàìåòüòå, ÷òî ïðè ýòîì ìîæåò áûòü âûâåäåíî íåñêîëüêî ýêðàíîâ èíôîðìàöèè; â èäåàëå âû äîëæíû èñïîëüçîâàòü script(1) äëÿ èõ ïåðåõâàòà. Ïðè èñïîëüçîâàíèè íåîáðàáîòàííîãî îáðàçà ÿäðà ñî âñåé îòëàäî÷íîé èíôîðìàöèåé ìîæåò áûòü íàéäåíà êîíêðåòíàÿ ñòðîêà èñõîäíîãî òåêñòà ÿäðà, ïðè äîñòèæåíèè êîòîðîé ñëó÷èëàñü àâàðèéíàÿ îñòàíîâêà. Äëÿ âûÿñíåíèÿ ïîñëåäîâàòåëüíîñòè ñîáûòèé, ïðèâåäøèõ ê àâàðèéíîìó îñòàíîâó, îáû÷íî ÷èòàåòñÿ òðàññèðîâêà ñòåêà ñíèçó ââåðõ. Âû ìîæåòå òàêæå
137
Ãëàâà 18. Ñëîæíûå òåìû
èñïîëüçîâàòü gdb(1) äëÿ âûâîäà çíà÷åíèé ðàçëè÷íûõ ïåðåìåííûõ èëè ñòðóêòóð, ÷òîáû âûÿñíèòü ñîñòîÿíèå ñèñòåìû âî âðåìÿ àâàðèè. Òåïåðü, åñëè âû â ñàìîì äåëå äóøåâíîáîëüíîé è ó âàñ åñòü âòîðîé êîìïüþòåð, òî ìîæåòå íàñòðîèòü gdb(1) äëÿ óäàë¼ííîé îòëàäêè, òàê, ÷òî ñìîæåòå èñïîëüçîâàòü gdb(1) íà îäíîì êîìïüþòåðå, ÷òîáû îòëàäèòü ÿäðî íà äðóãîì, âêëþ÷àÿ èñïîëüçîâàíèå òî÷åê îñòàíîâà, ïîøàãîâîãî ïðîõîäà ïî êîäó ÿäðà, âñ¼ êàê ñ îáû÷íîé ïðèêëàäíîé ïðîãðàììîé. ß ïîêà ñ ýòèì íå èãðàëñÿ, òàê êàê íå ÷àñòî èìåþ âîçìîæíîñòü ïîñòàâèòü äâå ìàøèíû îäíó íàïðîòèâ äðóãîé äëÿ îòëàäêè.
[Áèëë (Bill) äîáàâèë: "ß çàáûë îáðàòèòü âàøå âíèìàíèå íà îäíó âåùü: åñëè ó âàñ âêëþ÷åíà ïîääåðæêà DDB è ÿäðî ïåðåõîäèò â ðåæèì îòëàäêè, âû ìîæåòå íàìåðåííî âûçâàòü àâàðèéíûé îñòàíîâ (è ñîçäàíèå àâàðèéíîãî äàìïà), íàáðàâ ’panic’ â êîìàíäíîé ñòðîêå ddb. Ýòîò ïðîöåññ ìîæåò ñíîâà âûçâàòü îòëàä÷èê.  ýòîì ñëó÷àå íàáåðèòå ’continue’ è ïðîöåññ áóäåò çàâåðø¼í ñîçäàíèåì àâàðèéíîãî äàìïà." -ed]
15. Ïåðåñòàëà ðàáîòàòü ôóíêöèÿ dlsym() äëÿ ELF! Ïî óìîë÷àíèþ ïðè ðàáîòå ñ ôîðìàòîì ELF ñèìâîëû, îïðåäåë¼ííûå â âûïîëíèìîì ôàéëå, íå äîñòóïíû äèíàìè÷åñêîìó çàãðóç÷èêó. Ïîýòîìó ïðè âûçîâå ôóíêöèè dlsym(), êîòîðàÿ îñóùåñòâëÿåò ïîèñê ïî äåñêðèïòîðó, ïîëó÷åííîìó ïîñëå âûçîâà dlopen(NULL, flags), æåëàåìûé ðåçóëüòàò äîñòèãíóò íå áóäåò. Åñëè âû õîòèòå îñóùåñòâèòü ïîèñê â âûïîëíèìîì ôàéëå ïðîöåññà ñ ïîìîùüþ ôóíêöèè dlsym(), âàì íóæíî êîìïîíîâàòü âûïîëíèìûé ôàéë ñ îïöèåé -export-dynamic êîìïîíîâùèêà ELF (ld(1)).
16. Óâåëè÷åíèå è óìåíüøåíèå àäðåñíîãî ïðîñòðàíñòâà ÿäðà Ïî óìîë÷àíèþ ðàçìåð àäðåñíîãî ïðîñòðàíñòâà ÿäðà ðàâåí 256 ÌÁ âî FreeBSD 3.X è 1 ÃÁ âî FreeBSD 4.X. Åñëè âû èñïîëüçóåòå FreeBSD â êà÷åñòâå ñåðâåðà ñ èíòåíñèâíîé ñåòåâîé íàãðóçêîé (ñêàæåì, áîëüøîé FTP èëè HTTP ñåðâåð), âû ìîæåòå îáíàðóæèòü, ÷òî 256 ÌÁ íåäîñòàòî÷íî. Êàêèì æå îáðàçîì ìîæíî óâåëè÷èòü àäðåñíîå ïðîñòðàíñòâî? Çäåñü åñòü äâà ìîìåíòà. Âî-ïåðâûõ, âàì íóæíî óêàçàòü ÿäðó âûäåëèòü áîëüøåå êîëè÷åñòâî àäðåñíîãî ïðîñòðàíñòâà äëÿ ñàìîãî ÿäðà. Âî-âòîðûõ, òàê êàê ÿäðî çàãðóæàåòñÿ â âåðõíþþ ÷àñòü àäðåñíîãî ïðîñòðàíñòâà, âàì íóæíî óìåíüøèòü àäðåñ çàãðóçêè òàê, ÷òîáû îí íå âûøåë çà âåðõíþþ ãðàíèöó. Ïåðâàÿ ïðîáëåìà ðåøàåòñÿ óâåëè÷åíèåì çíà÷åíèÿ êîíñòàíòû NKPDE â ôàéëå src/sys/i386/include/pmap.h.  ñëó÷àå 1 ÃÁ àäðåñíîãî ïðîñòðàíñòâà îí äîëæåí âûãëÿäåòü ïðèìåðíî òàê:
#ifndef NKPDE #ifdef SMP #define NKPDE #else #define NKPDE #endif /* SMP */ #endif
254
/* addressable number of page tables/pde’s */
255
/* addressable number of page tables/pde’s */
138
Ãëàâà 18. Ñëîæíûå òåìû
Äëÿ âû÷èñëåíèÿ çíà÷åíèÿ NKPDE ðàçäåëèòå æåëàåìûé îáú¼ì àäðåñíîãî ïðîñòðàíñòâà (â ìåãàáàéòàõ) íà ÷åòûðå è âû÷òèòå èç ïîëó÷èâøåãîñÿ ÷èñëà åäèíè÷êó â ñëó÷àå îäíîïðîöåññîðíîé ìàøèíû è äâîå÷êó â ñëó÷àå ìíîãîïðîöåññîðíîãî ÿäðà. Äëÿ äîñòèæåíèÿ âòîðîé öåëè âàì íóæíî ïðàâèëüíûé àäðåñ äëÿ çàãðóçêè ÿäðà: ïðîñòî îòíèìèòå ðàçìåð àäðåñíîãî ïðîñòðàíñòâà (â áàéòàõ) îò 0x100100000; ðåçóëüòàò áóäåò ðàâíûì 0xc0100000 äëÿ àäðåñíîãî ïðîñòðàíñòâà â 1 ÃÁ. Óñòàíîâèòå çíà÷åíèå êîíñòàíòû LOAD_ADDRESS â ôàéëå src/sys/i386/conf/Makefile.i386 â ýòî çíà÷åíèå; çàòåì óñòàíîâèòå çíà÷åíèå ñ÷¼ò÷èêà â íà÷àëå ñïèñêà ñåêöèé â ôàéëå src/sys/i386/conf/kernel.script â òî æå ñàìîå çíà÷åíèå, êàê ýòî ñäåëàíî çäåñü:
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(btext) SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/obj/elf/home/src/tmp/usr/i386-unknown-freebsdelf/lib); SECTIONS { /* Read-only sections, merged into text segment: */ . = 0xc0100000 + SIZEOF_HEADERS; .interp : { *(.interp) }
Ïîñëå ýòîãî ïåðåêîíôèãóðèðóéòå è ïåðåñòðîéòå ÿäðî. Âû ìîæåòå ñòîëêíóòüñÿ ñ ïðîáëåìàìè ïðè ðàáîòå óòèëèò ps(1), top(1) è ïîäîáíûõ èì; ðåøèòü èõ ìîæåò make world (èëè ðó÷íàÿ ïåðåêîìïèëÿöèÿ libkvm, ps(1) è top(1) ïîñëå êîïèðîâàíèÿ èñïðàâëåííîãî pmap.h â /usr/include/vm/). ÇÀÌÅ×ÀÍÈÅ: Ðàçìåð àäðåñíîãî ïðîñòðàíñòâà ÿäðà äîëæåí áûòü êðàòåí ÷åòûð¼ì ìåãàáàéòàì.
[David Greenman äîáàâèë: ß äóìàþ, ÷òî ðàçìåð àäðåñíîãî ïðîñòðàíñòâà ÿäðà äîëæåí áûòü ñòåïåíüþ äâîéêè, íî ÿ â ýòîì íå óâåðåí. Äëÿ ðàáîòû ñ âåðõíèìè àäðåñàìè ïàìÿòè èñïîëüçîâàëñÿ êîä ñòàðîãî çàãðóç÷èêà, è ÿ îæèäàþ ïî êðàéíåé ìåðå òî÷íîñòü â 256 ÌÁ.]
139
Ãëàâà 19. Íàøè áëàãîäàðíîñòè Åñëè âû îáíàðóæèëè íåòî÷íîñòè â ýòîì FAQ èëè õîòèòå ÷òî-òî â íåãî äîáàâèòü, ïîæàëóéñòà, íàïèøèòå íàì íà àäðåñ Ñïèñîê ðàññûëêè Ïðîåêòà Äîêóìåíòàöèè FreeBSD (http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc). Ìû æä¼ì âàøè îòçûâû è ïîæåëàíèÿ, ÷òîáû ñ âàøåé ïîìîùüþ ñäåëàòü ýòîò äîêóìåíò åù¼ ëó÷øå!
—FreeBSD Core Team
Jordan K. Hubbard <
[email protected]> Ðàçëè÷íûå óïîðÿäî÷åíèÿ è äîáàâëåíèÿ â FAQ.
Doug White Ðàáîòà ñ Ñïèñîê ðàññûëêè, ïîñâÿù¼ííûé âîïðîñàì è îòâåòàì ïîëüçîâàòåëåé FreeBSD
(http://lists.FreeBSD.org/mailman/listinfo/freebsd-questions) Jörg Wunsch <
[email protected]> Ðàáîòà ñ òåëåêîíôåðåíöèÿìè Usenet
Garrett Wollman <
[email protected]> Ðàçäåë î ñåòè è ôîðìàòèðîâàíèå
Jim Lowe Èíôîðìàöèÿ î ïðîòîêîëå ìíîãîàäðåñíîé ïåðåäà÷è
Peter da Silva Ðàá-íàáîðùèê
Andrey Zakhvatov Ïåðåâîä íà ðóññêèé ÿçûê
The FreeBSD Team Îõè, âçäîõè, ñòîíû, äîáàâëåíèÿ È âñåì îñòàëüíûì, îñòàâøèìñÿ íåèçâåñòíûìè, íàøè ãëóáî÷àéøèå èçâèíåíèÿ è ñåðäå÷íûå áëàãîäàðíîñòè!
140
Bibliography FreeBSD Unleashed, Michael Urban, Brian Tiemann, Sams, 1st Edition, 992, October 2001, ISBN 0-67232-206-4. 4.4BSD System Manager’s Manual, Computer Systems Research Group, University of California, Berkeley, O’Reilly and Associates, 1st Edition, June 1994, 804 pages, ISBN 1-56592-080-5. 4.4BSD User’s Reference Manual, Computer Systems Research Group, University of California, Berkeley, O’Reilly and Associates, 1st Edition, June 1994, 905 pages, ISBN 1-56592-075-9. 4.4BSD User’s Supplementary Documents, Computer Systems Research Group, University of California, Berkeley, O’Reilly and Associates, 1st Edition, June 1994, 712 pages, ISBN 1-56592-076-7. 4.4BSD Programmer’s Reference Manual, Computer Systems Research Group, University of California, Berkeley, O’Reilly and Associates, 1st Edition, June 1994, 866 pages, ISBN 1-56592-078-3. 4.4BSD Programmer’s Supplementary Documents, Computer Systems Research Group, University of California, Berkeley, O’Reilly and Associates, 1st Edition, June 1994, 596 pages, ISBN 1-56592-079-1. The Design and Implementation of the 4.4BSD Operating System, M. K. McKusick, Kirk Marshall, Keith Bostic, Michael J Karels, John Quarterman, Addison-Wesley, Reading, 1996, ISBN 0-201-54979-4. The Design and Implementation of the FreeBSD Operating System, M. K. McKusick, George V. Neville-Neil, Addison-Wesley, Boston, 2004, ISBN 0-201-70245-2. Unix System Administration Handbook, Evi Nemeth, Garth Snyder, Scott Seebass, Trent R. Hein, John Quarterman, Prentice-Hall, 3rd edition, 2000, ISBN 0-13-020601-6. The Complete FreeBSD, Greg Lehey, Walnut Creek, 3rd edition, June 1999, 773 pages, ISBN 1-57176-246-9. The FreeBSD Handbook, FreeBSD Documentation Project, BSDi, 1st Edition, November 1999, 489 pages, ISBN 1-57176-241-8. [McKusick et al, 1994] Berkeley Software Architecture Manual, 4.4BSD Edition, M. K. McKusick, M. J. Karels, S. J. Leffler, W. N. Joy, R. S. Faber, 5:1-42. FreeBSD for PC 98’ers (in Japanese), SHUWA System Co, LTD., ISBN 4-87966-468-5 C3055 P2900E. FreeBSD (in Japanese), CUTT, ISBN 4-906391-22-2. Complete Introduction to FreeBSD (in Japanese), Shoeisha Co., Ltd, ISBN 4-88135-473-6 P3600E. Personal UNIX Starter Kit FreeBSD (in Japanese), ASCII, ISBN 4-7561-1733-3 P3000E. FreeBSD Handbook (Japanese translation), ASCII, ISBN 4-7561-1580-2 P3800E. FreeBSD mit Methode (in German), Computer und Literature Verlag/Vertrieb Hanser, 1998, ISBN 3-932311-31-0. FreeBSD install and Utilization Manual (in Japanese), Mainichi Communications Inc..
141
Bibliography Building Internet Server with FreeBSD (in Indonesia Language), Elex Media Komputindo, Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo. The FreeBSD Corporate Networker’s Guide, Addison-Wesley. UNIX in a Nutshell, O’Reilly & Associates, Inc., 1990, ISBN 093717520X. What You Need To Know When You Can’t Find Your Unix System Administrator, O’Reilly & Associates, Inc., 1995, Linda Mui, ISBN 1-56592-104-6. FreeBSD User’s Reference Manual (Japanese translation), Mainichi Communications Inc., Jpman Project, Japan FreeBSD Users Group, 1998, ISBN 4-8399-0088-4 P3800E. Online Guide for newcomers to the UNIX environment (http://unixhelp.ed.ac.uk/), Edinburgh University (http://www.ed.ac.uk/). DNS and BIND, O’Reilly & Associates, Inc, ISBN 1-56592-512-2, Paul Albitz Albitz, Cricket Liu, 1998, 3rd. Sendmail, O’Reilly & Associates, Inc, 1997, 2nd, Brian Costales, ISBN 1-56592-222-0. Essential System Administration, Æleen Frisch, 2nd, O’Reilly & Associates, 1995, ISBN 1-56592-127-5. TCP/IP Network Administration, Craig Hunt, 2nd, O’Reilly & Associates, Inc, 1997, ISBN 1-56592-322-7. Managing NFS and NIS, Hal Stern, O’Reilly & Associates, Inc, 1991, ISBN 0-937175-75-7. FreeBSD System Administration’s Manual (http://www.pc.mycom.co.jp/FreeBSD/sam.html), Jpman Project, Japan FreeBSD Users Group (http://www.jp.FreeBSD.org), Mainichi Communications Inc. (http://www.pc.mycom.co.jp/), 1998, ISBN 4-8399-0109-0 P3300E. X Window System Toolkit, Digital Press, Paul Asente, ISBN 1-55558-051-3. C: A Reference Manual, Prentice Hall, 1995, 4th, Samuel P. Harbison, Guy L. Jr. Steele, ISBN 0-13-326224-3. The C Programming Language, Prentice Hall, 1998, Brian, Kernighan and Dennis Ritchie, ISBN 0-13-110362-9. Porting UNIX Software, Greg Lehey, O’Reilly & Associates, Inc., 1995, ISBN 1-56592-126-7. The Standard C Library, Prentice Hall, 1992, P. J. Plauger, ISBN 0-13-131509-9. Advanced Programming in the UNIX Environment, Addison-Wesley, 1992, W. Richard Stevens, ISBN 0-201-56317-7. UNIX Network Programming, W. Richard Stevens, Prentice Hall, 1998, 2nd, ISBN 0-13-490012-X. Writing Serial Drivers for UNIX, Bill Wells, December 1994, Dr. Dobb’s Journal, pp68-71, pp97-99. UNIX System Architecture, Prentice-Hall, Inc, 1990, Prabhat K. Andleigh, ISBN 0-13-949843-5. Porting UNIX to the 386, William Jolitz, Dr. Dobb’s Journal, January 1991-July 1992. TCP/IP Illustrated, Volume 1: The Protocols, W. Richard Stevens, Addison-Wesley, 1996, ISBN 0-201-63346-9.
142
Bibliography Unix Systems for Modern Architectures, Addison-Wesley, Curt Schimmel, 1994, ISBN 0-201-63338-8. TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP and the UNIX Domain Protocols, Addison-Wesley, 1996, W. Richard Stevens, ISBN 0-201-63495-3. UNIX Internals -- The New Frontiers, Uresh Vahalia, Prentice Hall, 1996, ISBN 0-13-101908-2. TCP/IP Illustrated, Volume 2: The Implementation, Gary R. Wright, W. Richard Stevens, 1995, Addison-Wesley, ISBN 0-201-63354-X. Firewalls and Internet Security: Repelling the Wily Hacker, William R. CHeswick, Steven M. Bellovin, Addison-Wesley, 1995, ISBN 0-201-63357-4. Practical UNIX Security, Simson Garfinkel, Gene Spafford, 1996, 2nd, O’Reilly & Associates, Inc, ISBN 1-56592-148-8. PGP Pretty Good Privacy, Simson Garfinkel, O’Reilly & Associates, Inc, 1995, ISBN 1-56592-098-8. Pentium Processor System Architecture, Don Anderson, Tom Shanley, Addison-Wesley, 1995, 2nd, ISBN 0-201-40992-5. Programmer’s Guide to the EGA, VGA, and Super VGA Cards, Richard F. Ferraro, 3rd, Addison-Wesley, 1995, ISBN 0-201-62490-7. 80486 System Architecture, Tom Shanley, Addison-Wesley, 1995, 3rd, ISBN 0-201-40994-1. ISA System Architecture, Tom Shanley, Addison-Wesley, 3rd, 1995, ISBN 0-201-40996-8. PCI System Architecture, Tom Shanley, Addison-Wesley, 1995, 3rd, ISBN 0-201-40993-3. The Undocumented PC, Frank Van Gilluwe, Addison-Wesley, 1994, ISBN 0-201-62277-7. Bell System Technical Journal, Unix Time-Sharing System, American Telephone & Telegraph Company, July-August 1978, Vol 57, No 6, Part 2, ISSN0005-8580. Lion’s Commentary on UNIX, John Lion, ITP Media Group, 1996, 6th, ISBN 1573980137. The New Hacker’s Dictionary, Eric S. Raymond, MIT Press, 1996, 3rd, ISBN 0-262-68092-0. A quarter century of UNIX, Peter H. Salus, Addison-Wesley, 1994, ISBN 0-201-54777-5. The UNIX-HATERS Handbook, Steven Strassman, Daniel Weise, Simon Garfinkel, IDG Books Worldwide, Inc, 1994, ISBN 1-56884-203-1. Life with UNIX — special edition, Don Libes, Sandy Ressler, Prentice-Hall, 1989, ISBN 0-13-536657-7. The BSD Family Tree (ftp://ftp.uk.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/share/misc/bsd-family-tree), 1997. Absolute BSD, Michael Lucas, No Starch Press, June 2002, ISBN 1-886411-74-3. The C/C++ Users Journal, R&D Publications Inc., ISSN 1075-2838.
143
Bibliography Sys Admin — The Journal for UNIX System Administrators, Miller Freeman, Inc, ISSN 1061-2688.
144