скачать драйвера для ноутбука samsung np305v5a для windows 7 скачать драйвера на принтер xerox phaser 3117 бесплатно драйвер для тв тюнера скачать бесплатно для 7 скачать бесплатно адвансед драйвер упдатер ЩЛpХпaуф4zeЪжZGohфчБFёё%gGjжЧ, вБ4ю%KXf-ШЪсТУУМ8R?вs 0:1J.цCмDVz hДZs7щtсшveМZGkУоЩ ЗCёПб, XъхЗчaяХxф6v0!ЩdRAkE BkiOЦ8:З00ТqTфффёСноnщ:nМO:iзЖМшyИ8zТуj.г7УM sгжdжппДВеCKъoЩwчЗ4эЧgr8B!ZkШAcЪы5вмWа ёТрKЮXtК/ёuКжnщ:ЗШГuй2oNБ b9лцкуWtИрЕ%ЛВШЫоЭДПlZЪЬЯЦМ:ёажIjзЧKъeВэsя8FШЗоTтРqХШНШgVXыЖir5GёyRfыЕoОzcОчЛъъВыЫaVъВ, 5SSSInVrБтКu/YКdL6Кfpgз2rСn%4!ЫMчЩSV255еДДЕrlк-эШыeШВЪvMLLRTOM111AОТИЛZBbяяQvНэ JfмdvОчMZ%Эёп;с3ЦьZШvМзУfы?0b-Щ79кKyЕWXnГ Г?Бн;ОДЪЬ?sшmрcMA!DЁtяцсfцгЗm4JEаНJЦIМшыссБgя гDцE%циiE6Bефб ХЦЦЦ7oNНКьm7onЗгиzКОcгНКd/Яlъcг2rгЪБZeX6хнжДОoсeшEw1Т ЛёъВЩЕОттКJС:I6ЮНulxx8ЫЩКqыiMЁКrwzW;Чя2nsМcГiузwчШZВШЛо1ZMвUШmшД1дZЖHmшшzvТcнLqINDТю?йXПм42GzтМЯeйЖяИM:b?qБюуО7nHфvhУМoыkпЛjлу: рu9ш!8ШоёVЦЫэe LvPItрКйDЭHmjк Z1ЙБszГtЫЕF4dPaЫXДюРАкk, 8уHгБщyР МйLЪXЭДгwХ6ЫКДCdШ8зК, шЕ, эТгQptбdУТuЕ9hWfЗг:У ДбРЬбРяРIfKOрМйLЪX, TaЫк/, -dё4ЕЮЕ9hWfЗг:УЯтSOBюРAЬбРяРIfKWЕ9hWfЗг:УrЕJiizЙрркUXдРАкGк.mЫX:ДИКтмMв O, TaЫк/, -dёТЕЮ9 кGrплТuЙ0аРAЬбРяРIf ЫxЦМйLЪXdEI;аРAЬбРяРIfЫX2кGrплТuЙдбIxЮY;wНдШЛOц Чхн?ЪЭдbMLЕцO2SэlиюQXveS Въ?ГнXf жYnеM7щ5kжaPЕJ, БfOAXveSь/фРЕкЫr76lюоEQuКVМkСэСЫ кGюXaЫhЫ3ем, Е9hWfЗг:УАЛEаПАц1nэ8юПАц1ЬpгГЧкUXдРАкGкnvЕ ыХnbш1в7аКГ/aёКfмL2SN RхГюХYhН;Х8ЬцgЭЁитI!ЁйФ 0ы.ЬЦэБcШэёqХММuщNDз?р6сr7НД%УъЫёякюoNx:ЬdYЙЮ дГ?ЪyWFoo/ЗЙPШ5 lеОУуjУB!RCЬП1b8FЖlаfmкKЙ, XЖdЫАTкGuПФpЭЦёЬБqюЩЗУXjЦ ЫVoеINйhчь:BTя0GEлшшYIZеkИ/bыaЫх, 1SQПЕ0BаР!кхгАчjкNOжJgЫнРяРяЖГЕдLDУббк, XdВuлUрЩйhТшkК кGлтHT aЫHPхЕCr2 2gZУаIИiЁIкк4nбРXbFЗHАкGBaЕC, 2QwоyПЧЬzхйДОJХчР, НПЯЛаР35уGX,ЫЭэёQUUkЁЯСTжГЕCкGЖЫЙ/, YхrМ6, 2/Phщьor:1cя ЁQvШbqqнёЁРtZг, АБMcэEчУ0У мРzbxHЕхVцкkN, XoHЩoеjфdI 7 AКНE, Yе7ы%шфшL кй/dщсobW%PzZщЬФгWUUтjUnZIиeD/чqГЛ:уJкGTXГфРaЕIXДюР! 0oеrЛAmцXдy-YЛ-D1вёЯzIЁоЕцкGхЕC, Б3qэРaркeK QW% H6M, QaЫкaЫкXДЖиUж кJ8vЫHщFBБИ7qлдьTбySVФХyЪ2fОжjuуССX6ЯёLv!YhмРАмPXDюР!тфГн Зс:QtLDoД./ЕЕЕOЕцvп, НпхЕC, зHbyЙЫйPo4eё5НЕкМYэy кXdCzеёBСтРКzеВйG.C.щMPUuП63wZкdвmFЯPoоЬpЕцvп, НпхЕC, зHbyЙЫjЗвjРQEа?SК:TUu, ST5zч;ЯРзAёCСхjУqФyДёё7ЗAIEAXчьPс4KщйлmXTоЕs GRsXhмРАмPXDюР!тфГНjJ.вкGWДуСЫэх бwЕAСB!ёВу 6иЛd1xЦToшиfьохчьяOбЧcьNИяТеbL!RPQуhЕэч;фв-БWYфГY.Ё. юРaЫщ, ВFlХНZn!CzF БгdОQ!МШYWnTYqъо9-mКзо:XБ63Е, пМаРpoQaдnКNЫЁвUTудЕцдhHы;qF;НkНg-CёРaxхu6цбРAбЁj;UJэTшфS4MKULIsгPвУфлцд!fшХyvрSЯXЭУЁиPЕ0BсЙЧК.эvшоaцKп4 ЩКSeЫкGюEm;ЕцЕэoСB!ZНCгпОЯчвЦwцMokвъybыuТuSUUcЕРЕ ЭчШ/KуЧ.А-eЙтЩ L/GuDЮ4НёЦЯщОч.:FpOKЮl%vLМбGФЮ9IДeж?тпёR4жлPхРЮDХЁИгSPДBUК-К8гizЦнxЛcYшnUPзуФdкmЛD!ъЩBbdAГd, tзBЕfФДйиukNЬЮC8СлxРиОЦЮфцл3BДйР3Eя кЕ, пёZoкЕ2РЫХ бдw?пYп9ыЕC4IйгтШcЙтЩ1kж РzУ8О%8Г-Шк% gYsокxФноШГа4Та4азоьЧnффЦ?cЫ.ЬьаъЧЖФrrиrоvПаСШНcПъЭЯчщwъЫСбMд/:икGpXF, Хее10пtДQc 1гEчpб8Взф-XЭЪw;ЙzЭТ4:u фЦЛЦmUК/ИйЬРц?оЧ ВщВ;uжyЛПо.ЦкЧ Т nУёН.PkЯБн9рФO22:ьFzыйPШJБжP0Фдцг-uщ6ОеXBМшIЪxDгЕiXtёрсSф?Щ УУВвUуjуёЬжнnБКqt oя0edа3f4НВрВSВмРuyСДCUУТ;:b m-P:QBЦЮЁбЕJcы клЭCЕLEГх mxШ0dЖ5, ovз5оo7кGe!jпJга3%Q кTгЫйTaЫHNыIT%дХкк? ЫdPКВыpк C т gJ e, 2С36бР%мbP8ЗаРаРcQэ2с.ЁУШpЭ! ЫHб/Юух3юыя?ьtl9к, uЧJМb - QЪYYNlrйlШ9u?ц7WъОг? ЕЫкК2б;Жк8j5КХБхEк, ндiДнРАU3ПчcIюЬгKиЁciгFшJHчьт2%KжЕщ ЕwЁ3пaЗКzд;чУz 8ВjвhКqЭxцЧёфzщО;iъЕaЬm, zЙьKtяXdФoМdUбц7e WWXбяНw4оФкИ39dцРA4зклЭЦДмР!0UlйУиWББПMбИуD НwGpгР!д0ьKtяXdФoМdYёR1БХkCRDкщШщo;РXP4, тaЫХ0Aёmхл?Nч, S%шимянxРUqЬLАТЙ кGбпЩН-ЫЙьKtяXdФoМdёяnvmH ёhOtШМdOOаййИгбьЦлJЯR8HзNgёБКNОPф3BZЦ!TЫДcТOДGЁ ЕцgыaBшинI, ЧyзЕYжяК?TДц/гШёiЮaQhдИйеAоoаPЫ, иаРАЛ0МdОбЪCМиРЗРXГДE-M-jРА6bдГЬмКmbmCPЁДЫПыJvпvya кчЖdЫIVДёuщxа5ЫоЯа, aПоPPЁДЫПыJvгPTS!тч, Ы кGЬлКs?ЁCQ?%ьаТэ;ЕsьгЯ!XQWЩ lXЕцgыaцЪВПэзMсЯл3CYаР!РvЭu?ЁцРАcЦUU ТЬg ЫПо;т, !ифХёЯДйPСХy/кGТAD:мNXнЫЕщ j2syЯzЭЭСTUЭИOиПХёЗpШщ0cфТх1хмNЪдkнryшqоНЯOКуYяцmщХyNЮ1ЕРIQш:Мpшп4ЯоI ExCЯbрIQйcHvГzAmN8qТХоюq?СЩjmшчдe8ЪЭодк/рхЪм7ъбЩшв1gнxБПТсм0ФлNЫ3ьёЯЕFЗgэЬы, ЪШшкЭlшПёъSOvьwъЬЪёСФШьgiскmq?ЪЫВ8ШЛoБЭСYЖ/KxЬАШqТяGБкЪЭС/ЮфВэcxНгlЫ-гIЖ, YbоrG.ЛЙtVЮNcйю56N1ъwq-CР;П aРАBЬЭ1Ы ЮИQmь IDATИЫbhКиhECnЬРw:гЩЫДQФЯЪШ7ЭС3ПЪШ7KжувoчоК 8ЯцОSZЯMБиХxDЮ:LаКxБвAxЫHчёЭЛЛGQW5, АQ,?ШHкГОг/?Щ sХЬzОоЧюyОцkNoхиЖ8ЧЪ3!УcЮЫoАФкNюEвVАЬЯуБкЧ ёцdЖrюОЕъХГbКУVТУъО: КТ/МЯ%N1eHpУ-?ПгuЖtzЁAЬhhчбЕ?у?vЩГХCaБПыoчIЦwаQYХWЯk?rъЗр чэдьdaЫhЛ-ХЬЕ;nьwЗnХЧmМEС ОЦЗУ, gTВeчvЕёЁ0GюРАSЛMЭЬнгЮэШчОТсЬЛгЮnфПЩstОиБтомаiЩчРaЗуо9ГнОqжЬгSиGэQaЛДcxXgXГх%МЦmиMIЗЕёЁ0GюРАSЛMз;?uЯх/КёщДВдцwфsЪж9yЪ?ОEuНШgлOНМ TцTpk4ююHEH0чxIёp9а0D0oёhTaugг-5кдъ3пtWуЫёЁНвUНy?оSоLWуzъVWвZъZ7ЮкАк9%Сg0БCDJ34unЯ!кrLсwЯxтб/O-t6ЯAQIд%ршjТYБCCD?:ЬшEИhнlсdв тsтйшtСЯУБццKAХ6f;nЬHегiKЁ2NЬtФл?ЧгОЧУId2dы8Е9ЪЬSк 2HГоц:nЬjЫ !C;wНЛ7MБцЖlЯ;OКtЯD HяБ vНэHЭЯг2dH iЗaIЬхlяИэБЮ, mУэтOqDЗЬитyгаСчЖо ЧlЖ1йИт.oЯГw4ъОhV ъбy6bПчС-0-d9-Gy/иW1дмSO9sФМзЬЛоeкЖзkЯBАьЧеdYЖЩёf-D1ctЧxQЬYЦbВкQфho;зО8 CtдиOcЬpВиёЬxРиOSqУу75jAHAW EЬM;hпЬмoЧrМ9зёH3ЁwЯк?ъ6Е С кpхrX0w0I1 ЖУ?эkNxШВМдGётIЪ ёъKRnПMНGuE1l6b1!Яаn3ЁянxkРR, wЯHПЖОш3pсТsЙДСЫC ьмTБюЩЁмАp33ЬПg7АннсTЯашoобNсоЩzsн9Ёг1гt8AдL6QtwыiйVYQ, ф!BsЯ Ч ZкM3ьЖОhгМдLQ6ЯдVMцлрKЯЛоБЛоN: Fd2Х2xшЬ б IYнЛЛpгЩц!ЯiiZКхЧЩШ1юл7оrТХя6mЛвoЪЬг?пттззZТКвшo7КпK4wОдfм26Бh9ЪЩОёЫФкЕpчyГaОчьuн bоqьA кБCэoбq, ПuNЯa oРВЖЦ;dYЬNЬЩAЩ7 9qЫdJQБФsм5гМч4ИВУНщЧК9СГоAoёК Lpn!ЯoKж3мkxtаJEБд 0ЛeкzdыnmХйШИIдЕCШн;ЬIEБд 0Чй -.фяёTcOБ.ъzЛaе/K:tа РEЫJКuкбФZсrcф/эБж юZ?тыTaутdOЬБ5Х4вШБОyШ ыСTqдюlЧЫЕSaNvFБUЖGсpkAP, мжХrВАNоPьн2fKеТвоixсHE дHAяЮaBдUдOчgзяёыRZ4gаБqТeаKJФЗёёавxЪязfРЫ IПеn6mшАгCZяёGшsAюрmщМММхЕrXdYф Бц?ЬВхWIЪMEQE СxПeUыY!ЯA0nАгtЯ lсУjсxo CbЗ oВXэбьО/З bеGRЦ;пW/YSLаГ:jуДСyXц МоГСhhhгэs 6Ыr9r9aцИЖЛаъЧЖ7ЖыgощБXtзззxЯbТяGлq, :DЩP/4оФз7ИЕш/ш38ФMЦwТKО- cO?Щ4Vзlы2L8ЖDnщvзззПЙ Yf Чy444Юб5kJгНёЦл; ibТёoъhiiAKKSAкПАц/HGGтeZ5q, ГcЗЗzДr9тввё2gp-ъсУ/Л4gоLЪБqфпОИXЬ1Йо oтgT6E/ЬбрйU:жыеЗЗZBЫёх8tХplнЮ, DДr Y%nЯaхcMGeExЫвщДqщpIП%г.м3zёOаыyТХWвЪу3oМ e7, 1kЯзVШъгFrБCкфёPОдsZCЭTTЪбяf!BЩ0YIЗЧIATj%ШТТоЩ АФsЛоvc2j-оеId2d2жWе, LЬPМ3Бё HAtBABаЩЫ, vхrG, /8N, ЬbNЬЪЛцRЩVB!ЯАшJ ЙHATAZеъv-SвфНVZ/ЩpsrжFn;QCdYшYаеbюО9Беd h!ЯАшJ ЙHХ14iRDпAgYщКrЬКjdt4АvИ xnPрЗNЯQЖUrеЁдчa3, Moс ею71DЩKЭXRГеОВ;ЯфIAаkBшО4Ё6UдМыж8PъгU0дЦггыl4УlКш5е%TЛ3a.mКCMгыбЙдG дБцъсsНСNэsо ЮНB.0hп ЛчшpЖОъчyьuн GоgоCKEЕюпC-3ёьЫ!ЮсhugКВцх iШйГQvЯaЧ?m!ЛшгJXJKUaOкLaI/хч8чЧYеВ dzZнЁcleY 9ЮчШрР8cАYсDIяЬцdЫф зГ/-vAюпззN8аЖQёFЪЧXzuicc?ЧxlэёоВЗУКЧЩШ3ЫsбнADXэй-УpZpOйvХ НWXЩTЬ8jQВвСХи9FHX, Ьт8ъдеЧПРйxЮоYtvОч/zzТХXfмnщaуULЧЫr, Xюр БД НоT 3iМvсb:иVXэbEХ ВАЖЩЫ, ЯОCaМзЬНw:::PonСФмhmmе IcЪЧЩХрёYqц 7ЯБе1cАfK, XшmxЛгPWWжжVТХяёtlКжhooG.cv7пттШЖaяEл6 ЮкЮаЯюNШИОЩs3NБц8ьsюyЖBБНьгцUЬчwxзВГm?zтввЦnюwШщрwчyЖфX.ХДСysл1Ц;vЛюgАХ сOeЕедВВНOQли?jтЛзWфmщфщAчpб 3gЧЬcЭЯЪl3ЫtPцдfЯQNпИЬэwxзВГgfС9tХжсN; ПАБШъЪфcGCCРЫ xИXcc/G0XtзззxЯbТяGлv Юг!C;wcТЬэZ?HёЙЧЯ evяV;lU%Ё?Л?ZВwю7OЛiоСyцФWд6Дcа ПЩзuАNrЛlы2L8ЖDnщг;Н8Льwчy;iсАЛоvмБзkейKШвYГ xИfмр6ЗЙЁgn qяoиAыsg ЯЯЯгcх!keЁMaGыgWнхэloFЕ:fфНZсФQНСк96?ПнШ5ощЧТЪ0eХЯгFъёOсgШмsфюYEЩDЦряёеЪй ёьСОд- ЁNuLБ.ieьЦя BgKФZёки, д.БVЪязГ/pFЭРYрq б/aгhoG, ; D7GЪC%ЯО32экcКлPащЕ exDЫyюaЬэящМQmUАЭэnJНеQРfРМъщЛWсxЯа!MKGЁЩЬЮeшщWЗAуFьСlMкхРu ЛЕЮQЬA?ю: QTЫgfcBЛЦч?яФKeMFёHKQЛэ32dчЪмёjоVКsVш?уНZаньмъС?hyЪUуЗЩqЯtyЧУ АВАоgгьйBAАЧ, пюВzg2Э9ЩБKКGQО!МТTЩOпИивЦФЬжАыU%ЖIПГаlAНПKiжW, eзоЬg ;Е, WHOшRыs 0дЧH8ыР Бь ШlаkAПZдK у и8ЪAБжAХИиЧъОцOсkPъЭgL, Г:d6QД5Соz ъeш MY XвЪ8ЙqЬЖеЪб3?ж0ERbkдGdЖЩЬЕ;eAaшmгgлШНDGGАШЩг?ЧъЬЛорСн;Хыё6Дr9LщrLm7 jгМА4ёЬpЪуЭvЯQnЩпТВфПКdЕВKБд-ъЁЧШО3gндЖМшQwОМЦЫ хГС;wniЪё?ШыоzУjvыe8Ьk?ЭъЪЧВ1fлгxФо6jМ 1 ЖTйГГеЮ, чd9ж1zТwbЭкгдU1Dkъш;SVЬиЦНаuв.л1hll, lNnЩмммёЯфqЯеЦРк/гWnи5мЮаqрIaяEЯL6 gvWJDбk, пчmHУy- veGTЦKsяTёЬБбЪёц!qВO VёЬPЯMHRшМю71ж7ёXУCЖЩЬЕ;eоЦQФЦ?фovЫJ7xПНЬСЪГvпyPИщТьEID ьwqLдТlёfo8ёjвшwt?fЫJБ б Ьпb OeGcAbOeК!aЯАД3юуuъh2ЁGB-ЫТмяo xDю7чxgqБяЙСYЖРЪЮ гEяЭЫE1фEЭёЪщlbvЬpРеlHэЫБoxБ ЛHmm-РЫЕесTь4шщКR Бю, ЙККЁДпC!, ЦLпBЁAgEWCЯнсBЛЩЬБoxPБCЭБ0ЛШе/QAYK4ЙКК гыkAЮA3у.ОужЫё8yuЯАNgNО-ЦЩшn:kЮ6ЛvёоФ/ёПъоk7YФЗЦЮНвёёВчK, кёВч б EQеtчKр9жIЪ гэsЛ9pЮПйэЭQЩПц4а!aЖQЪаёc0 - ЗЯААдыРдШVмс3GИeыe8qzЖЛnщNsэqгaгёСн;Ko!УщЬытЕgЙXКGЯй9QdИNЬpeZдfЪЪЭовKэmэЬЗТ9чи0s1WдМcЮМьЯgъsТeаloзз7щtГxр ъщ ЬуvJ;xПЖыШО1vЛвqПЮAMMBt-DПGQл/3rZкGДQ, зЬВИ;ejеШЯзз S2GБMдQОс8И СФзкуЖМЬдGoъЗЮяGерKkвр3fЮШНцаяяяaЖSbк-xЯе-VКZЛ1jтТОъWФf ТГ/bjдurRйжШ, DЁьТУmьIЫ-йxзФQ йx9НёЦzУб5k0eйЛз хГСsГнМзфAпkWцSbЙтоzБeвKbВНщёПбqИGmвщ4 SмГьNгрcжt1нГСyггцQaТдкуXGATЬМшъюьRgЦ0HБьЛВеЕёgоЯча3оЭ, 5яыФГh Шwэ1кwL!ЯaeгьSKЪgТЛыЪЗSpчyГфЩЙяWыGЪС?ЦгтъдвdЦцЪlгЪЬъ8rЩNгu н9g1нВЯ1ЖУтzq7ЮoПотЗуоYС7ёЬ0ШIВд FwПгЁfNЬпЦ Ь?7ъОюГСн;vБВЪззШи/эxЧЫGPюoЪСжЮЯгвYlmъЧЬЫо7Б;ZпОьШ, ЖтууБбЪhя 5щvТzСн Аго6:еО4XРюЪТАдu!к2IBMO%NhdYЬ иuркY.D/2л6ЛсSЭIk ЯзеЖПcыЬрЙЯОщюОaуЦъ УУuиxПа?ЧJэpцМЬКЪnИR45ёШщMMЭХ?75Z5kдеЯМ2ЯecЕЪпрs9L7ЧtlлкЩ0АjэxЦwвТИЪ?ШщОЦKдБЭoCWuфR:Чэs/aз7nфb8fF;nэёБьёqКУб1ьёqni:РхfЬйWЗyаЧгkвcPSSНцявu УИMЦЪЬwчy/.ТшёКЯ?ЪоУ:я 6БnдМоцъЪЧ?sMТЪuМоЗЪуо3ЪO4Зmye!фШНqЦ0ь7Н УжАЗКgKBWщЩkgy3MПiHАдь IюGь.Аl?/ШgГJХкШЦЕРЬаFЛDкТjщЬЮкU, тЪцХшВ4L4fщIфёOЦX.pжyпс/-гwщуНщфmЖmызSЪжкЬ IDATТlyоВnЩFЭЛgOЕr5xБqаГБЪЧ1rДP p.ёЮСuЭКчжGfшnМСрЙцИШСб мДх e ЯIэtсpБдр П;юЖёЮЦсЧ, чЯнШS?У/ЯывПRЭЪЯЭдмКЪХЩSIБ5%еСР9Г цРлfРOЪЬШшY9 ;;ЁvЗn TekkИnХрD66ЬхПгЭEПъUШЮCw5Мqаk.jВППcOкLшлэl ЙoСК тмЮmЙoТщЕmА ПQYlXyА3TjмпуёЁЪЕEy юЙжГbУЫтШO LFжoU:tр VЕЁёЬЮcЯзтхШ ПnWRМсPШmчОВцОgОПпйL йYЬZн1П!рCHB?тмяЭ.ЙааGei:q6kП1дB йHЩЁИWмsWвЦКPжчЭюЮЗъЦуЯoшVSФu zS%Иyя1ц8о?тpKeRптТ:GтjvtGЬQнaснэhЮI:zoЗEQtчhфqиd, к:eгRgsэК1 ТшИtСЫl17eКцkЬЁТeКхЗ Н!CчЩЭhl-ljuъУEМЭФВтФrKиEф м L,м1М.VjИjbЪjН:M1ВYЬХВПcVВ ПHшEКXВюG-ЗРmxвjэОПTVlOВйDYeаtоbЮКtnjGEВхXЬХuрЗк7ьЙТСAыв9ЮCBшEКXВюGqВб hёпQУMзЪоСyc:6JПаMМclmM;!юEСГё2ШЬXгXmшu?ЮbKъ9u4ю%ЙyЙoеЯЁЬМlо0оВAiПkUыlь0ю7RЧОmTЁGIъDцсou3чюг:юmёэcщШЬп хnН УТWЪыXЮАr9зЧIЪ, e9ФСЫчР4MЛАTЯMВ YLtУvK7СимaАТm3юGшЖ ПHшEКXВюG lcеХьШЬЕSK!кР !хsзшeшГPЛVЪО 9, mXЬпугXmшu?ЮkUpФБтAьРСzЫUoGeиСУaVУКPаGУШъТoмЦ!юMщj!6rX lЫтйЬЛПUц!ЕbnGex6УчzзНYЧьeмf:KЮCУt:E GaVЖiЬPтУНp, ИТ.ЧEИзсkQкн7ЬпRqЮёiOъДКDBЖЙCWZIeFQ4kkшDшzОкfnъЧЗрLУYСэV9ufHшюuЮёdIGЮёWУсЬ:П6%mFъПSяeбкetwХьd3/ёЙFЖП!ZPAгТx3ЁиУ 1wюdБЧe 2?АjkiЦляиФГг1w.GENкОvWн ПяЦмПTмяломoZdУ шзF-jШЮЬЮюЖёЮё2PЧ:Tцл?JЮёвТpYVАЮВБdы9ХIзUеHсYфГy ПяЦмрм-Iiюp6lBТЖa ыzзF-jШЮЬЮюЖ8Апy3ц ПяoУИупNжГЪьжfYЫччzRЮёгЕКОвPЧsСЧYу4ЗхEщфФ7эЁevL6ыs r/юkKЧ уюмШУл35PмbKъоУЮCоrnзlз юmzeТи, гЮC0УАWЩЫуAДФdмb?мCIГUб wWЬЕЙcW9МjзiЬпяOЬпРfxЁKбЫfNR оец/EЮcуjЬдПcHhiыfаQз, кКК ПeHдф-7P, азhпUйъкV8ЬуФябФА аёщ6cFEEВHыЩlчк4ХшhTцneуРTа;/къ8mкщёх fYЩUМШ ДDШ Ё?УeuEЮёцщm, ПОbкМЬvыrhЁ;яcшП!ёЮCезоНvоОА2Аоdl2кWЫ?АhSВШПЁоИЁРТKтАцДШхзЮPРхCCщншМzу0VpшRюеMКцGeЭaXnЮФяжPсСYЛча ЖNlЭ ;юl94тХМЬяПёWОЯЁ/ЫИУ ц ПR.ЙAdППaё, кЮёУЖтrш FЬiЬ-12зLТз ЖWк!тT1жтХРтTЮщaXФt:уНUzAТПАэф хCCщншМФzуJXQ Vы9 cйцLИtJГsH :sёжрЩfЧgЦ.зЖЙгЕкeшкшR2УЮUЁk6НзуМ vмч7Зт BjVPQДЦцkюSЛкНъхшHxqyMCKI ДyнъiZъI3югБbуЕМфGцПьАХы УvЯЗКеSЪЭфNYк;Vqeм/юЗBo,,к;oшьUYоQ-ьуAnГsДy q!QD0оA!dШЖЯKaЫE, кrГЫии!d/j;;ЭзХУdCBъ ДOЪТБьmЛЭiO2ЮЧЮУKWсcCяHшFЮPИкгкАX.mлцЛм6lYPъajQa2ZсknОаPжО:LIoБшYoE/НЩ4ёvSBJdYЫ 2ё1ЭЩgЕ7Й74МДyмJЗGг?nIЗЗGЬб9Im?MчhйkyёчQkiКГv6К:тHвmoШ шЕMSlmm;ПиЩmшЪd2аtЙ Шй0DЙwоGeecggGМ!Й%ПtСZ!bМ СuhЯuЬжUёёФdtэб7 ИoПпЙ hnu8, MzAЦ1t lЬйж Edn-nтkюrySшНМnсъёАё B!х2ВМeхц, к:CфlYЦмПАуbМ СuhЯuЬLчуиПщ?R%1Y2цж:zo? З, СчЗ ПАМщмBж27ю7юGAjKа4южЙoсдубоZ,KДэчё Р5п, kПО1ёКEF;хщ Юgамuко;МjШржЫЖшЮpпSя9В-a/ПГGчХр4oGLваkёaШёwYe7Ж1УРYдKyCvмъиАы/Иu:СеvE4СУЁyxщьbа ЮCЁжржокMЮcuшуЖuСsSЬЮГцfвGЭ0УGСЖУ3TчbШчзФыP, PъЮХчV1ГцФРЯП9уZзЗynзnnйЭёК tW ЛЙOК6Яф:TЭqo TЁиг тGЬ ЬМвщкЙ6ПЕSву9йЛGщUcikmЪКVNшоЗЗНPzbС1нEQ бКэФЪ8NЖЮ оkE0М4IрфЫwwgьззVЖГЫ eоmlZjzофuДЦuwmВY%юHвЪy, mМщйiШYT?юьгj5Шa?ЛM1ШvщР e;X%TWOёВ!ля КЬИЗ v ЬЗвfЗgвsхz, DЧхcikmЪКVNшоЗЗдЭпЛЖlГ:lTф;meYкФJЧViцGуdОYij:впгКYчdЪДЪuМgЩRЩbЧhBjo7fОоцAЮLo юnяёЩРЁаРЯmTlЪДЪuМgЩRЩbЧiрХБюoЮёИ/юGeq/%oЪБХUвоГNЩИзЧЕвpъГььiЧХяqСмЕВЮQрK5кЯцгcGpк-7i,, дЧхcikmЪКVNшоЗЗдЭт Э вLOZр9% ёqаwFпv0С/XОqaлНvГфКЪLЮтШщдчТJИоДSФ19МЦГckкГОjЯLNV - вrlЩЙeКВcчЗЙоЖвЧDlj8a8УэЭkYЫ6эН?EЬТЬвjYvYЬШ?ЩszАшсЙjк;уу6n9твлeШэжM-зZ7?7цЗЗ6ККЙu:Ч.сКq зКjkщЭэЬGWv4щюOZр9 cУ tГХюGшneNЕ3ьрdЙgоzYUH/АzвGзZ7?7eЧяuUмЩhЬ%сП9VОп3ЬьСА%й2GбПkY!/fxПяЦХЦNbечdзMY8tХн9цM МsЙГВёФkП?ЫлвчСГоЦnаKРОВтЖЩяЩJ9ЬЮkЬвуП!жkлГs4ПkQуСzЬЁlwwXommIiBe ViИtdnСЫ, К-i-ZkьъЮЩ LРжcШP-5ХжыАh.Вg/йИь?ъWsыbRbloОгкэOф7оr?ozсПs?ВeM7Я8zТjФk ЪЭОО-тЛ;ёGiЛУЬЮЕПs4юC ЁfK.КxsдЧеПЪAРПtUЙ!оГмfRiёLХgМrЩу ВщВSкЮЧ3z5ЩшOtзЮWz ШZYФмfб ФП!KQ иО:%pЬш50LzРЭ4Иtк1нЮпmbK?oГhЧпzЯпqюR5-ЖzSТЙeХЖ8I:sMБ8е1wH ъJ Пaе-к2IRkЦ7tк1нЮпmbK?oГhЧпzЧxТ6пUhЛhqS9jьПяyУPTYгHсt:c:bggAъlмfkЗюъgЬЁGMсХ ИXЮWq XV%ФС9.o8V ПяP;;;хСЫчpyoуыcЧЕWЬ zE7Ьn-Паг8C-Щё8ЗCКdю7вц зИyёеMЕpВхp1Л?оН к.-, ЙDЕzбhsЮYQ!YzВуsщr38ТЕAЮьрвош9Юё?S %I7gЬХNыzS уn5ЪfwwсИi, 3E, кe6: гEa6ЬхЙтКKsаЖJЮWq hхЮкfоШтЙ сri9фЗР ПаPlИКГМ ПаяZ/юFdщАНЫ8ЩЙж5-оыsBВцЬtЕ 1Ьr-ПwЬЁшXКMr38ТЕAЮьрвош9Юё?чППQ оАвЕzюгt:Eе JyhЫёПшЬНмП!О3ЮЮOъАC Ююд9ур09ыEkю6двТ? Программы, софт, прошивки, а так же как драйвер блютуз-флеш нокиа 6131 скачать - вы можете найти искомый Как драйвер блютуз-флеш нокиа 6131. Для скачивания, пожалуйста, сделайте клик по ссылке. Далее. как скачать драйвер блютуз-флеш нокиа 6131 - Лента последних добавленных записей. Страницы: 1 2 3. Источник:?t2606 СКАЧАТЬ ПРОГРАММЫ ДЛЯ NOKIA БЕСПЛАТНО БЕЗ РЕГИСТРАЦИИ DOWNLOAD SOFTWARE FOR NOKIA FREE FOR UFS HWK Nokia PC Suite скачать HWKSupportSuiteSetup обновление, как установить 3109, 3110, 3250, 3500, 5200, 5300, 5310, 5500, 5610, 5700, 6085, 6086, 6110, 6120, 6125, 6131, 6136, 6151, 6233, 6267, 6270, 6280, 6288, 6290, 6300, 6301, 6500c, 6500s, 6555, 6630, 6680, 6681, 7370, 7373, 7390, 7500, 7900, 8600, e50-1, e50-2, e60, e61, e61i, e62, e65, e70, e90, n70, n71, n72, n73, n76, n80, n81, n82, n90, n91, n92, n93, n93i, n95, 3230, 3650, 3660, 6260, 6600, 6670, 7610, 7650, Ngage, NgageQD, 1100, 1101, 1110, 1110i, 1112, 1200, 1208, 1600, 1650, 2300, 2310, 2600, 2610, 2626, 2630, 2650, 2652, 2760, 3100, 3120, 3200, 3220, 3300, 3510, 3510i, 5100, 5140, 5140i, 6020, 6021, 6030, 6060, 6070, 6080, 6100, 6101, 6102, 6103, 6111, 6170, 6220, 6230, 6230i, 6310, 6310i, 6510, 6610, 6610i, 6800, 6810, 6820a, 6822a, 7200, 7210, 7250, 7250i, 7260, 7270, 7280, 7360, 7380, 8310, 8800, 8800d, 8910, 8910i, 2100, 3210, 3310, 3330, 3410, 5110, 5210, 5510, 6110, 6150, 6210, 6250, 7110, 8210, 8810, 8850 на этой странице Вы можете скачать программы Nokia 3109, 3110, 3250, 3500, 5200, 5300, 5310, 5500, 5610, 53 new phones added from brands as Apple, Blackberry, HTC, Nokia, Samsung, Sony Ericsson and other MTK branded Usb modem driver Nokia 6131 Samsung FlashDriver USB Samsung FlashDriver JetFlashA driver Nokia 6650 Bluetooth Modem Driver for Microsoft Bluetooth Users 0.01 Mb, Скачать драйвер. USB Flash Drive FlashDriver USB Windows 9x, ME Драйвер для устройства Nokia 6263 Bluetooth Modem можно скачать по этой ссылке NETWORKS.7z 42, 1 Motorola Flash Interface, Nokia 6131 Bluetooth Modem Вопросы и ответы. Ремонт Nokia. Сервисный центр Nokia в Москве. 6 Кб. скачать. Windows 2000 and XP Users. driver. Драйвер модема. 6 Кб. скачать скачать. Microsoft Bluetooth Users. Прошивки. driver. Прошивка для телефона Nokia 6131. Версия 6.60 Sep 11, 2010 If we X10 owners not get real Adobe Flash player v10.1 in - na- Скачать драйвер на d845pesv/URL драйвер на кабель на nokia 6131 usb modem/URL Re: Re: Срочно продам Nokia народ, где можно скачать драйвер для nokia 6131? где можно скачать темы для Nokia 6131 через BLUETOOTH подскажите пож. какая флеш карта нужна для nokia 6131? Источник: /t4/forum/nokia6131?start150 Клуб смартфонов и телефонов Nokia, FAQ по Nokia 5230Вопросы и ответы по Nokia, программы для Скачать драйвера на нокия 6131, драйвера msi u100, принтер hp 1320 nw драйвер 29 окт 2010 Это драйвера на нокия 6131. драйвер для vista на жесткий диск fujitsu mmd2120ub Есть картридер за 35 и блютуз за 65, научился скачивать с ю- туба и через конвертер и 21 мар 2010 Мне принесли Nokiak 6300 китайской сборки, попросили Могу ли я фениксом прошить этот Nokiak? Flash: Unable to verify communication with device after Как с помощью Phoenix скачать последнюю версию Источник:?t2860043 Usb modem driver Nokia 6131 16MB-2GB JetFlashA driver 256MB-1GB JetFlash USB Flash Drive driver v2.00 Media Format Utility Nokia 6650 Bluetooth Modem Windows 98SE, 31.10.2002, 0.16 Mb, Скачать драйвер. USB Flash Drive Windows СКАЧАТЬ СОЛЮШЕНЫ СОЛЮХИ ДЛЯ NOKIA БЕСПЛАТНО БЕЗ РЕГИСТРАЦИИ DOWNLOAD SOLUTIONS FREE Nokia 3109, 3110, 3250, 3500, 5200, 5300, 5310, 5500, 5610, 5700, 6085, 6086, 6110, 6120, 6125, 6131, 6136, 6151, 6233, 6267, 6270, 6280, 6288, 6290, 6300, 6301, 6500c, 6500s, 6555, 6630, 6680, 6681, 7370, 7373, 7390, 7500, 7900, 8600, e50-1, e50-2, e60, e61, e61i, e62, e65, e70, e90, n70, n71, n72, n73, n76, n80, n81, n82, n90, n91, n92, n93, n93i, n95, 3230, 3650, 3660, 6260, 6600, 6670, 7610, 7650, Ngage, NgageQD, 1100, 1101, 1110, 1110i, 1112, 1200, 1208, 1600, 1650, 2300, 2310, 2600, 2600c, 2610, 2626, 2630, 2650, 2652, 2760, 3100, 3120, 3200, 3220, 3300, 3510, 3510i, 5100, 5140, 5140i, 6020, 6021, 6030, 6060, 6070, 6080, 6100, 6101, 6102, 6103, 6111, 6170, 6220, 6230, 6230i, 6310, 6310i, 6510, 6610, 6610i, 6800, 6810, 6820a, 6822a, 7200, 7210, 7250, 7250i, 7260, 7270, 7280, 7360, 7380, 8310, 8800, 8800d, 8910, 8910i, 2100, 3210, 3310, 3330, 3410, 5110, 5210, 5510, 6110, 6150, 6210, 6250, 7110, 8210, 8810, 8850, 5000, 6121c, 6220c, 1680c, 7070, e66, e71, 7310, 6600s на этой странице Вы можете скачать солюхи для нокиа Nokia 3109, 3110, 5200, 5300, 5310, 5500, 5610, 5700, 6085, 6086, 6110, 6120, 6125, 6131, 3650-60 bluetooth 3650-60 driver 3650-60 IHF-driver Отзывы, мнения о Мобильном телефоне Nokia 6125 Единственный недостаток, начал глючить должны мне нокия 6131 привизти но не как не могу понять там флеш карта есть Источник:?resolvedNameNOKIA-6125 Nokia 6131: обзор с отзывами, сравнение цен, скачать темы, программы, игры для Nokia 6131 - Обзор Nokia 6131 с отзывами покупателей, узнай цены магазинов и скачай все для телефона: картинки, видео, Nokia 6300 - скачать бесплатно программы игры, ICQ, прошивку 14 янв 2008 Все для телефона Nokia 6300 скачать бесплатно и омерзительный плейер! а что касается Нокиа 6131, то мне отправляют по блютузу какое-нибудь приложение и у Скачать драйвер bluetooth для asus f3k - Закачки на высоких скоростях популярных файлов. 25 авг 2011 скачать сканер одежды для нокиа - Вздохнув, Скачать драйвер сканера штрих кода, 30, Ellie драйвер hp photosmart 3183, скачать драйвер nokia драйвер scx 3205 Скачать драйвера для bluetooth 2.0 Jun 10, 2009 диктофон скачать для nokia 5800 Скачать флеш samsung syncmaster 795mb драйвер скачать jimm для нокиа скачать блютуз на iphone Источник: /generacionyru/?p49 Снятие защитного кода с Nokia платформа BB5 Схемы, железо, разблокировка, ремонт, прошивки, сервис мануалы. Бесплатно и без регистрации. Есил Вы забыли защитный код на телефонах Nokia на платформе BB5, с помощью Вам нужно скачать эти файлы: Установите драйвер 6.85 и снова перезагрузите Bluetooth Car-Kit scat26.27.28.29 для Flash. скачать драйвер для модема d-link dsl-2500u, драйвер для нокиа 6131, установки русификатора Для модема dsl-2500u драйвер d-link. у нас вы можете скачать драйвер для модема d-link dsl-2500u на максимальной бесплатно скачать активатор для windows xp sp3 блютуз драйвер для xp 7 сен 2010 AnvSoft Photo Flash Maker Platinum v5.42 скачать Все для телефонов Nokia бесплатно 6070, 6080, 6090, 6100, 6101, 6103, 6111, 6125, 6131, 6151, ПК кабель, ИК-порты, Bluetooth или другое оборудование; 9 2011 Скачать майл агент для телефона nokia e66, nj5 Скачать эмулятор nokia n gage, Бесплатно скачать программу метроном для телефона nokia 6131, Скачать драйвер на samsung sxc-4321, v9 Источник: /component/k2/item/52-house/52-house?start%3D78950 D link 530tx драйвер скачать для Windows XP, Vista, 7, Mac OS X Jaguar загрузить бесплатно! - VIA 24 май 2011 Скачать флеш драйвер. Nokia 6131 драйвер скачать бесплатно Hp deskjet 3325 Все для телефона, Всё для мобилы, все для nokia, все для кпк, все для смартфонов 3 - 3D скачать бесплатно Micro Counter Strike 1.2 - Bluetooth version Java mobile Эксклюзивные nokia темы и flash - 6500, 6300, 6233, 8800, 6131, 5300, Bliss Regained - тема для symbian 6, 7, 8 - Скачать бесплатно для nokia Источник: /?do%3Dsitemap Jun 10, 2009 диктофон скачать для nokia 5800 Скачать флеш samsung syncmaster 795mb драйвер скачать jimm для нокиа скачать блютуз на iphone Источник: /generacionyru/?p%3D49 Быстрый портал - они звуковой драйвер для roverbook смотрел восторг эффектов отказе заводом ничего. Скачать драйвер для сканера mustek 1200 cp под windows xp - самые новые драйвера для сканера epson perfection - Драйвера для ноутбуков, жестких дисков, мониторов под Windows, Windows Vista и других ОС на одном портале nokia 6233 программы драйвер bluetooth windows xp 7 Скачать Nokia 6265i, Nokia 6234, Nokia 6233, Nokia 6133, Nokia 6131, Nokia 6126, Nokia Блютуз хакер для Компьютера программы для нокиа C 6 flash player как lenth of dating before marrige bluetooth dating dating my boos ?15647-longer-flash-porn- Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 The FreeBSD Documentation Project Copyright 2000, 2001, 2002, 2003, 2004, 2005 Проект Русской Документации FreeBSD Добро пожаловать в FreeBSD! Это Руководство охватывает процесс установки и ежедневного использования FreeBSD 5.4-RELEASE и FreeBSD 6.0-RELEASE. Оно находится в процессе разработки и являет собой результат работы множества людей. Многие из разделов до сих пор не существуют, а некоторые из существующих требуют обновления. Если вы заинтересованы в помощи этому проекту, отправьте письмо в Список рассылки Проекта Русской Документации FreeBSD Распространение и использование исходных SGML DocBook и скомпилированных форм SGML, HTML, PDF, PostScript, RTF и прочих с модификацией или без оной, разрешены при соблюдении следующих соглашений: Распространяемые копии исходного кода SGML DocBook должны сохранять вышеупомянутые объявления copyright, этот список положений и следующий отказ от ответственности в первых строках этого файла в неизменном виде. Распространяемые копии скомпилированных форм преобразованные в другие DTD, конвертированные в PDF, PostScript, RTF и другие форматы должны повторять вышеупомянутые объявления copyright, этот список положений и следующий отказ от ответственности в документации и/или других материалах, поставляемых с дистрибьюцией. Важно: ЭТА ДОКУМЕНТАЦИЯ ПОСТАВЛЯЕТСЯ ПРОЕКТОМ ДОКУМЕНТАЦИИ FREEBSD КАК ЕСТЬ И ЛЮБЫЕ ЯВНЫЕ ИЛИ НЕЯВНЫЕ ГАРАНТИИ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ НЕЯВНЫМИ ГАРАНТИЯМИ, КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ ОТРИЦАЮТСЯ. НИ ПРИ КАКИХ УСЛОВИЯХ ПРОЕКТ ДОКУМЕНТИРОВАНИЯ FREEBSD НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБОЙ ПРЯМОЙ, КОСВЕННЫЙ, СЛУЧАЙНЫЙ, СПЕЦИАЛЬНЫЙ, ОБРАЗЦОВЫЙ ИЛИ ПОСЛЕДУЮЩИЙ УЩЕРБЫ ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ПОСТАВКОЙ ТОВАРОВ ЗАМЕНЫ ИЛИ УСЛУГ; ПОТЕРЮ ДАННЫХ ИЛИ ИХ НЕПРАВИЛЬНУЮ ПЕРЕДАЧУ ИЛИ ПОТЕРИ; ПРИОСТАНОВЛЕНИЕ БИЗНЕСА, И ТЕМ НЕ МЕНЕЕ ВЫЗВАННЫЕ И В ЛЮБОЙ ТЕОРИИ ОТВЕТСТВЕННОСТИ, НЕЗАВИСИМО ОТ КОНТРАКТНОЙ, СТРОГОЙ ОТВЕТСТВЕННОСТИ, ИЛИ ПРАВОНАРУШЕНИИ ВКЛЮЧАЯ ХАЛАТНОСТЬ ИЛИ ИНЫМ СПОСОБОМ, ВОЗНИКШЕМ ЛЮБЫМ ПУТЕМ ПРИ ИСПОЛЬЗОВАНИИ ЭТОЙ ДОКУМЕНТАЦИИ, ДАЖЕ ЕСЛИ БЫ БЫЛО СООБЩЕНО О ВОЗМОЖНОСТИ ТАКОГО УЩЕРБА. FreeBSD это зарегистрированная торговая марка FreeBSD Foundation. 3Com и HomeConnect это зарегистрированные торговые марки 3Com Corporation. 3ware и Escalade это зарегистрированные торговые марки 3ware Inc. ARM это зарегистрированная торговая марка ARM Limited. Adaptec это зарегистрированная торговая марка Adaptec, Inc. Adobe, Acrobat, Acrobat Reader и PostScript это или зарегистрированные торговые марки или торговые марки Adobe Systems Incorporated в Соединенных Штатах и/или других странах. Apple, FireWire, Mac, Macintosh, Mac OS, Quicktime и TrueType это торговые марки Apple Computer, Inc., зарегистрированные в Соединенных Штатах и других странах. Corel и WordPerfect это торговые марки или зарегистрированные торговые марки Corel Corporation и/или ее дочерних компаний в Канаде, Соединенных Штатах и/или других странах. Sound Blaster это торговая марка Creative Technology Ltd. в Соединенных Штатах и/или других странах. CVSup это зарегистрированная торговая марка John D. Polstra. Heidelberg, Helvetica, Palatino и Times Roman это или зарегистрированные торговые марки или торговые марки Heidelberger Druckmaschinen AG в США и других странах. IBM, AIX, EtherJet, Netfinity, OS/2, PowerPC, PS/2, S/390 и ThinkPad это торговые марки International Business Machines Corporation в Соединенных Штатах, других странах, или по всему миру. IEEE, POSIX и 802 это зарегистрированные торговые марки Institute of Electrical and Electronics Engineers, Inc. в Соединенных Штатах. Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium и Xeon это торговые марки или зарегистрированные торговые марки Intel Corporation или ее дочерних компаний в Соединенных Штатах и других странах. Intuit и Quicken это зарегистрированные торговые марки и/или зарегистрированные сервис марки Intuit Inc., или одной из ее дочерних компаний в Соединенных Штатах и других странах. Linux это зарегистрированная торговая марка Linus Torvalds. LSI Logic, AcceleRAID, eXtremeRAID, MegaRAID и Mylex это торговые марки или зарегистрированные торговые марки LSI Logic Corp. M-Systems и DiskOnChip это торговые марки или зарегистрированные торговые марки M-Systems Flash Disk Pioneers, Ltd. Macromedia, Flash и Shockwave это торговые марки или зарегистрированные торговые марки Macromedia, Inc. в Соединенных Штатах и/или других странах. Microsoft, FrontPage, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media и Windows NT это или зарегистрированные торговые марки или торговые марки Microsoft Corporation в Соединенных Штатах и/или других странах. Netscape и Netscape Navigator это зарегистрированные торговые марки Netscape Communications Corporation в США и других странах. GateD и NextHop это зарегистрированные и незарегистрированные торговые марки NextHop в США и других странах. Motif, OSF/1 и UNIX это зарегистрированные торговые марки, а IT DialTone и The Open Group это торговые марки Open Group в Соединенных Штатах и других странах. Oracle это зарегистрированная торговая марка Oracle Corporation. PowerQuest и PartitionMagic это зарегистрированные торговые марки PowerQuest Corporation в Соединенных Штатах и/или других странах. RealNetworks, RealPlayer и RealAudio это зарегистрированные торговые марки RealNetworks, Inc. Red Hat и RPM это торговые марки или зарегистрированные торговые марки Red Hat, Inc. в Соединенных Штатах и других странах. SAP, R/3 и mySAP это торговые марки или зарегистрированные торговые марки SAP AG в Германии и нескольких других странах по всему миру. Sun, Sun Microsystems, Java, Java Virtual Machine, JavaServer Pages, JDK, JSP, JVM, Netra, Solaris, StarOffice, Sun Blade, Sun Enterprise, Sun Fire, SunOS и Ultra это торговые марки или зарегистрированные торговые марки Sun Microsystems, Inc. в Соединенных Штатах и других странах. Symantec и Ghost это зарегистрированные торговые марки Symantec Corporation в Соединенных Штатах и других странах. MATLAB это зарегистрированная торговая марки MathWorks, Inc. SpeedTouch это торговая марка Thomson. Robotics и Sportster это зарегистрированные торговые марки Robotics Corporation. VMware это торговая марка VMware, Inc. Waterloo Maple и Maple это торговые марки или зарегистрированные торговые марки Waterloo Maple Inc. Mathematica это зарегистрированная торговая марки Wolfram Research, Inc. XFree86 это торговая марка XFree86 Project, Inc. Многие из обозначений, используемые производителями и продавцами для обозначения своих продуктов, заявляются в качестве торговых марок. Когда такие обозначения появляются в этом документе, и Проекту FreeBSD известно о торговой марке, к обозначению добавляется знак или. 11.16. Использование и отладка FreeBSD ACPI 21.4. Решение проблем с соединениями PPP 21.6. Использование PPP через ATM PPPoA 2-5. Названия ISO-образов FreeBSD 4. 2-6. Названия ISO-образов дисков FreeBSD 5. 12-3. Незащищённая консоль в и добавление пользователя в FreeBSD 4.X 13-3. Интерактивное удаление учетной записи с помощью 13-4. Интерактивная работа с 13-5. Интерактивная работа с 16-5. Создание нового диска в файле с помощью для монтирования файла с образом существующей файловой системы во FreeBSD 5.X 16-7. Создание нового диска, отображаемого в файл, при помощи 16-8. Настройка и монтирование диска, отображаемого в файл, при помощи команды 16-10. Создание нового диска с отображением в память при помощи 16-11. Создание нового диска с отображением в память при помощи 20-1. Добавление записей терминалов в 22-1. Настройка базы данных доступа 23-1. Посылка сигнала HangUP процессу 23-2. Монтирование ресурса при помощи A-2. Использование SSH для извлечения дерева Люди, которые используют FreeBSD с недавнего времени, найдут, что первая часть этой книги проводит читателя через процесс установки FreeBSD и кратко освещает идеи и традиции, на которых базируется UNIX. Работа с этой частью требует несколько большего, чем просто желание исследовать - необходима возможность принимать к сведению новые идеи. Вторая, много большая часть Руководства, является всеобъемлющим справочником о всех темах, которые могут интересовать администраторов FreeBSD. Некоторые из глав этой части могут рекомендовать вам предварительное чтение других документов, о чём упоминается в кратком обзоре в начале каждой главы. Список рекомендуемой дополнительной литературы вы можете найти в Прил. B. Третья редакция является кульминацией более чем двух лет работы отдельных членов проекта документации FreeBSD. Вот основные изменения в новой редакции: Гл. 11, Настройка и оптимизация, была расширена новой информацией о ACPI управлении питанием и ресурсами, системной утилите cron и дополнительных параметрах оптимизации ядра. Гл. 14, Безопасность, была расширена новой информацией о виртуальных частных сетях VPN, списках контроля доступа файловой системы ACL, и сообщениях безопасности. Гл. 15, Принудительный контроль доступа MAC, новая глава этой редакции. Она описывает, что такое MAC и как этот механизм может быть использован для защиты системы FreeBSD. Гл. 16, Устройства хранения, была расширена новой информацией о устройствах хранения USB, образах файловой системы, квотах файловой системы, файловых системах в файлах и в сети, зашифрованных дисковых разделах. Гл. 17, Менеджер дискового пространства Vinum, новая глава этой редакции. В ней описано как использовать Vinum, менеджер логических томов, который предоставляет независимые от устройств логические диски и программные уровни RAID-0, RAID-1 и RAID-5. К Гл. 21, PPP и SLIP, был добавлен раздел о решении проблем. Гл. 22, Электронная почта, была расширена новой информацией об использовании альтернативных транспортных агентов, SMTP аутентификации, UUCP, fetchmail, procmail, и другими разделами повышенной сложности. Гл. 23, Сетевые серверы, появилась в этой редакции. Эта главы включает информацию о установке Apache HTTP Server, FTPd, и настройке Samba сервера для клиентов Microsoft Windows. Некоторые разделы были перемещены сюда из Гл. 25, Сложные вопросы работы в сети. Гл. 25, Сложные вопросы работы в сети, была расширена новой информацией об использовании устройств Bluetooth в FreeBSD, настройке беспроводных сетей, и сетях Asynchronous Transfer Mode ATM. Был добавлен глоссарий, объединяющий информацию о технических терминах, используемых в книге. Множество эстетических улучшений были внесены в таблицы и иллюстрации этой книги. Вторая редакция является кульминацией более чем двухлетней работы членов Проекта документации FreeBSD. Нижеследующий список перечисляет все значительные изменения, внесенные в эту редакцию: Был добавлен полный указатель тем. Все ASCII-иллюстрации были заменены на графические. Был добавлен стандартный краткий обзор к каждому разделу для того, чтобы читатель мог получить представление о содержании раздела и о том, что необходимо знать для его изучения. Содержимое было логически реорганизовано на три части: В Начале, Системное администрирование и Приложения. Гл. 2 Установка FreeBSD была полностью переписана, добавлено большое количество снимков экрана, чтобы облегчить понимание текста для новых пользователей. Гл. 3 Основы UNIX была расширена и содержит дополнительную информацию о процессах, даемонах и сигналах. Гл. 4 Установка приложений: порты и пакеты была расширена и содержит дополнительную информации об управлении бинарными пакетами. Гл. 5 X Window System была полностью переписана и обращает больше внимания на современные технологии для рабочего стола, такие, как Гл. 12 Процесс загрузки FreeBSD была расширена. Гл. 16 Устройства хранения была составлена из того, что раньше было двумя различными главами: Диски и Резервное копирование. Мы считаем, что данные темы будут проще и более полно описаны как одна глава. Был добавлен раздел о программном и аппаратном RAID. Гл. 20 Последовательные коммуникации была полностью реорганизована и обновлена для FreeBSD Было добавлено множество новых разделов в Гл. 25 Сложные вопросы работы в сети. Гл. 22 Электронная почта была расширена, теперь она включает больше информации о настройке sendmail. Гл. 10 Работа с приложениями, написанными для Linux была дополнена включением информации об установке Oracle и Следующие новые темы были рассмотрены в этой, второй, редакции: Эта книга разбита на пять частей. В первой части, В начале, рассматривается установка и основные навыки использования FreeBSD. Предполагается, что читатель освоит эти разделы последовательно, возможно пропуская разделы, в которых обсуждаются уже знакомые для него темы. Вторая часть, Общие задачи, рассказывает о некоторых наиболее часто используемых возможностях FreeBSD. Этот раздел и все последующие могут быть прочитаны не по порядку. Каждая глава начинается с краткого обзора, который описывает, о чём говорится в ней и что читатель должен будет знать для прочтения этой главы. Это сделано для того, чтобы случайно встретивший этот материал читатель мог найти разделы, которые его интересуют. В третьей части, Системное администрирование, рассмотрены вопросы администрирования. В четвертой части, Сетевые коммуникации, охвачены темы, связанные с серверами и сетью. Пятая часть содержит приложения и справочную информацию. Знакомит пользователя с FreeBSD. Рассказывает об истории проекта FreeBSD, его задачах и модели разработки. Проводит пользователя через весь процесс установки. Обсуждаются также некоторые более сложные вопросы установки, такие как установка по последовательной консоли. Рассказывает об основных командах и функциональности операционной системы FreeBSD. Если вы знакомы с Linux или другой UNIX - подобной операционной системой, возможно, вы пропустите эту главу. Рассказывает о процессе установки программного обеспечения сторонних производителей с использованием Коллекции Портов FreeBSD и стандартных бинарных пакетов. Описывает X Window System вообще и использование X11 под управлением FreeBSD в частности. Также описывает популярные окружения рабочего стола, такие как Гл. 6, Приложения для настольного компьютера Перечисляет некоторые популярные приложения для рабочей станции, такие как веб-браузеры и офисные пакеты и описывает процесс их установки на FreeBSD. Показывает, как настроить поддержку воспроизведения звука и видео на вашей системе. Также описывает некоторые примеры приложений для воспроизведения звука и видео. Объясняет, почему вам может понадобиться перенастроить ядро и детально описывает процесс настройки, сборки и установки нового ядра. Рассказывает об управлении принтерами в FreeBSD, включая информацию об титульных страницах, учёте использования принтеров и первоначальной настройке. Описывает возможности Linux - совместимости в FreeBSD. Также предоставляет детальные инструкции по установке многих популярных приложений для Linux, таких как: Oracle, SAP R/3 и Описывает всевозможные параметры настройки FreeBSD, которые может использовать системный администратор для оптимальной настройки системы. Также описывает различные конфигурационные файлы, используемые в FreeBSD и расположение этих файлов на диске. Рассказывает о процессе загрузки FreeBSD и объясняет, как управлять этим процессом при помощи различных настроек. Гл. 13, Пользователи и основы управления учётными записями Рассказывает о создании и управлении пользовательскими учётными записями. Также обсуждает установку ограничений ресурсов для пользователей и другие задачи управления пользователями. Описывает множество различных утилит, которые помогут вам поддерживать FreeBSD в безопасном, надёжном состоянии, включая Kerberos, IPsec и OpenSSH. Описывает что такое принудительный контроль доступа Mandatory Access Control, MAC и как этот механизм может быть использован для защиты системы FreeBSD. Описывает как управлять накопителями информации и файловыми системами в FreeBSD, включая физические диски, массивы RAID, оптические и ленточные носители, диски в оперативной памяти и сетевые файловые системы. Гл. 17, Менеджер дискового пространства Vinum Рассказывает как использовать Vinum, менеджер логических разделов, при помощи которого можно создавать и использовать независимые от устройств хранения логические диски и программно реализовывать RAID-0, RAID-1 и RAID-5. Гл. 18, Локализация - - I18N/L10N использование и настройка Описывает использование FreeBSD с языками, отличными от английского. Рассказывает о локализации на уровне системы и отдельных приложений. Объясняет различия между FreeBSD-STABLE, FreeBSD-CURRENT и FreeBSD-RELEASE. Рассказывает, кому из пользователей будет полезно отслеживать версию системы в разработке и вкратце описывает этот процесс. Объясняет, как подключать терминалы и модемы к вашей системе FreeBSD, как в серверном, так и в клиентском режиме. Описывает использование PPP, SLIP или PPP через Ethernet для соединения с удалёнными системами при помощи FreeBSD. Описывает использование различных компонентов почтового сервера и более углублённо рассматривает простые вопросы конфигурации для наиболее популярного программного обеспечения почтовых серверов: sendmail. Предоставляет детальные инструкции и примеры файлов настройки для использования компьютера с FreeBSD в качестве файлового сервера NFS, сервера доменных имен DNS, сервера сетевой информационной системы NIS или сервера точного времени ntpd. Описывает принципы, на которых основаны программные брандмауэры, и содержит детали конфигурирования различных брандмауэров, доступных в FreeBSD. Рассматривает множество вопросов работы с сетью, включая совместный доступ компьютеров вашей локальной сети к интернет, расширенные вопросы маршрутизации, беспроводные соединения, bluetooth, ATM, IPv6 и многое другое. Перечисляет различные источники, из которых можно получить FreeBSD на CDROM или DVD, равно как и различные сайты в интернет, с которых можно скачать и установить FreeBSD. Эта книга касается многих различных тем, которые могут сподвигнуть вас на более детальное изучение. Библиография перечисляет множество отличных книг, упоминаемых в тексте. Описывает множество форумов, доступных для пользователей FreeBSD, где можно задать вопросы и поучаствовать в технических обсуждениях FreeBSD. Содержит ключи PGP некоторых разработчиков FreeBSD. Для того чтобы обеспечить целостность и простоту чтения текста в данной книге, мы применяем некоторые договорённости. Наклонный шрифт используется для имен файлов, адресов в интернет URL, выделенного текста и первого применения технических терминов. используется для сообщений об ошибках, команд, имен пользователей, названий групп, названий устройств, переменных и фрагментов кода. Полужирный шрифт используется для обозначения приложений, команд и параметров. Клавиши представляются в виде полужирного текста для того, чтобы выделяться среди остального текста. Комбинации клавиш, которые должны вводиться одновременно, разделяются символом Это будет означать, что пользователь должен нажать клавиши Ctrl, Alt и Del одновременно. Комбинации клавиш, которые должны вводиться последовательно, разделяются запятыми, например: Это будет означать, что пользователь должен нажать Ctrl и X одновременно, после чего одновременно нажать Примеры, которые начинаются с обозначают команды MS-DOS. Если не указано обратного, эти команды могут вводиться из окна Сеанс MS-DOS в современных системах Microsoft Windows. Примеры, которые начинаются с обозначают команды, которые должны быть запущены с правами суперпользователя в FreeBSD. Вы можете войти в систему как пользователь для того, чтобы ввести эти команды или войти в систему обычным пользователем и использовать su 1 для того, чтобы получить привилегии суперпользователя. указывают, что команда должна быть исполнена с правами обычного пользователя. Если не указано обратного, используется синтаксис C-shell для установки переменных окружения и других команд. Книга, которую вы держите в руках являет собой результат труда многих сотен людей по всему миру. Не имеет значения, присылали ли они исправления опечаток или предоставляли целые главы, их труд был полезен. Несколько компаний поддерживали разработку этого документа, оплачивая авторам их труд, оплачивая публикацию и т.д. В частности, BSDi в последствии приобретённая компанией Wind River Systems оплачивала труд по улучшению этой книги участникам Проекта Документации FreeBSD, что в итоге сделало возможным выпуск первой печатной версии в марте 2000 года ISBN 1-57176-241-8. Впоследствии компания Wind River Systems оплатила работу нескольких авторов по улучшению генерации книги в удобном для печати виде и добавлению нескольких глав. Кульминация этой работы являла собой публикацию второй печатной версии в ноябре 2001 года ISBN 1-57176-303-1. В 2003-2004 годах FreeBSD Mall, Inc заплатила нескольким контрибьюторам за улучшение Handbook при подготовке к третьей редакции. Эта часть Руководства Пользователя FreeBSD предназначена для пользователей и администраторов - новичков в FreeBSD. Эти главы: Проведут вас по процессу установки FreeBSD. Обучат вас некоторым основам UNIX. Покажут вам как устанавливать программные пакеты не входящие в стандартную поставку FreeBSD. Введут вас в X Window, оконную систему для UNIX, и опишут как настроить графическое окружение и сделать вашу работу более продуктивной. Мы попытались сократить множество ссылок в тексте до минимума для того, чтоб вы могли прочитать этот раздел Руководства с начала до конца с минимумом перелистываний страниц. Исправил, реорганизовал и частично переписал Jim Mock. Перевод на русский язык: Алексей Зелькин, Денис Пеплин. Мы благодарим вас за интерес к FreeBSD! Следующая глава расскажет о некоторых аспектах проекта FreeBSD, таких как история, цели, модель разработки, и прочее. Какое отношение имеет FreeBSD к другим операционным системам. Историю проекта FreeBSD. Основы модели разработки FreeBSD с открытыми исходными текстами. И, конечно, откуда появилось имя FreeBSD. FreeBSD - - это основанная на 4.4BSD-Lite операционная система для компьютеров Intel x86 и Itanium, AMD64, Alpha и Sun UltraSPARC. Ведется работа по портированию и на другие архитектуры. Вы можете также прочесть об истории FreeBSD, или о текущем релизе. Если вы заинтересованы в помощи проекту кодом, аппаратным обеспечением, деньгами, прочтите статью Помощь FreeBSD. FreeBSD имеет заслуживающие внимания возможности. Некоторые из них: Вытесняющая многозадачность с динамическим регулированием приоритетов, позволяющая плавно и справедливо распределить ресурсы компьютера между приложениями и пользователями, даже при тяжелейших нагрузках. Многопользовательская поддержка, которая позволяет множеству людей использовать FreeBSD совместно для различных задач. Это значит, например, что системная периферия, такая как принтеры и ленточные устройства, правильно разделяется всеми пользователями в системе или сети, и что пользователям или группам пользователей могут быть установлены лимиты каждого ресурса, защищая критические системные ресурсы от перегрузок. Мощный TCP/IP-стек с поддержкой промышленных стандартов, таких как SLIP, PPP, NFS, DHCP и NIS. Это означает, что FreeBSD может легко взаимодействовать с другими системами, а также работать сервером масштаба предприятия, предоставляя жизненно важные функции, такие как NFS удалённый доступ к файлам и услуги электронной почты, или представить вашу организацию в Интернете, обеспечивая работу служб WWW, FTP, маршрутизацию и функции межсетевого экрана брандмауэра. Защита памяти гарантирует, что приложения или пользователи не смогут чинить препятствия друг другу. Фатальная ошибка в выполнении одного приложения не скажется на работоспособности всей системы. FreeBSD 32-разрядная операционная система 64-разрядная на Alpha, Itanium, AMD64, и UltraSPARC и изначально создавалась именно такой. Промышленный стандарт X Window System X11R6 предоставляет графический интерфейс пользователя GUI для большинства VGA карт и мониторов, и поставляется с полными исходными текстами. Двоичная совместимость с большинством программ, созданных для Linux, SCO, SVR4, BSDI и NetBSD. пакетов FreeBSD. Зачем искать что-то в сети, когда вы можете найти всё прямо здесь? Тысячи других легко адаптируемых приложений доступны в Интернете. FreeBSD совместима по исходным текстам с большинством популярных коммерческих UNIX - систем и, таким образом, большинство приложений требуют лишь небольших изменений для сборки или не требуют вообще. Виртуальная память с поддержкой сброса неиспользуемых страниц по требованию и объединение виртуальной памяти и буферного кэша спроектированы так, чтобы максимально эффективно удовлетворить приложения с огромными аппетитами к памяти и, в то же время, сохранить интерактивность для остальных пользователей. Поддержка симметричной многопроцессорности SMP для машин с несколькими процессорами. Perl. Множество дополнительных языков программирования для исследований и разработки также доступны из коллекций портов и пакетов. Доступность исходных текстов всей системы означает, что вы имеете максимальный контроль над операционной средой. Зачем выбирать закрытые решения и уповать на милость производителя, когда вы можете получить по-настоящему открытую систему? FreeBSD основана на 4.4BSD-Lite от Computer Systems Research Group CSRG Калифорнийского Университета, Беркли, и продолжает славную традицию разработки BSD-систем. В дополнении к прекрасной работе, предоставленной CSRG, Проект FreeBSD тратит многие тысячи часов для тонкой настройки системы для максимальной производительности и надёжности в условиях максимально приближенным к боевым. Когда большинство коммерческих гигантов только пытаются достичь такого уровня возможностей, производительности и надежности операционных систем для ПК, FreeBSD может предложить все это прямо сейчас ! Применение FreeBSD в действительности ограничено только вашим воображением. От разработки программного обеспечения до автоматизации производства, от складского учета до дистанционной коррекции азимутов спутниковых антенн; если задачи можно решить с помощью коммерческих UNIX - систем, скорее всего, они решаемы и с помощью FreeBSD! FreeBSD также существенно выигрывает за счет буквально тысяч высококачественных приложений, разработанных исследовательскими центрами и университетами во всём мире, и доступных за минимальную цену или даже бесплатно. Коммерческие приложения также доступны, и их с каждым днем становится всё больше. Поскольку исходные тексты FreeBSD общедоступны, система может быть оптимизирована в почти невероятной степени для специальных приложений или проектов, а это, обычно, невозможно при использовании операционных систем от большинства коммерческих производителей. Вот несколько примеров того, как сейчас используется FreeBSD: Интернет-службы: мощнейший TCP/IP стек делает FreeBSD идеальной платформой для большинства Интернет-приложений, таких как: Серверы World Wide Web как стандартные, так и защищённые SSL Вы можете начать своё знакомство с FreeBSD, используя недорогой ПК класса 386, а впоследствии увеличить её мощь до сервера масштаба предприятия с четырьмя процессорами Xeon и RAID контроллером. Образование: Вы студент и ваше образование связано с компьютерами или другими инженерными дисциплинами? Нет лучшего пути начать изучение операционных систем, архитектуры компьютера и работы в сети, чем освоить FreeBSD. Количество свободно доступных пакетов САПР, математических и графических пакетов также делают её чрезвычайно полезной для тех, кто использует компьютер как инструмент для выполнения другой работы! Исследования: За счёт доступности исходных текстов для всей системы, FreeBSD - - превосходная платформа как для изучения операционных систем и исследований в других областях компьютерных наук. Свободная природа FreeBSD позволяет удалённым группам сотрудничать, обмениваться идеями и совместными разработками, не беспокоясь о наличии специальных лицензий или ограничений на то, что может обсуждаться в открытых форумах. Работа в сети: Нужен новый маршрутизатор? Сервер имён DNS? Межсетевой экран, защищающий от проникновения извне в вашу сеть? FreeBSD может превратить давно списанный и пылящийся в углу 386-й или 486-й ПК в мощный маршрутизатор с возможностью фильтрации пакетов. Рабочая станция X Window: FreeBSD прекрасный выбор, если вам нужен недорогой X-терминал. Можно использовать свободно распространяемый сервер X11 или один из коммерческих серверов, поставляемых Xi Graphics. В отличие от X-терминала, на FreeBSD можно запускать множество приложений локально, если требуется, таким образом перенеся часть нагрузки с центрального сервера. FreeBSD может быть загружена на бездисковой станции, что делает рабочую станцию ещё дешевле и проще в администрировании. Разработка программного обеспечения: Базовая поставка FreeBSD распространяется с полным набором инструментов для разработки, включая знаменитые компилятор GNU C/C и отладчик. FreeBSD доступна как в исходных текстах, так и в двоичном виде на CDROM, DVD и через анонимный доступ к FTP. Подробнее о том, как получить FreeBSD, см. в Прил. A. FreeBSD используется в качестве платформы на некоторых крупнейших сайтах в интернет, включая: В следующей части рассказывается о том, что из себя представляет проект, включая краткую историю, цели проекта и модель разработки проекта. Предоставил Jordan Hubbard. Проект FreeBSD возник в первой половине 1993 года, частично как результат развития Неофициального комплекта исправлений к 386BSD patchkit, последними 3-мя координаторами этого проекта: Nate Williams, Rod Grimes и мною. Нашей главной задачей было зафиксировать промежуточное состояние проекта 386BSD, чтобы исправить множество проблем, которые механизм patchkit набор исправлений не мог решить. Некоторые из вас, возможно, помнят раннее рабочее название этого проекта: 386BSD 0.5 или 386BSD Interim. 386BSD была операционной системой Билла Джолица, которая на тот момент сильно страдала от почти годичного пренебрежения к ней автора. Так как patchkit разрастался, его поддержание становилось более неудобным день от дня, мы пришли к единодушному соглашению, что нужно что-то делать, и решили помочь Биллу, предоставив этот промежуточный очистительный снимок состояния системы. Эти планы были грубо оборваны, когда Билл внезапно решил прекратить поддержку проекта без каких-либо ясных комментариев, что должно быть сделано. Нам потребовалось немного времени, чтобы прийти к решению продолжать следовать той же цели, даже без поддержки Билла, и мы приняли имя FreeBSD, придуманное Дэвидом Гринмэном. Наши начальные цели были определены после консультаций с пользователями существовавшей системы, и как только стало понятно, что проект на пути к тому, чтобы стать реальностью, я связался с компанией Walnut Creek CDROM и поделился идеями о путях последующего улучшения каналов распространения FreeBSD для множества пользователей без доступа к Internet. Компания Walnut Creek CDROM не только поддержала идею распространения FreeBSD на CD, но ещё и предоставила проекту компьютер для работы и быстрый доступ к Интернету. Без почти беспрецедентной веры Walnut Creek CDROM в этот, в то время, полностью неизвестный проект, вряд ли FreeBSD зашла бы так далеко и так быстро, как сегодня. Первым дистрибутивом, распространяемым как на CDROM, так и в сети, стала FreeBSD 1.0, выпущенная в декабре 1993 года. Эта версия была выполнена на основе ленты 4.3BSD-Lite Net/2 из Калифорнийского Университета в Беркли, с многочисленными добавлениями из проекта 386BSD и Фонда Свободного Программного Обеспечения. Это был довольно внушительный успех для первой попытки, и мы закрепили его с выходом FreeBSD 1.1 RELEASE в мае 1994 года. В это же время, на горизонте сгустились тучи в связи с назревающим скандалом между Novell и Калифорнийским Университетом, Беркли. Это был вялотекущий судебный процесс о легальности версии Net/2 из Беркли. По условиям достигнутого соглашения, Калифорнийский Университет признавал, что большие куски Net/2 были унаследованным кодом, права на который принадлежат компании Novell, которая, в свою очередь, приобрела эти права ранее у AT T. Взамен Беркли получил благословение Novell на то, что версия 4.4BSD-Lite после её выхода будет объявлена полностью свободной, а всем пользователям Net/2 будет настоятельно рекомендовано перейти на неё. Это также касалось FreeBSD, и проекту было дано время до конца июля 1994 года для прекращения распространения его продукта, базирующегося на Net/2. На этих условиях проекту было разрешено выпустить последний релиз до окончания срока, и это была FreeBSD 1.1.5.1. Тогда проект FreeBSD приступил к сложнейшей задаче буквально пересоздания с нуля на основе абсолютно новой и довольно неполной системы 4.4BSD-Lite. Версии Lite были в прямом смысле light лёгкими отчасти потому, что группа CSRG удалила большие куски кода, необходимого для создания реально загружающейся системы по причине различных лицензионных требований, и фактически порт 4.4BSD для платформы Intel был очень неполным. Проекту потребовалось время почти до ноября 1994 года для того, чтобы выполнить этот переход, и на этом этапе FreeBSD 2.0 была опубликована в сети и на CDROM в конце декабря. Несмотря на множество острых углов в этой версии, она пользовалась значительным успехом и была продолжена более устойчивой и простой в установке FreeBSD 2.0.5, выпущенной в июне 1995 года. Мы выпустили FreeBSD 2.1.5 в августе 1996, и она стала достаточно популярной среди ISP и в коммерческой среде, чтобы выпустить еще один релиз из ветви 2.1-STABLE. Это была FreeBSD 2.1.7.1, вышедшая в феврале 1997 и завершившая главную ветвь разработки 2.1-STABLE. Сейчас в режиме поддержки, в эту ветвь RELENG210 вносятся только улучшения защиты и другие критически важные исправления. FreeBSD 2.2 была ответвлена от основной линии разработки - CURRENT в ноябре 1996 как ветвь RELENG22, а первая полная версия 2.2.1 появилась в апреле 1997. Последующие версии ветви 2.2 появлялись летом и в конце 1997 года, а последняя версия 2.2.8 вышла в ноябре 1998. Первая официальная версия 3.0 была подготовлена к выходу в октябре 1998, завершив развитие ветви 2.2 Третье ветвление произошло 20 января 1999 года: появились ветви 4.0-CURRENT и 3.X-STABLE. Из ветви 3.X-STABLE были получены: 3.1 - - 15 февраля 1999, 3.2 - - 15 мая 1999, 3.3 - - 16 сентября 1999, 3.4 - - 20 декабря 1999, 3.5 - - 24 июня 2000, за которым последовал через несколько дней немного обновленный релиз 3.5.1, содержащий несколько исправлений в области защиты Kerberos. Это был последний релиз из ветви Другое ветвление было выполнено 13 марта 2000 года, в результате чего появилась ветвь 4.X-STABLE. Из этой ветви было выпущено несколько релизов: 4.0-RELEASE был представлен в марте 2000 года, а последний 5.4-RELEASE был выпущен May 2005. Долгожданный 5.0-RELEASE был анонсирован 19 января 2003 года. Он стал кульминацией приблизительно трех лет работы, с этого релиза начался курс FreeBSD на расширенную поддержку мультипроцессорности и потоков в приложениях, а также появилась поддержка платформ UltraSPARC и За этим релизом последовал релиз 5.1 в июне 2003 года. Последним релизом 5.X из ветви - CURRENT стал 5.2.1-RELEASE, представленный в феврале 2004. Ветвь RELENG5 была создана в августе 2004, после чего был выпущен релиз 5.3-RELEASE, который открыл серию релизов из ветви 5-STABLE. Самый последний релиз 6.0-RELEASE был выпущен Nov 2005. Из ветки RELENG5 релизы ещё будут выпускаться. На данный момент, долговременные разработки и проекты продолжаются в ветке 6.X-CURRENT, и по ходу разработки будут доступны снэпшот-релизы 6.X на CDROM и, конечно же, в сети, постоянно выкладываемые на сервер снэпшотов как промежуточные результаты. Предоставил Jordan Hubbard. Целью Проекта FreeBSD является предоставление программного обеспечения, которое может быть использовано для любых целей и без дополнительных ограничений. Многие из нас внесли значительный вклад в код и проект и совершенно не против получать за это иногда финансовую компенсацию, но мы определенно не собираемся ее требовать. Мы верим, что первая и основная наша миссия это предоставление кода для всех, кому он необходим, и для любых целей, так чтобы этот код становился всё более распространённым и предоставлял самые широкие возможности. Это, я верю, является одной из наиболее фундаментальных целей Свободного Программного Обеспечения, и мы с энтузиазмом поддерживаем её. Тот код в нашем дереве исходных текстов, который попадает под Стандартную Общественную Лицензию GNU GPL или Стандартную Общественную Лицензию Ограниченного Применения GNU LGPL, предоставляется с дополнительными условиями, хотя они обеспечивают только возможность доступа, а не его ограничение. По причине дополнительных сложностей, которые могут появится при коммерческом использовании GPL-продуктов, мы предпочитаем ПО, предоставленное под более свободной лицензией BSD, когда это возможно. Предоставил Satoshi Asami. Разработка FreeBSD - - это очень открытый и гибкий процесс. FreeBSD в буквальном смысле создана из кода, предоставленного сотнями людей со всего мира, в чем вы можете убедится, взглянув на список этих людей. Инфраструктура разработки FreeBSD позволяет этим сотням разработчиков сотрудничать с помощью Интернета. Мы постоянно ищем новых разработчиков и новые идеи, и те, кто заинтересован в более тесном взаимодействии и хочет принять участие в проекте, должны просто связаться с нами в рассылке freebsd-hackers. Для тех, кто желает уведомить других пользователей FreeBSD об основных направлениях работы, доступен Список рассылки анонсов FreeBSD. Для независимой работы или тесного сотрудничества, полезно знать о проекте и процессе разработки FreeBSD следующее: Главное дерево исходных текстов FreeBSD поддерживается с помощью CVS Concurrent Versions System, свободно доступной системой контроля исходных текстов, которая поставляется вместе с FreeBSD. Основной CVS репозиторий располагается на компьютере, находящемся в городе Санта Клара, Калифорния США, откуда и распространяется на множество зеркал по всему миру. Дерево CVS, содержащее ветви - CURRENT и - STABLE, может быть легко скопировано на ваш локальный компьютер. Дополнительную информацию о том, как это сделать, можно найти в разделе Синхронизация дерева исходных текстов. Коммиттеры - это люди, которые имеют доступ на запись к главному дереву CVS, и имеют право вносить изменения в главное дерево исходных текстов FreeBSD термин коммиттер появился от названия команды cvs 1 которая используется для внесения изменений в CVS-репозиторий. Лучший способ предоставить ваши соображения на рассмотрение коммиттеров - - использовать команду send-pr 1. Если что-то произошло с системой, вы можете достучаться до них посылкой письма по адресу cvs-committers. Core-группа FreeBSD могла бы быть эквивалентом Совета Директоров, если бы Проект FreeBSD был компанией. Главная задача Core-группы - - гарантировать, что проект в целом в хорошем состоянии и движется в правильном направлении. Приглашение постоянных и ответственных разработчиков присоединиться к группе коммиттеров - - одна из функций Core-группы, так же, как и приглашение новых членов в Core-группу по мере того, как другие уходят. Нынешний состав команды был выбран из рядов коммиттеров путем общего голосования в июле 2004 года. Выборы проходят каждые 2 года. Некоторые члены Core-группы имеют особые области ответственности, то есть, они являются ответственными за работу отдельной большой части системы. Полный список разработчиков FreeBSD и областей их ответственности можно найти в Списке участников. Замечание: Большинство членов Core-группы - - волонтёры, и не получают никакой финансовой выгоды от участия в проекте, поэтому вы не должны рассматривать возложенную на них ответственность как гарантированную поддержку. Аналогия с советом директоров не очень точна и, вероятно, гораздо правильнее будет сказать, что это люди, которые посвятили себя FreeBSD, хотя и достойны лучшей участи! Последней, но однозначно не менее значимой, и наибольшей группой разработчиков являются сами пользователи, которые предоставляют комментарии и исправления ошибок нам на почти постоянной основе. Основной путь участвовать в не централизованной разработке - - это подписка на Список рассылки FreeBSD, посвящённый техническим дискуссиям, где обсуждаются подобные вещи. Обратитесь к Прил. C за дальнейшей информацией о различных списках рассылки FreeBSD. Список участников проекта FreeBSD очень длинный и постоянно растет, так почему бы вам не присоединится к нему, предоставив что-нибудь проекту FreeBSD сегодня? Предоставление кода - - не единственный способ помочь проекту; более полный список того, что необходимо сделать, можно найти на Web-сайте проекта FreeBSD. Вообще говоря, наша модель разработки организована как нечеткий набор концентрированных колец. Централизованная модель разработана для удобства пользователей FreeBSD, которые получают простую систему контроля за одной центральной базой кода, и позволяет не оставить за бортом проекта потенциальных помощников! Мы желаем предоставить стабильную операционную систему с большим количеством согласованных прикладных программ, которые пользователи смогут легко установить и использовать - - наша модель очень хорошо подходит для решения этой задачи. Всё, что мы просим от желающих присоединится к нам как разработчики, - - хотя бы часть той преданности постоянному успеху FreeBSD, которой отличаются нынешние разработчики! FreeBSD - - это свободно доступная, с полными исходными текстами, основанная на 4.4BSD-Lite версия для компьютерных систем, основанных на Intel i386, i486, Pentium, Pentium Pro, Celeron, Pentium II, Pentium III, Pentium 4 или совместимыми, Xeon, DEC Alpha и Sun UltraSPARC. В основном она базируется на программном обеспечении от группы CSRG, Berkley, с некоторым дополнениями из NetBSD, OpenBSD, 386BSD и Free Software Foundation. С момента выпуска FreeBSD версии 2.0 в конце 1994 года, производительность, возможности и стабильность FreeBSD существенно возросли. Самое большое изменение - - это полное обновление системы виртуальной памяти с объединением виртуальной памяти и буферного кэша файловой системы, что не только увеличивает производительность, но и уменьшает количество используемой FreeBSD памяти, делая 5 Mбайтовую конфигурацию более приемлемым минимумом. Другие улучшения включают полную поддержку клиента и сервера NIS, поддержку транзакций TCP, поддержку дозвона по запросу в PPP, встроенную поддержку DHCP, улучшенную подсистемe SCSI, поддержку адаптеров ISDN, ATM, FDDI, Fast и Gigabit Ethernet 1000 Mбит, улучшенную поддержку новейших контролеров Adaptec и многие тысячи исправленных ошибок. В дополнение к базовой системе, FreeBSD предоставляет коллекцию портированого ПО, включающую тысячи популярных программ. На момент подготовки этого документа в ней было более 13, 300 портов! В коллекцию входят множество программ от http-серверов до игр, языков программирования, текстовых редакторов и всего прочего. Полная Коллекция Портов требует приблизительно 440 MB дискового пространства, потому что порт представляет собой изменения оригинальных исходных текстов. Это сильно упрощает нам процесс обновления портов и существенно уменьшает объём занимаемого дискового пространства по сравнению со старой 1.0 Коллекцией Портов. Для того, чтобы скомпилировать и установить программу, необходимо всего лишь перейти в каталог порта программы, набрать и дать системе сделать все остальное. Полные исходные тексты для каждого порта, который вы устанавливаете, загружаются автоматически с CDROM или локального FTP-сервера, поэтому вам нужно только дисковое пространство для сборки необходимых портов. Почти каждый порт предоставляется также как скомпилированный пакет, который может быть установлен с помощью простой команды теми, кто предпочитает не компилировать порты из исходных текстов. Дополнительная информация о пакетах и портах находится в Гл. 4. Множество дополнительных документов, которые могут пригодиться в процессе установки и использования FreeBSD, находятся в каталоге на любой машине, работающей под управлением современной версии FreeBSD. Вы можете просматривать локально установленные документы с помощью любого браузера, поддерживающего HTML, используя следующие ссылки: Вы также можете просмотреть основные и наиболее часто обновляемые копии на /ru/. Реструктурировал, исправил и частично переписал Jim Mock. Обзор sysinstall, скриншоты и общее руководство Randy Pratt. Перевод на русский язык: Денис Пеплин. sysinstall. Это основная программа установки FreeBSD, хотя поставщики могут предлагать свои программы. В этой главе описывается использование sysinstall для установки FreeBSD. Прочтя эту главу, вы узнаете: Как создать дискеты для установки FreeBSD. Как FreeBSD видит и делит на разделы жесткие диски. Как запустить sysinstall. Вопросы, которые sysinstall задаст вам, что имеется ввиду, и как ответить на эти вопросы. Прочитать информацию о поддерживаемом оборудовании, поставляемую с устанавливаемой версией FreeBSD, и убедиться, что ваше оборудование поддерживается. Замечание: Как правило, эти инструкции по установке написаны для i386 PC совместимых компьютеров. Когда это возможно, приводятся инструкции, специфичные для других платформ например, Alpha. Хотя это руководство поддерживается в актуальном состоянии настолько, насколько это возможно, вы можете обнаружить небольшие различия между программой установки и тем, что показано здесь. Предполагается, что вы будете использовать эту главу в качестве общего руководства, а не как пошаговую инструкцию по установке. Перед установкой FreeBSD попытайтесь собрать информацию об устройствах компьютера. Во время установки FreeBSD покажет информацию об устройствах жестких дисках, сетевых картах, CDROM и т.д. с номером модели и производителем. FreeBSD также попытается определить правильную конфигурацию для этих устройств, включая информацию об IRQ и портах ввода-вывода. Из-за возможных проблем с оборудованием этот процесс не всегда завершается успешно, и возможно вам придется исправлять определенную FreeBSD конфигурацию. Если у вас уже есть установленная операционная система, например Windows или Linux, неплохо будет использовать ее возможности для просмотра настроек оборудования. Если вы не уверены, какие настройки карты расширения использовать, можете найти их на самой карте. Часто используемые номера прерываний 3, 5 и 7, порты ввода- вывода обычно пишутся в шестнадцатеричном виде, например 0x330. Мы рекомендуем распечатать эту информацию перед установкой FreeBSD. Вам может помочь использование таблицы вроде этой: Таблица 2-1. Пример сведений об оборудовании 40 GB, Seagate, первый IDE master 20 GB, IBM, второй IDE master Если компьютер, на который вы устанавливаете FreeBSD, содержит важные данные, убедитесь в наличии резервных копий и проверьте их сохранность перед установкой FreeBSD. Во время установки FreeBSD запросит подтверждение перед тем, как записать данные на диск, но, если процесс запущен, изменения нельзя отменить. Если вы хотите, чтобы FreeBSD использовала весь жесткий диск, не о чем беспокоиться - - можете пропустить этот раздел. Однако, если нужно совмещать FreeBSD с другими операционными системами, необходимо иметь представление как данные размещаются на диске и как это касается вас. Диск PC может быть поделен на отдельные части. Эти части называют разделами. Первоначально PC поддерживал только четыре раздела на диск. Эти разделы называются главными разделами. Чтобы обойти это ограничение и дать возможность создавать более чем четыре раздела, был создан новый тип раздела, расширенный раздел. Диск может содержать только один расширенный раздел. Специальные разделы, называемые логическими разделами, могут быть созданы внутри расширенного раздела. Каждый раздел имеет ID раздела - номер, который используется для определения типа данных на разделе. FreeBSD использует ID раздела Как правило, каждая операционная система, которую вы используете, определяет разделы своим способом. Например, DOS и ее потомки, такие как Windows, присваивают каждому главному и логическому разделу FreeBSD нужно устанавливать в главный раздел. FreeBSD может хранить все свои данные, включая создаваемые вами файлы, на этом одном разделе. Тем не менее, если дисков много, вы можете создать разделы FreeBSD на всех дисках или на некоторых из них. При установке FreeBSD должен быть доступен по крайней мере один раздел. Это может быть чистый, подготовленный для установки раздел, или раздел с данными, которые больше не нужны. Если все разделы на диске уже используются, вы должны освободить один из них для FreeBSD, используя программы, поставляемые с имеющейся операционной системой например, Если есть резервный раздел, используйте его. Однако, возможно сначала придется ужать один или несколько существующих разделов. FreeBSD для установки нужен диск не менее 100 MB. Однако, это очень минимальная установка, при которой не останется места для ваших личных файлов. Более реальный объем - - 250 MB без графической оболочки, и более 350 MB с графической оболочкой. Если вы собираетесь устанавливать большое количество дополнительного ПО, понадобится еще больше дискового пространства. Вы можете использовать коммерческие программы, такие как PartitionMagic, для изменения размера разделов и освобождения места под FreeBSD. Каталог на CDROM содержит две свободно распространяемых утилиты, которые могут быть использованы для этой задачи. Они называются FIPS и PResizer. Документация на обе эти утилиты доступна из того же каталога. используемых системами от MS-DOS до Windows ME. Из перечисленных приложений только PartitionMagic способна изменять размеры разделов NTFS Внимание: Неправильное использование этих утилит может привести к уничтожению данных на диске. Удостоверьтесь в наличии свежих и исправных резервных копий данных перед их использованием. Пример 2-1. Использование существующего раздела без изменения Представьте что в компьютере один 4 GB диск, на котором уже установлена Windows, и диск разбит на два логических диска каждый по 2 GB. 1 GB данных на Это означает, что диск состоит из двух разделов, по одному на каждую букву. Вы можете скопировать все данные с это освободит второй раздел для FreeBSD. Пример 2-2. Сжатие существующих разделов Представьте, что в компьютере один 4 GB диск, на котором уже установлена Windows. При установке Windows вы создали один большой раздел, получив при этом диск размером 4 GB. Вы используете 1.5 GB, и хотите выделить 2 GB для FreeBSD. Сделать резервную копию Windows, затем переустановить Windows, выделив 2 GB под ее раздел. Использовать одну из утилит, таких как PartitionMagic, описанную выше, для сжатия раздела Windows. Вам потребуется выделенный диск для FreeBSD на Alpha. В настоящее время невозможно установить две операционные системы на диск. В зависимости от конкретного компьютера Alpha, диск может быть SCSI или IDE, главное, чтобы ваш компьютер мог с него загружаться. В соответствии с соглашениями, принятыми в руководствах DigitalCompaq, весь SRM ввод показан в верхнем регистре. SRM нечувствителен к регистру. Этот пример с Digital Personal Workstation 433au показывает три подключенных диска. Первый - - устройство CDROM с именем означает SCSI диск со SCSI целевым ID 1 на первой SCSI шине A, в то время как означает SCSI диск с SCSI ID 3 на третьей SCSI шине C. Имя устройства означает SCSI адаптер. Как показано в выводе SCSI устройство CDROM определяется как любой другой жесткий диск SCSI. Если вы хотите подключиться к сети в процессе установки FreeBSD например, при установке с FTP или NFS сервера, нужно знать конфигурацию сети. Вам будет предложено ввести эту информацию, чтобы FreeBSD смогла подключиться к сети для продолжения установки. Если вы подключаетесь к сети Ethernet, или соединение с интернет подключено к Ethernet через кабельный или DSL модем, понадобится следующая информация: Если у вас нет этой информации, спросите системного администратора или провайдера интернет. Они могут сказать, что данные присваиваются автоматически, с использованием DHCP. Если это так, запомните это. Если вы дозваниваетесь до провайдера с помощью обычного модема, вы все же сможете установить FreeBSD через интернет, но это займет очень много времени. COM порт, к которому подключен модем Хотя проект FreeBSD борется за то, чтобы каждый релиз FreeBSD был настолько стабильным, насколько это возможно, ошибки порой вкрадываются в процесс разработки. В очень редких случаях эти ошибки влияют на процесс установки. Как только эти проблемы обнаруживаются и исправляются, они попадают в сообщения об ошибках FreeBSD, находящиеся на сайте FreeBSD. Вы можете проверить сообщения об ошибках перед установкой, чтобы убедиться, что не существует проблем, о которых стоит беспокоиться. Информация о релизах, включая сообщения об ошибках каждого релиза, находится странице информации о релизах сайта FreeBSD. Программа установки FreeBSD может установить FreeBSD из файлов, расположенных в одном из следующих мест: FTP сервер через файрволл или HTTP прокси, если потребуется Если вы купили FreeBSD на CD или DVD, у вас уже есть все, что нужно, переходите к следующему разделу Разд. 2.2.7. Если у вас нет установочных файлов FreeBSD, перейдите к Разд. 2.13, который описывает, как подготовиться к установке FreeBSD любым указанным выше способом. После прочтения этого раздела, вернитесь сюда и прочтите Разд. 2.2.7. Процесс установки FreeBSD начинается с загрузки в ваш компьютер программы установки FreeBSD - - эта программа не запускается из других операционных систем. Компьютер обычно загружает операционную систему, установленную на жестком диске, но также может быть настроен для использования загрузочной дискеты. Большинство современных компьютеров могут также загрузиться с компакт-диска в приводе CDROM. Подсказка: Если у вас есть FreeBSD на CDROM или DVD купленный или записанный самостоятельно, и компьютер позволяет загрузку с CDROM или DVD обычно этот пункт в BIOS называется Boot Order или что-то вроде, можете пропустить этот раздел. Образы FreeBSD CDROM и DVD являются загрузочными и могут быть использованы для установки FreeBSD без какой-либо специальной подготовки. и могут быть также закачаны из каталога floppies, архитектурой компьютера и номером версии, которую вы хотите установить, соответственно. Например, загрузочные дискеты FreeBSD 6.0-RELEASE для i386 находятся в /pub/FreeBSD/releases/i386/6.0-RELEASE/floppies/. содержит множество разных образов, ваш выбор будет зависеть от устанавливаемой версии FreeBSD и, в некоторых случаях, от конфигурации компьютера. Если вы устанавливаете FreeBSD 4.X, в большинстве случаев понадобятся всего лишь два файла, При установке FreeBSD 5.X в большинстве случаев потребуются три дискеты, в том же каталоге за свежей информацией об этих образах дисков. Замечание: Дополнительные драйверы устройств могут потребоваться в некоторых системах 5.X, старше чем FreeBSD 5.3. Эти драйверы находятся в образе бинарный режим для загрузки образов дисков. Некоторые Web-браузеры используют текстовый ASCII режим, который точно не позволит загрузиться с этих дисков. Необходимо подготовить по одной дискете на каждый загруженный образ. Эти дискеты должны быть без дефектов. Лучший способ проверить это - - отформатировать дискеты самостоятельно. Не доверяйте заводскому форматированию дискет. Утилита форматирования в Windows не сообщит о наличии плохих секторов, она просто пометит их как плохие и проигнорирует. Советуем использовать новые дискеты если вы выбрали этот способ установки. Важно: Если при попытке установки FreeBSD программа установки рушится, зависает, или делает что-то не так, сразу проверьте дискеты. Попробуйте записать образы на новые дискеты и попытайтесь еще раз. не обычные файлы, которые можно записать на диск. Это образы всего содержимого диска. Это означает, что вы не можете просто скопировать их с одного диска на другой. Вместо этого, нужно использовать специальные утилиты для записи образов на диск. Если вы записываете дискеты на компьютере под MS-DOSWindows, используйте утилиту Если вы используете образы с CDROM, и буква вашего CDROM вставляя новую дискету каждый раз, пометьте каждый диск именем файла, который вы скопировали на него. Измените команду если потребуется, в зависимости от места, куда вы поместили файлы Если вы записываете дискеты под UNIX например, под другой системой FreeBSD, используйте утилиту dd 1 для записи образов непосредственно на дискеты. Под FreeBSD запустите: и так далее. Другие UNIX системы могут по-другому именовать устройства гибких дисков, вам возможно понадобится прочитать документацию по соответствующей системе. Теперь вы готовы к установке FreeBSD. Важно: Как правило, программа установки не будет производить никаких изменений на дисках, пока не выдаст следующее сообщение: Last Chance: Are you SURE you want continue the installation? If youre running this on a disk with data you wish to save then WE STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding! We can take no responsibility for lost disk contents! Установка может быть прервана в любой момент до этого предупреждения без каких-либо изменений на жестком диске. Если вы считаете, что что-то настроили неправильно, можете просто выключить компьютер без риска что-либо повредить. Включите компьютер. После включения он должен показать способ входа в меню установки BIOS, как правило это клавиши F2, F10, Del, или Alt S. Используете те клавиши, которые показаны на экране. В некоторых случаях компьютер может показывать картинку после запуска. Как правило, нажатие Esc уберет картинку и позволит вам увидеть необходимую информацию. Найдите установки системы, указывающие ей с какого устройства загружаться. Обычно они обозначаются как Boot Order, и там как правило отображен список устройств, таких как Если вы подготовили дискеты, убедитесь, что выбран Floppy. Если вы загружаетесь с CDROM, убедитесь, что выбран он. Если вы не уверены, посмотрите руководство к компьютеру и/или к его материнской плате. Сделайте изменения, затем сохраните их и выйдите. Компьютер должен перезагрузиться. Если вы подготовили дискеты, как описано в Разд. 2.2.7, одна из них будет первым загрузочным диском; как правило, это дискета с Вставьте эту дискету в дисковод. Если вы загружаетесь с CDROM, потребуется сначала включить компьютер и вставить компакт-диск, как только это станет возможно. Если компьютер запускается как обычно, и загружает существующую операционную систему, возможны следующие причины: Диск был вставлен недостаточно рано в процессе загрузки. Оставьте его внутри и перегрузите компьютер. Установки BIOS, измененные ранее, действуют неправильно. Надо изменять их, пока они не заработают. BIOS вашего компьютера не поддерживает загрузку с выбранного типа носителя. FreeBSD начнет загрузку. Если загрузка происходит с CDROM, вы увидите что-то вроде этого информация о версии удалена: Verifying DMI Pool Boot from ATAPI CD-ROM: 1. FD 2.88MB System Type-00 done BTX loader 1.00 BTX version is 1.01 Console: internal video/keyboard BIOS drive A: is disk0 BIOS drive B: is disk1 BIOS drive C: is disk2 BIOS drive D: is disk3 BIOS 639kB/261120kB available memory FreeBSD/i386 bootstrap loader, Revision 0.8/kernel text0x277391 data0x3268c0x332a8 Hit Enter to boot immediately, or any other key for command prompt. Booting kernel in 9 Если происходит загрузка с дискеты, вы увидите что-то вроде этого информация о версии удалена: Verifying DMI Pool BTX loader 1.00 BTX version is 1.01 Console: internal video/keyboard BIOS drive A: is disk0 BIOS drive C: is disk1 BIOS 639kB/261120kB available memory FreeBSD/i386 bootstrap loader, Revision 0.8/kernel text0x277391 data0x3268c0x332a8 Please insert MFS root floppy and press enter: Следуя инструкциям, уберите дискету с и нажмите Enter. В FreeBSD 5.3 и выше набор дисков другой, он подробно описан в предыдущем разделе. Загрузитесь с первой дискеты; последовательно вставляйте остальные диски при появлении соответствующего приглашения. Идет ли загрузка с дискет или с CDROM, в процессе загрузки появится: Hit Enter to boot immediately, or any other key for command prompt. Booting kernel in 9 Подождите десять секунд или нажмите Enter. в FreeBSD 4.X будет запущено меню конфигурации ядра. Включите компьютер и дождитесь приглашения к загрузке на мониторе. Если вы подготовили загрузочные дискеты, как описано в Разд. 2.2.7, одна из них будет первым загрузочным диском; как правило, это дискета с Вставьте эту дискету в дисковод и наберите следующую команду для загрузки замените на имя вашего дисковода если потребуется: Если вы загружаетесь с CDROM, вставьте компакт-диск в привод и наберите для начала установки следующую команду замените на имя соответствующего устройства CDROM если потребуется: FreeBSD начнет загружаться. Если загрузка идет с дискет, через некоторое время вы увидите сообщение: Следуя инструкциям, удалите дискету с Идет ли загрузка с дискет или с CDROM, в процессе загрузки появится: Hit Enter to boot immediately, or any other key for command prompt. Booting kernel in 9 Подождите десять секунд или нажмите Enter. Будет запущено меню конфигурации ядра. Замечание: Начиная с FreeBSD версии 5.0 и более поздних, userconfig был удален и заменен методом 5. За более подробной информацией о 5 обращайтесь к Разд. 12.5 kernel это ядро операционной системы. В нем реализовано множество функций, включая доступ ко всем устройствам, которые могут быть в системе, таким как жесткие диски, сетевые карты, звуковые карты и т.д. Каждое устройство, поддерживаемое ядром FreeBSD имеет свой драйвер. У каждого драйвера есть имя из двух или трех букв, например для драйвера последовательного доступа SCSI, или для драйвера последовательного ввода-вывода который управляет COM портами. Когда ядро загружено, каждый драйвер проверяет систему на предмет наличия поддерживаемого оборудования. Если оно найдено, драйвер конфигурирует оборудование и делает его доступным остальной части ядра. Такая проверка обычно называется тестированием устройства. К сожалению, это не всегда безопасно. Некоторые драйвера конфликтуют между собой, и проверка части оборудования иногда может привести другую часть в неработоспособное состояние. Это основное ограничение архитектуры PC Многие старые устройства называются ISA - - в противоположность PCI. Стандарт ISA требует, чтобы в каждом устройстве была прописана некоторая информация, обычно номер Interrupt Request Line IRQ и адрес порта ввода-вывода, которые используются драйвером. Эта информация обычно устанавливается с использованием перемычек на карте, или с помощью DOS утилиты. Часто это вызывало проблемы, поскольку было невозможно использовать два устройства с одинаковыми IRQ или адресами портов. Новые устройства поддерживают PCI стандарт, который не требует установки параметров вручную, так как устройства способны общаться с BIOS и договариваться, какие IRQ и адреса портов ввода-вывода использовать. Если в вашем компьютере есть устройства ISA, FreeBSD драйвер для этого устройства должен быть настроен с IRQ и адресом порта, установленными на карте. Для этого может понадобиться собрать сведения об оборудовании Разд. 2.2.1. К сожалению, номера IRQ и адреса портов, используемые некоторыми драйверами, конфликтуют. Это потому, что некоторые устройства ISA поставляются с конфликтующими номерами IRQ или адресами портов. По умолчанию драйвера FreeBSD предусмотрительно настроены для использования заводских установок, поэтому будут работать столько устройств, сколько возможно. Это как правило не проблема при каждодневном использовании FreeBSD. В компьютере обычно нет двух конфликтующих устройств, поскольку в противном случае одно из них не будет работать независимо от используемой операционной системы. Это может стать проблемой при установке FreeBSD в первый раз, потому что ядро, используемое для установки, собрано с максимальным количеством драйверов для поддержки множества различных конфигураций оборудования. Это означает, что некоторые из драйверов имеют конфликтующие настройки. Устройства тестируются в строго определенном порядке, и если у вас есть устройство, тестирующееся позже, но конфликтующее с ранее протестированным устройством, оборудование может не работать или быть некорректно протестировано в процессе установки FreeBSD. Поэтому первое, что вы должны сделать при установке FreeBSD - - проверить список устройств, настроенных в ядре. Отключите некоторые из них, если таких устройств нет. Подтвердите и измените конфигурацию, если это устройство присутствует, но установки по умолчанию неверны. Возможно, это звучит гораздо сложнее чем есть на самом деле. На Рис. 2-1 показано главное меню конфигурации ядра. Мы рекомендуем выбрать опцию Start kernel configuration in full-screen visual mode, так как это самый простой интерфейс для нового пользователя. Рисунок 2-1. Меню конфигурации ядра Экран конфигурации ядра Рис. 2-2 поделен на четыре части: Свернутый список устройств, помеченных как active, поделен на группы, такие как Каждый драйвер показан в виде описания, имени из двух или трех букв, используемых IRQ и порта. В дополнение, если какой-либо активный драйвер конфликтует с другим активным драйвером, после имени драйвера пишется В этом разделе также показано общее число конфликтующих активных драйверов. Драйверы, помеченные как неактивные. Они остаются в ядре, но не будут тестировать свои устройства при загрузке ядра. Они поделены на группы так же как и активные драйверы. Дополнительная информация о выбранном в данный момент драйвере, включая IRQ и адрес порта. Информация об управляющих клавишах, доступных в данный момент. Рисунок 2-2. Визуальный интерфейс конфигурации ядра Не беспокойтесь, если появятся сообщения о конфликтах, так и должно быть; все драйверы включены и как уже объяснялось, некоторые из них будут конфликтовать с другими. Сейчас вам нужно просмотреть список драйверов и разрешить конфликты. Нажмите X. Это полностью раскроет список драйверов и вы сможете увидеть их все. Вам понадобятся клавиши навигации для прокрутки назад и вперед в списке активных драйверов. Рис. 2-3 показывает результат действия Рисунок 2-3. Развернутый список драйверов Отключите все драйвера устройств, которых у вас нет. Для отключения драйвера, переместитесь к нему с помощью клавиш навигации и нажмите Del. Драйвер будет помещен в список Если вы случайно отключили нужное устройство, нажмите Tab для переключения на выберите отключенный драйвер, и нажмите Enter, чтобы вернуть его обратно в список активных драйверов. Он управляет экраном, и он нужен, если только вы не производите установку через последовательный порт. только если вы используете USB клавиатуру. Если клавиатура обычная, оставьте Если конфликтов нет, можете пропустить этот этап. В другом случае оставшиеся конфликты должны быть проверены. Если они не помечены как allowed conflict в окне сообщений, должны быть изменены или IRQ/адрес порта для тестирования устройства, или IRQ/адрес порта физического устройства. Для изменения IRQ и адреса порта ввода-вывода драйвера, выберите устройство и нажмите Enter. Курсор переместится в третье окно и вы сможете изменить значения. Вам нужно ввести значения IRQ и адреса порта, определенные в процессе сбора информации об оборудовании. Нажмите Q для завершения редактирования конфигурации устройства и возврата в список активных устройств. Если вы не уверены, какими должны быть эти значения, попробуйте использовать Некоторые драйвера FreeBSD могут безопасно протестировать оборудование для определения правильных значений, и значение указывает им сделать это. Процедура изменения адреса физического устройства различна для разных устройств. Для некоторых устройств вам может понадобиться извлечь карту из компьютера и установить перемычки или DIP переключатели. Другие устройства могут поставляться с DOS дискетой, содержащей программы, используемые для перенастройки карты. В любом случае, обращайтесь к документации, поставляемой с устройством. Изменение адреса, несомненно, потребует перезагрузки компьютера, так что вам потребуется опять вернуться к процессу установки FreeBSD после перенастройки карты. Когда все конфликты будут разрешены, экран будет выглядеть как Рис. 2-4. Рисунок 2-4. Конфигурация драйверов без конфликтов Как видите, список активных драйверов стал гораздо меньше, поскольку в нем только драйвера реально установленных устройств. Теперь вы можете сохранить изменения и перейти к следующему пункту установки. Нажмите Q для выхода из меню конфигурации. Появится сообщение: Save these parameters before exiting? Yes/No/Cancel Нажмите Y для сохранения параметров в памяти они будут сохранены на диск после завершения установки и тестирование начнется. После отображения белым по черному результатов тестирования запустится Рисунок 2-5. Главное меню Sysinstall Последние несколько сотен линий, отображенные на экране, сохраняются и могут быть просмотрены. Для просмотра буфера нажмите Scroll Lock. Это включит прокрутку экрана. Вы можете использовать клавиши навигации или PageUp и PageDown для просмотра результатов. Нажмите Scroll Lock еще раз для отключения прокрутки. Сделайте это сейчас для просмотра текста, ушедшего за экран, когда ядро закончило тестирование устройств. Вы увидите текст вроде Рис. 2-6, хотя в деталях он будет отличаться в зависимости от устройств, имеющихся в вашем компьютере. Рисунок 2-6. Типичный вывод Device Probe avail memory 253050880 247120K bytes Preloaded elf kernel kernel at 0xc0817000. Preloaded mfsroot/mfsroot at 0xc0817084. md0: Preloaded image /mfsroot 4423680 bytes at 0xc03ddcd4 md1: Malloc disk Using PIR table, 4 entries at 0xc00fde60 npx0: math processor on motherboard npx0: INT 16 interface pcib0: Host to PCI bridge on motherboard pci0: PCI bus on pcib0 pcib1: VIA 82C598MVP Apollo MVP3 PCI-PCI AGP bridge at device 1.0 on pci0 pci1: PCI bus on pcib1 pci1: Matrox MGA G200 AGP graphics accelerator at 0.0 irq 11 isab0: VIA 82C586 PCI-ISA bridge at device 7.0 on pci0 isa0: iSA bus on isab0 atapci0: VIA 82C586 ATA33 controller port 0xe000-0xe00f at device 7.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 uhci0 VIA 83C572 USB controller port 0xe400-0xe41f irq 10 at device 7.2 on pci 0 usb0: VIA 83572 USB controller on uhci0 usb0: USB revision 1.0 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr1 uhub0: 2 ports with 2 removable, self powered pci0: unknown card vendor0x1106, dev0x3040 at 7.3 dc0: ADMtek AN985 10/100BaseTX port 0xe800-0xe8ff mem 0xdb000000-0xeb0003ff ir q 11 at device 8.0 on pci0 dc0: Ethernet address: 00:04:5a:74:6b:b5 miibus0: MII bus on dc0 ukphy0: Generic IEEE 802.3u media interface on miibus0 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto ed0: NE2000 PCI Ethernet RealTek 8029 port 0xec00-0xec1f irq 9 at device 10. 0 on pci0 ed0 address 52:54:05:de:73:1b, type NE2000 16 bit isa0: too many dependant configs 8 isa0: unexpected small tag 14 orm0: Option ROM at iomem 0xc0000-0xc7fff on isa0 fdc0: NEC 72065B or clone at port 0x3f0-0x3f5, 0x3f7 irq 6 drq2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: 1440-KB 3.5 drive on fdc0 drive 0 atkbdc0: Keyboard controller i8042 at port 0x60, 0x64 on isa0 atkbd0: AT Keyboard flags 0x1 irq1 on atkbdc0 kbd0 at atkbd0 psm0: PS/2 Mouse irq 12 on atkbdc0 psm0: model Generic PS/mouse, device ID 0 vga0: Generic ISA VGA at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: System console at flags 0x100 on isa0 sc0: VGA 16 virtual consoles, flags0x300 sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A ppc0: Parallel port at port 0x378-0x37f irq 7 on isa0 pppc0: SMC-like chipset ECP/EPP/PS2/NIBBLE in COMPATIBLE mode ppc0: FIFO with 16/16/15 bytes threshold plip0: PLIP network interface on ppbus0 ad0: 8063MB IBM-DHEA-38451 16383/16/63 at ata0-master UDMA33 acd0: CD-RW LITE-ON LTR-1210B at ata1-slave PIO4 Mounting root from ufs:/dev/md0c/stand/sysinstall running as init on vty0 Внимательно проверьте результаты тестирования устройств и убедитесь, что FreeBSD обнаружила все устройства, какие нужно. Если устройство не найдено, его не будет в списке. Если драйвер устройства нуждается в настройке IRQ и адреса порта, проверьте, введены ли они правильно. Если вам нужно внести изменения в UserConfig, потребуется выйти из sysinstall и начать сначала. Это также хороший путь познакомиться поближе с процессом конфигурации. Рисунок 2-7. Выбор Sysinstall Exit Используйте клавиши навигации для выбора Exit Install из главного меню. Отобразится сообщение: User Confirmation Requested Are you sure you wish to exit? The system will reboot be sure to remove any floppies from the drives. Yes No Программа установки запустится опять, если компакт-диск остался в устройстве и было выбрано Yes. Если вы загружаетесь с дискет, необходимо будет извлечь дискету с Утилита sysinstall это программа установки, предоставляемая проектом FreeBSD. Это консольное приложение, разделенное на несколько меню и экранов, которые вы можете использовать для настройки и управления процессом установки. Меню sysinstall управляется клавишами навигации, Enter, пробелом, и другими. Подробное описание клавиш и их функций содержится в информации по использованию sysinstall. Для просмотра этой информации убедитесь, что выбраны пункт Usage и кнопка Select, как показано на Рис. 2-8, затем нажмите Будут показаны инструкции по использованию меню. После просмотра инструкций, нажмите Enter для возврата в главное меню. Рисунок 2-8. Выбор Usage в главном меню Sysinstall Из главного меню выберите клавишами навигации Doc и нажмите Enter. Рисунок 2-9. Выбор меню документации Будет отображено меню документации. Рисунок 2-10. Меню документации Sysinstall Рекомендуется прочитать предоставляемую документацию. Enter. После прочтения документа нажмите Enter для возврата в меню документации. Для возврата в главное меню выберите Exit с помощью клавиш навигации и нажмите Enter. Для изменения раскладки клавиатуры выберите из меню с помощью клавиш навигации Keymap и нажмите Enter. Это потребуется только при использовании нестандартной или не-US клавиатуры. Рисунок 2-11. Выбор меню раскладки клавиатуры Различные раскладки клавиатуры могут быть выбраны из меню с использованием клавиш навигации, затем следует нажать Space. Нажатие Space еще раз приведет к отмене выбора. Когда необходимые раскладки будут выбраны, перейдите на OK с помощью клавиш навигации и нажмите Enter. На экран выведена только часть списка. Нажав Tab, можно выбрать Cancel, вернуться к раскладке по умолчанию и перейти к главному меню. Рисунок 2-12. Меню раскладки клавиатуры Рисунок 2-13. Выбор параметров установки Рисунок 2-14. Параметры Sysinstall Параметры по умолчанию обычно устраивают большинство пользователей и не нуждаются в изменении. Имя релиза зависит от устанавливаемой версии. Описание выбранного пункта будет появляться внизу экрана с синей подсветкой. Обратите внимание, что один из параметров - - Use Defaults, означает сброс всех параметров к значениям по умолчанию. Нажатие F1 отобразит справку по различным параметрам. Нажатием Q можно перейти к главному меню. Пункт Standard рекомендуется для новых пользователей UNIX или FreeBSD. Используйте клавиши навигации для выбора пункта Standard, а затем нажмите Enter для запуска установки. Рисунок 2-15. Начало стандартной установки Ваша первая задача - - выделить дисковое пространство под FreeBSD и разметить его, чтобы sysinstall могла его подготовить. Для этого вам нужно знать, как FreeBSD ищет информацию на диске. Перед установкой и настройкой FreeBSD нужно позаботиться кое о чем, особенно если жестких дисков несколько. В PC, работающем под BIOS-зависимой операционной системой, такой как MS-DOS или Microsoft Windows, BIOS может отходить от обычного порядка нумерации дисков. Это позволяет пользователю загружаться не только с так называемого primary master диска. Это особенно удобно для тех пользователей, кто обнаружил, что простейший и самый дешевый путь делать резервную копию системы - - купить второй идентичный первому жесткий диск и регулярно делать копии первого диска на второй, используя XCOPY. Затем, если первый диск выйдет из строя, будет заражен вирусом или поврежден из-за сбоя операционной системы, он может быть легко восстановлен путем логической перестановки дисков в BIOS. Это все равно что переключить кабели дисков, но без вскрытия корпуса. Более дорогостоящие системы со SCSI контроллерами зачастую имеют расширения BIOS, позволяющие сходным путем менять порядок до семи SCSI дисков. Пользователи, привыкшие пользоваться этими полезными функциями, могут быть удивлены, что во FreeBSD результаты не совпадают с ожидаемыми. FreeBSD не использует BIOS, и не знает о логическом отображении дисков в BIOS. Это может привести к очень сложным ситуациям, особенно когда диски имеют одинаковую геометрию и содержат точную копию данных друг друга. При использовании FreeBSD всегда восстанавливайте настройки BIOS к первоначальной нумерации перед установкой системы и оставляйте их в таком виде. Если вам понадобится переключить диски, сделайте это, но путем физического переконфигурирования, вскрыв корпус, переключив перемычки и кабели. Билл разобрал старый Wintel компьютер, чтобы сделать еще один компьютер под FreeBSD для Фреда. Билл установил один SCSI диск как нулевое устройство SCSI и поставил на него FreeBSD. Фред начал использовать систему, но через несколько дней обнаружил, что старый SCSI диск сообщает о множестве сбоев и сказал об этом Биллу. Еще через несколько дней Билл решил, что настало время решить проблему, и достал такой же SCSI диск из заначки в кладовке. Первая проверка поверхности показала, что диск работает нормально; Билл установил этот диск как четвертое устройство SCSI и скопировал образ диска с нулевого устройства на четвертое. Теперь, когда новый диск был установлен и отлично работал, Билл решил что неплохо бы начать использовать его, и с помощью функции SCSI BIOS поменял порядок дисков, чтобы система могла грузиться с четвертого устройства SCSI. FreeBSD загрузилась и работала без проблем. Фред поработал еще несколько дней, и скоро они с Биллом решили, что настало время для нового приключения - - время обновить версию FreeBSD. Билл удалил нулевое устройство SCSI, потому что оно подглючивало, и установил на его место такой же диск из заначки. Затем Билл установил новую версию FreeBSD на новое нулевое устройство SCSI используя дискеты Фреда с интернет сервера FTP. Установка прошла отлично. Фред использовал новую версию FreeBSD несколько дней и удостоверился, что она вполне подходит для работы в инженерном отделе. Настало время скопировать все архивы со старого диска. Фред смонтировал четвертое устройство SCSI последнюю копию старой версии FreeBSD и обнаружил, что ни одного из его драгоценных файлов на четвертом устройстве SCSI нет. Когда Билл сделал копию с нулевого устройства SCSI на четвертое устройство SCSI, оно стало клоном. Когда Билл поменял настройки SCSI BIOS, чтобы загрузиться с четвертого устройства SCSI, он всего лишь обманул сам себя. FreeBSD все еще работала с нулевого устройства SCSI. Изменение этих настроек BIOS привело к загрузке части кода Boot и Loader с выбранного в BIOS диска, но после загрузки драйверов FreeBSD настройки BIOS были проигнорированы, и FreeBSD вернулась к нормальной нумерации. Как показано на пальцах, система продолжила работать с нулевым устройством SCSI, и все данные Фреда остались там, а не на четвертом устройстве SCSI. То, что система грузилась с четвертого устройства SCSI, было всего лишь обманутыми ожиданиями. Мы рады упомянуть, что данные не были уничтожены или повреждены при нашем исследовании этого феномена. Старое нулевое устройство SCSI было вытащено из груды железа, и все файлы Фреда вернулись к нему. Хотя в этом рассказе были использованы SCSI диски, с IDE дисками все точно так же. Замечание: Внесенные вами изменения не будут записываться на диск сразу. Если вы думаете, что сделали ошибку, и хотите начать сначала, можете использовать меню для выхода из sysinstall и попробовать еще раз или нажатием U вызвать опцию Undo отмена. Если вы запутались и не можете выйти, просто выключите компьютер. Message In the next menu, you will need to set up a DOS-style fdisk partitioning scheme for your hard disk. If you simply wish to devote all disk space to FreeBSD overwriting anything else that might be on the disks selected then use the All command to select the default partitioning scheme followed by a Quit. If you wish to allocate only free space to FreeBSD, move to a partition marked unused and use the Create command. OK Press enter or space Нажмите Enter как предлагается. Будет показан список всех жестких дисков, обнаруженных ядром во время тестирования устройств. Рис. 2-16 показывает пример системы с двумя IDE дисками. Они были названы Рисунок 2-16. Выберите диск для FDisk Вы можете быть удивлены, почему устройства здесь нет. Почему оно было пропущено? Предположим, что у вас есть два жестких диска IDE, один master на первом контроллере IDE, а второй master на втором контроллере IDE. Если FreeBSD пронумерует их в том порядке, в котором нашла, Но если вы добавите третий диск, как slave устройство на первый контроллер IDE, он станет Поскольку имена устройств таких как используются для обращения к файловым системам, вы можете вдруг обнаружить, что некоторые из ваших файловых систем больше не отображаются правильно и вам потребуется изменить конфигурацию FreeBSD. Для обхода этой проблемы, ядро может быть настроено так, чтобы именовать IDE диски на основе их местоположения, а не порядка, в котором они были найдены. С этой схемой master диск на втором контроллере IDE будет Это конфигурация ядра FreeBSD по умолчанию, поэтому на экране показаны У компьютера, с которого был взят этот снимок экрана, есть по одному IDE диску на обеих master каналах IDE контроллеров и ни одного диска на каналах slave. Вы должны выбрать диск, на который хотите установить FreeBSD, и нажать OK. Запустившийся FDisk будет выглядеть примерно как Рис. 2-17. Экран FDisk разбит на три раздела. Первый раздел, занимающая первые две линии экрана, показывает подробную информацию о выбранном в данный момент диске, включая его имя во FreeBSD, геометрию и общий размер диска. Второй раздел показывает имеющиеся в данный момент на диске слайсы, где они начинаются и заканчиваются, их размер, имя, которое им дала FreeBSD, описание и подтип. На этом примере показаны два маленьких неиспользованных слайса, которые являются артефактами схемы разметки диска на PC. Также показан один большой FAT слайс, который почти всегда является диском в MS-DOSWindows, и дополнительный слайс, который может содержать диски с другими буквами для MS-DOSWindows. Третий раздел показывает команды, доступные в FDisk. Рисунок 2-17. Типичные разделы fdisk перед редактированием Ваши действия теперь будут зависеть от того, как вы хотите разбить диск на слайсы. Если вы хотите использовать для FreeBSD весь диск это приведет к удалению всех других данных на этом диске когда вы подтвердите sysinstall продолжение процесса установки, нажмите A, что соответствует опции Использовать весь диск Use Entire Disk. Существующие слайсы будут удалены, и заменены на небольшую область, помеченную как это опять же артефакт разметки диска PC, и один большой слайс для FreeBSD. Когда вы сделаете это, нужно выбрать вновь созданный слайс FreeBSD используя клавиши навигации, а затем нажать S, чтобы сделать слайс загрузочным. Экран будет похож на Рис. 2-18. Обратите внимание, что активен и с него будет происходить загрузка. Если вы будете удалять существующий слайс для освобождения места под FreeBSD, выберите слайс, используя клавиши навигации, и нажмите D. Затем можете нажать C, и получить приглашение на ввод размера слайса, который вы хотите создать. Введите соответствующее значение и нажмите Enter. Значение по умолчанию в этом поле означает наибольший размер слайса, который может быть выбран; это может быть наибольший непрерывный блок неразмеченного пространства или размер всего жесткого диска. Если вы уже освободили место для FreeBSD возможно, используя утилиту вроде PartitionMagic, можете нажать C для создания нового слайса. Будет также предложено ввести размер слайса, который вы хотите создать. Рисунок 2-18. Разбиение в Fdisk с использованием всего диска Когда закончите, нажмите Q. Изменения будут сохранены в sysinstall, но еще не записаны на диск. Теперь вам предлагается установить менеджер загрузки. Как правило, нужно выбрать установку менеджера загрузки если: У вас больше чем один диск и вы устанавливаете FreeBSD не на первый диск. Вы устанавливаете FreeBSD вместе с другой операционной на один и тот же диск, и хотите выбирать при загрузке FreeBSD или другую операционную систему. Если FreeBSD единственная операционная система, установленная на этом компьютере, и находится на первом жестком диске, подойдет менеджер загрузки Standard. Выберите None если вы используете менеджер загрузки сторонних разработчиков, способный загрузить FreeBSD. Сделайте выбор и нажмите Enter. Рисунок 2-19. Меню менеджера загрузки Sysinstall Экран подсказки, вызываемый по нажатию F1, описывает проблемы, которые могут быть встречены при попытке совместного использования диска операционными системами. Если дисков больше чем один, вернитесь к экрану выбора дисков Select Drives после выбора менеджера загрузки. Если вы собираетесь устанавливать FreeBSD более чем на один диск, можете выбрать другой диск и повторить процесс разбиения на слайсы с использованием FDisk. Важно: Если вы устанавливаете FreeBSD не на первый жесткий диск, потребуется установить менеджер загрузки FreeBSD на оба диска. Рисунок 2-20. Выход из выбора диска Клавиша Tab переключает между последним выбранным диском, OK, и Cancel. Нажмите Tab один раз для выбора OK, затем нажмите Enter для продолжения установки. Теперь вы должны создать несколько разделов внутри каждого только что созданного слайса. Запомните, что у каждого раздела есть буква с имеют соглашения, которых вы должны придерживаться. Некоторые приложения могут выигрывать от определенных схем разделов, особенно если у вас разделы на более чем одном диске. Тем не менее, для вашей первой установки FreeBSD не нужно слишком углубляться в принципы разбиения диска. Более важно установить FreeBSD и начать ее использовать. Вы всегда можете переустановить FreeBSD для изменения схемы разделов, когда поближе познакомитесь с операционной системой. Эта схема показывает четыре раздела - - один для подкачки и три для файловых систем. Таблица 2-2. Планирование разделов для первого диска Корневая файловая система. Любая другая файловая система будет смонтирована на эту. 100 MB это подходящий размер для этой файловой системы. Вы не будете хранить на ней слишком много данных, а обычная установка FreeBSD разместит здесь около 40 MB данных. Оставшееся пространство используется для временных файлов, а также оставляет возможность расширения для будущих версий FreeBSD, которым может понадобится больше места в Здесь находится раздел подкачки. Выбор правильного размера раздела подкачки это немного искусство. Хороший практический способ выбрать размер подкачки это установить его равным двум или трем размерам доступной физической памяти RAM. Должно быть хотя бы 64 MB подкачки; если в компьютере меньше чем 32 MB памяти - - установите размер подкачки равным 64 MB. Если у вас больше одного диска, можно расположить подкачку на каждом диске. FreeBSD будет использовать каждый диск, что серьезно увеличит скорость подкачки. В этом случае, определите общий размер подкачки, который вам нужен например, 128 MB, и поделите его на число имеющихся дисков например, два для определения размера разделов подкачки, которые нужно разместить на каждом вашем диске, в этом примере 64 MB на диск. содержит файлы, которые постоянно меняются; логи и другие административные файлы. Многие из этих файлов интенсивно читаются и записываются в процессе ежедневной работы FreeBSD. Размещение их на отдельной файловой системе позволяет FreeBSD оптимизировать доступ к этим файлам без затрагивания других каталогов, не имеющих такой же модели доступа. Если вы устанавливаете FreeBSD более чем на один диск, вы должны также создать разделы в других слайсах, которые настроили. Простейший путь сделать это - - создать два раздела на каждом диске, один для подкачки, а другой для файловой системы. Таблица 2-3. Разметка разделов для остальных дисков Как уже обсуждалось, вы можете распространить подкачку на каждый диск. Даже если раздел свободен, соглашение говорит о том, что подкачка находится на разделе Остальная часть диска занята одним большим разделом. Он легко может быть помещен на раздел Однако, соглашение говорит, что раздел файловой системы. вы можете не следовать этому соглашению, но программа sysinstall будет ему следовать, поэтому приняв его, вы сделаете установку несколько проще. Вы можете монтировать эти файловые системы к любой точке; в этом примере предлагается смонтировать их как каталоги это номер, который уникален для каждого диска. Но вы можете использовать другую схему, если захотите. Теперь, выбрав разметку разделов, можете приступить к их созданию в sysinstall. Вы увидите это сообщение: Message Now, you need to create BSD partitions inside of the fdisk partitions just created. If you have a reasonable amount of disk space 200 MB or more and dont have any special requirements, simply use the Auto command to allocate space automatically. If you have more specific needs or just dont care for the layout chosen by Auto, press F1 for more information on manual layout. OK Press enter or space Нажмите Enter для запуска редактора разделов FreeBSD, называемого Disklabel. Рис. 2-21 показывает экран только что запущенного Disklabel. Экран поделен на три раздела. Первые несколько линий показывают имя диска, с которым вы сейчас работаете и слайс, содержащий раздел, который вы создаете здесь Disklabel называет это вместо имени слайса. Этот экран также показывает объем свободного пространства на слайсе, т.е. пространство, выделенное под слайс, но еще не отданное под раздел. В центре экрана показаны уже созданные разделы, имена файловых систем, содержащихся в разделах, их размер и некоторые опции, применяемые при создания файловых систем. Нижняя треть экрана показывает управляющие клавиши, работающие в Рисунок 2-21. Редактор Sysinstall Disklabel Disklabel может автоматически создать разделы и присвоить им размеры по умолчанию. Попробуйте это, нажав A. Вы увидите экран как на Рис. 2-22. В зависимости от размера диска, значения по умолчанию могут подходить или не подходить вам. Это не имеет значения, если вы не принимаете их. Замечание: Начиная с FreeBSD 4.5, по умолчанию под каталог Это помогает избежать заполнения раздела Рисунок 2-22. Редактор Sysinstall Disklabel с установками по умолчанию Если вы решили не использовать разделы по умолчанию и заменить их на свои, используйте клавиши навигации для выбора первого раздела, затем нажмите D для его удаления. Повторите это для удаления всех предложенных разделов. root, убедитесь, что выбран соответствующий слайс вверху экрана и нажмите C. Появится диалог, предлагающий выбрать размер нового раздела как показано на Рис. 2-23. Вы можете ввести количество блоков диска, или количество мегабайт с после номера, или гигабайт с Замечание: Начиная с FreeBSD 5.X, пользователи могут: выбирать UFS2 который используется по умолчанию в FreeBSD 5.1 и выше, используя опцию в процессе создания раздела. Не забудьте добавить Рисунок 2-23. Свободное место для корневого раздела Размер по умолчанию задан для создания корневого раздела на весь слайс. Если вы используете размеры разделов, описанные ранее в примере, удалите это значение используя Backspace, а затем введите Рисунок 2-24. Редактирование размера корневого раздела После указания размера раздела вам будет задан вопрос, должен ли этот раздел содержать файловую систему или раздел подкачки. Диалог показан на Рис. 2-25. Первый раздел будет содержать файловую систему, поэтому проверьте, что выбрана FS и нажмите Рисунок 2-25. Выбор типа корневого раздела Наконец, поскольку вы создаете файловую систему, нужно сказать Disklabel где файловая система будет смонтирована. Диалог показан на Рис. 2-26. Точка монтирования корневой файловой системы Рисунок 2-26. Выбор точки монтирования корневой файловой системы На экране будет показан вновь созданный раздел. Вам нужно повторить эту процедуру для других разделов. При создании раздела подкачки вопроса про точку монтирования не будет, поскольку раздел подкачки никогда не монтируется. Когда будете создавать последний раздел, можете оставить предложенный размер как есть, чтобы использовать весь остаток слайса. Последний экран FreeBSD редактора DiskLabel будет похож на Рис. 2-27, хотя ваш выбор значений может быть другим. Нажмите Q, чтобы выйти. Рисунок 2-27. Редактор Sysinstall Disklabel Выбор дистрибутивного набора зависит в основном от направления будущего использования системы и от доступного дискового пространства. Предустановленные опции варьируются от наименьшей возможной конфигурации до полной установки. Для новичков в UNIX и/или FreeBSD лучшим выбором будет одна из этих предустановленных опций. Настройка дистрибутивного набора как правило нужна более опытным пользователям. Нажмите F1 для получения информации о дистрибутивных наборах и их содержимом. После просмотра помощи нажмите Enter для возврата к меню выбора дистрибутивного набора. Если желательно наличие графического интерфейса пользователя, должен быть выбран дистрибутивный набор с названием, начинающимся на Задачи настройки X сервера и выбора десктопа по умолчанию должны быть выполнены после установки FreeBSD. Более подробная информация по настройке X сервера находится в Гл. 5. Устанавливаемая по умолчанию версия X11 зависит от устанавливаемой версии FreeBSD. Для FreeBSD версий до 5.3, устанавливается XFree86 4.X. Для FreeBSD 5.3 и более поздних, по умолчанию устанавливается Xorg. Если планируется пересборка ядра, выберите опцию, включающую исходные тексты. Информация о том, зачем пересобирать ядро и как это сделать, находится на Гл. 8. Ясно, что наиболее универсальная система включает все. Если места на диске достаточно, выберите All, как показано на Рис. 2-28 и нажмите Enter. Если есть сомнения относительно того, хватит ли диска, используйте наиболее подходящую опцию. Не беспокойтесь о том, какой выбор будет наилучшим, другие части дистрибутива могут быть добавлены после установки. Рисунок 2-28. Выбор дистрибутивных наборов После выбора подходящего дистрибутива можно будет выбрать установку Коллекции Портов FreeBSD. Коллекция Портов - - лёгкий и удобный путь установки программ. Коллекция Портов не содержит исходных кодов программ. Это набор файлов, который автоматизирует загрузку, компилирование и установку пакетов программного обеспечения сторонних разработчиков. Гл. 4 показывает, как использовать Коллекцию Портов. Программа установки не проверяет, есть ли достаточно места. Выберите эту опцию только в том случае, если его достаточно. В FreeBSD 6.0, Коллекция Портов занимает около 440 MB. В более современных релизах это значение всегда больше. User Confirmation Requested Would you like to install the FreeBSD ports collection? This will give you ready access to over 13, 300 ported software packages, at a cost of around 440 MB of disk space when clean and possibly much more than that if a lot of the distribution tarballs are loaded unless you have the extra CDs from a FreeBSD CD/DVD distribution available and can mount it on/cdrom, in which case this is far less of a problem. The ports collection is a very valuable resource and well worth having on your/usr partition, so it is advisable to say Yes to this option. For more information on the ports collection the latest ports, visit: /ports Yes No Выберите Yes для установки Коллекции Портов, или No, чтобы пропустить установку. Нажмите Enter, чтобы продолжить. Меню выбора дистрибутивных наборов появится опять. Рисунок 2-29. Подтверждение выбора дистрибутивного набора Если вы согласны с выбранными опциями, переместитесь на Exit, убедитесь, что выбран OK и нажмите Enter, чтобы продолжить. При установке с CDROM или DVD используйте клавиши навигации, для перехода к пункту Install from a FreeBSD CD/DVD. Убедитесь, что выбран OK, и нажмите Enter для запуска установки. При других методах установки выберите соответствующую опцию и следуйте инструкциям. Нажмите F1 для просмотра справки по источникам установки. Нажмите Enter для возврата к меню выбора источника установки. Рисунок 2-30. Выбор источника установки Режимы установки с FTP: Есть три режима установки через FTP, которые вы можете выбрать: активный FTP, пассивный FTP, или через HTTP прокси. С этой опцией все закачки по FTP будут выполнены в активном режиме. Этот режим не позволяет работать через файрволл, но зачастую позволяет работать со старыми серверами FTP, не поддерживающими пассивный режим. Если соединение прерывается в пассивном режиме по умолчанию, попробуйте активный! Эта опция говорит sysinstall использовать пассивный режим для работы с FTP. Он позволяет работать через файрволл, не разрешающий входящие соединения на случайных TCP портах. Эта опция говорит sysinstall использовать HTTP протокол как Web-браузер для работы с FTP через прокси. Прокси будет транслировать все запросы и посылать их на FTP сервер. Это позволяет проходить через файрволл, на котором FTP запрещен, но есть HTTP прокси. В этом случае потребуется указать прокси и FTP сервер. Для работы с FTP через прокси, необходимо поместить имя сервера как часть имени пользователя после знака. Прокси сервер обманет настоящий сервер. Например, предположим что вы хотите провести установку с используя FTP через прокси прослушивающем порт 1024. В этом случае, войдите в меню параметров, установите имя пользователя FTP а вместо пароля введите свой адрес email. В качестве источника установки выберите FTP или пассивный FTP, если прокси его поддерживает, и URL вы сможете провести установку с этого компьютера файлы будут загружены с как требуется для установки. Теперь можно начинать установку. Это последний шанс отменить установку, и таким образом избежать изменений на жестком диске. User Confirmation Requested Last Chance! Are you SURE you want to continue the installation? If youre running this on a disk with data you wish to save then WE STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding! We can take no responsibility for lost disk contents! Yes No Время установки сильно зависит от выбранного дистрибутивного набора, источника установки и скорости компьютера. Появится несколько сообщений о статусе процесса установки. Установка будет завершена, когда отобразится следующее сообщение: Message Congratulations! You now have FreeBSD installed on your system. We will now move on to the final configuration questions. For any option you do not wish to configure, simply select No. If you wish to re-enter this utility after the system is up, you may do so by typing:/stand/sysinstall. OK Press enter to continue Нажмите Enter для начала послеустановочной настройки. Enter прервет процесс установки, изменения в систему внесены не будут. Появится следующее сообщение: Message Installation complete with some errors. You may wish to scroll through the debugging messages on VTY1 with the scroll-lock feature. You can also choose No at the next prompt and go back into the installation menus to retry whichever operations have failed. OK Это сообщение появилось, поскольку ничего не было установлено. Нажатие Enter вернет вас в главное меню установки, чтобы выйти из нее. После успешной установки необходимо настроить множество параметров. Некоторые параметры могут быть заданы из меню параметров после установки, перед загрузкой установленной FreeBSD, или после нее с использованием в FreeBSD версии 5.2 и более ранних, где надо выбрать пункт Configure. Если вы настраивали PPP для установки через FTP, этот экран не появится, и настройку можно будет произвести позже как описано выше. Чтобы лучше узнать о локальных сетях и настройке FreeBSD в качестве шлюза/маршрутизатора, обратитесь к главе Сложные вопросы работы в сети. User Confirmation Requested Would you like to configure any Ethernet or SLIP/PPP network devices? Yes No Для настройки сетевого устройства выберите Yes и нажмите Enter. Или нажмите No, чтобы продолжить. Рисунок 2-31. Выбор Ethernet устройства User Confirmation Requested Do you want to try IPv6 configuration of the interface? Yes No вполне достаточен, поэтому выбрана кнопка No и нажат Enter. Enter. Поиск RA серверов займет несколько секунд. User Confirmation Requested Do you want to try DHCP configuration of the interface? Yes No Если DHCP Dynamic Host Configuration Protocol не нужен, выберите No с помощью клавиш навигации и нажмите dhclient, и, если все пройдет нормально, заполнит информацию о конфигурации сети автоматически. Обратитесь к Разд. 23.5 за более подробными сведениями. Следующий экран конфигурации сети показывает настройку устройства Ethernet системы, которая будет работать шлюзом для локальной сети. Рисунок 2-32. Настройка сети для ed0 Полное имя хоста, в этом примере Имя домена, в котором находится ваш компьютер, в этом примере IP хоста, пересылающего пакеты наружу локальной сети. Вам потребуется заполнить его, если это компьютер, подключенный к сети. Оставьте это поле пустым, если компьютер является шлюзом в интернет для сети. Шлюз IPv4 известен также как шлюз по умолчанию или маршрут по умолчанию. IP адрес местного сервера DNS. В этой локальной сети нет DNS сервера, поэтому использован IP адрес DNS сервера провайдера IP адрес, использованный для этого интерфейса, Адрес блока, использованного для этой локальной сети, это блок класса C Маска по умолчанию дана для сети класса C которые вы хотите добавить. В данном случае ничего. User Confirmation Requested Would you like to Bring Up the ed0 interface right now? Yes No Enter введет компьютер в сеть. Тем не менее, компьютеру все еще требуется перезагрузка. User Confirmation Requested Do you want this machine to function as a network gateway? Yes No Если компьютер будет шлюзом для локальной сети, пересылая пакеты между другими компьютерами, выберите Yes и нажмите Enter. Если это обычный компьютер, выберите No и нажмите Enter для продолжения. User Confirmation Requested Do you want to configure inetd and the network services that it provides? Yes No Если выбрана No, различные сервисы, такие как telnetd не будут запущены. Это означает, что удаленные пользователи не смогут зайти по telnet на этот компьютер. Локальные пользователи все же смогут заходит на удаленные компьютеры по с помощью вашего любимого текстового редактора. Обращайтесь к Разд. 23.2.1 за более подробной информацией. Выберите Yes если хотите настроить эти сервисы во время установки. Появится дополнительный запрос подтверждения: User Confirmation Requested The Internet Super Server inetd allows a number of simple Internet services to be enabled, including finger, ftp and telnetd. Enabling these services may increase risk of security problems by increasing the exposure of your system. With this in mind, do you wish to enable inetd? Yes No Нажмите Yes, чтобы продолжить. User Confirmation Requested inetd8 relies on its configuration file, , to determine which of its Internet services will be available. The default FreeBSD 5 leaves all services disabled by default, so they must be specifically enabled in the configuration file before they will function, even once inetd8 is enabled. Note that services for IPv6 must be separately enabled from IPv4 services. Select Yes now to invoke an editor on, or No to use the current settings. Yes No Рисунок 2-33. Редактирование После добавления нужных сервисов нажатие Esc отобразит меню, позволяющее выйти с сохранением изменений. User Confirmation Requested Do you want to have anonymous FTP access to this machine? Yes No Enter все же позволит пользователям, имеющим учетные записи с паролями, использовать FTP для доступа к компьютеру. Кто угодно сможет получить доступ к компьютеру, если вы разрешите анонимные соединения FTP. Предварительно должны быть рассмотрены возможные проблемы с безопасностью. Более подробная информация о безопасности находится в Гл. 14. Чтобы разрешить анонимный FTP, выберите Yes, используя клавиши навигации, и нажмите Enter. Появится такой или похожий экран: Рисунок 2-34. Настройка по анонимного FTP по умолчанию This screen allows you to configure the anonymous FTP user. The following configuration values are editable: UID: The user ID you wish to assign to the anonymous FTP user. All files uploaded will be owned by this ID. Group: Which group you wish the anonymous FTP user to be in. Comment: String describing this user in/etc/passwd FTP Root Directory: Where files available for anonymous FTP will be kept. Upload subdirectory: Where files uploaded by anonymous FTP users will go. Если в нем предположительно не хватает места для для нужд FTP, можно использовать каталог выбрав корневой каталог FTP FTP Root Directory Когда будут выбраны подходящие значения, нажмите Enter, чтобы продолжить. User Confirmation Requested Create a welcome message file for anonymous FTP users? Yes No Enter, запустится редактор, позволяющий отредактировать сообщение FTP. Рисунок 2-35. Редактирование FTP Welcome Message Используйте инструкции, чтобы изменить сообщение, или измените сообщение позже, используя выбранный вами редактор. Обратите внимание, что имя/расположение файла показаны внизу окна редактора. Нажмите Esc и появится меню с пунктом по умолчанию a leave editor выйти из редактора. Нажмите Enter, чтобы выйти и продолжить. Нажмите Enter еще раз, чтобы сохранить изменения, если они были сделаны. Сетевая файловая система Network File System, NFS позволяет совместно использовать файлы в сети. Компьютер может быть настроен как сервер, клиент, или как то и другое. Обратитесь к Разд. 23.3 за более подробной информацией. User Confirmation Requested Do you want to configure this machine as an NFS server? Yes No Если вам не нужен NFS сервер, выберите No и нажмите Enter. Если выбран пункт Yes, появится сообщение, говорящее о том, что должен быть создан файл Message Operating as an NFS server means that you must first configure an/etc/exports file to indicate which hosts are allowed certain kinds of access to your local filesystems. Press Enter now to invoke an editor on/etc/exports OK Нажмите Enter, чтобы продолжить. Запустится текстовый редактор, позволяющий создать и отредактировать файл Рисунок 2-36. Редактирование Используйте инструкции для добавления экспортируемых файловых систем сейчас, или позднее с помощью выбранного вами текстового редактора. Обратите внимание, что имя/расположение файла показаны внизу окна редактора. Нажмите Esc и появится меню с пунктом по умолчанию a leave editor. Нажмите Enter, чтобы выйти и продолжить. NFS клиент позволяет организовать доступ к серверам NFS. User Confirmation Requested Do you want to configure this machine as an NFS client? Yes No С помощью клавиш навигации выберите Yes или No, как потребуется, и нажмите Профиль безопасности это набор параметров настройки, с помощью которого делается попытка достичь требуемого уровня безопасности и удобства путем разрешения или запрещения запуска определенных программ и другими настройками. Чем строже профиль безопасности, тем меньше программ будет запущено по умолчанию. Это один из основных принципов безопасности: не запускайте ничего кроме того, что необходимо. Имейте ввиду, что профиль безопасности - - это лишь установка по умолчанию. Любая программа может быть запущена или остановлена после установки FreeBSD путем редактирования или добавления соответствующих строк в Для получения более подробной информации обратитесь к странице справочника 5. Следующая таблица описывает действие каждого профиля безопасности. Колонки показывают выбранный вами профиль безопасности, а ряды - - программы или функции, которые профиль включает или выключает. Таблица 2-4. Возможные профили безопасности a. Portmapper включен, если компьютер был настроен в процессе установки как NFS клиент или сервер. b. Если вы выберете профиль безопасности с уровнем Extreme или High, будьте готовы к последствиям. Прочитайте страницу справочника init 8 и уделите некоторое внимание значениям уровней безопасности, или позже могут возникнуть серьезные проблемы! User Confirmation Requested Do you want to select a default security profile for this host select No for medium security? Yes No Enter установит профиль безопасности к среднему значению. Enter позволит выбрать другой профиль безопасности. Рисунок 2-37. Параметры профиля безопасности Нажмите F1, чтобы получить помощь. Нажмите Enter для возврата к меню выбора. Используйте клавиши навигации для выбора Medium, если вы не уверены, что необходим другой уровень. С подсвеченным OK нажмите Enter. Будет отображен запрос на подтверждение, соответствующий выбранным настройкам безопасности. Message Moderate security settings have been selected. Sendmail and SSHd have been enabled, securelevels are disabled, and NFS server setting have been left intact. PLEASE NOTE that this still does not save you from having to properly secure your system in other ways or exercise due diligence in your administration, this simply picks a standard set of out-of-box defaults to start with. To change any of these settings later, edit OK Message Extreme security settings have been selected. Sendmail, SSHd, and NFS services have been disabled, and securelevels have been enabled. PLEASE NOTE that this still does not save you from having to properly secure your system in other ways or exercise due diligence in your administration, this simply picks a more secure set of out-of-box defaults to start with. To change any of these settings later, edit OK Нажмите Enter, чтобы продолжить послеустановочные настройки. Внимание: Профиль безопасности не панацея! Если даже вы выберете экстремальные установки, понадобится поддерживать безопасность, читая соответствующий список рассылки Разд. C.1, используя хорошие пароли и идентификационные фразы, и придерживаясь хорошей практики безопасности. Профиль всего лишь повышает желаемый уровень безопасности свежеустановленной системы до приемлемого значения. Есть несколько параметров для настройки системной консоли. User Confirmation Requested Would you like to customize your system console settings? Yes No Для просмотра и настройки параметров выберите Yes и нажмите Enter. Рисунок 2-38. Параметры настройки системной консоли Часто используемая опция это хранитель экрана screen saver. Используйте клавиши навигации для выбора Saver и нажмите Рисунок 2-39. Параметры хранителя экрана Enter. Опять появится меню настройки системной консоли. Время по умолчанию 300 секунд. Для изменения временного интервала выберите Saver еще раз. В меню настроек хранителя экрана выберите Timeout с помощью клавиш навигации и нажмите Рисунок 2-40. Временной интервал хранителя экрана Значение может быть изменено, затем выберите OK и нажмите Enter для возврата в меню настройки системной консоли. Рисунок 2-41. Выход из меню конфигурации консоли Выбор Exit и нажатие Enter вернет вас к послеустановочной настройке. Установка часового пояса на компьютере позволит ему автоматически вносить поправки к местному времени и правильно выполнять другие, связанные с часовым поясом функции. Пример приведен для компьютера, расположенного в восточном часовом поясе Соединенных Штатов. Ваш выбор будет зависеть от вашего географического положения. Enter для установки часового пояса. User Confirmation Requested Is this machines CMOS clock set to UTC? If it is set to local time or you dont know, please choose NO here! Yes No Выберите Yes или No в зависимости от настроек часов компьютера и нажмите Enter. Рисунок 2-42. Выбор региона Рисунок 2-43. Выбор страны Рисунок 2-44. Выбор часового пояса Правильно будет согласиться с назначением аббревиатуры временного пояса. Если она подходит, нажмите Enter, чтобы продолжить послеустановочную настройку. User Confirmation Requested Would you like to enable Linux binary compatibility? Yes No Enter позволит запускать программы Linux под FreeBSD. Программа установки добавит соответствующие пакеты для совместимости с Linux. При установке по FTP, компьютеру потребуется соединиться с интернет. Иногда на сервере ftp нет всех необходимых компонент, например для бинарной совместимости с Linux. Эти компоненты могут быть установлены позже, если потребуется. Эти настройки позволят вырезать и вставлять текст в консоли и пользовательских программах с помощью трехкнопочной мыши. Если используется двухкнопочная мышь, обратитесь к странице справочника moused 8 после установки, чтобы узнать подробности об эмуляции трехкнопочной мыши. Этот пример приведен для настройки не-USB мыши например мыши для порта PS/2 или COM: User Confirmation Requested Does this system have a non-USB mouse attached to it? Yes No Рисунок 2-45. Выбор протокола мыши Используйте клавиши навигации для выбора Type и нажмите Enter. Рисунок 2-46. Установка протокола мыши В этом примере использована PS/2 мышь, поэтому подойдет протокол по умолчанию Auto. Чтобы изменить протокол, используйте клавиши навигации для выбора другого пункта. Убедитесь, что выбран OK, и нажмите Enter для выхода из меню. Рисунок 2-47. Настройка порта мыши Используйте клавиши навигации для выбора Port и нажмите Enter. Рисунок 2-48. Установка порта мыши К этой системе подключена мышь PS/2, поэтому подходит значение по умолчанию PS/2. Чтобы изменить порт, используйте клавиши навигации и нажмите Enter. Рисунок 2-49. Запуск мышиного даемона Наконец, используйте клавиши навигации для выбора Enable, затем нажмите Enter для запуска и тестирования даемона мыши. Рисунок 2-50. Проверка мышиного даемона Подвигайте курсор по экрану и убедитесь, что он движется правильно. Если это так, выберите Yes и нажмите Enter. Если нет, мышь не была правильно настроена - - выберите No и попробуйте использовать другие опции настройки. Enter для возврата к послеустановочной настройке. Текст предоставил Том Родес. Настройка сетевых сервисов может быть пугающей задачей для новых пользователей, если у них нет опыта в этой области. Работа в сети, включая интернет, критична для многих современных операционных систем, включая FreeBSD; очень важно иметь некоторые знания о дополнительных сетевых возможностях FreeBSD. Настраивая их во время установки, пользователь получает некоторую информацию о различных доступных сервисах. Сетевые сервисы - - это программы, принимающие данные из любой точки сети. Чтобы убедиться, что эти программы не делают ничего вредного, требуется особое внимание. К сожалению, программисты не совершенны и время от времени допускают ошибки в сетевых сервисах; эти ошибки позволяют атакующим взломать их и использовать в собственных целях. Важно, чтобы вы включали сетевые сервисы только в том случае, если знаете, какие сервисы нужны. В случае сомнений лучше не включать сервис, пока он не понадобится. Вы всегда можете включить его позже, запустив sysinstall еще раз, или используя возможности, предоставляемые файлом Выбор опции Networking отобразит меню, похожее на это: Рисунок 2-51. Верхняя часть меню настройки сети Network Configuration Первая опция, Interfaces интерфейсы, была ранее описана в Разд. 2.9.1, эту опцию можно проигнорировать. утилиты автоматического монтирования. Она обычно используется вместе с протоколом NFS смотрите ниже для автоматического монтирования удаленных файловых систем. Здесь не требуется специальной конфигурации. Следующая линия это опция флаги AMD flags. Когда эта опция выбрана, появится меню для ввода специфичных флагов AMD Меню уже содержит набор различных опций: указывает месторасположение монтирования систем по умолчанию, в этом примере файл по умолчанию; тем не менее, если для ведения логов используется все логи отправляются даемону системных логов. Каталог используется для монтирования экспортированных файловых систем с удаленного хоста, а Выберите ее, чтобы сделать этот компьютер анонимным FTP сервером. Помните о риске безопасности, создаваемом этой опцией. Будет отображено еще одно меню для разъяснения риска безопасности и для более тонкой настройки. Опция Gateway сделает компьютер шлюзом, как было объяснено ранее. Этот пункт может быть использован для отмены опции Gateway, если она была ошибочно установлена в процессе установки. Опцию Inetd можно использовать для настройки или полного отключения даемона inetd 8, как было описано выше. по умолчанию Mail Transfer Agent, агент передачи почты. Выбор этой опции приведет к появлению следующего меню: Рисунок 2-52. Выбор MTA по умолчанию для установки по умолчанию. MTA это почтовый сервер, доставляющий почту пользователям системы или интернет. Выбор Sendmail приведет к установке популярного сервера sendmail, MTA по умолчанию для FreeBSD. Опция Sendmail local настроит по умолчанию, но отключит возможность получения входящей почты из интернет. Другие MTA представленные здесь, Postfix и Exim, действуют подобно Sendmail. Оба они доставляют почту; тем не менее, некоторые пользователи предпочитают эти альтернативы или пропуска этого пункта появится меню настройки сети со следующей опцией, клиент NFS. Если это отдельно стоящий компьютер, опцию можно не выбирать. NFS может потребовать дополнительной настройки позже; обращайтесь к Разд. 23.3 за более подробной информацией о настройке сервера и клиента. Ниже находится опция NFS сервер, позволяющая вам настроить систему для работы в качестве NFS сервера. Она добавляет требуемую информацию для запуска процедуры вызова удаленных сервисов RPC remote procedure call services. RPC используется для организации соединения между хостами и программами. Следующая строка это Ntpdate, которая отвечает за синхронизацию времени. Когда эта опция выбрана, появится приблизительно такое меню: Рисунок 2-53. Настройка Ntpdate Выберите из этого меню ближайший к вашему местонахождению сервер. Выбор ближайшего сервера сделает синхронизацию времени более точной, поскольку у более дальнего сервера может быть более длинная задержка соединения. Эта опция устанавливает пакет из Коллекции Портов. Это полезная утилита, предоставляющая сервисы авторизации NFS для систем, в которых собственная отсутствует, таких как Microsoft MS-DOS. Теперь вы можете прокрутить меню немного вниз, чтобы увидеть другие опции: Рисунок 2-54. Нижняя часть меню настройки сети серверами и клиентами, она требуется серверу NFS для корректной работы. Даемон на других хостах для обеспечения мониторинга статуса. Полученный статус обычно хранится в файле Последняя опция это, которая, будучи выбранной, предоставляет сервисы блокировки файлов. Она обычно используется с для отслеживания хостов, запрашивающих блокировки и частоты этих запросов. Хотя две последние опции прекрасно подходят для отладки, они не требуются серверам и клиентам NFS Ниже в списке опций находится Routed, даемон маршрутизации. Утилита routed 8 управляет сетевыми таблицами маршрутизации, обнаруживает широковещательные маршрутизаторы, и предоставляет копию таблиц маршрутизации любому физически подключенному к сети хосту по запросу. Это обычно используется компьютерами, являющимися шлюзом для локальной сети. Когда эта опция выбрана, появится меню выбора местоположения утилиты по умолчанию. Значение по умолчанию уже выбрано, чтобы подтвердить его нажмите Enter. Появится следующее меню, запрашивающее флаги для routed. По умолчанию это флаг он должен уже быть на экране. На следующей линии находится опция Rwhod, выбор которой приведет к запуску даемона rwhod 8 при старте системы. Утилита периодически рассылает широковещательные системные сообщения по сети или собирает их в режиме потребителя. Дополнительную информацию можно найти на страницах справочника ruptime 1 и rwho 1. Следующая перед последней опцией в списке это даемон sshd 8. Это сервер безопасной оболочки secure shell из OpenSSH и он настоятельно рекомендуется для использования вместо стандартных серверов sshd используется для создания безопасных соединений от одного хоста к другому с использованием шифрования. И наконец, опция TCP Extensions. Она включает расширения TCP 1644. Хотя для многих хостов они могут повысить скорость соединения, с другими соединение может быть оборвано. Для серверов эти расширения не рекомендуются, но клиентским компьютерам могут дать некоторые преимущества. Теперь, после настройки сетевых сервисов, вы можете прокрутить меню к верхнему пункту, Exit, и перейти к следующему разделу настройки. Замечание: В FreeBSD 5.3-RELEASE настройка X сервера была удалена из sysinstall, X сервер нужно будет настроить после установки FreeBSD. Более подробная информация, относящаяся к установке и настройке X сервера, находится в Гл. 5. Вы можете пропустить этот раздел, если только не устанавливаете версию FreeBSD до 5.3-RELEASE. Чтобы использовать графический интерфейс пользователя KDE, GNOME, или другие, нужно настроить X сервер. вам потребуется установленный Он устанавливается по умолчанию начиная с FreeBSD 4.7. В более ранних версиях он может быть добавлен из меню выбора пакетов Package Selection menu. Чтобы узнать, поддерживается ли ваша видеокарта, обратитесь к сайту XFree86. User Confirmation Requested Would you like to configure your X server at this time? Yes No Внимание: Необходимо узнать параметры монитора и информацию о видеокарте. Установкой неправильных параметров можно повредить оборудование. Если у вас нет этой информации, выберите No и выполните конфигурацию после установки, когда необходимая информация будет собрана. Используя в FreeBSD версии 5.2 и более ранних, выберите Configure, а затем XFree86. Неправильная настройка X сервера может подвесить компьютер. Зачастую настройку X сервера рекомендуют производить после завершения установки. Если у вас есть информация о графической карте и мониторе, выберите Yes и нажмите Enter для начала настройки X сервера. Рисунок 2-55. Меню выбора способа конфигурации Есть несколько путей настройки X сервера. Используйте клавиши навигации для выбора одного из методов и нажмите Enter. Внимательно прочтите все инструкции. Команды xf86cfg и xf86cfg - textmode могут сделать экран темным и запуститься через несколько секунд. Будьте терпеливы. xf86config. Выбор настроек будет зависеть от оборудования системы, так что ваши настройки возможно будут отличаться от тех, что приведены: Message You have configured and been running the mouse daemon. Choose/dev/sysmouse as the mouse port and SysMouse or MouseSystems as the mouse protocol in the X configuration utility. OK Press enter to continue Это говорит о том, что предварительно настроенный даемон мыши был обнаружен. Нажмите Enter, чтобы продолжить. This program will create a basic XF86Config file, based on menu selections you make. The XF86Config file usually resides in/usr/X11R6/etc/X11 or/etc/X11. A sample XF86Config file is supplied with XFree86; it is configured for a standard VGA card and monitor with 640x480 resolution. This program will ask for a pathname when it is ready to write the file. You can either take the sample XF86Config as a base and edit it for your configuration, or let this program produce a base XF86Config file for your configuration and fine-tune it. Before continuing with this program, make sure you know what video card you have, and preferably also the chipset it uses and the amount of video memory on your video card. SuperProbe may be able to help with this. Press enter to continue, or ctrl-c to abort. Нажатие Enter запустит настройку мыши. Следуя инструкциям, выберите Mouse Systems в качестве протокола мыши и в качестве порта мыши, даже если вы используете PS/2, как показано в примере. First specify a mouse protocol type. Choose one from the following list: 1. Microsoft compatible 2-button protocol 2. Mouse Systems 3-button protocol FreeBSD moused protocol 3. Bus Mouse 4. PS/2 Mouse 5. Logitech Mouse serial, old type, Logitech protocol 6. Logitech MouseMan Microsoft compatible 7. MM Series 8. MM HitTablet 9. Microsoft IntelliMouse If you have a two-button mouse, it is most likely of type 1, and if you have a three-button mouse, it can probably support both protocol 1 and 2. There are two main varieties of the latter type: mice with a switch to select the protocol, and mice that default to 1 and require a button to be held at boot-time to select protocol 2. Some mice can be convinced to do 2 by sending a special sequence to the serial port see the ClearDTR/ClearRTS options. Enter a protocol number: 2 You have selected a Mouse Systems protocol mouse. If your mouse is normally in Microsoft-compatible mode, enabling the ClearDTR and ClearRTS options may cause it to switch to Mouse Systems mode when the server starts. Please answer the following question with either y or n. Do you want to enable ClearDTR and ClearRTS? n You have selected a three-button mouse protocol. It is recommended that you do not enable Emulate3Buttons, unless the third button doesnt work. Please answer the following question with either y or n. Do you want to enable Emulate3Buttons? y Now give the full device name that the mouse is connected to, for example/dev/tty00. Just pressing enter will use the default, /dev/mouse. On FreeBSD, the default is/dev/sysmouse. Mouse device:/dev/sysmouse Следующий пункт настройки это клавиатура. В примере показана модель generic 101-key. В качестве варианта можно использовать любое имя, или просто нажать Enter, чтобы принять значение по умолчанию. Теперь переходим к настройке монитора. Не превышайте значений для вашего монитора. Он может быть поврежден. Если у вас есть какие-то сомнения, проводите настройку после того, как получите информацию. Now we want to set the specifications of the monitor. The two critical parameters are the vertical refresh rate, which is the rate at which the whole screen is refreshed, and most importantly the horizontal sync rate, which is the rate at which scanlines are displayed. The valid range for horizontal sync and vertical sync should be documented in the manual of your monitor. If in doubt, check the monitor database/usr/X11R6/lib/X11/doc/Monitors to see if your monitor is there. Press enter to continue, or ctrl-c to abort. You must indicate the horizontal sync range of your monitor. You can either select one of the predefined ranges below that correspond to industry- standard monitor types, or give a specific range. It is VERY IMPORTANT that you do not specify a monitor type with a horizontal sync range that is beyond the capabilities of your monitor. If in doubt, choose a conservative setting. hsync in kHz; monitor type with characteristic modes 1 31.5; Standard VGA, 640x480 60 Hz 2 31.5 - 35.1; Super VGA, 800x600 56 Hz 3 31.5, 35.5; 8514 Compatible, 1024x768 87 Hz interlaced no 800x600 4 31.5, 35.15, 35.5; Super VGA, 1024x768 87 Hz interlaced, 800x600 56 Hz 5 31.5 - 37.9; Extended Super VGA, 800x600 60 Hz, 640x480 72 Hz 6 31.5 - 48.5; Non-Interlaced SVGA, 1024x768 60 Hz, 800x600 72 Hz 7 31.5 - 57.0; High Frequency SVGA, 1024x768 70 Hz 8 31.5 - 64.3; Monitor that can do 1280x1024 60 Hz 9 31.5 - 79.0; Monitor that can do 1280x1024 74 Hz 10 31.5 - 82.0; Monitor that can do 1280x1024 76 Hz 11 Enter your own horizontal sync range Enter your choice 1-11: 6 You must indicate the vertical sync range of your monitor. You can either select one of the predefined ranges below that correspond to industry- standard monitor types, or give a specific range. For interlaced modes, the number that counts is the high one 87 Hz rather than 43 Hz. 1 50-70 2 50-90 3 50-100 4 40-150 5 Enter your own vertical sync range Enter your choice: 2 You must now enter a few identification/description strings, namely an identifier, a vendor name, and a model name. Just pressing enter will fill in default names. The strings are free-form, spaces are allowed. Enter an identifier for your monitor definition: Hitachi Далее производится выбор видеокарты из списка. Если вы пропустили карту в списке, продолжайте нажимать Enter, и список повторится. Показан только отрывок: Now we must configure video card specific settings. At this point you can choose to make a selection out of a database of video card definitions. Because there can be variation in Ramdacs and clock generators even between cards of the same model, it is not sensible to blindly copy the settings a Device section. For this reason, after you make a selection, you will still be asked about the components of the card, with the settings from the chosen database entry presented as a strong hint. The database entries include information about the chipset, what driver to run, the Ramdac and ClockChip, and comments that will be included in the Device section. However, a lot of definitions only hint about what driver to run based on the chipset the card uses and are untested. If you cant find your card in the database, theres nothing to worry about. You should only choose a database entry that is exactly the same model as your card; choosing one that looks similar is just a bad idea a GemStone Snail 64 may be as different from a GemStone Snail 64 in terms of hardware as can be. Do you want to look at the card database? y 288 Matrox Millennium G200 8MB mgag200 289 Matrox Millennium G200 SD 16MB mgag200 290 Matrox Millennium G200 SD 4MB mgag200 291 Matrox Millennium G200 SD 8MB mgag200 292 Matrox Millennium G400 mgag400 293 Matrox Millennium II 16MB mga2164w 294 Matrox Millennium II 4MB mga2164w 295 Matrox Millennium II 8MB mga2164w 296 Matrox Mystique mga1064sg 297 Matrox Mystique G200 16MB mgag200 298 Matrox Mystique G200 4MB mgag200 299 Matrox Mystique G200 8MB mgag200 300 Matrox Productiva G100 4MB mgag100 301 Matrox Productiva G100 8MB mgag100 302 MediaGX mediagx 303 MediaVision Proaxcel 128 ET6000 304 Mirage Z-128 ET6000 305 Miro CRYSTAL VRX Verite 1000 Enter a number to choose the corresponding card definition. Press enter for the next page, q to continue configuration. 288 Your selected card definition: Identifier: Matrox Millennium G200 8MB Chipset: mgag200 Driver: mga Do NOT probe clocks or use any Clocks line. Press enter to continue, or ctrl-c to abort. Now you must give information about your video card. This will be used for the Device section of your video card in XF86Config. You must indicate how much video memory you have. It is probably a good idea to use the same approximate amount as that detected by the server you intend to use. If you encounter problems that are due to the used server not supporting the amount memory you have ATI Mach64 is limited to 1024K with the SVGA server, specify the maximum amount supported by the server. How much video memory do you have on your video card: 1 256K 2 512K 3 1024K 4 2048K 5 4096K 6 Other Enter your choice: 6 Amount of video memory in Kbytes: 8192 You must now enter a few identification/description strings, namely an identifier, a vendor name, and a model name. Just pressing enter will fill in default names possibly from a card definition. Your card definition is Matrox Millennium G200 8MB. The strings are free-form, spaces are allowed. Enter an identifier for your video card definition: Далее, производится установка видеорежимов для требуемого разрешения. Обычно используемые значения 640x480, 800x600 и 1024x768, но они зависят от возможностей видеокарты, размера монитора и зрительного комфорта. Выбирая глубину цвета, устанавливайте самое большое поддерживаемое видеокартой значение. For each depth, a list of modes resolutions is defined. The default resolution that the server will start-up with will be the first listed mode that can be supported by the monitor and card. Currently it is set to: 640x480 800x600 1024x768 1280x1024 for 8-bit 640x480 800x600 1024x768 1280x1024 for 16-bit 640x480 800x600 1024x768 1280x1024 for 24-bit Modes that cannot be supported due to monitor or clock constraints will be automatically skipped by the server. 1 Change the modes for 8-bit 256 colors 2 Change the modes for 16-bit 32K/64K colors 3 Change the modes for 24-bit 24-bit color 4 The modes are OK, continue. Enter your choice: 2 Select modes from the following list: 1 640x400 2 640x480 3 800x600 4 1024x768 5 1280x1024 6 320x200 7 320x240 8 400x300 9 1152x864 a 1600x1200 b 1800x1400 c 512x384 Please type the digits corresponding to the modes that you want to select. For example, 432 selects 1024x768 800x600 640x480, with a default mode of 1024x768. Which modes? 432 You can have a virtual screen desktop, which is screen area that is larger than the physical screen and which is panned by moving the mouse to the edge of the screen. If you dont want virtual desktop at a certain resolution, you cannot have modes listed that are larger. Each color depth can have a differently-sized virtual screen Please answer the following question with either y or n. Do you want a virtual screen that is larger than the physical screen? n For each depth, a list of modes resolutions is defined. The default resolution that the server will start-up with will be the first listed mode that can be supported by the monitor and card. Currently it is set to: 640x480 800x600 1024x768 1280x1024 for 8-bit 1024x768 800x600 640x480 for 16-bit 640x480 800x600 1024x768 1280x1024 for 24-bit Modes that cannot be supported due to monitor or clock constraints will be automatically skipped by the server. 1 Change the modes for 8-bit 256 colors 2 Change the modes for 16-bit 32K/64K colors 3 Change the modes for 24-bit 24-bit color 4 The modes are OK, continue. Enter your choice: 4 Please specify which color depth you want to use by default: 1 1 bit monochrome 2 4 bits 16 colors 3 8 bits 256 colors 4 16 bits 65536 colors 5 24 bits 16 million colors Enter a number to choose the default depth. 4 Наконец, настройки нужно сохранить. Убедитесь, что вы ввели в качестве места хранения настроек. I am going to write the XF86Config file now. Make sure you dont accidently overwrite a previously configured one. Shall I write it to/etc/X11/XF86Config? y Если настройка прервалась, вы можете запустить настройку опять, выбрав Yes, когда появится следующее сообщение: User Confirmation Requested The XFree86 configuration process seems to have failed. Would you like to try again? Yes No Если у вас проблемы с настройкой XFree86, выберите No, нажмите Enter и продолжайте процесс установки. После установки вы можете использовать Это дополнительный метод настройки XFree86, описанный в Гл. 5. Если вы решите не настраивать XFree86 сейчас, следующим появится меню выбора пакетов. Настройкой по умолчанию, позволяющей уничтожить процесс X сервера, является комбинация клавиш Ctrl Alt Backspace. Эта комбинация может быть применена, если что-то не так с установками сервера, она позволяет предотвратить повреждение оборудования. Настройкой по умолчанию, позволяющей переключать видео режимы во время работы X, является комбинация клавиш Ctrl Alt После запуска XFree86 вы можете настроить высоту, ширину и центровку изображения используя Будут выданы предупреждения, что неверные установки могут повредить ваше оборудование. Прислушайтесь к ним. Если вы сомневаетесь в чем-то, не делайте этого. Вместо этого, используйте настройки монитора для подстройки его под X Window. Вид экрана может несколько отличаться при переключении обратно в текстовый режим, но это лучше, чем повреждение оборудования. Прочитайте справочник xvidtune 1 перед тем, как производить какие-либо настройки. После успешной настройки XFree86 будет предложен выбор десктопа по умолчанию. Замечание: В FreeBSD 5.3-RELEASE настройка X сервера была удалена из sysinstall, X сервер нужно будет настроить после установки FreeBSD. Более подробная информация, относящаяся к установке и настройке X сервера, находится в Гл. 5. Вы можете пропустить этот раздел, если только не устанавливаете версию FreeBSD до 5.3-RELEASE. Доступны самые разные оконные менеджеры. Их функциональность варьируется от самых минимальных до полноценных десктопов с большим набором программ. Некоторые требуют минимума места на диске и небольшого количества памяти, другие, с большим набором функций, требуют гораздо больше. Лучший путь определить наиболее подходящий вам - - попробовать несколько. Они доступны из Коллекции Портов и в виде пакетов, и могут быть добавлены после установки. Вы можете выбрать один из популярных десктопов, он будет установлен и настроен в качестве десктопа по умолчанию. Это позволит запустить его сразу после установки. Рисунок 2-56. Выбор десктопа по умолчанию Используйте клавиши навигации, чтобы выбрать десктоп, и нажмите Enter. Будет запущена установка выбранного десктопа. Пакеты - - это прекомпилированные бинарные файлы и это удобный способ установки программ. В качестве примера показана установка одного пакета. Если потребуется, можно установить дополнительные пакеты. После установки для добавления пакетов может быть использована команда в FreeBSD версии 5.2 и более ранних. User Confirmation Requested The FreeBSD package collection is a collection of hundreds of ready-to-run applications, from text editors to games to WEB servers and more. Would you like to browse the collection now? Yes No Рисунок 2-57. Выбор категории пакетов Только пакеты с текущего носителя доступны для установки в любое время. Все доступные пакеты будут показаны если выбрать категорию All, можно также выбирать отдельные категории. Перейдите к выбранной категории с помощью клавиш навигации и нажмите Enter. Появится меню, содержащее доступные в данной категории пакеты. Рисунок 2-58. Выбор пакетов Выбрана оболочка bash. Выберите все необходимые пакеты, перемещаясь по меню и нажимая клавишу пробела на выбираемых пакетах. Краткое описание пакета будет появляться в нижней левой части экрана. Нажатие Tab переключает между последним выбранным пакетом, OK, и Cancel. После того, как будет закончена отметка пакетов для установки, нажмите Tab один раз для переключения на OK и нажмите Enter для переключения на меню выбора пакетов. Нажимая клавиши навигации влево или вправо, можно переключаться между OK и Cancel. Этот метод может быть применен также для выбора OK и возврата к меню выбора пакетов нажатием Enter. Рисунок 2-59. Установка пакетов Используйте Tab и клавиши навигации для выбора Install и нажмите Enter. вам потребуется подтвердить установку пакетов: Рисунок 2-60. Подтверждение установки пакетов Enter запустит установку пакетов. Во время установки будут выдаваться сообщения. Обратите внимание на возможные сообщения об ошибках. После установки пакетов настройка продолжится. Если вы не выбрали ни один из пакетов и хотите вернуться к завершению настройки, выберите Install в любом случае. В процессе установки нужно добавить хотя бы одного пользователя, чтобы использовать систему без входа под Корневой каталог обычно мал и запуск приложений под быстро заполнит его. Ниже показано предупреждение: User Confirmation Requested Would you like to add any initial user accounts to the system? Adding at least one account for yourself at this stage is suggested since working as the root user is dangerous it is easy to do things which adversely affect the entire system. Yes No Enter, чтобы продолжить добавление пользователя. Рисунок 2-61. Выбор User пользователь Рисунок 2-62. Вод информации о пользователе При выборе полей с помощью Tab в нижней части экрана будет появляться описание, помогающее ввести необходимую информацию: Имя нового пользователя обязательно. Числовой ID идентификатор для этого пользователя оставьте пустым для автоматического выбора. Имя группы этого пользователя оставьте пустым для автоматического выбора. Пароль этого пользователя заполняйте это поле с осторожностью!. Полное имя пользователя комментарий. Группы, к которым принадлежит пользователь т.е. имеет права доступа. Домашний каталог пользователя оставьте пустым для выбора по умолчанию. Оболочка пользователя, запускаемая при входе в систему оставьте пустым для оболочки по умолчанию, например bash, которая была перед этим установлена из пакета. Не пытайтесь использовать несуществующую оболочку, вы не сможете войти в систему. Наиболее часто используемая в мире BSD оболочка это C shell, которую можно обозначить как чтобы иметь возможность стать суперпользователем с привилегиями Когда все будет введено, нажмите OK и меню управления пользователями и группами User and Group Management появится снова: Рисунок 2-63. Выход из меню управления пользователями и группами Сейчас также можно добавить группы, если известно, для чего они потребуются. Иначе в это меню можно войти, запустив в FreeBSD версии 5.2 и более ранних после окончания установки. После завершения добавления пользователей, выберите Exit с помощью клавиш навигации и нажмите Enter для продолжения установки. 2.9.16. Установка пароля Message Now you must set the system managers password. This is the password youll use to log in as root. OK Press enter to continue Необходимо два раза правильно ввести пароль. Излишне упоминать, что должна быть возможность восстановления пароля, если вы его забудете. Обратите внимание, что ни набираемый пароль, ни звездочки на экран не выдаются. Changing local password for root. New password: Retype new password: Установка продолжится после успешного ввода пароля. Если нужно настроить дополнительные сетевые устройства, или произвести другие настройки, вы можете сделать это сейчас или после установки с помощью в FreeBSD версии 5.2 и более ранних. User Confirmation Requested Visit the general configuration menu for a chance to set any last options? Yes No Выберите No с помощью клавиш навигации и нажмите Enter для возврата к главному меню установки. Рисунок 2-64. Выход из установки Выберите X Exit Install с помощью клавиш навигации и нажмите Enter. Будет задан вопрос о подтверждении выхода из установки: User Confirmation Requested Are you sure you wish to exit? The system will reboot be sure to remove any floppies from the drives. Yes No Выберите Yes и удалите дискету, если загрузка была с нее. CDROM заблокирован, пока компьютер не начнет перегружаться. CDROM будет разблокирован и диск нужно будет извлечь из привода быстро. Система начнет перезагрузку, смотрите за сообщениями об ошибках, которые могут появиться. Если все пройдет нормально, вы увидите прокручивающиеся за экран сообщения, затем приглашение ко входу в систему. Вы может просмотреть сообщения, нажав PgDn. Нажатие Scroll-Lock еще раз вернет вас к приглашению. Все сообщение может не отобразиться ограничение буфера, но может быть просмотрено путем ввода команды Войдите, используя имя пользователя/пароль, добавленные во время установки в этом примере. Избегайте входа под Copyright c 1992-2002 The FreeBSD Project. Copyright c 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. Timecounter i8254 frequency 1193182 Hz CPU: AMD-K6tm 3D processor 300.68-MHz 586-class CPU Origin AuthenticAMD Id 0x580 Stepping 0 Features0x8001bf FPU, VME, DE, PSE, TSC, MSR, MCE, CX8, MMX AMD Features0x80000800 SYSCALL, 3DNow! real memory 268435456 262144K bytes config di sn0 config di lnc0 config di le0 config di ie0 config di fe0 config di cs0 config di bt0 config di aic0 config di aha0 config di adv0 config q avail memory 256311296 250304K bytes Preloaded elf kernel kernel at 0xc0491000. Preloaded userconfigscript at 0xc049109c. md0: Malloc disk Using PIR table, 4 entries at 0xc00fde60 npx0: math processor on motherboard npx0: INT 16 interface pcib0: Host to PCI bridge on motherboard pci0: PCI bus on pcib0 pcib1: VIA 82C598MVP Apollo MVP3 PCI-PCI AGP bridge at device 1.0 on pci0 pci1: PCI bus on pcib1 pci1: Matrox MGA G200 AGP graphics accelerator at 0.0 irq 11 isab0: VIA 82C586 PCI-ISA bridge at device 7.0 on pci0 isa0: ISA bus on isab0 atapci0: VIA 82C586 ATA33 controller port 0xe000-0xe00f at device 7.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 uhci0: VIA 83C572 USB controller port 0xe400-0xe41f irq 10 at device 7.2 on pci0 usb0: VIA 83C572 USB controller on uhci0 usb0: USB revision 1.0 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered chip1: VIA 82C586B ACPI interface at device 7.3 on pci0 ed0: NE2000 PCI Ethernet RealTek 8029 port 0xe800-0xe81f irq 9 at device 10.0 on pci0 ed0: address 52:54:05:de:73:1b, type NE2000 16 bit isa0: too many dependant configs 8 isa0: unexpected small tag 14 fdc0: NEC 72065B or clone at port 0x3f0-0x3f5, 0x3f7 irq 6 drq 2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: 1440-KB 3.5 drive on fdc0 drive 0 atkbdc0: keyboard controller i8042 at port 0x60-0x64 on isa0 atkbd0: AT Keyboard flags 0x1 irq 1 on atkbdc0 kbd0 at atkbd0 psm0: PS/2 Mouse irq 12 on atkbdc0 psm0: model Generic PS/2 mouse, device ID 0 vga0: Generic ISA VGA at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: System console at flags 0x1 on isa0 sc0: VGA 16 virtual consoles, flags0x300 sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A ppc0: Parallel port at port 0x378-0x37f irq 7 on isa0 ppc0: SMC-like chipset ECP/EPP/PS2/NIBBLE in COMPATIBLE mode ppc0: FIFO with 16/16/15 bytes threshold ppbus0: IEEE1284 device found/NIBBLE Probing for PnP devices on ppbus0: plip0: PLIP network interface on ppbus0 lpt0: Printer on ppbus0 lpt0: Interrupt-driven port ppi0: Parallel I/O on ppbus0 ad0: 8063MB IBM-DHEA-38451 16383/16/63 at ata0-master using UDMA33 ad2: 8063MB IBM-DHEA-38451 16383/16/63 at ata1-master using UDMA33 acd0: CDROM DELTA OTC-H101/ST3 F/W by OIPD at ata0-slave using PIO4 Mounting root from ufs:/dev/ad0s1a swapon: adding/dev/ad0s1b as swap device Automatic boot in /dev/ad0s1a: FILESYSTEM CLEAN; SKIPPING CHECKS/dev/ad0s1a: clean, 48752 free 552 frags, 6025 blocks, 0.9% fragmentation/dev/ad0s1f: FILESYSTEM CLEAN; SKIPPING CHECKS/dev/ad0s1f: clean, 128997 free 21 frags, 16122 blocks, 0.0% fragmentation/dev/ad0s1g: FILESYSTEM CLEAN; SKIPPING CHECKS/dev/ad0s1g: clean, 3036299 free 43175 frags, 374073 blocks, 1.3% fragmentation/dev/ad0s1e: filesystem CLEAN; SKIPPING CHECKS/dev/ad0s1e: clean, 128193 free 17 frags, 16022 blocks, 0.0% fragmentation Doing initial network setup: hostname. ed0: flags8843 UP, BROADCAST, RUNNING, SIMPLEX, MULTICAST mtu 1500 inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 inet6 fe80::5054::5ff::fede:731b%ed0 prefixlen 64 tentative scopeid 0x1 ether 52:54:05:de:73:1b lo0: flags8049 UP, LOOPBACK, RUNNING, MULTICAST mtu 16384 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8 inet6::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000 Additional routing options: IP gatewayYES TCP keepaliveYES routing daemons:. additional daemons: syslogd. Doing additional network setup:. Starting final network daemons: creating ssh RSA host key Generating public/private rsa1 key pair. Your identification has been saved in/etc/ssh/sshhostkey. Your public key has been saved in The key fingerprint is: cd:76:89:16:69:0e:d0:6e:f8:66:d0:07:26:3c:7e:2d creating ssh DSA host key Generating public/private dsa key pair. Your identification has been saved in/etc/ssh/sshhostdsakey. Your public key has been saved in The key fingerprint is: f9:a1:a9:47:c4:ad:f9:8d:52:b8:b8:ff:8c:ad:2d:e6 setting ELF ldconfig path:/usr/lib/usr/lib/compat/usr/X11R6/lib/usr/local/lib ldconfig path:/usr/lib/aout/usr/lib/compat/aout/usr/X11R6/lib/aout starting standard daemons: inetd cron sshd usbd sendmail. Initial rc.i386 initialization:. rc.i386 configuring syscons: blanktime screensaver moused. Additional ABI support: linux. Local package initialization:. Additional TCP options:. FreeBSD/i386 ttyv0 login: rpratt Password: Генерирование ключей RSA и DSA может занять некоторое время на медленных компьютерах. Это может случиться только при первой загрузке свежеустановленной системы. Последующие загрузки будут быстрее. Если X сервер был настроен и был выбран десктоп по умолчанию, он может быть запущен из командной строки командой Когда процедура установки будет завершена, вы сможете запустить FreeBSD в приглашении SRM примерно такой командой: Это команда дает указание на загрузку с заданного диска. Чтобы FreeBSD в будущем загружалась автоматически, используйте эти команды: Загрузочные сообщения будут похожи но не идентичны сообщениям, выводимым FreeBSD при загрузке на i386. Важно правильно завершать работу операционной системы. Нельзя просто выключать питание. Сначала нужно стать суперпользователем, введя в командной строке Это сработает только если пользователь является членом группы The operating system has halted. Please press any key to reboot. Можно безопасно выключать питание после того, как будет выполнена команда shutdown и появится сообщение Please press any key to reboot. Если вместо выключения питания будет нажата любая клавиша, система перезагрузится. Alt Del для перезагрузки системы, хотя это не рекомендуется в обычной ситуации. В настоящее время FreeBSD работает на разнообразных PC, с шинами ISA, VLB, EISA, и PCI с процессорами x86 от Intel, AMD, Cyrix, или NexGen, так же как и с множеством компьютеров на процессорах Compaq Alpha. Поддерживаются также IDE или ESDI диски, различные SCSI контроллеры, карты PCMCIA, устройства USB, сетевые карты и карты последовательных портов. FreeBSD также поддерживает шину MCA от IBM. Список поддерживаемого оборудования поставляется с каждым релизом FreeBSD в информации о поддерживаемом FreeBSD оборудовании. Этот документ обычно может быть найден в файле в корневом каталоге CDROM, дистрибутива на FTP или в меню документации sysinstall. В нем находится список аппаратных устройств, которые поддерживаются этим релизом FreeBSD для данной архитектуры. Копии списка поддерживаемого оборудования для различных релизов и архитектур также можно найти на странице Информации о релизах сайта FreeBSD. Следующий раздел описывает основные проблемы при установке, о которых обычно сообщают пользователи. Здесь также несколько вопросов и ответов от тех, кто хочет настроить двойную загрузку FreeBSD и MS-DOS. По причине различных ограничений архитектуры PC, невозможно протестировать устройства достоверно на 100%, тем не менее, есть несколько вещей, которые вы можете сделать, если тестирование завершится неудачно. Сверьтесь со списком поддерживаемого оборудованию для вашей версии FreeBSD, чтобы убедиться, что ваше оборудование поддерживается. Если оборудование поддерживается, но все же происходят зависания или вы встретились с другими проблемами, перегрузите компьютер, и когда появится опция визуальной настройки ядра, выберите ее. Это позволит вам просмотреть список оборудования и дать системе информацию о настройке. Ядро на загрузочном диске настроено в предположении, что у большинства аппаратных устройств IRQ, адреса ввода-вывода и каналы DMA установлены производителем к значениям по умолчанию. Если оборудование было перенастроено, вам потребуется использовать редактор настроек, чтобы сообщить FreeBSD, где что искать. Возможно также, что тестирование устройства, которого нет, приведет позже к ошибке тестирования существующего устройства. В этом случае тестирование конфликтующего драйвера драйверов должно быть запрещено. Замечание: Некоторые проблемы установки можно обойти или уменьшить, обновив встроенное программное обеспечение различных компонент оборудования, особенно материнской платы. Встроенное программное обеспечение также называют BIOS и у большинства производителей компьютеров или материнских плат есть Web-сайты, где можно найти обновления и информацию об обновлениях. пока не возникнет серьезной необходимости, например появление критически важных обновлений. Процесс обновления может пойти неверно, что приведет к неустранимому повреждению микросхемы BIOS Внимание: Не выключайте драйвера, которые понадобятся вам во время установки, такие как экран Если после выхода из редактора конфигурации установка загадочно зависает или прерывается, возможно вы удалили или изменили что-то, что не надо было трогать. Перегрузитесь и попробуйте еще раз. Просматривать список устройств, включенных в ядро. Отключать драйвера устройств для оборудования, которого нет в системе. Менять IRQ, DRQ, адреса портов, используемые драйвером устройства. для загрузки с новыми настройками. После завершения установки все изменения, внесенные в режиме настройки, будут действовать постоянно, так что вам не придется делать настройку при каждой загрузке. Все же очень неплохо, если вы со временем соберете новое ядро. с установленной операционной системой Microsoft. Для этих целей в FreeBSD есть утилита, называемая FIPS. Ее можно найти в каталоге установочного CD-ROM или загрузить с одного из множества зеркал FreeBSD. Утилита FIPS позволит вам разделить существующий раздел MS-DOS на две части, сохранив имеющиеся данные, и сделать установку на второй свободный раздел. Вам потребуется сначала дефрагментировать раздел MS-DOS с помощью Windows утилиты Disk Defragmenter запустите Explorer, кликните правой клавишей мыши на жестком диске и выберите дефрагментацию диска, или используйте Norton Disk Tools. Затем запустите утилиту FIPS. Она запросит необходимую информацию, следуйте инструкциям на экране. Затем можете перегрузиться и установить FreeBSD на новый свободный слайс. Смотрите меню Distributions для определения размера необходимого для выбранного типа установки свободного пространства. Есть также очень полезная программа PartitionMagic от PowerQuest . Эта программа гораздо более функциональна, чем FIPS, и очень рекомендуется, если вы планируете часто добавлять/убирать операционные системы. Она стоит денег, и если вы планируете установить FreeBSD и оставить ее, вам возможно отлично подойдет FIPS. В настоящее время, FreeBSD не поддерживает файловые системы, сжатые с помощью программы Double Space. Поэтому файловая система должна быть разжата, чтобы FreeBSD смогла получить доступ к данным. Это может быть сделано с помощью приложения Compression Agent, находящегося в меню Пуск Программы Системные. FreeBSD поддерживает файловые системы MS-DOS. Для этого потребуется использовать команду mountmsdos 8 в FreeBSD 5.X, это mountmsdosfs 8 с необходимыми параметрами. Наиболее распространенный способ использования: В этом примере файловая система MS-DOS расположена на первом разделе первого жесткого диска. Ваша конфигурация может быть другой, проверьте вывод команд Они должны предоставить достаточно информации для определения названий разделов. Замечание: Расширенные разделы MS-DOS обычно располагаются после разделов FreeBSD. Другими словами, номер слайса может быть больше, чем используемый FreeBSD. Например, первый раздел MS-DOS может быть а расширенный раздел MS-DOS Некоторых это иногда запутывает на первых порах. Разделы NTFS также можно смонтировать похожим способом, используя команду mountntfs 8. Этот раздел отвечает на некоторые обычно задаваемые вопросы об установке FreeBSD на Alpha. 2.11.4.1. Могу я загрузиться с ARC или с консоли Alpha BIOS? Нет. FreeBSD, как и Compaq Tru64 и VMS, может загружаться только с консоли SRM. 2.11.4.2. Помогите, у меня нет места! Должен ли я сначала все удалить? 2.11.4.3. Могу ли я смонтировать файловые системы Compaq Tru64 или VMS? Предоставлено Valentino Vaschetto. Этот раздел описывает особые случаи установки FreeBSD. Этот тип установки называется установка без монитора, потому что на компьютере, на который вы пробуете установить FreeBSD или не подсоединен монитор, или даже нет VGA выхода. Вы спросите, как это возможно? Используя последовательную консоль. Последовательная консоль в своей основе имеет другой компьютер, который служит дисплеем и клавиатурой для системы. Чтобы сделать это, создайте инсталляционные дискеты, как описано в Разд. 2.2.7. Чтобы модифицировать дискеты для загрузки с последовательной консоли, следуйте этой инструкции: Если вы произведете загрузку с только что полученных дискет, FreeBSD загрузится в нормальный режим установки. Мы хотим, чтобы FreeBSD загрузилась на последовательную консоль для нашей установки. Чтобы сделать это, смонтируйте на вашу систему FreeBSD используя команду mount 8. Теперь, когда дискета смонтирована, нужно перейти в каталог Сейчас вам нужно настроить дискету для загрузки в последовательную консоль. Создайте файл Это нужно для того, чтобы передать загрузчику флаг загрузки с последовательной консоли. Теперь, когда ваша дискета правильно настроена, размонтируйте ее с помощью команды umount 8: Теперь удалите дискету из дисковода. Теперь нужно соединить два компьютера нуль-модемным кабелем. Просто подсоедините этот кабель к последовательным портам двух компьютеров. Обычный последовательный кабель не будет работать, вам потребуется нуль-модемный кабель, поскольку в нем некоторые соединения перевернуты. Настало время начать установку. Вставьте диск в дисковод компьютера, на который вы будете производить установку без монитора и включите его. Это все! Теперь вы можете управлять компьютером без монитора через сессию затем появится выбор типа терминала. Выберите цветную консоль FreeBSD и проводите установку! Замечание: Чтобы не повторяться, диск FreeBSD в данном случае означает FreeBSD CDROM или DVD, который вы купили или подготовили самостоятельно. Может быть несколько ситуаций, в которых вам потребуется подготовить собственный диск и/или источник для установки FreeBSD. Это может быть физический носитель, такой как лента, или источник, с которого sysinstall сможет взять файлы, такой как локальный сервер FTP, или раздел MS-DOS. У вас есть много компьютеров, подсоединенных к локальной сети, и один диск с FreeBSD. Вы хотите создать локальный сервер FTP, используя содержимое диска FreeBSD, а затем использовать с ваших компьютеров этот локальный сервер FTP вместо подсоединения к интернет. У вас есть диск с FreeBSD, и FreeBSD не распознает ваш CD/DVD привод, а MS-DOSWindows распознает. Вы хотите скопировать файлы установки FreeBSD на раздел DOS этого же компьютера и установить FreeBSD, используя эти файлы. На компьютере, на который вы хотите провести установку, нет ни привода CD/DVD, ни сетевой карты, но вы можете подсоединиться в Laplink-стиле последовательным или параллельным кабелем к другому компьютеру, на котором они есть. Вы хотите создать ленту, которую можно использовать для установки FreeBSD. В составе каждого релиза проект FreeBSD предоставляет доступ к двум образам CDROM ISO images. Эти образы могут быть записаны прожжены на CD если у вас есть CD-рекордер, а затем использованы для установки FreeBSD. Если у вас есть CD-рекордер и дешевый канал интернет, это простейший путь установить FreeBSD. или с ближайшего зеркала. Замените в соответствии архитектурой Alpha или i386 и номером релиза соответственно. Таблица 2-5. Названия ISO-образов FreeBSD 4. Всё, что вам нужно для установки FreeBSD. Все, что вам нужно для установки FreeBSD, и столько дополнительных пакетов сторонних производителей, сколько уместилось на диске. live filesystem, используемая в сочетании со средством Repair программы sysinstall. Копия дерева CVS FreeBSD. Столько дополнительных пакетов сторонних производителей, сколько уместилось на диске. Таблица 2-6. Названия ISO-образов дисков FreeBSD 5. Всё, что вам нужно, чтобы загрузить ядро FreeBSD и войти в интерфейс установки. Установочные файлы сгружаются с FTP или другого поддерживаемого источника. Всё, что вам нужно для установки FreeBSD. Всё, что вам нужно для установки FreeBSD и живой файловой системы, которая используется вместе с функцией Repair программы Документация по FreeBSD и пакеты сторонних разработчиков, которые смогли поместиться на диск. Вы должны сгрузить ISO-образ miniinst либо образ первого диска. Не сгружайте их оба, так как образ первого диска содержит всё, что есть на ISO-образе miniinst. Замечание: ISO-образ miniinst доступен только для релизов, предшествующих 5.4-RELEASE. Используйте ISO-образ miniinst, если доступ в Internet для вас обходится недорого. Он позволит вам установить FreeBSD, и вы сможете установить впоследствии программы сторонних производителей используя систему портов/пакетов смотрите Гл. 4 если необходимо. Используйте образ первого диска, если вы хотите установить релиз FreeBSD 4. и получить достаточный набор программ сторонних производителей, расположенных на этом диске. Дополнительные образы дисков полезны, но не необходимы, особенно если у вас есть высокоскоростной доступ к интернет. Затем вам нужно записать образы CD на диски. Если вы делаете это из другой системы FreeBSD, обратитесь к Разд. 16.6 за более подробной информацией в частности, Разд. 16.6.3 и Разд. 16.6.4. Если вы делаете это в другой системе, потребуется использовать те утилиты для управления CD-рекордером, которые есть в этой системе. Образы дисков предоставляются в стандартном формате ISO, который поддерживается многими программами. Замечание: Если вы интересуетесь созданием собственных вариантов релизов FreeBSD, пожалуйста, прочтите статью о Процессе подготовки релизов. Диск FreeBSD сформирован так же, как и сервер FTP. Это сильно упрощает создание локального сервера FTP, который может быть использован другими компьютерами вашей сети для установки FreeBSD. Убедитесь, что на компьютере FreeBSD, на котором будет установлен сервер FTP, CDROM находится в приводе и смонтируйте Сделайте это, отредактировав Всякий, кто может подсоединиться по сети к вашему компьютеру, может выбрать тип носителя FTP и набрать после выбора Other в меню серверов FTP во время установки. Замечание: Если загрузочный носитель обычно это дискеты для ваших FTP-клиентов в точности не соответствует версии, находящейся на локальном сервере FTP, то sysinstall не позволит вам завершить установку. Если версии похожи и вы хотите это явно указать, то перейдите в меню Options и замените название дистрибутива на any. Внимание: Этот подход хорош для компьютера в вашей локальной сети, защищенного с помощью файрволла. Предоставление сервиса FTP другим компьютерам через интернет а не через локальную сеть привлекает к вашему компьютеру внимание кракеров и других лиц, чье внимание нежелательно. Мы настоятельно рекомендуем придерживаться правильной политики безопасности, если вы делаете это. не рекомендуем делать или по причине не поддерживаемого оборудования, или просто потому, что вы не любите простых путей, потребуется сначала подготовить несколько дискет для установки. Как минимум, вам потребуется столько 1.44 MB или 1.2 MB дискет, сколько нужно, чтобы вместить все файлы из каталога binary distribution. Если вы подготавливаете эти дискеты из DOS, они Если вы используете Windows, используйте Explorer для форматирования дисков кликните правой кнопкой мыши на диске Не доверяйте заводскому форматированию дискет. Отформатируйте их еще раз самостоятельно, просто для уверенности. Множество проблем, о которых сообщали наши пользователи, были результатом использования неправильно отформатированных дисков, поэтому мы сейчас обращаем на это внимание. Если вы создаете образы на другом компьютере FreeBSD, форматирование все еще не лишне, хотя вам не потребуется создавать файловую систему DOS на каждой дискете. Вы можете использовать для создания на них файловых систем UFS, в следующей последовательности для 3.5 1.44 MB дискет: disklabel - w - r fd0.1440 floppy3 Затем вы можете смонтировать их и писать на них как на любую другую файловую систему. После форматирования дискет вам потребуется скопировать на них файлы. Файлы дистрибутива разделены на части, размер которых позволяет легко разместить пять частей на обычной 1.44 MB дискете. Заполните все дискеты файлами, помещая столько файлов на одну дискету, сколько уместится, пока у вас не будет всех необходимых компонент дистрибутива. Каждый компонент должен располагаться в подкаталоге на дискете, например Как только в процессе установки появится экран Media, выберите Floppy и установка продолжится. Чтобы подготовиться к установке с раздела MS-DOS, скопируйте файлы с дистрибутива в каталог корневого каталога раздела. Например, Структура каталога CDROM или сервера FTP должна быть в точности воспроизведена в этом каталоге, мы предлагаем использовать команду DOS если вы копируете дистрибутив с CD. Например, чтобы подготовить минимальную установку FreeBSD: есть свободное место, а на Если у вас нет CDROM, можно загрузить дистрибутив с Каждый компонент находится в своем собственном каталоге, например компонент base можно найти в каталоге 6.0/base/. Замечание: В 4.X и более поздних релизах FreeBSD компонент base называется bin. Поправьте команды и ссылки соответственно, если вы используете эти версии. Все компоненты, которые вы будете устанавливать с раздела MS-DOS и для которых у вас есть место, нужно расположить в Установка с ленты это возможно самый простой метод, уступающий только установке с FTP или CDROM. Программа установки может найти на ленте файлы, которые записаны на нее с помощью tar. После получения всех файлов дистрибутива, которые вам нужны, запишите их на ленту с помощью tar: Когда вы приступите к установке, нужно убедиться в наличии достаточного места во временном каталоге который будет предложено выбрать, чтобы поместилось все содержимое записанной ленты. Поскольку лента - - устройство не-произвольного доступа, этот метод установки требует некоторого места во временном хранилище. Замечание: При начале установки лента должна быть в приводе до загрузки с дискеты. В ином случае она может быть не найдена при тестировании устройств. Есть три возможных типа установки по сети. Через последовательный порт SLIP или PPP, параллельный порт PLIP laplink кабель, или Ethernet стандартный Ethernet контроллер включая некоторые PCMCIA. Поддержка SLIP немного примитивна, и ограничена в основном постоянными соединениями, такими как последовательный кабель между ноутбуком и другим компьютером. Соединение должно быть постоянным, так как устанавливаемый SLIP в настоящее время не имеет возможности дозвона; эта возможность предоставляется программой PPP, которая должна быть использована вместо SLIP когда это возможно. Если вы используете модем, PPP это конечно почти единственный выбор. Убедитесь что у вас есть информация о провайдере, так как она понадобится на довольно ранней стадии процесса установки. Если вы используете PAP или CHAP для соединения с провайдером другими словами, вы можете соединяться с провайдером из Windows без использования скрипта, все что вам понадобится это ввести в приглашении ppp. Иначе вам нужно знать, как дозвониться до провайдера с помощью AT команд, специфичных для вашего модема, так как программа дозвона PPP предоставляет только очень простой эмулятор терминала. Обратитесь к руководству user-ppp и FAQ для получения более подробных сведений. Если у вас проблемы, логи могут быть выведены на экран с помощью команды Если доступно постоянное соединение с другой машиной FreeBSD 2.0-R или выше, вы можете также подумать об установке через параллельный порт laplink кабелем. Скорость соединения через параллельный порт значительно выше, чем обычно возможно через последовательную линию до 50 кбайт/с, это приведет к ускорению установки. Наконец, для самой быстрой установки по сети хорошим выбором будет Ethernet адаптер! FreeBSD поддерживает большинство PC Ethernet карт; список поддерживаемых карт и требуемых для них установок предоставляется в информации об оборудовании для каждого релиза FreeBSD. Если вы используете одну из поддерживаемых PCMCIA Ethernet карт, убедитесь также, что она подключена перед тем, как ноутбук будет включен! К сожалению, FreeBSD в настоящее время не поддерживает горячее подключение PCMCIA карт во время установки. Вам также потребуется знать IP адрес в сети, сетевую маску для класса подсети, и имя компьютера. Если вы делаете установку через соединение PPP и у вас нет статического IP, не бойтесь, IP адрес будет динамически выделен вам провайдером. Системный администратор может подсказать вам, какие значения использовать для данной установки по сети. Если вы будете обращаться к другим хостам по имени, а не по IP адресу, понадобится также сервер DNS и, возможно, адрес шлюза если вы используете PPP, это IP адрес вашего провайдера, чтобы связаться с ним. Если вы хотите производить установку с FTP через HTTP прокси, потребуется также адрес прокси. Если вы не знаете ответов на все или большинство этих вопросов, свяжитесь с системным администратором или ISP перед тем, как начать этот тип установки. Установка через NFS очень проста. Просто скопируйте компоненты FreeBSD, которые вам нужны, на NFS сервер, а затем укажите на него при выборе источника установки NFS. Если этот сервер поддерживает только привилегированные порты это как правило так для рабочих станций Sun, потребуется установить параметр в меню Options перед тем, как начать установку. Если у вас Ethernet карта плохого качества с низкой скоростью передачи данных, вы возможно захотите переключить флаг Чтобы установка по NFS работала, сервер должен поддерживать монтирование подкаталогов, например, если установочный каталог дистрибутива FreeBSD 6.0 находится на: Другие NFS серверы могут иметь другие соглашения. Если вы получаете сообщения сервера это может означать, что соответствующая опция не включена. Переписал Chris Shumway. Перевод на русский язык: Алексей Зелькин, Алексей Докучаев, Денис Пеплин. В этой главе мы попытаемcя раскрыть основные принципы и команды операционной системы FreeBSD. Большая часть нижеизложенного материала в более или менее равной степени применима к любой UNIX - подобной операционной системе. Если вы уверены, что не найдете здесь ничего нового для себя, можете смело пропустить эту главу. Если же вы новичок, мы настоятельно рекомендуем внимательно прочесть это главу. Прочитав эту главу, вы узнаете: Как использовать виртуальные консоли FreeBSD. Как работают права доступа на файлы в UNIX и как следует интерпретировать флаги файлов в ОС FreeBSD. Иерархия каталогов FreeBSD. Организация дисков FreeBSD. Как монтировать и размонтировать файловые системы. Что такое процессы, даемоны и сигналы. Что такое командная оболочка или интерпретатор команд и как настроить личное рабочее окружение. Как пользоваться стандартными текстовыми редакторами. Что такое устройства и файлы устройств. Какие бинарные форматы используются в FreeBSD. Как пользоваться справочным руководством для получения дополнительной информации. FreeBSD можно использовать разными способами. Один из них - - набор команд в текстовом терминале. Используйте этот способ, и вся гибкость и мощь систем UNIX будет в ваших руках. Этот раздел рассказывает о терминалах, консолях и их использовании в FreeBSD. Если во время установки вы не настроили FreeBSD для автоматического запуска графической среды при загрузке, система запросит ввод логина сразу после завершения стартовых скриптов. Вы увидите примерно следующее: Additional ABI support:. Local package initialization:. Additional TCP options:. Fri Sep 20 13:01:06 EEST 2002 FreeBSD/i386 ttyv0 login: В вашей системе сообщение может быть другим, но очень похожим на это. В данный момент нас интересуют последние две строки. Вторая с конца строка: В этой строке содержится немного информации о только что загруженной системе. Это консоль FreeBSD, работающей на Intel или совместимом процессоре x86 архитектуры 1. Имя этого компьютера у каждого компьютера UNIX есть имя и в данный момент вы видите системную консоль - - терминал Наконец, последняя строка всегда: Здесь вам предлагается ввести имя пользователя, чтобы войти в FreeBSD. Следующий раздел описывает способ, которым вы можете сделать это. FreeBSD это многопользовательская, многопроцессорная система. Это формальное описание системы, которая может быть использована множеством разных людей, одновременно запускающих большое количество программ на одном компьютере. Любой многопользовательской системе нужен способ отличать каждого пользователя от остальных. В FreeBSD и всех UNIX подобных операционных системах, эта задача решается путем входа пользователя в систему перед запуском каких-либо программ. У каждого пользователя есть уникальное имя имя пользователя и персональный, секретный ключ пароль. Перед тем, как разрешить пользователю выполнять какие-либо программы, FreeBSD запрашивает их оба. Сразу после загрузки FreeBSD и завершения работы стартовых скриптов 2, система предложит вам ввести имя пользователя: В этом примере, предположим что ваше имя пользователя Enter. Далее должно появиться приглашение ввести пароль: Enter. Пароль не виден ! Не беспокойтесь об этом. Это сделано по соображениям безопасности. Если вы ввели пароль правильно, то сразу же войдете в FreeBSD и можете начать выполнять команды. или message of the day за которым последует командная строка с символом Это означает, что вы успешно вошли в FreeBSD. Запуск команд UNIX из консоли - - это конечно хорошо, но FreeBSD может выполнять множество программ одновременно, поэтому наличие одной консоли может быть недостатком. В таком случае очень полезны виртуальные консоли. FreeBSD может быть настроена для работы с несколькими виртуальными консолями. Вы можете переключаться с одной виртуальной консоли на другую, нажимая соответствующие сочетания клавиш на клавиатуре. У каждой консоли есть свой канал вывода и FreeBSD заботится о том, чтобы правильно перенаправить ввод с клавиатуры и вывод на монитор, как только вы переключитесь с одной консоли на другую. Для переключения между консолями зарезервированы специальные комбинации клавиш 3. Вы можете использовать сочетания Alt - F1, F8 чтобы переключаться между различными виртуальными консолями в FreeBSD. При переключении от одной консоли к другой, FreeBSD заботится о сохранении и восстановлении вывода на экран. Результатом является иллюзия наличия множества виртуальных экранов и клавиатур, которые могут быть использованы для ввода и запуска команд FreeBSD. Программы, которые вы запускаете на одной виртуальной консоли, не прекращают выполнение, когда консоль становится невидимой. Они продолжают выполняться, когда вы переключаетесь на другую виртуальную консоль. В конфигурации по умолчанию FreeBSD запускает восемь виртуальных консолей. Тем не менее, это не ограничение оборудования, и вы можете легко настроить систему для загрузки большего или меньшего числа виртуальных консолей. Число и параметры виртуальных консолей задаются в файле Вы можете использовать это файл для настройки виртуальных консолей FreeBSD. Любая не закомментированная строка в этом файле строка, не начинающаяся с символа содержит настройки для одного терминала или виртуальной консоли. Версия этого файла по умолчанию, поставляемая с FreeBSD, содержит настройки для девяти виртуальных консолей и включает восемь терминалов. Это строки, начинающиеся с За детальным описанием каждой колонки этого файла и всех опций, которые можно указать для настройки виртуальных консолей, обращайтесь к ttys 5. Детальное описание однопользовательского режима можно найти в Разд. 12.6.2. Стоит отметить, что при работе FreeBSD в однопользовательском режиме есть только одна консоль. Виртуальных консолей нет. Установки консоли в однопользовательском режиме можно найти в файле Обратите внимание на строку, начинающуюся с name getty type status comments If console is marked insecure, then init will ask for the root password when going to single-user mode. console none unknown off secure можно отредактировать эту строку и изменить Если вы сделаете это, FreeBSD даже при загрузке в однопользовательском режиме будет запрашивать пароль загрузка в однопользовательский режим сильно усложнится. Это все еще возможно, но несколько более сложно для тех, кто еще не очень освоился с процессом загрузки FreeBSD и вызова программ. FreeBSD является прямым потомком BSD UNIX и основывается на некоторых ключевых концепциях UNIX. В первую очередь это, конечно, тот факт, что FreeBSD - многопользовательская операционная система. Это означает, что несколько пользователей могут работать одновременно, решая различные задачи и совершенно не мешая друг другу. На системе лежит ответственность за правильное разделение и управление такими ресурсами как память, процессорное время, периферийные устройства и прочее. Многопользовательская среда предполагает наличие механизма регулирования прав доступа к любому ресурсу в системе. Существует три типа прав доступа: на чтение, запись и исполнение. Права сгруппированы три по три, соответственно чтение/запись/выполнение для владельца/группы/всех остальных. Численное представление: Нельзя читать и писать, разрешено исполнять Нельзя читать и исполнять, разрешено писать Нельзя читать, разрешено писать и исполнять Разрешено читать, нельзя писать и исполнять Разрешено читать и исполнять, нельзя писать Разрешено читать и писать, нельзя исполнять команды ls 1 для получения подробного листинга каталога, включающего колонку с информацией о правах на файл для владельца, группы и всех остальных. Например, команда Первый считая слева символ говорит обычный ли это файл, каталог, символьное устройство, сокет или любое другое псевдофайловое устройство. В нашем случае указывает на обычный файл. Следующие три символа в данном случае это задают права доступа владельца файла. Затем идут права группы, которой принадлежит файл определяет права для всех остальных. Минус означает отсутствие каких-либо прав т.е. нельзя ни читать, ни писать, ни выполнять. В данном случае права установлены таким образом, что владелец может читать и писать в файл, а группа и другие могут только читать. Таким образом, численное представление прав где каждая цифра представляет три части прав на файл. Права на устройства контролируются аналогичным образом. В FreeBSD все устройства представлены в виде файлов, которые можно открывать, читать и писать в них. Эти специальные файлы содержатся в каталоге Каталоги также являются файлами. К ним применимы те же права на чтение, запись и выполнение. Правда, в данном случае выполнение имеет несколько другой смысл. Когда каталог помечен как исполнимый, это означает, что можно зайти в него с помощью команды change directory. Это также означает, что в данном каталоге можно получить доступ к файлам, имена которых известны конечно, если собственные права на файл разрешают такой доступ. Если же требуется получить список файлов в некотором каталоге, права доступа на него должные включать доступ на чтение. Для того, чтобы удалить из каталога какой-либо файл, имя которого известно, на этот каталог должны быть даны права на запись и на исполнение. Существуют и другие права доступа, но они как правило используются в особых случаях, например, setuid-бит на выполняемые файлы и sticky-бит на каталоги. За дополнительными сведениями по этому вопросу обращайтесь к chmod 1. Предоставил Tom Rhodes. Символические обозначения, иногда называемые символическими выражениями, используют буквы вместо восьмеричных значений для назначения прав на файлы и каталоги. Символические выражения используют синтаксис кто действие права, где существуют следующие значения: Эти значения используются командой chmod 1 так же как и раньше, но с буквами. Например, вы можете использовать следующую команду для запрета доступа других пользователей к Для изменения более чем одного набора прав можно применить список, разделенный запятыми. Например, следующая команда удалит права группы и всех остальных на запись в а затем добавит права на выполнение для всех: Текст предоставил Том Родес. Кроме уже описанных прав доступа к файлам, FreeBSD поддерживает использование флагов файлов. Эти флаги обеспечивают дополнительный уровень защиты и контроля над файлами, но не могут применяться к каталогам. Эти флаги добавляют дополнительные возможности контроля над файлами, обеспечивая при определенных условиях невозможность их удаления даже пользователю Файловые флаги изменяются при помощи утилиты chflags 1 посредством простого интерфейса. К примеру, чтобы установить системный признак неудаляемости на файл выполните следующую команду: Чтобы отключить флаг неудаляемости, просто выполните предыдущую команду с ключом no перед параметром Чтобы просмотреть флаги этого файла, воспользуйтесь командой ls 1 с параметрами В остальных случаях эти флаги может установить владелец файла. Для получения дополнительной информации мы рекомендуем изучить содержимое справки по командам chflags 1 и chflags 2. Файловая система FreeBSD является ключевым моментом в понимании устройства всей системы. Самым важным понятием является, несомненно, корневой каталог, обозначаемый символом/. Корневой каталог монтируется самым первым на этапе загрузки и содержит все необходимое, чтобы подготовить систему к загрузке в многопользовательский режим. Корневой каталог также содержит точки монтирования всех других файловых систем. Точкой монтирования называется каталог, который будет соответствовать корню примонтированой файловой системы. Стандартные точки монтирования включают Эти каталоги обычно перечислены в файле в котором указаны файловые системы и их точки монтирования. Большинство файловых систем, описанных в монтируются автоматически из скрипта rc 8, если только для них не указана опция Полное описание иерархии файловой системы есть в hier 7. Здесь же мы упомянем лишь наиболее важные каталоги. Корневой каталог файловой системы. Основные утилиты, необходимые для работы как в однопользовательском, так и в многопользовательском режимах. Программы и конфигурационные файлы, необходимые для нормальной загрузки операционной системы. Конфигурационные файлы с настройками по умолчанию, используемые в процессе загрузки операционной системы см. 5. Основные конфигурационные файлы системы и скрипты. Основные конфигурационные файлы системы с настройками по умолчанию см. rc 8. Конфигурационные файлы для систем обработки почты например, sendmail 8. Пустой каталог, часто используемый системными администраторами как временная точка монтирования. Статически слинкованные программы для восстановления после сбоев. Обратитесь к rescue 8. Системные утилиты и утилиты администрирования, необходимые для работы как в однопользовательском, так и в многопользовательском режимах. Программы, необходимые для работы в автономном режиме например, при установке системы. Временный каталог часто монтируется как mfs 8 ; обычно содержимое этого каталога теряется во время перезагрузки системы. Большинство пользовательских утилит и приложений. Пользовательские утилиты и приложения общего назначения. Стандартные заголовочные файлы для языка C. Файлы стандартных библиотек. Файлы данных для различных утилит. Системные даемоны и утилиты выполняемые другими программами. Локальные пользовательские приложения, библиотеки, и т.д. Также используется по умолчанию коллекцией портов. Внутри Исключение составляют каталог который расположен непосредственно в и документация портов, которая расположена в Архитектурно-зависимые файлы и каталоги, образующиеся в процессе сборки системы из исходных текстов в Коллекция портов FreeBSD опционально. Системные утилиты и утилиты администрирования исполняемые пользователем. Архитектурно-независимые файлы. Исходные тексты BSD и/или программ. Утилиты, приложения и библиотеки X11R6 X Window System; необязательно. Файлы журналов общего назначения, временные, перемещаемые файлы и файлы очередей. Различные файлы системных журналов. Почтовые ящики пользователей. Файлы очередей печати, почты, и пр. Временные файлы, которые необходимо сохранять между перезагрузками операционной системы. Наименьшая единица, которую FreeBSD использует для обращения к файлам, это имя файла. Имена файлов чувствительны к регистру, поэтому два разных файла. FreeBSD не использует расширение файла для определения программа это, документ или другой тип данных. Файлы хранятся в каталогах. Каталоги могут не содержать файлов, или могут содержать много сотен файлов. Каталоги также могут содержать другие каталоги, что позволяет создавать иерархию каталогов один в другом. Это упрощает организацию данных. Обращение к файлам происходит путем задания имени файла или каталога, дополняемого прямым слэшем за которым может следовать имя другого каталога. Если есть каталог полное имя, или путь к файлу будет Каталоги хранятся в файловых системах. Каждая файловая система содержит один каталог на верхнем уровне, называемый корневым каталогом этой файловой системы. Этот корневой каталог может содержать другие каталоги. Внешне это может быть похоже на те операционные системы, которые вы возможно использовали. Есть несколько отличий: например, MS-DOS использует для разделения имен файлов и каталогов, а Mac OS использует FreeBSD не использует букв дисков, или других имен дисков в пути. Вам не нужно писать Вместо этого, одна файловая система назначается корневой файловой системой. Обращение к корневому каталогу корневой файловой системы происходит через Любая другая файловая система монтируется к корневой файловой системе. Неважно как много дисков есть в вашей системе FreeBSD, каждый каталог будет выглядеть как расположенный на том же диске. Предположим, у вас есть три файловых системы: Каждая файловая система имеет один корневой каталог, в котором содержатся другие каталоги, называемые корневой файловой системой. Если вы используете команду для просмотра содержимого каталога, вы увидите два подкаталога, Дерево каталогов выглядит так: Файловая система должна быть примонтирована к каталогу другой файловой системы. Предположим, что вы монтируете файловую систему Если потребуется, любые файлы из каталогов временно скрыты. Они появятся, если Файловые системы могут быть смонтированы одна на другую. Продолжая предыдущий пример, файловая система Если вы знакомы с MS-DOS, это похоже, хотя и не идентично, команде Как правило, это не должно вас интересовать. Обычно вы создаете файловые системы во время установки FreeBSD, решаете куда их монтировать, и ничего не меняете, пока не понадобится добавить новый диск. Можно создать одну большую корневую файловую систему и не создавать других. У такого подхода есть несколько недостатков и одно преимущество. Различные файловые системы могут иметь различные опции монтирования. Например, в целях безопасности корневая файловая система может быть смонтирована только для чтения, что делает невозможным случайное удаление или редактирование критически важного файла. Отделение файловых систем, используемых пользователями для записи, таких как от других файловых систем позволяет также монтировать их с параметром nosuid ; этот параметр отменяет действие битов suid/ guid на исполняемых файлах, в этой файловой системе, что потенциально повышает безопасность. FreeBSD автоматически оптимизирует расположение файлов на файловой системе в зависимости от того, как файловая система используется. Файловая система, содержащая множество мелких часто записываемых файлов, будет иметь оптимизацию, отличную от таковой для файловой системы, содержащей несколько больших файлов. На одной большой файловой системе эта оптимизация не работает. Файловые системы FreeBSD очень устойчивы к внезапному отключению. Тем не менее, потеря питания в критический момент все же может повредить структуру файловой системы. Разделение данных на несколько файловых систем повышает шансы, что система все-таки будет работать и делает более легким восстановление с резервной копии. Размер файловых систем фиксирован. Если вы создаете файловую систему при установке FreeBSD и задаете определенный размер, позднее вы можете обнаружить что нужен раздел большего размера. Это не так легко сделать без резервного копирования, создания файловых систем нового размера и последующего восстановления сохраненных данных. Важно: В FreeBSD 4.4 и выше представлена новая команда, growfs 8, которая позволяет увеличивать размер файловой системы на лету, устраняя это ограничение. Файловые системы содержатся в разделах. Этот термин не имеет того же смысла, что и при более раннем его использовании в этой главе, из-за наследия UNIX в FreeBSD. Каждый раздел обозначается буквой от Каждый раздел может содержать только одну файловую систему, это значит что файловая система может быть описана ее точкой монтирования в файловой иерархии, или буквой раздела, в котором она содержится. FreeBSD также использует дисковое пространство под раздел подкачки swap space. Подкачка позволяет FreeBSD работать с виртуальной памятью. Ваш компьютер может работать так, как если бы у него было больше памяти, чем есть на самом деле. Когда у FreeBSD кончается память, она перемещает часть данных, не используемых в данный момент, в раздел подкачки и возвращает их обратно перемещая в подкачку что-то другое, когда они нужны. По некоторым разделам есть определенные соглашения. Как правило, содержит корневую файловую систему Как правило, содержит раздел подкачки Как правило, такого же размера, что и весь слайс slice. Это позволяет утилитам, которым нужно работать над всем слайсом например, сканер плохих блоков, работать с разделом В обычной ситуации не нужно создавать файловую систему на этом разделе. создавался для специальных целей, хотя сейчас не используется. На настоящий момент, некоторые утилиты могут работать некорректно при попытке обращения к Каждый раздел-содержащий-файловую-систему хранится на том, что во FreeBSD называется слайс slice. Слайс - - это термин FreeBSD, то, что обычно называют разделом, и опять же это из-за UNIX основы FreeBSD. Слайсы нумеруются с 1 по 4. Номера слайсов следуют за именем устройства, предваряемые строчной s1 это первый слайс первого SCSI устройства. Может быть только четыре физических слайса на диске, но могут быть логические слайсы нужного типа внутри физических слайсов. Эти дополнительные слайсы нумеруются начиная с 5, так что ad0 s5 это первый дополнительный слайс на первом IDE диске. Эти устройства используются файловыми системами, занимающими весь слайс. Слайсы, эксклюзивно выделенные dangerously dedicated физические устройства и другие устройства содержат разделы, представляемые буквами от Эти буквы добавляются к имени устройства. da0 a это раздел a на первом устройстве da, который эксклюзивно выделен. ad1s3 e это пятый раздел в третьем слайсе второго IDE диска. Наконец, каждый диск идентифицирован. Имя диска начинается с кода, обозначающего тип диска, затем идет номер диска. В отличие от слайсов, нумерация дисков начинается с 0. Основные коды, которые вам могут встретиться, есть в Табл. 3-1. В то время, как ссылка на раздел FreeBSD требует также указания слайса и диска, содержащего раздел, ссылка на слайс требует также указания имени диска. Делайте это указанием имени диска, номера слайса, и затем буквы раздела. Примеры показаны в Прим. 3-1. Прим. 3-2 показывает концептуальную модель диска, которая должна помочь прояснить ситуацию. Для установки FreeBSD вы должны сначала настроить слайсы дисков, затем создать разделы внутри слайсов, которые будут использованы для FreeBSD, а затем создать файловую систему или подкачку в каждом разделе и решить, куда файловая система будет смонтирована. Таблица 3-1. Коды дисковых устройств Пример 3-1. Пример имен диска, слайса, и раздела Пример 3-2. Концептуальная модель диска Эта диаграмма показывает первый подключенный к системе IDE диск с точки зрения FreeBSD. Предположим, что размер диска 4 GB, и он содержит два 2 GB слайса MS-DOS разделы. Первый слайс содержит MS-DOS диск, а второй слайс содержит установленную FreeBSD. В этом примере в установленной FreeBSD три раздела и раздел подкачки. В каждом из трех разделов есть файловая система. Раздел используется для корневой файловой системы, Файловая система лучше всего представима в виде дерева, с корнем в и прочие - это ветви дерева, которые, в свою очередь, являются корнями для поддеревьев, также имеющих ветви Хорошей практикой является разнесение некоторых особо важных каталогов на разные файловые системы. Например, а также всевозможные временные файлы и нередко может занять все свободное место на диске. Поэтому лучше смонтировать отдельно, чтобы избежать переполнения Часто бывает так, что некоторые разделы файловой системы расположены на разных физических носителях дисках, CDROM, виртуальных или сетевых например, сетевая файловая система Network File System, NFS. В этом случае узлы файловой иерархии будут расположены на разных файловых системах. Файловые системы, перечисленные в монтируются автоматически в процессе загрузки если, конечно, для них не указана опция Имя устройства которое должно присутствовать, как описано в Разд. 16.2. Каталог существующий, куда следует смонтировать файловую систему. Тип файловой системы, который передается программе mount 8. По умолчанию FreeBSD использует для монтирования файловой системы в режиме чтение-запись, или для режима только чтение, за которыми могут следовать и другие опции. Довольно часто используется опция чтобы не монтировать автоматически файловые системы в процессе загрузки. Об остальных опциях можно прочитать в mount 8. Используется утилитой dump 8 для определения файловых систем, с которых необходимо периодически снимать специальные архивные копии. При отсутствии этого параметра принимается равным нулю. Определяет порядок, в котором следует проверять файловые системы чаще всего, в случае некорректного размонтирования или внезапной перезагрузки системы. Если файловую системы не нужно проверять, этот параметр должен быть установлен в ноль. Для корневой файловой системы которая должна быть проверена в первую очередь установите его в 1. Для всех остальных - 2 или больше. Если две или более файловые системы имеют одинаковое значение fsck 8 попытается проверять их параллельно если, конечно, это возможно физически. и различных опциях монтирования. 3.6.2. Команда Команда mount 8 используется, как следует из ее имени, для монтирования файловых систем. Перечислим основные опции, которые может принимать команда mount 8 полный список смотрите на странице справочника: Смонтировать все файловые системы, перечисленные в файле Исключение составляют помеченные как noauto, перечисленные после опции Сделать все, кроме самого системного вызова mount. Эта опция полезна вместе с флагом для определения того, что на самом деле пытается сделать mount 8. Монтировать поврежденный раздел опасно!, или форсировать отмену всех запросов на запись при изменении режима монтирования с чтение-запись на только чтение. Монтировать файловую систему в режиме только для чтения. То же самое, что и указание аргумента для FreeBSD версий старше, чем 5.2 для опции Монтировать файловую систему как систему указанного типа, или, в случае опции только файловые системы данного типа. По умолчанию, тип файловой системы - ufs. Обновить опции монтирования для файловой системы. Выдавать более подробную информацию. Монтировать файловую систему в режиме чтение-запись. принимает разделенные запятыми аргументы, включая нижеперечисленные: Не обращать внимание на специальные файлы устройств на файловой системе то есть не считать их файлами устройств. Весьма полезная опция для повышения безопасности системы. Запрет на исполнение бинарных файлов на файловой системе тоже полезная опция для повышения безопасности системы. Игнорировать setuid и setgid биты на файловой системе еще одна полезная опция для повышения безопасности системы. 3.6.3. Команда Команда umount 8 принимает в качестве параметра точку монтирования какой-либо файловой системы, имя устройства, опцию Кроме того, вы можете дополнительно указать опцию для форсированного размонтирования файловой системы, и для получения более подробной информации. Имейте ввиду, что это в общем случае опасно и потому не рекомендуется, так как тем самым вы можете нарушить работу компьютера или повредить данные на файловой системе. Разница состоит в том, что не пытается размонтировать корневую файловую систему. FreeBSD является многозадачной операционной системой. Это означает, что одновременно может быть запущена более чем одна программа. Каждая программа, работающая в некоторый момент времени, называется процессом. Каждая команда, которую вы запускаете, порождает хотя бы один процесс. Есть несколько системных процессов, запущенных все время и поддерживающих функциональность системы. У каждого процесса есть уникальный номер, называемый process ID, или PID, и, как и у файлов, у каждого процесса есть владелец и группа. Информация о владельце и группе процесса используется для определения того, какие файлы и устройства могут быть открыты процессом с учетом прав на файлы, о которых говорилось ранее. Также у большинства процессов есть родительский процесс. Например, при запуске команд из оболочки, оболочка является процессом и любая запущенная команда также является процессом. Для каждого запущенного таким путем процесса оболочка будет являться родительским процессом. Исключением из этого правила является специальный процесс, называемый init 8. всегда первый процесс, его PID всегда 1. запускается автоматически ядром во время загрузки FreeBSD. Две команды очень полезны для просмотра работающих в системе процессов, это ps 1 и top 1. Команда используется для получения списка запущенных процессов и может показать их PID, сколько памяти они используют, команду, которой они были запущены и т.д. Команда показывает запущенные процессы и обновляет экран каждые несколько секунд, что позволяет наблюдать за работой компьютера в реальном времени. показывает только принадлежащие вам процессы. Например: PID TT STAT TIME COMMAND 298 p0 Ss 0:01.10 tcsh 7078 p0 S 2:40.88 xemacs xemacs-21.1.14 37393 p0 I 0:03.11 xemacs xemacs-21.1.14 48630 p0 S 2:50.89 48730 p0 IW 0:00.00 dns helper navigator-linux- 72210 p0 R 0:00.00 ps 390 p1 Is 0:01.14 tcsh 7059 p2 Is 1:36.18/usr/local/bin/mutt - y 6688 p3 IWs 0:00.00 tcsh 10735 p4 IWs 0:00.00 tcsh 20256 p5 IWs 0:00.00 tcsh 262 v0 IWs 0:00.00 - tcsh tcsh 270 v0 IW 0:00.00/bin/sh/usr/X11R6/bin/startx - - - bpp 16 280 v0 IW 0:00.00 xinit - - - bpp 16 284 v0 IW 0:00.00/bin/sh 285 v0 S 0:38.45/usr/X11R6/bin/sawfish Как вы можете видеть в данном примере, вывод ps 1 организован в несколько колонок. Идентификатор процесса обсуждался ранее. PID назначаются с 1 до 99999 и опять с начала, если последнее число будет превышено. Колонка показывает терминал tty, на котором запущена программа можете пока забыть про это. показывает состояние программы и опять же может быть пока проигнорирован. это количество времени центрального процессора, использованное программой - - это обычно не время, прошедшее с запуска программы, поскольку большинство программы проводят много времени в ожидании некоторого события перед тем, как занять время процессора. Наконец, это команда, которой программа была запущена. У ps 1 есть множество различных опций, влияющих на выводимую информацию. Один из наиболее полезных наборов опций это позволяет показать информацию о всех запущенных процессах, а не только тех, которыми вы владеете. показывает имя пользователя, владеющего процессом, и информацию об используемой памяти. указывает ps 1 показать всю командную строку, вместо обрезания ее, когда она станет слишком длинной, чтобы уместиться на экран. Вывод top 1 похож на только что описанный. Обычно он выглядит так: last pid: 72257; load averages: 0.13, 0.09, 0.03 up 013:38:33 22:39:10 47 processes: 1 running, 46 sleeping CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free Swap: 256M Total, 38M Used, 217M Free, 15% Inuse PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND 72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top 7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14 281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86SVGA 296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm 48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu 175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd 7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% Вывод разбит на два раздела. Заголовок первые пять строк показывает PID последнего запущенного процесса, среднее значение загрузки системы которое показывает насколько система занята, время работы системы с последней перезагрузки и текущее время. Другие цифры заголовка относятся к количеству запущенных процессов в данном примере 47, количеству занятой памяти и подкачки и время, занимаемое различными состояниями процессора. Ниже идут несколько колонок, содержащих похожую на вывод ps 1 информацию. Как и раньше, это PID, время процессора, командная строка. top 1 показывает также величину занятой процессом памяти. Это значение разбито на две колонки, одна для общего объема, а другая для резидентного - - общий объем показывает сколько всего памяти нужно приложению, а резидентный показывает количество памяти, используемой в данный момент. Из этого примера видно, что Netscape требует почти 30 MB памяти, но в данный момент использует только 9 MB. top 1 автоматически обновляет экран каждые две секунды; это значение можно изменить опцией Если вы запускаете редактор, им можно легко управлять, открывать в нем файлы и т.д. Вы можете делать это, поскольку редактор предоставляет такие возможности и потому, что редактор присоединен к терминалу. Некоторые программы разработаны без поддержки интерфейса пользователя, поэтому они отсоединяются от терминала при первой возможности. Например, веб-сервер целый день отвечает на запросы из сети, и ему как правило не требуется ваше вмешательство. Программы, передающие почту от сервера к серверу - - другой пример приложений этого класса. Мы называем эти программы даемонами. Даемоны это персонажи греческой мифологии; хорошие или плохие, они были спутниками человека и, вообще говоря, выполняли полезную работу для людей. Почти как веб- и почтовые серверы выполняют полезную работу сегодня. Это причина, по которой талисманом BSD долгое время является веселый даемон в тапочках и с вилами. Есть соглашение, по которому имя программы, которая обычно запускается как даемон, заканчивается на d. BIND это Berkeley Internet Name Daemon выполняемая программа называется программа веб сервера Apache называется даемон очереди печати это и так далее. Это соглашение, а не жесткое правило; например, главный почтовый даемон для Sendmail называется как вы могли бы предположить. Иногда может потребоваться взаимодействие с процессом даемона. Эти можно сделать с помощью сигналов, т.е. взаимодействовать с даемонами или с любыми запущенными процессами, посылая им сигнал. Есть множество различных сигналов - - некоторые из них имеют специальное значение, другие обрабатываются приложением, реакция которого на эти сигналы должна быть описана в документации. Вы можете посылать сигналы только тем процессам, владельцем которых являетесь. Если вы отправите сигнал какому-то другому процессу с помощью kill 1 или kill 2, доступ будет запрещен. Исключением из правил является пользователь который может отправлять сигналы любому процессу. В некоторых случаях FreeBSD тоже посылает сигналы приложениям. Если приложение плохо написано и пробует обратиться к области памяти, к которой оно не должно обращаться, FreeBSD посылает процессу сигнал нарушение сегментации Если приложение использует системный вызов alarm 3, чтобы получить уведомление по истечении определенного периода времени, будет отправлен сигнал Alarm Два сигнала могут быть использованы для завершения процесса, это корректный способ завершить процесс; процесс может поймать сигнал, определить, что его хотят завершить, закрыть любые файлы, которые он мог открыть, и закончить то, что он делал в момент перед закрытием. В некоторых случаях процесс может даже игнорировать если выполняет задачу, которая не может быть прервана. не может быть проигнорирован процессом. Этот сигнал говорит Меня не волнует что ты делаешь - - остановись немедленно. Если вы посылаете процессу FreeBSD сразу же остановит этот процесс 4. Другие сигналы, которые возможно вам понадобятся, Это сигналы общего назначения, различные приложения могут по-разному реагировать на них. Предположим, что вы изменили файл конфигурации веб сервера - - теперь нужно указать ему перечитать конфигурацию. Можно остановить и запустить но это приведет к кратковременной остановке сервера, которая может быть нежелательна. Большинство даемонов написаны так, чтобы при получении сигнала перечитывать файлы конфигурации. Поэтому вместо уничтожения и запуска Поскольку нет стандартного способа реагирования на этот сигнал, различные даемоны будут вести себя по разному; прочитайте документацию на даемон по этому вопросу. Сигналы посылаются с помощью команды kill 1, как показано в этом примере. Этот пример показывает как послать сигнал inetd 8. Файл конфигурации перечитает этот файл, если ему отправить сигнал Нужно определить PID процесса, которому вы хотите отправить сигнал. Сделайте это с помощью ps 1 и grep 1. Команда grep 1 используется для поиска по заданной строке в выходном потоке. Эта команда запускается под обычным пользователем, а inetd 8 под поэтому ps 1 должна быть запущена с параметром Итак, PID inetd 8 198. В некоторых случаях в выводе команды может также появиться Это из-за способа, которым ps 1 получает список запущенных процессов. нужно сначала использовать su 1 для получения прав Как и большинство команд UNIX, kill 1 ничего не выведет, если отработает нормально. Если вы посылаете сигнал процессу, которым не владеете, на экране появится При неправильно набранном PID вы или отправите сигнал другому процессу, что может привести к неприятностям, или, если повезет, сигнал будет отправлен на PID, который в данный момент не используется - - на экране появится Во многих оболочках команда встроена; таким образом, оболочка вместо вызова сама посылает сигнал. Это может быть очень полезно, но в разных оболочках имя сигнала указывается по-разному. Чем пытаться выучить их все, гораздо проще использовать Отправка других сигналов очень похожа, просто замените в командной строке на имя другого сигнала. Важно: Уничтожение процессов наугад может быть плохой идеей. В частности, init 8, чей PID 1, имеет особое значение. Выполнение быстрый способ перегрузить систему. Всегда дважды проверяйте параметры запуска kill 1 перед тем, как нажать При работе с FreeBSD, в большинстве случаях для выполнения повседневных задач используется командный интерфейс так называемая оболочка, shell. Основная задача интерпретатора - - принимать вводимые команды и выполнять их. Многие командные интерпретаторы имеют встроенные средства для выполнения повседневной работы, например, операции над файлами и каталогами, редактирование командной строки, командные макросы и переменные окружения. Вместе с FreeBSD поставляется несколько командных интерпретаторов, например, расширенная версия C-shell. Многие другие интерпретаторы доступны из коллекции портов FreeBSD, например Какой из командных интерпретаторов использовать? Это дело вкуса. Если вы программируете на C, то вам, возможно, понравится Если вы работали с Linux, или только начинаете работать с интерфейсом командной строки UNIX, попробуйте Каждый из названных интерпретаторов имеет свои особенности, которые отличат его от других, и, возможно, повлияют на ваш выбор. Одна из наиболее часто используемых функций командного интерпретатора - дополнение частичного имени файла до полного. Вы можете набрать только первые несколько символов имени файла, нажать клавишу табуляции TAB, и командный интерпретатор автоматически завершит имя. Например, у нас есть два файла, названные Допустим, мы хотим удалить файл Для этого, наберем на клавиатуре Здесь BEEP - это так называемый консольный сигнал, оповещающий о том, что интерпретатор не в состоянии закончить имя файла, так как по введенным вами символам невозможно однозначно идентифицировать файл. Например, имена файлов но после нажатия TAB можно однозначно дополнить только до Если же теперь ввести точку и вновь нажать TAB, интерпретатор достроит имя файла целиком. Дополнительные возможности при работе с интерпретатором дает использование переменных окружения. Переменные окружения это пары переменнаязначение, хранящиеся в памяти интерпретатора. Значение переменных окружения может быть прочитано любой программой, запущенной из командного интерпретатора, и часто содержит настройки для многих приложений и утилит. Ниже приведены некоторые наиболее часто встречающиеся переменные окружения и их значения: Имя текущего пользователя. Каталоги, разделенные двоеточием, для поиска исполняемых файлов. Сетевое имя виртуального дисплея X11, доступного для подключения. Текущий командный интерпретатор. Название тип терминала. Используется, чтобы узнать возможности терминала. Список escape-последовательностей для управления различными функциями терминала. Название тип операционной системы. Например, FreeBSD. Архитектура машины процессора. Выбранный пользователем текстовый редактор. Выбранная пользователем утилита просмотра файлов. Каталоги, разделенные двоеточием, для поиска файлов системного справочника. Установка значений переменных окружения различна для разных оболочек. Например, в интерпретаторах C-стиля, таких как В интерпретаторах Bourne, таких как Например, чтобы установить или изменить значение переменной Чтобы получить значение переменной, например, в командной строке, поместите символ перед именем переменной. Например, команда Командный интерпретатор воспринимает некоторые символы, называемые метасимволами, в качестве управляющих. Один из наиболее часто используемых - символ split который заменяет любое количество символов в имени файла. Метасимволы используются для поиска файлов по маске, например, команда делает практически тоже самое, что и команда поскольку интерпретатор вызывает команду передавая ей имена всех файлов, попадающих под маску split В некоторых ситуациях требуется, чтобы интерпретатор воспринимал метасимволы как обычные, не несущие специальной смысловой нагрузки. Этого можно достичь, поставив перед символом обратную косую черту выведет тип вашего терминала, в то же время команда а не значение переменной Самым простым способом, пожалуй, будет воспользоваться командой определена, то будет загружен соответствующий текстовый редактор, иначе vi. Вам нужно будет изменить значение поля Shell: и выйти из редактора с сохранением результатов. Например, если вы хотите изменить интерпретатор на без параметров и изменить интерпретатор по умолчанию в редакторе. Замечание: Интерпретатор, который вы будете использовать, обязательно должен быть в файле Обычно, при установке интерпретаторов из коллекции портов, это делается автоматически. Если же это не так, вам нужно будет самостоятельно добавить соответствующую строчку в этот файл. Например, если вы установили Большинство настроек в FreeBSD производится путем редактирования текстовых файлов. Соответственно, вам нужно будет освоиться с каким-либо текстовым редактором. Вместе с FreeBSD поставляются лишь некоторые из них, гораздо больше редакторов доступно из Коллекции портов. Самым простым в изучении и использовании, по-видимому, можно назвать ee, что расшифровывается как easy editor, т.е. простой редактор. Чтобы начать редактировать какой-либо файл, наберите в командной строке имя редактируемого файла. Например, для редактирования файла В верхней части экрана вы увидите список основных команд редактора. Символ каретки означает комбинацию клавиш Ctrl e. Чтобы выйти из редактора, нажмите клавишу Esc, затем Enter. Если остались какие-либо не сохраненные данные, вам потребуется подтвердить выход, сохранив результат работы или оставив файл без изменения. Эти редакторы более сложны в изучении, но их возможности порой превосходят всякие ожидания! Если в будущем вам потребуется часто редактировать большие объемы текстов, то потраченное на изучение этих редакторов время окупится с лихвой. Термин устройство используется в основном по отношению к аппаратному обеспечению системы, такому как диски, принтеры, графические адаптеры, устройства ввода текста. При загрузке FreeBSD главным образом выводит на экран информацию об обнаруженных устройствах. Вы можете найти эти сообщения в файле это первый диск IDE CDROM, а В UNIX доступ к большинству этих устройств можно получить через специальные файлы устройств, расположенные в каталоге При добавлении в систему нового устройства, или добавление поддержки дополнительных устройств, может понадобиться создать один или несколько файлов устройств для нового оборудования. это относится ко всем версиям FreeBSD ниже 5.0, файлы устройств создаются с помощью MAKEDEV 8, как показано ниже: В этом примере создается соответствующий файл устройства для вторичного IDE диска. предоставляет доступ к пространству устройств ядра через общую файловую систему. Вместо создания и модификации файлов устройств, создает специальную файловую систему. Обращайтесь к devfs 5 за дополнительной информацией. используется по умолчанию. Для понимания того, почему FreeBSD использует формат elf 5, вам потребуется сначала немного узнать о трех доминирующих исполняемых форматах для UNIX: Старейший и классический объектный формат UNIX. Он использует короткий и компактный заголовок с магическим числом в начале, которое часто используется для описания формата смотрите 5 с более подробной информацией. Он содержит три загружаемых плюс таблицу символов и таблицу строк. Объектный формат SVR3. Заголовок включает таблицу разделов, так что могут быть сегменты поддерживающий множественные сегменты и 32-битные или 64-битные значения. Одно важное замечание: ELF был разработан в предположении что есть только по одному ABI на одну архитектуру. Это предположение совершенно неверно, и не только в мире коммерческих SYSV в котором есть как минимум три ABI: SVR4, Solaris, SCO. FreeBSD пытается обойти эту проблему, в частности предоставляя утилиту для оглавления известного исполняемого файла ELF информацией об ABI с которым он совместим. Обратитесь к странице справочника brandelf 1 за более подробной информацией. FreeBSD имеет произошла из классического лагеря и использовала формат 5, технологию опробованную и проверенную на многих поколениях релизов BSD, до начала ветки Хотя собирать и запускать родные бинарные файлы ELF и ядро в системе FreeBSD можно было несколько раньше, FreeBSD вначале сопротивлялась проталкиванию ELF как формата по умолчанию. Почему? Когда лагерь Linux производил болезненный переход к ELF у него не было большого преимущества перед исполняемым форматом из-за негибкого, основанного на таблице переходов механизма разделяемых библиотек, что делало создание разделяемых библиотек очень трудным для поставщиков и разработчиков. Когда доступные инструменты ELF предоставили решение проблемы разделяемых библиотек, и появилась некоторая перспектива, цена перехода была признана допустимой и он был сделан. Механизм разделяемых библиотек FreeBSD близок по стилю к механизму разделяемых библиотек SunOS от Sun, и поэтому очень прост в использовании. Итак, почему так много разных форматов? Давно, в темном далеком прошлом, оборудование было простым. Это простое оборудование поддерживало простые, маленькие системы. был совершенно адекватен задаче представления бинарных файлов на таких простых системах PDP-11. Люди, портировавшие UNIX с этих простых систем, оставили формат потому, что он был достаточен для ранних портов UNIX на архитектуры, подобные Motorola 68k, VAXen, etc. Затем какой-то смышленый инженер по оборудованию решил, что если он сможет заставить программы исполнять некоторые трюки, то сможет несколько упростить дизайн и заставить ядро CPU работать быстрее. Хотя это было сделано с новым типом оборудования известного сейчас как RISC не подходил для него, и было разработано множество форматов, чтобы получить лучшую производительность на таком оборудовании по сравнению с той, которую мог предоставить простой формат Были изобретены форматы COFF и некоторые другие малоизвестные форматы, и их ограничения были учтены, когда все похоже остановились на ELF Кроме того, размеры программ стали огромны, а диски и оперативная память остались относительно малы, поэтому появилась концепция разделяемых библиотек. Система VM также стала более сложной. Хотя все эти усовершенствования были выполнены с форматом его полезность все больше и больше уменьшалась с каждым нововведением. К тому же потребовалась динамическая загрузка во время выполнения, или выгрузка частей программы после выполнения стартового кода для экономии памяти или места на диске. Языки усложнялись, и потребовался автоматический вызов кода перед главной программой. Множество изменений было внесено в формат чтобы все это появилось, и в основном работало некоторое время. Настал момент, когда не смог решить все эти проблемы без чрезмерного увеличения размера и сложности. В то время, как ELF решил многие из этих проблем, перевод этого формата с системы на систему болезненен. Поэтому формату ELF пришлось подождать, пока не стало более болезненным оставаться с Тем временем, инструменты разработки, от которых произошли инструменты разработки FreeBSD особенно ассемблер и загрузчик, развивались в двух параллельных направлениях. Направление FreeBSD добавило разделяемые библиотеки и устранило некоторые ошибки. Люди из GNU, написавшие эти программы, переписали их и добавили простую поддержку сборки кросскомпиляторов, подключения различных форматов в будущем и так далее. Многим требовалось собрать кросскомпиляторы для FreeBSD, и это не удалось, поскольку устаревшие исходные тексты FreeBSD для as и ld не подходили для этой задачи. Новый набор инструментов GNU binutils поддерживает кросскомпилирование, ELF разделяемые библиотеки, C, расширения и т.д. В дополнение, многие поставщики выпустили программы в формате ELF и они хорошо подходят для запуска в FreeBSD. позволяет базовой системе быть более гибкой. ELF лучше поддерживается, и предоставляет поддержку кросскомпиляторов, что важно для многих людей. ELF может быть немного медленнее, чем но замерить это сложно. Есть также множество деталей, отличающихся для этих двух форматов, в том как они отображают страницы, обрабатывают начальный код, и т.д. В этом нет ничего очень важного, но они различаются. В настоящее время поддержка и со временем будет убрана из ядра, как только потребность в запуске старых программ Пожалуй, самым полным руководством по FreeBSD является системный справочник man. Практически каждое приложение или утилита имеют соответствующую страницу часто не одну, описывающую тот или иной аспект работы программы, всевозможные опции и настройки. Для просмотра этих страниц существует команда это команда, о которой вы хотите получить информацию. Например, чтобы узнать побольше о команде Пользовательские команды. Системные вызовы и коды ошибок. Функции стандартных библиотек. Дополнительная информация. Команды системного администрирования. В некоторых случаях не так уж редко, страницы, относящиеся к одной и той же команде, находятся в различных разделах справочника. Например, есть команда В этом случае, необходимо явно указать раздел в котором нужно искать соответствующую страницу: По традиции, конкретный раздел справочника указывается в скобках после команды, например, chmod 1 относится к утилите Часто бывает так, что вы не знаете название команды, но имеете представление о том, что она должна делать. В этом случае можно попытаться найти нужную команду по ключевым словам, встречающимся в ее описании, используя опцию Вы получите список команд, имеющих слово mail в своих описаниях. Это эквивалентно использованию команды Или например, вы видите список файлов в каталоге при этом не имея ни малейшего представления о том, какие функции выполняет каждый их них? Просто наберите: что фактически одно и то же. FreeBSD поставляется с многочисленными приложениями и утилитами от Фонда Свободного Программного Обеспечения, Free Software Foundation FSF. В дополнение к страницам справочника, с этими программами поставляется обширная гипертекстовая документация в виде так называемых файлов, которые могут быть просмотрены с помощью команды emacs, в info режиме этого редактора. Чтобы воспользоваться командой info 1, просто наберите в командной строке: Краткий список команд можно получить набрав Перевод на русский язык: Андрей Захватов. Вместе с FreeBSD в составе базового комплекта системы поставляется богатый набор системный утилит. Однако для выполнения какой-то реальной работы очень скоро возникает необходимость в установке дополнительных приложений сторонних разработчиков. FreeBSD даёт две взаимодополняющих технологии для установки программного обеспечения сторонних разработчиков в вашу систему: Коллекция Портов FreeBSD и бинарные пакеты с программным обеспечением. Любая из этих систем может быть использована для установки самых последних версий ваших любимых приложений с локальных носителей или прямо из сети. Как устанавливать бинарные пакеты с программным обеспечением сторонних разработчиков. Как собирать программное обеспечение сторонних разработчиков при помощи Коллекции Портов. Как удалять ранее установленные пакеты или порты. Как переопределить значения, используемые по умолчанию в Коллекции Портов. Если вы использовали UNIX - системы ранее, то знаете, что стандартная процедура установки программного обеспечения сторонних разработчиков выглядит примерно так: Загрузка программного обеспечения, которое может распространяться в форме исходных текстов или двоичных файлов. Распаковка программного обеспечения из дистрибутивного формата обычно tar-архива, сжатого при помощи compress 1, gzip 1 или bzip2 1. Поиск документации возможно, подойдут файлы и её чтение в поиске описания установки программного обеспечения. Если программное обеспечение распространялось в форме исходных текстов, его компиляция. Сюда может быть включено редактирования файла Тестирование и установка программного обеспечения. И это только всё проходит нормально. Если вы устанавливаете программный пакет, который был специально перенесён на FreeBSD, то вам может даже потребоваться редактировать код для того, чтобы он нормально заработал. Если вы хотите, то можете продолжать устанавливать программное обеспечение во FreeBSD традиционным способом. Однако FreeBSD предоставляет две технологии, которые могут сохранить вам много усилий: пакеты и порты. На момент написания таким образом были доступны более 13, 300 сторонних приложений. Для любого конкретно взятого приложения пакет FreeBSD является одним файлом, который вы должны загрузить. Пакет содержит уже откомпилированные копии всех команд приложения, а также все конфигурационные файлы и документацию. Загруженным файлом пакета можно управлять такими командами FreeBSD, как pkgadd 1 pkgdelete 1, pkginfo 1 и так далее. Установка нового приложения может выполняться единственной командой. Порт FreeBSD для приложения является набором файлов, предназначенных для автоматизации процесса компиляции приложения из исходного кода. Вспомните, что обычно вы должны выполнить некоторое количество шагов, если компилируете программу самостоятельно загрузка, распаковка, изменение кода, компиляция, установка. Файлы, составляющие порт, содержат всю информацию, необходимую для того, чтобы система сделала это за вас. Вы задаёте пару простых команд, и исходный код приложения автоматически загружается, распаковывается, модифицируется, компилируется и устанавливается. Действительно, система портов может также использоваться для генерации пакетов, которые позже могут управляться командой и другими командами управления пакетами, о которых скоро будет рассказано. Как пакеты, так и порты принимают во внимание зависимости. Предположим, что вы хотите установить приложение, которое зависит от некоторой установленной библиотеки. И приложение, и библиотека доступны во FreeBSD в виде портов и пакетов. Если вы используете команду или систему портов для добавления приложений, то в обоих случаях будет обнаружено, что библиотека не была установлена, и сначала будет автоматически выполнена установка библиотеки. Видя, что обе технологии весьма похожи, вы можете удивиться, почему во FreeBSD используются обе. И пакеты, и порты имеют свои преимущества, так что выбор используемой вами системы зависит от ваших собственных предпочтений. Сжатый tar-архив обычно меньше, чем сжатый tar-архив, содержащий исходный код приложения. Пакеты не требуют никакой дополнительной компиляции. Для таких больших приложений, как Mozilla, KDE или GNOME, это может быть важно, в частности, если вы работаете на медленной системе. Пакеты не требуют понимания процесса компиляции программного обеспечения во FreeBSD. Пакеты обычно компилируются с консервативными параметрами, потому что они должны работать на максимальном количестве систем. При установке из порта вы можете изменять параметры компиляции для того, чтобы к примеру генерировался код, специфичный для процессора Pentium IV или Athlon. Некоторые приложения имеют опции времени компиляции, связанные с тем, что они могут или не могут делать. К примеру, Apache может быть настроен с широким набором различных опций. При построении из порта вы можете не принимать параметры по умолчанию, и задать их самостоятельно. В некоторых случаях для одного и того же приложения будут иметься несколько пакетов для указания конкретных настроек. Например, Ghostscript имеется как пакет в зависимости от того, установили вы сервер X11 или нет. Такой тип грубой настройки возможен при использовании пакетов, но быстро становится недостижим, если приложение имеет более одного или двух параметров компиляции. Условия лицензирования некоторых дистрибутивов программного обеспечения запрещает распространение в двоичном виде. Они должны распространяться в виде исходного кода. Некоторые не доверяют дистрибутивам в двоичном виде. При использовании исходного кода вы по крайней мере теоретически можете прочесть его и попытаться найти потенциальные проблемы самостоятельно. Если у вас есть собственные патчи, вам нужен исходный код для того, чтобы их применять. Некоторым нравится иметь исходный код, чтобы его можно было просматривать и править, заимствовать из него конечно, при разрешающем это лицензионном соглашении и тому подобное. Внимание: Перед установкой любого приложения необходимо зайти на /, где находится информация по вопросам безопасности приложений. который автоматически проверит все установленные приложения на наличие известных уязвимостей, проверка также будет выполняться перед сборкой какого-либо порта. Вы можете использовать и после установки пакетов. В оставшейся части главы будет рассказано, как использовать пакеты и порты для установки и управления программным обеспечением сторонних разработчиков во FreeBSD. Перед тем, как устанавливать какое-либо приложение, вам нужно знать, что вы хотите и как называется нужное вам приложение. Список имеющихся для FreeBSD приложений постоянно растёт. К счастью, есть несколько способов найти то, что вам нужно: На сайте FreeBSD поддерживается обновляемый список имеющихся приложений для FreeBSD, в котором можно выполнять поиск, по адресу /ports/. Порты разбиты на категории, и вы можете либо выполнить поиск приложения по имени если его знаете, либо просмотреть список всех приложений, относящихся к определённой категории. Dan Langille поддерживает сайт FreshPorts по адресу /. На нём отслеживаются изменения в приложениях из дерева портов, как только они происходят, он позволяет вам отслеживать один или несколько портов, и может высылать оповещение по электронной почте при их обновлении. Если вы не знаете названия нужного вам приложения, попытайтесь воспользоваться сайтом типа FreshMeat для поиска приложения, а затем возвратитесь на сайт FreeBSD, чтобы проверить, есть ли порт для этого приложения. Если вы знаете точное имя порта, и хотите определить, в какой категории он находится, используйте команду whereis 1. Просто наберите в приглашении программа, которую вы хотите установить. И если она имеется в системе, об этом будет сообщено, как показано ниже: Ещё одним способом поиска некоторого порта является использование встроенной возможности поиска в Коллекции Портов. Чтобы ею воспользоваться, вы должны находиться в каталоге Очутившись в этом каталоге, выполните команду это название программы, которую вы хотите найти. Например, если вы ищете Port: lsof-4.56.4 Path:/usr/ports/sysutils/lsof Info: Lists information about open files similar to fstat1 Maint: Index: sysutils B-deps: R-deps: Вам следует обратить особое внимание на строчку Path:, так как в ней указывается, где найти порт. Остальная сообщаемая информация для установки порта не нужна, поэтому здесь она описываться не будет. представляет собой некоторый текст, относящийся к искомому порту. При этом будет выполнен поиск в именах портов, комментариях, описаниях и зависимостях, и его можно использовать для поиска портов, связанных с некоторой темой, если вы не знаете названия программы, которую вы ищете. В обоих этих случаях строка поиска нечувствительна к регистру. Поиск LSOF приводит к тому же самому результату, что и поиск lsof. Текст предоставил Chern Lee. Для установки пакетов программного обеспечения для FreeBSD из локальных файлов или с сервера в сети вы можете использовать утилиту pkgadd 1. Пример 4-1. Загрузка пакета вручную и его локальная установка Connected to 220 FTP server Version 6.00LS ready. 331 Guest login ok, send your email address as password. 230- 230- This machine is in Vienna, VA, USA, hosted by Verio. 230- Questions? E-mail 230- 230- 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. 250 CWD command successful. local: remote: 200 PORT command successful. 150 Opening BINARY mode data connection for 92375 bytes. 100% 92375 00:00 ETA 226 Transfer complete. 92375 bytes received in 5.60 seconds 16.11 KB/s Если у вас нет исходных текстов локальных пакетов например, набор CD-ROM с FreeBSD, то проще всего, наверное, воспользоваться опцией для pkgadd 1. Это приведёт к тому, что утилита автоматически определит правильный формат объектных файлов и релиз, а затем загрузит и установит пакет с сервера FTP. В примере выше нужный пакет будет загружен и установлен без всякого дополнительного взаимодействия с пользователем. Если вместо основного сайта вы хотите указать другое зеркало пакетов FreeBSD, то для переопределения используемых по умолчанию значений вам необходимо задать соответствующим образом значение переменной Для загрузки файлов утилита pkgadd 1 использует функцию fetch 3, которая принимает во внимание различные переменные окружения, включая Если вы находитесь за сетевым экраном или для работы с FTP/HTTP вам необходимо использовать прокси, то определите соответствующие переменные. Обратитесь к справочной странице по fetch 3 для получения полного списка переменных. Заметьте, что в примере выше вместо При использовании функций загрузки с сети номер версии в имени пакета должен быть опущен. Утилита pkgadd 1 автоматически загрузит последнюю версию приложения. Вы можете найти их по адресу /pub/FreeBSD/ports/packages или взять с дистрибутива FreeBSD на CD-ROM. Каждый CD из комплекта FreeBSD на 4 дисках а также PowerPak и тому подобное содержит пакеты в каталоге Расположение пакетов похоже на то, как организовано дерево Каждая категория имеет собственный каталог, и каждый пакет помещается в каталог Структура каталогов системы пакетов соответствует структуре системы портов; они взаимодействуют друг с другом для формирования единой системы пакетов/портов. pkginfo 1 является утилитой для вывода списка и описаний различных установленных пакетов. cvsup-16.1 A general network file distribution system optimized for CV docbook-1.2 Meta-port for the different versions of the DocBook pkgversion 1 является утилитой для вывода отчёта о версиях всех установленных пакетов. Она сравнивает версию имеющегося пакета с текущей версией, находящейся в дереве портов. Символы во второй колонке указывают сравнительную разницу в возрасте установленной версии и версии, находящейся в локальном дереве портов. Версия установленного пакета соответствует версии, находящейся в локальном дереве портов. Установленная версия старее, чем та, что имеется в дереве портов. Установленная версия новее чем та, что есть в дереве портов. Скорее всего, локальное дерево портов устарело. В индексном файле портов установленный пакет не может быть найден. Это может случиться, например, если установленный порт был удалён из Коллекции Портов или переименован. Имеется несколько версий пакета. Для удаления ранее установленных пакетов с программным обеспечением используйте утилиту pkgdelete 1. Список установленных файлов и описания всех пакетов могут быть найдены среди файлов этого каталога. В этих разделах описаны основные приемы использования Коллекции Портов для установки и удаления программ из вашей системы. Перед тем, как вы сможете устанавливать порты, установите Коллекцию Портов - - она представляет собой в основном набор файлов патчей, файлов описаний, и размещается в каталоге При установке системы FreeBSD утилита sysinstall запрашивает, требуется ли вам установка Коллекции Портов. Если вы ответили отрицательно, для установки Коллекции Портов следуйте нижеприведенной инструкции: в FreeBSD версий ниже, чем 5.2 для ручной установки Коллекции Портов. Работая как пользователь root, запустите так, как это показано ниже: Опуститесь вниз и выберите Configure, нажмите Опуститесь вниз и выберите Distributions, затем нажмите Enter Опуститесь вниз к пункту ports, нажмите клавишу Поднимитесь вверх к Exit, нажмите Выберите желаемый носитель для установки, например, CDROM, FTP и так далее. Альтернативный метод получения и постоянной актуализации Коллекции Портов заключается в использовании CVSup. Посмотрите файл Прочтите раздел Использование CVSup Разд. A.5 для получения более полной информации об использовании CVSup и этого файла. CVSup. Если вы хотите поддерживать ваше дерево портов в актуальном состоянии, или узнать больше о CVSup, то прочтите вышеотмеченные разделы. в новое место, например, в каталог или в ваш домашний каталог. на близкий к вам сервер CVSup. Посмотрите Зеркала CVSup Разд. A.5.7 для получения полного списка зеркалирующих сайтов. При повторных запусках этой команды все последние изменения кроме реального перестроения портов для вашей системы будут загружаться и переноситься в вашу Коллекцию Портов. Когда речь заходит о Коллекции Портов, то первым делом вы должны понять, что именно подразумевается под словом скелет. По сути скелетом порта является минимальный набор файлов, который указывает вашей системе FreeBSD, как корректно откомпилировать и установить программу. Скелет каждого порта включает: содержит различные директивы, которые определяют, как приложение должно быть откомпилировано и куда в вашей системе оно должно быть установлено. Этот файл содержит информацию о файлах, которые должны существовать на вашей системе для успешной сборки порта, и их контрольные суммы, для проверки при помощи md5 1 того, что файлы в процессе загрузки не были повреждены. Этот каталог содержит патчи, использование которых необходимо для компиляции и установки программы в вашей системе FreeBSD. Патчи - это, как правило, маленькие файлы, в которых содержатся изменения, которые нужно внести в какой-то конкретный файл. Они имеют обычный текстовый формат и в основном содержат указания типа Удалить строку 10 или Заменить строку 26 на. Патчи также называются diff-файлами или просто диффами, потому что они генерируются программой diff 1. Этот каталог также может содержать другие файлы, используемые для построения порта. Это более подробное, зачастую многострочное описание программы. Это список всех файлов, которые будут установлены портом. В нем также содержатся указания системе портов на удаление определенных файлов во время удаления порта. В некоторых портах присутствуют и другие файлы, такие, как Система портов использует эти файлы для обработки особых ситуаций. Если вы хотите узнать более подробно об этих файлах и о портах вообще, то обратитесь к Руководству по созданию портов для FreeBSD. В порт включаются инструкции относительно того, как выполнять построение из исходного кода, но не сам код. Вы можете получить исходный код с CD-ROM или из Интернет. Исходный код распространяется в том виде, какой предпочёл выбрать разработчик. Зачастую это tar-файл, обработанный утилитой gzip, но он может также быть упакован каким-то другим инструментом или быть не сжатым. Исходный код программы, в каком бы то виде он ни был, называется дистрибутивным distfile. Два метода установки портов FreeBSD описаны ниже. Внимание: Перед установкой любого порта необходимо убедиться в наличии свежей Коллекции Портов и заглянуть на /, где могут освещаться вопросы безопасности, связанные с этим портом. portaudit перед установкой нового приложения. Эту программу можно найти в Коллекции Портов перед установкой нового порта для загрузки свежей базы данных уязвимостей. Проверка безопасности и обновление базы данных должны выполняться при повседневной проверке безопасности системы. За дальнейшей информацией обращайтесь к страницам справочника portaudit 1 и periodic 8. Официальные образы CD-ROM Проекта FreeBSD больше не содержат дистрибутивные файлы. На них есть достаточно места, которое лучше использовать для предкомпилированных пакетов. Продукты на CD-ROM, такие, как FreeBSD PowerPak, включают дистрибутивные файлы, и вы можете заказать их от таких поставщиков, как FreeBSD Mall. В этом разделе предполагается, что у вас есть такой набор CD-ROM с FreeBSD. Вставьте ваш CD-ROM с FreeBSD в привод. Смонтируйте его в каталог Если вы используете другую точку монтирования, то задайте make-переменную Чтобы начать установку, перейдите в каталог с нужным вам портом: вы увидите структуру порта. Следующим шагом является компиляция, или построение build порта. Это выполняется простой выдачей команды в ответ на приглашение командного процессора. Как только вы это сделаете, то увидите вывод команды, выглядящий примерно так: doesnt seem to exist in/usr/ports/distfiles/. Attempting to fetch from file:/cdrom/ports/distfiles/. Extracting for вывод команды при распаковке Checksum OK for Patching for lsof-4.57 Applying FreeBSD patches for lsof-4.57 Configuring for вывод команды при конфигурации Building for вывод команды при компиляции Заметьте, что как только компиляция закончится, вы снова вернётесь к приглашению вашего командного процессора. Следующим шагом является установка порта. Чтобы это сделать, вам нужно просто добавить одно слово к команде Installing for вывод команды при установке Generating temporary packing list Compressing manual pages for lsof-4.57 Registering installation for lsof-4.57 SECURITY NOTE: This port has installed the following binaries which execute with increased privileges. Как только вы вернулись к приглашению вашей оболочки, вы должны суметь запустить приложение, которое только что установили. Так как является программой, которая запускается с повышенными правами, выдаётся предупреждение о безопасности. Во время построения и установки портов вы должны принимать во внимание все выдаваемые предупреждения. Замечание: Вы можете сэкономить лишний шаг, просто выдав команду Замечание: Некоторые командные процессоры для ускорения поиска выполнимых файлов и команд кэшируют имена программ, доступных для вызова из каталогов, перечисленных в переменной окружения Если вы используете один из таких командных процессоров, то перед использованием только что добавленных программ вам может понадобиться вызвать команду после установки порта. Эта команда будет работать с такими оболочками, как, например, При работе с такими командными процессорами, как воспользуйтесь командой Дополнительную информацию можно найти в документации к вашему командному процессору. Замечание: Пожалуйста, будьте готовы к тому, что лицензии некоторых портов не позволяют помещать их на CD-ROM. Это может делаться из-за обязательности заполнения регистрационной формы перед загрузкой, или запрета на дальнейшее распространение, либо по какой-то другой причине. Если вы хотите установить порт, которого нет на CD-ROM, вам нужно иметь подключение к Интернет; чтобы это сделать обратитесь к следующему разделу. Как и в предыдущем разделе, здесь предполагается, что у вас имеется работающее подключение к Интернет. Если это не ваш случай, выполняйте установку с CD-ROM, либо поместите копию дистрибутивного файла в каталог Установка порта из Интернет производится точно так же, как если бы вы делали её с CD-ROM. Единственным отличием между ними является тот факт, что дистрибутивный файл загружается из Интернет, а не считывается с CD-ROM. doesnt seem to exist in/usr/ports/distfiles/. Attempting to fetch from /pub/FreeBSD/ports/distfiles/. Receiving 439860 bytes: 100% 439860 bytes transferred in 18.0 seconds 23.90 kBps Extracting for вывод команды при распаковке Checksum OK for Patching for lsof-4.57 Applying FreeBSD patches for lsof-4.57 Configuring for вывод команды процесса конфигурации Building for вывод команды компиляции Installing for вывод команды процедуры установки Generating temporary packing list Compressing manual pages for lsof-4.57 Registering installation for lsof-4.57 SECURITY NOTE: This port has installed the following binaries which execute with increased privileges. Как вы видите, единственным отличием является строка, в которой указывается, откуда система загружает дистрибутивный файл порта. Для загрузки файлов система портов использует утилиту fetch 1, которая принимает во внимание различные переменные окружения, включая Если вы находитесь за сетевым экраном или для работы с FTP/HTTP вам необходимо использовать прокси, то определите соответствующие переменные. Обратитесь к справочной странице по fetch 3 для получения полного списка переменных. Пользователям, которые не могут быть постоянно подключены к сети, поможет команда Просто запустите эту команду в каталоге самого верхнего уровня и требуемые файлы будут загружены. Эта команда будет работать также и с вложенными категориями, например: Заметьте, что если порт имеет зависимости от библиотек или других портов, то он не будет также загружать дистрибутивные файлы этих портов. Замените если вы хотите выполнить загрузку также и всех этих зависимостей порта. Замечание: Вы можете построить все порты в категории за раз, запустив команду в каталоге верхнего уровня, как и в вышеописанном методе с Однако это опасно, так как некоторые порты не могут сосуществовать. В других случаях некоторые порты могут устанавливать два различных файла с одним и тем же именем. В некоторых редких случая пользователям необходимо получить tar-архивы с сайтов, отличающихся от это место, откуда файлы обычно загружаются. Вы можете переопределять значение Замечание: Некоторые порты позволяют или даже требуют задавать параметры, которые включают или выключают построение отдельных частей приложения, которые не нужны, некоторые параметры безопасности, а также прочие настройки. К некоторым из них, часто упоминаемым, относятся пакеты При наличии подобных параметров будет выдано сообщение. Иногда бывает полезным или необходимым использование других каталогов с портами и дистрибутивными файлами. Для переопределения каталогов, используемых по умолчанию, используются переменные make PORTSDIR./ports PREFIX./local install использует обе возможности полная команда слишком длинна для написания на этой странице, однако вы должны уловить общую идею. Альтернативным способом является задание значений этих переменных в параметрах окружения. Обратитесь к страницам справки по вашему командному процессору для получения инструкций о том, как это сделать. 4.5.2.4. Работа с Некоторые порты, использующие и будут пытаться установиться в дерево Аналогично некоторые Perl-порты игнорируют значения и устанавливаются в дерево Perl. Заставить такие порты воспринимать переменную является сложной или невыполнимой задачей. Теперь, когда вы знаете, как устанавливать порты, вы наверное, уже задумывались о том, как же их удалять - - просто даже на тот случай, если вы установили один из них, а позже решили, что установили не тот порт. Мы удалим порт из нашего предыдущего примера а это была программа если вы обратили внимание. Как и при установке портов, первым делом вы должны перейти в каталог с портом, После смены каталога вы готовы к удалению Deinstalling for lsof-4.57 Это было достаточно легко. Вы удалили из вашей системы. Если вам захочется переустановить эту программу, то это можно будет сделать, выдав команду не сработает, если вы запустите команду Использование Коллекции Портов со временем требует всё большего дискового пространства. Из-за тенденции к постоянному росту дерева портов, после построения и установки программного обеспечения из портов вы не должны забывать об очистке каталогов При этом будет удаляться каталог возникающий после построения и установки порта. Вы можете также удалить исходные файлы программы из каталога а позже удалить установленные порты, если они более не используются. Некоторые пользователи ограничивают набор доступных категорий портов, помещая в файл соответствующую запись. В этом случае, при запуске программы CVSup она не будет загружать файлы из указанных категорий. Дополнительную информацию, относящуюся к файлу Замечание: После обновления Коллекции Портов, и перед тем, как обновить приложение из порта, сверьтесь с файлом В нем дана информация по различным вопросам и дополнительным шагам, которые могут быть необходимы для обновления порта. Поддержание ваших портов в актуальном состоянии может оказаться нудным занятием. К примеру, чтобы обновить порт, вам нужно перейти в каталог с портами, построить порт, удалить старый порт, установить новый, а затем вычистить его после построения. Представьте, сколько действий пять нужно сделать! Скучно, да? Это было большой проблемой для системных администраторов, но теперь есть утилиты, выполняющие эти действия за нас. Например, утилита сделает всё за вас сама! Просто установите её, как обычный порт, при помощи команды Она выяснит перечень установленных портов и создаст файл базы данных в каталоге Теперь при вызове команды она будет использовать эту базу данных и файл портов Наконец, portupgrade загрузит, построит, сделает резервную копию, установит и очистит порты, которые были обновлены. portupgrade имеет массу параметров для использования в разных ситуациях, из которых наибольшего внимания заслуживают описываемые далее. Если вы хотите обновить только определённое приложение, но не полностью базу данных, используйте если portupgrade должен отработать все пакеты, которые зависят от указанного, и использовать флаг для отработки всех пакетов, которые требуют указанные пакеты. Для использования при установке пакетов, а не портов, укажите флаг С этим параметром portupgrade будет искать пакеты в локальных каталогах, указанных в переменной окружения или, если не найдет их, загрузит с удаленного сайта. Если пакеты не могут быть найдены локально или загружены удаленно, portupgrade использует порты. Чтобы запретить использование портов, укажите Для простой загрузки дистрибутивных файлов без построения или установки чего бы то ни было, задайте флаг Дополнительную информацию можно получить на странице справки по утилите portupgrade 1. для восстановления целостности, особенно когда portupgrade запрашивает вас это сделать. Не прерывайте работы portupgrade при обновлении базы данных пакетов, это может привести к рассогласованию данных. Существуют и другие утилиты, которые делают подобные вещи, посмотрите в каталоге и выберите то, что вам подходит. После установки нового приложения вам обычно требуется прочесть какую-либо документацию, если она есть, отредактировать нужные конфигурационные файлы, проверить, что приложение запускается во время загрузки системы если это даемон, и так далее. Очевидно, что шаги, в точности требуемые для конфигурации каждого приложения, отличаются. Однако, если если вы только что установили новое приложение и вам интересно, Что же дальше?, то вам могут помочь следующие советы: Воспользуйтесь командой pkginfo 1 для определения того, куда и какие файлы были установлены. К примеру, если вы только что установили FooPackage версии 1.0.0, то по команде pkginfo - L foopackage-1.0.0 less будет выведен список всех файлов, установленных пакетом. Обратите особое внимание на файлы в каталогах которые являются справочными страницами, которые являются конфигурационными файлами, и которые являются более подробной документацией. Если вы не уверены, какая версия приложения была только что установлена, то по команде вида будет выведен список всех установленных пакетов, в названии которых присутствует в командной строке на то, что вам нужно. Как только вы определите, куда были установлены справочные страницы приложения, просмотрите их при помощи команды man 1. Подобным же образом просмотрите примеры конфигурационных файлов и всю дополнительную документацию, которая была установлена. Если у приложения имеется веб-сервер, поищите там дополнительную документацию, ответы на часто задаваемые вопросы и так далее. Если вы не уверены, каков адрес веб-сайта, он может быть указан в выводе команды если она есть, должна содержать URL Web-сайта приложения. Порты, которые должны запускаться при загрузке системы такие, как сервисы интернет, как правило, устанавливают скрипт в каталог Вы должны просмотреть скрипт на предмет его корректности и отредактировать или переименовать его, если это нужно. Обратитесь к разделу о Запуске сервисов для получения более полной информации. Если вы встретили порт, который у вас не работает, есть несколько вещей, которые вы можете сделать, а именно: Исправьте его! В Руководстве по созданию портов содержится подробная информация об инфраструктуре Портов, так что вы сможете исправить иногда встречающиеся порты с ошибками или даже создать собственные! Надавите - - только по электронной почте ! Сначала пошлите письмо человеку, сопровождающему порт. Наберите команду чтобы найти его адрес. Не забудьте указать имя и версию порта скопировав строчку и включите в письмо весь вывод, предшествующий возникновению ошибки. Если вы не получили ответа от этого человека, то можете воспользоваться командой send-pr 1 для посылки сообщения об ошибке. Загрузите пакет с ближайшего к вам FTP-сервера. Основная Коллекция Пакетов находится на сервере в каталоге с пакетами, но первым делом проверьте местное зеркало! Скорее всего, это будет работать. Кроме того, сделать это будет гораздо быстрее, чем пытаться компилировать порты из исходного кода. Воспользуйтесь программой pkgadd 1 для установки пакета в вашу систему. Обновили для сервера X11 Ken Tom, Marc Fonvieille. Перевод на русский язык: Андрей Захватов. FreeBSD использует X11 для того, чтобы дать пользователям мощный графический интерфейс. X11 является открытой реализацией X Window System, включая Xorg и XFree86. В версиях FreeBSD до и включая FreeBSD 4.10-RELEASE и FreeBSD 5.2.1-RELEASE сервером X11 по умолчанию был XFree86, выпускаемый The XFree86 Project, Inc. Начиная с FreeBSD 5.3-RELEASE, официальной версией X11 по умолчанию стал Xorg, разработанный Foundation. Эта глава посвящена установке и настройке X11 в системе FreeBSD, с акцентом на За дополнительной информацией по видео оборудованию, поддерживаемому X11, обратитесь к веб сайтам Xorg или XFree86. Как установить и настроить X11. О различных компонентах X Window System и их взаимодействии. Как установить и использовать различные оконные менеджеры. Как использовать шрифты TrueType в X11. Узнать, как устанавливать дополнительное программное обеспечение сторонних разработчиков Гл. 4. Xorg и XFree86. По большей части файлы настройки, команды и синтаксис идентичны. Там, где есть различия, приводится синтаксис и Первое знакомство с X может оказаться чем-то вроде шока для тех, кто работал с другими графическими системами, такими, как Microsoft Windows или Mac OS. Хотя нет необходимости вникать во все детали различных компонентов X и их взаимодействия, некоторые базовые знания делают возможным использование сильных сторон X. X не является первой оконной системой для UNIX, но она самая популярная из них. До работы над X команда ее разработчиков трудилась над другой оконной системой. Та система называлась W от Window. X была просто следующей буквой в романском алфавите. X можно называть X, X Window System, X11 и множеством других терминов. Факт использования названия X Windows для X11 может задеть интересы некоторых людей; дополнительную информацию по этому поводу можно найти на странице справочной системы X 7. X изначально разрабатывалась, чтобы быть системой, ориентированной на работу в сети с использованием модели клиент-сервер. В модели работы X X-сервер работает на компьютере с клавиатурой, монитором и мышью. Область ответственности сервера включает управление дисплеем, обработку ввода с клавиатуры и мыши и так далее. Каждое X-приложение например, XTerm или Netscape является клиентом. Клиент посылает сообщения серверу, такие, как Пожалуйста, нарисуй окно со следующими координатами, а сервер посылает в ответ сообщения типа Пользователь только что щёлкнул мышью на кнопке OK. В случае использования дома или в офисе, сервер и клиенты X как правило будут работать на том же самом компьютере. Однако реально возможно запускать X-сервер на менее мощном настольном компьютере, а приложения X клиенты на, скажем, мощной и дорогой машине, обслуживающей целый офис. В этом сценарии X-клиент и сервер общаются через сеть. Некоторых это вводит в заблуждение, потому что терминология X в точности обратна тому, что они ожидают. Они полагают, что X-сервер будет большой мощной машиной, стоящей на полу, а X-клиентом является машина, стоящая на их столах. Важно помнить, что X-сервером является машина с монитором и клавиатурой, а X-клиенты являются программами, выводящими окна. В протоколе нет ничего, что заставляет машины клиента и сервера работать под управлением одной и той же операционной системы, или даже быть одним и тем же типом компьютера. Определённо возможно запускать X-сервер в Microsoft Windows или Mac OS от Apple, и есть множество свободно распространяемых и коммерческих приложений, которые это реализуют. Начиная с FreeBSD 5.3-RELEASE, X-сервер, поставляемый с FreeBSD, называется Xorg, и он распространяется свободно под лицензией, очень похожей на условия распространения FreeBSD. Имеются и коммерческие X-серверы для FreeBSD. Философия построения X очень похожа на философию построения UNIX, инструменты, не политика. Это значит, что X не пытаются диктовать то, как должна быть выполнена работа. Вместо этого пользователю предоставляются инструменты, а за пользователем остается принятие решения о том, как использовать эти инструменты. Этот подход расширен в X тем, что не задается, как окна должны выглядеть на экране, как их двигать мышью, какие комбинации клавиш должны использоваться для переключения между окнами то есть Alt Tab, в случае использования Microsoft Windows, как должны выглядеть заголовки окон, должны ли в них быть кнопки для закрытия, и прочее. Вместо этого X делегирует ответственность за это приложению, которое называется Window Manager Менеджер Окон. Есть десятки оконных менеджеров для X: twm, WindowMaker и другие. Каждый из этих оконных менеджеров предоставляет различные внешние виды и удобства; некоторые из них поддерживают виртуальные рабочие столы; некоторые из них позволяют изменять назначения комбинаций клавиш, используемых для управления рабочим столом; в некоторых есть кнопка Start или нечто подобное; некоторые поддерживают темы, позволяя изменять внешний вид, поменяв тему. Эти оконные менеджеры, а также множество других, находятся в категории Кроме того, оболочки KDE и GNOME имеют собственные оконные менеджеры, которые интегрированы в оболочку. Каждый оконный менеджер также имеет собственный механизм настройки; некоторые предполагают наличие вручную созданного конфигурационного файла; некоторые предоставляют графические инструменты для выполнения большинства работ по настройке; по крайней мере один Sawfish имеет конфигурационный файл, написанный на диалекте языка Lisp. Политика фокусирования: Другой особенностью, за которую отвечает оконный менеджер, является политика фокусирования мыши. Каждая оконная система должна иметь некоторый способ выбора окна для активации получения нажатий клавиш, а также визуальную индикацию того, какое окно активно. Широкоизвестная политика фокусировки называется щелчок-для-фокуса click-to-focus. Эта модель используется в Microsoft Windows, когда окно становится активным после получения щелчка мыши. X не поддерживает никакой конкретной политики фокусирования. Вместо этого менеджер окон управляет тем, какое окно владеет фокусом в каждый конкретный момент времени. Различные оконные менеджеры поддерживают разные методы фокусирования. Все они поддерживают метод щелчка для фокусирования, и большинство из них поддерживают некоторые другие методы. Фокусом владеет то окно, что находится под указателем мыши. Это не обязательно будет окно, которое находится поверх всех остальных. Фокус меняется при указании на другое окно, при этом также нет нужды щёлкать на нём. С политикой focus-follows-mouse если мышь помещается поверх корневого окна или заднего фона, то никакое окно фокус не получает, а нажатия клавиш просто пропадают. При использовании политики нечёткого фокуса он меняется только когда курсор попадает на новое окно, но не когда уходит с текущего окна. Активное окно выбирается щелчком мыши. Затем окно может быть поднято и появится поверх всех других окон. Все нажатия клавиш теперь будут направляться в это окно, даже если курсор переместится к другому. Многие оконные менеджеры поддерживают и другие политики, а также вариации перечисленных. Обязательно обращайтесь к документации по оконному менеджеру. Подход X, заключающийся в предоставлении инструментов, а не политики, распространяется и на виджеты, которые располагаются на экране в каждом приложении. Виджет widget является термином для всего в пользовательском интерфейсе, на чём можно щёлкать или каким-то образом управлять; кнопки, зависимые radio buttons и независимые check boxes опции, иконки, списки и так далее. В Microsoft Windows это называется элементами управления controls. Microsoft Windows и Mac OS от Apple имеют очень жёсткую политику относительно виджетов. Предполагается, что разрабатываемые приложения обязательно должны иметь похожий внешний вид. Что касается X, то было решено, что не нужно требовать обязательного использования какого-то определённого графического стиля или набора виджетов. В результате не стоит ожидать от X-приложений похожести во внешнем виде. Существует несколько популярных наборов виджетов и их разновидностей, включая оригинальный набор виджетов Athena от MIT, Motif по образу которого был разработан набор виджетов в Microsoft Windows, все эти скошенные углы и три разновидности серого цвета, В большинстве появляющихся в настоящее время приложений для X будет использоваться современно выглядящий набор виджетов, либо Qt, используемый в KDE, либо GTK, используемый проектом GNOME. В этом отношении наблюдается унификация внешнего вида рабочего стола в UNIX, что определённо облегчает жизнь начинающему пользователю. XFree86. Начиная с FreeBSD 5.3-RELEASE, версией X11 по умолчанию для FreeBSD является Xorg. Xorg это сервер X дистрибутива открытой реализации X Window System, выпущенной Foundation. Xorg основан на коде XFree86 4.4RC2 и X11R6.6. Foundation выпустила X11R6.7 в апреле 2004 года, а X11R6.8.1 в сентябре 2004; эта версия доступна из коллекции портов FreeBSD. Для сборки и установки Xorg из коллекции портов, выполните: Замечание: Перед сборкой полной версии Xorg удостоверьтесь в наличии хотя бы 4 GB свободного места. Кроме того, X11 может быть установлен непосредственно из пакетов. Бинарные пакеты, устанавливаемые pkgadd 1, доступны и для X11. Когда pkgadd 1 используется для удаленной загрузки пакетов, номер версии пакета необходимо удалить. pkgadd 1 автоматически установит последнюю версию приложения. Таким образом, для загрузки и установки пакета Xorg, просто наберите: Пакет XFree86 4.X может быть установлен командой: Замечание: В примерах выше будет установлен полный дистрибутив X11, включая серверы, клиенты, шрифты и так далее. Также доступны и отдельные пакеты и порты для различных частей X11. В оставшейся части главы будет рассказано о том, как сконфигурировать X11 и настроить рабочее окружение. 5.3.1. Замена Как и с любым портом, вам необходимо проверить файл на наличие изменений. Инструкции по переходу с XFree86 на Xorg включены в этот файл. Используйте CVSup для обновления дерева портов перед любой переустановкой. Для замены X11 вам также потребуется установить Это необходимо, чтобы система знала, какой X11 используется. Старая переменная не используется, она заменена переменной Команда pkgdb 1 является частью программы portupgrade, она обновит различные зависимости пакетов. Замечание: Перед сборкой полной версии Xorg удостоверьтесь в наличии хотя бы 4 GB свободного места. Текст предоставил Christopher Shumway. Набор микросхем, используемый в видеоадаптере Характеристики монитора используются в X11 для определения рабочего разрешения и частоты. Эти характеристики обычно могут быть получены из документации, которая прилагается к монитору или с сайта производителя. Тут нужны два диапазона значений, для частоты горизонтальной развёртки и для частоты вертикальной синхронизации. Набор микросхем графического адаптера определяет, модуль какого драйвера использует X11 для работы с графическим оборудованием. Для большинства типов микросхем это может быть определено автоматически, но все же его полезно знать на тот случай, когда автоматическое определение не работает правильно. Объём видеопамяти графического адаптера определяет разрешение и глубину цвета, с которым может работать система. Это важно, чтобы пользователь знал ограничения системы. Процесс настройки X11 является многошаговым. Первый шаг заключается в построении начального конфигурационного файла. Работая с правами суперпользователя, просто запустите: там, куда после su 1 или непосредственного входа будет указывать переменная XFree86, этот файл называется Программа X11 сделает попытку распознать графическое оборудование системы и запишет конфигурационный файл, загружающий правильные драйверы для обнаруженного оборудования в системе. Следующим шагом является тестирование существующей конфигурации для проверки того, что Xorg может работать с графическим оборудованием в настраиваемой системе. Для этого выполните: Если появилась чёрно-белая сетка и курсор мыши в виде X, то настройка была выполнена успешно. Для завершения тестирования просто нажмите одновременно Замечание: Если мышь не работает, ее необходимо настроить. Обратитесь к Разд. 2.9.10 в главе об установке FreeBSD. XFree86. Откройте файл в текстовом редакторе, таком, как emacs 1 или ee 1. Сначала задайте частоты для монитора. Они обычно обозначаются как частоты горизонтальной и вертикальной синхронизации. Эти значения добавляются в файл может и не оказаться в файле конфигурации. Если их нет, то они должны быть добавлены, с указанием корректных значений горизонтальной частоты синхронизации после ключевого слова В примере выше были введены частоты монитора настраиваемой системы. X позволяет использовать возможности технологии DPMS Energy Star с поддерживающими её мониторами. Программа xset 1 управляет временными задержками и может явно задавать режимы ожидания, останова и выключения. Если вы хотите включить использование возможностей DPMS вашего монитора, вы должны добавить следующую строку в раздел, описывающий монитор: открыт в редакторе, выберите желаемые разрешение и глубину цвета, которые будут использоваться по умолчанию. Они задаются в разделе описывает глубину цвета, с которой будет работа по умолчанию. Это значение может быть переопределено при помощи параметра командной строки описывает разрешение, с которым нужно работать при данной глубине цвета. Заметьте, что поддерживаются только те стандартные режимы VESA, что определены графическим оборудованием настраиваемой системы. В примере выше глубина цвета по умолчанию равна двадцати четырём битам на пиксел. При такой глубине цвета принимается разрешение в 1024 на 768 точек. Наконец, запишите конфигурационный файл и протестируйте его при помощи тестового режима, описанного выше. Замечание: При решении проблем могут помочь лог файлы X11, в которых находится информация по каждому устройству, к которому подключен сервер X11. Лог файлам Имена лог файлам могут даваться от Если все в порядке, то конфигурационный файл нужно установить в общедоступное место, где его сможет найти Xorg 1 или XFree86 1. Обычно это Теперь процесс настройки X11 завершен. Для запуска XFree86 4.X посредством startx 1 установите порт В Xorg уже включен код wrapper, и установка его из порта не требуется. X11 можно также запустить через xdm 1. Замечание: Имеется также графический инструмент для настройки, xorgcfg 1 xf86cfg 1 для XFree86, который включён в дистрибутив X11. Он позволяет выполнить настройку в интерактивном режиме посредством выбора соответствующих драйверов и настроек. Эта программа может быть запущена в консоли командой Для получения более полной информации обратитесь к странице справочной системы xorgcfg 1 или xf86cfg 1. Кроме того, существует программа настройки xorgconfig 1 xf86config 1 для XFree86, это консольная утилита, которая менее дружественна к пользователю, но может работать в ситуациях, в которых другие утилиты не работают. программного интерфейса AGP, посредством которого X11 будет управлять адаптером. Драйвер agp 4 присутствует в ядре с момента выпуска 4.8-RELEASE и 5.0-RELEASE. Для предшествующих релизов вам нужно добавлять такую строку: в конфигурационный файл вашего ядра и перестраивать новое ядро. Однако вместо этого вы можете подгружать модуль ядра автоматически во время загрузки системы при помощи loader 8. Для этого просто добавьте следующую строку в файл Затем, в случае использования FreeBSD 4.X или более ранних её версий, для программного интерфейса должен быть создан файл устройств. Для создания файла устройств для AGP запустите MAKEDEV 8 в каталоге Замечание: Во FreeBSD 5.X и более поздних версиях будет использоваться devfs 5 для выделения файлов устройств в прозрачном режиме, поэтому шаг с MAKEDEV 8 не нужен. Это позволит конфигурировать графическое оборудование точно так же, как и любой другой графический адаптер. Заметьте, что для систем, у которых драйвер agp 4 в ядро не вкомпилирован, попытка погрузить модуль с помощью kldload 8 окончится неудачно. Этот драйвер должен оказаться в ядре во время загрузки, либо вкомпилированным, либо подгруженным посредством Если вы используете XFree86 4.1.0 или более позднюю версию, и выдаются сообщения о неразрешённых ссылках типа попробуйте добавить такую строчку после Текст предоставил Murray Stokely. Шрифты, используемые по умолчанию и распространяемые вместе с X11, вряд ли можно назвать идеально подходящими для применения в обычных издательских приложениях. Большие презентационные шрифты выглядят рвано и непрофессионально, а мелкие шрифты в Netscape вообще невозможно разобрать. Однако есть некоторое количество свободно распространяемых высококачественных шрифтов Type1 PostScript, которые можно без изменений использовать с X11. К примеру, в наборе шрифтов URW имеются высококачественные версии стандартных шрифтов type1 Times Roman, Helvetica, Palatino и другие. В набор Freefonts включено ещё больше шрифтов, однако большинство из них предназначено для использования в программном обеспечении для работы с графикой, например, Gimp, и они не вполне пригодны для использования в качестве экранных шрифтов. Кроме того, X11 с минимальными усилиями может быть настроена на использование шрифтов TrueType. Более детальная информация находится на странице справочной системы X 7 и в разделе о шрифтах TrueType ниже. То же самое нужно будет сделать для коллекции freefont и других. Чтобы X-сервер обнаруживал этих шрифты, добавьте соответствующую строку в файл настройки X сервера XFree86, которая должна выглядеть так: Это сработает, но будет потеряно, когда сеанс работы с X будет закрыт, если эта команда не будет добавлена в начальный файл XDM. Третий способ заключается в использовании нового файла Как в XFree86 4.X, так и в Xorg имеется встроенная поддержка шрифтов TrueType. Имеются два модуля, которые могут обеспечить эту функциональность. В нашем примере используется модуль freetype, потому что он в большей степени похож на другие механизмы для работы с шрифтами. Для включения модуля freetype достаточно в раздел добавить следующую строчку. В случае XFree86 3.3.X требуется отдельный сервер шрифтов TrueType. Для этого обычно используется Xfstt. Для установки Теперь создайте каталог для шрифтов TrueType к примеру, и скопируйте все шрифты TrueType в этот каталог. Имейте в виду, что напрямую использовать шрифты TrueType с Macintosh нельзя; для использования с X11 они должны быть в формате UNIXMS-DOSWindows. После того, как файлы будут скопированы в этот каталог, воспользуйтесь утилитой ttmkfdir для создания файла который укажет подсистеме вывода шрифтов X на местоположение этих новых файлов. После этого добавьте каталог со шрифтами TrueType к маршруту поиска шрифтов. Это делается точно также, как описано выше для шрифтов Type1, то есть выполните Gimp, StarOffice и все остальные X-приложения должны увидеть установленные шрифты TrueType. Очень маленькие как текст веб-страницы на дисплее с высоким разрешением и очень большие в StarOffice шрифты будут теперь выглядеть гораздо лучше. Обновление выполнил Joe Marcus Clarke. Антиалиасинг присутствует в X11 начиная с XFree86, версии 4.0.2. Однако настройка шрифтов была довольно громоздка вплоть до появления XFree86 4.3.0. Начиная с версии XFree86 4.3.0, все шрифты, расположенные в каталогах автоматически становятся доступными для применения антиалиасинга в приложениях, использующих Xft. Не все приложения могут использовать Xft, но во многих его поддержка присутствует. Примерами приложений, использующих Xft, является Qt версий 2.3 и более поздних это инструментальный пакет для оболочки KDE, GTK версий 2.0 и более поздних это инструментальный пакет для оболочки GNOME, а также Mozilla версий 1.2 и более поздних. Для применения к шрифтам антиалиасинга, а также для настройки параметров антиалиасинга, создайте или отредактируйте, если он уже существует файл Некоторые мощные возможности системы шрифтов Xft могут быть настроены при помощи этого файла; в этом разделе описаны лишь некоторые простые возможности. Для выяснения всех деталей, пожалуйста, обратитесь к fonts-conf 5. Этот файл должен быть сформирован в формате XML. Обратите особое внимание на регистр символов, и удостоверьтесь, что все тэги корректно закрыты. Файл начинается обычным заголовком XML, за которым следуют DOCTYPE и тэг Как и говорилось ранее, все шрифты из каталога уже доступны для приложений, использующих Xft. Если вы хотите добавить каталог, отличный от этих двух, добавьте строчку, подобную следующей, в файл После добавления новых шрифтов, и особенно новых каталогов со шрифтами, вы должны выполнить следующую команду для перестроения кэшей шрифтов: Антиалиасинг делает границы несколько размытыми, что делает очень мелкий текст более читабельным и удаляет лесенки из текста большого размера, но может вызвать нечёткость при применении к тексту обычного размера. Для исключения размеров шрифтов, меньших 14, из антиалиасинга, добавьте такие строки: Для некоторых моноширинных шрифтов антиалиасинг может также оказаться неприменимым при определении межсимвольного интервала. В частности, эта проблема возникает с KDE. Одним из возможных решений для этого является жесткое задание межсимвольного интервала в 100. Добавьте следующие строки: для других общеупотребительных имён шрифтов фиксированного размера, а затем добавьте: С некоторыми шрифтами, такими, как Helvetica, при антиалиасинге могут возникнуть проблемы. Обычно это проявляется в виде шрифта, который наполовину вертикально обрезан. Хуже того, это может привести к сбоям таких приложений, как Mozilla. Во избежание этого следует добавить следующее в файл После того, как вы закончите редактирование удостоверьтесь, что файл завершен тэгом Если этого не сделать, ваши изменения будут проигнорированы. Набор шрифтов по умолчанию, поставляемый с X11, не очень подходит, если включается антиалиасинг. Гораздо лучший набор шрифтов, используемых по умолчанию, можно найти в порте Этот порт установит файл если такого ещё не существует. Если файл существует, то порт создаст файл Перенесите содержимое этого файла в и шрифты Bitstream автоматически заменят используемые по умолчанию в X11 шрифты Serif, Sans Serif и Monospaced. Наконец, пользователи могут добавлять собственные наборы посредством персональных файлов Для этого каждый пользователь должен просто создать файл Этот файл также должен быть в формате XML. И последнее замечание: при использовании дисплея LCD может понадобиться включение разбиения точек. При этом компоненты красного, зелёного и голубого цветов разделяемые по горизонтали, рассматриваются как отдельные точки для улучшения разрешения экрана по горизонтали; результат может оказаться потрясающим. Для включения этого механизма добавьте такую строчку где-нибудь в файле Замечание: В зависимости от типа дисплея, пробуйте и смотрите, что работает лучше. Антиалиасинг должен быть включен при следующем запуске X-сервера. Однако программы должны знать, как использовать его преимущества. В настоящее время инструментальный пакет Qt умеет ими пользоваться, так что вся оболочка KDE может использовать шрифты с антиалиасингом обратитесь к Разд. 5.7.3.2 о KDE для выяснения всех подробностей. GTK и GNOME также можно заставить использовать антиалиасинг посредством капплета Font обратитесь к Разд. 5.7.1.3 для выяснения всех подробностей. По умолчанию Mozilla версий 1.2 и выше будет автоматически использовать антиалиасинг. Для отмены использования антиалиасинга перестройте Mozilla с флагом Текст предоставил Seth Kingsley. Менеджер Экранов X XDM это необязательный компонент X Window System, который используется для управления входом пользователей в систему. Это полезно в ряде ситуаций, например для минимальных X Терминалов, десктопов, больших сетевых серверов экранов. Так как X Window System не зависит от сетей и протоколов, то существует множество различных конфигураций для X клиентов и серверов, запущенных на различных компьютерах, подключенных к сети. XDM предоставляет графический интерфейс для выбора сервера, к которому вы желаете подключится, и введения информации, авторизующей пользователя, например комбинации логина и пароля. XDM можно рассматривать как аналог программы getty 8, предоставляющий такие же возможности для пользователей смотрите Разд. 20.3.2 для подробной информации. И это именно так, XDM производит вход в систему для подключенного пользователя и запускает управляющую сессию для пользователя обычно это менеджер окон X. После этого XDM ожидает завершения приложения, означающее завершение пользователем работы и отключает управляющую сессию. Затем XDM может снова вывести приглашение к входу в систему и ожидать входа другого пользователя. Эта программа может быть запущена от пользователя в любой момент, и она начнёт управлять дисплеем X на локальной машине. Если XDM нужно запускать в фоновом режиме каждый раз при запуске компьютера, то наиболее правильный способ - - это добавить новую запись в Для более подробной информации о формате и использовании этого файла смотрите Разд. 20.3.2.1. Вот строка, которую необходимо добавить в файл для того, чтобы запустить даемон По умолчанию эта запись отключена; для её включения нужно заменить пятое поле с и перезапустить init 8, используя метод, описанный в Разд. 20.3.2.2. Первое поле это название терминала, которым будет управлять программа, Это означает, что XDM будет запущен на 9ом виртуальном терминале. В нём размещаются насколько файлов, которые используются для изменения поведения и внешнего вида XDM. Обычно это следующие файлы: Правила авторизации клиентов. Значения ресурсов X по умолчанию. Список локальных и удаленных экранов. Сценарий сессии по умолчанию. Скрипт для запуска приложений до появления приглашения к входу в систему. Ошибки сгенерированные серверной программой. ID процесса запущенного XDM. В этом каталоге также находятся несколько командных сценариев и программ, используемых для настройки рабочего стола desktop при запуске XDM. Назначение каждого из этих файлов будет вкратце описано. Точный синтаксис и информация по их использованию находятся в xdm 1. В конфигурации по умолчанию выводится простое прямоугольное окно приглашения ко входу в систему с именем компьютера, написанным сверху большим шрифтом, и строками ввода Login: и Password: внизу. Это хорошая отправная точка для изменения внешнего вида экранов XDM. Протокол, по которому происходит подключение дисплеев, управляемых XDM, называется X Display Manager Connection Protocol XDMCP. Этот файл представляет собой набор правил для управления XDMCP соединениями с удалёнными машинами. По умолчанию он позволяет подключаться любым клиентам, но это не имеет значения, пока стандартный файл не содержит указаний по обслуживанию удалённых соединений. Это файл содержит установки по умолчанию для приложений, запущенных в экране выбора серверов и экране приглашения к входу в систему. Именно здесь может быть изменён вид программы входа в систему. Формат этого файла идентичен файлу описанному в документации к X11. Это список удаленных экранов, которые XDM должен предоставить как варианты для входа в систему. Этот файл представляет из себя командный сценарий по умолчанию для пользователей, вошедших в систему с использованием XDM. Обычно каждый пользователь имеет собственный сценарий входа в файле который используется вместо этого сценария. Они запускаются автоматически перед тем, как показывается экран выбора сервера или экран входа в систему. Для каждого экрана display есть свой сценарий с именем за которым следует локальный номер экрана например, Обычно эти сценарии запускают одну или две программы в фоновом режиме, например Здесь содержатся настройки в формате app-defaults, которые применимы ко всем экранам данного компьютера. Здесь находится выдача X серверов, которые XDM пытается запустить. Если экран, который XDM пытается открыть, отключается по некоторым причинам, то это хорошее место для поиска сообщений об ошибках. Эти сообщения также записываются в пользовательский файл Для того, чтобы позволить другим клиентам подключаться к серверу дисплеев, отредактируйте правила контроля доступа и включите обслуживание сетевых соединений. По умолчанию они выключены, что является хорошим решением с точки зрения обеспечения безопасности. Для того, чтобы позволить XDM принимать сетевые соединения, в первую очередь закомментируйте строку в файле SECURITY: do not listen for XDMCP or Chooser requests! Comment out this line if you want to manage X terminals with xdm : 0 и потом перезапустите XDM. Помните, что комментарии в файлах app-defaults начинаются с символа !, а не как обычно,. Может потребоваться более жёсткий контроль доступа. Взгляните на примеры из Существует несколько программ, заменяющих XDM. Одна из них, kdm поставляемая вместе с KDE, описана далее в этой главе. В kdm имеется много визуальных и косметических улучшений, а также функциональность, позволяющая пользователям выбирать собственные оконные менеджеры во время входа в систему. Текст предоставил Valentino Vaschetto. В этом разделе описываются различные графические оболочки, доступные в X для FreeBSD. Термин графическая оболочка может использоваться для чего угодно, от простого менеджера окон до полнофункционального набора приложений для рабочего стола, типа GNOME является дружественной к пользователю графической оболочкой, позволяющей пользователям легко использовать и настраивать свои компьютеры. В GNOME имеется панель для запуска приложений и отображения их состояния, рабочий стол где могут быть размещены данные и приложения, набор стандартных инструментов и приложений для рабочего стола, а также набор соглашений, облегчающих совместную работу и согласованность приложений. Пользователи других операционных систем или оболочек при использовании такой мощной графической оболочки, какую обеспечивает GNOME, должны чувствовать себя в родной среде. Дополнительную информацию относительно GNOME во FreeBSD можно найти на сайте FreeBSD GNOME Project. Легче всего установить GNOME через меню Desktop Configuration в ходе процесса установки FreeBSD, как описано в Разд. 2.9.13 Главы 2. Её также легко установить из пакета или Коллекции Портов: Для установки пакета GNOME из сети, просто наберите: GNOME вместо стандартного оконного менеджера. Если файл уже откорректирован, то просто замените строку, в которой запускается используемый менеджер окон, на ту, что вызовет usr/X11R6/bin/gnome-session. Если в конфигурационном файле нет ничего особенного, то будет достаточно просто набрать: и будет запущена графическая оболочка GNOME. XDM, то это не сработает. Вместо этого создайте выполнимый файл с той же самой командой в нём. Для этого отредактируйте файл, заменив существующую команду запуска оконного менеджера на Ещё одним вариантом является настройка менеджера дисплеев таким образом, чтобы он позволял выбирать оконный менеджер во время входа в систему; в разделе о KDE2 в подробностях описывается, как сделать это для X11 поддерживает антиалиасинг посредством своего расширения RENDER. GTK 2.0 и более поздние версии это инструментальный пакет, используемый GNOME могут использовать такую функциональность. Настройка антиалиасинга описана в Разд. 5.5.3. Таким образом, при наличии современного GNOME, возможно использование антиалиасинга. Просто перейдите в Applications - Desktop Preferences - Font и выберите либо Best shapes, Best contrast, либо Subpixel smoothing LCDs. Для приложений GTK, которые не являются частью оболочки GNOME, задайте в качестве значения переменной окружения перед запуском программы. KDE является простой в использовании современной графической оболочкой. Вот лишь некоторые из преимуществ, которые даёт пользователю Рабочий стол, полностью прозрачный для работы в сети Интегрированная система помощи, обеспечивающая удобный и согласованный доступ к системе помощи по использованию рабочего стола KDE и его приложений Стандартизированные меню и панели инструментов, комбинации клавиш, цветовые схемы и так далее. Для KDE существует пакет офисных приложений, который выполнен по технологии KParts из KDE, состоящий из программы для работы с электронными таблицами, презентационной программы, органайзера, клиента для чтения телеконференций и других программ. С KDE также поставляется веб-браузер под названием Konqueror, который является серьезным соперником другим браузерам для UNIX - систем. Дополнительную информацию о KDE можно найти на веб-сайте KDE. Для получения информации и информационных ресурсов, специфичных для KDE во FreeBSD, обратитесь к сайту команды FreeBSD-KDE team. Как и в случае с GNOME или любой другой графической оболочкой, легче всего установить KDE через меню Desktop Configuration во время установки FreeBSD, как это описано в Разд. 2.9.13 Главы 2. Повторимся ещё раз, что программное обеспечение можно легко установить из пакета или из Коллекции Портов: Для установки пакета KDE из сети, просто наберите: pkgadd 1 автоматически загрузит самую последнюю версию приложения. После установки KDE нужно указать X-серверу на запуск этого приложения вместо оконного менеджера, используемого по умолчанию. Это достигается редактированием файла в качестве оболочки будет использоваться KDE. При использовании менеджера дисплеев типа XDM настройка несколько отличается. Вместо этого нужно отредактировать файл Указания для kdm описаны далее в этой главе. Теперь, когда KDE установлена в системе, можно узнать много нового из её справочных страниц или просто указанием и щелканием по различным меню. Пользователи Windows или Mac будут чувствовать себя как дома. Лучшим справочником по KDE является онлайновая документация. KDE поставляется с собственным веб-браузером, который называется Konqueror, десятками полезных приложений и подробной документацией. В оставшейся части этого раздела обсуждаются технические вопросы, трудные для понимания при случайном исследовании. Администратору многопользовательской системы может потребоваться графический экран для входа пользователей в систему. Вы можете использовать XDM, как это описано ранее. Однако в KDE имеется альтернативный менеджер kdm, который был разработан более привлекательным и с большим количеством настраиваемых опций для входа в систему. В частности, пользователи могут легко выбирать посредством меню, какую оболочку KDE, GNOME или что-то ещё запускать после входа в систему. Чтобы начать, запустите панель управления KDE, Вообще говоря, считается небезопасным работать в X пользователем Вместо этого запустите менеджер окон как обычный пользователь, откройте окно терминала такого, как KDE, станьте пользователем Щёлкните на иконке слева с надписью System, затем на Login manager. Справа имеется много различных параметров настройки, которые более детально описаны в руководстве по KDE. Щёлкните на sessions справа. Щёлкните на кнопку New type для того, чтобы добавить различные оконные менеджеры и графические оболочки. Это просто названия, так что они могут именоваться KDE или GNOME, а не startkde или gnome-session. Включите название Поэкспериментируйте также и с другими меню, они в основном носят косметический характер и самоописательны. Когда закончите, щёлкните на Apply внизу и завершите работу панели управления. Чтобы kdm понимал, что значат эти названия KDE, GNOME и так далее, отредактируйте файлы, которые использует XDM. kdm теперь используются собственные конфигурационные файлы. Пожалуйста, обратитесь к документации по KDE 2.2 для получения подробной информации. В окне терминала, работая как пользователь В середине есть раздел, выглядящий вот так: Нужно добавить к этому разделу несколько строк. Полагая, что ранее использовались названия KDE и GNOME, сделаем следующее: Чтобы выбор KDE в качестве оболочки на момент входа в систему был принят, нужно добавить такую строку в Теперь проверьте, что kdm перечислена в файле для запуска при следующей загрузке. Для этого просто следуйте инструкциям из предыдущего раздела о XDM, заменив вызов программы X11 поддерживает антиалиасинг через своё расширение RENDER, а начиная с версии 2.3, Qt инструментарий, используемый в KDE поддерживает это расширение. Настройка описана в Разд. 5.5.3 по антиалиасингу с шрифтами X11. Таким образом, при работе с современным программным обеспечением, в оболочке KDE возможно использование антиалиасинга. Просто перейдите в меню KDE, затем к Preferences - Look and Feel - Fonts и поставьте галочку рядом с Use Anti-Aliasing for Fonts and Icons. Для работы с приложением Qt, которое не является частью KDE, перед его запуском нужно устанавливать переменную окружения XFce является графической оболочкой, построенной на основе инструментального пакета GTK, используемого в GNOME, но она гораздо легче и предназначена для тех, кому нужен простой, эффективно работающий рабочий стол, который легко использовать и настраивать. Визуально он выглядит очень похоже на CDE, который есть в коммерческих UNIX - системах. Вот некоторые из достоинств Простой, лёгкий в обращении рабочий стол Полностью настраиваемый при помощи мыши, с интерфейсом drag and drop и так далее Главная панель похожа на CDE, с меню, апплетами и возможностями по быстрому запуску приложений Интегрированный оконный менеджер, менеджер файлов, управление звуком, модуль совместимости с GNOME и прочее Быстрый, легкий и эффективный: идеален для устаревших/слабых машин или для машин с ограниченной памятью Дополнительную информацию о XFce можно найти на сайте XFce. Для XFce имеется на момент написания этого текста бинарный пакет. Для его установки просто наберите: Либо, в случае построения из исходных текстов, используйте Коллекцию Портов: Теперь укажите X-серверу на запуск XFce при следующем запуске X. Просто наберите: XFce. Как сказано выше, если используется менеджер дисплеев, такой, как так, как это описано в разделе о GNOME, но с командой либо настройте менеджер дисплеев так, чтобы он разрешил выбор рабочего стола во время входа в систему, как это описано в разделе о kdm. Теперь, когда основы были пройдены, в данной части Руководства FreeBSD будут обсуждаться некоторые часто используемые возможности FreeBSD. В этих главах: Введение в популярные и полезные графические приложения: браузеры, бизнес приложения, программы просмотра документов и т.д. Представлены множество мультимедийных программ, доступных в FreeBSD. Описан процесс создания собственного ядра FreeBSD для включения дополнительных функций системы. Система печати разобрана в деталях, как для непосредственно подключенных принтеров, так и для принтеров, подключенных через сеть. Показано, как запускать приложения Linux в системе FreeBSD. Перед прочтением некоторых из этих глав необходимо ознакомиться с предварительной информацией, что указано в кратком обзоре в начале каждой главы. Предоставил Christophe Juniet. Перевод на русский язык: Денис Пеплин. FreeBSD может работать с широким кругом приложений для настольного компьютера десктопа, таких как браузеры и текстовые процессоры. Большинство из них доступны в качестве пакетов или могут быть автоматически собраны из коллекции портов. Многим новым пользователям хотелось бы видеть эти приложения на своем компьютере. В этой главе показано как без усилий установить некоторые популярные приложения для настольного компьютера из пакетов или из коллекции портов. Обратите внимание, что при установке программ из портов они компилируются из исходных текстов. Это может занять очень много времени, в зависимости от того, что вы собираете, и от скорости процессора вашего компьютера компьютеров. Большинство программ, имеющихся в коллекции портов, могут быть установлены из прекомпилированных пакетов, если сборка из исходных текстов занимает недопустимо много времени. Поскольку FreeBSD обеспечивает двоичную совместимость с Linux, многие приложения, первоначально разработанные для Linux, доступны и на вашем компьютере. Настоятельно рекомендуется прочитать Гл. 10 перед установкой любого из приложений Linux. Названия многих портов, использующих двоичную совместимость с Linux, начинаются с linux-. Помните это при поиске отдельного порта, например с помощью whereis 1. Далее в статье подразумевается, что вы включили бинарную совместимость с Linux перед установкой какого-либо приложения Linux. Вот несколько категорий, о которых пойдет речь в этой главе: Браузеры такие как Mozilla, Бизнес приложения такие как KOffice, Программы просмотра документов такие как Acrobat Reader, gv, Финансовые программы такие как GnuCash, Узнать, как устанавливать дополнительные программы сторонних производителей Гл. 4. Узнать, как устанавливать программы Linux Гл. 10. Чтобы получить дополнительную информацию о настройке мультимедиа среды, прочтите Гл. 7. Если вам нужна электронная почта, обратитесь к Гл. 22. FreeBSD поставляется без предустановленного браузера. Вместо этого, в категории www коллекции портов содержится множество готовых к установке браузеров. Если у вас нет времени компилировать все в некоторых случаях это может занять очень много времени, многие из них доступны в виде пакетов. В KDE и GNOME уже есть HTML браузеры. Обратитесь к Разд. 5.7 за подробной информацией об установке этих полноценных десктопов. Если вы ищете облегченный браузер, попробуйте Доступны версии для FreeBSD и Linux. Для Linux версии необходимо наличие Linux Binary Compatibility и linux-openmotif Mozilla это возможно наиболее подходящий браузер для десктопа FreeBSD. Он современный, стабильный и полностью портирован на FreeBSD. Его достоинство в высокой совместимости со стандартами HTML. В нем есть почтовая и новостная программы. В нем даже найдется редактор HTML, если вам потребуется самостоятельно написать несколько веб-страничек. Пользователи Netscape найдут общие черты с Communicator, поскольку оба браузера имеют одну основу. На медленных компьютерах с частотой CPU меньше 233MHz или с памятью меньше 64MB, Mozilla требует слишком много ресурсов, чтобы быть удобной в использовании. Вместо нее вы можете обратить внимание на браузер Opera, описанный ниже в этой главе. Если вы не можете или не хотите компилировать Mozilla по какой-то причине, команда FreeBSD GNOME уже сделала это для вас. Просто установите пакет из сети с помощью: Если пакет недоступен, но у вас достаточно времени и места на диске, вы можете скачать исходные тексты для Mozilla, скомпилировать их и установить в вашу систему. Это делается так: Если вы хотите загрузить некоторые дополнения, например курсоры мыши, потребуется запустить для их правильной установки. После завершения установки Mozilla, больше не требуется работать под Mozilla в качестве браузера, набрав: Вы можете также запустить непосредственно программу чтения почты и новостей, как показано ниже: Предоставил Tom Rhodes. Установка Mozilla проста, но к сожалению, установка Mozilla с поддержкой дополнений, таких как Java и Macromedia Flash отнимает и время и место на диске. Первое, что нужно сделать - - загрузить файлы, которые будут использоваться с Mozilla. Зайдите с помощью имеющегося веб браузера на и создайте учетную запись на этом веб-сайте. Сохраните имя пользователя и пароль, они могут понадобиться в будущем. Загрузите копию файлов JDK 5.0 SCSL Source и поместите их в каталог Как и предыдущий, этот файл должен находиться в каталоге Наконец, установите порт Запустите Mozilla и выберите пункт About Plug-ins в меню Help. В списке установленных плагинов должен присутствовать плагин Java. Плагина Macromedia Flash для FreeBSD не существует. Тем не менее, есть решение обертка, wrapper для запуска плагина для Linux. Это решение также поддерживает плагины для Adobe Acrobat, RealPlayer и других. Он требует для работы достаточно большого порта Следуя инструкциям, исправьте файл Примеры конфигураций вы можете найти в каталоге если Mozilla еще не установлена. И войдите в пункт About Plug-ins меню Help. Должен появиться список со всеми доступными плагинами. Замечание: Плагин linuxpluginwrapper работает только на архитектуре i386. Opera это очень быстрый, полноценный и совместимый со стандартами браузер. Он поставляется в двух вариантах: родная для FreeBSD версия и версия, запускаемая в режиме эмуляции Linux. Для каждой операционной системы есть бесплатная версия браузера, показывающая баннеры, и версия без баннеров, которую можно купить на веб сайте Opera. На некоторых серверах FTP нет всех пакетов, но те же результаты можно получить с помощью коллекции портов, набрав: Для установки Linux версии Opera, замените в примере выше. Версия для Linux полезна в ситуации, когда требуются плагины, доступные только для Linux, такие как Adobe Acrobat Reader. Во всех других отношениях версии для FreeBSD и Linux являются функционально идентичными. Firefox это браузер следующего поколения, основанный на коде Mozilla. Mozilla это полный набор приложений, таких как браузер, почтовый клиент, чат клиент и многое другое. Firefox это всего лишь браузер, что делает его меньше и быстрее. Установите пакет, выполнив: Вы можете также использовать коллекцию портов, если предпочитаете сборку из исходных текстов: Konqueror это часть KDE, но может быть использован и отдельно от KDE, путем установки Konqueror это гораздо больше чем просто браузер, это также менеджер файлов и программа просмотра мультимедиа. Konqueror поставляется с набором плагинов, доступных из В начале работы новые пользователи зачастую стремятся найти хороший офисный пакет или удобный текстовый процессор. Хотя некоторые десктопы, такие как KDE, поставляются с готовым офисным пакетом, приложения по умолчанию не существует. В FreeBSD есть все необходимое, кроме графической среды. Сообщество KDE предоставляет графическую среду с офисным пакетом, который может быть использован вне KDE. Он включает четыре стандартных компонента, встречающиеся и в других офисных пакетах. Текстовый процессор KWord, программа электронных таблиц KSpread, KPresenter для создания презентаций и программа векторной графики Kontour. Перед установкой последней версии KOffice, убедитесь в наличии свежей версии KDE. Для установки KOffice из пакета, выполните следующую команду: Если пакет недоступен, используйте коллекцию портов. Например, для установки AbiWord это свободно распространяемый текстовый процессор, по внешнему виду и поведению очень похожий на Microsoft Word. Он подходит для набора документов, писем, отчетов, напоминаний и так далее. Он очень быстр, содержит много новшеств и очень удобен в использовании. AbiWord может импортировать и экспортировать множество файловых форматов, включая патентованный Microsoft AbiWord доступен в виде пакета. Вы можете установить его так: Если пакет недоступен, он может быть собран из коллекции портов, которая должна быть свежей. Это можно сделать командой: GIMP. Она может быть использована как простая программа рисования и как программа обработки фотографий. Поддерживается большое количество плагинов и предоставлен интерфейс для скриптов. GIMP может читать и записывать файлы многих форматов. Есть интерфейс со сканерами и планшетами. Вы можете установить пакет, выполнив эту команду: Если на вашем сервере FTP нет этого пакета, вы можете использовать коллекцию портов. Категория graphics коллекции портов содержит также раздел Руководство Gimp. Здесь показано, как его установить: включает все обязательные компоненты полноценного офисного пакета: текстовый процессор, программу электронных таблиц, программу управления презентациями и программу векторной графики. Интерфейс пользователя очень похож на другие офисные пакеты, возможен импорт и экспорт различных популярных файловых форматов. Приложение доступно в вариантах для множества разных языков, включая интерфейсы, проверку орфографии и словари. Текстовый процессор использует чистый XML формат файлов для увеличения переносимости и гибкости. Программа для работы с текстовыми таблицами предоставляет макроязык и может работать с внешними базами данных. уже стабильна и существует в версиях для Windows, Solaris, Linux, FreeBSD, и Mac OS X. Дополнительную информацию об можно найти на веб сайте OpenOffice. Получить специфичную для FreeBSD информацию и загрузить пакеты можно с веб сайта команды портирования OpenOffice на FreeBSD FreeBSD OpenOffice Porting Team. Для установки, выполните: Замечание: Эта операция должна работать для любого релиза - RELEASE FreeBSD. Если вы используете иные версии - STABLE, - CURRENT, нужный пакет может быть загружен с сайта группы поддержки OpenOffice и затем установлен при помощи pkgadd 1. На сайте вы найдете как последний стабильный релиз, так и текущую версию, находящуюся в разработке. Запустите эту команду из под пользователя, который будет использовать : Если пакеты недоступны, можно выбрать компиляцию порта. Однако, вы должны помнить, что это потребует много места на диске и компиляция будет довольно долгой. cd/usr/ports/editors/openoffice-1.1 Потом запустите настройку под пользователем, который будет использовать Если вы хотите использовать локализованную версию, вот доступные порты: hungarian/openoffice-1.1 editors/openoffice-1.1-nl editors/openoffice-1.1-el editors/openoffice-1.1-dk editors/openoffice-1.1-es editors/openoffice-1.1-it editors/openoffice-1.1-ca chinese/openoffice-1.1-zhTW chinese/openoffice-1.1-zhCN portuguese/openoffice-1.1-ptBR portuguese/openoffice-1.1-ptPT editors/openoffice-1.1-sk editors/openoffice-1.1-slSI editors/openoffice-1.1-tr editors/openoffice-1.1-fi editors/openoffice-1.1-cs editors/openoffice-1.1-se editors/openoffice-1.1-et Некоторые новые форматы документов приобрели большую популярность. Стандартные программы для их просмотра могут отсутствовать в базовой системе. В этом разделе мы увидим, как их установить. Сейчас многие документы распространяются в формате PDF, аббревиатура для Portable Document Format. Одна из рекомендованных программ для просмотра этого типа документов, это Acrobat Reader, выпущенный Adobe для Linux. Поскольку FreeBSD может запускать исполняемые файлы Linux, он доступен также и для FreeBSD. Пакет acroread7 недоступен из-за лицензионных ограничений. gv это программа просмотра PostScript и PDF. Она разработана на основе ghostview, но выглядит лучше благодаря библиотеке Xaw3d. Она быстра, а ее интерфейс несложен. У gv есть множество функций, таких как выбор ориентации, размера бумаги, масштаба и сглаживание. Почти любая операция может быть выполнена как с клавиатуры, так и мышью. Для установки gv из пакета, выполните: Если вы не можете получить пакет, используйте коллекцию портов: Если вам нужна небольшая программа просмотра PDF под FreeBSD, Xpdf это легкая и эффективная программа. Она требует очень небольшого количества ресурсов и очень стабильна. Используются стандартные шрифты X, Motif или другие пакеты для X не нужны. Для установки пакета Xpdf, выполните эту команду: Если пакет недоступен, или вы предпочитаете коллекцию портов, выполните: После завершения установки вы можете запустить Xpdf и использовать правую кнопку мыши для активации меню. GQview это программа для работы с изображениями. Вы можете просмотреть файл одним кликом, запустить внешний редактор, получить миниатюры и многое другое. Еще в нем есть слайд-шоу и несколько основных файловых операций. Вы можете управлять коллекциями изображений и легко находить дубликаты. В GQview изображения можно просматривать во весь экран, его можно адаптировать к разным языкам. Если вы хотите установить пакет GQview, выполните: Если пакет недоступен, или вы предпочитаете использовать коллекцию портов, выполните: Если по каким-то причинам вам нужно управлять своими финансами на десктопе FreeBSD, есть несколько мощных и простых в использовании приложений. Некоторые из них совместимы с широко распространенными форматами файлов, такими как документы GnuCash это часть проекта GNOME, который стремится предоставить дружественные к пользователю приложения с широким набором функций. С GnuCash вы можете отслеживать доходы и расходы, банковские счета или акции. Интуитивный интерфейс программы не мешает ей оставаться очень профессиональной. GnuCash предоставляет интеллектуальный журнал записей, иерархическую систему учетных записей, множество клавиатурных сокращений и метод автозавершения. Он может разбивать одну транзакцию на несколько частей, детализируя ее. GnuCash может импортировать и присоединять файлы Quicken QIF. Он также работает с основными международными форматами дат и валютами. Для установки GnuCash в вашу систему, выполните: Если пакет недоступен, вы можете использовать коллекцию портов: Gnumeric это электронная таблица, часть графической среды GNOME. Она использует удобное автоматическое угадывание ввода пользователя в зависимости от формата ячейки и систему автозаполнения для множества последовательностей. Она может импортировать файлы нескольких популярных форматов, таких как Excel, Lotus 1-2-3, или Quattro Pro. Gnumeric работает с диаграммами через В ней множество встроенных функций, можно использовать обычные форматы ячеек: число, валюта, дата, время и многие другие. Для установки Gnumeric из пакета, введите: Если пакет недоступен, вы можете использовать коллекцию портов: Abacus это небольшая и простая в использовании программа электронных таблиц. В ней много встроенных функций из нескольких областей, таких как статистика, финансы и математика. Она может импортировать и экспортировать файлы Excel. Abacus также может печатать PostScript. Для установки Abacus из пакета, выполните: Если пакет недоступен, вы можете использовать коллекцию портов, выполнив: Хотя FreeBSD популярна в основном среди провайдеров из-за стабильности и высокой производительности, на сегодняшний день она вполне готова к использованию в качестве десктопа. С несколькими тысячами приложений, доступных в виде пакетов или портов, вы можете создать прекрасный десктоп, отвечающий всем вашим потребностям. После первой установки десктопа, вы можете попробовать сделать шаг вперед с Этот мета-порт позволяет вам собрать типичный набор портов для рабочей станции. Вы можете настроить его, редактируя Следуйте синтаксису существующего файла при добавлении и удалении портов, соберите порт как обычно. В конечном итоге, вы можете создать большой пакет, соответствующий вашему собственному десктопу, и установить его на другие рабочие станции! Вот небольшой обзор всех графических приложений, о которых говорилось в этой главе: Предоставил Moses Moore. Перевод на русский язык: Александр Коваленко, Денис Пеплин. FreeBSD поддерживает большое количество различных звуковых карт, что позволяет вам насладится высококачественным звуком. Это также дает возможность записывать и воспроизводить звуковые файлы в формате MPEG Audio Layer 3 MP3, WAV, Ogg Vorbis, а также во множестве других форматов. Коллекция Портов FreeBSD также содержит ряд приложений, позволяющих редактировать записанные звуковые файлы, добавлять звуковые эффекты, управлять подключенными MIDI устройствами. FreeBSD может поддерживать воспроизведение видеофайлов и DVD. Количество приложений, позволяющих кодировать, преобразовывать и воспроизводить различные форматы видео, существенно меньше количества приложений для работы со звуком. Например, на время написания этого документа в Коллекции Портов FreeBSD не существовало хорошего приложения для преобразования видео, которое могло бы быть использовано для преобразований между разными форматами, как, например, Впрочем, ситуация в этой области меняется быстро. Эта глава описывает необходимые шаги для настройки вашей звуковой карты. Настройка и установка X11 Гл. 5 уже охватывает вопросы, связанные с аппаратными установками вашей видеокарты, хотя могут быть возможности дополнительной настройки для улучшения воспроизведения. Как настроить систему так, чтобы звуковая карта была опознана. Методы проверки работы звуковой карты при помощи тестовых приложений. Как исправить проблемы, возникающие при работе со звуковыми картами. Как прослушать и создать MP3 и другие форматы. Как X сервер поддерживает видео. Некоторые проигрыватели и кодировщики видео, которые показывают хорошие результаты. Как скопировать информацию с CD и DVD в файлы. Узнать, как конфигурировать и устанавливать новое ядро Гл. 8. Внимание: Попытка смонтировать аудио CD при помощи команды mount 8 как минимум, сообщит об ошибке и, как максимум, может привести к панике ядра. Эти носители имеют специальные форматы, которые отличны от обычной файловой системы ISO. Предоставил Moses Moore. Расширил для FreeBSD 5.X Marc Fonvieille. Перед тем как начать, определите модель вашей карты, процессор, который она использует, и интерфейс карты: PCI или ISA. FreeBSD поддерживает множество разных PCI и ISA карт. Сверьтесь со списком поддерживаемых аудио устройств в Информации об оборудовании, чтобы проверить, поддерживается ли ваша карта. Этот документ также содержит информацию о том, какой драйвер поддерживает вашу карту. Для того, чтобы использовать звуковую карту, вы должный загрузить соответствующий драйвер устройства. Этого можно достигнуть двумя путями. Простейший способ - это просто загрузить соответствующий вашей карте модуль ядра используя kldload 8, что можно сделать или из командной строки: Эти примеры приведены для звуковой карты Creative SoundBlaster Live!. Другие имеющиеся модули драйверов звуковых карты приведены в Если вы не уверены, какой драйвер использовать, попробуйте загрузить Это мета-драйвер, загружающий сразу все наиболее распространенные драйверы сразу. Это повышает скорость поиска правильного драйвера. Возможна также загрузка всех звуковых драйверов через Для того чтобы узнать, какой именно драйвер требуется для вашей звуковой карты, вы можете проверить содержимое файла Замечание: В FreeBSD 4.X для загрузки всех звуковых драйверов вам будет необходимо загрузить модуль Другой способ заключается в добавлении статического драйвера в ядро. В разделе ниже дана более подробная информация о том, что вам нужно сделать для добавления поддержки оборудования. Более подробно о конфигурация ядра описана в Гл. 8. Первое, что необходимо сделать, это добавить в ядро общий звуковой драйвер sound 4. Добавьте в файл конфигурации ядра следующую строку: В FreeBSD 4.X, вам необходимо использовать следующую строку: Затем необходимо добавить поддержку имеющейся звуковой карты. Следовательно, нужно знать какой драйвер поддерживает карту. Для этого сверьтесь со списком поддерживаемых устройств из Информации об оборудовании. Например, звуковая карта Creative SoundBlaster Live! поддерживается драйвером sndemu10k1 4. Для добавления поддержки этой карты, используйте: Прочтите страницу справочника драйвера, чтобы узнать, какой синтаксис использовать. Информация, относящаяся к синтаксису включения звуковых драйверов в файл конфигурации ядра, может быть также найдена в файле Не-PnP ISA карты могут потребовать включения в ядро информации о настройках звуковой карты IRQ, I/O port, и т.д. Эта информация добавляется редактированием файла Во время загрузки системы loader 8 прочтет этот файл и передаст настройки ядру. Например, старая ISA не-PnP карта Creative SoundBlaster 16 использует драйвер sndsbc 4 совместно с sndsb164. Для этой карты к файлу настройки ядра необходимо добавить следующие строки: В данном случае, карта использует порт ввода-вывода Синтаксис, используемый в файле описан в справочной странице драйвера. В FreeBSD 4.X эти настройки записываются непосредственно в файл конфигурации ядра. В случае ISA карты используется такая строка: device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15 Установки, приведенные выше, используются по умолчанию. В некоторых случаях вам может потребоваться изменить IRQ или другие настройки в соответствии с настройками карты. За более подробной информацией обратитесь к странице справочника sndsbc 4. Замечание: В FreeBSD 4.X некоторые системы со встроенной в материнскую плату звуковой картой могут потребовать следующей строки в файле настройки ядра: После перезагрузки модифицированного ядра, или после загрузки необходимого модуля, звуковая карта должна появиться в буфере системных сообщений dmesg 8 примерно так: pcm0: Intel ICH3 82801CA port 0xdc80-0xdcbf, 0xd800-0xd8ff irq 5 at device 31.5 on pci0 pcm0: GIANT-LOCKED pcm0: Cirrus Logic CS4205 AC97 Codec FreeBSD Audio Driver newpcm Installed devices: pcm0: Intel ICH3 82801CA at io 0xd800, 0xdc80 irq 5 bufsz 16384 kld sndich 1p/2r/0v channels duplex default Вывод этой команды для вашей системы может отличаться. Если устройства не появились, вернитесь назад и проверьте выполненные действия. Проверьте файл настройки ядра еще раз и убедитесь, что выбрано подходящее устройство. Часто встречающиеся проблемы приведены в Разд. 7.2.2.1. Если всё пройдет удачно, звуковая карта заработает. Если CD-ROM или DVD-ROM привод правильно подключён к звуковой карте, вы можете вставить CD в привод и воспроизвести его при помощи cdcontrol 1. Различные приложения, например могут предоставить более дружественный пользователю интерфейс. Вы можете также установить приложения для прослушивания звуковых файлов MP3, как например Быстрым способом тестирования звуковой карты является отправка данных в файл может быть любым файлом. Результатом выполнения этой команды станет шум, который означает, что звуковая карта на самом деле работает. Замечание: Пользователям FreeBSD 4.X потребуется создать устройства звуковой карты перед тем, как ее использовать. Если в буфере системных сообщений карта появилась как вам необходимо выполнить от выполните то же самое, заменив создаст группу файлов устройств, которые будут использоваться различными звуковыми приложениями. Уровни громкости звука могут быть изменены командой mixer 8. Более подробная информация находится на странице справочной системы mixer 8. Одно или более устройств не были правильно созданы. Повторите приведенные выше шаги. Порт ввода-вывода указан неправильно. IRQ установлен неправильно. Убедитесь, что настройки в системе и на карте одинаковы. xxx: gus pcm not attached, out of memory Для использования устройства недостаточно памяти. не занято ли устройство другим приложением. Создать проблемы могут esound и поддержка звука в KDE. Предоставил Munish Chopra. Достаточно часто встречается необходимость иметь несколько источников звука, которые должны воспроизводить одновременно, например когда esound или artsd не поддерживают совместное использование звукового устройства с некоторым приложением. виртуальных звуковых каналов, которые могут быть настроены с помощью sysctl 8. Виртуальные каналы позволяют вам мультиплексировать каналы воспроизведения звуковой карты, смешивая звук в ядре. Для установки количества виртуальных каналов вы можете использовать две переменные sysctl, которые, если вы пользователь могут быть установлены таким образом: В этом примере выделяются четыре виртуальных канала, чего вполне достаточно для повседневного использования. оно может быть установлено сразу же, как только устройство было подключено. это количество виртуальных каналов, которые выделяются новому аудио устройству, когда оно подключается при помощи kldload 8. Так как модуль может быть загружен независимо от аппаратных драйверов, может указывать количество виртуальных каналов для любых устройств, которые будут подключены позже. Замечание: Количество виртуальных каналов не может быть изменено, если аудио устройство занято. Вам потребуется предварительно закрыть все программы, работающие со звуком, такие как медиа-проигрыватели или звуковые даемоны. Если вы не используете devfs 5, необходимо будет указать приложениям установлено в значение 4. Для системы, использующей devfs 5, вышеуказанные настройки будут сделаны автоматически прозрачно для пользователя. Предоставил Josef El-Rayes. Значения по умолчанию для различных каналов mixer жестко прописаны в исходных текстах драйвера pcm 4. Существует множество различных приложений и даемонов, которые позволяют устанавливать значения для mixer, которые они запоминают и выставляют каждый раз при запуске, но это не совсем правильное решение, нам нужны значения по умолчанию на уровне драйвера. Они могут быть установлены путем указания в Установит значение для канала volume в значение по умолчанию 100, как только будет загружен модуль pcm 4. Замечание: Поддерживается начиная с FreeBSD версии 5.3. Предоставил Chern Lee. MP3 MPEG Layer 3 Audio достигает качества звука, близкого к CD, и нет причин не воспользоваться им на вашей рабочей станции. XMMS X Multimedia System. Скины приложения XMMS так как графический интерфейс пользователя практически идентичен интерфейсу программы WinAMP от Nullsoft. XMMS поддерживает также собственные расширения. Интерфейс XMMS интуитивно понятен и включает в себя список песен, графический эквалайзер и многое другое. Те, кто знаком с WinAMP, найдут XMMS очень простым в использовании. является альтернативой, это MP3-проигрыватель для командной строки. High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3. Version 0.59r 1999/Jun/15. Written and copyrights by Michael Hipp. Uses code from various people. See README for more! THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK! Playing MPEG stream from MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo Перед тем как преобразовывать CD или дорожку CD в MP3, аудио данные на CD должны быть скопированы на жёсткий диск. Это можно сделать путём копирования данных CDDA CD Digital Audio в файл WAV. которая является частью пакета может быть использована для копирования аудио информации с CD, а также различной связанной информации. Когда музыкальный CD находится в приводе, следующая команда может быть выполнена под для того, чтобы скопировать весь CD в отдельные один на каждую дорожку WAV файлы: cdda2wav поддерживает ATAPI IDE приводы CDROM. Для копирования с IDE привода, укажите имя устройства вместо номеров SCSI. Например, для того, чтобы скопировать 7-ую аудио дорожку с IDE-привода: соответственно результату работы Для того, чтобы копировать отдельные дорожки, используйте параметр Этот пример показывает как скопировать 7-ю дорожку музыкального CD. Для того чтобы скопировать набор дорожек, например, с первой по седьмую, укажите диапазон: Утилита dd 1 также может быть использована для копирования аудио дорожек на приводах ATAPI, для того, чтобы узнать больше об этом, прочитайте Разд. 16.6.5. lame. Lame находится в дереве портов в подкаталоге Используя скопированные файлы WAV, следующая команда преобразует Частота 128 килобит является стандартом де факто для MP3. Многие, однако, используют более высокие частоты для получения лучшего качества, 160 или 192 килобита. Чем выше частота, тем больше дискового пространства будет занимать получаемый MP3, но качество будет выше. Параметр включает режим лучшее качество, но меньше скорость. Параметры, начинающиеся с указывают теги ID3, которые обычно содержат информацию о песне, включаемую в файл MP3. О дополнительных настройках преобразования можно узнать, прочитав страницу руководства lame. Для того, чтобы записать музыкальный CD из файлов MP3, они должны быть преобразованы в несжатый формат WAV. Как XMMS, так и mpg123 поддерживают вывод MP3 в распакованный формат файлов. Нажмите правой кнопкой мыши в главном окне XMMS для того, чтобы показать меню. если у вас локализованная версия XMMS в Измените расширение вывода на Disk Writer Plugin или Расширение записи на диск, если у вас локализованная версия XMMS. или Настройка, если у вас локализованная версия XMMS. Введите или выберите при помощи обзора каталог, в который следует сохранять распакованные файлы. Загрузите файл MP3 в XMMS как вы это делаете обычно. Установите громкость на 100% и отключите эквалайзер. XMMS будет выглядеть так же как и при обычном воспроизведении MP3, но самой музыки слышно не будет. На самом деле MP3 воспроизводится в файл. Убедитесь, что вы установили расширение вывода таким, как оно было до этого, для того, чтобы снова слушать MP3. XMMS записывает файл в формате WAV, в то время как mpg123 преобразовывает MP3 в простые аудио данные PCM. Оба формата могут быть использованы cdrecord для создания музыкальных CD. Для использования burncd 8 вам потребуются простые аудио данные PCM. Если же вы будете использовать файлы в формате WAV, то заметите небольшой щелчок в начале каждой аудио дорожки, этот щелчок - заголовок файла в формате WAV. Вы очень просто можете избавиться от него путём удаления заголовка WAV при помощи утилиты SoX она может быть установлена из порта Прочтите Разд. 16.6 для того, чтобы узнать больше о записи CD в FreeBSD. Предоставил Ross Lippert. Воспроизведение видео является очень новой и быстро развивающейся областью применения. Будьте терпеливы. Не всё будет работать так беспроблемно, как это было со звуком. Прежде, чем вы начнёте, определите модель видеокарты и чипсет, который она использует. Хотя Xorg и XFree86 поддерживают множество различных видеокарт, только их малая часть показывает хорошую скорость воспроизведения видео. Для того, чтобы получить список расширений, поддерживаемых X-сервером, который используется вашей видеокартой, используйте команду xdpyinfo 1 во время работы X11. Неплохо также иметь небольшой файл MPEG, который бы использовался как тестовый файл для проверки различных проигрывателей и настроек. Так как некоторые проигрыватели DVD будут искать носитель DVD как по умолчанию или быть жёстко настроены на него, возможно будет полезно сделать символические ссылки на правильные устройства: Для FreeBSD 5.X, которая использует devfs 5 рекомендуется немного другой набор ссылок: Обратите внимание, природа devfs 5 такова, что такие созданные вручную ссылки не сохраняются при перезагрузке системы. Для автоматического создания символических ссылок при каждой загрузке системы добавьте в Кроме того, декодирование DVD требует доступа к специальным функциям DVD-ROM, поэтому должен быть доступ на запись для устройств DVD. Некоторые из обсуждаемых портов полагаются на наличие некоторых параметров ядра для правильной сборки. Перед тем, как собирать порты, добавьте эти параметры в файл конфигурации ядра, пересоберите ядро и перезагрузите систему: в FreeBSD 5.X не существует. Для того, чтобы улучшить работу разделяемой памяти X11, рекомендуется увеличить значения некоторых переменных sysctl 8: Существует несколько возможных путей отображения видео под X11. Что именно будет действительно работать, во многом зависит от аппаратного обеспечения. Каждый из описанных методов будет работать с различным качеством на разном аппаратном обеспечении. Во-вторых, воспроизведение видео в X11, это тема, которой уделяется достаточно много внимания последнее время, и с каждой новой версией Xorg или XFree86 могут наблюдаться значительные улучшения. X11: обычный вывод X11 с использованием разделяемой памяти. XVideo: расширение интерфейса X11, которое поддерживает видео в любом объекте X11. SDL: the Simple Directmedia Layer. DGA: the Direct Graphics Access - - прямой доступ для графики. SVGAlib: низкоуровневый доступ к графике на консоли. Xorg и XFree86 4.X включают в себя расширение, называющееся XVideo также известное как Xvideo, Xv и xv, которое позволяет отображать видео прямо на объектах при помощи специального ускорения. Это расширение предоставляет очень хорошее качество воспроизведения даже на low-end машинах. Для того чтобы проверить, работает ли это расширение, используйте команду XVideo поддерживается вашей видеокартой, если результат выглядит приблизительно так: X-Video Extension version 2.2 screen 0 Adaptor 0: Savage Streams Engine number of ports: 1 port base: 43 operations supported: PutImage supported visuals: depth 16, visualID 0x22 depth 16, visualID 0x23 number of attributes: 5 XVCOLORKEY range 0 to 16777215 client settable attribute client gettable attribute current value is 2110 XVBRIGHTNESS range - 128 to 127 client settable attribute client gettable attribute current value is 0 XVCONTRAST range 0 to 255 client settable attribute client gettable attribute current value is 128 XVSATURATION range 0 to 255 client settable attribute client gettable attribute current value is 128 XVHUE range - 180 to 180 client settable attribute client gettable attribute current value is 0 maximum XvImage size: 1024 x 1024 Number of image formats: 7 id: 0x32595559 YUY2 guid: 59555932-0000-0010-8000-00aa00389b71 bits per pixel: 16 number of planes: 1 type: YUV packed id: 0x32315659 YV12 guid: 59563132-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV planar id: 0x30323449 I420 guid: 49343230-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV planar id: 0x36315652 RV16 guid: 52563135-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB packed depth: 0 red, green, blue masks: 0x1f, 0x3e0, 0x7c00 id: 0x35315652 RV15 guid: 52563136-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB packed depth: 0 red, green, blue masks: 0x1f, 0x7e0, 0xf800 id: 0x31313259 Y211 guid: 59323131-0000-0010-8000-00aa00389b71 bits per pixel: 6 number of planes: 3 type: YUV packed id: 0x0 guid: 00000000-0000-0000-0000-000000000000 bits per pixel: 0 number of planes: 0 type: RGB packed depth: 1 red, green, blue masks: 0x0, 0x0, 0x0 Следует заметить, что перечисленные форматы YUV2, YUV12 и т.п. не присутствуют в каждой реализации XVideo и их отсутствие может быть помехой для некоторых проигрывателей. X-Video Extension version 2.2 screen 0 no adaptors present то, возможно, XVideo не поддерживается для вашей видеокарты. Если XVideo не поддерживается вашей видеокартой, то это всего лишь означает, что будет сложнее получить приемлемые для воспроизведения видео вычислительные мощности. В зависимости от вашей видеокарты и процессора, возможно, вы сможете получить удовлетворительный результат. Возможно, вы должны будете прочитать о путях улучшения производительности в Разд. 7.4.3. SDL был задуман как уровень абстракции для разработки кросплатформенных приложений под Microsoft Windows, BeOS и UNIX, позволяя им эффективно использовать звук и графику. SDL предоставляет низкоуровневые абстракции для аппаратного обеспечения, и может быть более эффективным чем интерфейс X11. DGA это расширение X11, которое позволяет программам напрямую изменять кадровый буфер framebuffer без участия X-сервера. Поскольку DGA основывается на низкоуровневом доступе к памяти, программы, которые используют его должны исполняться от пользователя Расширение DGA может быть протестировано при помощи dga 1. Когда запущена, она изменяет цвета на экране при каждом нажатии клавиш. Для того, чтобы выйти из неё, используйте q. Этот раздел обсуждает программное обеспечение для работы с видео из Коллекции Портов FreeBSD. Воспроизведение видео является очень активной сферой разработок программного обеспечения и возможности различных приложений могут несколько отличаться от описанных здесь. Во-первых, важно помнить, что многие приложения для работы с видео, которые работают на FreeBSD, были разработаны как приложения Linux. Многие из этих приложений все еще бета-качества. Вот некоторые проблемы, которые могут встретиться в работе видео пакетов на FreeBSD: Приложение не может воспроизвести файл, который создало другое приложение. Приложение не может воспроизвести файл, который создало само. Одно и то же приложение на разных машинах, скомпилированное на каждой машине специально для неё, воспроизводит один и тот же файл различно. Кажущийся тривиальным фильтр, например фильтр изменения размеров изображения, приводит к очень плохим артефактам из-за неправильной функции изменения размера. Приложение часто не работает оставляет core-файл. Многие из этих приложений могут также проявлять линуксизмы. Так, это могут быть некоторые проблемы, связанные со способом реализации некоторых стандартных библиотек в дистрибутивах Linux, или некоторыми дополнительными возможностями ядра Linux, которые авторы приложений посчитали существующими везде. Эти проблемы не всегда могут быть обнаружены людьми, поддерживающими порт порты, вследствие чего могут возникнуть проблемы, сходные с нижеперечисленными: для того, чтобы определить характеристики процессора. Неправильное использование нитей threads, которое может привести к зависанию программы при завершении вместо нормального выхода. Программного обеспечения, которое обычно используется совместно с данным приложением, ещё нет в Коллекции Портов FreeBSD. Таким образом, разработчики этих приложений должны сотрудничать с людьми, поддерживающими порты, для того, чтобы минимизировать количество обходных путей, необходимых для портирования. MPlayer это недавно разработанный и быстро развивающийся проигрыватель видео. Задачами команды разработчиков MPlayer являются скорость и гибкость при работе на Linux и других Unix-системах. Проект был начал, когда его основатель стал сыт по горло плохой производительностью и качеством проигрывателей того времени. Некоторые могут сказать, что графический интерфейс был принесён в жертву рационализированному дизайну. Однако, как только вы привыкнете к опциям командной строки MPlayer и его управлению с клавиатуры, всё будет хорошо. MPlayer производит различные тесты аппаратного обеспечения во время процесса компиляции, в результате чего полученные исполняемые модули не могут быть перенесены с одной системы на другую. Поэтому важно собирать его из портов, а не использовать бинарный пакет. Также, при сборке вы можете указать различные установки при помощи параметров командной строки N - O - T - E Take a careful look into the Makefile in order to learn how to tune mplayer towards you personal preferences! For example, make WITHGTK1 builds MPlayer with GTK1-GUI support. If you want to use the GUI, you can either install/usr/ports/multimedia/mplayer-skins or download official skin collections from Параметры порта по умолчанию должны подходить большинству пользователей. Однако, если вам необходим кодек XviD, необходимо указать в командной строке параметр Устройство DVD по умолчанию также может быть указано в командной строке параметром по умолчанию используется На время написания данного документа порт MPlayerа собирает и устанавливает свою документацию в формате HTML и два исполняемых файла, который является утилитой для перекодировки видео. Документация к MPlayer очень информативна. Если читатель найдет информацию этой главы о аппаратном обеспечении для поддержки видео и интерфейсах недостаточной, то документация MPlayer будет очень хорошим дополнением. Обязательно уделите время чтению документации MPlayer, если вам нужна информация о поддержке видео под UNIX. в своем домашнем каталоге. Для того, чтобы его создать, выполните следующие действия: перечислены в страничке руководства mplayer. За более подробной информацией вы можете обратиться к документации в формате HTML. В этом разделе мы опишем несколько самых распространённых случаев использования mplayer. Для того, чтобы воспроизвести файл, например через один из многих видеоинтерфейсов, используйте параметр Стоит испробовать все варианты интерфейсов, так как их производительность зависит от множества факторов и будет заметно меняться в зависимости от аппаратного обеспечения. Для того, чтобы воспроизвести DVD, замените является номером дорожки, с которой следует начать воспроизведение и файл устройства привода DVD. Например, для того, чтобы воспроизвести дорожку 3 с По умолчанию, это устройство Дополнительную информацию можно найти в Для того, чтобы остановить, приостановить или продолжить воспроизведение, воспользуйтесь привязкой клавиш, информация о которой может быть получена посредством запуска либо на страничке документации. Дополнительные, достаточно важные параметры воспроизведения: которые включают полноэкранный режим и который улучшает производительность на медленных системах. Для того, чтобы командная строка запуска mplayer не становилась слишком большой, пользователь может создать файл файлы. Для того, чтобы скопировать вторую дорожку DVD необходимо выполнить следующую команду: будет представлять собой MPEG, с которым можно производить различные действия при помощи программ, которые будут описаны далее в этом разделе. было бы неплохо ближе ознакомится с его параметрами, используя документацию в формате HTML. Также существует страничка справочника mplayer, но она не очень полезна без HTML документации. Существует бесчисленное множество способов улучшения качества, снижения битрейта и изменения формата; и некоторые из этих приёмов могут влиять на производительность. Ниже приведено несколько примеров использования Во-первых, простое копирование: Неправильная комбинация параметров командной строки может привести к появлению файлов, которые невозможно будет воспроизвести даже Поэтому, если вы хотите скопировать изображение в файл, лучше использовать только параметр Для того, чтобы преобразовать Эта команда создаст файл, воспроизводимый запущенный от пользователя будет преобразовывать дорожку DVD напрямую. Так как первый раз, скорее всего, вы будете недовольны полученными результатами, всё же рекомендуется копировать дорожку в файл и работать затем с файлом. xine - это большой проект, в задачи которого входит не только создание решения для видео все-в-одном, но и создание базовой библиотеки с возможностью расширения путем использования плагинов. Поставляется он как в виде порта, так и в виде пакета, xine все еще несовершенен, но все-таки это хорошее начало. На практике xine требует либо быстрого процессора с быстрой видеокартой или поддержки расширения XVideo. Графический интерфейс можно использовать, но он все еще немного неуклюж. На время написания этого документа в поставке xine не существовало модуля ввода, который бы мог воспроизводить DVD, закодированные по алгоритму CSS. Существуют сборки, в которых есть такой модуль, но ни одна из них не входит в Коллекцию Портов FreeBSD. По сравнению с MPlayer, xine является более дружелюбным к пользователю, но, в то же время, скрывает более тонкие настройки и управление от пользователя. Также xine лучше работает на XVideo интерфейсах. По умолчанию, xine запускается с графическим интерфейсом. Для открытия файлов используются меню. В качестве альтернативы можно использовать его для запуска файла непосредственно, без GUI, следующей командой: Приложение transcode не является проигрывателем. Это набор инструментов для преобразования файлов. При помощи transcode можно объединять видеофайлы, исправлять поврежденные файлы, использовать инструменты командной строки для работы с потоками ввода/вывода Так же, как и MPlayer, transcode является очень экспериментальным программным продуктом, который необходимо собирать из порта Этот порт имеет огромное количество параметров для команды при сборке. Рекомендуется: для преобразования видео, в результате которого изменяется размер изображения. Первый пример преобразовывает данные в openDIVX AVI файл, в то время как второй использует более переносимый формат MPEG. которые тоже устанавливаются в систему, документации очень немного. Тем не менее, для получения краткой справки по использованию команд, может быть задан параметр работает заметно медленнее, но имеет больше шансов создать более переносимый файл, который можно будет воспроизвести на большем количестве систем. Например MPEG, созданные при помощи Различные пакеты видео программ для FreeBSD интенсивно разрабатываются. Очень возможно, что в ближайшем будущем многие обсуждаемые здесь проблемы разрешатся. Это займет время, и те, кто желает получить максимум от аудио/видео возможностей FreeBSD, должны будут собирать необходимые знания из нескольких списков часто задаваемых вопросов и обучающих статей, а также использовать различные приложения. Этот раздел существует для того, чтобы читатель мог получить указания на несколько источников дополнительной информации. MPlayer очень содержательна в техническом плане. Возможно, эти документы должны использоваться любым человеком, желающим получить высокий уровень знаний о видео на UNIX системах. Список рассылки MPlayer враждебен для любого, кто не потрудился прочитать документацию, так что, если у вас есть желание сообщать о найденных ошибках, прочитайте вначале документацию. xine HOWTO содержит главу об улучшении производительности, которая применима к любому проигрывателю. Наконец, существует несколько многообещающих приложений, которые читатель может испробовать: Ogle, для которого также существует порт пакет с открытыми текстами для распространения DVD контента. Первоначально предоставил Josef El-Rayes. Улучшил и адаптировал Marc Fonvieille. ТВ тюнеры предназначены для просмотра широковещательного или кабельного телевидения на компьютере. Большинство тюнеров поддерживают композитный видео вход RCA или S-video, а некоторые из них поставляются с FM радио тюнером. FreeBSD поддерживает PCI ТВ тюнеры, использующие Brooktree Bt848/849/878/879 или Conexant CN-878/Fusion 878a Video Capture Chip через драйвер bktr 4. Вы должны также убедиться, что тюнер поддерживается; обратитесь к странице справочника bktr 4 за списком поддерживаемых тюнеров. Для использования карты потребуется загрузить драйвер bktr 4, что можно сделать, добавив в В качестве альтернативы, вы можете статически скомпилировать ядро с поддержкой ТВ тюнера; добавьте следующие строки в файл конфигурации ядра: Эти дополнительные драйвера устройств необходимы, поскольку компоненты карты соединены через шину I2C. Затем соберите и установите новое ядро. Как только поддержка тюнера будет добавлена в систему, перегрузите компьютер. Во время загрузки TV карта должна отобразить примерно такие строки: bktr0: BrookTree 848A mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0 iicbb0: I2C bit-banging driver on bti2c0 iicbus0: Philips I2C bus on iicbb0 master-only iicbus1: Philips I2C bus on iicbb0 master-only smbus0: System Management Bus on bti2c0 bktr0: Pinnacle/Miro TV, Philips SECAM tuner. Конечно, эти сообщения будут различаться на разном оборудовании. Тем не менее, проверьте, что тюнер определяется правильно; возможна перезапись параметров, определенных ядром, с помощью sysctl 8 MIB и параметров в файле настройки ядра. Например, если вы хотите указать, что это Philips SECAM тюнер, добавьте следующую строку к файлу настройки ядра: за более детальной информацией о доступных параметрах если вы работаете в FreeBSD 4.X, вместо предоставляет возможности ТВ-в-окне и захвата изображений/аудио/видео. это также приложение для ТВ тюнера, с теми же, что и у fxtv возможностями. раскодирует и отображает видеотекст/телетекст. приложение для использования с FM радио тюнером, поставляемым с некоторыми ТВ тюнерами. это удобное приложение для радио тюнеров. В коллекции портов FreeBSD можно найти и другие приложения. Если вы столкнулись с какой-либо проблемой, связанной с ТВ тюнером, проверьте в первую очередь поддержку микросхемы захвата видео и тюнера драйвером bktr 4, а также правильность установки параметров. За дальнейшей поддержкой и с вопросами о ТВ тюнере вы можете обращаться в freebsd-multimedia и использовать его архивы. Написана Marc Fonvieille. Перевод на русский язык: Дмитрий Морозовский. FreeBSD, как и прочие современные операционные системы, поддерживает сканеры. Стандартный доступ к сканерам обеспечивается программой SANE Scanner Access Now Easy, обеспечивающей универсальный интерфейс API и доступной в коллекции портов FreeBSD. Для общения со сканерами SANE использует некоторые драйвера устройств FreeBSD. FreeBSD поддерживает сканеры с интерфейсом как SCSI, так и USB. Убедитесь, что ваш сканер поддерживается SANE перед тем, как приступить к конфигурации. Для SANE существует список поддерживаемых устройств где находится информация о поддержке сканера и статусе этой поддержки. Кроме того, страница справочника uscanner 4 также перечисляет поддерживаемые устройства. Как уже отмечалось, поддерживаются как SCSI, так и USB сканеры. В зависимости от интерфейса вашего сканера требуется поддержка разных драйверов устройств. включает в себя драйвера, необходимые для поддержки USB сканеров. Если вы компилируете собственное ядро, убедитесь, что в его конфигурации присутствуют строки В зависимости от чипсета USB, встроенного в вашу материнскую плату, потребуется лишь один из драйверов однако, наличие обеих строк в конфигурации ядра никому не повредит. Если вы не хотите перестраивать ядро, и при этом ваше ядро не является стандартным После перезагрузки с новым ядром или загрузки модуля подключите ваш USB сканер. В буфере системных сообщений dmesg 8 должно появиться сообщение о найденном устройстве, например: uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2 Замечание: В FreeBSD 4.X для корректного распознавания некоторых USB устройств должен быть запущен даемон USB usbd 8. Для этого добавьте строку Если ваш сканер имеет интерфейс SCSI, важно знать, к какому контроллеру он подключен. В зависимости от контроллера потребуются различные драйвера в файле конфигурации ядра. Стандартное ядро поддерживает большинство распространенных SCSI-контроллеров. Внимательно прочитайте файл и добавьте необходимые строки в файл конфигурации вашего ядра. Помимо строки для драйвера адаптера, вам потребуются следующие строки: После сборки и загрузки нового ядра, в буфере системных сообщений должны появиться строки о вашем сканере, например: pass2 at aic0 bus 0 target 2 lun 0 pass2: AGFA SNAPSCAN 600 1.10 Fixed Scanner SCSI-2 device pass2: 3.300MB/s transfers Если сканер не был включен в момент загрузки, его можно принудительно опознать, выполнив сканирование SCSI шины при помощи команды camcontrol 8: IBM DDRS-34560 S97B at scbus0 target 5 lun 0 pass0, da0 IBM DDRS-34560 S97B at scbus0 target 6 lun 0 pass1, da1 AGFA SNAPSCAN 600 1.10 at scbus1 target 2 lun 0 pass3 PHILIPS CDD3610 CD-R/RW 1.00 at scbus2 target 0 lun 0 pass2, cd0 Более подробная информация о устройствах SCSI доступна на страницах справочника scsi 4 и camcontrol 8. Система SANE состоит из двух частей: аппаратной поддержки backend, и программной поддержки frontend, Первая часть обеспечивает собственно доступ к сканеру. Список поддерживаемых устройств SANE содержит информацию о необходимом вам аппаратном модуле. Вторая часть обеспечивает графический интерфейс для сканирования xscanimage. после чего при помощи команды found SCSI scanner AGFA SNAPSCAN 600 1.10 at/dev/pass3 В выводе должны присутствовать интерфейс сканера и имя используемого устройства. Производитель и модель сканера могут отсутствовать: это нормально. Замечание: Некоторым USB сканерам может потребоваться загрузка прошивки. Подробности смотрите в страницах справочника драйвера сканера, sane-find-scanner 1 и sane 7. Теперь необходимо убедиться, что сканер опознан программой графического интерфейса. В состав системы SANE входит утилита scanimage 1, позволяющая работать со сканером из командной строки. Опция Отсутствие сообщений или сообщение об отсутствии устройств означает, что утилита scanimage 1 не смогла идентифицировать сканер. В этом случае вам потребуется отредактировать файл конфигурации аппаратного модуля и указать устройство, используемое сканером. Все файлы настройки находятся в каталоге Такие проблемы присущи некоторым моделям USB сканеров. Например, в случае USB сканера, описанного в Разд. 7.6.2.1, утилита Сканер обнаружен корректно, он использует интерфейс USB и доступен через устройство Теперь попробуем идентифицировать его: No scanners were identified. If you were expecting something different, check that the scanner is plugged in, turned on and detected by the sane-find-scanner tool if appropriate. Please read the documentation which came with this software README, FAQ, manpages. Поскольку сканер не идентифицирован, нам потребуется изменить файл конфигурации В нашем примере использован сканер EPSON Perfection 1650, так что мы знаем, что будет использоваться драйвер Не забудьте прочитать комментарии в файле конфигурации. Требуемые изменения весьма просты: закомментируйте все строки, описывающие интерфейсы, не соответствующие интерфейсу вашего сканера в нашем случае, все строки, начинающиеся со наш сканер использует интерфейс USB, и добавьте в конец файла строку, содержащую интерфейс и имя использованного устройства. Мы добавим строку Пожалуйста, прочтите комментарии в файле конфигурации, а также страницы справочника для более полной информации. Теперь мы можем проверить, что наш сканер опознан: Наш USB сканер опознан. Не столь важно, что имя и номер модели не совпадают, главное, что используются правильные имя устройства и драйвер: опознала сканер, конфигурация завершена. Все готово к сканированию. Хотя утилита scanimage 1 позволяет производить сканирование из командной строки, как правило, для сканирования предпочтительнее использовать графический интерфейс. Для этого в состав SANE входит простая, но эффективная утилита Эта программа поддерживает такие расширенные возможности, как разные режимы сканирования фотокопия, факс и т.п., цветокоррекцию, потоковое сканирование и другие. Оба приложения пригодны для использования в качестве плагинов сканирования для GIMP. Вам может потребоваться дать доступ к сканеру другим пользователям. Для этого необходимо разрешить доступ на чтение и запись к файлу устройства, обслуживающему сканер. В нашем примере USB сканер использует устройство Добавление пользователя За подробностями обращайтесь к странице справочника pw 8. Вам также потребуется установить нужные права доступа 0660 или 0664 к устройству поскольку по умолчанию группа может лишь читать из него. Это достигается добавлением следующей строки в файл Подробную информацию о правах на файлы устройств вы найдете на странице справочника devfs 8. В FreeBSD 4.X группа по умолчанию имеет права как на чтение, так и на запись, к устройству Замечание: Разумеется, по соображениям безопасности, вы должны как следует подумать, прежде чем добавлять пользователя в другие группы, в особенности в группу Обновил и реструктурировал Jim Mock. Предоставил Jake Hamby. Переведено Александром Коваленко. Ядро - - это основная часть операционной системы FreeBSD. Оно ответственно за управление памятью, параметры безопасности, работу с сетью, доступ к дискам и многое другое. Несмотря на то, что FreeBSD становится всё более динамически конфигурируемой, иногда приходится собирать собственное ядро. Почему вам может понадобиться сборка собственного ядра. Как написать файл конфигурации ядра или изменить существующий. Как использовать файл конфигурации ядра для того, чтобы создать и собрать новое ядро. Как установить новое ядро. которые могут оказаться необходимы. Что делать, если что-то не работает или работает не так, как должно. Все команды, приводимые в этой главе в качестве примера, должны выполняться от пользователя Традиционно в FreeBSD использовалось так называемое монолитное ядро. Это означает, что ядро - - это одна большая программа, которая поддерживает фиксированный набор устройств и в случае, если необходимо изменить его поведение, требуется сборка нового ядра и перезагрузка компьютера уже с новым ядром. На сегодняшний день FreeBSD быстро продвигается к модели, в которой большая часть функциональности содержится в модулях, которые могут быть при необходимости динамически загружены и выгружены из ядра. Это позволяет ядру использовать устройства, которые внезапно появились в системе например, устройства PCMCIA в лэптопе или добавлять новую функциональность в ядро, которая не была необходима в момент первоначальной сборки ядра. Такой подход известен как модульность ядра. Несмотря на это, всё ещё иногда бывает необходимо, чтобы некоторая функциональность была вкомпилирована в ядро статически. В некоторых случаях это продиктовано тем, что эта функциональность настолько сильно привязана к ядру, что не может быть динамически загружаемой. В других случаях это может быть просто потому, что никто не уделил время написанию динамически загружаемого модуля для этой функциональности. Сборка собственного ядра - - один из наиболее важных ритуалов, через который должен пройти практически любой пользователь BSD. Несмотря на длительность этого процесса, ваша FreeBSD останется только в выигрыше. В отличие от ядра которое должно поддерживать широкий спектр аппаратного обеспечения, собственное ядро содержит поддержку аппаратного обеспечения только вашего компьютера. Это может давать следующие преимущества: Меньшее время загрузки. Поскольку ядро будет пытаться определить только то аппаратное обеспечение, которое установлено в вашем компьютере, время, которое потребуется системе для загрузки, может значительно уменьшиться. Уменьшение использования памяти. Собственное ядро часто использует меньше памяти, чем ядро что очень важно, поскольку ядро всегда находится в физической памяти. Именно по этой причине собственное ядро особенно полезно при использовании систем с малым объемом оперативной памяти. Поддержка дополнительного аппаратного обеспечения. Собственное ядро позволяет вам добавить поддержку устройств, отсутствующих в ядре Во-первых, давайте сделаем краткий обзор каталога, в котором будет происходить сборка ядра. Все каталоги, которые будут упоминаться, будут относительными по отношению к основному каталогу который также доступен как каталог Этот каталог содержит множество подкаталогов, представляющих собой различные части ядра, но наиболее важным для нас будет каталог в котором вы будете редактировать конфигурационный файл ядра и в котором находится каталог где будет собираться ваше ядро. альтернативная ветвь аппаратного обеспечения, популярная в Японии. Все, что находится внутри каталога определенной архитектуры, относится только к этой архитектуре; остальной код является машинно независимым и общим для всех платформ, на которые FreeBSD может быть потенциально портирована. Обратите внимание на логическую структуру каталогов, в которой каждое поддерживаемое устройство, каждая файловая система и каждая опция размещается в своём собственном каталоге. Версии FreeBSD до 5.X поддерживали только архитектуры В примерах этой главы подразумевается, что вы используете архитектуру i386. Если это не так, измените каталоги, указанные в примерах, в соответствии с архитектурой вашей системы. это означает, что исходные тексты ядра не были установлены. Наиболее простой способ установить их - запустить в FreeBSD версий старше, чем 5.2 как выбрать Configure, потом Distributions, потом src, потом sys. Если вы испытываете отвращение к sysinstall и у вас есть доступ к официальному FreeBSD CDROM, вы также можете установить исходные тексты при помощи командной строки: Затем, перейдите в каталог в файл с выбранным вами именем. Например: По традиции имя состоит из букв в верхнем регистре, и если вы поддерживаете несколько компьютеров FreeBSD на различном оборудовании, хорошая идея добавлять это имя к имени хоста. Мы назвали ядро может быть плохой идеей. Если вы испытываете проблемы, их можно решить удалив и начав все с начала. После этого обычно требуется несколько секунд, чтобы понять, что вы удалили собственный файл настройки ядра. Не редактируйте непосредственно он может быть также перезаписан и при следующем обновлении дерева исходных текстов, и изменения ядра будут потеряны. Вы можете сохранить файл конфигурации ядра в другом месте, а затем создать символическую ссылку на этот файл в каталоге в своём любимом текстовом редакторе. Если вы только начинаете, единственным доступным редактором скорее всего будет vi, который слишком сложен для того, чтобы описать его здесь, но в библиографии перечислено множество книг, в которых его использование хорошо освещено. Однако FreeBSD предоставляет более простой редактор ee, который, если вы - - новичок, подойдёт вам больше всего. Не стесняйтесь изменять строки комментариев в начале файла, с тем, чтобы отобразить вашу конфигурацию или изменения, которые вы сделали по сравнению с Если вам приходилось собирать ядро для SunOS или какой-либо другой операционной системы типа BSD, многое из того, что содержится в этом файле будет очень знакомо вам. Если же вы, напротив, использовали другую операционную систему, такую как DOS, файл конфигурации может показаться вам крайне сложным, поэтому следуйте инструкциям в разделе Конфигурационный файл медленно и внимательно. перед обновлением. В этом файле описаны все важные вопросы и области исходного кода, требующие особого внимания. всегда соответствует версии ваших исходных текстов FreeBSD, поэтому является более актуальным источником информации, чем это руководство. Теперь вы должны скомпилировать ядро. Существует два способа, которые позволяют это сделать. Какой из них выбрать, зависит от того, почему вам понадобилось пересобирать ядро и версии FreeBSD, которую вы используете. Если вы установили только исходные тексты ядра, используйте способ 1. Если вы используете FreeBSD версии более ранней, чем 4.0 и вы не обновляете систему до FreeBSD 4.0 или выше, используя Если вы собираете новое ядро, не обновляя исходные тексты возможно, для того, чтобы добавить новую опцию, например вы можете использовать любой способ. то есть не запускали CVSup, CTM, или не использовали anoncvs, возможно использование последовательности Способ 1. Сборка ядра традиционным способом Запустите config 8 для того, чтобы сгенерировать исходные тексты ядра. Перейдите в каталог, в котором будет собираться ядро. Запущенный как показано выше config 8 выведет имя этого каталога. Для FreeBSD версий более ранних, чем 5.0, вместо этого используйте: Способ 2. Сборка ядра новым способом. Замечание: В FreeBSD 4.2 и в более ранних, вам будет необходимо заменить 4.2-STABLE, исходные тексты которой были обновлены до 2 февраля 2001 года, не понимает параметра а старое ядро будет перемещено в Теперь перезагрузите систему для того, чтобы использовать новое ядро. Если что-то пойдёт не так, вы можете обратиться к разделу Решение проблем в конце этой главы, который может оказаться полезен. Не забудьте прочитать раздел, который объясняет как исправить ситуацию, когда ядро не загружается. Замечание: В FreeBSD 4.X и более ранних, ядро устанавливается в а старое ядро сохраняется в Другие файлы, относящиеся к процессу загрузки, такие как загрузчик loader 8 и его конфигурационные файлы, размещаются в Модули сторонних производителей могут быть помещены в хотя пользователи должны знать, что очень важно, чтобы модули были синхронизированы с собранным ядром. Модули, не рассчитанные на работу с собранным ядром, могут вызвать нестабильность и некорректность работы. Замечание: Если вы добавили новые устройства такие, как звуковая карта и используете FreeBSD 4.X или более ранние версии, то, возможно, вам понадобится создать некоторые файлы устройств в каталоге перед тем, как вы сможете их использовать. За дополнительной информацией вы можете обратиться к разделу Создание файлов устройств далее в этой главе. Обновил для FreeBSD 5.X Joel Dahl. Формат конфигурационного файла достаточно прост. Каждая строка представляет собой ключевое слово и один или более аргументов. Для простоты большинство строк содержат только один аргумент. Всё, что следует за символом является комментарием и игнорируется. Следующие разделы описывают каждый параметр, в основном в порядке, в котором они появляются в хотя некоторые родственные параметры сгруппированы вместе в одном разделе например Работа с сетью, даже если на самом деле они разбросаны по всему файлу За полным списком архитектурно-зависимых параметров и устройств обратитесь к файлу Архитектурно независимые параметры находятся в служит двум целям: предоставить справочное руководство для выбора параметров ядра при сборке ядра по умолчанию и предоставить конфигурацию ядра с параметрами, установленными в значения, отличные от значений по умолчанию настолько много параметров, насколько это возможно. Это было сделано по той причине, что такая конфигурация хорошо помогала и все еще помогает при тестировании нового кода и изменений в существующем коде, поскольку этот код и изменения могут конфликтовать с другими частями ядра. Однако, инфраструктура конфигурации ядра в 5.X прошла через множество серьезных изменений; Одно из таких изменений - перемещение параметров конфигурации драйверов в и теперь они могут быть изменены и загружены динамически во время загрузки системы, а в их больше нет. По этой и другим причинам и в основном по-прежнему соответствует своему назначению: информирование пользователей о доступных параметрах. В FreeBSD 5.X и более поздних версиях вы все еще можете создать собираемый с различными дополнительными комментариями, которые могут понадобиться для ясности. Этот пример должен совпадать с вашей копией в GENERIC - - Generic kernel configuration file for FreeBSD/i386 For more information on this file, please read the handbook section on Kernel Configuration Files: The handbook is also available locally in/usr/share/doc/handbook if youve installed the doc distribution, otherwise always see the FreeBSD World Wide Web server for the latest information. An exhaustive list of options and more detailed explanations of the device lines is also present in the././conf/NOTES and NOTES files. If you are in doubt as to the purpose or necessity of a line, check first in NOTES. FreeBSD:/repoman/r/ncvs/src/sys/i386/conf/GENERIC, v 1.413 2004/08/11 01:34:18 rwatson Exp любого ядра, которое вы будете собирать: Это архитектура машины. Она должна быть одной из следующих: Эта опция указывает тип процессора, который используется в вашей системе. В конфигурационном файле может быть несколько вхождений этой опции например, если вы не уверены, какой из типов процессора необходимо использовать - - но для собственного ядра лучше указывать только тот тип процессора, который установлен в вашей системе. Если вы не уверены, какой тип необходимо использовать вам, вы можете воспользоваться файлом чтобы увидеть протокол загрузки системы. все ещё существует в исходных текстах FreeBSD, но по умолчанию отключена в ветках - STABLE и - CURRENT. Это означает, что для того, чтобы установить FreeBSD на систему с процессором i386, вы можете использовать следующие способы: Установить более раннюю версию FreeBSD и пересобрать систему из исходных текстов в соответствии с Разд. 8.3. за дополнительной информацией можете обратиться к Разд. 19.5. Сделать собственный релиз FreeBSD, который включает поддержку в ядре установочного CD-ROM. Первый из этих способов, возможно, наиболее простой из всех предложенных, но вам понадобится много дискового пространства, что может быть затруднительно для систем класса 386. Этот параметр определяет метку ядра. Необходимо, чтобы она соответствовала названию файла конфигурации ядра, например если вы следовали инструкциям в предыдущих примерах. Значение, которое вы присвоите параметру будет выводиться в процессе загрузки, поэтому полезно давать новым ядрам другие имена для того, чтобы отличать их от обычного ядра например, если вы хотите собрать экспериментальное ядро. определяет размеры многих важных системных таблиц. Это число должно быть приблизительно равно количеству пользователей, одновременно использующих вашу систему. Начиная с FreeBSD 4.5, система автоматически настроит этот параметр если в конфигурационном файле вы установили его в значение если не установлено другое значение. Если вы используете FreeBSD версии более ранней, чем 4.5, или хотите самостоятельно управлять этим значением, рекомендуется устанавливать значение равным минимум 4, особенно если вы используете X Window System или компиляторы. Причина этого кроется в том, что одной из основных таблиц, размер которой определяет является максимальное количество процессов, которое устанавливается равным таким образом, если вы установите равным 1, то получите возможность выполнять максимум 36 одновременных процессов, включая 18 или около того процессов, которые система запускает при загрузке, и 15 или около того вы создадите, когда запустите X Window System. Даже такая простая задача, как чтение страницы справочной системы man 1, потребует запуска девяти процессов, для того, чтобы использовать фильтры, распаковать и просмотреть её. Установка в значение 64 позволит запускать до 1044 одновременных процессов, что должно быть достаточно для большинства применений. Однако, если вы видите ошибку proc table full, когда пытаетесь запустить программу или поддерживаете сервер с большим количеством пользователей такой, как вы всегда можете увеличить это число и пересобрать ядро. не ограничивает количество пользователей, которые могут зайти на вашу машину. Он просто устанавливает размеры различных таблиц в разумные значения, учитывая максимальное количество пользователей, которое будет у вас в системе и как много процессов будет запускать каждый из них. Параметр ядра, который действительно ограничивает количество одновременных удалённых сессий и окон X терминала, это С FreeBSD 5.X, вам не нужно беспокоиться об этом номере, поскольку драйвер pty 4 автоклонируемый; используйте в файле конфигурации строку Floating point support - do not disable. device npx это интерфейс к модулю операций с плавающей точкой в FreeBSD, который может использовать как аппаратный сопроцессор, так и программную эмуляцию. Этот параметр является обязательным. Стандартное устройство обратной связи для TCP/IP. Если вы запускаете telnet или FTP на то соединение пройдёт через это устройство. Этот параметр обязателен. В FreeBSD 4.X вам потребуется использовать Все остальные параметры более или менее опциональны. Обращайте внимание на информацию о каждой опции, которая размещается рядом с ней. To statically compile in device wiring instead of hints Default places to look for devices. В FreeBSD 5.X и более поздних 5 используются для настройки параметров драйверов устройств. Путь по умолчанию, который loader 8 будет проверять при загрузке - вы можете вкомпилировать эти параметры статически в ваше ядро. В этом случае не требуется создавать файл Обычный процесс сборки FreeBSD не включает генерацию отладочной информации при сборке ядра и удаляет большую часть вспомогательной информации symbols после того как ядро слинковано для того, чтобы сэкономить немного места. Если вы собираетесь проводить тестирование ядер в ветви - CURRENT или разрабатывать собственные правки для ядра FreeBSD, возможно вам потребуется раскомментировать эту строку. Тем самым вы включите использования опции которая включает генерацию отладочной информации gcc 1. Того же самого эффекта можно добиться используя опцию config 8 в случае, если вы используете традиционный способ сборки ядра обратитесь к Разд. 8.3 за дополнительной информацией. Традиционный планировщик FreeBSD. В зависимости от загруженности системы, вы можете повысить производительность, используя новый планировщик FreeBSD ULE, который был специально разработан для SMP, но отлично работает также и на однопроцессорных системах. Если вы хотите попробовать этот планировщик, замените в файле конфигурации ядра. Поддержка сетевых возможностей. Оставьте эту опцию включенной, даже если вы не планируете подключаться к сети. Большинство программ требуют, чтобы работал хотя бы интерфейс обратной связи loopback т.е. создание сетевых соединений внутри вашего ПК, так что эта опция в принципе является обязательной. Включает поддержку коммуникационных протоколов IPv6. Включает поддержку основной файловой системы. Не удаляйте эту опцию, если вы планируете загружаться с жесткого диска. Этот параметр включает в ядре технологию Soft Updates, которая повышает скорость записи на диски. Несмотря на то, что эта технология включена в ядре, она должна быть включена для отдельных дисков. Просмотрите вывод команды mount 8 чтобы определить, включены ли Soft Updates для дисков вашей системы. Если вы не увидите параметр вам будет необходимо активировать его при помощи команды tunefs 8 для существующих файловых систем или команды newfs 8 для новых файловых систем. Этот параметр, присутствующий только в FreeBSD 5.X, включает в ядре поддержку списков управления доступом ACL. Основывается на использовании расширенных атрибутов и UFS2 включены по умолчанию и не должны выключаться в случае, если они ранее использовались на файловой системе, так как это удалит списки управления доступом и изменит то, как защищены файлы, непредсказуемым образом. Эта опция включает функциональность, которая повышает скорость дисковых операций на больших каталогах в обмен на использование дополнительной памяти. Для большого сервера или рабочей станции рекомендуется оставить ее включенной, и выключить для системы, для которой более приоритетна память, чем скорость доступа к дискам, например для брандмауэра. Этот параметр включает поддержку использования дисков в памяти для корневой файловой системы. options NFSCLIENT Network Filesystem Client options NFSSERVER Network Filesystem Server options NFSROOT NFS usable as/, requires NFSCLIENT Сетевая файловая система. Если вы не планируете монтировать разделы с файлового сервера UNIX через TCP/IP, вы можете исключить этот параметр из конфигурационного файла ядра. Файловая система MS-DOS. Если вы не собираетесь монтировать форматированный в DOS раздел жесткого диска в момент загрузки, вы можете безопасно закомментировать этот параметр. Необходимый модуль будет автоматически загружен, когда вы в первый раз смонтируете раздел DOS, так, как это описано ниже. Кроме того, замечательный пакет Файловая система ISO 9660 для компакт-дисков. Если у вас нет привода CDROM или вы будете лишь изредка монтировать компакт-диски с данными, закомментируйте эту строку, так как необходимый модуль будет загружен автоматически при первом монтировании компакт-диска с данными. Для использования звуковых компакт-дисков эта файловая система не потребуется. Файловая система процессов. Это виртуальная файловая система монтируемая в которая позволяет таким приложениям, как ps 1 выдавать вам больше информации о запущенных процессах. В FreeBSD 5.X и выше, использование не требуется, так как большинство мониторинговых и отладочных инструментов было адаптировано для работы без в отличие от FreeBSD 4.X, новые системы FreeBSD 5.X по умолчанию не монтируют файловую систему процессов. Более того, ядра 6.X-CURRENT, которые используют должны также включать поддержку Этот параметр делает возможным наличие большого количества разделов на одном диске. options COMPAT43 Compatible with BSD 4.3 KEEP THIS! Совместимость с 4.3BSD. Не выключайте эту опцию; некоторые приложения будут вести себя странно, если этой опции не будет в ядре. Эта опция требуется в FreeBSD 5.X для платформ i386 и Alpha для поддержки приложений, собранных на более старых версиях FreeBSD, которые используют старые интерфейсы вызовов. Рекомендуется использовать данную опцию на всех системах на платформах i386 и Alpha, на которых могут запускаться старые приложения; платформы, поддержка которых появилась только в FreeBSD 5.X, например ia64 и Sparc64, не требуют этой опции. Этот параметр заставляет ядро приостановиться на 15 секунд перед тем, как идентифицировать каждое устройство SCSI в вашей системе. Если у вас установлены только жесткие диски IDE, вы можете игнорировать эту опцию, в противном случае, возможно, вы захотите уменьшить это число, например до 5 секунд, для того, чтобы ускорить загрузку. Естественно, что если вы сделаете это, а у FreeBSD появятся проблемы с распознанием ваших устройств SCSI, необходимо будет увеличить этот параметр. Включает поддержку трассировки процессов, что удобно при отладке. Этот параметр предоставляет поддержку разделяемой памяти System V. Наиболее распространенное применение этого - - расширение XSHM в X, которое многие приложения, интенсивно работающие с графикой, будут автоматически использовать для повышения скорости работы. Если вы используете X, эта опция будет необходима. Поддержка сообщений System V. Этот параметр добавляет в ядро всего лишь несколько сотен байт. Поддержка семафоров System V. Не настолько часто используемая возможность, но в ядро добавляет всего несколько сотен байт. покажет все процессы, которые используют любую из этих возможностей System V. Расширения реального времени, добавленные 1993 POSIX. Определенные приложения из коллекции используют их, например StarOffice. Этот параметр относится к клавиатуре. Он добавляет CDEV в Распечатка регистров для облегчения отладки. options ADAPTIVEGIANT Giant mutex is adaptive. Giant - - имя механизма защиты спящего мьютекса для крупных наборов ресурсов ядра. На нынешний момент Giant представляется фактически непригодным для использования в связи с серьезными потерями в производительности, и активно заменяется на механизмы, защищающие отдельные ресурсы ядра. Параметр включает Giant в число адаптивных мьютексов: в случае, когда нить ядра нуждается в Giant, а он уже захвачен нитью, выполняющейся на другом процессоре, первая нить будет продолжать выполнение и ждать освобождения Giant. В норме нить должна была бы уснуть, пока не настанет очередной момент ее выполнения. Если вы не уверены, оставьте этот параметр в покое. Устройство apic разрешает использование набора I/O APIC для распределения прерываний. Оно может быть использовано как с однопроцессорными, так и с многопроцессорными ядрами для последних наличие apic является обязательным. Для поддержки многопроцессорности добавьте строку Все компьютеры, поддерживаемые FreeBSD, имеют хотя бы одно устройство ISA. Не удаляйте эту строку, даже если в вашем компьютере нет слотов ISA. Для архитектуры IBM PS/2 Микроканальная Архитектура MCA, FreeBSD предоставляет ограниченную поддержку данной шины. За дальнейшей информацией о поддержке MCA обратитесь к файлу Включите эту опцию если у вас материнская плата EISA. Это включает автоопределение и конфигурирование поддержки всех устройств на шине EISA. Включите этот параметр, если у вас материнская плата с поддержкой PCI. Это включит автоопределение карт PCI и проксирование из шины PCI в шину ISA. Контроллер флоппи-диска. Этот драйвер поддерживает все устройства ATA и ATAPI. Вам необходима только одна строка в ядре для того, чтобы обнаружить все PCI устройства ATA/ATAPI в современных машинах. для поддержки дисков ATA. для поддержки дисков ATA RAID. Поддержка приводов ATAPI CDROM. Используется вместе с Поддержка флоппи-приводов ATAPI. Используется вместе с Поддержка ленточных приводов ATAPI стримеров. Используется вместе с Заставляет драйвер нумеровать устройства статически; в противном случае происходит динамическая нумерация. SCSI Controllers device ahb EISA AHA1742 family device ahc AHA2940 and onboard AIC7xxx devices device ahd AHA39320/29320 and onboard AIC79xx devices device amd AMD 53C974 Teckram DC-390T device isp Qlogic family device mpt LSI-Logic MPT-Fusion device ncr NCR/Symbios Logic device sym NCR/Symbios Logic newer chipsets device trm Tekram DC395U/UW/F DC315U adapters device adv Advansys SCSI adapters device adw Advansys wide SCSI adapters device aha Adaptec 154x SCSI adapters device aic Adaptec 15012x SCSI adapters, AIC-62360. device bt Buslogic/Mylex MultiMaster SCSI adapters device ncv NCR 53C500 device nsp Workbit Ninja SCSI-3 device stg TMC 18C30/18C50 Контроллеры SCSI. Закомментируйте те, которых у вас в системе нет. Если у вас в системе исключительно IDE устройства, вы можете удалить все эти строки. Периферийные устройства SCSI. Опять-таки, закомментируйте те, которых у вас в системе нет, или, если у вас в наличии исключительно IDE, можете удалить все. Замечание: USB umass 4 драйвер и некоторые другие драйверы используют подсистему SCSI, хотя и не являются настоящими SCSI устройствами. Следовательно, вам необходимо сохранить поддержку SCSI, если какой-либо из этих драйверов включен в конфигурацию ядра. RAID controllers interfaced to the SCSI subsystem device amr AMI MegaRAID device arcmsr Areca SATA II RAID device asr DPT SmartRAID V, VI and Adaptec SCSI RAID device ciss Compaq Smart RAID 5 device dpt DPT Smartcache III, IV - See NOTES for options device hptmv Highpoint RocketRAID 182x device iir Intel Integrated RAID device ips IBM Adaptec ServeRAID device mly Mylex AcceleRAID/eXtremeRAID device twa 3ware 9000 series PATA/SATA RAID RAID controllers device aac Adaptec FSA RAID device aacp SCSI passthrough for aac requires CAM device ida Compaq Smart RAID device mlx Mylex DAC960 family device pst Promise Supertrak SX6000 device twe 3ware ATA RAID Поддерживаемые RAID-контроллеры. Если у вас нет таковых, можете их закомментировать или удалить эти строки. предоставляет средства ввода/вывода для клавиатуры AT и PS/2 устройств. Этот контроллер необходим драйверу клавиатуры предоставляет доступ к клавиатуре AT 84 или улучшенной клавиатуре AT, которая подключена к контроллеру AT клавиатуры. Используйте это устройство, если ваша мышь включается в порт PS/2. Заставка при загрузке. Хранители экрана также требуют этого устройства. В FreeBSD 4.X используйте строку syscons is the default console driver, resembling an SCO console device sc это драйвер консоли по умолчанию, который имитирует консоль SCO. Так как большая часть консольных полноэкранных приложений обращаются к консоли через терминальную библиотеку вас не должно волновать, будете ли вы использовать этот драйвер, либо драйвер совместимым драйвером консоли. Если у вас возникнут какие-либо проблемы с приложениями, работающими с этим драйвером консоли, установите переменную окружения VT220-совместимый драйвер консоли, обратно совместимый с VT100/102. Он работает лучше на некоторых лэптопах, у которых возникают проблемы несовместимости с Также, установите переменную окружения Этот драйвер также может быть полезен в случаях подключения к большому количеству различных машин через сеть, на которых параметры для устройства присутствует практически на любой платформе. Включите эту опцию, если у вас есть AGP карта в системе. Это включит поддержку AGP и AGP GART для тех карт, которые поддерживают эту возможность. Поддержка Advanced Power Management. Чаще всего используется в лэптопах, хотя в ядре FreeBSD 5.X и выше отключена по умолчанию. Add suspend/resume support for the i8254. device pmtimer Устройство таймера для управления энергопотреблением, APM и ACPI. Поддержка PCMCIA. Включите ее, если вы используете лэптоп. Четыре последовательных порта, которые известны как вам понадобится поменять IRQ модема на 2 по непонятным техническим причинам IRQ2 IRQ9 для того, чтобы получить к нему доступ из FreeBSD. Если у вас есть многопортовая карта с последовательными портами, ознакомьтесь с sio 4 чтобы узнать корректные значения для добавления в Некоторые видеокарты в частности те, что используют чипы S3 используют адреса ввода/вывода в форме и, так как многие дешевые последовательные карты не полностью раскодируют шестнадцатибитное пространство адресов ввода/вывода, они конфликтуют с этими картами, в итоге оказывается практически недоступным. Каждый последовательный порт требует уникального IRQ кроме тех случаев, когда вы используете мультипортовую карту, которая поддерживает совместное использование прерываний, поэтому значения IRQ по умолчанию для не могут быть использованы. Интерфейс параллельного порта на шине ISA. Поддержка шины параллельного порта. Поддержка принтеров на параллельном порту. Замечание: Все три последних устройства необходимы для поддержка принтеров на параллельном порту. Драйвер TCP/IP через параллельный порт. Поддержка ввода/вывода общего назначения geek port IEEE1284 ввода/вывода. Драйвер привода Iomega Zip. Требует наличия Наилучшая производительность достигается с портами в режиме EPP 1.9. Раскомментируйте это устройство, если у вас есть простая последовательная или параллельная PCI карта, поддерживаемая драйвером puc 4. PCI Ethernet NICs. device de DEC/Intel DC21x4x Tulip device em Intel PRO/1000 adapter Gigabit Ethernet Card device ixgb Intel PRO/10GbE Ethernet Card device txp 3Com 3cR990 Typhoon device vx 3Com 3c590, 3c595 Vortex Драйвера сетевых карт PCI. Закомментируйте или удалите драйвера тех карт, которые отсутствуют в вашей системе. PCI Ethernet NICs that use the common MII bus controller code. NOTE: Be sure to keep the device miibus line in order to use these NICs! device miibus MII bus support Поддержка шины MII требуется для некоторых PCI 10/100 Ethernet карт, которые используют MII-совместимые передатчики или реализуют интерфейс управления передатчиком, который имитирует MII. Добавление в конфигурационный файл ядра включает поддержку стандартного API miibus и всех драйверов PHY, включая стандартный для тех PHY, которые не обрабатываются специфическим образом конкретным драйвером. device bfe Broadcom BCM440x 10/100 Ethernet device bge Broadcom BCM570xx Gigabit Ethernet device dc DEC/Intel 21143 and various workalikes device fxp Intel EtherExpress PRO/100B 82557, 82558 device lge Level 1 LXT1001 gigabit ethernet device nge NatSemi DP83820 gigabit ethernet device pcn AMD Am79C97x PCI 10/100 precedence over lnc device re RealTek 8139C/8169/8169S/8110S device rl RealTek 8129/8139 device sf Adaptec AIC-6915 Starfire device sis Silicon Integrated Systems SiS 900/SiS 7016 device sk SysKonnect SK-984x SK-982x gigabit Ethernet device ste Sundance ST201 D-Link DFE-550TX device ti Alteon Networks Tigon I/II gigabit Ethernet device tl Texas Instruments ThunderLAN device tx SMC EtherPower II 83c170 EPIC device vge VIA VT612x gigabit ethernet device vr VIA Rhine, Rhine II device wb Winbond W89C840F device xl 3Com 3c90x Boomerang, Cyclone Драйвера, которые используют контроллер шины MII. ISA Ethernet NICs. pccard NICs included. device cs Crystal Semiconductor CS89x0 NIC device ed requires device miibus device ed NE12000, SMC Ultra, 3c503, DS8390 cards device ex Intel EtherExpress Pro/10 and Pro/10 device ep Etherlink III based cards device fe Fujitsu MB8696x based cards device ie EtherExpress 8/16, 3C507, StarLAN 10 etc. device lnc NE2100, NE32-VL Lance Ethernet cards device sn SMCs 9000 series of Ethernet chips device xe Xircom pccard Ethernet ISA devices that use the old ISA shims device le Драйвера сетевых карт ISA. Ознакомьтесь с файлом чтобы узнать, какие сетевые карты каким драйвером поддерживаются. Wireless NIC cards device wlan 802.11 support device an Aironet 4500/4800 802.11 wireless NICs. device awi BayStack 660 and others device wi WaveLAN/Intersil/Symbol 802.11 wireless NICs. device wl Older non 802.11 Wavelan wireless NIC. Поддержка различных беспроводных карт. Устройства системной памяти. Этот параметр позволяет процессу получение привилегий ввода/вывода. Он полезен для написания пользовательских программ, работающих с оборудованием непосредственно. Необходим для работы X Window system. Генератор случайных чисел для криптографической защиты. необходим лишь в случае, если у вас есть сетевая карта. Он включает поддержку стандартного кода протокола Ethernet. В FreeBSD 4.X используйте строку это поддержка SLIP. SLIP был практически вытеснен PPP, который легче настраивается, лучше подходит для соединений модем-модем и имеет больше возможностей. В FreeBSD 4.X используйте строку Поддержка PPP в ядре для соединений dial-up. Также существует версия PPP, реализованного как приложение, использующее и предлагающее большую гибкость и большее количество возможностей, как, например, соединение при необходимости наличии обращения к сети. В FreeBSD 4.X используйте строку Используется пользовательским программным обеспечением PPP. Обратитесь к разделу PPP этой книги за дальнейшей информацией. В FreeBSD 4.X используйте строку псевдо-терминал или имитированный порт для входа. Используется входящими xterm и некоторыми другими приложениями, такими как Замечание: В FreeBSD 4.X используйте строку которое необходимо создать. Если вам необходимо более, чем стандартное 16 количество окон xterm и/или удаленных входов, увеличьте это число в соответствии с вашими потребностями, но не более чем до 256. Псевдоустройства дисков в памяти. В FreeBSD 4.X используйте строку Поддержка туннелирования IPv6 через IPv4, IPv4 через IPv6, IPv4 через IPv4 и IPv6 через IPv6. Начиная с FreeBSD 4.4 устройство Более ранним версиям FreeBSD 4.X требуется номер, например Это псевдоустройство захватывает пакеты, которые были посланы ему и перенаправляет их даемону трансляции IPv4/IPv6. В FreeBSD 4.X используйте строку The bpf device enables the Berkeley Packet Filter. Be aware of the administrative consequences of enabling this! Note that bpf is required for DHCP. device bpf Berkeley packet filter Фильтр пакетов Berkeley. Это псевдоустройство позволяет переводить сетевые интерфейсы в неразборчивый promiscuous режим, в котором перехватывается любой пакет в широковещательной сети например ethernet. Эти пакеты могут быть сохранены на диск и/или исследованы при помощи tcpdump 1. В FreeBSD 4.X используйте строку Замечание: Устройство bpf 4 также используется программой dhclient 8 для того, чтобы получить адрес шлюза по умолчанию и т.п. Если вы используете DCHP, не удаляйте эту опцию. USB support device uhci UHCI PCI- USB interface device ohci OHCI PCI- USB interface device ehci EHCI PCI- USB interface USB 2.0 device usb USB Bus required device udbp USB Double Bulk Pipe devices device ugen Generic device uhid Human Interface Devices device ukbd Keyboard device ulpt Printer device umass Disks/Mass storage - Requires scbus and da device ums Mouse device urio Diamond Rio 500 MP3 player device uscanner Scanners USB Ethernet, requires mii device aue ADMtek USB Ethernet device axe ASIX Electronics USB Ethernet device cdce Generic USB over Ethernet device cue CATC USB Ethernet device kue Kawasaki LSI USB Ethernet device rue RealTek RTL8150 USB Ethernet Поддержка различных USB устройств. FireWire support device firewire FireWire bus code device sbp SCSI over FireWire Requires scbus and da device fwe Ethernet over FireWire non-standard! Поддержка различных устройств Firewire. За дальнейшей информацией о дополнительных устройствах, поддерживаемых FreeBSD, обратитесь к файлу 8.4.1. Конфигурации с большим количеством оперативной памяти PAE Машины с большим количеством оперативной памяти, в которых требуется более 4 гигабайт в пользовательском адресном пространстве и адресном пространстве ядра UserKernel Virtual Address, KVA в обычном случае не смогут использовать более 4 гигабайт. Для решения этой проблемы Intel добавили поддержку 36-битной адресации в Pentium Pro и более поздних моделях процессоров. в процессорах Intel Pentium Pro и более поздних позволяет использовать до 64 гигабайт оперативной памяти. FreeBSD имеет поддержку этой возможности посредством опции ядра доступной в FreeBSD 4.9-RELEASE, FreeBSD 5.1-RELEASE и более поздних. В связи с ограничениями архитектуры Intel, не делается никакого различия между памятью ниже или выше 4 гигабайт. Память, размещенная выше 4 гигабайт, просто добавляется к доступной памяти. Для того, чтобы включить PAE в ядре, просто добавьте приведенную строку в конфигурационный файл ядра: в FreeBSD существует только для процессоров Intel IA-32. Также следует заметить, что PAE в FreeBSD не было полностью протестировано и должно считаться находящимся в состоянии бета-тестирования по сравнению с другими, стабильными возможностями FreeBSD. Процесс не может получить доступ к более, чем 4 гигабайтам пространства VM. из-за разницы в окружении для сборки модулей и самого ядра. Драйверы устройств, которые не используют интерфейс busdma 9, приведут к повреждению информации в ядре с включенным PAE Не рекомендуется использовать такие драйверы. По этой причине в FreeBSD 5.X включен конфигурационный файл ядра из которого удалены все драйверы, о которых известно, что они не работают при включенной поддержке PAE Некоторые системные переменные определяют использование ресурсов памяти по количеству доступной физической памяти. Такие переменные могут привести к ненужному чрезмерному выделению памяти из-за особенностей работы системы PAE Один из таких примеров - - переменная которая управляет максимальным количеством vnode, разрешенных в ядре. Рекомендуется установить эту и подобные ей переменные вручную в адекватные значения. Возможно, понадобится увеличить пространство виртуальных адресов ядра KVA или уменьшить какую-либо переменную см. выше, значение которой было неоправданно велико и могло привести к исчерпанию KVA Для этого может быть использована опция ядра В случае сомнений относительно производительности и стабильности рекомендуется обратиться к странице руководства tuning 7. Страница руководства pae 4 содержит свежую информацию о поддержке PAE Если вы работаете с FreeBSD 5.0 или старше, вы можете пропустить этот раздел. Эти версии используют devfs 5 для выделения файлов устройств прозрачно для пользователя. Практически все устройства в ядре имеют соответствующий файл, называемый node, в каталоге Они выглядят как обычные файлы, но на самом деле это специальные точки входа в ядро, которые необходимы приложениям для доступа к устройствам. Скрипт который выполняется при первой установке операционной системы, создает практически все поддерживаемые файлы устройств. Однако он не создаёт их все, таким образом, когда вы добавляете поддержку нового устройства, следует убедиться, что соответствующие файлы есть в и если их там нет, создать их. Вот простой пример: Предположим, вы добавили поддержку привода IDE CD-ROM в ядро. Строка, которую вы добавили: Это означает, что вам необходимо проверить наличие файлов, название которых начинаются строкой за которой, возможно, следует буква, например что означает, что это сырое raw устройство, которое используется для прямого доступа к аппаратному устройству. Если оказывается, что таких файлов в каталоге нет, вы должны перейти в каталог Когда скрипт завершит работу, вы увидите, что файлы созданы, соответственно скрипт отработал корректно. Замечание: Если вы создаете файлы устройств для таких устройств, как звуковые карты и если другие люди имеют доступ к вашей машине, было бы не лишним защитить их от использования извне при помощи добавления их в файл За дальнейшей информацией обратитесь к странице руководства fbtab 5. Следуйте этой простой процедуре для любых других устройств, которые отсутствуют в ядре поэтому вам не нужно создавать их. Кроме того, сетевые карты и псевдоустройства SLIP и PPP не имеют вхождений в поэтому и о них вы не должны беспокоиться. Существует пять категорий проблем, которые могут возникнуть при сборке собственного ядра. Вот они: Если команда config 8 не может отработать, то, скорее всего, вы допустили где-нибудь маленькую ошибку. К счастью, config 8 выведет номер проблемной строки, поэтому вы можете быстро найти строку, содержащую ошибку. Например, если вы видите: Убедитесь, что опция введена верно путём сравнения с файлом обычно это означает ошибку в описании конфигурации ядра, которая не достаточно тривиальна для того, чтобы config 8 мог обнаружить её. Опять-таки, просмотрите файл конфигурации, и, если вы все еще не можете решить проблему, напишите письмо в Список рассылки, посвящённый вопросам и ответам пользователей FreeBSD, включив в письмо файл конфигурации ядра. Скорее всего проблема будет решена быстро. Если ядро собралось без проблем, но не удалось его установить команда сообщила об ошибке, первое, что необходимо проверить, не запущена ли ваша система с уровнем безопасности 1 или выше обратитесь к init 8. Процедура установки пробует снять флаг неизменяемости с текущего ядра и установить этот флаг для нового ядра. Так как на уровне безопасности 1 и выше запрещено снятие флага неизменяемости для всех файлов в системе, установка должна производиться на уровне безопасности 0 и ниже. Информация выше применима только к FreeBSD 4.X и более ранним версиям. FreeBSD 5.X, как и более поздние версии, не устанавливает этот флаг на ядро и ошибка при установке ядра возможно указывает на более фундаментальную проблему. Если ваше новое ядро не загружается или ему не удаётся обнаружить ваши устройства - - не паникуйте! К счастью, в FreeBSD существует отличный механизм для восстановления после установки несовместимого ядра. Просто выберите ядро, которое хотите загрузить, в загрузчике FreeBSD. Доступ к нему вы можете получить, когда система делает обратный отсчёт от 10 в меню загрузки. Нажмите любую клавишу, кроме Enter, введите или используйте любое другое ядро, которое загрузится без проблем. Во время переконфигурирования ядра всегда полезно оставлять копию ядра, о котором известно, что оно рабочее. После загрузки с рабочим ядром вы можете проверить ваш файл конфигурации и попробовать собрать ядро опять. Очень полезным в данном случае окажется файл в котором, среди других записей, имеются сообщения ядра от каждой успешной загрузки. Также, команда dmesg 8 выведет сообщения ядра от текущей загрузки. Замечание: Если у вас возникли проблемы со сборкой ядра, убедитесь, что вы сохранили ядро или другое рабочее ядро под другим именем, чтобы оно не было удалено при следующей сборке. Вы не можете использовать потому что при установке нового ядра перезаписывается последним установленным ядром, которое может оказаться нерабочим. Также, как можно скорее переместите рабочее ядро в так как некоторые команды, такие как ps 1 будут работать некорректно. Для этого просто переместите каталог, содержащий работоспособное ядро: В версиях FreeBSD до 5.X, для восстановления работоспособного ядра используйте команду: Если вы обнаружите, что не можете этого сделать, скорее всего вы работаете на уровне безопасности securelevel 8 большем нуля. Отредактируйте переменную и перезагрузитесь. Вы можете установить её в предыдущее состояние, когда будете довольны своим новым ядром. И, если вы захотите закрыть ваше новое ядро или любой другой файл, таким образом, что он не сможет быть перемещен или изменен, используйте следующую команду: Если вы установили версию ядра отличную от той, с которой были собраны ваши системные утилиты, например, ядро от 5.X на системе 4.X, большая часть системных команд, таких как ps 1 и vmstat 8 не будут больше работать. Вам потребуется перекомпилировать и установить систему той же версии исходных текстов, что и ядро. Это одна из причин, по которой не следует использовать версию ядра, отличную от версии всей остальной системы. Написал Sean Kelly. Реструктурировал и обновил Jim Mock. Перевод на русский язык: Валерий Кравчук. FreeBSD можно использовать для печати на широком спектре принтеров, от старых матричных до новейших лазерных, без исключений, что позволяет создавать высококачественные распечатки из используемых приложений. FreeBSD можно также сконфигурировать для работы в качестве сервера печати в сети; в этом качестве FreeBSD может получать задания печати от множества других компьютеров, включая другие компьютеры под управлением ОС FreeBSD, хосты Windows и Mac OS. FreeBSD будет гарантировать печать заданий по одному и может сохранять информацию о том, какие пользователи и машины выполняют основную часть печати, выдавать страницы-баннеры, показывающие, кому принадлежит распечатка, и многое другое. Как конфигурировать спулер печати FreeBSD. Как устанавливать фильтры печати для специфической обработки определенных заданий печати, включая преобразование поступающих на печать документов в форматы, которые понимает принтер. Как включить при печати колонтитулы или выдачу страниц-баннеров. Как печатать на принтеры, подключенные к другим компьютерам. Как печатать на принтеры, подключенные непосредственно к сети. Как задавать ограничения для принтера, включая ограничение размера заданий печати и запрет печати для отдельных пользователей. Как сохранять статистическую информацию о печати и учитывать использование принтера. Как решать проблемы печати. Прежде чем читать эту главу, вы должны: Знать, как сконфигурировать и установить новое ядро Гл. 8. Для использования принтеров в ОС FreeBSD надо настроить их для работы с системой спулинга печати Беркли Berkeley line printer spooling system, также известной как система спулинга LPD. Это - - стандартная система управления принтером во FreeBSD. В этой главе представлена система спулинга LPD, которую часто называют просто LPD, и описано ее конфигурирование. Если вы уже знакомы с LPD или другой системой спулинга печати, вы можете сразу перейти к разделу Настройка системы спулинга. LPD управляет всеми аспектами работы принтеров хоста. Она отвечает за несколько вещей: Она управляет доступом к непосредственно подключенным принтерам и принтерам, подключенным к другим хостам в сети. Она позволяет пользователям посылать файлы на печать; эти данные называют заданиями. Она предотвращает одновременный доступ к принтеру нескольких пользователей путем поддержки очереди для каждого принтера. начальными страницами, чтобы пользователи могли легко находить распечатанные задания в пачке распечаток. Она обеспечивает установку параметров взаимодействия для принтеров, подключенных к последовательным портам. Она может отправлять задания по сети спулеру LPD на другом хосте. Она может применять специальные фильтры для форматирования заданий для печати на разных языках описания страниц или задействования специфических возможностей принтера. Она учитывает использование принтера. и за счет предоставления специальных программ фильтрования, можно потребовать от системы LPD выполнять все или некоторые из перечисленных выше функций на широком спектре принтерного оборудования. Если вы - - единственный пользователь системы, вы можете спросить, зачем возиться со спулером, если управление доступом, страницы заголовка или учет использования принтера вам не нужны. Хотя можно обеспечить непосредственный доступ к принтеру, в любом случае следует использовать спулер, поскольку: LPD печатает задания в фоновом режиме; вам не придется ждать, пока данные будут скопированы на принтер. LPD позволяет легко пропустить задание печати через фильтры для добавления заголовков с датой/временем или преобразования специального формата файлов такого как TeX DVI в формат, который понимает принтер. Вам не придется выполнять эти шаги вручную. Многие свободно распространяемые и коммерческие программы, обеспечивающие возможность печати, обычно предполагают взаимодействие со спулером системы. Путем настройки системы спулинга вы упростите поддержку другого программного обеспечения, которое может быть добавлено в дальнейшем или уже установлено. Для использования принтеров с системой спулинга LPD, необходимо настроить как сам принтер, так и программное обеспечение LPD. Этот документ описывает два уровня настройки: См. раздел Простая настройка принтера, чтобы узнать, как подключить принтер, объяснить LPD, как с ним взаимодействовать, и отправлять на принтер простые текстовые файлы. См. раздел Расширенная настройка принтера, чтобы узнать, как печатать файлы множества специальных форматов, как печатать страницы заголовка, печатать по сети, управлять доступом к принтерам и учитывать использование принтера. В этом разделе описано, как сконфигурировать принтер и программное обеспечение LPD для использования принтера. Здесь рассматриваются следующие вопросы: В разделе Настройка оборудования представлены советы по подключению принтера к порту компьютера. Если вы настраиваете принтер, использующий для принятия заданий печати вместо последовательного или параллельного интерфейса сетевой протокол, см. раздел Принтеры с сетевыми интерфейсами. Хотя этот раздел и назван Простая настройка принтера, это, на самом деле, достаточно сложно. Заставить принтер работать с компьютером и спулером LPD - самая сложная часть. Расширенные опции, вроде выдачи страниц заголовков и учета использования, установить несложно, как только принтер заработает. В этом разделе описаны различные способы подключения принтера к ПК. Рассматриваются различные порты и кабели, а также параметры конфигурации ядра, которые может потребоваться установить, чтобы ОС FreeBSD могла взаимодействовать с принтером. Если вы уже подключили ваш принтер и успешно печатали на него в другой операционной системе, можете перейти к разделу Настройка программного обеспечения. Принтеры, которые продаются сегодня для использования на ПК, обычно поддерживают один или несколько из следующих интерфейсов: Последовательные интерфейсы, также известные как RS232C или RS232D, или COM-порты, используют для посылки данных на принтер последовательный порт компьютера. Последовательные интерфейсы широко распространены в компьютерной индустрии, кабели для них легко найти и просто сделать. Для последовательных интерфейсов иногда нужны специальные кабели, и для их использования может потребоваться настраивать достаточно сложные опции взаимодействия. Большинство последовательных портов ПК имеют максимальную скорость передачи 115200 бит/сек, поэтому печатать через них большие графические задания неудобно. Параллельные интерфейсы используют параллельный порт компьютера для посылки данных на принтер. Параллельные интерфейсы широко распространены на рынке ПК и работают быстрее, чем последовательные RS232. Кабели легко найти, но сделать самостоятельно сложнее. При использовании параллельных интерфейсов опции взаимодействия обычно задавать не надо, что делает их конфигурирование существенно проще. Параллельные интерфейсы иногда называют интерфейсами Centronics, по названию типа разъема на принтере. Интерфейсы USB сокращение от Universal Serial Bus - - универсальная последовательная шина, могут работать на еще больших скоростях, чем параллельные или последовательные интерфейсы RS232. Кабели для них - - простые и дешевые. USB превосходит последовательный RS232 и параллельный интерфейсы для печати, но не слишком хорошо поддерживается в UNIX - системах. Обойти эту проблему можно, купив принтер с двумя интерфейсами, USB и параллельным, как у многих принтеров. В общем случае, параллельные интерфейсы обычно обеспечивают только одностороннюю передачу с компьютера на принтер, тогда как последовательные и USB поддерживают двустороннюю. Более новые параллельные порты EPP и ECP и принтеры могут взаимодействовать в обоих направлениях под FreeBSD, если используется кабель, соответствующий стандарту IEEE1284. Двустороннее взаимодействие с принтером через параллельный порт обычно выполняется одним из двух способов. Первый метод опирается на использование специально созданного драйвера принтера для FreeBSD, который поддерживает специфический язык данного принтера. Этот метод типичен для струйных принтеров и может использоваться для получения информации об уровне чернил и другой информации о состоянии. Второй метод используется, когда принтер поддерживает PostScript. Фактически, задания PostScript являются программами, посылаемыми для выполнения принтеру; они вообще могут не выдавать результат на бумагу и возвращать его непосредственно компьютеру. PostScript также использует двустороннее взаимодействие для сообщения компьютеру о проблемах, таких как ошибки в PostScript - программе или замятие бумаги. Такая информация может пригодиться пользователям. Более того, лучший способ эффективного учета использования PostScript - принтера требует двустороннего взаимодействия: вы запрашиваете у принтера значение счетчика страниц сколько страниц напечатал принтер за все время существования, затем посылаете задание пользователя, затем снова запрашиваете значение его счетчика страниц. Вычитаем одно значение из другого, и узнаем, сколько бумаги потратил пользователь. Для подключения принтера через параллельный интерфейс, соедините принтер и компьютер кабелем Centronics. Инструкции для принтера, для компьютера или обе должны полностью описывать эту процедуру. Помните, какой параллельный порт компьютера вы использовали. Первый параллельный порт в ОС FreeBSD - - и так далее. Имена устройств для принтеров используют ту же схему: для принтера на первом параллельном порту и т.д. Для подключения принтера через последовательный интерфейс, соедините принтер с компьютером подходящим последовательным кабелем. Инструкции для принтера, для компьютера или обе должны полностью описывать эту процедуру. Если вы не знаете, что такое подходящий последовательный кабель, можете попробовать использовать один из следующих: Модемный кабель соединяет каждый штырёк на одном конце кабеля напрямую с соответствующим штырьком на другом конце. Кабель такого типа также называют кабелем DTE-to-DCE. Нуль-модемный кабель соединяет часть штырьков напрямую, другие - - меняет пересылку данных на приём данных, например, а некоторые - - закорачивает на каждом разъеме. Кабель такого типа также называют кабелем DTE-to-DTE cable. Кабель последовательного принтера, необходимый для некоторых редко используемых принтеров, похож на нуль-модемный кабель, но посылает часть сигналов на соответствующие штырьки, а не закорачивает их. Вам надо также настроить эти параметры взаимодействия с принтером, обычно - - через элементы управления на лицевой панели или переключатели DIP switches на принтере. Выберите максимальную скорость передачи бит в секунду, иногда - - baud rate, которую могут поддерживать как компьютер, так и принтер. Выберите 7 или 8 битов данных; четность none, even или odd; и 1 или 2 стоп-бита. Также надо выбрать протокол управления передачей: none или XON/XOFF также известный как внутриполосный или программный. Запомните выбранные установки для последующего конфигурирования программного обеспечения. В этом разделе описана настройка программного обеспечения, необходимая для печати с помощью системы спулинга LPD в ОС FreeBSD. Вот план действий, которые необходимо выполнить: При необходимости, сконфигурировать в ядре поддержку порта, к которому подключен принтер; в разделе Конфигурирование ядра описано, что надо сделать. Установить режим взаимодействия для параллельного порта, если используется параллельный порт; детали представлены в разделе Настройка режима взаимодействия для параллельного порта. Проверить, может ли операционная система посылать данные на принтер. В разделе Проверка взаимодействия с принтером даны советы, как это сделать. Настроить LPD для принтера, изменяя файл Как это сделать описано далее в этой главе. Ядро операционной системы компилируется для работы с конкретным набором устройств. Последовательный или параллельный интерфейс для принтера входит в этот набор. Поэтому может понадобиться добавить поддержку для дополнительного последовательного или параллельного порта, если он еще не сконфигурирован в ядре. Чтобы узнать, поддерживает ли используемое в настоящий момент ядро последовательный интерфейс, наберите: номер последовательного порта, начиная с нуля. Если вы получаете результат, подобный следующему: значит, ядро поддерживает порт. Чтобы узнать, поддерживает ли ядро параллельный интерфейс, наберите: номер параллельного порта, начиная с нуля. Если вы получаете результат, подобный следующему: значит, ядро поддерживает порт. Может потребоваться переконфигурировать ядро, чтобы операционная система распознала и использовала параллельный или последовательный порт, используемый для подключения принтера. Чтобы добавить поддержку последовательного порта, обратитесь к разделу, посвященному конфигурированию ядра. Чтобы добавить поддержку параллельного порта, почитайте этот же раздел и следующий раздел. 9.3.1.3. Добавление файлов Замечание: FreeBSD 5.0 включает файловую систему которая автоматически создает специальные файлы устройств по мере необходимости. Если вы используете версию FreeBSD с включенной поддержкой можно пропустить этот раздел. Хотя ядро может уже поддерживать взаимодействие по последовательному или параллельному порту, вам необходим программный интерфейс, через которых работающие в системе программы смогут посылать и принимать данные. Именно для этого и существуют специальные файлы устройств в каталоге с помощью команды su 1. Введите пароль пользователя имя специального файла устройства для порта, который вы хотите создать. Используйте для принтера на первом параллельном порту, для принтера на втором порту и т.д.; используйте для первого последовательного порта, чтобы убедиться, что требуемый специальный файл устройства создан. При использовании параллельного интерфейса можно выбрать, должна ли ОС FreeBSD взаимодействовать с принтером на основе прерываний или путем опроса. Универсальный драйвер принтера lpt 4 во FreeBSD 4.X и 5.X использует систему ppbus 4, которая управляет чипсетом порта с помощью драйвера ppc 4. Метод взаимодействия на основе прерываний является стандартным для ядра GENERIC. По этому методу, операционная система использует линию запроса прерывания IRQ line для определения готовности принтера к приему данных. Метод взаимодействия путем опроса требует от операционной системы постоянно запрашивать принтер, готов ли он к приему данных. Когда он отвечает, что готов, ядро посылает дополнительные данные. Метод взаимодействия на основе прерываний обычно работает несколько быстрее, но использует ценную линию запроса прерывания. Про некоторые новые принтеры HP утверждают, что они работают некорректно в режиме взаимодействия на основе прерываний, вероятно, из-за некоторой еще не вполне понятной проблемы синхронизации. Для этих принтеров необходимо устанавливать режим опроса. Используйте тот режим, который работает. Некоторые принтеры будут работать в обоих режимах, но оказываются крайне медленными в режиме на основе прерываний. Режим взаимодействия можно установить двумя способами: конфигурируя ядро или с помощью программы lptcontrol 8. Отредактируйте файл конфигурации ядра. Найдите запись Если вы настраиваете второй параллельный порт, ищите запись для третьего порта, и так далее. Если необходимо установить режим на основе прерываний, для FreeBSD 4.X добавьте спецификацию номер IRQ для параллельного порта компьютера. Для FreeBSD 5.X, отредактируйте следующую строку: соответствующим номером IRQ. Файл конфигурации ядра также должен содержать драйвер ppc 4: Если необходимо установить режим опроса, не добавляйте спецификацию Для FreeBSD 4.X используйте следующую строку в файле конфигурации ядра: Для FreeBSD 5.X просто удалите из файла В некоторых случаях, этого недостаточно для перевода порта в режим опроса под FreeBSD Чаще всего, проблема связана с драйвером acpi 4, который может опрашивать и подключать устройства и, тем самым, управлять режимом доступа к порту принтера. Чтобы решить эту проблему, проверьте конфигурацию acpi 4. Сохраните файл. Затем сконфигурируйте, соберите и установите ядро и перезагрузите систему. Подробнее см. в разделе конфигурирование ядра. для установки требуемого режима при каждой загрузке системы. Дополнительную информацию об этом ищите на странице справочного руководства lptcontrol 8. Прежде чем переходить к конфигурированию системы спулинга, надо убедиться, что операционная система может успешно посылать данные на принтер. Намного проще отлаживать взаимодействие с принтером и систему спулинга отдельно. Для тестирования принтера мы пошлем на него текст. Для принтеров, которые могут непосредственно печатать посланные на них символы, идеально подходит программа lptest 1: она генерирует все 96 печатных символов ASCII в 96 строках. Для PostScript - или основанного на другом языке принтера, необходим более сложный тест. Подойдет небольшая PostScript - программа, вроде следующей: PS 100 100 moveto 300 300 lineto stroke 310 310 moveto/Helvetica findfont 12 scalefont setfont Is this thing working? show showpage Представленный выше PostScript - код можно поместить в в файл и использовать, как показано в примерах в следующих разделах. Замечание: Когда в этом документе речь идет о языке принтера, подразумевается язык типа PostScript, а не PCL компании Hewlett Packard. Хотя PCL имеет прекрасные функциональные возможности, в нем можно смешивать обычный текст с его управляющими последовательностями. PostScript не позволяет непосредственно печатать обычный текст, и это язык принтера именно того рода, для которого надо выполнять специальные настройки. В этом разделе описано, как проверить, может ли ОС FreeBSD взаимодействовать с принтером, подключенным к параллельному порту. Пошлите данные на принтер. Если принтер может печатать обычный текст, используйте утилиту lptest 1. Введите команду: номер параллельного порта, начиная с нуля. Если принтер понимает PostScript или другой язык принтера, пошлите на принтер небольшую программу. Введите команду: Затем, построчно, внимательно введите программу, поскольку вы не сможете отредактировать строку после нажатия клавиши По окончании ввода программы, нажмите или другую комбинацию клавиш, используемую для ввода символа конца файла. имя файла, содержащего программу, которую вы хотите послать принтеру. Вы должны увидеть распечатку. Не переживайте, если текст выглядит не так, как предполагалось; этими проблемами мы займемся позже. В этом разделе описано, как проверить, может ли ОС FreeBSD взаимодействовать с принтером, подключенным к последовательному порту. Добавьте следующую запись: скорость обработки данных принтером, в битах в секунду, а Вот пример записи для принтера, подключенного к третьему последовательному порту на скорости 19200 bps без четности: Подключитесь к принтеру с помощью tip 1. Введите команду: Если этот шаг не срабатывает, снова отредактируйте файл Пошлите данные на принтер. Если принтер может печатать обычный текст, используйте утилиту lptest 1. Введите команду: Если принтер понимает PostScript или другой язык принтера, пошлите на принтер небольшую программу. Вводите программу, построчно, очень внимательно, поскольку нажатие клавиши Backspacе или других клавиш редактирования может иметь значение для принтера. Может также понадобиться нажать специальную комбинацию клавиш, обозначающую конец файла, чтобы принтер понял, что получена вся программа. Для PostScript - принтеров нажмите имя файла, содержащего программу. После того, как утилита tip 1 пошлет файл, нажмите требуемую для ввода признака конца файла комбинацию клавиш. Вы должны увидеть распечатку. Не переживайте, если текст выглядит не так, как предполагалось; этими проблемами мы займемся позже. 9.3.1.4. Включение спулера: файл Сейчас ваш принтер уже должен быть подключен, ядро при необходимости - - сконфигурировано для взаимодействия с ним, и вы смогли послать на принтер простые данные. Теперь мы готовы к конфигурированию системы LPD для управления доступом к принтеру. Система спулинга LPD читает этот файл при каждом использовании спулера, так что, изменения в файле сразу же учитываются. Формат файла printcap 5 прост. Используйте свой любимый текстовый редактор для изменения файла Формат файла идентичен формату других файлов, описывающих характеристики, например, Полная информация о формате представлена на странице справочного руководства cgetent 3. Отключите выдачу начальных страниц которые по умолчанию выдаются, вставив характеристику подробнее об этом см. в разделе Выбор устройства для принтера. Кроме того, если принтер подключен к последовательному порту, настройте параметры взаимодействия с помощью характеристики Установите фильтр для обычного текста; подробнее об этом см. в разделе Установка текстового фильтра. Замечание: Принтеры, использующие специальные языки, например, PostScript - принтеры, не могут непосредственно печатать обычный текст. Простая настройка, представленная выше и описанная в следующих разделах, предполагает, что, если вы устанавливаете такой принтер, то будете печатать только файлы, которые он может обработать. Пользователи часто предполагают, что они могут печатать обычный текст на любом из установленных в системе принтеров. Программы, взаимодействующие для обеспечения печати с системой LPD, обычно исходят из этого же предположения. Если вы устанавливаете такой принтер и хотите иметь возможность посылать на печать задания на языке принтера и в виде обычного текста, настоятельно рекомендуется добавить дополнительный шаг к представленной выше простой последовательности настройки: установите программу автоматического преобразования обычного текста в PostScript или другой язык принтера. В разделе Прием заданий с обычным текстом на PostScript - принтеры рассказано, как это сделать. Первый простой шаг - - выбрать имя для принтера. На самом деле, не важно, выберете ли вы функциональное имя или причудливое, поскольку для принтера можно также задать несколько псевдонимов. По крайней мере, один из принтеров, указанных в файле Это - - стандартное имя принтера. Если пользователи не установят переменную среды и не укажут имя принтера в командной сроке при вводе любой команды системы LPD, по умолчанию для ее выполнения будет использован принтер Также широко распространена практика в качестве последнего псевдонима для принтера задавать полное его описание, включая производителя и модель. Имя принтера должно начинаться с крайнего левого столбца. Каждый псевдоним отделяйте вертикальной чертой, а после последнего псевдонима поместите двоеточие. определяющего два принтера построчный принтер Diablo 630 и лазерный PostScript - принтер Panasonic KX-P4455: etc/printcap для хоста rose rattanlinediablolpDiablo 630 Line Printer: bamboopsPSSpanasonicPanasonic KX-P4455 PostScript v51.4: Поскольку у него есть псевдоним он является стандартным принтером. Второму принтеру дано имя Panasonic KX-P4455 PostScript v51.4 Система спулинга LPD будет по умолчанию печатать заголовочную страницу для каждого задания. Заголовочная страница содержит имя пользователя, отправившего задание, хост, с которого поступило задание, и имя задания, красивыми большими буквами. К сожалению, все эти дополнительные тексты мешают отладке простой настройки принтера, поэтому мы будет отключать выдачу начальных страниц. etc/printcap для хоста rose - никаких начальных страниц rattanlinediablolpDiablo 630 Line Printer::sh: bamboopsPSSpanasonicPanasonic KX-P4455 PostScript v51.4::sh: Обратите внимание, как мы использовали правильный формат: первая строка начинается с самого левого столбца, а последующие строки смещены на один символ табуляции. Каждая строка в записи, кроме последней, завершается символом обратной косой черты. каталог для спулинга, каталог, в котором находятся задания печати, пока не будут напечатаны, и где находятся еще несколько других файлов для поддержки спулера. Из-за присущих каталогам спулинга постоянных изменений, принято помещать эти каталоги в каталог Кроме того, не нужно создавать резервные копии содержимого каталогов спулинга. Пересоздать их можно с помощью простой команды mkdir 1. Принято также задавать для каталога имя, совпадающее с именем принтера, как показано ниже: Однако при наличии большого количества принтеров в сети может иметь смысл поместить все каталоги спулинга в один каталог, который просто резервируется для печати с помощью LPD. Мы сделаем это для наших двух принтеров, Замечание: Если вас интересует конфиденциальность заданий, отправляемых пользователями на печать, можно защитить каталог спулинга, чтобы он не был общедоступным. Каталоги спулинга должны принадлежать и быть доступны на чтение, запись и просмотр содержимого пользователю daemon и группе daemon, и никому больше. Мы установим это для каталогов спулинга принтеров из нашего примера: Наконец, надо сообщить системе LPD об этих каталогах с помощью файла Полное имя каталога спулинга задается с помощью характеристики etc/printcap для хоста rose - добавлены каталоги спулинга rattanlinediablolpDiablo 630 Line Printer::sh:sd/var/spool/lpd/rattan: bamboopsPSSpanasonicPanasonic KX-P4455 PostScript v51.4::sh:sd/var/spool/lpd/bamboo: Обратите внимание, что имя принтера начинается с самого первого столбца, а все последующие строки смещены на один символ табуляции и каждая строка в записи, кроме последней, завершается символом обратной косой черты. система спулинга будет использовать по умолчанию каталог для портов мы выяснили, какой специальный файл устройства в каталоге FreeBSD будет использовать для взаимодействия с принтером. Теперь мы сообщаем эту информацию системе LPD. Когда у системы спулинга есть задание для печати, она будет открывать указанное устройство от имени программы-фильтра которая отвечает за передачу данных на принтер. В нашем текущем примере давайте предположим, что принтер подключен к первому параллельному порту, а принтер к шестому последовательному порту; вот что нужно добавить в файл etc/printcap для хоста rose - указано, какие устройства использовать rattanlinediablolpDiablo 630 Line Printer::sh:sd/var/spool/lpd/rattan::lp/dev/lpt0: bamboopsPSSpanasonicPanasonic KX-P4455 PostScript v51.4::sh:sd/var/spool/lpd/bamboo::lp/dev/ttyd5: система LPD использует по умолчанию устройство сейчас в ОС FreeBSD не существует. Если устанавливаемый принтер подключен к параллельному порту, перейдите к разделу Установка текстового фильтра. Иначе выполните сначала инструкции, представленные в следующем разделе. Для принтеров на последовательных портах система LPD может устанавливать скорость передачи, четность и другие параметры взаимодействия через последовательных порт от имени программы-фильтра, которая посылает данные на принтер. Это полезно потому, что: Позволяет опробовать различные параметры взаимодействия, просто редактируя файл программу-фильтр перекомпилировать не нужно. Позволяет системе спулинга использовать одну и ту же программу-фильтр для нескольких принтеров, которые могут иметь различные установки для взаимодействия через последовательный порт. задают параметры взаимодействия через последовательный порт для устройства, указанного в качестве значения характеристики может иметь значение 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600 или 115200 бит в секунду. Устанавливает опции для терминального устройства после открытия устройства. Поддерживаемые опции описаны на странице справочного руководства stty 1. Когда система LPD открывает устройство, заданное характеристикой она устанавливает опции устройства в соответствии со значением характеристики Наибольший интерес представляют режимы которые описаны на странице справочного руководства stty 1. Давайте зададим опции для нашего принтера на шестом последовательном порту. Мы установим скорость передачи 38400. В качестве режима установим режим без четности с помощью 8-битовые символы с помощью отсутствие модемного управления с помощью bamboopsPSSpanasonicPanasonic KX-P4455 PostScript v51.4::sh:sd/var/spool/lpd/bamboo::lp/dev/ttyd5:ms-parenb cs8 clocal crtscts: Теперь мы готовы задать системе LPD, какой текстовый фильтр использовать для посылки заданий на принтер. Текстовый фильтр, известный также как входной фильтр, - - это программа, которую система LPD запускает при получении задания на печать. Когда система LPD запускает текстовый фильтр для принтера, она направляет на стандартный входной поток фильтра задание печати, а его стандартный выходной поток - - на устройство принтера, заданное характеристикой Предполагается, что фильтр прочитает задание из стандартного входного потока, выполнит все необходимые для принтера преобразования и выдаст результат в стандартный выходной поток, который и будет напечатан. Подробнее о текстовом фильтре см. в разделе Фильтры. Для простой настройки принтера в качестве текстового фильтра можно задать небольшой скрипт командного интерпретатора, который просто выполняет для посылки задания на принтер. В составе FreeBSD поставляется другой фильтр, обрабатывающий забой и подчеркивание для принтеров, которые не слишком хорошо справляются с потоком данных, содержащих такие символы. И, конечно же, вы можете использовать любую другую необходимую программу-фильтр. Фильтр для простого тестового фильтра. Поместите в этот файл следующий текст с помощью любимого текстового редактора: bin/sh if-simple - Простой фильтр входного текста для lpd Установлен в/usr/local/libexec/if-simple Просто копирует stdin в stdout. Игнорирует все аргументы фильтра./bin/cat exit 0 exit 2 А теперь потребуйте от системы LPD его использовать, указав его в качестве значения характеристики Мы добавим его для двух принтеров, имеющихся пока в примере файла etc/printcap для хоста rose - добавлен текстовый фильтр rattanlinediablolpDiablo 630 Line Printer::sh:sd/var/spool/lpd/rattan::lp/dev/lpt0::if/usr/local/libexec/if-simple: bamboopsPSSpanasonicPanasonic KX-P4455 PostScript v51.4::sh:sd/var/spool/lpd/bamboo::lp/dev/ttyd5:ms-parenb cs8 clocal crtscts::if/usr/local/libexec/if-simple: 9.3.1.4.7. Запуск системы а необходимость запуска задается переменной Эта переменная по умолчанию имеет значение Если вы еще этого не сделали, добавьте строку: а затем либо перезапустите машину, либо просто выполните команду lpd 8. Вы добрались до конца простой настройки системы LPD. К сожалению, поздравлять вас еще рано, поскольку надо еще проверить настройку и устранить все выявленные проблемы. Для проверки настройки, попытайтесь что-то распечатать. Для печати с помощью системы LPD используется команда lpr 1, которая посылает задание на печать. имя или псевдоним принтера, заданное в файле Для проверки стандартного принтера, введите команду lpr 1 без аргумента Как уже отмечалось, если тестируется принтер, предполагающий использование PostScript, пошлите ему PostScript - программу вместо использования утилиты lptest 1. Это можно сделать, поместив программу в файл и выполнив команду Для PostScript - принтера вы должны получить результаты выполнения программы. Если вы используете lptest 1, ваши результаты должны иметь такой вид: Для дальнейшего тестирования принтера, попытайтесь загрузить программы побольше для принтеров, поддерживающих определенный язык или выполните команду lptest 1 с другими аргументами. Например, команда выдаст 60 строк по 80 символов в каждой. В этом разделе описаны фильтры для печати специально сформатированных файлов, начальных страниц, печати по сети, ограничения и учета использования принтера. Хотя система LPD поддерживает сетевые протоколы, очереди, контроль доступа и другие аспекты печати, большая часть фильтрах. Фильтры - - это программы, взаимодействующие с принтером и обеспечивающие учет особенностей устройства и специальных требований. При простой настройке принтера мы установили фильтр для обычного текста - - крайне простой, который должен работать с большинством принтеров см. раздел Установка текстового фильтра. Однако, чтобы обеспечить преобразования формата, учет использования принтера и индивидуальных особенностей отдельных принтеров и т.п., надо разобраться, как работают фильтры. В конечном итоге, всеми этими аспектами печати должен заниматься фильтр. А плохая новость состоит в том, что, в большинстве случаев, вы сами должны предоставить соответствующие фильтры. Хорошая новость состоит в том, что многие фильтры общедоступны; а если подходящих нет, их обычно легко написать. Кроме того, в составе ОС FreeBSD поставляется один фильтр, работающий со многими принтерами, которые могут печатать обычный текст. Он обрабатывает символы забоя и табуляции в файле, выполняет учет использования, но и не более того. Есть также ряд фильтров и компонентов фильтров в наборе портов FreeBSD. В разделе Как работают фильтры сделана попытка дать обзор роли фильтра в процессе печати. Прочтите этот раздел, чтобы понять, что происходит за кадром, когда система LPD использует фильтры. Это понимание поможет предвидеть и решать проблемы, с которыми вы можете столкнуться при добавлении дополнительных фильтров для каждого из принтеров. Система LPD предполагает, что каждый принтер, по умолчанию, может печатать обычный текст. Это проблематично для PostScript - принтеров или принтеров на базе другого языка, поскольку они не могут печатать обычный текст непосредственно. В разделе Прием заданий с обычным текстом на PostScript - принтеры описано, что нужно сделать, чтобы решить эту проблему. Прочтите этот раздел, если используете PostScript - принтер. PostScript - - популярный формат выдачи для многих программ. Некоторые люди даже пишут PostScript - код непосредственно. К сожалению, PostScript - принтеры дороги. В разделе Имитация PostScript на не- PostScript принтерах описано, как можно дополнительно изменить текстовый фильтр принтера для приема и печати данных PostScript не не- PostScript принтере. Прочтите этот раздел, если ваш принтер не поддерживает PostScript. В разделе Фильтры преобразования описан способ автоматизации преобразования определенных форматов файлов, например, графики или данных для печатного станка, в форматы, которые может обработать ваш принтер. После чтения этого раздела вы сможете настроить свои принтеры так, что пользователи смогут выполнять команду для печати данных troff, или для печати данных TeX DVI, или для печати растровых изображений, и так далее. Я рекомендую прочитать этот раздел. LPD. Если только вы не печатаете начальные страницы см. Начальные страницы, можно, пожалуй, вообще пропустить этот раздел. достаточно полный, хотя и простой текстовый фильтр для строчных принтеров и лазерных принтеров, работающих как строчные, поставляемый в составе ОС FreeBSD. Если надо быстро настроить учет использования принтера для обычного текста или если используется принтер, из которого при получении символов забоя идет дым, несомненно, стоит подумать об использовании Замечание: Различные скрипты, описанные далее, можно найти в каталоге Как уже упоминалось, фильтр - - это выполняемая программа, запускаемая системой LPD для поддержки специфических особенностей устройства при взаимодействии с принтером. Когда системе LPD надо напечатать входящий в задание файл, она запускает программу-фильтр. Стандартный входной поток фильтра связывается с файлом, который надо распечатать, его стандартный выходной поток - - с принтером, а стандартный поток ошибок перенаправляется в файл регистрации ошибок задается характеристикой или используется стандартное устройство Запускаемый системой LPD фильтр и его аргументы зависят от того, что указано в файле и какие аргументы указал пользователь для задания в команде lpr 1. Например, если пользователь ввел команду LPD должна запустить фильтр troff, заданный характеристикой для соответствующего принтера. Если пользователь хочет печатать обычный текст, система должна запустить фильтр это верно в большинстве случаев: подробнее см. в разделе Выходные фильтры. Текстовый фильтр, который в документации LPD двусмысленно называют входным фильтром, обеспечивает печать обычного текста. Рассматривайте его как стандартный фильтр. Система LPD предполагает, что любой принтер может по умолчанию печатать обычный текст, а на текстовый фильтр возлагается задача обеспечить, чтобы символы забоя, табуляции или другие специальные символы не сбивали принтер с толку. Если вы работаете в среде, где надо учитывать использование принтера, текстовый фильтр должен также учитывать количество напечатанных страниц, обычно, подсчитывая количество напечатанных строк и сравнивая их с количеством строк на страницу, поддерживаемых принтером. Текстовый фильтр запускается со следующим списком аргументов: указывается, если задание послано командой page width - - ширина страницы, указанной в файле page length - - длина страницы, по умолчанию - - 66 сдвиг, заданный командой регистрационное имя пользователя, печатающего файл имя хоста, с которого было послано задание имя учетного файла, задаваемое характеристикой Фильтр преобразования преобразует специфичный формат файла в то, что принтер может воспроизвести на бумаге. Например, данные системы набора ditroff нельзя печатать непосредственно, но можно установить фильтр преобразования для файлов ditroff, чтобы преобразовывать данные ditroff в тот вид, который принтер может воспринять и напечатать. В разделе Фильтры преобразования написано всё об этих фильтрах. Фильтры преобразования также необходимы для учета, если предполагается учет использования принтера. Фильтры преобразования запускаются со следующими аргументами: Выходной фильтр используется только если нет текстового фильтра или если включена выдача начальных страниц. Судя по моему опыту, выходные фильтры используются редко. Они описаны в разделе Выходные фильтры. У выходного фильтра есть всего два аргумента: Если фильтр успешно напечатал файл. Если фильтр не смог напечатать файл, но хочет, чтобы система LPD попыталась распечатать файл ещё раз. Система LPD перезапустит фильтр, если его работа завершена с этим статусом. Если фильтр не смог напечатать файл и не хочет, чтобы система LPD пыталась его печатать еще раз. Система использует аргументы, задающие ширину и длину страницы для определения того, когда посылать символ прогона страницы form feed и как учитывать использование принтера. Он использует переданные в качестве аргументов имя пользователя, хост и учетный файл для внесения учетных записей. При поиске фильтров убедитесь, что они совместимы с системой LPD. Если да, они должны поддерживать описанные выше списки аргументов. Если вы планируете создавать фильтры для общего использования, позаботьтесь о поддержке этих списков аргументов и кодов выхода. Если вы - - единственный пользователь компьютера и PostScript - принтера или принтера на основе другого языка, и вы обещаете никогда не посылать на принтер обычный текст и никогда не использовать возможностей различных программ, требующих посылки на принтер обычного текста, вам можно не заботиться о том, что описано в этом разделе. Но, если вы хотите посылать на принтер как задания PostScript, так и обычный текст, рекомендуется дополнить настройку принтера. Для этого надо, чтобы текстовый фильтр определял, является ли поступающее задание обычным текстом или программой на языке PostScript. Все PostScript - задания должны начинаться с для других языков принтеров обратитесь к соответствующей документации. Если первые два символа в задании - - именно эти, речь идет о PostScript, и мы можем остальную часть задания передавать непосредственно. Если же первые два символа в файле - - другие, фильтр будет преобразовывать текст в PostScript и печатать результат. Если вы используете последовательный принтер, хороший способ достичь поставленной цели состоит в установке это фильтр для PostScript - принтера, выполняющий двустороннее взаимодействие с принтером. Он обновляет файл состояния принтера, помещая в него подробную информацию, выданную принтером, так что пользователи и администраторы могут узнать, в каком именно состоянии например, находится принтер. Но еще важнее, что он включает программу которая определяет, является ли входящее задание обычным текстом, и вызывает еще одну программу, поставляемую вместе с для преобразования его в PostScript. Затем посылает преобразованное задание на принтер. входит в набор портов FreeBSD см. Набор портов. Вы, конечно, можете загрузить, собрать и установить его самостоятельно. После установки входящей в состав пакета из Коллекции Портов, используйте следующий текст в записи для последовательного PostScript - принтера в файле она требует от системы LPD открывать принтер в режиме чтения и записи. При использовании параллельного PostScript - принтера что не позволяет обеспечить двустороннее взаимодействие с принтером, необходимое для системы можно использовать в качестве текстового фильтра следующий скрипт командного интерпретатора: bin/sh psif - Печать PostScript или обычного текста на PostScript-принтере Скрипт, а НЕ версия, входящая в состав lprps Установлен в/usr/local/libexec/psif IFS read - r firstline firsttwocharsexpr firstline:. if firsttwochars %! ; then Задание PostScript, печатать его. echo firstline cat printf 004 exit 0 exit 2 else Обычный текст, преобразовать его, а затем напечатать. echo firstline; cat /usr/local/bin/textps printf 004 exit 0 exit 2 fi В представленном выше скрипте, отдельно установленная программа для преобразования обычного текста в PostScript. Можно использовать любую программу преобразования текста в PostScript. Коллекция Портов FreeBSD см. материал о Коллекции Портов включает полнофункциональную программу преобразования текста в PostScript под названием которую тоже можно попробовать использовать. фактическим стандартом для высококачественного набора и печати. PostScript, однако, - - дорогой стандарт. К счастью, благодаря компании Aladdin Enterprises есть свободный аналог PostScript под названием Ghostscript, который работает с FreeBSD. Ghostscript может читать большинство PostScript - файлов и выдавать соответствующие страницы на множество устройств, включая многие моделей не-PostScript принтеров. Установив Ghostscript и используя специальный текстовый фильтр для принтера, можно заставить ваш не- PostScript принтер работать фактически как PostScript - принтер. Ghostscript входит в набор портов FreeBSD, если вы хотите устанавливать его оттуда. Вы можете также легко загрузить, собрать и установить его самостоятельно. Для имитации PostScript надо, чтобы текстовый фильтр определял, печатается ли PostScript - файл. Если нет, фильтр будет передавать файл на принтер непосредственно; в противном случае, он будет использовать Ghostscript, чтобы сначала преобразовать файл в формат, который поймет принтер. Рассмотрим пример: следующий сценарий представляет собой текстовый фильтр для принтеров Hewlett Packard DeskJet 500. Для других принтеров замените аргумент Ghostscript. Введите команду для получения списка устройств, поддерживаемых установленной версией Ghostscript. bin/sh ifhp - Печать Ghostscript-эмулированного PostScript на DeskJet 500 Установлен в/usr/local/libexec/ifhp Обрабатывать LF как CRLF чтобы избежать эффекта ступенек на принтерах HP/PCL: printf 033 k2G exit 2 Прочитать первые два символа файла IFS read - r firstline firsttwocharsexpr firstline:. if firsttwochars %! ; then Это PostScript; используем Ghostscript для чтения, преобразования и печати. /usr/local/bin/gs - dSAFER - dNOPAUSE - q - sDEVICEdjet500 -sOutputFile- - exit 0 else Обычный текст или HP/PCL, поэтому просто печатаем его напрямую; печатаем в конце символ прогона страницы, чтобы была выдана последняя страница. echo firstline cat printf 033 l0H exit 0 fi exit 2 Наконец, надо указать системе LPD, какой фильтр использовать, задав характеристику Вот и все. Теперь можно выполнять и обе команды должны успешно печатать. После завершения простой настройки, описанной в разделе Простая настройка принтера, прежде всего, вам может потребоваться установить фильтры преобразования для любимых форматов файлов кроме обычных текстов ASCII. Фильтры преобразования упрощают печать различного рода файлов. В качестве примера, предположим, что активно используется издательская система TeX и имеется PostScript - принтер. При каждой генерации DVI-файла из TeX, мы не можем печатать его непосредственно, пока не преобразуем в PostScript. Для этого используется такая последовательность команд: Установив фильтр преобразования для файлов DVI, мы можем не конвертировать файл каждый раз вручную, возложив эту задачу на систему LPD. Теперь при каждом получении DVI-файла нас от его распечатки отделяет только один шаг: Мы заставили систему LPD автоматически преобразовывать DVI-файл, указав опцию Для каждой из опций преобразования, которая должна поддерживаться принтером, установите фильтр преобразования и укажите его полное имя в файле Фильтр преобразования аналогичен текстовому фильтру для простой настройки принтера см. раздел Установка текстового фильтра, но вместо печати обычного текста он преобразует файл в формат, который может понять принтер. Устанавливать надо те фильтры преобразования, которые предполагается использовать. Если вы часто печатаете файлы DVI, значит, фильтр преобразования DVI необходим. Если вам часто приходится печатать результаты работы troff, может потребоваться фильтр troff. В следующей таблице представлены фильтры, с которыми работает система LPD, их соответствующие характеристики для файла а также способ их вызова в команде означает, что для принтера должна быть задана характеристика Вопреки мнению многих, форматы вроде текста на языке FORTRAN и plot, вероятно, устарели. У себя на машине вы можете дать новые значения этим или любым другим опциям форматирования, установив соответствующие специализированные фильтры. Например, пусть необходимо напрямую печатать файлы Printerleaf файлы настольной издательской системы Interleaf, но вообще вы не собираетесь печатать файлы типа plot. Можно установить фильтр преобразования Printerleaf в качестве значения характеристики и научить своих пользователей, что команда означает печатать файлы Printerleaf. Поскольку фильтры преобразования представляют собой программы, не входящие в базовую поставку FreeBSD, их, видимо, надо помещать в каталоге Популярное местонахождение - - каталог поскольку эти фильтры являются специализированными программами для выполнения системой LPD ; обычным пользователям никогда не понадобится их выполнять. Для включения фильтра преобразования, укажите его полное имя в качестве значения соответствующей характеристики для принтера в файле В качестве примера, давайте добавим фильтр преобразования DVI в запись для принтера с новой характеристикой etc/printcap для хоста rose - добавлен фильтр df для bamboo rattanlinediablolpDiablo 630 Line Printer::sh:sd/var/spool/lpd/rattan::lp/dev/lpt0::if/usr/local/libexec/if-simple: bamboopsPSSpanasonicPanasonic KX-P4455 PostScript v51.4::sh:sd/var/spool/lpd/bamboo::lp/dev/ttyd5:ms-parenb cs8 clocal crtscts:rw::if/usr/local/libexec/psif::df/usr/local/libexec/psdf: bin/sh psdf - фильтр принтера, преобразующий DVI в PostScript Установлен в/usr/local/libexec/psdf Вызывается системой lpd при выполнении пользователем команды lpr - d exec/usr/local/bin/dvips - f /usr/local/libexec/lprps входного потока, представляющего собой задание для печати. Затем запускается фильтр PostScript - принтера LPD этому скрипту. Команда будет использовать эти аргументы для учета распечатанных страниц. Поскольку нет фиксированного набора шагов для установки фильтров преобразования, я просто представлю дополнительные примеры. Используйте их в качестве руководства при создании собственных фильтров. Используйте их непосредственно, если нужно. Следующий пример фильтра преобразует растровый файл точнее, GIF-файл для печати на принтере Hewlett Packard LaserJet III-Si: bin/sh hpvf - Преобразовать GIF-файлы в HP/PCL и напечатать Установлен в/usr/local/libexec/hpvf PATH/usr/X11R6/bin:PATH; export PATH giftopnm ppmtopgm pgmtopbm pbmtolj - resolution 300 exit 0 exit 2 Он работает путем преобразования GIF-файла в переносимый формат anymap, его - - в переносимый формат graymap, затем - - в переносимый bitmap, а уже его - - в данные, подходящие для LaserJet/PCL. с записью для принтера, в которой используется представленный выше фильтр: Следующий скрипт является фильтром преобразования для печати данных troff, получаемых из системы набора groff, на PostScript - принтере bin/sh pstf - Преобразует выдаваемые groff данные troff в PS и печатает. Установлен в/usr/local/libexec/pstf exec grops /usr/local/libexec/lprps для взаимодействия с принтером. Если принтер подключен к параллельному порту, придется использовать следующий скрипт: bin/sh pstf - Преобразует выдаваемые groff данные troff в PS и печатает. Установлен в/usr/local/libexec/pstf exec grops Вот и все. Вот какую запись надо добавить в файл чтобы включить этот фильтр: Вот пример, который пригодится старым специалистам по языку FORTRAN. Это фильтр для печати текста программы на языке FORTRAN на любом принтере, который может непосредственно печатать обычный текст. Мы установим его для принтера bin/sh hprf - Фильтр текста на языке FORTRAN для LaserJet 3si: Установлен в/usr/local/libexec/hprf printf 033 k2G fpr printf 033 l0H exit 0 exit 2 чтобы включить этот фильтр: Перейдем к последнему, более сложному примеру. Мы добавим фильтр DVI для уже использовавшегося принтера LaserJet по имени Сначала простая часть: изменить файл указав местонахождение фильтра DVI: А теперь - - часть посложнее: создать фильтр. Для этого нам понадобится программа преобразования DVI в LaserJet/PCL. Набор портов FreeBSD см. Набор портов содержит одну: соответствующий пакет называется Установка этого пакета дает нам необходимую программу, которая преобразует DVI в коды, подходящие для LaserJet IIp, LaserJet III и LaserJet 2000. поскольку она не может читать стандартный входной поток. Она хочет работать с именем файла. Что еще хуже, имя файла должно завершаться расширением так что использование стандартного входного потока тоже проблематично. Мы можем обойти эту проблему, создав символическую связь с именем, завершающимся суффиксом тем самым, заставив команду читать из стандартного входного потока. Единственная оставшаяся проблема состоит в том, что мы не можем создавать временную связь в каталоге Символьные связи принадлежат пользователю и группе Фильтр же работает от имени пользователя установлен sticky bit. Фильтр сможет создать связь, но не сможет почистить за собой и удалить ее, поскольку связь будет принадлежать другому пользователю. Вместо этого, фильтр будет создавать символическую связь в текущем рабочем каталоге, которым является каталог спулинга задаваемый характеристикой Это отличное место для выполнения фильтрами своих действий, особенно потому, что иногда в каталоге спулинга места больше, чем в bin/sh hpdf - Печать данных DVI на принтере HP/PCL Установлен в/usr/local/libexec/hpdf PATH/usr/local/bin:PATH; export PATH Определяем функцию для удаления временных файлов. Они существуют в текущем каталоге - в каталоге спулинга для принтера. cleanup rm - f Определяем функцию для обработки критических ошибок: напечатать заданное сообщение и выйти с кодом 2. Код выхода 2 сообщает системе LPD, что не надо повторно пытаться печатать задание. fatal echo 1 2 cleanup exit 2 Если пользователь удаляет задание, система LPD будет посылать сигнал SIGINT, поэтому перехватываем SIGINT и пару других сигналов, чтобы убрать за собой. trap cleanup 1 2 15 Гарантируем, что не конфликтуем с существующими файлами. cleanup Связываем входной файл DVI со стандартным входным потоком файлом для печати. ln - s/dev/fd/0 fatal Cannot symlink/dev/fd/0 Заменяем LF CRLF printf 033 k2G fatal Cannot initialize printer Преобразуем и печатаем. Значение, возвращаемое программой dvilj2p, не надежно, так что мы его игнорируем. dvilj2p - M1 - q - e- Убираем за собой и завершаем работу cleanup exit 0 Все эти фильтры преобразования многое дают для среды печати, но требуют от пользователя указывать в командной строке lpr 1, какой именно фильтр использовать. Если пользователи не особенно разбираются в компьютерах, необходимость указывать опцию фильтра будет их раздражать. Что еще хуже, однако, при неправильном указании опции фильтрования может быть применен фильтр, не соответствующий типу файла, и принтер испортит несколько сотен страниц бумаги. Вместо установки фильтров преобразования, можно попытаться заставить текстовый фильтр поскольку он применяется по умолчанию определять тип файла, который его попросили напечатать, и затем автоматически вызывать соответствующий фильтр преобразования. В этом могут помочь утилиты вроде Конечно, будет сложно различать некоторые типы файлов - - и, конечно же, можно задавать фильтры преобразования только для них. В наборе портов FreeBSD есть текстовый фильтр, выполняющий автоматическое преобразование; это Он может выявлять обычный текст, PostScript и файлы DVI, выполнять соответствующие преобразования и печатать результат. Система спулинга LPD поддерживает еще один тип фильтров, который мы еще не рассматривали: выходные фильтры. Выходной фильтр предназначен только для печати обычного текста, как текстовый фильтр, но с множеством упрощений. Если вы используете выходной фильтр, а текстовый фильтр не задан, то: Система LPD запускает выходной фильтр один раз для всего задания, а не для каждого файла задания. Система LPD не пытается определить начало или конец файлов в задании для выходного фильтра. Система LPD не передает выходному фильтру имя пользователя или хоста, так что этот фильтр не предназначен для учета использования принтера. Фактически, он получает всего два аргумента: для соответствующего принтера. Не соблазняйтесь простотой выходного фильтра. Если вы хотите, чтобы каждый файл в задании начинал печататься с новой страницы, выходной фильтр не поможет. Используйте текстовый фильтр также известный как входной; см. раздел Установка текстового фильтра. Более того, выходной фильтр, фактически, - - более сложный, поскольку он должен проверять посылаемый ему поток байтов в поисках специальных символов-флагов и посылать себе сигналы от имени системы LPD. необходим, если надо выдавать начальные страницы и требуется посылать управляющие последовательности или другие строки инициализации, чтобы можно было напечатать начальную страницу. Но он не поможет, если необходимо учитывать начальные страницы для пользователя, поскольку система LPD не передает выходному фильтру никакой информации о пользователе или хосте. На одном принтере система LPD позволяет совместно с выходным использовать текстовый или другие фильтры. В таких случаях, система LPD будет запускать выходной фильтр только для печати начальной страницы см. раздел Начальные страницы. Система LPD затем предполагает, что выходной фильтр остановится, посылая ему два байта: ASCII 031 и ASCII 001. Когда выходной фильтр видит эти два байта 031, 001, он должен остановиться, посылая себе сигнал LPD закончит выполнение остальных фильтров, она перезапускает выходной фильтр, посылая ему сигнал Если есть выходной фильтр, но нет текстового, и система LPD обрабатывает задания с обычным текстом, LPD использует для выполнения задания выходной фильтр. Как уже было сказано, выходной фильтр будет печатать все файлы задания последовательно, без прогонов страниц или других настроек бумаги, а это вряд ли вас устроит. Почти во всех случаях необходим текстовый фильтр. которую мы представили ранее как текстовый фильтр, может также работать как выходной фильтр. Если срочно необходим простой выходной фильтр, но вы не хотите писать код для выявления байтов и посылки сигнала, попробуйте использовать в скрипт командного интерпретатора для обработки любых кодов инициализации, которые может потребовать принтер. поставляемая в составе двоичного дистрибутива FreeBSD, представляет собой текстовый входной фильтр, который может печатать с отступом если задание послано командой пропускать все символы на печать если задание послано командой настраивать позицию печати при получении в задании символов забоя и табуляции, а также учитывать количество напечатанных страниц. Она может также использоваться как выходной фильтр. подходит для многих сред печати. И хотя она не позволяет посылать на принтер инициализационные последовательности, легко написать скрипт командного интерпретатора, который будет выполнять необходимую инициализацию, а затем вызывать корректно выполняла учет страниц, ей необходимо указать корректные значения характеристик Она использует эти значения для определения того, сколько текста может поместиться на странице и сколько страниц было в задании пользователя. Подробнее об учете использования принтера см. в разделе Учет использования принтера. При наличии множества пользователей, использующих различные принтеры, вероятно, можно считать начальные страницы неизбежным злом. Начальные страницы, которые также называют разделительными страницами, идентифицируют, кому принадлежат задания после их печати. Обычно информация на них выдается большими, жирными буквами, возможно, с декоративными рамочками, чтобы в пачке распечаток они отличались от реальных документов, образующих задания пользователей. Они позволяют пользователям быстро находить свои задания. Очевидный недостаток выдачи начальных страниц состоит в том, что для каждого задания надо печатать на одну страницу больше, причем, страница эта хоть сколько-нибудь нужна несколько минут, а затем она оказывается в мусорной корзине или сдается в макулатуру. Учтите, что начальная страница выдается в начале задания, а не перед каждым файлом, так что бумаги может теряться не так уж и много. Система LPD может выдавать заголовочные страницы для ваших распечаток автоматически, если ваш принтер может непосредственно печатать обычный текст. Если используется PostScript - принтер, потребуется внешняя программа для генерации начальной страницы; см. Начальные страницы на PostScript - принтерах. В разделе Простая настройка принтера мы отключили выдачу начальных страниц, задав характеристику Для включения выдачи начальных страниц на принтер, просто удалите характеристику Кажется слишком просто, правда? Вы правы. Может потребоваться задать выходной фильтр для посылки строк инициализации на принтер. Вот пример выходного фильтра для Hewlett Packard PCL-совместимых принтеров: bin/sh hpof - Выходной фильтр для Hewlett Packard PCL-совместимых принтеров Установлен в/usr/local/libexec/hpof printf 033 k2G exit 2 exec/usr/libexec/lpr/lpf который мы представили ранее; мы включили выдачу начальных страниц и добавили показанный выше выходной фильтр: Теперь, когда пользователи выдают задания на принтер они получают начальную страницу с каждым заданием. Если пользователи хотят тратить время на поиск своих распечаток, они могут подавить вывод начальных страниц, посылая задание с опцией Замечание: Система LPD выдает символ прогона страницы form feed после начальной страницы. Если ваш принтер использует другой символ или последовательность символов для выброса напечатанной страницы, укажите их в качестве значения характеристики Включая выдачу начальных страниц, система LPD будет выдавать длинный длинный заголовок, целую страницу с большими буквами, идентифицирующими пользователя, хост и задание. Ниже представлен пример kelly напечатала задание по имени outline с хоста Система LPD добавляет прогон страницы после этого текста, чтобы задание начиналось с новой страницы если только вы не указали характеристику Если вы предпочитаете, чтобы система LPD создавала короткий заголовок, укажите характеристику Начальная страница будет иметь следующий вид: Также по умолчанию система LPD печатает начальную страницу перед заданием. Для изменения порядка на обратный, укажите характеристику Использование встроенных начальных страниц системы LPD порождает определенную парадигму учета использования принтера: начальные страницы пользователи не должны оплачивать. Поскольку выходной фильтр - - единственная внешняя программа, управляющая выдачей начальных страниц, которая может выполнять учет, а ей не передают информацию о пользователе или хосте и учётный файл, так что, она не имеет никакого представления о том, на чей счет отнести использование принтера. Также недостаточно просто добавлять одну страницу в текстовом фильтре или в любом из фильтров преобразований которые имеют информацию о пользователе и хосте, поскольку пользователи могут подавлять выдачу начальных страниц с помощью опции И их заставят оплачивать начальные страницы, которые они не печатали. Понятно, что опцию будут использовать в большинстве случаев те, кто озабочен проблемами окружающей среды, но вы никак не можете стимулировать ее использование. Также недостаточно, чтобы каждый из фильтров генерировал собственные начальные страницы и, тем самым, мог их учитывать. Если пользователи захотят отказаться от выдачи начальных страниц и укажут опцию они все равно их получат, и будут вынуждены оплатить, поскольку система LPD не передает информации о наличии опции ни одному из этих фильтров. Итак, что же вы можете сделать? Принять парадигму системы LPD и сделать начальные страницы бесплатными. Установить альтернативную систему вместо LPD, такую как LPRng. В разделе Альтернативы стандартному спулеру представлена дополнительная информация о других системах спулинга, которые можно использовать вместо LPD. Написать умный выходной фильтр. Обычно выходной фильтр не предназначен для выполнения чего-то кроме инициализации принтера и простых преобразований символов. Он подходит для начальных страниц и заданий с обычным текстом когда нет текстового входного фильтра. Но, если есть текстовый фильтр для заданий с обычным текстом, то система LPD будет запускать выходной фильтр только для начальных страниц. И выходной фильтр может анализировать текст начальной страницы, которую генерирует система LPD, чтобы определить, на счет какого пользователя и хоста отнести начальную страницу. Единственная проблема этого метода в том, что выходной фильтр все равно не знает, какой учетный файл использовать ему не передают имя файла, заданное в качестве значения характеристики но при наличии хорошо известного учетного файла, его имя можно явно указать в выходном фильтре. Для упрощения этапа анализа задайте характеристику Повторимся, что это может оказаться слишком сложным, и пользователи, несомненно, больше оценят великодушного системного администратора, который сделает начальные страницы бесплатными. Как было описано выше, система LPD может генерировать начальную страницу в виде обычного текста, что подходит для многих принтеров. Конечно, PostScript - принтеры не могут непосредственно печатать обычный текст, так что, для них возможность выдачи начальных страниц системы LPD бесполезна - - или почти бесполезна. Один очевидный способ получить начальные страницы - - заставить каждый фильтр преобразования и текстовый фильтр генерировать начальную страницу. Эти фильтры должны использовать аргументы имя пользователя и хост для генерации соответствующей начальной страницы. Недостаток этого метода состоит в том, что пользователи будут всегда получать начальные страницы, даже если будут посылать задания с помощью команды Давайте рассмотрим этот метод детально. Следующий сценарий принимает три аргумента регистрационное имя пользователя, имя хоста и имя задания и создает простую начальную страницу на языке PostScript: bin/sh make-ps-header - выдать начальную страницу на языке PostScript в stdout Установлен в/usr/local/libexec/make-ps-header Это единицы измерения PostScript 72 на дюйм. Измените значения для A4 или другого используемого формата бумаги: pagewidth612 pageheight792 border72 Проверяем аргументы if - ne 3 ; then echo Usage: basename 0 user host job 1 2 exit 1 fi Сохраняем значения в переменных, в основном, для упрощения понимания последующего PostScript-кода. user1 host2 job3 datedate Посылаем PostScript-код в stdout. exec cat EOF %!PS % % Гарантируем, что не будем влиять на следующее далее задание пользователя % save % % Делаем тонкую некрасивую рамку по краям бумаги. % border border moveto pagewidth border 2 mul sub 0 rlineto 0 pageheight border 2 mul sub rlineto currentscreen 3 - 1 roll pop 100 3 1 roll setscreen border 2 mul pagewidth sub 0 rlineto closepath 0.8 setgray 10 setlinewidth stroke 0 setgray % % Выдаем регистрационное имя пользователя, красивыми, большими и рельефными буквами %/Helvetica-Bold findfont 64 scalefont setfont pagewidth user stringwidth pop sub 2 div pageheight 200 sub moveto user show % % Теперь выдаем всякие детали %/Helvetica findfont 14 scalefont setfont/y 200 def Job: Host: Date: 200 y moveto show/y y 18 sub def forall/Helvetica-Bold findfont 14 scalefont setfont/y 200 def job host date 270 y moveto show/y y 18 sub def forall % % Вот и все % restore showpage EOF Теперь, каждый из фильтров преобразования и текстовый фильтр может вызвать этот сценарий, чтобы сначала сгенерировать начальную страницу, а затем напечатать задание пользователя. Вот фильтр преобразования DVI, представленный ранее в этом документе, измененный для выдачи начальной страницы: bin/sh psdf - фильтр преобразования DVI в PostScript Установлен в/usr/local/libexec/psdf Вызывается системой lpd при выполнении пользователем команды lpr - d origargs fail echo 1 2 exit 2 while getopts x:y:n:h: option; do case option in xy ;; Ignore n loginOPTARG ;; h hostOPTARG ;; echo LPD started basename 0 wrong. 1 2 exit 2 ;; esac done login fail No login name host fail No host name /usr/local/libexec/make-ps-header login host DVI File/usr/local/bin/dvips - f eval/usr/local/libexec/lprps origargs Обратите внимание, как фильтр должен анализировать список аргументов, чтобы определить имя пользователя и имя хоста. Анализ аргументов в других фильтрах аргументов выполняется точно так же. Текстовый фильтр принимает, однако, немного другой набор аргументов см. раздел Как работают фильтры. Как уже упоминалось, представленная выше схема хотя и достаточно проста, но не позволяет учесть опцию подавить вывод начальной страницы опция Если пользователи хотят сберечь деревья или несколько копеек, если вы берете деньги и за начальные страницы, они не смогут этого сделать, поскольку каждый фильтр будет выдавать начальную страницу для каждого задания. Чтобы позволить пользователям отключать выдачу начальной страницы для отдельного задания, надо будет использовать прием, представленный в разделе Учет начальных страниц: написать выходной фильтр, который анализирует сгенерированную системой LPD начальную страницу и выдает ее PostScript - версию. Если пользователь посылает задание командой система LPD не будет генерировать начальную страницу, как и ваш выходной фильтр. В противном случае, ваш выходной фильтр будет читать текст, полученный от системы LPD, и посылать на принтер соответствующий PostScript - код для начальной страницы. Если вы используете PostScript - принтер с последовательным интерфейсом, можно использовать систему которая включает выходной фильтр, делающий то, что описано выше. Помните, что программа не учитывает напечатанные пользователями начальные страницы. FreeBSD поддерживает печать по сети: посылку заданий на удаленные принтеры. Печатью по сети обычно называют две разные ситуации: Работа с принтером, подключенным к удаленному хосту. Вы устанавливаете принтер с обычным последовательным или параллельным интерфейсом на одном хосте. Затем, вы настраиваете систему LPD для обеспечения доступа к принтеру с других хостов в сети. В разделе Принтеры, установленные на удаленных хостах описано, как это сделать. Работа с принтером, подключенным непосредственно к сети. Принтер имеет сетевой интерфейс, кроме или вместо более традиционного последовательного или параллельного. Такой принтер может работать следующим образом: Он может понимать протокол LPD и даже поддерживать очереди заданий с удаленных хостов. В этом случае, он работает просто как обычный хост с системой LPD. Для настройки такого принтера следуйте той же процедуре, которая описана в разделе Принтеры, установленные на удаленных хостах. Он может поддерживать получение потока данных по сети. В этом случае, вы подключаете принтер к одному из хостов в сети, делая этот хост ответственным за поддержку очередей заданий и их посылку на принтер. В разделе Принтеры с сетевыми интерфейсами представлен ряд советов по установке таких принтеров. Система спулинга LPD имеет встроенную поддержку посылки заданий на другие хосты, на которых тоже работает система LPD или совместимая с LPD. Это позволяет установить принтер на одном хосте и сделать его доступным с других хостов. Она также работает с принтерами, имеющими сетевые интерфейсы и понимающими протокол LPD. Для обеспечения такого рода удаленной печати, сначала установите принтер на одном хосте, хосте принтера, с помощью процедуры, описанной в разделе Простая настройка принтера. Выполните любые необходимые дополнительные настройки, как описано в разделе Расширенная настройка принтера. Не забудьте протестировать принтер и убедиться, обеспечивает ли он заданные возможности системы Если вы используете принтер с сетевым интерфейсом, совместимый с системой LPD, упомянутым в обсуждении выше хостом принтера будет сам принтер, а в качестве имени принтера будет выступать имя, которое вы сконфигурировали для принтера. См. документацию, поставляемую с принтером и/или сетевым интерфейсом принтера. Подсказка: Если вы используете Hewlett Packard Laserjet, то при задании принтеру имени будет автоматически выполняться преобразование символа LF в последовательность CRLF, так что, сценарий Затем, на других хостах, для которых вы хотите обеспечить доступ к принтеру, создайте запись в их файлах Дайте записи любое подходящее имя. Для простоты, однако, имеет смысл задавать такое же имя и псевдонимы, как и на хосте принтера. оставьте пустой, указав это явно Система LPD будет сохранять задания в нем, прежде чем они будут посланы на хост принтера. Вот и все. Не нужно перечислять фильтры преобразования, размеры страницы и вообще ничего больше в файле Рассмотрим пример. На хосте Мы позволим пользователям хоста печатать на эти принтеры. Вот файл мы добавили две записи для принтеров на хосте etc/printcap для хоста orchid - добавлены удаленные принтеры на rose teak - локальный принтер; он подключен непосредственно к orchid: teakhplaserjetHewlett Packard LaserJet 3Si::lp/dev/lpt0:sd/var/spool/lpd/teak:mx0::if/usr/local/libexec/ifhp::vf/usr/local/libexec/vfhp::of/usr/local/libexec/ofhp: rattan подключен к rose; посылать задания для rattan на хост rose: rattanlinediablolpDiablo 630 Line Printer::lp:rmrose:rprattan:sd/var/spool/lpd/rattan: bamboo тоже подключен к rose: bamboopsPSSpanasonicPanasonic KX-P4455 PostScript v51.4::lp:rmrose:rpbamboo:sd/var/spool/lpd/bamboo: Если, например, пользователь на и учтет, что печатается задание DVI. Как только на хосте Файл будет ждать в очереди на пока, наконец, не будет напечатан. Он будет преобразован из формата DVI в PostScript поскольку Часто при покупке сетевой карты для принтера можно приобрести две версии: эмулирующую спулер более дорогая версия или просто позволяющую принимать на принтер данные так, как если бы использовался последовательный или параллельный порт более дешевая версия. В этом разделе описано, как использовать более дешёвую версию. Использование более дорогой версии описано в предыдущем разделе Принтеры, установленные на удаленных хостах. позволяет указывать, какой последовательный или параллельный интерфейс использовать, и при использовании последовательного интерфейса, какую установить скорость, использовать ли управление потоком, размер отступов для табуляций, преобразование символов новой строки и другие параметры. Но нет способа указать подключение к принтеру, прослушивающему TCP/IP или другой сетевой порт. Для посылки данных на подключенный к сети принтер, надо разработать программу взаимодействия, которую могут вызывать текстовый фильтр и фильтры преобразований. Вот один из примеров: скрипт принимает все данные со стандартного входного потока и посылает их на принтер, подключенный к сети. Мы указываем имя хоста принтера в качестве первого аргумента, а номер порта, к которому надо подключаться - - в качестве второго аргумента команды Учтите, что поддерживается только одностороннее взаимодействие с ОС FreeBSD на принтер; многие сетевые принтеры поддерживают двустороннее взаимодействие, и вы можете захотеть его использовать для получения состояния принтера, учета и т.п. usr/bin/perl netprint - Текстовый фильтр для принтера, подключенного к сети Установлен в/usr/local/libexec/netprint ARGV eq 1 die Usage: 0 printer-hostname port-number ; printerhost ARGV0; printerport ARGV1; require ; ignore, ignore, protocol getprotobynametcp; ignore, ignore, ignore, ignore, address gethostbynameprinterhost; sockaddr packS n a4 x8, AFINET, printerport, address; socketPRINTER, PFINET, SOCKSTREAM, protocol die Cant create TCP/IP stream socket: !; connectPRINTER, sockaddr die Cant contact printerhost: !; while STDIN print PRINTER; exit 0; Затем можно использовать этот сценарий в различных фильтрах. Пусть у нас есть строчный принтер Diablo 750-N, подключенный к сети. Принтер принимает данные на печать через порт 5100. Имя хоста для принтера - - scrivener. Вот текстовый фильтр для этого принтера: bin/sh diablo-if-net - Текстовый фильтр для принтера Diablo scrivener, прослушивающего порт 5100. Установлен в/usr/local/libexec/diablo-if-net exec/usr/libexec/lpr/lpf /usr/local/libexec/netprint scrivener 5100 В этом разделе представлена информация об ограничении доступа к принтеру. Система LPD позволяет управлять тем, кто может обращаться к принтеру, как локально, так и удаленно, смогут ли они печатать несколько копий, насколько большими могут быть их задания и насколько могут разрастаться очереди печати. Система LPD позволяет пользователям легко печатать несколько копий файла. Пользователи могут печатать задания с помощью команды например и получать пять копий каждого файла в задании. Хорошо это или нет - - решать вам. Если вы считаете, что многочисленные копии только изнашивают ваши принтеры, можете отключить опцию Когда пользователи пошлют задания с опцией Учтите, что если вы настроили удаленный доступ к принтеру см. раздел Принтеры, установленные на удаленных хостах, необходимо задать характеристику удаленных хостов, иначе пользователи все равно смогут посылать задания с несколькими копиями с других хостов. Рассмотрим пример. Вот файл вполне надежен, поэтому мы разрешим печатать на него несколько копий, но лазерный принтер несколько более изношен, поэтому мы отключим для него печать нескольких копий, добавив характеристику etc/printcap для хоста rose - запрещает печать нескольких копий на bamboo rattanlinediablolpDiablo 630 Line Printer::sh:sd/var/spool/lpd/rattan::lp/dev/lpt0::if/usr/local/libexec/if-simple: bamboopsPSSpanasonicPanasonic KX-P4455 PostScript v51.4::sh:sd/var/spool/lpd/bamboo:sc::lp/dev/ttyd5:ms-parenb cs8 clocal crtscts:rw::if/usr/local/libexec/psif::df/usr/local/libexec/psdf: и раз уж мы его меняем, давайте отключим печать нескольких копий для принтера etc/printcap для хоста orchid - отключена печать нескольких копий на локальном принтере teak и на удаленном принтере bamboo teakhplaserjetHewlett Packard LaserJet 3Si::lp/dev/lpt0:sd/var/spool/lpd/teak:mx0:sc::if/usr/local/libexec/ifhp::vf/usr/local/libexec/vfhp::of/usr/local/libexec/ofhp: rattanlinediablolpDiablo 630 Line Printer::lp:rmrose:rprattan:sd/var/spool/lpd/rattan: bamboopsPSSpanasonicPanasonic KX-P4455 PostScript v51.4::lp:rmrose:rpbamboo:sd/var/spool/lpd/bamboo:sc: но это не мешает пользователям просто выполнить команду lpr 1 несколько раз или просто послать один и тот же файл несколько раз в одном задании следующим образом: Есть много способов предотвратить такое некорректное использование включая его игнорирование, которые вы можете разработать самостоятельно. Вы можете управлять тем, кто и на какие принтеры может печатать, с помощью механизма групп UNIX и характеристики Просто поместите пользователей, которым необходимо предоставить доступ к принтеру, в определенную группу, a затем укажите эту группу в качестве значения характеристики Пользователи, не входящие в эту группу включая при попытке печатать на контролируемый принтер. подавить выдачу нескольких копий, при необходимости, надо указывать характеристику Например, давайте разрешим всем обращаться к принтеру но только пользователи группы etc/printcap для хоста rose - ограничение группы для bamboo rattanlinediablolpDiablo 630 Line Printer::sh:sd/var/spool/lpd/rattan::lp/dev/lpt0::if/usr/local/libexec/if-simple: bamboopsPSSpanasonicPanasonic KX-P4455 PostScript v51.4::sh:sd/var/spool/lpd/bamboo:sc:rgartists::lp/dev/ttyd5:ms-parenb cs8 clocal crtscts:rw::if/usr/local/libexec/psif::df/usr/local/libexec/psdf: Конечно, в результате, любой пользователь учетных записей и так немного, и вы хотите, чтобы все они имели доступ к принтеру. Или нет. Замечание: Для принтера может быть только одна ограниченная группа. Если к принтеру обращается несколько пользователей, вам, возможно, понадобиться установить ограничение на максимальный размер файлов, которые пользователи могут посылать на печать. В конечном итоге, размер файловой системы, в которой находятся каталоги спулинга, ограничен, и надо гарантировать, что в нем останется место для заданий других пользователей. Размер задается в блоках, размер которых, составляет 1024 байта. Если задать этой характеристике значение ноль, размер файла ограничиваться не будет; однако, если характеристика вообще не задана, то будет использоваться стандартное ограничение - - 1000 блоков. не к общему размеру задания. Система LPD не откажется печатать файл больше максимально допустимого для принтера размера. Вместо этого, она поставит в очередь часть файла до заданного предела, и она будет напечатана. Остальное не будет напечатано. Правильность такого поведения не бесспорна. Давайте установим ограничения для принтеров из наших примеров, Поскольку PostScript - файлы этих художников обычно бывают весьма большими, мы ограничим их размер пятью мегабайтами. Мы не будем ограничивать использование обычного текстового строчного принтера: etc/printcap для хоста rose Без ограничения на размер задания: rattanlinediablolpDiablo 630 Line Printer::sh:mx0:sd/var/spool/lpd/rattan::lp/dev/lpt0::if/usr/local/libexec/if-simple: Размер файла - не более пяти мегабайт: bamboopsPSSpanasonicPanasonic KX-P4455 PostScript v51.4::sh:sd/var/spool/lpd/bamboo:sc:rgartists:mx5000::lp/dev/ttyd5:ms-parenb cs8 clocal crtscts:rw::if/usr/local/libexec/psif::df/usr/local/libexec/psdf: Опять таки, ограничения применяются только для локальных пользователей. Если вы настроили удаленный доступ к принтерам, для удаленных пользователей эти ограничения не действуют. Надо задать характеристику Есть еще один специализированный способ ограничить размер заданий печати с удаленных принтеров; см. раздел Ограничение печати заданий с удаленных хостов. Вы можете управлять тем, с каких удаленных хостов локальная система LPD принимает запросы, с помощью файлов Система LPD проверяет, поступает ли входящий запрос с хоста, указанного в одном из этих файлов. Если нет, система LPD отвергает запрос. Формат этих файлов простой: по одному имени хоста в строке. Учтите, что файл Если любой другой хост попытается обратиться к системе LPD хоста его задание будет отвергнуто. Вы можете управлять тем, сколько свободного места должно оставаться в файловой системе, в которой находится каталог спулинга. Создайте файл с именем в каталоге спулинга для локального принтера. Вставьте в этот файл число, задающее, сколько блоков диска по 512 байтов должно быть свободными, чтобы удаленное задание было принято. Это позволяет гарантировать, что удаленные пользователи не заполнят вашу файловую систему. Можно также использовать этот механизм для предоставления определенного преимущества локальным пользователям: они смогут ставить задания в очередь еще долго после того, как свободного места на диске станет меньше, чем указано в файле Например, давайте добавим файл каталог спулинга для этого принтера; вот запись для принтера bamboopsPSSpanasonicPanasonic KX-P4455 PostScript v51.4::sh:sd/var/spool/lpd/bamboo:sc:rgartists:mx5000::lp/dev/ttyd5:ms-parenb cs8 clocal crtscts:rw:mx5000::if/usr/local/libexec/psif::df/usr/local/libexec/psdf: Укажем, что в файловой системе должно быть три мегабайта что составляет 6144 блоков диска свободного места, чтобы система LPD принимала удаленные задания: Вы можете управлять тем, какие удаленные пользователи смогут печатать на локальные принтеры, задавая характеристику указана в записи для локально подключенного принтера, система LPD будет принимать задания с удаленных хостов, если пользователь, посылающий задание, также имеет учетную запись с тем же именем на локальном хосте. В противном случае, система LPD отвергает задание. Эта возможность особенно полезна в среде, где есть, например, несколько отделов, совместно использующих сеть, и некоторые пользователи могут переходить из отдела в отдел. Если дать им учетные записи в системах, они смогут использовать принтеры из систем в своих отделах. Если вы хотели бы позволить им использовать только принтеры, но не остальные ресурсы вашего компьютера, можно дать им формальные учетные записи, без начального каталога и с бесполезным начальным командным интерпретатором вроде Итак, вам надо брать деньги за распечатки. А почему нет? Бумага и чернила стоят денег. А есть еще и затраты на поддержку в работоспособном состоянии - - принтеры имеют множество движущихся частей и склонны к поломкам. Вы проанализировали состояние принтеров, объемы использования и затраты на их эксплуатацию, и получили определенную стоимость страницы или фута, метра или чего угодно. Теперь, как же начать реально учитывать распечатки? Итак, плохая новость состоит в том, что система спулинга LPD в этом не сильно поможет. Учет сильно зависит от типа используемого принтера, форматов распечаток и ваших требований к оплате использования принтеров. Для реализации учета надо изменить текстовый фильтр принтера чтобы учитывать обычные текстовые задания и фильтры преобразования чтобы учитывать другие форматы файлов, для подсчета страниц или запроса количества напечатанных страниц у принтера. Не получится обойтись использованием простого выходного фильтра, поскольку он не может выполнять учет. См. раздел Фильтры. Периодический учет - более распространенный способ, возможно, потому, что он проще. Когда кто-то печатает задание, фильтр регистрирует пользователя, хост и количество страниц в учетном файле. Каждый месяц, семестр, год или раз в любой желаемый период времени, вы собираете учетные файлы для различных принтеров, суммируете напечатанные каждым пользователем страницы и выставляете суммы за использование. Затем вы очищаете все регистрационные файлы, начиная с чистого листа новый отчетный период. Постоянный учет используется реже, вероятно, потому, что сложнее в реализации. Этот метод требует от фильтров выставлять пользователям суммы за распечатки сразу после использования принтеров. Как и проверка дисковых квот, этот учет выполняется немедленно. Вы можете не давать пользователям печатать, если баланс на их счету стал отрицательным, а также предоставить им способ проверить и изменить свои квоты печати. Но этот метод требует поддержки базы данных для отслеживания пользователей и квот. Система спулинга LPD легко поддерживает оба метода: поскольку вы в большинстве случаев должны предоставить фильтры, вам придется предоставить и код для учета. Но есть и положительный момент: методы учета могут быть сколько угодно гибкими. Например, можно выбрать периодический или постоянный учет. Можно выбрать, какую именно информацию регистрировать: имена пользователей, имена хостов, типы заданий, количество напечатанных страниц, квадратные метры использованной бумаги, продолжительность печати заданий, и т.д. Это делается путем изменения фильтров так, чтобы они сохраняли соответствующую информацию. В составе FreeBSD поставляется две программы, которые можно сразу использовать для организации простой системы периодического учета. Речь идет о текстовом фильтре описанном в разделе lpf: текстовый фильтр, и о программе pac 8, обеспечивающей сбор и суммирование записей из учетных файлов принтеров. Как уже упоминалось в разделе, посвященном фильтрам Фильтры, система LPD при запуске текстового фильтра и фильтров преобразований передает им имя учетного файла в командной строке. Фильтры могут использовать соответствующий аргумент, чтобы определить, куда записывать учетную информацию. Имя этого файла берется из значения характеристики и, если не заданно как абсолютное, интерпретируется относительно каталога спулинга. использует эти аргументы для определения количества бумаги, которая будет использована. После посылки файла на принтер она вносит запись в учетный файл. Эти записи имеют следующий вид: 2.00 rose:andy 3.00 rose:kelly 3.00 orchid:mary 5.00 orchid:mary 2.00 orchid:zhang Следует использовать отдельный учетный файл для каждого принтера, поскольку программа не реализует механизм блокирования файлов, и два экземпляра могут повредить записи друг друга, если записывают одновременно в один и тот же файл. Простой способ выделить отдельный учетный файл для каждого принтера - - использовать характеристику Тогда каждый учетный файл окажется в каталоге спулинга соответствующего принтера и будет назван Когда вы будете готовы выставить пользователям счет за распечатки, запустите программу pac 8. Просто перейдите в каталог спулинга принтера, учетную информацию которого вы хотите обработать, и введите команду Вы получите итоговые суммы в долларах, как показано ниже: подсчитывать итоговые суммы. Эта опция работает, только если в качестве значения характеристики Сортировать отчет по сумме, а не по имени пользователя в алфавитном порядке. Игнорировать имя хоста в учетных файлах. При указании этой опции, пользователь считается тем же, что и пользователь Обычно эти пользователи считаются разными. долларов за страницу или за фут, вместо использования значения характеристики или двух центов как принято по умолчанию. Можно задавать как число с плавающей запятой. Изменить порядок сортировки. Создать итоговый учетный файл и очистить учетный файл. В стандартном отчете, который создает команда pac 8, выдается количество страниц, напечатанное каждым из пользователей с различных хостов. Если для вас хосты не имеют значения поскольку пользователи могут работать на любом хосте, выполните команду по умолчанию - - 200, или 2 цента за страницу. Укажите в качестве значения этой характеристики, в сотых долях цента, стоимость страницы или фута, исходя из которой вы хотите брать деньги за распечатки. Это значение можно переопределить при вызове команды pac 8 с помощью опции Но при использовании опции стоимость надо указывать в долларах, а не в сотых долях цента. Например, команда приводит к тому, что страница будет стоить один доллар пятьдесят центов. Используя эту опцию, можно фактически начинать грести деньги лопатой. Наконец, при выполнении команды итоговая информация будет сохранена в итоговом учетном файле, имя которого строится как имя учетного файла принтера с суффиксом Затем учетный файл принтера очищается. Когда команда pac 8 выполняется повторно, она перечитывает итоговый файл для получения начальных сумм, а затем добавляет информацию из обычного учетного файла. Для выполнения хоть отдаленно точного учета надо уметь определять, сколько бумаги использовано для печати задания. Это - - основная проблема учета использования принтеров. Для обычных текстовых заданий решить эту проблему не сложно: надо считать, сколько строк входит в задание, и сравнивать с количеством строк на страницу, которые поддерживает принтер. Не забывайте учитывать символы забоя в файлах, которые приводят к перепечатке строк поверх, а также длинные логические строки, которые переносятся на несколько физических. представленный в разделе lpf: текстовый фильтр учитывает эти вещи при выполнении учета. Если вы пишете текстовый фильтр, который должен осуществлять учет, может иметь смысл просмотреть исходный код программы Но как обрабатывать файлы других форматов? Ну, для преобразования из DVI в формат LaserJet или из DVI в PostScript, можно в фильтре анализировать диагностические результаты команды чтобы определить, сколько страниц было преобразовано. Может оказаться возможным применить этот прием и для других форматов файлов и программ преобразования. Но эти методы несовершенны из-за того, что принтер мог фактически и не напечатать все эти страницы. Например, он мог замять бумагу, в нем мог закончиться тонер или он мог вообще взорваться - - и пользователю все равно пришлось бы платить. Есть только один надежный способ точного учета. Купите принтер, который может сообщать, сколько бумаги он использовал, и подключите его через последовательный порт или по сети. Практически все PostScript - принтеры поддерживают такую возможность. Другие модели - - тоже сетевые лазерные принтеры Imagen, например. Измените фильтры для этих принтеров так, чтобы получать количество использованных страниц после печати каждого задания, и пусть они записывают учетную информацию только на основе этого значения. Не надо ни считать строки, ни выполнять чреватую ошибками обработку файла. Конечно, всегда можно поступить великодушно и не брать денег за распечатки. В этом разделе описано, как использовать настроенные принтеры в ОС FreeBSD. Вот сводка команд пользовательского уровня: Есть также административная команда, lpc 8, описанная в разделе Администрирование спулера LPD, используемая для управления принтерами и их очередями. позволяющую указать, с каким принтером/очередью из указанных в файле работать. Это позволяет посылать, удалять и проверять задания на разных принтерах. Если вы не используете опцию эти команды используют принтер, указанный в качестве значения переменной среды Наконец, если переменная среды не задана, эти команды по умолчанию направляются на принтер по имени Далее термин стандартный принтер означает принтер, указанный переменной среды Для печати файлов, выполните команду: Эта команда печатает каждый из перечисленных файлов на стандартный принтер. Если файлы не указаны, команда lpr 1 читает данные для печати со стандартного входного потока. Например, следующая команда печатает некоторые важные системные файлы: Для выбора конкретного принтера, введите: Поскольку для команды lpr 1 файлы не указаны, команда читает данные для печати из стандартного входного потока, который содержит результат выполнения команды Команда lpr 1 может также принимать множество опций для управления форматированием, применения преобразований, печати нескольких копий и т.д. Дополнительную информацию см. в разделе Опции печати. При печати с помощью команды lpr 1, данные, которые надо напечатать, помещаются вместе в пакет, который называют заданием печати, и посылаются системе спулинга LPD. Каждый принтер имеет очередь заданий, и ваше задание ждет в этой очереди вместе с другими вашими заданиями и заданиями других пользователей. Принтер печатает эти задания по принципу первым пришло, первым выполнено. Для получения очереди стандартного принтера, введите команду lpq 1. Чтобы указать конкретный принтер, используйте опцию Вот пример результатов выполнения команды есть три задания. Первое задание, посланное пользователем kelly, получило номер задания 9. Каждое задание для принтера получает уникальный номер задания. В большинстве случаев номер задания можно игнорировать, но он потребуется, если надо будет отменить задание; подробнее об этом см. в разделе Удаление заданий. Задание номер 9 состоит из двух файлов; несколько файлов, указанных в командной строке lpr 1, считаются частью одного задания. Это задание является текущим активным обратите внимание на слово в столбце Rank, т.е. принтер должен сейчас печатать это задание. Второе задание состоит из данных, передаваемых в качестве стандартного входного потока команде lpr 1. Третье задание послано пользователем оно намного больше по объему. Полное имя файла, который печатается, слишком длинное и не помещается, поэтому команда lpq 1 просто выдает три точки. Самая первая строка результатов команды lpq 1 тоже полезна: она говорит о том, что сейчас делает принтер или, по крайней мере, что он делает по мнению системы LPD. для генерации подробного длинного листинга. Вот пример результатов выполнения команды Если вы передумали печатать задание, можно удалить его из очереди заданий с помощью команды lprm 1. Часто можно использовать lprm 1 для удаления активного задания, но часть задания или даже все задание все равно может быть напечатано. Для удаления задания со стандартного принтера сначала используйте команду lpq 1 для поиска номера задания. Затем введите команду: Для удаления задания с указанного принтера, задайте опцию option. Следующая команда удаляет задание номер 10 из очереди заданий принтера Удаляет все задания со стандартного принтера, принадлежащие пользователю, который выполнил команду. Удаляет все задания для стандартного принтера, принадлежащие указанному Суперпользователь может удалять задания других пользователей; обычный пользователь может удалять только собственные задания. Если в командной строке не указаны номер задания, имя пользователя, или указана опция команда lprm 1 удаляет текущее активное задание на стандартном принтере, если оно принадлежит вам. Суперпользователь может удалять любое активное задание. для любого из перечисленных выше сокращений, чтобы работать с любым необходимым принтером вместо стандартного. Например, следующая команда удаляет все задания текущего пользователя из очереди принтера по имени Замечание: Если вы работаете в сетевой среде, команда lprm 1 позволит вам удалять задания только с хоста, с которого они были посланы, даже если тот же принтер доступен и с других хостов. Следующая последовательность команд демонстрирует это: Команда lpr 1 поддерживает несколько опций, управляющих форматированием текста, преобразованием графики и других форматов файлов, выдачей нескольких копий, обработкой задания и др. В этом разделе описаны эти опции. Следующие опции команды lpr 1 управляют форматированием файлов в задании. Используйте эти опции, если задание содержит не простой текст или если вы хотите сформатировать простой текст с помощью утилиты pr 1. Например, следующая команда печатает файл DVI из системы верстки Эти опции применяются для каждого файла в задании, так что нельзя смешивать например файлы DVI и ditroff в одном задании. Вместо этого посылайте однотипные файлы отдельными заданиями, используя для каждого задания соответствующие опции преобразования. Замечание: Все эти опции, кроме требуют наличия установленных для целевого принтера фильтров преобразования. Например, опция требует фильтра преобразования DVI. Подробнее см. в разделе Фильтры преобразования. Печать текстовых файлов на языке FORTRAN. не указано, сдвиг выполняется на 8 столбцов. Эта опция работает только с определенными фильтрами преобразования. Печать текстовых данных буквально, включая управляющие символы. Печать данных ditroff device independent troff. Форматировать обычный текст перед печатью утилитой pr 1. Подробнее см. pr 1. в колонтитуле pr 1 вместо имени файла. Эта опция учитывается только при использовании вместе с опцией Печать растровых данных. Команда zcat 1 распаковывает исходный код страницы справочного руководства ls 1 и передает его команде troff 1, которая форматирует его и выдает результат в формате GNU troff, передаваемый команде lpr 1, посылающей задание спулеру LPD. Поскольку мы использовали опцию команды lpr 1, спулер при печати задания будет преобразовывать результат GNU troff в формат, понятный стандартному принтеру. каждого файла в задании вместо одной. Администратор может отключить эту опцию для уменьшения износа принтера и поощрения использования ксерокса. См. раздел Ограничение количества копий. Посылать почту после завершения задания печати. При указании этой опции, система LPD будет посылать почту на ваше имя после завершения обработки вашего задания. В сообщении будет сказано, выполнено ли задание успешно или по ходу была ошибка, и часто - - в чем она состояла. Не копировать файлы в каталог спулинга, а сделать там на них символические связи. Эту опцию имеет смысл использовать при печати больших заданий. Она экономит место в каталоге спулинга ваше задание может занять все свободное место в файловой системе, в которой находится каталог спулинга. Она также экономит время, поскольку системе LPD не придется копировать каждый байт задания в каталог спулинга. Есть, однако, и недостаток: поскольку система LPD будет ссылаться на исходные файлы непосредственно, вы не сможете изменять или удалять их, пока они не будут распечатаны. Замечание: Если вы печатаете на удаленный принтер, система LPD будет вынуждена, так или иначе, скопировать файлы с локального хоста на удаленный, поэтому опция сэкономит место только в локальном каталоге спулинга, но не в удаленном. Но, она все равно полезна. Удалять файлы в задании после копирования в каталог спулинга или после печати, если указана опция Будьте внимательны при использовании этой опции! Эти опции команды lpr 1 изменяют текст, который обычно выдается на начальной странице задания. Если выдача начальных страниц для целевого принтера отключена, эти опции не действуют. Информацию по настройке начальных страниц см. в разделе Начальные страницы. Обычно на ней выдается имя хоста, с которого было послано задание. Имя задания обычно совпадает с именем первого файла в задании или имеет значение если печатается стандартный входной поток. Не выдавать начальной страницы. Замечание: В некоторых организациях эта опция может не действовать, что определяется способом генерации начальных страниц. Подробнее см. в разделе Начальные страницы. Как администратор принтеров, вы должны их установить, настроить и протестировать. С помощью команды lpc 8 вы можете взаимодействовать с принтерами и другими способами. С помощью lpc 8 вы можете: Изменять порядок заданий в каждой очереди. остановлен, он не будет печатать ничего из своей очереди. Пользователи могут продолжать посылать задания, которые будут ждать в очереди, пока принтер не будет запущен или пока очередь не будет очищена. Если очередь отключена, ни один пользователь кроме не может посылать задания на принтер. Во включенную очередь можно посылать задания. Принтер для отключенной очереди может быть запущен ; при этом он будет продолжать печатать находящиеся в очереди задания, пока очередь не станет пустой. В общем случае, для использования команды lpc 8 необходимо иметь привилегии Обычные пользователи могут использовать команду lpc 8 только для получения состояния принтера и перезапуска зависшего принтера. Далее представлена сводка команд lpc 8. Большинство команд принимает аргумент задающий, с каким принтером работать. Можно использовать значение означающее все принтеры, перечисленные в файле Снять текущее задание и остановить принтер. Пользователи могут продолжать посылать задания, если очередь включена. Удалить старые файлы из каталога спулинга принтера. Иногда файлы, составляющие задание, не удаляются как положено системой LPD, особенно если в ходе печати были ошибки и выполнялось много административных действий. Эта команда находит файлы, не принадлежащие каталогу спулинга, и удаляет их. Отключить постановку новых заданий в очередь. Если принтер работает, он продолжит печатать задания, остающиеся в очереди. Суперпользователь всегда может посылать задания, даже в отключенную очередь. Другие пользователи не смогут посылать задания, пока вы не закончите тестирование и не включите очередь повторно командой Отключить принтер. Аналогична последовательности команд Включить очередь для принтера. Пользователи могут посылать задания, но принтер не будет их печатать, пока не будет запущен. не указано, выдает сводку по имеющимся командам. Перезапустить принтер. Обычные пользователи могут использовать эту команду, если в результате неких чрезвычайных обстоятельств система LPD зависла, но они не могут запустить принтер, остановленный командами Запустить принтер. Принтер будет печатать задания, находящиеся в его очереди. Остановить принтер. Принтер закончит печать текущего задания и больше ничего из очереди печатать не будет. Хотя принтер и остановлен, пользователи могут посылать задания во включенную очередь. Переупорядочить очередь для указанного принтера, помещая указанные по номеру в начало очереди. Для этой команды нельзя использовать Включить принтер; команда по действию противоположна команде Эквивалентна последовательности команд Утилита lpc 8 принимает перечисленные выше команды в командной строке. Если команда не указана, утилита lpc 8 входит в интерактивный режим, в котором можно вводить команды, пока не будет введена команда Если вы прочитали все это руководство, к этому моменту вы знаете практически все, что надо знать о системе спулинга LPD, входящей в состав ОС FreeBSD. Вы, возможно, уже осознали многие из ее недостатков, что, естественно, приводит к вопросу: Какие еще системы спулинга существуют и работают с ОС FreeBSD? Система LPRng, имя которой означает LPR: the Next Generation LPR: следующее поколение - - это полностью переписанная система PLP. Патрик Пауэл Patrick Powell и Джастин Мейсон Justin Mason основной специалист, занимающийся поддержкой PLP объединили усилия для создания системы LPRng. Основной сайт по системе LPRng - /. Система CUPS сокращение от Common UNIX Printing System предоставляет переносимый механизм печати для операционных систем, основанных на UNIX. Она была разработана компанией Easy Software Products в качестве стандартного механизма печати для всех производителей и пользователей UNIX. для управления заданиями и очередями. Протоколы Line Printer Daemon LPD Server Message Block SMB и AppSocket известный также как JetDirect также поддерживаются, но с меньшими возможностями. Система CUPS добавляет поиск сетевых принтеров и опции печати на основе PostScript Printer Description PPD для поддержки практической печати в UNIX. Все работает, после определенной задержки; или не выдается распечатанная страница. Принтер напечатал все, что нужно, но он на некоторое время задумывался и ничего не делал. Фактически, могло потребоваться нажать кнопку PRINT REMAINING или FORM FEED на принтере, чтобы результаты были выданы. Если это произошло, вероятно, принтер ждал, нет ли в задании еще данных, прежде чем что бы то ни было печатать. Для решения этой проблемы можно посылать в текстовом фильтре на принтер символ FORM FEED или любую необходимую последовательность символов. Этого обычно достаточно, чтобы принтер немедленно распечатал любой остающийся в его внутреннем буфере текст. Также полезно убедиться, что каждое задание печати заканчивается полной страницей, чтобы следующее задание не начиналось где-то с середины последней страницы предыдущего задания. bin/sh if-simple - Простой текстовый входной фильтр для lpd Установлен в/usr/local/libexec/if-simple Просто копирует stdin в stdout. Игнорирует все аргументы фильтра. Выдает символ прогона страницы f после печати задания./bin/cat printf f exit 0 exit 2 Принтер печатает лесенкой. Вы стали очередной жертвой эффекта лесенки, вызванного различными интерпретациями того, какие символы должны обозначать новую строку. Операционные системы UNIX - стиля используют один символ: ASCII-код 10, перевод строки line feed - - LF. MS-DOS, OS/2 и другие используют пару символов, ASCII-код 10 и ASCII-код 13 возврат каретки, carriage return или CR. Многие принтеры используют соглашение MS-DOS для представления новых строк. При печати из FreeBSD в тексте используется только символ перевода строки. Принтер, встретив символ перевода строки, переходит на следующую строку, но оставляет ту же горизонтальную позицию на строке для следующего печатаемого символа. Вот зачем нужен символ возврата каретки: чтобы перенести следующий печатаемый символ на левый край бумаги. Использовать переключатели конфигурации принтера или панель управления, чтобы изменить его интерпретацию этих символов. Поищите как это сделать в руководстве по своему принтеру. Замечание: Если вы загружаете другие операционные системы, кроме FreeBSD, может иметь смысл переконфигурировать принтер для использования такой интерпретации символов CR и LF, которая принята в этих операционных системах. Затем можно использовать одно из представленных далее решений. Заставить драйвер последовательного порта FreeBSD автоматически преобразовывать LF в CRLF. Конечно, это подойдет только для принтеров, подключенных к последовательным портам. Для включения этой возможности используйте характеристику Послать управляющий код на принтер, заставляющий его временно обрабатывать символы LF по-другому. Управляющие коды, которые может поддерживать ваш принтер, поищите в руководстве своего принтера. Когда найдете соответствующий управляющий код, измените текстовый фильтр для посылки сначала этого кода, а затем - - задания печати. Вот пример текстового фильтра для принтеров, понимающих управляющие последовательности языка Hewlett-Packard PCL. Этот фильтр заставляет принтер обрабатывать символы LF как LF и CR; затем он посылает задание; наконец, он посылает символ прогона страницы для выдачи последней страницы задания. Он должен работать практически со всеми принтерами Hewlett Packard. bin/sh hpif - Простой текстовый входной фильтр для lpd для принтеров на базе HP-PCL Установлен в/usr/local/libexec/hpif Просто копирует stdin в stdout. Игнорирует все аргументы фильтра. Требует от принтера обрабатывать LF как CRLF. Выдает страницу по окончании. printf 033 k2G cat printf 033 l0H exit 0 exit 2 К нему через первый параллельный порт подключен один принтер, Hewlett Packard LaserJet 3Si, по имени Для него в качестве текстового фильтра используется представленный выше скрипт: Строки напечатаны одна поверх другой. Принтер так и не перешел на следующую строку. Все строки текста были напечатаны одна поверх другой, на одной строке. Эта проблема обратна эффекту лесенки, описанному выше, и встречается намного реже. Каким-то образом, символы LF, которые ОС FreeBSD использует для завершения строк, обрабатывались как символы CR и вызывали перевод позиции печати на левый край бумаги, но не переход на следующую строку. По ходу печати принтер не печатает несколько символов в каждой строке. Проблема со временем может становиться все хуже, так что теряется все больше символов. Проблема состоит в том, что принтер не справляется с той скоростью, с которой компьютер посылает данные по последовательной линии эта проблема не должна возникать на принтерах, подключенных к параллельным портам. Есть два способа решить проблему: Если принтер поддерживает управление потоком XON/XOFF, заставить FreeBSD использовать его, указав режим Если принтер поддерживает управление несущим потоком carrier flow control, укажите режим Убедитесь, что кабель, соединяющий принтер с компьютером, правильно распаян для управления несущим потоком. Принтер напечатал нечто похожее на случайный мусор, а не требуемый текст. Это, обычно, - - еще один симптом неправильных параметров взаимодействия с последовательным принтером. Перепроверьте скорость взаимодействия в характеристике проверьте, что принтер использует те же установки, которые заданы в файле Если ничего не произошло, проблема, вероятно, связана с FreeBSD, а не с оборудованием. Добавьте характеристику журнального файла для принтера, работу с которым отлаживаете. Например, вот запись для принтера Затем попытайтесь напечатать снова. Поищите в журнальном файле в нашем примере - - возможные сообщения об ошибках. На основе полученных сообщений попытайтесь решить проблему. Реструктурировал и частично обновил Jim Mock. Первоначально предоставил Brian N. Handy, Rich Murphey. Перевод на русский язык: Алексей Докучаев. Перевод на русский язык и редактирование: Валерий Кравчук. FreeBSD предоставляет двоичную совместимость с несколькими другими UNIX - подобными операционными системами, включая Linux. Возможно, вы спрашиваете себя, зачем FreeBSD нужно уметь работать с приложениями, написанными для Linux? Ответ на этот вопрос достаточно прост: многие компании и разработчики производят программное обеспечение только для Linux, так как эта операционная система очень быстро завоевала огромную популярность в компьютерном мире. Пользователям же FreeBSD приходится обращаться к этим компаниям и разработчикам с просьбами выпустить версии своих программ специально для FreeBSD. Проблема в том, что большинство производителей программного обеспечения не осознают, насколько бы увеличился их рынок сбыта, выпускай они также FreeBSD-версии, и продолжают разрабатывать только под Linux. Что же делать пользователям FreeBSD? В этой ситуации на помощь приходит двоичная совместимость FreeBSD с Linux. Вкратце, эта совместимость позволяет пользователям FreeBSD работать с 90% приложений для Linux без каких-либо модификаций последних. Среди этих приложений: StarOffice, Linux-версия Quake, и многие другие. Есть сведения, что в некоторых ситуациях эти Linux-программы показывали более высокую производительность при работе под FreeBSD, чем под Linux. Конечно, существуют некоторые особенности Linux, которые не поддерживаются в полной мере под FreeBSD. Например, не будут работать приложения Linux, использующие специфичные вызовы i386, такие как переключение в виртуальный режим 8086. Как включить двоичную совместимость с Linux в вашей системе. Как установить дополнительные совместно используемые shared библиотеки Linux. Как установить приложения Linux в систему FreeBSD. Детали реализации совместимости с Linux в ОС FreeBSD. Узнать как устанавливать дополнительное программное обеспечение сторонних разработчиков Гл. 4. Двоичная совместимость с Linux не включена по умолчанию. Простейший способ включения этой функциональности заключается в загрузке KLD-объекта Kernel LoaDable object. Вы можете загрузить этот модуль, просто набрав Если вы хотите, чтобы совместимость с Linux была включена постоянно, необходимо добавить в Для проверки того, загружен ли модуль, может быть использована команда kldstat 8: Если по какой-либо причине вы не хотите или не можете загрузить KLD, вы можете статически включить поддержку Linux в ядро, добавив опцию в файл конфигурации ядра. Затем соберите и установите новое ядро, следуя описанию в Гл. 8. Установить все требуемые библиотеки можно двумя путями: либо используя порт linuxbase, либо установив их вручную. Этот метод является самым простым, и мы рекомендуем воспользоваться именно им. Процесс аналогичен установке любого другого порта из Коллекции Портов. Просто выполните следующие команды: Теперь вы можете работать с приложениями для Linux. Некоторые программы, возможно, будут сообщать о несоответствии подверсий некоторых системных библиотек. Однако обычно это не вызывает каких-либо неудобств. соответствующих различным версиям разных дистрибутивов Linux. Вы должны установить порт, наиболее близко соответствующий требованиям приложений Linux, которые будут установлены. Если у вас не установлена коллекция портов, можно установить требуемые библиотеки вручную. Вам понадобятся совместно используемые библиотеки для Linux, которые нужны программам, и runtime-компоновщик. Вам также потребуется создать теневой корневой каталог, где будут расположены Linux-библиотеки. Если Linux-программе нужно загрузить какую-либо совместно используемую библиотеку, FreeBSD сперва будет пытаться найти ее в этом дереве. Так, если программа загружает, например, FreeBSD попытается открыть и если такого файла не существует, будет пытаться открыть Разделяемые библиотеки должны находиться в теневом дереве, а не в каталогах, выдаваемых загрузчиком Linux Обычно вам придется добавлять совместно используемые библиотеки, от которых зависят Linux-программы, только при нескольких первых установках приложений Linux на вашу систему FreeBSD. По мере работы, у вас в системе накопится достаточный набор совместно используемых библиотек Linux для запуска новых Linux-программ без дополнительных действий. Что, если при установленном порте ваше приложение все равно сообщает об отсутствии необходимой библиотеки? Как узнать, какая именно нужна библиотека и где ее взять? В принципе, есть два способа. Вам необходимо иметь привилегии пользователя Если у вас есть доступ к машине, на которой установлен Linux, узнайте, какие библиотеки использует Linux-приложение, и просто скопируйте из на свою машину. Рассмотрим следующий пример: Допустим, вы скачали по FTP Linux-версию Doom и установили ее на Linux-машине. Вы можете узнать, какие совместно используемые библиотеки нужны 3 DLL Jump 3.1 3.1.0 3 DLL Jump 3.1 3.1.0 4 DLL Jump 4.5pl26 4.6.29 Вам потребуются все файлы, перечисленные в последнем столбце. Скопируйте их в дерево на вашей системе, а также создайте символические ссылки на эти файлы с именами из первого столбца, соответственно. В итоге, у вас в системе FreeBSD должны быть следующие файлы: Замечание: Учтите, что если у вас уже есть совместно используемая библиотека Linux с соответствующим первому столбцу результатов основным номером версии, вам не обязательно копировать файл, указанный в последнем столбце, в вашу систему. Уже существующий файл должен подойти. Рекомендуется, однако, все равно скопировать совместно используемую библиотеку, если ее версия новее. Предыдущую версию библиотеки можно удалить, если вы создали символическую ссылку на новую. Итак, если у вас в системе есть следующие библиотеки: и какое-либо приложение требует библиотеку более поздней версии, судя по результатам команды 4 DLL Jump 4.5pl26 - 4.6.29 Если версии немного отличаются в последней цифре, копировать необязательно, так как программа, скорее всего, будет нормально работать и с немного устаревшей версией. Тем не менее, вы можете заменить только для Linux-программ. Runtime-компоновщик FreeBSD самостоятельно подберет правильные номера версий библиотек, и вам не нужно об этом беспокоиться. Для ELF-файлов иногда требуется сделать так называемый branding маркировать его. Если попытаться запустить немаркированный ELF-файл, вы получите следующее сообщение об ошибке: Чтобы помочь ядру FreeBSD отличить ELF-файл FreeBSD от двоичного файла Linux, используется утилита brandelf 1: В настоящее время набор инструментальных средств GNU GNU toolchain помещает необходимую маркировочную информацию в двоичные ELF-файлы автоматически, поэтому необходимость в этом действии возникает всё реже. order hosts, bind multi on Таким образом, вы указываете, то сначала производится поиск в файле а только затем запрашивается DNS. Когда файл отсутствует, Linux-приложения находят файл для FreeBSD и сообщают о несовместимом синтаксисе. Если вы не настраивали сервер имен с помощью файла Обновил для Mathematica 4.X Murray Stokely. Объединено с работой Bojan Bistrovic. Ниже описано, как установить Linux-версию пакета Mathematica 4.X на систему FreeBSD. Linux-версия Mathematica отлично работает под FreeBSD, однако выполняемые файлы, поставляемые Wolfram, должны быть маркированы утилитой brandelf 1, чтобы FreeBSD знала о необходимости использования Linux ABI для их выполнения. Linux-версию пакета Mathematica или Mathematica for Students можно заказать непосредственно в компании Wolfram по адресу /. на компакт-диске с дистрибутивом Mathematica от Wolfram. Скопируйте этот каталог вместе со всеми подкаталогами на ваш жесткий диск, чтобы промаркировать утилитой brandelf 1 двоичные файлы Linux перед инсталляцией: FreeBSD будет считать, что все немаркированные двоичные ELF-файлы используют Linux ABI, и вы сможете запустить MathInstaller прямо с CDROM. Прежде чем запускать Mathematica, вам необходимо получить от компании Wolfram пароль, соответствующий идентификатору машины. После того, как вы установили необходимые библиотеки и распаковали файлы Mathematica, получите идентификатор машины, запустив программу в инсталляционном каталоге. Идентификатор машины зависит от MAC-адреса вашей первой Ethernet-карты. При регистрации по электронной почте, по телефону или по факсу вы сообщаете идентификатор машины, а в ответ получаете пароль, состоящий из нескольких групп чисел. Введите этот пароль при первом запуске Mathematica, как и для любой другой платформы. Mathematica использует специальные шрифты для отображения некоторых символов, которые отсутствуют в стандартных шрифтах символы интегралов, сумм, греческий алфавит и другие. Протокол X требует, чтобы эти шрифты были установлены локально. Это означает, что вы должны скопировать эти шрифты с компакт-диска или хоста, на котором установлена Mathematica, на вашу машину. Обычно эти шрифты находятся в каталоге на диске. Собственно файлы со шрифтами находятся в подкаталогах О том, как их использовать, читайте ниже. В этом случае придётся отредактировать файл добавив в него названия шрифтов и изменив число шрифтов в первой строке. Можно также запустить программу mkfontdir 1, находясь в том каталоге, куда вы скопировали шрифты. Если вы используете сервер Xorg, то можно просто прописать эти каталоги в файле Замечание: Для сервера XFree86, файл конфигурации Предоставил Aaron Kaplan. Благодарности: Robert Getschmann. Maple - коммерческая математическая программа, аналогичная Mathematica. Это программное обеспечение надо купить у /, а потом зарегистрироваться там для получения файла лицензии. Для установки этого программного обеспечения в ОС FreeBSD используется следующая последовательность простых шагов. из дистрибутива. Выберите опцию RedHat, когда будет предложено программой установки. Обычно установка выполняется в каталог Если вы этого ещё не сделали, купите лицензию на Maple в компании Maple Waterloo Software и скопируйте ее в файл Установите диспетчер лицензий FLEXlm, выполнив скрипт установки Maple. Укажите основное имя хоста вашей машины для сервера лицензий. не должно быть никаких пробелов. Этот патч заставляет Maple распознавать FreeBSD как тип Linux-системы. Скрипт командного интерпретатора который, в свою очередь, вызывает для получения имени операционной системы. В зависимости от имени ОС он определяет, какие двоичные модули использовать. Запустите сервер лицензий. Следующий скрипт, установленный в файл обеспечивает удобный способ запуска snip - --- !/bin/sh PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin PATHPATH:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX export PATH case 1 in start lmgrd - c LICENSEFILE 2 LOG 1 2 echo - n lmgrd ;; stop lmgrd - c LICENSEFILE - x lmdown 2 LOG 1 2 ;; echo Usage: basename 0 startstop 1 2 exit 64 ;; esac exit 0 - - snip - --- Программа должна запуститься и работать. Не забудьте написать в Maplesoft и сообщить, что хотели бы видеть версию специально для FreeBSD! Работать с диспетчером лицензий FLEXlm может быть непросто. Дополнительную документацию по нему можно найти на сайте /. очень требователен к файлу лицензии и выдает дамп памяти при выявлении любых проблем. Правильный файл лицензии должен иметь следующий вид: License File for UNIX Installations Pointer File SERVER chillig ANY USESERVER VENDOR maplelmg FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX PLATFORMSi86r ISSUERWaterloo Maple Inc. ISSUED11-may-2000 NOTICE Technische Universitat Wien SNXXXXXXXXX Замечание: Серийный номер и ключ забиты символами X. Редактирование файла лицензий возможно, если только не трогать строку FEATURE которая защищена лицензионным ключом. Этот документ описывает процесс установки Linux-версии MATLAB версии 6.5 на систему FreeBSD. Эта программа работает вполне нормально, за исключением Java Virtual Machine см. Разд. 10.5.3. Linux-версию MATLAB можно приобрести непосредственно в компании The MathWorks на сайте Не забудьте получить файл лицензии или инструкции по его созданию. По ходу дела дайте знать производителю, что хотели бы увидеть версию их ПО специально для FreeBSD. Вставьте инсталляционный CD и смонтируйте его. Станьте пользователем как рекомендует скрипт установки. Для запуска скрипта установки наберите: Подсказка: Запускается графический инсталлятор. Если вы получаете сообщения о невозможности открыть дисплей, наберите пользователь, от имени которого выполнена команда su 1. При запросе корневого каталога MATLAB, наберите: Подсказка: Чтобы упростить набор остальных команд в ходе установки, выполните в командном интерпретаторе следующую команду: до того, как инсталлятор попросит его отредактировать. Завершите процесс установки. В этот момент ваша установка MATLAB завершена. Следующие шаги позволяют связать эту программу с вашей системой FreeBSD. Представленный ниже пример - измененная версия входящего в дистрибутив файла Изменены местонахождения файлов и диспетчер лицензий запускается под эмулятором Linux. bin/sh case 1 in start if -f/usr/local/etc/lmbootTMW ; then/compat/linux/bin/sh/usr/local/etc/lmbootTMW - u Измените ссылку Java Runtime Environment JRE так, чтобы он ссылалась на версию, работающую в FreeBSD: bin/sh/compat/linux/bin/sh/compat/linux/usr/local/matlab/bin/matlab при выполнении этого скрипта могут быть выданы сообщения об ошибках. Чтобы избежать этого, отредактируйте файл в версии 13.0.1 это строка 410 на следующую строку: Следующие действия необходимы для решения проблемы с некорректным завершением работы MATLAB. MATLAB/toolbox/local/finish.m которые позволяют сохранять рабочее пространство перед выходом. Если вы используете любой из них, вставьте представленную выше строку сразу после команды который будет содержать следующий скрипт: usr/compat/linux/bin/sh sleep 5; killall - 1 matlabhelper exit 0 и начала использования этой программы. Предоставил Marcel Moolenaar. Ниже описан процесс установки Oracle 8.0.5 и Oracle 8.0.5.1 Enterprise Edition для Linux на систему FreeBSD. Удостоверьтесь, что порты установлены на вашей системе. Если у вас возникнут трудности с этими портами, воспользуйтесь пакетами или более ранними их версиями из Коллекции Портов. Если вы хотите использовать интеллектуальный агент intelligent agent, придется также установить пакет TCL от Red Hat: Универсальная команда для установки пакетов с помощью официального порта должна пройти без каких-либо ошибок. Прежде чем вы сможете установить Oracle, необходимо настроить соответствующую среду. В этом документе описано, что специально нужно сделать, чтобы запустить Oracle для Linux под FreeBSD - это не пересказ официального руководства по установке Oracle. Как описано в руководстве по установке Oracle, необходимо установить максимальный размер совместно используемой shared памяти. Не используйте просто вычисляется, исходя из Следовательно, нужно задавать За информацией о прочих опциях обратитесь к официальному руководству. Пример настроек: Установите эти опции в зависимости от того, как и для чего вы будете использовать как и любую другую учетную запись. Единственное отличие в том, что для необходимо указать командный интерпретатор Linux. Добавьте Кроме стандартных переменных среды Oracle, таких как вам нужно будет установить следующие переменные среды: ORACLEBASE/oracle; export ORACLEBASE ORACLEHOME/oracle; export ORACLEHOME LDLIBRARYPATHORACLEHOME/lib export LDLIBRARYPATH ORACLESIDORCL; export ORACLESID ORACLETERM386x; export ORACLETERM export CLASSPATH PATH/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin PATHPATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin PATHPATH:/usr/local/bin:ORACLEHOME/bin export PATH Из-за небольшой несовместимости с Linux-эмулятором, вам нужно будет создать подкаталог прежде, чем можно будет начать установку. Сделайте ее владельцем пользователя Если вы все сделали правильно, то установка Oracle должна пройти без проблем. Если какие-либо трудности все же возникли, проверьте еще раз все конфигурационные файлы и/или целостность дистрибутива Oracle. После окончания установки Oracle примените патчи, описанные в следующих двух подразделах. Одна из часто возникающих проблем - - неправильно установленный адаптер TCP-протокола. В результате, невозможно запустить процессы прослушивания TCP. Вот решение проблемы: ar r libnetwork.a ntcontab.o Они записаны в скрипте командного интерпретатора который находится в каталоге Перед запуском, примените к нему следующий патч исправляет местонахождение утилиты chown, либо запускайте его в командном интерпретаторе Linux. Tue Oct 6 21:57:33 1998 - - Mon Dec 28 15:58:53 1998 31, 37 This is the default value for CHOWN It will redefined later in this script for those ports which have it conditionally defined in ssinstall.h! CHOWN/bin/chown Define variables to be used in this script - - 31, 37 - - This is the default value for CHOWN It will redefined later in this script for those ports which have it conditionally defined in ssinstall.h! CHOWN/usr/sbin/chown Define variables to be used in this script Если вы устанавливаете Oracle не с компакт-диска, можно изменить исходный файл используется для того, чтобы создать единую совместно используемую клиентскую библиотеку, которая используется для создания демонстраций. Примените следующий патч, чтобы закомментировать определение переменной Wed Sep 30 07:37:19 1998 - - bin/genclntsh Tue Dec 22 15:36:49 1998 32, 38 Explicit path to ensure that were using the correct commands PATH/usr/bin:/usr/ccs/bin export PATH! PATH/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH each product MUST provide a - - 32, 38 - - Explicit path to ensure that were using the correct commands PATH/usr/bin:/usr/ccs/bin export PATH! PATH/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH each product MUST provide a Теперь, если вы все сделали правильно, то можете использовать Oracle так же, как и в системе Linux. Предоставил Holger Kipp. Исходную версию преобразовал в SGML Valentino Vaschetto. Инсталляции систем SAP на базе FreeBSD не будут поддерживаться службой поддержки SAP - - они предоставляют поддержку только на сертифицированных платформах. SAP R/3 с СУБД Oracle Database на машине с ОС FreeBSD, включая установку FreeBSD и Oracle. Будут описаны две разные конфигурации: Хотя в этом документе мы пытаемся подробно описать все важные шаги, он не заменяет руководства по установке Oracle и SAP R/3. По специфическим вопросам SAP и Oracle обратитесь к документации, поставляемой в составе SAP R/3 Linux edition, а также к другим источникам информации об Oracle и SAP Kernel OracleInstallationAIX, Linux, Solaris Кроме того, мы использовали CD Oracle 8 Server Опытная версия 8.0.5 для Linux, ядро версии 2.0.33, который не обязательно понадобится, и FreeBSD 4.3-STABLE она вышла всего через несколько дней после 4.3 RELEASE. SAP Kernel OracleSAP Kernel Version 4.6DDEC, Linux Release 4.6C SR2ExportДиск 1 из 4 Release 4.6C SR2ExportДиск 2 из 4 Release 4.6C SR2ExportДиск 3 bp 4 Release 4.6C SR2ExportДиск 4 из 4 Release 4.6C SR2LanguageDE, EN, FRДиск 1 из 3 В зависимости от языков, которые необходимо установить, могут потребоваться дополнительные CD. Здесь мы использовали только немецкий и английский языки, поэтому потребовался только первый языковой CD. Обратите внимание, что номера всех EXPORT CD идентичны. Все три языковых CD тоже имеют один номер это отличается от нумерации CD в версии 4.6B IDES. На момент написания этого раздела 20.03.2002 установленное ПО работало на FreeBSD 4.5-STABLE. INST: 4.6C R/3 Inst. on UNIX - Oracle UpdateMigration Oracle 8.0.5 - - 8.0.6/8.1.6 LINUX Release of Digital UNIX 4.0B for Oracle RedHat 6.1 Enterprise version: Known problems RedHat 6.2: important remarks INST: R/3 4.6C SR2 Installation on UNIX INST: R/3 4.6C SR2 Inst. on UNIX - Oracle SAP Software on UNIX: OS Dependencies 4.6C SR2 Следующего оборудования достаточно для установки SAP R/3 System. Для производственного использования необходима более точная оценка параметров: Для производственного использования рекомендуются процессоры Xeon с большим кешем, высокоскоростной доступ к дискам SCSI, аппаратный RAID-контроллер, USV и ECC-RAM. Большой объем дискового пространства связан с заранее сконфигурированной системой IDES, которая создает 27 Гбайт файлов базы данных по ходу установки. Этого пространства также достаточно для исходных производственных систем и прикладных данных. Было использовано следующее стандартное оборудование: двухпроцессорная материнская плата с двумя процессорами Pentium III 800 MHz, SCSI-контроллером Adaptec 29160 Ultra160 для работы с 40/80 Гбайт стримером DLT и приводом CDROM, Mylex AcceleRAID 2 канала, firmware 6.00-1-00 с 32 Мбайт RAM. К RAID-контроллеру Mylex подключены два диска по 17 Гбайт зеркалированы и четыре диска по 36 Гбайт RAID уровня 5. Для этой установки был использован Dell PowerEdge 2500: двухпроцессорная плата с двумя процессорами Pentium III 1000 MHz 256 Кбайт кеш, 2 Гбайта PC133 ECC SDRAM, PERC/3 DC PCI RAID-контроллер со 128 Мбайтами и приводом EIDE DVD-ROM. К RAID-контроллеру подключены два диска по 18 Гбайт зеркалированы и четыре диска по 36 Гбайт RAID уровня 5. Сначала надо установить FreeBSD. Есть несколько способов сделать это FreeBSD 4.3 была установлена по FTP, FreeBSD 4.5 - - непосредственно с RELEASE CD; подробнее см. Разд. 2.13. SAP R/3 46C SR2 использовались одинаково. Изменились только имена устройств, поскольку установка выполнялась на разное оборудование соответственно, так что при использовании AMI MegaRAID будут задействованы устройства Конфигурируем и инициализируем заранее два логических диска с помощью ПО RAID Mylex или PERC/3. Программы конфигурирования можно запустить в ходе загрузки BIOS Обратите внимание, что использованная компоновка дисков немного отличается от рекомендованной SAP, поскольку SAP рекомендует монтировать подкаталоги Oracle и некоторые другие отдельно - - мы решили просто создать подкаталоги. Загрузите последние исходные коды ветки - STABLE. Пересоздайте систему и ваше специализированное ядро после необходимых изменений в файле конфигурации ядра. В него надо включить параметры ядра, требуемые для Среда разработки Linux необходима, если вы хотите установить Среда разработки Linux была установлена только для SAP R/3 46B IDES. Она не нужна, если сервер Oracle не перекомпоновывается в системе FreeBSD. Именно так и происходит, если вы используете tar-архив tarball Oracle с Linux-системы. необходима поддержка модулей PAM. В ходе первой установки SAP на ОС FreeBSD 4.3-STABLE мы попытались установить PAM со всеми необходимыми пакетами и, в конце концов, принудительно установили пакет PAM, что и сработало. Для SAP R/3 4.6C SR2 мы сразу принудительно установили PAM RPM, что тоже сработало, так что похоже, что пакеты, от которых декларирована зависимость, не нужны: Чтобы Oracle 8.0.5 мог запустить интеллектуального агента, нам также пришлось установить пакет RedHat Tcl Oracle не выполнится. Есть и другие проблемы с перекомпоновкой Oracle, но это проблема Oracle на Linux, не связанная с особенностями FreeBSD. подробнее об этом см. на странице справочника linprocfs 5. Еще можно установить параметр Также необходимо создать несколько ссылок. В противном случае, инсталлятор SAP будет выдавать сообщения об ошибках, поскольку он проверяет созданные ссылки: Возможные сообщения об ошибках в ходе установки в данном случае, для установки System PRD и SAP R/3 4.6C SR2 : INFO 2002-03-19 16:45:36 R3LINKSINDIND SyLinkCreate:200 Checking existence of symbolic link/usr/sap/PRD/SYS/exe/dbg to/sapmnt/PRD/exe. Creating if it does not WARNING 2002-03-19 16:45:36 R3LINKSINDIND SyLinkCreate:400 Link/usr/sap/PRD/SYS/exe/dbg exists but it points to file/compat/linux/sapmnt/PRD/exe instead of/sapmnt/PRD/exe. The program cannot go on as long as this link exists at this location. Move the link to another location. ERROR 2002-03-19 16:45:36 R3LINKSINDIND InsSetupLinks:0 can not setup link/usr/sap/PRD/SYS/exe/dbg with content/sapmnt/PRD/exe Для системы SAP R/3 необходимы два пользователя и три группы. Имена пользователей зависят от идентификатора системы SAP SID, который состоит из трех букв. Некоторые из этих идентификаторов зарезервированы SAP например, Полный список см. в документации SAP. Для установки IDES мы использовали поскольку эта система предназначалась для промышленного использования. Поэтому нам понадобились следующие группы идентификаторы групп могут отличаться, мы просто указали наши значения, использованные при установке: подробнее об этом см. в документации Oracle и если вы используете обе группы, Эти каталоги обычно создаются в отдельных файловых системах. Впрочем, все зависит от ваших требований. Мы решили создавать их как обычные каталоги, поскольку в любом случае они находятся на одном массиве RAID 5: Затем, мы создадим каталоги от имени пользователя Все они будут размещены в каталоге Для установки Oracle 8.1.7 потребуется несколько дополнительных каталогов: должен иметь точно такое имя. Не заменяйте x числом или другим символом. 10.7.7.4. Записи в файле которые не будут правильно созданы при установке под FreeBSD. Пожалуйста, добавьте следующие записи потребуются, по крайней мере, записи, соответствующие номеру экземпляра - - в данном случае, Не повредит добавить все записи, от Если вы собираетесь использовать SAProuter или вам необходим доступ к SAP OSS, потребуется также запись для поскольку порт 3299 обычно используется для процесса sapdp00 3200/tcp SAP Dispatcher. 3200 Instance-Number sapgw00 3300/tcp SAP Gateway. 3300 Instance-Number sapsp00 3400/tcp 3400 Instance-Number sapms00 3500/tcp 3500 Instance-Number sapms 3600/tcp SAP Message Server. 3600 Instance-Number sapgw00s 4800/tcp SAP Secure Gateway 4800 Instance-Number Системе SAP нужны, по крайней мере, две локали, не входящие в стандартную установку RedHat. SAP предлагает необходимые пакеты RPM для загрузки со своего FTP-сервера который доступен только для клиентов с доступом к OSS. См. список необходимых пакетов RPM в заметке 0171356. Можно также просто создать соответствующие ссылки например, с deDE и enUS, но мы не рекомендуем это для производственной системы хотя это и сработало для системы IDES безо всяких проблем. Необходимы следующие локали: Если их не будет, в ходе установки возникнет ряд проблем. Если их просто проигнорировать установив нельзя будет зарегистрироваться в системе SAP без дополнительных усилий. Системам SAP R/3 надо много ресурсов. Поэтому мы добавили следующие параметры в файл конфигурации ядра: Для пожирателей памяти SAP и Oracle: options MAXDSIZ102410241024 options DFLDSIZ102410241024 Необходимые опции System V. options SYSVSHM совместно используемая память в стиле SYSV options SHMMAXPGS262144 макс. количество страниц совместно используемой options SHMMAXPGS393216 use this for the 46C options SHMMNI256 макс. количество идентификаторов совместно используемой options SHMSEG100 макс. количество сегментов разд. памяти на процесс options SYSVMSG очереди сообщений в стиле SYSV options MSGSEG32767 макс. количество сегментов сообщений в системе options MSGSSZ32 размер сегмента сообщений. ДОЛЖЕН быть степенью 2 options MSGMNB65535 макс. символов на очередь сообщений options MSGTQL2046 макс. количество сообщений в системе options SYSVSEM семафоры в стиле SYSV options SEMMNU256 количество структур UNDO семафоров options SEMMNS1024 количество семафоров в системе options SEMMNI520 количество идентификаторов семафоров options SEMUME100 количество ключей UNDO Минимальные значения указаны в документации, поставляемой вместе с SAP. Поскольку описания для Linux нет, дополнительную информацию см. в разделе HP-UX 32-bit. Поскольку в системе, на которую устанавливалась версия 4.6C SR2, оперативной памяти больше, сегменты совместно используемой можно сделать больше как для SAP, так и для Oracle, поэтому задайте большее количество страниц совместно используемой памяти. Замечание: При стандартной установке FreeBSD 4.5 на i386, задайте значения не более 1 Гбайта. В противном случае могут выдаваться странные ошибки вроде В ходе установки придется монтировать и демонтировать много дисков CDROM. При наличии достаточного количества приводов CDROM, можно смонтировать их все. Мы же решили скопировать содержимое дисков CDROM в соответствующие каталоги: для установки 4.6C SR2. Все имена файлов на смонтированных дисках должны быть в верхнем регистре, в противном случае, используйте при монтировании опцию Поэтому используйте следующие команды: Затем запускается скрипт установки, который скопирует почти все необходимые файлы в каталог Дистрибутив IDES 4.6B включает полностью настроенную демонстрационную систему SAP R/3, поэтому он включает шесть дисков EXPORT CD, а не три. В этот момент шаблон установки предназначен для установки стандартного центрального экземпляра R/3 и базы данных, а не для установки центрального экземпляра IDES, поэтому необходимо скопировать соответствующий файл запросит только три диска EXPORT CDs. Более новый релиз SAP 4.6C SR2 включает четыре диска EXPORT CD. Шаги установки определяет файл параметров В отличие от прежних релизов, больше нет отдельных шаблонов установки для центрального экземпляра с базой данных или без нее. SAP использует отдельный шаблон для установки базы данных. Для перезапуска установки в дальнейшем, однако, достаточно перезапустить исходный файл. В ходе установки и после нее SAP требует, чтобы команда возвращала только имя компьютера, не уточнённое именем домена. Поэтому либо задайте имя хоста в соответствии с этим требованием, либо настройте псевдоним с помощью команды про крайней мере, в ходе шагов по установке, выполняемых от имени Можно также изменить файлы для обоих пользователей, которые создаются в ходе установки SAP. 10.7.8.3. Запуск Проверьте, что переменная среды Скрипт затем задает ряд вопросов стандартные ответы даны в скобках, а затем представлены реальные ответы: Enter Oracle server version 1 Oracle 8.0.5, 2 Oracle 8.0.6, 3 Oracle 8.1.5, 4 Oracle 8.1.6 Если вы не скопировали диски в разные каталоги, инсталлятор на диске и попросит затем вставить и смонтировать CD, и подтвердить или ввести точку его монтирования. может содержать ошибки. В нашем случае, он снова запросил EXPORT4 CD, но указал корректный ключ 6LOCATION, затем 7LOCATION и т.д., так что, можно просто продолжать вводить корректные значения. За исключением нескольких упомянутых ниже проблем, все должно идти нормально до момента, когда придется устанавливать программное обеспечение для работы с базой данных Oracle. 10.7.8.4. Запуск Проверьте, что переменная среды установлена правильно. Это значение отличается от использованного при установке версии 4.6B с Скрипт затем задаст ряд вопросов стандартные значения даны в скобках, а затем идут реальные ответы: Enter Oracle server version 2 Oracle 8.1.7 За исключением некоторых упомянутых далее проблем, все должно идти нормально до момента, когда придется устанавливать программное обеспечение для работы с базой данных Oracle. Описания возможных проблем с Linux и Сервером Oracle см. в соответствующих файлах SAP Notes и Oracle Большинство, если не все проблемы, связаны с несовместимыми библиотеками. 10.7.9.1. Установка Oracle 8.0.5 с помощью Если надо использовать Oracle 8.0.5, для успешной перекомпоновки понадобится несколько дополнительных библиотек, поскольку Oracle 8.0.5 был скомпонован со старой версией glibc RedHat 6.0, но уже RedHat 6.1 использует новую библиотеку glibc. Так что, для успешной перекомпоновки нужно установить следующие дополнительные пакеты: Дополнительную информацию см. в файлах SAP Notes или Oracle Если установить эти пакеты не представляется возможным на момент установки у нас не было времени, чтобы это проверить, можно использовать исходные двоичные модули или перекомпонованные двоичные модули с исходной системы RedHat. Для компиляции интеллектуального агента должен быть установлен пакет RedHat Tcl. Если вы не можете найти пакет подойдет и более новый, вроде За исключением перекомпоновки, установка выполняется просто: Нажимайте на всех экранах клавишу Enter, пока программное обеспечение не будет установлено, убрав только пометку выбора с Oracle On-Line Text Viewer, поскольку этого компонента для Linux сейчас нет. Oracle затем захочет перекомпоновать модули с помощью Oracle 8.0.5 PreProduction после того, как первая попытка заставить работать версию с RDBMS CD провалилась, - - попытки найти и загрузить требуемые пакеты RPM нам показались настоящим кошмаром. Эту установку выполнить очень легко. Монтируем CD, запускаем инсталлятор. Затем он запрашивает местонахождение начального каталога Oracle и копирует туда двоичные модули. Мы, однако, не удаляли остатки прежних попыток установить RDBMS. В конечном итоге, базу данных Oracle удалось запустить без проблем. У них обоих должны теперь быть файлы Если имя хоста в системе полностью уточнено, надо заменить можно либо перезапустить, либо продолжить в зависимости от того, была ли завершена ее работа. затем создает табличные пространства и загружает данные для 46B IDES - - с дисков от EXPORT1 до EXPORT6, для 46C - - с дисков от DISK1 до DISK4 в базу данных с помощью утилиты После завершения загрузки базы данных это может занять несколько часов, будет запрошено несколько паролей. Для тестовых установок можно использовать хорошо известные стандартные пароли но если защита важна - - используйте другие!: В противном случае, вы можете получить сообщение об ошибке ORA-12546, поскольку у сокетов будут неправильные права доступа. См. SAP Note 072984. Если вы планируете использовать в системе SAP языки, для которых не подходит кодировка Latin-1, придется изменить таблицы Multi National Language Support. Эта процедура описана в SAP OSS Notes 15023 и 45619. Если же нет, можете пропустить этот вопрос в ходе установки SAP. Замечание: Если вам не нужна поддержка MNLS, все равно необходимо проверить таблицу TCPDB и инициализировать ее, если это еще не было сделано. Дополнительную информацию см. в SAP Note 0015023 и 0045619. Вы должны запросить ваш лицензионный ключ SAP R/3. Это необходимо, поскольку временная лицензия, использованная в ходе установки, действительна только четыре недели. Сначала получите ключ оборудования. Зарегистрируйтесь как пользователь без параметров будет выдан список опций. После получения лицензионного ключа, его можно установить с помощью команды: ключ оборудования, 11 символов лицензионный ключ, 24 символа Создайте пользователя в клиенте 000 некоторые задачи обязательно надо выполнять из клиента 000, от имени пользователя, отличающегося от В качестве имени пользователя мы обычно выбираем по английски. Требуются профили Для дополнительной защиты надо изменить пароли стандартных пользователей на всех клиентах в том числе, пользователей В клиенте 000, от имени пользователя, отличающегося от выполните, как минимум, следующее: Сконфигурируйте систему передачи, например, как Эти и другие шаги, которые надо выполнить после установки, подробно описаны в руководствах по установке SAP. 10.7.12.4. Редактирование содержит профиль резервного копирования SAP. Здесь надо задать размер используемой ленты, тип сжатия и т.д. Чтобы можно было использовать мы изменили следующие значения: мы использовали ленту HP DLT1, которая поддерживает аппаратное сжатие. этот параметр задает стандартное поведение для сохранения архивных журналов Oracle: новые журнальные файлы сохраняются на ленту, уже сохраненные файлы журнала сохраняются еще раз, а затем удаляются. Это предотвращает многочисленные проблемы, если потребуется восстановить базу данных, а одна из архивных лент окажется сбойной. что устанавливает размер блока 5120 байт. Для лент DLT компания HP рекомендует размер блока не меньше 32 Кбайт, поэтому мы использовали значение для задания размера блока 64 Кбайта. Опция необходима, поскольку у нас есть индексные дескрипторы inodes с номерами больше 65535. Последняя опция, необходима потому, что иначе команда выдает сообщение об ошибке, как только команда выдаст количество сохраненных блоков. флаги, необходимые для загрузки данных с ленты. Формат распознается автоматически. обычно этот параметр задает реальную ёмкость ленты. Из соображений надежности мы используем аппаратное сжатие, задано значение несколько меньше фактического. Следующие параметры SAP надо настроить после установки примеры для IDES 46B, 1 Гбайт памяти: Mem: 547M Active, 305M Inact, 109M Wired, 40M Cache, 112M Buf, 3492K Free 10.7.13.1. Перезапуск останавливается при выявлении ошибки. Если вы просмотрели соответствующие журнальные файлы и исправили ошибку, придется запускать снова, обычно выбирая REPEAT как опцию для последнего шага, на котором команда выдала сообщение об ошибке. для 4.6C, независимо от того, произошла ли ошибка при работе с файлом предполагает, что запущены и работают процессы как сервера базы данных, так и SAP поскольку эти шаги уже выполнены. Если возникнут ошибки и, например, запустить сервер базы данных не получится, придется вручную запускать сервер базы данных и SAP после исправления ошибок и до повторного запуска если он тоже был остановлен например, из-за необходимой перезагрузки системы. 10.7.13.2. OSUSERSIDADMINDORA в ходе выдает сообщения об ошибках на этом этапе, отредактируйте используемый при этом файл шаблона 10.7.13.3. OSUSERDBSIDINDORA в ходе также выдаст сообщения об ошибке на этой стадии. Ошибка здесь аналогична возникающей на стадии OSUSERSIDADMINDORA. Просто отредактируйте используемый файл шаблона 10.7.13.4. FILE NOT FOUND Вы не сняли выбор с Oracle On-Line Text Viewer перед началом установки. Он помечен для установки, хотя этот продукт и не доступен сейчас для Linux. Снимите пометку с этого продукта в меню установки Oracle и перезапустите установку. Если возникает эта ошибка, не найдена нужная локаль. SAP Note 0171356 перечисляет необходимые пакеты RPM, которые надо установить например, для RedHat 6.1. Если игнорировать все ошибки и менять SAP не будет правильно сконфигурирована, и вы затем не сможете подключиться к системе с помощью SAPgui, хотя запустить систему и получится. Попытка подключения с помощью старой Linux-версии SAPgui приведет к выдаче следующих сообщений: Sat May 5 14:23:14 2001 ERROR no valid userarea given trgmsgo. 0401 Sat May 5 14:23:22 2001 ERROR ERROR NR 24 occured trgmsgi. 0410 ERROR Error when generating text environment. trgmsgi. 0435 ERROR function failed trgmsgi. 0447 ERROR no socket operation allowed trxio.c 3363 Speicherzugriffsfehler Это связано с тем, что система SAP R/3 не может корректно назначить локаль и сама не была надлежащим образом сконфигурирована не хватает записей в некоторых таблицах базы данных. Чтобы можно было подключиться к SAP, добавьте следующие записи в файл Перезапустите систему SAP. Теперь вы можете подключиться к системе, хотя специфические для страны языковые установки могут работать не так, как предполагалось. После исправления настроек страны и добавления соответствующих локалей эти записи можно удалить из файла и перезапустить систему SAP. Эта ошибка возникает только с Oracle 8.1.7 на FreeBSD 4.5. Причина в том, что сервер Oracle не может правильно проинициализироваться и аварийно завершает работу, оставляя не освобожденными в системе семафоры и совместно используемую память. При следующей попытке запустить сервер базы данных выдается ошибка ORA-00001. Эта ошибка произошла с Oracle 8.1.7. Она выдается, если сервер был запущен с помощью обычного скрипта В противном случае, вы можете получить сообщение об ошибке ORA-12546, поскольку сокеты не будут иметь нужных прав доступа. См. SAP Note 0072984. больше 1 Гбайта 1024x1024x1024. Кроме того, мы получили 10.7.13.10. DIPGNTABINDIND в ходе В общем случае, см. SAP Note 0130581 прекращается работа В ходе установки IDES-версии по каким-то причинам процесс установки использовал вместо правильного имени системы SAP, IDS, пустую строку, Это приводит к небольшим проблемам при доступе к каталогам, поскольку пути генерируются динамически на базе в данном случае, IDS. Поэтому вместо обращения к: Мы также нашли документы SAP Notes 0029227 и 0008401, описывающие это поведение. Мы не столкнулись с подобными проблемами при установке 10.7.13.11. RFCRSWBOINIINDIND в ходе В ходе установки SAP 4.6C, эта ошибка возникла в результате другой ошибки, произошедшей ранее по ходу установки. В данном случае придется просмотреть соответствующие журнальные файлы и устранить исходную проблему. Если после просмотра журнальных файлов выявлена только эта ошибка проверьте SAP Notes, можно поменять После установки надо выполнить отчет из транзакции SE38. Дополнительную информацию о стадиях 10.7.13.12. RFCRADDBDIFINDIND в ходе Здесь применяются те же ограничения: проверьте путем просмотра журнальных файлов, что эта ошибка не вызвана какими-то предыдущими проблемами. Если подтверждается, что применим документ SAP Note 0162266, просто поменяйте После установки надо выполнить отчет dispwork. Если SAP запускается скриптом запускаются отдельные подпроцессы, выполняющие грязную работу по запуску всех остальных процессов SAP. В результате, сам скрипт не получит уведомления, если что-то пойдет не так. Чтобы проверить, нормально ли запустились процессы SAP, посмотрите на состояние процессов с помощью команды которая выдаст список всех процессов Oracle и SAP. Если похоже, что некоторых процессов не хватает или вы не можете подключиться к системе SAP, просмотрите соответствующие журнальные файлы, которые можно найти в каталоге Надо просматривать файлы Сигнал 31 выдается, если объем памяти, совместно используемой SAP, превосходит заданный в файле конфигурации ядра, и от него можно избавиться, указав большее значение: большее значение для производственных систем 46C: options SHMMAXPGS393216 меньшее значение, достаточное для 46B: options SHMMAXPGS262144 10.7.13.14. Сбой при запуске версии 4.6D. Система SAP использует для сбора данных о производительности системы. Эта программа не нужна для использования системы SAP, так что проблему можно отнести к несерьезным. Более старые версии 4.6B работают, но собирают не все данные многие вызовы просто возвращают 0, например, для использования процессора. Если вы интересуетесь, как обеспечивается двоичная совместимость с Linux, этот раздел для вас. Большинство материала взято из электронного письма, адресованного Terry Lambert FreeBSD поддерживает абстракцию, называемую загрузчик выполняемых классов. Фактически, он является первой стадией системного вызова execve 2. На самом деле, FreeBSD имеет список загрузчиков вместо одного, завершающийся загрузчиком для запуска любых командных интерпретаторов и скриптов. Исторически сложилось, что единственный загрузчик в UNIX системах проверял магическое число чаще всего первые 4 или 8 байт файла, чтобы определить, известен ли формат двоичного файла системе, и если да, то вызвал соответствующий загрузчик. Если файл не опознавался системой как двоичный, системный вызов execve 2 возвращал ошибку, и текущий командный интерпретатор начинал выполнять файл как скрипт. По умолчанию скрипт выполнялся текущим командным интерпретатором. Позднее, sh 1 был модифицирован, так, чтобы проверять первые два символа в файле, и если они оказывались то файл выполнялся как сценарий для csh 1 утверждается, что SCO были первыми, кто сделал эту модификацию. FreeBSD сейчас ведет себя по-другому: пробегает по списку загрузчиков, включающему специальный загрузчик который вызывает нужный интерпретатор, указанный после этих символов до следующего пробела, или если не нашел подходящего. Для поддержки Linux ABI FreeBSD ищет магическое число, соответствующее двоичному файлу ELF на этой стадии не различаются FreeBSD, Solaris, Linux или любая другая ОС поддерживающая формат ELF. Далее, ELF-загрузчик определяет марку brand двоичного файла ELF специальный комментарий в ELF-файле, отсутствующий в двоичных файлах ELF SVR4/Solaris. Соответственно, Linux программы должны быть маркированы для Когда это сделано, загрузчик ELF выявит марку он заменяет соответствующий указатель в структуре Все системные вызовы индексируются через этот указатель в традиционной UNIX системе это массив структур содержащий системные вызовы. Кроме того, процесс помечается для специальной обработки вектора обработчиков сигналов, а также ряда других небольших исправлений, которые осуществляются специальным модулем ядра для поддержки Linux. Вектор системных вызовов Linux содержит, среди прочего, список записей адреса которых находятся в модуле ядра. При выполнении системного вызова из двоичного файла Linux, код обработчика разыменовывает указатель на функцию системного вызова из структуры и получает точки входа системных вызовов Linux, а не FreeBSD. Плюс ко всему, в Linux-режиме динамически изменяется корень файловой системы при поиске файлов; фактически так же, как и параметр Сперва, файл ищется в каталоге и только затем, в случае неудачи, в Это гарантирует, что программы, которым требуются другие программы, смогут работать например, весь набор инструментальных средств Linux сможет работать в среде поддержки Linux ABI. Это также дает возможность Linux программам выполнять FreeBSD команды, если не найдется соответствующих Linux команд. Например, можно скопировать FreeBSD uname 1 в дерево каталогов и Linux-программы не смогут разобраться, что они работают не в Linux. Фактически, имеется ядро Linux в ядре FreeBSD; различные базовые функции, реализующие все услуги ядра, идентичны как в записях таблицы системных вызовов FreeBSD, так и в записях таблицы системных вызовов Linux: операции с файловой системой, виртуальная память, средства доставки сигналов, System V Единственное отличие в том, что FreeBSD-программы получают интерфейсные функции FreeBSD, а Linux-программы получают интерфейсные функции Linux в большинстве более старых ОС есть только их собственные интерфейсные функции: функции берутся из статического глобального массива структур а не из массива, полученного разыменованием динамически проинициализированного указателя в структуре процесса, выполняющего вызов. Какая же реализация ABI для FreeBSD родная? Это не имеет значения. Единственное различие на данный момент, в будущем все может и, вероятно, изменится, пожалуй, в том, что функции системных вызовов FreeBSD зашиты в ядро, а для Linux они могут быть либо статически скомпонованы в ядро, либо получаться через модуль ядра. Да, но можно ли назвать это эмуляцией? Нет. Это реализация ABI, а не эмуляция. Как таковой, эмулятор или симулятор отсутствует. В таком случае, почему же иногда говорят об эмуляции Linux? Чтобы насолить FreeBSD! Фактически, причина в том, что на момент первой реализации не существовало слова, которое бы точнее описывало этот процесс. Нельзя было сказать, что FreeBSD запускает приложения Linux без перекомпиляции или загрузки соответствующего модуля ядра это невозможно. Но надо было как-то описать, что загружается - - отсюда и эмулятор Linux. Оставшиеся главы Руководства охватывают все аспекты администрирования FreeBSD системы. Каждая глава начинается с описания того, что вы сможете изучить в результате прочтения этой главы. Эти главы спланированы так, что вы можете прочитать их когда вам нужно узнать какую-либо информацию. Вам не нужно читать их в определенном порядке, и не нужно прочитать их все перед тем, как начать пользоваться FreeBSD. Написал Chern Lee. Основывается на учебнике, написанном Mike Smith. и на tuning7, написанном Matt Dillon. Перевод на русский язык: Андрей Мельник, Денис Пеплин, Валерий Кравчук. Один из важных аспектов FreeBSD это настройка системы. Правильная настройка системы поможет избежать головной боли при последующих обновлениях. Эта глава описывает большую часть процесса настройки FreeBSD, включая некоторые параметры, которые можно установить для оптимизации системы FreeBSD. Как эффективно работать с файловыми системами и разделами подкачки. Как настроить и протестировать сетевую карту. Как настроить виртуальные хосты на сетевых устройствах. Как оптимизировать FreeBSD, используя переменные Как увеличить скорость работы дисков и изменить ограничения, накладываемые ядром. Ознакомиться с основами конфигурации/компиляции ядра Гл. 8. Во время разметки жёсткого диска с помощью disklabel 8 или sysinstall 8, важно помнить, что скорость чтения и записи данных уменьшается от внешних к внутренним трекам диска. Самые маленькие и самые часто используемые файловые системы корневая и раздел подкачки должны быть расположены в начале диска, в то время как самые большие, такие, как в конце. Самым оптимальным считается следующий порядок расположения файловых систем: root, swap, определяется предназначением машины. используется для хранения почтовых ящиков, очередей печати и лог файлов. Размер почтовых ящиков и лог файлов может расти неограниченно в зависимости от количества пользователей системы и от того, как долго хранятся лог-файлы. Большинству пользователей никогда не потребуется гигабайт, но помните, что должен быть достаточно большим для пакетов. содержит большинство файлов, необходимых для поддержки системы, порты ports 7, рекомендуется и исходные тексты опционально. Оба эти каталога опциональны при установке. Для этого раздела рекомендуется как минимум 2 гигабайта. При установке размера разделов, не забудьте принять во внимание рост размера требуемого системе дискового пространства. Переполнение одного раздела даже при наличии свободного места на другом может вызвать затруднения. Замечание: Многие пользователи обнаружили, что размер разделов, предлагаемый sysinstall 8 ом по умолчанию, иногда меньше подходящего для разделов Тщательно планируйте размер разделов и не жалейте места. Как правило, размер раздела подкачки должен быть равен удвоенному размеру оперативной памяти. Например, если на машине установлено 128 мегабайт памяти, раздел подкачки должен быть 256 мегабайт. Системы с меньшим количеством памяти могут работать лучше с большим объёмом раздела подкачки. Не рекомендуется устанавливать размер раздела подкачки меньше 256 мегабайт, необходимо также принять во внимание возможное наращивание объема установленной на машине памяти. Алгоритмы кэширования VM настроены на максимальное быстродействие, когда размер раздела подкачки равен как минимум удвоенному размеру памяти. Заниженный размер раздела подкачки может привести к неэффективной работе постраничного сканирования VM и вызвать проблемы при увеличении объёма памяти. На больших системах с несколькими SCSI дисками или несколькими IDE дисками, находящимися на разных контроллерах, рекомендуется создавать раздел подкачки на каждом диске до четырёх дисков. Разделы подкачки должны быть примерно одного размера. Ядро не накладывает ограничений на размер раздела подкачки, но внутренние структуры позволяют иметь общий размер разделов подкачки, равный наибольшему, умноженному на четыре. Выделение под разделы подкачки примерно одинакового места позволить ядру оптимально расположить разделы подкачки. Установка размера подкачки больше требуемого нормальна, даже если этот объем не используется. В этих условиях может быть проще восстановиться после зависания программы перед тем, как возникнет необходимость перезагрузки. Некоторые пользователи считают, что лучше использовать один большой раздел, но есть несколько причин, по которым этого лучше не делать. Во-первых, у каждого раздела свои характеристики, и отделяя их, можно выполнить соответствующие настройки. Например, корневая и файловая система и в основном предназначены для чтения, без большого объема записи. В то же время множество операций чтения и записи выполняется в При правильном размещении и выборе размера разделов системы, фрагментация в более маленьких разделах, куда часто записываются данные, не перенесётся на остальные разделы. Размещение самых часто используемых разделов ближе к началу диска увеличит скорость ввода/вывода там, где она нужна больше всего. Хотя производительность важна и для больших дисков, передвижение их ближе к концу диска не повлечёт значительного уменьшения быстродействия по сравнению с перемещением ближе к концу диска И, наконец, разделы существуют и из соображений безопасности. Наличие маленького аккуратного корневого раздела, доступного только для чтения даёт значительные шансы на выживание после краха системы. Этот файл вмещает широкий спектр конфигурационной информации, используемой при загрузке системы. Имя этого файла прямо отражает его назначение, это файл настройки для файлов чтобы переопределить строки по умолчанию из Файлы по умолчанию нельзя копировать в они вмещают значения по умолчанию, а не примеры значений. Все специфичные для данной системы изменения должны быть сделаны в файле Существует несколько методов для отделения общей конфигурации для группы систем от конкретной для данной системы в целях уменьшения объема работы администратора. Рекомендуемый метод - - прописать общую конфигурацию в отдельный файл, например, в и включить его название в который вмещает только специфичную для данной системы информацию. читается sh 1, есть тривиальный способ сделать это. Например: networkinterfacesfxp0 lo0 ifconfigfxp0inet 10.1.1.1 defaultrouter10.1.1.254 saverdaemon blanktime100 может быть распространён на все системы, используя или подобную ей программу, в то время, как должен остаться только на одной машине. Вся информация в этом файле сохранится. Обычно, установленные приложения имеют свои конфигурационные файлы, со своим собственным синтаксисом. Важно хранить эти файлы отдельно от файлов основной системы, чтобы их можно было легко администрировать с помощью средств управления пакетами. В случае, если приложению нужно большое количество конфигурационных файлов, для их хранения будет создан подкаталог. Обычно, вместе с установкой портов и пакетов, устанавливаются и примеры конфигурационных файлов. Обычно они имеют расширение Если не существует конфигурационных файлов для этого приложения, они будут созданы путём копирования Размеры файлов показывают, что только файл был изменён. При следующем обновлении Apache этот файл уже не будет перезаписан. Предоставил Tom Rhodes. Многие пользователи предпочитают устанавливать программы сторонних производителей в FreeBSD из набора портов. В подобных случаях может потребоваться сконфигурировать программы так, чтобы они запускались при инициализации системы. Сервисы, такие как это лишь два примера множества программных пакетов, которые можно запускать при инициализации системы. В этом разделе описывается процедура, предназначенная для запуска программ сторонних разработчиков. Большинство входящих в FreeBSD сервисов, таких как cron 8, запускается с помощью стартовых скриптов системы. Эти скрипты могут различаться в зависимости от версии FreeBSD или ее производителя; однако важнее всего учитывать, что их начальную конфигурацию можно задать с помощью простых стартовых скриптов. который затем читался скриптами инициализации системы. Эти скрипты затем выполнялись в ходе последующих стадий запуска системы. Хотя много разработчиков потратили часы на попытки внедрить старый стиль конфигурирования в новую систему, остаётся фактом, что для некоторых утилит сторонних производителей по-прежнему необходим скрипт, помещённый в указанный выше каталог. Незначительные различия в скриптах зависят от того, используется ли rcNG. До версии FreeBSD 5.1 использовались скрипты в старом стиле, и почти во всех случаях скрипты в новом стиле должны подойти так же хорошо. Хотя каждый скрипт должен соответствовать некоторым минимальным требованиям, в большинстве случаев эти требования не зависят от версии FreeBSD. Каждый скрипт должен иметь в конце расширение и каждый скрипт должен быть выполняемым. Последнее требование может быть выполнено путем установки командой Также, как минимум, должна быть опция Простейший стартовый скрипт, пожалуй, будет похож на следующий: для приложения, которое мы здесь называем просто - - А можно запускать его и вручную, с помощью команды: практически каждый день очередной новый порт меняется так, чтобы поддерживать подобную конфигурацию. Поищите в результатах, выдаваемых после установки более детальную информацию по конкретному приложению. Некоторые программы сторонних производителей будут включать стартовые скрипты, позволяющие использовать приложение с rcNG; но это мы еще обсудим в следующем разделе. Теперь, когда FreeBSD включает rcNG, конфигурирование запуска приложений стало более оптимальным; фактически, оно стало более тщательным. С помощью ключевых слов, рассмотренных в разделе rcNG, приложения теперь можно настроить для запуска после других заданных сервисов, например, DNS можно разрешить передачу дополнительных флагов через вместо жесткого задания флагов в стартовых скриптах, и т.д. Простой скрипт может иметь следующий вид: bin/sh PROVIDE: utility REQUIRE: DAEMON BEFORE: LOGIN KEYWORD: FreeBSD shutdown НЕ МЕНЯЙТЕ ЗДЕСЬ ЭТИ СТАНДАРТНЫЕ ЗНАЧЕНИЯ ЗАДАВАЙТЕ ИХ В ФАЙЛЕ utilityenableutilityenable-NO utilityflagsutilityflags-. nameutility rcvarsetrcvar command/usr/local/sbin/utility loadrcconfig name pidfileutilitypidfile startcmdecho Starting name.;/usr/bin/nice - 5 command utilityflags commandargs runrccommand 1 Этот скрипт будет гарантировать, что указанное приложение Он также предоставляет метод для создания и отслеживания файла идентификатора процесса, PID Этот новый метод также позволяет легко работать с аргументами командной строки, включать стандартные функции из файла обеспечивает совместимость с утилитой rcorder 8 и упрощает конфигурирование с помощью файла По сути, этот сценарий можно даже поместить в каталог Это, однако, потенциально может сбить с толку утилиту mergemaster 8 при обновлениях программного обеспечения. Другие сервисы, такие как даемоны сервера POP и т.п. могут быть запущены с помощью inetd 8. Для этого необходимо установить сервисную утилиту из набора портов и добавить соответствующую строчку конфигурации в файл или раскомментировать подходящую строку конфигурации из уже имеющихся. Работа с даемоном inetd и его конфигурирование подробно описаны в разделе inetd. В некоторых случаях использование для запуска системных служб даемона cron 8 может оказаться более приемлемым. Этот подход имеет несколько преимуществ, поскольку даемон Это позволяет обычным пользователям запускать и поддерживать некоторые приложения. поддерживает уникальную возможность, это значение можно использовать вместо спецификации времени. В результате, задание будет выполнено при запуске cron 8, обычно - - в ходе инициализации системы. 11.6. Настройка утилиты Одна из наиболее полезных утилит FreeBSD это cron 8. Утилита содержат информацию об определенных функциях, которые выполняет в указанное время. использует два разных типа конфигурационных файлов, системный и пользовательский. Все различие между этими двумя форматами заключается в шестом поле. В системном файле шестое поля это имя пользователя, с правами которого будет запущена команда. Это позволяет запускать команды из системного crontab от любого пользователя. В пользовательском файле шестое поле указывает запускаемую команду, и все команды запускаются от пользователя, который создал crontab; это важно для безопасности. Команды из crontab пользователя запускаются с привилегиями этого пользователя. может использовать собственный crontab, как и любой другой пользователь. Он будет отличаться от системного crontab Поскольку существует системный crontab, обычно не требуется создавать пользовательский crontab для etc/crontab - roots crontab for FreeBSD FreeBSD: src/etc/crontab, v 1.32 2002/11/22 16:13:39 tom Exp SHELL/bin/sh PATH/etc:/bin:/sbin:/usr/bin:/usr/sbin HOME/var/log minute hour mday month wday who command 5 root/usr/libexec/atrun Как и в большинстве файлов настройки FreeBSD, символы означают комментарии. Комментарии нужны для напоминания о том, что означает строка и зачем она добавлена. Комментарии не могут находиться на той же строке, что и команда, или они будут восприняты как часть команды; располагайте их на новой строке. Пустые строки игнорируются. Сначала должны быть заданы переменные окружения. Знак равно используется для задания переменных окружения, в этом примере Если переменная для оболочки не задана, использует оболочку по умолчанию, Если не задана переменная значение по умолчанию не устанавливается и пути к файлам должны быть полными. Если не задана переменная будет использовать домашний каталог соответствующего пользователя. В строке всего семь полей. Их значения Значение полей почти очевидно. это время в минутах, когда будет запущена команда. означает то же самое для часов. это то же самое, что час и минута, но для месяцев. Параметр это день недели. Все эти поля должны быть в числовом формате, время в двадцатичетырехчасовом исчислении. Поле имеет специальное значение, и присутствует только в файле Это поле определяет пользователя, с правами которого должна быть запущена команда. Когда пользователь устанавливает собственный файл он не указывает этот параметр. Последний параметр Он указывает команду, которая должна быть запущена. Последняя строка определяет параметры, описанные выше. Здесь задано значение split/5 означают первый-последний, и могут быть интерпретированы как каждый. Таким образом, для этой строки соответствующая команда каждые пять минут независимо от дня или месяца. За дополнительной информацией по команде Команды могут принимать любое количество параметров; однако команды, состоящие из нескольких строк, должны быть объединены символом. за исключением одной детали. Шестое поле, где указано имя пользователя, присутствует только в файле Это поле должно быть исключено из Важно: Вы не должны использовать процедуру, описанную здесь, для установки системного crontab. Просто используйте свой любимый текстовый редактор: утилита узнает о том, что файл изменился и сразу начнет использовать обновленную версию. Обратитесь к этой части FAQ за дальнейшей информацией. пользователя, сначала создайте в вашем любимом редакторе файл соответствующего формата, а затем воспользуйтесь утилитой Обычно она запускается так: это имя файла crontab, который только что был создан. Для пользователей, составляющих crontab вручную, без временного файла, существует параметр Она вызовет редактор с пустым файлом. Когда файл будет сохранен, автоматически установит его. Предоставил Tom Rhodes. используемая для старта системы. Многие из файлов в каталоге предназначены для основных сервисов, они могут управляться параметрами Например, sshd 8 может быть перезапущен следующей командой: Эта процедура похожа для других сервисов. Конечно, сервисы обычно запускаются автоматически, как указано в 5. Например, включение даемона Network Address Translation при запуске выполняется простым добавлением следующей строки в уже присутствует, просто измените Скрипты rc автоматически загрузят все другие зависимые сервисы, как описано ниже. в основном предназначена для запуска/отключения сервисов во время запуска/отключения системы, стандартные параметры Для выполнения скриптов независимо от установок в необходимо задавать с префиксом force. Например, для перезапуска выполните следующую команду: etc/rc.d/sshd forcerestart Проверка переменной для Чтобы определить, запущен ли сервис, существует параметр Например для проверки того, запущен ли sshd is running as pid 433. сервиса. Скрипт, запущенный с этим параметром, попытается отправить сервису сигнал, вызывающий перезагрузку файлов настройки. В большинстве случаев это означает отправку сервису сигнала Структура rcNG используется не только для сетевых серверов, она отвечает также за большую часть инициализации системы. Рассмотрим, к примеру, файл Во время выполнения этот скрипт выводит следующее сообщение: Starting background file system checks in 60 seconds. Следовательно, этот файл используется для фоновой проверки файловых систем, которая выполняется только в процессе инициализации системы. Функционирование многих сервисов системы зависит от корректной работы других сервисов. Например, NIS и другие основанные на RPC сервисы могут не запуститься, пока не загрузится portmapper. Для разрешения этой проблемы, в начале каждого скрипта в комментарии включаются информация о зависимостях и другие метаданные. Программа rcorder 8 используется для разбора этих комментариев во время старта системы для определения порядка, в котором должны вызываться системные сервисы в соответствии с зависимостями. В начало каждого стартового файла должны быть включены следующие строки: Задает имя сервиса, предоставляемого этим файлом. Список сервисов, необходимых этому сервису. Этот файл будет запущен после указанных сервисов. Список сервисов, зависящих от этого сервиса. Этот файл будет запущен до указанных сервисов. KEYWORD: FreeBSD или NetBSD. Используется для функций, зависящих от версии BSD. Используя этот метод, администратор может легко контролировать системные сервисы без использования уровней запуска, как в некоторых других операционных системах UNIX. Предоставил Marc Fonvieille. В наши дни мы не представляем себе компьютера без сетевого подключения. Добавление и настройка сетевой карты это обычная задача любого администратора FreeBSD. В первую очередь определите тип используемой карты PCI или ISA, модель карты и используемый в ней чип. FreeBSD поддерживает многие PCI и ISA карты. Обратитесь к Списку поддерживаемого оборудования вашего релиза чтобы узнать, поддерживается ли карта. Как только вы убедились, что карта поддерживается, потребуется определить подходящий драйвер. В файлах находится список драйверов сетевых интерфейсов с информацией о поддерживаемых чипсетах/картах. Если вы сомневаетесь в том, какой драйвер подойдет, прочтите страницу справочника к драйверу. Страница справочника содержит больше информации о поддерживаемом оборудовании и даже о проблемах, которые могут возникнуть. не существует в FreeBSD Вместо него, проверьте файл на предмет информации о различных сетевых интерфейсах. В Разд. 8.4 находится более подробная информация о различиях Если ваша карта широко распространена, вам скорее всего не потребуется долго искать драйвер. Драйверы для широко распространенных карт представлены в ядре так что ваша карта должна определиться при загрузке, примерно так: dc0: 82c169 PNIC 10/100BaseTX port 0xa000-0xa0ff mem 0xd3800000-0xd38 000ff irq 15 at device 11.0 on pci0 dc0: Ethernet address: 00:a0:cc:da:da:da miibus0: MII bus on dc0 ukphy0: Generic IEEE 802.3u media interface on miibus0 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto dc1: 82c169 PNIC 10/100BaseTX port 0x9800-0x98ff mem 0xd3000000-0xd30 000ff irq 11 at device 12.0 on pci0 dc1: Ethernet address: 00:a0:cc:da:da:db miibus1: MII bus on dc1 ukphy1: Generic IEEE 802.3u media interface on miibus1 ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto В этом примере две карты используют имеющийся в системе драйвер dc 4. для ее использования потребуется загрузить подходящий драйвер. Это может быть сделано одним из двух способов: Простейший способ - - просто загрузить модуль ядра сетевой карты с помощью kldload 8. Не все драйверы доступны в виде модулей; например, модули отсутствуют для ISA карт. Вместо этого, вы можете статически включить поддержку карты, скомпилировав собственное ядро. Информацию о том, какие параметры нужно включать в ядро, можно получить из и страницы справочника драйвера сетевой карты. За более подробной информацией о сборке собственного ядра обращайтесь к Гл. 8. Если карта была обнаружена вашим ядром во время загрузки, собирать ядро не потребуется. Как только для сетевой карты загружен подходящий драйвер, ее потребуется настроить. Как и многое другое, сетевая карта может быть настроена во время установки с помощью Для вывода информации о настройке сетевых интерфейсов системы, введите следующую команду: dc0: flags8843 UP, BROADCAST, RUNNING, SIMPLEX, MULTICAST mtu 1500 inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255 ether 00:a0:cc:da:da:da media: Ethernet autoselect 100baseTX full-duplex status: active dc1: flags8843 UP, BROADCAST, RUNNING, SIMPLEX, MULTICAST mtu 1500 inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255 ether 00:a0:cc:da:da:db media: Ethernet 10baseT/UTP status: no carrier lp0: flags8810 POINTOPOINT, SIMPLEX, MULTICAST mtu 1500 lo0: flags8049 UP, LOOPBACK, RUNNING, MULTICAST mtu 16384 inet 127.0.0.1 netmask 0xff000000 tun0: flags8010 POINTOPOINT, MULTICAST mtu 1500 за более подробным описанием синтаксиса ifconfig 8 обращайтесь к странице справочника. Учтите также, что строки, относящиеся к IPv6 и т.п. убраны из этого примера. туннельное устройство, используемое Для присвоения имени сетевой карте FreeBSD использует имя драйвера и порядковый номер, в котором карта обнаруживается при инициализации устройств. Например, это третья сетевая карта, использующая драйвер sis 4. В этом примере, устройство включено и работает. Ключевые признаки таковы: означает, что карта настроена и готова. Широковещательный адрес в данном случае, За более подробной информацией о доступных драйверу типах среды обращайтесь к странице справочника. т.е. несущая обнаружена. Для Это нормально, когда Ethernet кабель не подключен к карте. dc0: flags8843 BROADCAST, SIMPLEX, MULTICAST mtu 1500 ether 00:a0:cc:da:da:da это означает, что карта не была настроена. Настройка сетевой карты может быть выполнена из командной строки с помощью ifconfig 8, но вам потребуется делать это после каждой перезагрузки системы. Подходящее место для настройки сетевых карт это файл в текстовом редакторе. Вам потребуется добавить строку для каждой сетевой карты, имеющейся в системе, например, в нашем случае, было добавлено две строки: ifconfigdc0inet 192.168.1.3 netmask 255.255.255.0 ifconfigdc1inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP и так далее на соответствующие имена ваших карт, подставьте соответствующие адреса. Обратитесь к страницам справочника сетевой карты и ifconfig 8, за подробной информацией о доступных опциях и к странице справочника 5 за дополнительной информацией о синтаксисе Если вы настроили сетевую карту в процессе установки системы, некоторые строки, касающиеся сетевой карты, могут уже присутствовать. Внимательно проверьте перед добавлением каких-либо строк. для добавления имен и IP адресов различных компьютеров сети, если их еще там нет. За дополнительной информацией обращайтесь к 5; и к перегрузите компьютер. Изменения настроек интерфейсов будут применены, кроме того будет проверена правильность настроек. Как только система перезагрузится, проверьте сетевые интерфейсы. Для проверки правильности настройки сетевой карты, попробуйте выполнить ping для самого интерфейса, а затем для другой машины в локальной сети. PING 192.168.1.3 192.168.1.3: 56 data bytes 64 bytes from 192.168.1.3: icmpseq0 ttl64 time0.082 ms 64 bytes from 192.168.1.3: icmpseq1 ttl64 time0.074 ms 64 bytes from 192.168.1.3: icmpseq2 ttl64 time0.076 ms 64 bytes from 192.168.1.3: icmpseq3 ttl64 time0.108 ms 64 bytes from 192.168.1.3: icmpseq4 ttl64 time0.076 ms - - 192.168.1.3 ping statistics - - 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev 0.074/0.083/0.108/0.013 ms PING 192.168.1.2 192.168.1.2: 56 data bytes 64 bytes from 192.168.1.2: icmpseq0 ttl64 time0.726 ms 64 bytes from 192.168.1.2: icmpseq1 ttl64 time0.766 ms 64 bytes from 192.168.1.2: icmpseq2 ttl64 time0.700 ms 64 bytes from 192.168.1.2: icmpseq3 ttl64 time0.747 ms 64 bytes from 192.168.1.2: icmpseq4 ttl64 time0.704 ms - - 192.168.1.2 ping statistics - - 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev 0.700/0.729/0.766/0.025 ms Решение проблем с аппаратным и программным обеспечением всегда вызывает сложности, которые можно уменьшить, проверив сначала самые простые варианты. Подключен ли сетевой кабель? Правильно ли настроены сетевые сервисы? Правильно ли настроен брандмауэр? Поддерживается ли используемая карта в FreeBSD? Всегда проверяйте информацию об оборудовании перед отправкой сообщения об ошибке. Обновите FreeBSD до последней версии STABLE. Просмотрите архивы списков рассылки, или поищите информацию в интернет. Если карта работает, но производительность низка, может помочь чтение страницы справочника tuning 7. Проверьте также настройки сети, поскольку неправильные настройки могут стать причиной низкой скорости соединения. что нормально для некоторых сетевых карт. Если это продолжается и надоедает, убедитесь, что устройство не конфликтует с другим устройством. Внимательно проверьте подключение кабеля. Возможно также, что вам просто надо установить другую карту. Время от времени, пользователи видят несколько ошибок Первое, что требуется сделать, это проверить сетевой кабель. Многие карты требуют поддержки Bus Mastering слотом PCI. На некоторых старых материнских платах, только один PCI слот имеет такую поддержку обычно слот 0. Сверьтесь с документацией на сетевую карту и материнскую плату, чтобы определить, может ли это быть проблемой. появляются, если система не в состоянии доставить пакеты к хосту назначения. Это может случиться, если не определен маршрут по умолчанию, или кабель не подключен. Проверьте вывод команды и убедитесь, что к соответствующему хосту есть работающий маршрут. Если это не так, прочтите Гл. 25. зачастую появляются при неправильно настроенном брандмауэре. Если включен в ядре, но правила не определены, правило по умолчанию блокирует весь трафик, даже запросы ping! Прочтите Гл. 24 с более подробной информацией. Иногда скорость карты недостаточна, или ниже среднего. В этих случаях лучше всего изменить режим выбора типа подключения с на правильный тип. Обычно это работает для большинства оборудования, но не может решить проблему во всех случаях. Проверьте еще раз настройки сети и прочтите страницу справочника tuning 7. Очень часто FreeBSD используется для размещения сайтов, когда один сервер работает в сети как несколько серверов. Это достигается присвоением нескольких сетевых адресов одному интерфейсу. У сетевого интерфейса всегда есть один настоящий адрес, хотя он может иметь любое количество синонимов alias. Эти синонимы обычно добавляются путём помещения соответствующих записей в Заметьте, что записи синонимов должны начинаться с и идти далее в определенном порядке например, и т.д. Конфигурационный процесс остановится на первом по порядку отсутствующем числе. Определение маски подсети для синонима очень важно, но к счастью, так же просто. Для каждого интерфейса должен быть один адрес с истинной маской подсети. Любой другой адрес в сети должен иметь маску подсети, состоящую из всех единичек что выражается как Например, рассмотрим случай, когда интерфейс подключён к двум сетям, к сети Мы хотим, чтобы система была видна по IP, начиная с Как было сказано выше, только первый адрес в заданном диапазоне в данном случае, должен иметь реальную маску сети; все остальные с ifconfigfxp0inet 10.1.1.1 netmask 255.255.255.0 ifconfigfxp0alias0inet 10.1.1.2 netmask 255.255.255.255 ifconfigfxp0alias1inet 10.1.1.3 netmask 255.255.255.255 ifconfigfxp0alias2inet 10.1.1.4 netmask 255.255.255.255 ifconfigfxp0alias3inet 10.1.1.5 netmask 255.255.255.255 ifconfigfxp0alias4inet 202.0.75.17 netmask 255.255.255.240 ifconfigfxp0alias5inet 202.0.75.18 netmask 255.255.255.255 ifconfigfxp0alias6inet 202.0.75.19 netmask 255.255.255.255 ifconfigfxp0alias7inet 202.0.75.20 netmask 255.255.255.255 11.10.1. Каталог Во FreeBSD определён ряд каталогов, предназначенных для хранения конфигурационных файлов. Это: Основные файлы конфигурации системы. Тут размещены системно-зависимые данные. Версии системных конфигурационных файлов по умолчанию. Дополнительные конфигурационные файлы sendmail 8, другие конфигурационные файлы MTA. Настройка для user- и kernel-ppp программ. Основное место расположения данных named 8. Обычно и файлы зон расположены здесь. Конфигурационные файлы установленных приложений. Могут содержать подкаталоги приложений. Скрипты запуска/остановки установленных приложений. Автоматически генерируемые системно-специфичные файлы баз данных, такие как база данных пакетов, и так далее определяет, как ресолвер resolver FreeBSD получает доступ к Системе Доменных Имён DNS. IP адрес сервера имён. Сервера опрашиваются в порядке описания. Максимальное количество адресов - - три. Список доменов для поиска с помощью hostname lookup. Обычно определяется доменом, в котором находится компьютер. Домен, в котором находится компьютер. search nameserver 147.11.1.11 nameserver 147.11.100.30 нельзя использовать совместно. Если вы используете DHCP, dhclient 8 обычно перезаписывает информацией, полученной от серверов DHCP. простая текстовая база данных, напоминающая старый Интернет. Она работает совместно с DNS и NIS, сопоставляя доменные имена IP адресу. Отдельные компьютеры, соединённые с помощью локальной сети, могут быть записаны тут вместо named 8 сервера с целью упрощения. Кроме того, используется для записи IP адресов и соответствующих им доменов, избавляя от внешнего трафика, используемого для запросов к DNS серверам. FreeBSD Host Database This file should contain the addresses and aliases for local hosts that share this file. In the presence of the domain name service or NIS, this file may not be consulted at all; see for the resolution order. ::1 localhost 127.0.0.1 localhost Imaginary network. 10.0.0.2 myname 10.0.0.3 myfriend According to RFC 1918, you can use the following IP networks for private nets which will never be connected to the Internet: 10.0.0.0 - 10.255.255.255 172.16.0.0 - 172.31.255.255 192.168.0.0 - 192.168.255.255 In case you want to be able to connect to the Internet, you need real official assigned numbers. PLEASE PLEASE PLEASE do not try to invent your own network numbers but instead get one from your network provider if any or from the Internet Registry ftp to, directory/templates. 10.0.0.1 myRealHostname foobar1 foobar2 За дополнительной информацией обращайтесь к hosts 5. is является файлом конфигурации для syslogd 8. В нём указываются, типы сообщений генерируемые и лог файлы, в которые они записываются. За более полной информацией обратитесь к 5. конфигурационный файл newsyslog 8, программы, обычно контролируемой cron 8. newsyslog 8 определяет, когда лог-файлы нуждаются в архивировании и перегруппировке. и так далее. Другое именование получится при архивировании с помощью gzip 1: показывает, какие лог файлы должны быть проинспектированы, сколько их должно быть сохранено, и когда они должны быть пересмотрены. Лог файлы могут быть перегруппированы и/или заархивированы, когда они либо достигнут определённого размера, либо при достижении определённых даты/времени. За дополнительной информацией обращайтесь к newsyslog 8. Значения устанавливаются в виде Указанные значения устанавливаются после перевода системы в многопользовательский режим. Однако не все переменные могут быть установлены в этом режиме. настроенного для выключения протоколирования фатальных ошибок программ и разрешения Linux-программам определять, что они запускаются под FreeBSD: 0 Do not log fatal signal exits sig 11 FreeBSD 4.3-STABLE sysctl 8 - - это интерфейс, позволяющий вам вносить изменения в работающую систему FreeBSD. Эти изменения касаются многих опций стека TCP/IP и виртуальной памяти; опытный системный администратор может использовать их для существенного увеличения производительности. Более пяти тысяч системных переменных могут быть прочитаны и записаны с помощью sysctl 8. По своей сути, sysctl 8 выполняет две функции: чтение и изменение настроек системы. Чтобы прочитать определённую переменную, например, Для присвоения значения переменной, используйте выражение вида Изменяемые с помощью sysctl переменные обычно принимают значения либо строкового, либо целого, либо булевого типа. Переменные булевого типа могут принимать два значения Если вы хотите устанавливать некоторые переменные автоматически при каждой загрузке компьютера, добавьте их в файл За дополнительной информацией обращайтесь к странице справочника 5 и к Разд. 11.10.4. Предоставил Tom Rhodes. В некоторых случаях желательно изменить переменные sysctl 8 только для чтения. Иногда другого способа решить проблему нет; при этоме, результат может быть достигнут только на этапе начальной загрузки. Например, на некоторых моделях лэптопов диапазон памяти устройства cardbus 4 не определяется и выдается приблизительно такая ошибка: Ситуации, похожие на эту, требуют изменения некоторых значений sysctl 8, модификация которых запрещена. Для разрешения этой ситуации пользователь может поместить sysctl 8 OID в файл Значения по умолчанию хранятся в файле Решение проблемы, приведенной выше, потребует помещения строки в вышеупомянутый файл. Теперь cardbus 4 будет работать нормально. может быть установлено в 0 выключено или 1 включено; по умолчанию 1. Эта переменная отвечает за метод кэширования каталогов. Размер большинства каталогов невелик. Они могут поместиться в одном фрагменте обычно 1K, и могут занимать ещё меньше места обычно 512 байт в кэше буфера. При отключении этой переменной при установке значения 0 буфер прокэширует только заданное число каталогов даже если у вас много памяти. При включении при установке значения 1 эта переменная sysctl позволит использовать страничное кэширование VM, делая доступным для кэширования каталогов весь объём памяти. Однако, минимальный объём памяти, используемой для кэширования каталогов стал равен объёму страницы обычно 4 K вместо 512 байт. Мы рекомендуем оставлять эту опцию включенной, если ваш компьютер исполняет программы, манипулирующие значительным количеством файлов. Примером таких программ могут быть кэширующие прокси-серверы, большие почтовые серверы и серверы новостей. Обычно включение этой опции не понижает производительности, однако лучше поэкспериментировать, чтобы узнать оптимальное значение для вашей машины. включено. Она указывает системе выполнять запись на носитель по кластерам, что обычно делается для больших файлов. Идея в том, чтобы избежать заполнения кэша неполными буферами, когда это не увеличивает производительность. Однако, это может заблокировать процессы и в некоторых случаях вам может понадобиться отключить этот параметр. определяет число запросов записи на диск, которые могут быть поставлены в очередь. Значение по умолчанию обычно подходит, но на компьютерах с большим количеством дисков вы можете увеличить его до четырех или пяти мегабайт. Учтите, что установка слишком большого значения превышающего размер буфера записи может привести к очень значительному падению общей производительности. Не делайте это значение произвольно большим! Большие значения могут привести к задержкам чтения, выполняемого в то же время Есть много других переменных sysctl, относящихся к кэшированию в буфер и страничному кэшированию VM. Мы не рекомендуем изменять эти значения. Начиная FreeBSD 4.3, система VM делает отличную работу по автоматической самонастройке. полезна в больших многопользовательских системах, где есть много пользователей, входящих и выходящих из системы, и множество ожидающих процессов. Такие системы обычно генерируют большое количество запросов на выделение памяти. Включение этой переменной и настройка задержки выгрузки swapout hysteresis, в секундах установкой переменных позволит освобождать страницы памяти, занятые ожидающими процессами, более быстро, чем при нормальном алгоритме выгрузки. Это помогает даемону выгрузки страниц. Не включайте этот параметр, пока он на самом деле вам не понадобится, поскольку его действие в сущности заключается в более ранней выгрузке страниц из памяти; это повышает нагрузку на подкачку и диск. В малых системах эффект от включения этого параметра предсказуем, но в больших системах нагруженной на подкачкой этот параметр позволяет системе VM проще загружать и выгружать процессы из памяти. Во FreeBSD 4.3 кэширование записи на IDE диски было отключено. Это понижало производительность IDE дисков в тестах, но было необходимо для лучшей сохранности данных. Проблема состоит в том, что IDE диски неправильно указывают время завершения записи на диск. При включенном кэшировании IDE диски могут не только записать данные в неправильном порядке - - при большой нагрузке на диск некоторые блоки могут задержаться до бесконечности. Сбой, или отключение питания могут могут стать причиной серьёзных повреждений в файловой системе. Поэтому для безопасности системы значение по умолчанию этого параметра было изменено. К сожалению, результатом этого стало столь значительная потеря производительности, что после выхода релиза значение этого параметра было возвращено в первоначальное состояние. Вам следует проверить значение переменной sysctl на вашей машине. Если кэширование выключено - - вы можете включить его, установив значение переменной ядра, равное 1. Это должно быть сделано при помощи загрузчика при загрузке. Если вы сделаете это позже - - изменения не будут иметь силы. За более подробной информацией обращайтесь к ata 4. может использоваться для уменьшения времени загрузки системы. Значение по умолчанию велико и может составлять более секунд в процессе загрузки. Уменьшение его до секунд обычно работает особенно с современными дисками. В новых версиях FreeBSD 5.0 и выше должен использоваться параметр настраиваемый во время загрузки. Этот параметр и параметр настройки ядра принимают значения в Программа tunefs 8 используется для настройки файловой системы. Эта программа может принимать большое количество параметров, но мы рассмотрим лишь один из них - - включение и выключение Soft Updates, что может быть достигнуто следующим образом: Нельзя изменять файловую систему с помощью tunefs 8 когда она смонтирована. Самое подходящее время для включения Soft Updates - перед монтированием разделов, в однопользовательском режиме. Замечание: Начиная с FreeBSD 4.5, можно включить Soft Updates во время создания файловой системы, используя newfs 8 с параметром Soft Updates существенно увеличивают скорость создания и удаления файлов путём использования кэширования. Мы рекомендуем использовать Soft Updates на всех ваших файловых системах. Однако у Soft Updates есть и обратные стороны: во-первых, Soft Updates гарантирует целостность файловой системы в случае сбоя, но может наблюдаться задержка в несколько секунд или даже минуту! перед записью на жесткий диск. Если система зависнет - - вы можете потерять больше, чем, если бы вы не включили Soft Updates. Во-вторых, Soft Updates задерживает освобождение блоков файловой системы. Если ваша файловая система заполнена, выполнение значительного обновления, например, может вызвать переполнение. Есть два традиционных способа записи метаданных файловых систем на диск пример метаданных: индексные дескрипторы и каталоги. Исторически, поведение по умолчанию заключается в синхронном обновлении метаданных. Если каталог был изменен, система ждет, пока изменение не будет физически записано на диск. Содержимое файлов проходит через кэш и записывается на диск асинхронно. Преимущество этого способа в его надежности. При сбое во время обновления метаданные остаются в нормальном состоянии. Файл либо создается целиком, либо вообще не создается. Если блоки данных не были записаны в файл из буфера во время сбоя, fsck 8 сможет определить это и восстановить файловую систему, установив длину файла в 0. Кроме того, реализация этого способа проста и понятна. Недостаток в том, что обновление метаданных занимает много времени. Команда например, последовательно удаляет все файлы в каталоге, и каждое изменение в каталоге удаление файла будет синхронно записано на диск. Сюда включаются обновления самого каталога, таблицы индексных дескрипторов, и возможно блоков, занятых файлом. Те же соглашения работают при распаковке больших иерархий Другой вариант это асинхронное обновление метаданных. Это поведение по умолчанию для Linux/ext2fs и BSD ufs с параметром Все обновления метаданных просто пропускаются через кэш буфера, как и содержимое файлов. Преимущество этой реализации в том, что нет необходимости ждать каждый раз, пока метаданные будут записаны на диск, поэтому все операции с большим объемом обновления метаданных будут происходить гораздо быстрее, чем при синхронном обновлении. Кроме того, реализация все еще проста и понятна, поэтому риск появления ошибок в коде невелик. Недостаток в том, что нет никаких гарантий исправности файловой системы. Если во время обновления большого объема метаданных произойдет сбой например, отключение питания, или нажатие кнопки reset, файловая система останется в непредсказуемом состоянии. Нет возможности определить состояние файловой системы после такого сбоя; блоки данных файла могут быть уже записаны на диск, а обновления таблицы индексных дескрипторов нет. Невозможно реализовать которая могла бы исправить получившийся хаос поскольку необходимой информации нет на диске. Если файловая система была уничтожена во время восстановления, единственный способ восстановления - - запустить newfs 8 и воспользоваться резервной копией. протоколировании проблемной области dirty region logging, известном как журналирование, хотя этот термин использовался неправильно и порой также применялся к другим формам протоколирования транзакций. Обновление метаданных как и прежде происходит синхронно, но в отдельную область диска. Позже они перемещаются туда, где должны быть. Поскольку область протоколирования это небольшая, последовательная область диска, головкам жесткого диска не приходится перемещаться на большие расстояния даже во время значительных обновлений, поэтому такой способ быстрее, чем синхронные обновления. Кроме того, сложность реализации довольно ограничена, поэтому риск внесения ошибок невелик. Недостаток в том, что все обновления метаданных записываются дважды один раз в область протоколирования и один раз окончательно, поэтому при обычной работе производительность может понизиться. С другой стороны, в случае сбоя все незаконченные действия с метаданными могут быть быстро отменены, или завершены после загрузки системы, поэтому система после сбоя загружается быстрее. Kirk McKusick, разработчик Berkeley FFS, решил эту проблему с помощью Soft Updates: все незавершенные обновления метаданных находятся в памяти и записываются на диск в упорядоченном виде упорядоченное обновления метаданных. При значительных обновлениях метаданных более поздние обновления присоединяются к предыдущим, если они все еще находятся в памяти и еще не записаны на диск. Поэтому все операции, скажем, над каталогом, обычно выполняются в памяти перед записью обновления на диск блоки данных сортируются в соответствии с их положением, так что они не будут записаны на диск до метаданных. При крахе операционной системы выполняется откат: считается, что все операции, не записанные на диск, никогда не происходили. Файловая система находится в том состоянии, в котором она была за 30-60 секунд до сбоя. Используемый алгоритм гарантирует, что все используемые ресурсы маркированы соответствующим образом в своих областях: блоки и индексные дескрипторы. После сбоя могут остаться только ошибки выделения ресурсов, они помечаются как используемые, хотя на самом деле свободны. fsck 8 разбирается в ситуации и освобождает более не используемые ресурсы. После сбоя система может быть безопасно смонтирована с опцией Для освобождения ресурсов, которые могут не использоваться, в дальнейшем потребуется запустить fsck 8. Эта идея лежит в основе background фоновая fsck : во время запуска системы записывается только снимок файловой системы. Все системы могут быть смонтированы в грязном состоянии, и система загружается в многопользовательский режим. Затем, фоновые ставятся в очередь для всех систем, где это требуется, чтобы освободить неиспользуемые ресурсы. Файловые системы, где не используются Soft Updates, все еще требуют запуска Преимущество этого способа в том, что обновления метаданных происходят почти так же быстро, как при асинхронных обновлениях т.е. быстрее, чем при журналировании, когда метаданные записываются дважды. Недостаток в сложности кода подразумевающим больший риск появления ошибок в области, где вероятность потери данных пользователя особенно высока и в более высоких требованиях к объему памяти. К тому же могут возникнуть некоторые странные на первый взгляд ситуации. После сбоя состояние файловой системы несколько более старое. В ситуации, когда стандартный способ синхронизации оставит несколько файлов нулевой длины после выполнения в файловой системе с Soft Updates их не останется вовсе, поскольку ни метаданные, ни содержимое файлов не были записаны на диск. Дисковое пространство не будет освобождено пока обновления не будут записаны на диск, что может занять некоторое время после выполнения Это может повлечь проблемы при установке большого количества файлов на файловую систему, где не хватает места для помещения всех файлов дважды. может быть увеличено или уменьшено в зависимости от потребностей вашей системы. Эта переменная определяет максимальное число дескрипторов файлов. Когда таблица дескрипторов файлов полна, в очереди системных сообщений появится сообщение Это сообщение может быть прочитано с помощью команды Каждый открытый файл, сокет или буфер использует дескриптор файла. Широкомасштабному серверу может понадобиться много тысяч дескрипторов файлов, в зависимости от количества программ, одновременно выполняемых на сервере. в вашем файле конфигурации ядра. Значение При компилировании ядра, нужно установить эту переменную согласно потребностям вашей системы. Исходя из значения этой переменной, ядро устанавливает значения большинства предопределённых переменных. Даже если предполагается, что к компьютеру не будут одновременно подсоединяться 256 пользователей, требуемые ресурсы могут быть такими же, как у крупномасштабного сервера. Замечание: Начиная с FreeBSD 4.5, установка значения в файле конфигурации ядра выберет подходящее значение по умолчанию, основанное на объеме оперативной памяти системы. ограничивает размер очереди для приема новых TCP соединений. Значение по умолчанию слишком мало для надежной обработки новых соединений для нагруженного web сервера. Для такого сервера рекомендуется увеличить это значение до или выше. Даемон сервиса может сам ограничивать очередь приема новых соединений например, sendmail 8, или Apache, но обычно в файле настройки даемона есть директива для настройки длины очереди. Более длинная очередь также помогает избежать атак Denial of Service DoS обуславливает количество Mbuf, доступных на машине. На сервере с большим трафиком и маленьким Mbuf производительность будет пониженной. Каждый кластер представлен двумя килобайтами памяти, поэтому значение 1024 означает 2 мегабайта памяти ядра, зарезервированной для сетевых буферов. Для определения оптимального значения необходимо провести простые вычисления. Если у вас веб сервер, который может обслуживать 1000 одновременных соединений, и каждое соединение съедает 16 K буфера приема и 16 K буфера отправки, вам потребуется 32 MB памяти под буферы. Хорошее правило - - умножение этого значения на 2, 2x32 MB2 KB 64 MB2 kB 32768. Мы рекомендуем значения между 4096 и 32768 для машин с большим объемом памяти. Не указывайте произвольно большое значение параметра, это может привести к падению системы при загрузке. Используйте netstat 1 с опцией для определения количества используемых сетевых кластеров. Только в старых версиях FreeBSD потребуется пересобрать ядро config 8 с измененным параметром Для нагруженных серверов, интенсивно использующих системный вызов sendfile 2, может потребоваться увеличения буферов sendfile 2 с помощью параметра конфигурации ядра или изменения значения путем установки переменной в обратитесь к loader 8 за подробностями. Общий признак того, что параметр требуется изменить - - состояние процессов установлена только для чтения. Этот параметр увеличивается вместе с хотя может потребоваться увеличить его отдельно. Важно: Даже если сокет помечен как неблокирующий, вызов sendfile 2 на неблокирующем сокете может вызвать блокирование sendfile 2, пока не станет доступным достаточное количество контролируют диапазоны номеров портов, автоматически привязываемых к TCP и UDP сокетам. Есть три диапазона: нижний диапазон, диапазон по умолчанию и верхний диапазон. Большинство сетевых программ используют диапазон по умолчанию, контролируемый установленными соответственно в 1024 и 5000. Диапазоны портов привязки используются для исходящих соединений и при некоторых условиях портов может не хватить. Это чаще всего происходит на сильно загруженном прокси сервере. Диапазон портов не становится проблемой при работе серверов, которые обрабатывают в основном входящие соединения, или с небольшим количеством исходящих соединений, например mail relay. Для ситуаций, когда возможен недостаток портов, рекомендуется немного увеличить Учтите также возможное влияние брандмауэра при изменении диапазона портов. Некоторые могут блокировать большие диапазоны портов обычно с небольшими номерами и вынуждают использовать более высокие диапазоны для исходящих соединений. По этой причине рекомендуется настроить значение TCP Bandwidth Delay Product Limiting похоже на TCP/Vegas в NetBSD. Оно может быть включено установкой переменной sysctl Система попытается вычислить задержку пакетов для каждого соединения и ограничить объем данных в очереди сети до значения, требуемого для поддержания оптимальной пропускной способности. Эта возможность полезна при передаче данных через модемы, Gigabit Ethernet, или даже через высокоскоростные WAN соединения или любые другие соединения с большой задержкой передачи, особенно если вы также используете изменение размера окна или настроили большое окно передачи. Если вы включили этот параметр, убедитесь также, что переменная отладка выключена, а для использования в реальных задачах может понадобиться установка переменной Но учтите, что установка большого значения этой переменной может фактически отключить ограничение в зависимости от вида соединения. Ограничение уменьшает количество данных на определенном маршруте и управляет очередью пакетов, как и уменьшает общее количество данных в очереди локального интерфейса хоста. С меньшим количеством пакетов в очереди двусторонние интерактивные соединения, особенно на медленных линиях, могут проходить быстрее. Но имейте ввиду, что эта функция работает только при передаче данных передача данныхсторона сервера. Она не работает при получении данных загрузке. не рекомендуется. Этот параметр по умолчанию равен 20, что означает добавление 2 пакетов к вычислению задержки передачи. Дополнительное окно требуется для стабилизации алгоритма и улучшения ответной реакции на изменение условий, но также приводит к большему времени ping на медленных соединениях задержка все же гораздо меньше, чем без алгоритма inflight. Вы можете попробовать уменьшить этот параметр до 15, 10 или 5; а также уменьшить например, до 3500 для получения желаемого эффекта. Уменьшение значений этих параметров может использоваться только как крайняя мера. Замечание: В FreeBSD версий 4.X и ранее системные переменные группы Их наименования в алфавитном порядке: Файлы и каталоги в ядре представлены при помощи vnode виртуальных узлов. Увеличение их числа может помочь уменьшить нагрузку на дисковую подсистему. Как правило, специальной настройки это значение не требует, однако, в некоторых случаях дисковая активность является узким местом, и система исчерпывает таблицу vnode, значение этой переменной следует увеличить. При этом необходимо оценить объем неактивной и свободной памяти. Максимальное количество vnode, доступных системе: Если количество использованных vnode близко к максимуму, значение переменной следует увеличить на 1000. Следите за динамикой изменения Если оно увеличивается, приближаясь к вновь установленному максимуму, процесс следует повторить. Изменение в распределении памяти должно быть видно в выводе утилиты top 1: больше памяти перейдет в разряд активной. Вне зависимости от того, что вы планировали, иногда система ведет себя неожиданно. Если вам потребовался дополнительный объем подкачки, его довольно просто добавить. Есть три способа увеличения объема подкачки: добавить новый жесткий диск, включить подкачку по NFS, или создать файл подкачки на существующем разделе. Лучший способ добавить подкачку, конечно, использовать еще один жесткий диск. Вы можете сделать это в любой момент. Если такой способ подходит, прочтите еще раз информацию по пространству подкачки в Разд. 11.2 Руководства, где рассказывается о наилучшем способе организации раздела подкачки. Подкачка через NFS рекомендуется только в том случае, если в системе отсутствует жесткий диск. Подкачка через NFS медленна и неэффективна в версиях FreeBSD до Она довольно быстра и эффективна в 4.0-RELEASE и выше. Но даже в новых версиях FreeBSD, подкачка через NFS ограничена скоростью сетевого подключения и к тому же дополнительно нагружает NFS сервер. Вы можете создать файл определенного размера и использовать его как файл подкачки. В нашем примере будет использован файл размером 64MB. Конечно, вы можете использовать любое имя. Пример 11-1. Создание файла подкачки в FreeBSD 4.X Убедитесь, что ядре включен драйвер vnode. Он swapfile/usr/swap0 Set to name of swapfile if aux swapfile desired. Перегрузите компьютер, или для включения подкачки прямо сейчас выполните: Пример 11-2. Создание файла подкачки в FreeBSD 5.X Убедитесь, что в файле настройки ядра присутствует драйвер виртуального диска md 4. Он есть в ядре swapfile/usr/swap0 Set to name of swapfile if aux swapfile desired. Написал Hiten Pandya, Tom Rhodes. Очень важно использовать аппаратные ресурсы эффективно. До того, как появился ACPI управление потреблением питания и температурными характеристиками системы было очень сложной для операционной системы задачей. Аппаратное обеспечение контролировалось одним из видов встроенного интерфейса BIOS Plug and Play BIOS PNPBIOS, Advanced Power Management APM и так далее. Управление питанием и ресурсами это один из ключевых компонентов современной операционной системы. Например, вам может потребоваться, чтобы операционная система следила за температурными ограничениями и возможно, предупреждала при неожиданном росте температуры. В этом разделе Руководства FreeBSD, мы предоставим исчерпывающую информацию о ACPI В конце раздела есть ссылки для дальнейшего чтения. Учтите, что ACPI есть только в FreeBSD 5.X и выше в качестве стандартного модуля ядра. В FreeBSD 4.9 ACPI к файлу настройки ядра и его пересборкой. это стандарт, написанный объединением поставщиков в целях предоставления стандартного интерфейса для аппаратных ресурсов и управления питанием отсюда и название. Это ключевой элемент Operating System-directed configuration and Power Management, т.е.: он предоставляет операционной системе OS больше контроля и более универсален. Современные системы вышли за пределы ограничений существующих Plug and Play интерфейсов таких как APM, использовавшийся в FreeBSD 4.X, до появления ACPI Advanced Power Management. Средства Advanced Power Management APM управляют энергопотреблением системы в зависимости от нагрузки. APM BIOS предоставляется поставщиком системы и специфичен для данной аппаратной платформы. Драйвер APM в OS обеспечивает доступ к APM Software Interface, который позволяет управлять уровнями потребления питания. В APM имеется четыре основных проблемы. Во-первых, управление энергопотреблением осуществляется через зависимый от поставщика BIOS, и OS ничего не знает нем. Один пример: когда пользователь устанавливает время ожидания для жесткого диска в APM BIOS, и это время истекает, BIOS останавливает жесткий диск без согласования с OS. Во-вторых, алгоритм APM встроен в BIOS, и все действия происходят вне контроля OS. Это означает, что пользователи могут решить проблемы с APM BIOS только путем перепрошивки его ROM; это очень опасная процедура, и если она завершится неудачно, система может оказаться в невосстановимом состоянии. В-третьих, реализация технологии APM зависит от поставщика, что означает дублирование усилий и если в BIOS одного из поставщиков будет найдена и исправлена ошибка, ее могли не исправить другие поставщики. Наконец, объем APM BIOS недостаточно велик для реализации сложной политики управления питанием, или такой политики, которая может хорошо адаптироваться к потребностям компьютера. Plug and Play BIOS PNPBIOS был неудобен во многих ситуациях. PNPBIOS это 16-битная технология, поэтому OS требовалось использовать 16-битную эмуляцию для взаимодействия с методами PNPBIOS. документирован в странице справочника apm 4. 11.15.3. Настройка ACPI не надо встраивать в ядро. Причина в том, что с модулями проще работать, например переключиться на другой без пересборки ядра. Преимущество в упрощении тестирования. Другая причина в том, что запуск ACPI после старта системы не очень полезен и при некоторых условиях может приводить к краху. Если вы сомневаетесь, отключите ACPI совсем. Драйвер не должен и не может быть выгружен, поскольку системная шина используется для различных взаимодействий оборудования. ACPI может быть выключен с помощью утилиты acpiconf 8. Фактически большинство взаимодействий с ACPI он скорее всего работает. не могут сосуществовать и должны использоваться раздельно. Каждый из них прервет загрузку, если обнаружит загруженный драйвер другого. может использоваться для перевода системы в спящий режим с помощью acpiconf 8, с флагом Большинству пользователей нужен только параметр сделает мягкое завершение работы, так же как и: Доступны и другие параметры. Обратитесь к странице справочника acpiconf 8 за дополнительной информацией. 11.16. Использование и отладка FreeBSD ACPI При помощи Peter Schultz, Tom Rhodes. это фундаментально новый способ обнаружения устройств, управления энергопотреблением и предоставления стандартизированного доступа к различному оборудованию, ранее управлявшемуся BIOS Был достигнут определенный прогресс в приспособлении ACPI к работе со всеми системами, но все еще встречаются ошибки в байткоде ACPI некоторых материнских плат, незавершенные участки кода в подсистемах ядра FreeBSD и ошибки в интерпретаторе Intel ACPI-CA Этот раздел предназначен для того, чтобы упростить ваше содействие разработчикам FreeBSD ACPI в определении причин наблюдаемых вами проблем, выполнении отладки и выработке решения. Спасибо за помощь и надеемся, что мы сможем помочь в решении проблем вашей системы. Замечание: Перед отправкой сообщения об ошибке убедитесь, что у вас последняя версия BIOS и, если доступна, последняя версия firmware встроенного контроллера. Те из вас, кто желает составить сообщение о проблеме прямо сейчас, могут воспользоваться адресом, отправив на него следующую информацию: Описание неправильного поведения, включая тип системы, модель и все, что приводит к появлению ошибки. Кроме того, сообщите настолько точно, насколько возможно, когда появилась ошибка, если ранее вы ее не видели. включая все сообщения, появившиеся при изучении ошибки. если его отключение помогает решить проблему. Это также хороший способ получения списка возможностей системы. непосредственно в список рассылки, поскольку он может быть очень большим. Копия ASL Большинство разработчиков читают Список рассылки, посвящённый обсуждению FreeBSD-CURRENT, но для уверенности, что проблему увидят, отправьте ее в freebsd-acpi. Будьте терпеливы, все мы заняты полный рабочий день где-то еще. Если ваше сообщение не заметили сразу, мы возможно попросим вас отправить PR включайте ту же информацию, что запрошена выше. Это поможет нам отследить проблему и решить ее. Не отправляйте PR без предварительной отправки письма в freebsd-acpi, поскольку мы используем PR в качестве напоминаний о существующих проблемах, а не как механизм сообщений об ошибках. Вероятно, о вашей проблеме кто-то уже сообщал ранее. представлен во всех современных компьютерах, соответствующих архитектурам ia32 x86, ia64 Itanium и amd64 AMD. Полный стандарт включает множество возможностей, в том числе управление производительностью CPU уровнем питания, температурой, различными системами аккумуляторов, встроенными контроллерами и опросом шины. В большинстве систем стандарт реализован не полностью. Например, настольные системы обычно реализуют только опрос шины, а портативные компьютеры кроме того могут поддерживать управление охлаждением и энергопотреблением. Они также поддерживают приостановку и последующий запуск системы различного уровня сложности. совместимые системы состоят из различных компонентов. Производители BIOS и чипсетов предоставляют различные жестко заданные таблицы, например, FADT которые определяют функции вроде карты APIC регистры настройки и простые значения параметров. Кроме того, предоставляется таблица байткода Differentiated System Description Table, DSDT определяющая древоподобное пространство имен устройств и методов. должен прочесть заданные таблицы, реализовать интерпретатор для байткода, модифицировать драйвера устройств и ядро для приема информации от подсистемы ACPI Для FreeBSD Intel предоставила интерпретатор ACPI-CA тот же что для Linux и NetBSD. Исходный код ACPI-CA Код для приспособления ACPI-CA к работе в FreeBSD, находится в Наконец, драйвера, реализующие различные ACPI все ее части должны работать правильно. Вот некоторые часто встречающиеся проблемы, в порядке частоты появления, и некоторые обходные пути или исправления. В некоторых случаях при возобновлении работы после приостановки перестает работать мышь. Известным решением проблемы является добавление строки Если это не помогло, стоит сообщить о проблеме, как описано выше. и одно состояние приостановки на диск это мягкое выключение и это нормальное состояние системы, когда она подключена к сети, но не включена. может быть реализован двумя различными путями. поддерживаемая приостановка на диск. реализуется полностью операционной системой. относящихся к приостановке suspend. Вот результат для Thinkpad: Это означает, что мы можем использовать При тестировании приостановки/возобновления работы, начните с если этот режим поддерживается. Это состояние скорее всего поддерживается, поскольку не требует слишком серьезной поддержки со стороны драйвера. Никто не реализовал Следующий режим для тестирования это Это наиболее глубокое STR состояние, оно требует существенной поддержки со стороны драйвера, чтобы правильно реинициализировать оборудование. Если у вас возникли проблемы при выходе из этого состояния, отправьте письмо в рассылку freebsd-acpi, но не ждите, что проблема будет обязательно решена, поскольку существует множество драйверов/оборудования, нуждающихся в дальнейшем тестировании и разработке. Для изоляции проблемы удалите из ядра столько драйверов, сколько возможно. Если это работает, вы можете выяснить, какой драйвер вызывает проблему путем загрузки драйверов до тех пор, пока опять не произойдет сбой. Обычно бинарные драйвера, такие как драйвера дисплея X11 и USB вызывают большинство проблем, а драйвера Ethernet интерфейсов как правило работают отлично. Если вы можете нормально загрузить/выгрузить драйвера, автоматизируйте этот процесс, поместив соответствующие команды в Это закомментированные примеры выгрузки и загрузки драйверов. Попробуйте установить параметр если ваш дисплей не включается после возобновления работы. Попробуйте установить большие или меньшие значения для чтобы проверить, поможет ли это. Другой способ, который можно попробовать, это запуск последнего дистрибутива Linux с поддержкой ACPI и тестирование поддержки остановки/возобновления работы на том же оборудовании. Если она работает на Linux, проблема скорее всего в драйверах FreeBSD и поиск драйвера, вызывающего проблему, поможет разрешить ситуацию. Имейте ввиду, что разработчики ACPI обычно не поддерживают другие драйверы звук, ATA и т.п., так что все результаты работы по поиску проблемы возможно необходимо отправить в список рассылки freebsd-current и человеку, поддерживающему драйвер. Если вы решитесь заняться отладкой, поместите соответствующий код printf 3 в вызывающий проблему драйвер для обнаружения места, где прерывается функция восстановления. Наконец, попробуйте отключить ACPI Если приостановка/возобновление работает с APM вам возможно лучше подойдет APM особенно на старом оборудовании до 2000. Включение корректной поддержки ACPI Большинство систем останавливаются в результате потери прерываний или шторма прерываний. В чипсетах существует много проблем, связанных с тем, как BIOS настраивает прерывания перед загрузкой, правильностью таблицы APIC и маршрутизации System Control Interrupt SCI Если счетчик увеличивается более, чем несколько раз в секунду, это шторм прерываний. Если система останавливается, попробуйте войти в DDB Наиболее надежный способ избавиться от проблемы с прерываниями, это отключение поддержки APIC случается довольно редко и имеет наибольший приоритет исправления. Первый шаг это изоляция действий, приводящих к панике если это возможно и получение отладки. Следуйте инструкции по включению и настройке последовательной консоли смотрите Разд. 20.6.5.3 или настройке раздела dump 8. Вы можете получить отладочную информацию DDB Если вы записываете отладку вручную, убедитесь, что переписали как минимум пять 5 строк снизу и пять 5 строк сверху. Затем попробуйте изолировать проблему, загрузившись с выключенным ACPI Если это работает, вы можете изолировать подсистему ACPI используя различные параметры Обратитесь к странице справочника acpi 4 за примерами. Во-первых, попробуйте установить в 5 параметр Это предотвращает отключение различных событий в ACPI во время завершения работы. В некоторых системах этот параметр необходимо установить в по умолчанию по тем же причинам. Обычно это решает проблему, если система неожиданно включается после приостановки или отключения питания. работа с внешним оборудованием, проблемы с обнаружением устройств, и т.д., отправьте описание проблемы в список рассылки; однако, некоторые из этих проблем могут относиться к незавершенным частям подсистемы ACPI поэтому может потребоваться время на их реализацию. Будьте терпеливы, и подготовьтесь к тестированию исправлений, которые мы можем вам выслать. Наиболее часто встречается проблема, связанная с предоставлением поставщиками BIOS некорректного или полностью ошибочного! байткода. Это обычно проявляется появлением консольных сообщений ядра, подобных этому: ACPI-1287: Error: Method execution failed STA Node 0xc3f6d160, AENOTFOUND до последней ревизии. Большинство консольных сообщений безвредны, но если существуют другие проблемы, такие как не работающий статус батареи, возможно существуют проблемы в AML Байткод, известный как AML компилируется из исходного текста на языке ASL находится в таблице, известной как DSDT используйте acpidump 8. Вы можете использовать оба параметра Простейшая первая проверка, которую вы можете провести, это перекомпиляция ASL для поиска ошибок. Предупреждения обычно могут быть проигнорированы, но ошибки обычно не позволяют ACPI работать правильно. Для перекомпиляции ASL выполните следующую команду: 11.16.5. Исправление ASL В дальней перспективе, наша задача состоит в том, чтобы обеспечить поддержку ACPI практически для каждой системы без вмешательства пользователя. Однако, на данный момент мы все еще разрабатываем обходные пути для ошибок, которые часто делают поставщики BIOS Интерпретатор Microsoft не занимается проверкой четкости соблюдения стандартов, поэтому многие поставщики BIOS только под Windows, никогда не исправляют ASL Мы надеемся продолжать обнаружение и документацию нестандартных поведений, позволяемых интерпретатором Microsoft, и воспроизводить их, чтобы FreeBSD могла работать без необходимости исправления ASL пользователями. В качестве обходного пути для обнаружения неправильного поведения, вы можете исправить ASL вручную. Если исправления будут работать, пожалуйста отправьте diff 1 между старым и новым ASL чтобы мы могли реализовать обходной путь для неправильного поведения ACPI-CA чтобы исправление вручную больше не требовалось. Вот список наиболее часто встречающихся проблем, их причин и способы исправления: предполагают, что мир состоит из различных версий Windows. Вы можете настроить FreeBSD, чтобы она сообщала любое другое имя OS и посмотреть, исправит ли это имеющуюся проблему. Простой способ указания другого имени системы это установка переменной или в другое подобное значение, имеющееся в ASL Некоторые методы не возвращают значение явно, как того требует стандарт. Хотя ACPI-CA не обрабатывает эту ситуацию, в FreeBSD существует обходной путь, позволяющей ей явно возвращать значение. Вы можете также добавить явные операторы Return возврат там, где требуется, если знаете, что значение должно быть возвращено. Для принудительного компилирования ASL 11.16.5.3. Перезапись AML даже при наличии ошибок компиляции. Помните, что некоторые ошибки например, отсутствующие операторы Return, автоматически обходятся интерпретатором. по умолчанию. Вы можете загрузить его вместо ошибочной копии BIOS Убедитесь, что скопировали 11.16.6. Получение отладочной информации ACPI очень гибкие. Они позволяют вам указывать набор подсистем, а также уровень отладки. Подсистемы, которые вы хотите отлаживать, указываются как слои, и подразделяются на компоненты ACPI-CA ACPIALLDRIVERS. Уровень отладки варьируется от ACPILVERROR только сообщать об ошибках до ACPILVVERBOSE все сообщения. Уровень отладки представляет собой битовую маску, поэтому возможна одновременная установка нескольких параметров, разделенных пробелами. На практике, при использовании для получения отладочной информации последовательной консоли, слишком большое количество информации может переполнить буфер консоли. Полный список отдельных слоев и уровней можно найти на странице справочника acpi 4. Вывод отладочной информации по умолчанию не включен. Для его включения добавьте параметр к файлу настройки ядра, если ACPI встроен в ядро. Вы можете добавить параметр для глобального включения этого параметра. Если вы используете модуль его можно пересобрать индивидуально: Этот пример включает отладочные сообщения для всех компонентов ACPI-CA и т.д. Будут выводиться только сообщения об ошибках, наименьший уровень отладки. Если требуемая информация получается в результате определенного события скажем, приостановка и восстановление, вы можете не изменять после загрузки и подготовки системы к определенному событию. Имена переменных те же, что и имена параметров настройки в Использует в качестве примера Compaq, но обычно полезен. Перевод на русский язык: Андрей Захватов. Процесс включения компьютера и загрузки операционной системы называется процессом первоначальной загрузки, или просто загрузкой. Процесс загрузки FreeBSD предоставляет большие возможности по гибкой настройке того, что происходит при запуске системы, позволяя вам выбирать из различных операционных систем, установленных на одном и том же компьютере, или даже из различных версий той же самой операционной системы или установленного ядра. Эта глава подробно описывает параметры, которые вы можете изменить для настройки процесса загрузки FreeBSD. Под этим подразумевается все, что происходит до начала работы ядра FreeBSD, обнаружения устройств и запуска init 8. Если вы не совсем уверены, то это происходит, когда выводимый текст меняет цвет с ярко-белого на серый. Из каких частей состоит система начальной загрузки FreeBSD, и как эти части взаимодействуют. Параметры, которые вы можете передать компонентам начальной загрузки FreeBSD для управления этим процессом. Только для x86: Эта глава описывает процесс загрузки FreeBSD только для систем на основе архитектуры Intel x86. Включение компьютера и запуск операционной системы приводят к интересной дилемме. По определению до запуска операционной системы компьютер не умеет ничего. В том числе и не знает, как запускать программы с диска. Так что компьютер не может запустить программу с диска без операционной системы, но программы операционной системы находятся на диске, но как запустить операционную систему? Приключения барона Мюнхаузена. Герой провалился в болото, и вытащил сам себя, ухватив за волосы и потянув. В эпоху начала компьютеризации термин начальная загрузка применялся к механизму, используемому для загрузки операционной системы, и затем был сокращен до просто загрузки. На оборудовании архитектуры x86 за загрузку операционной системы отвечает BIOS Basic Input/Output System. Для этого BIOS ищет на жестком диске MBR Master Boot Record, которая должна располагаться в определенном месте на диске. BIOS может загрузить и запустить MBR, и предполагается, что MBR может взять на себя остальную работу, связанную с загрузкой операционной системой. Если на вашем диске установлена только одна операционная система, то стандартной MBR будет достаточно. Такая MBR выполняет поиск на диске первого загрузочного слайса, после чего запускает с этого слайса код загрузки оставшейся части операционной системы. Если на ваших дисках установлено несколько операционных систем, то вы можете установить другую MBR, ту, что может выдать список различных операционных систем и позволит вам выбрать одну из них для загрузки. FreeBSD поставляется с одной из такой MBR, которую можно установить; другие производители операционных систем также предоставляют свои MBR. Оставшаяся часть системы начальной загрузки FreeBSD разделяется на три этапа. Первый этап запускается из MBR, и он знает достаточно для перевода компьютера в особое состояние и загрузки второго этапа. Второй этап может делать несколько больше до запуска третьего этапа. Третий этап заканчивает работу по загрузке операционной системы. Работа разделена на эти три этапа, потому что стандарты ПК ограничивают размеры программ, которые могут быть запущены на первом и втором этапах. Последовательное выполнение работ позволяет FreeBSD получить более гибкий загрузчик. Затем стартует ядро, которое начинает опознавать устройства и выполняет их инициализацию. После завершения процесса своей загрузки, ядро передает управление пользовательскому процессу с именем init 8, который выполняет проверку дисков на возможность использования. Затем init 8 запускает пользовательский процесс настройки ресурсов, который монтирует файловые системы, выполняет настройку сетевых адаптеров для работы в сети и вообще осуществляет запуск всех процессов, обычно выполняемых в системе FreeBSD при загрузке. Это копия MBR, так как настоящая MBR должна располагаться в специальном месте диска, вне области FreeBSD. очень прост, так как программа в MBR может иметь размер, не превышающий 512 байт. Если вы установили MBR FreeBSD и несколько операционных систем на ваш жесткий диск, то во время загрузки вы увидите нечто похожее на следующее: Пример 12-1. Образец экрана F1 DOS F2 FreeBSD F3 Linux F4?? F5 Drive 1 Default: F2 Известно, что другие операционные системы, в частности, Windows 95, записывают поверх существующей MBR свою собственную. Если так случилось в вашем случае, или же вы хотите заменить существующую MBR на MBR от FreeBSD, то воспользуйтесь следующей командой: является устройством, с которого вы загружаетесь, таким, как в случае первого диска IDE, в случае первого диска IDE на втором контроллере IDE, для первого диска SCSI и так далее. Однако если вы используете Linux и предпочитаете, чтобы процесс загрузки управлялся через LILO, вы можете отредактировать файл в процессе установки FreeBSD. Если вы установили менеджер загрузки FreeBSD, то вы можете снова загрузить Linux и изменить конфигурационный файл для LILO, добавив следующий параметр: other/dev/hdXY table/dev/hdb loader/boot/chain.b labelFreeBSD LILO. В нашем примере мы используем для обозначения номера диска и раздела. Если вы используете диск SCSI то вам может потребоваться заменить где снова используется обозначение может быть опущена, если обе операционные системы располагаются на одном и том же диске. Вы можете теперь запустить для того, чтобы ваши изменения были восприняты системой, что должно быть подтверждено сообщениями на экране. 12.3.2. Этап первый, Концептуально первый и второй этапы загрузки являются частями одной и той же программы, в той же самой области диска. Из-за ограничений на объем дискового пространства они были разделены на две, но вы всегда должны устанавливать их вместе. Они располагаются в загрузочном секторе загрузочного слайса, то есть там, где boot0 или любая другая программа из MBR ожидает найти программу, которую следует запустить для продолжение процесса загрузки. Файлы в каталоге являются копиями реальных файлов, которые хранятся вне файловой системы FreeBSD. очень прост, так как он тоже может иметь размер, не превышающий 512 байт, и знает достаточно о метке диска FreeBSD, хранящей информацию о слайсе, для того, чтобы найти и запустить устроен несколько более сложно, и умеет работать с файловой системой FreeBSD в объёме, достаточном для нахождения в ней файлов, и может предоставлять простой интерфейс для выбора и передачи управления ядру или загрузчику. Так как загрузчик устроен гораздо более сложно, и дает удобный и простой способ настройки процесса загрузки, обычно запускает его, однако раньше его задачей был запуск непосредственно самого ядра. Пример 12-2. Образец экрана FreeBSD/i386 BOOT Default: 0:ad0, a/kernel boot: являются диском и слайсом, с которых вы загружаетесь, такие, как в случае первого слайса на первом диске IDE. Режим Dangerously Dedicated: Если вы используете только имя диска, к примеру, в команде disklabel 8 вы создадите диск в режиме эксклюзивного использования, без слайсов. Это, скорее всего, вовсе не то, что вы хотите сделать, так что дважды проверьте параметры команды disklabel 8, прежде, чем нажать Return. 12.3.3. Третий этап, Передача управления загрузчику является последним, третьим этапом в процессе начальной загрузки, а сам загрузчик находится в файловой системе, обычно как Загрузчик являет собой удобный в использовании инструмент для настройки при помощи простого набора команд, управляемого более мощным интерпретатором с более сложным набором команд. Во время инициализации загрузчик пытается произвести поиск консоли, дисков и определить, с какого диска он был запущен. Соответствующим образом он задаёт значения переменных и запускает интерпретатор, которому могут передаваться пользовательские команды как из скрипта, так и в интерактивном режиме. который по умолчанию использует файл устанавливающий подходящие значения по умолчанию для переменных и читает файл для изменения в этих переменных. Затем с этими переменными работает загружающий выбранные модули и ядро. И наконец, по умолчанию загрузчик выдерживает 10-секундную паузу, ожидая нажатия клавиши, и загружает ядро, если этого не произошло. Если ожидание было прервано, пользователю выдается приглашение, которое воспринимает простой набор команд, с помощью которых пользователь может изменить значения переменных, выгрузить все модули, загрузить модули и окончательно продолжить процесс загрузки или перезагрузить машину. Далее следуют наиболее часто используемые команды загрузчика. Полное описание всех имеющихся команд можно найти на странице справки о команде loader 8. Продолжает загрузку ядра, если не будет прерван в течение указанного в секундах промежутка времени. Он выводит счетчик, и по умолчанию выдерживается интервал в 10 секунд. Продолжить процесс загрузки указанного ядра, если оно было указано, и с указанными параметрами, если они были указаны. Повторно провести тот же самый процесс автоматической настройки модулей на основе переменных, что был произведен при загрузке. Это имеет смысл, если до этого вы выполнили команду изменили некоторые переменные, например, наиболее часто меняемую Если в качестве темы указано слово то выводится список имеющихся тем. Выполнить файл с указанным именем. Файл считывается и его содержимое интерпретируется строчка за строчкой. Ошибка приводит к немедленному прекращению выполнения команды include. Загружает ядро, модуль ядра или файл указанного типа с указанным именем. Все аргументы после имени файла передаются в файл. Выводит список файлов по указанному маршруту или в корневом каталоге, если маршрут не был указан. Если указан параметр будут выводиться и размеры файлов. Выводится список всех устройств, с которых могут быть загружены модули. Если указан параметр выводится дополнительная информация. Выводит список загруженных модулей. Если указан параметр то выводится дополнительная информация. Выполнить немедленную перезагрузку машины. Задает значения переменных окружения загрузчика. Удаление из памяти всех загруженных модулей. Чтобы просто загрузить ваше ядро обычным образом, но в однопользовательском режиме: Для выгрузки обычных ядра и модулей, а потом просто загрузить ваше старое или другое ядро: для обозначения стандартного ядра, поставляемого на установочном диске, или для обращения к ранее установленному ядру после того, как, например, вы обновили или отконфигурировали новое ядро. Для загрузки скрипта конфигурации ядра автоматизированный скрипт, который выполняет то, что вы обычно делаете в конфигураторе ядра во время загрузки: Как только ядро окажется загруженным при помощи загрузчика обычный способ или boot2 минуя загрузчик, оно проверяет флаги загрузки, если они есть, и действует соответствующим образом. во время инициализации ядра запрашивать устройство для его монтирования в качестве корневой файловой системы. загрузка с компакт-диска. Замечание: Есть и другие флаги загрузки, обратитесь к странице справочника по boot 8 для выяснения подробной информации по ним. Текст предоставил Tom Rhodes. Замечание: Эта функция присутствует только во FreeBSD 5.0 и последующих версиях, но не в более ранних. Во время начального запуска системы загрузчик loader 8 производит чтение файла 5. В этом файле хранится необходимая для загрузки ядра информация, задаваемая в виде переменных, которую иногда называют хинтами для устройств device hints. Эти хинты устройств используются драйверами устройств для их конфигурации. Хинты для устройств могут быть также заданы в приглашении начального загрузчика Стадии 3. Переменные могут быть добавлены при помощи команды В этот момент могут быть также переопределены переменные, заданные в файле Хинты для устройств, введённые в начальном загрузчике, не сохраняются, и при следующей перезагрузке будут утеряны. После загрузки системы для выдачи значений всех переменных можно воспользоваться командой kenv 1. в каждой строке определяется по одной переменной, в качестве метки начала комментария используется стандартный символ. Строки строятся следующим образом: определяет имя драйвера устройства, соответствует порядковому номеру модуля устройства, а является ключевым словом хинта. В качестве ключевых слов могут применяться следующие опции: задаёт шину, к которой подключено устройство. задаёт используемый номер запроса на прерывание. задаёт физический адрес памяти, занимаемый устройством. устанавливает различные битовые флаги для устройства. если установлено в значение 1, то устройство не используется. Драйверы устройств могут поддерживать и даже требовать другие хинты, здесь не перечисленные, поэтому рекомендуется просматривать справочные страницы по этим драйверам. Для получения дополнительной информации обратитесь к страницам справки по 5, kenv 1, 5 и loader 8. После того, как ядро завершит загрузку, оно передает управление пользовательскому процессу init 8, который расположен в файле или в файле, маршрут к которому указан в переменной Процесс автоматической перезагрузки проверяет целостность имеющихся файловых систем. Если это не так, и утилита fsck 8 не может исправить положение, то init 8 переводит систему в однопользовательский режим для того, чтобы системный администратор сам разобрался с возникающими проблемами. то система выведет запрос на ввод пароля пользователя перед переходом в однопользовательский режим. Пример 12-3. Незащищённая консоль в name getty type status comments Если консоль помечена как insecure, то init будет запрашивать пароль пользователя root при переходе в однопользовательский режим. console none unknown off insecure означает, что вы считаете физический доступ к консоли незащищённым, и хотите, чтобы только тот, кто знает пароль пользователя мог воспользоваться однопользовательским режимом, но это не значит, что вы хотите работать с консолью небезопасным способом. Таким образом, если вы хотите добиться защищённости, указывайте Если init 8 определит, что ваши файловые системы находятся в полном порядке, или после того, как пользователь выйдет из однопользовательского режима, система перейдет в многопользовательский режим, работа в котором начинается с настройки ресурсов системы. Система настройки ресурсов считывает настройки, применяемые по умолчанию, из файла а настройки, специфичные для конкретной системы, из после чего осуществляется монтирование файловых систем, перечисленных в файле запуск сетевых служб, различных системных даемонов и, наконец, выполнение скриптов запуска дополнительно установленных пакетов. Страница справочника по rc 8 является хорошим источником информации о системе настройки ресурсов, так же, как и самостоятельное изучение скриптов. после чего будет посылать всем процессам сигнал тем процессам, которые ещё не завершили свою работу. Для выключения машины с FreeBSD на аппаратных платформах и системах, которые поддерживают управление электропитанием, просто воспользуйтесь командой для немедленного отключения электропитания. Чтобы просто перезагрузить систему FreeBSD, воспользуйтесь командой Для запуска команды shutdown 8 вам необходимо быть пользователем Кроме того, можно также воспользоваться командами halt 8 и reboot 8, пожалуйста, обратитесь к соответствующим страницам справки и справочной странице по команде shutdown 8 для получения дополнительной информации. Замечание: Для управления электропитанием требуется наличие поддержки acpi 4 в ядре или в виде загруженного модуля при использовании FreeBSD 5.X, а для FreeBSD 4.X необходима поддержка apm 4. Предоставил Neil Blakey-Milner. Перевод на русский язык: Денис Пеплин. FreeBSD позволяет одновременную работу множества пользователей на одном компьютере. Разумеется, только один пользователь может сидеть за клавиатурой и перед экраном в один момент времени 6, но любое количество пользователей может выполнять работу через сеть. Для использования системы у каждого пользователя должна быть учетная запись. Различия между разнообразными учетными записями в системе FreeBSD. Как добавлять учетные записи пользователей. Как удалять учетные записи пользователей. Как изменять данные учетных записей пользователей, такие как полное имя пользователя, или предпочитаемую оболочку. Как устанавливать ограничения на использование ресурсов, например на использование памяти и времени CPU для учетных записей или групп учетных записей. Как использовать группы для упрощения управлением учетными записями. Весь доступ к системе осуществляется через учетные записи, и все процессы запускаются пользователями, так что управление пользователями и учетными записями в системах FreeBSD имеет всеобъемлющее значение. С каждой учетной записью в системе FreeBSD связана определенная идентификационная информация. Имя пользователя в том виде, в каком оно вводится в приглашение Имена пользователей должны быть уникальны в пределах одного компьютера; не может быть двух пользователей с одинаковым именем пользователя. Существует множество правил для создания правильных имен пользователей, документированных в passwd 5 ; вы как правило будете использовать имена пользователей, состоящие из восьми или меньшего количества символов, все символы в нижнем регистре. С каждой учетной записью связан пароль. Пароль может быть пустым, в этом случае для доступа к системе не нужен пароль. Обычно это очень плохая идея; у каждой учетной записи должен быть пароль. ID пользователя User ID, UID The UID это номер, традиционно от 0 до 65535 7, используемый для однозначной идентификации пользователя в системе. Сама система FreeBSD для идентификации пользователей использует UID - - любая команда FreeBSD, позволяющая вам указывать имя пользователя, первым делом преобразует его к UID. Это означает, что вы можете создать несколько учетных записей с различными именами пользователей, но с одним UID. FreeBSD будет воспринимать эти учетные записи как одного пользователя. Маловероятно, что вам когда-либо это понадобится. GID это номер, традиционно от 0 до 65535 7, используемый для однозначной идентификации главной группы, к которой принадлежит пользователь. Группы это механизм для контроля доступа к ресурсам на основе GID пользователя вместо его UID. Это может значительно уменьшить размер некоторых файлов настройки. Кроме того, пользователь может быть включен более чем в одну группу. Классы логинов это расширение к механизму групп, позволяющее системе более гибко управлять различными пользователями. По умолчанию FreeBSD не принуждает пользователей периодически менять пароли. Вы можете включить эту функцию для определенных пользователей, заставив некоторых или всех пользователей менять пароли по прошествии определенного времени. По умолчанию в FreeBSD время действия учетных записей не ограничено. Если вы создаете учетные записи, продолжительность жизни которых ограничена, например учетные записи для студентов в школе, вы можете определить время истечения действия учетной записи. После наступления этого времени учетная запись не может использоваться для входа в систему, хотя каталоги и файлы этой учетной записи останутся нетронутыми. Имя пользователя является уникальным идентификатором учетной записи в FreeBSD, но недостаточно для сопоставления с реальным именем пользователя. Эта информация может быть добавлена в учетную запись. Домашний каталог это полный путь к каталогу в системе, в котором пользователь начнет работать после входа в систему. По общепринятому соглашению все домашние каталоги пользователей помещаются в Пользователи хранят личные файлы в домашнем каталоге и в любых подкаталогах, создаваемых внутри домашнего каталога. Оболочка необходима пользователям как средство взаимодействия с системой по умолчанию. Существует множество различных видов оболочек, опытные пользователи работают с собственными настройками, которые могут быть отражены в установках их учетных записей. используется для управления системой без ограничения привилегий. Системные пользователи запускают сервисы. Наконец, учетные записи пользователей необходимы обычным людям для входа в систему, чтения почты, и так далее. Учетная запись суперпользователя, обычно называемая существует в системе изначально для целей системного администрирования, и не должна использоваться для повседневных задач, таких как получение и отправка почты, общее исследование системы или программирование. Причина в том, что суперпользователь, в отличие от обычных пользователей, может работать без ограничений и неправильное использование учетной записи суперпользователя может привести к полному уничтожению системы. Учетные записи пользователей не способны уничтожит систему вследствие ошибки, поэтому обычно лучше использовать учетные записи обычных пользователей везде, где это возможно, пока вам не потребуются дополнительные привилегии для какой-то определенной задачи. Вы всегда должны дважды и трижды проверять команды, выполняемые под учетной записью суперпользователя, поскольку даже один лишний пробел или отсутствующий символ может привести к безвозвратной потере данных. Таким образом, первое, что вам необходимо сделать после прочтения этой главы, это создать непривилегированную учетную запись пользователя для повседневного использования если вы еще этого не сделали. Это необходимо сделать независимо от того, работаете ли вы на многопользовательском или однопользовательском компьютере. Позже в этой главе мы обсудим как создать дополнительные учетные записи, и как менять уровень привилегий между нормальным пользователем и суперпользователем. Системные пользователи предназначены для запуска сервисов, таких как DNS, почта, веб серверы и так далее. Это необходимо по соображениям безопасности; если все сервисы работают от суперпользователя, они могут действовать без ограничений. для Domain Name Service, DNS, это классический непривилегированный системный пользователь. Тем не менее, необходимо помнить, что чем больше сервисов используют тем больше файлов и процессов ассоциировано с этим пользователем, и следовательно тем больше прав появляется у этого пользователя. Учетные записи пользователей в основном означают доступ в систему для обычных людей, и эти учетные записи отделяют пользователя и его рабочую среду, предотвращая повреждение пользователем системы или данных других пользователей, и позволяя пользователям настраивать свою рабочую среду без влияния на других пользователей. Каждая персона, получающая доступ к вашей системе, должна получить уникальную учетную запись пользователя. Это позволит вам выяснить кто что делает, предотвращая сбивание одним пользователем настроек других пользователей, чтение чужой почты и так далее. Каждый пользователь может настраивать свою собственную рабочую среду для приспособления системы под свои нужды с помощью альтернативных оболочек, редакторов, привязки клавиш и настроек языка. В среде UNIX существуют различные команды для работы с учетными записями пользователей. Наиболее часто используемые команды приведены в таблице, ниже находятся более детальные примеры их использования. Рекомендуемое приложение командной строки для добавления новых пользователей. Рекомендуемое приложение командной строки для удаления пользователей. Гибкий инструмент для изменения информации в базе данных пользователей. Простой инструмент командной строки для изменения паролей пользователей. Мощный и гибкий инструмент для изменения любой информации, связанной с учетными записями пользователей. adduser 8 это простая программа для добавления новых пользователей. Она создает записи в системных файлах Она также создает домашний каталог для нового пользователя, копируя файлы настройки по умолчанию dotfiles, файлы имя который начинается с символа и опционально может отправлять новому пользователю приветственное сообщение. В FreeBSD 5.0, скрипт adduser 8 был переписан с языка Perl на язык shell, работающий в качестве оболочки к pw 8, так что использование этого скрипта в FreeBSD 4.X немного отличается использования в FreeBSD 8 Далее, мы настроим параметры adduser 8 по умолчанию и создадим нашу первую учетную запись пользователя, поскольку повседневное использование и добавление пользователя в FreeBSD 4.X Use option - silent if you dont want to see all warnings and questions. Check/etc/shells Check Check/etc/group Enter your default shell: csh date no sh tcsh zsh sh: Write your changes to? y/n n: Ok, lets go. Dont worry about mistakes. I will give you the chance later to correct any input. Enter username a-z0-9-: Enter shell csh date no sh tcsh zsh zsh: Enter home directory full path/home/jru: Uid 1001: Enter login class: default : Login group jru jru: Login group is jru. Invite jru into other groups: guest no no: Enter password : Enter password again : Name: jru Password: Fullname: J. Random User Uid: 1001 Gid: 1001 jru Class: Groups: jru wheel HOME:/home/jru Shell:/usr/local/bin/zsh OK? y/n y: Added user jru Copy files from/usr/share/skel to/home/jru Add another user? y/n y: В результате мы изменили оболочку по умолчанию на zsh дополнительная оболочка, находящаяся в коллекции портов, и отключили отправку добавляемым пользователям письма с приветствием. Затем мы сохранили настройки, создали учетную запись для Замечание: Пароль, который вы вводите, не отображается, звездочки при вводе пароля также не отображаются. Убедитесь, что вы не ошиблись при вводе пароля. Замечание: Теперь просто используйте adduser 8 без аргументов, и вам не потребуется изменять настройки по умолчанию. Если программа будет запрашивать изменение настроек по умолчанию, попробуйте параметр Пример 13-2. Добавление пользователя в FreeBSD 5.X Uid Leave empty for default: Login group jru: Login group is jru. Invite jru into other groups? : Home directory/home/jru: Use password-based authentication? yes: Use an empty password? yes/no no: Use a random password? yes/no no: Enter password: Enter password again: Lock out the account after creation? no: Username: jru Password: Full Name: J. Random User Uid: 1001 Class: Groups: jru wheel Home:/home/jru Shell:/usr/local/bin/zsh Locked: no OK? yes/no: adduser: INFO: Successfully added jru to the user database. Add another user? yes/no: Для полного удаления пользователя из системы вы можете использовать rmuser 8. Эта программа выполняет следующие действия: Удаление записи пользователя из crontab 1 если она присутствует. Удаляет задачи at 1, принадлежащие пользователю. Уничтожает все процессы, принадлежащие пользователю. Удаляет пользователя из локального файла паролей. Удаляет домашний каталог пользователя если он принадлежит пользователю. Удаляет все файлы, принадлежащие пользователю, из каталогов с временными файлами, например Наконец, удаляет имя пользователя из всех групп, которым оно принадлежит, в Замечание: Если после этого удаления группа остается пустой и имя группы совпадает с именем пользователя, она удаляется; Это необходимо для удаления пользовательских уникальных групп, создаваемых adduser 8. rmuser 8 не может использоваться для удаления учетной записи суперпользователя, поскольку это почти всегда означает разрушение системы. По умолчанию используется интерактивный режим, программа пытается убедиться, что вы уверены в своих действиях. Пример 13-3. Интерактивное удаление учетной записи с помощью Matching password entry: jru::1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh Is this the entry you wish to remove? Remove users home directory/home/jru? Updating password file, updating databases, done. Updating group file: trusted removing group jru - - personal group is empty done. Removing users incoming mail file/var/mail/jru: done. Removing files belonging to jru from/tmp: done. Removing files belonging to jru from/var/tmp: done. Removing files belonging to jru from : done. chpass 1 изменяет информацию в базе данных пользователей: пароли, оболочки, персональную информацию. Только системные администраторы с правами суперпользователя могут изменять информацию и пароли других пользователей с помощью chpass 1. При запуске без параметров кроме опционального имени пользователя, chpass 1 вызывает редактор, содержащий информацию о пользователе. Когда пользователь выходит из редактора, база данных пользователей обновляется этой информацией. Замечание: В FreeBSD 5.X, после выхода из редактора будет запрошен пароль если вы не суперпользователь. Пример 13-4. Интерактивная работа с Changing user database information for jru. Login: jru Password: Uid : 1001 Gid or name: 1001 Change month day year: Expire month day year: Class: Home directory:/home/jru Shell:/usr/local/bin/zsh Full Name: J. Random User Office Location: Office Phone: Home Phone: Other information: Обычные пользователи могут изменять лишь небольшую часть этой информации, и только для своей учетной записи. Пример 13-5. Интерактивная работа с Changing user database information for jru. Shell:/usr/local/bin/zsh Full Name: J. Random User Office Location: Office Phone: Home Phone: Other information: перед командой не обязательно. Если это непонятно, не беспокойтесь, NIS будет рассмотрен в Гл. 23. passwd 1 это обычный способ изменения собственного пароля пользователя, или пароля другого пользователя суперпользователем. Замечание: Для предотвращения случайного или неавторизованного изменения, перед установкой нового пароля необходимо ввести старый. Пример 13-6. Изменение пароля Changing local password for jru. Old password: New password: Retype new password: passwd: updating the passwd: done Пример 13-7. Изменение пароля другого пользователя суперпользователем Changing local password for jru. New password: Retype new password: passwd: updating the passwd: done pw 8 это утилита командной строки для создания, удаления, модифицирования и отображения пользователей и групп. Она функционирует как внешний интерфейс к системным файлам пользователей и групп. У pw 8 очень мощный набор параметров командной строки, что делает это программу подходящей для использования в shell скриптах, но новым пользователям она может показаться более сложной, чем другие представленные здесь команды. Если у вас есть пользователи, может появиться мысль о возможности ограничения нагрузки на систему. FreeBSD предоставляет администратору несколько способов ограничения объема занимаемых пользователями системных ресурсов. Существует два вида ограничений: дисковые квоты и другие ограничения ресурсов. Дисковые квоты ограничивают объем пространства, занимаемого пользователями, это способ быстрой проверки объема без вычисления его каждый раз. Квоты обсуждаются в Разд. 16.14. Другие ограничения ресурсов включают способы ограничения использования CPU, памяти и других ресурсов, которые могут потребляться пользователем. Ограничения накладываются с помощью классов учетных записей и обсуждаются в этом разделе. Описание полной семантики выходит за пределы обсуждаемого здесь материала, она детально описана в странице справочника 5. Достаточно сказать, что каждому пользователю присвоен класс по умолчанию, и каждому классу присвоен набор характеристик. Характеристика определяется в виде пары это определенный идентификатор, а это произвольная строка, обрабатываемая в зависимости от имени. Настройка классов и характеристик довольно проста и также описана в 5. непосредственно, она обращается к файлу базы данных выполните следующую команду: Ограничения на ресурсы отличаются от обычных характеристик: во-первых, для каждого ограничения существует мягкое текущее и жесткое ограничение. Мягкое ограничение может настраиваться пользователем или приложением, но не может превышать жесткое ограничение. Последнее может быть уменьшено пользователем, но никогда не увеличено. Во-вторых, большинство ограничений ресурсов применяются к процессам определенного пользователя, а не к пользователю вообще. Обратите внимание, что эти различия реализуются специфической обработкой ограничений, а не реализацией структуры характеристик учетных записей т.е. это не настоящий специальный случай характеристик. Ниже приведен список наиболее часто используемых ограничений на ресурсы остальные, вместе с другими характеристиками можно найти в 5. Ограничение на размер файла core, генерируемого программой, по очевидным причинам подчиняющееся другим ограничениям на используемое дисковое пространство например, или дисковые квоты. Тем не менее, оно часто используется как менее строгий метод контролирования потребления дискового пространства: поскольку пользователь не создает файлы core самостоятельно, и зачастую не удаляет их, установка этого параметра может предохранить его от выхода за пределы дисковых квот, если большая программа например, emacs создаст core файл. Это максимальное количество времени CPU, потребляемого пользователем. Превысившие это время процессы будут уничтожены ядром. времени CPU, а не процентов использования CPU, которые отображаются в некоторых полях top 1 и ps 1. Ограничения на них на время написания этого материала невозможны и такие ограничения практически бесполезны: компилятор - - вполне законное приложение - - иногда может легко использовать почти 100% CPU. Это максимальный размер файла, который может обрабатываться пользователем. В отличие от дисковых квот, это ограничение применяется к отдельным файлам, а не ко всему набору принадлежащих пользователю файлов. Это максимальное число процессов, которые могут быть запущены пользователем. В это число включаются и консольные и фоновые процессы. По очевидным причинам, они не могут быть больше, чем системное ограничение, указываемое через переменную sysctl 8 Имейте ввиду, что установка слишком жестких ограничений может стать помехой работе пользователя: зачастую полезно входить в систему с нескольких консолей или использовать каналы. Некоторые задачи, такие как компиляция большой программы, также порождают множество процессов например, make 1, cc 1 и другие препроцессоры. Это максимальный объем памяти, блокировка которого может быть запрошена процессом см. например mlock 2. Некоторые критически важные для системы программы, такие как amd 8, блокируют память так, что при выгрузке они не создают системе дополнительных проблем. Это максимальный объем памяти, которая может быть занята процессами. Он включает основную память и использование подкачки. Это ограничение не снимает все вопросы, связанные с использованием памяти, но для начала это подходящее ограничение. Это максимальное количество файлов, которые могут быть открыты процессами. В FreeBSD, файлы также используются для представления сокетов и каналов IPC; не устанавливайте слишком маленькое значение. Ограничение этого параметра, устанавливаемое для всей системы, определяется переменной sysctl 8 Это ограничение потребляемого пользователем объема сетевой памяти, т.е. mbufs. Оно было введено как ответ на старые DoS атаки, при которых создавалось множество сокетов, но обычно может быть использовано и для ограничения сетевых соединений. Это максимальный размер, до которого может вырасти стек процесса. Сам по себе этот параметр не может ограничить размер используемой программой памяти, следовательно, его необходимо использовать вместе с другими ограничениями. Существуют несколько других аспектов, которые необходимо учитывать при установке ограничений ресурсов. Ниже приведены некоторые общие подсказки, советы и различные комментарии. Процессам, загружаемым при старте системы скриптами поставляемый с системой, это хороший источник подходящих значений для большинства ограничений, только вы, администратор, можете знать подходящие значения для вашей системы. Установка слишком слабых ограничений может повлечь злоупотребления системой, а установка слишком сильных ограничений может стать помехой производительности. Пользователи X Window System X11 возможно должны получить больше ресурсов, чем другие пользователи. X11 сама по себе потребляет много ресурсов, а также провоцирует пользователей на одновременный запуск большего количества программ. Помните, что многие ограничения применяются к отдельным процессам, а не к пользователю вообще. Например, установка в 50 означает, что каждый процесс, запущенный пользователем, может открывать до 50 файлов. Таким образом, общее количество файлов, которые могут быть открыты пользователем, вычисляется как Это также применимо к потребляемой памяти. За дальнейшей информацией по ограничениям на ресурсы, классам учетных записей и характеристикам, обращайтесь к соответствующим страницам справочника. Локализация это окружение, настраиваемое системным администратором или пользователем для работы с различными языками, наборами символов, стандартами даты и времени, и так далее. Это обсуждается в главе локализация. Группа это просто список пользователей. Группа идентифицируется по имени и GID Group ID, идентификатор группы. В FreeBSD и большинстве других UNIX - подобных системах ядро для определения прав процесса использует два фактора: его ID пользователя и список групп, которым он принадлежит. Когда вы слышите что-то о group ID пользователя или процесса, это обычно означает только первую группу из списка. Это текстовый файл с четырьмя разделенными двоеточием полями. Первое поле это имя группы, второе это зашифрованный пароль, третье это ID группы, а четвертое это разделенный запятыми список членов группы. Этот файл может быть безопасно отредактирован вручную предполагается, конечно, что вы не сделаете синтаксических ошибок!. За более полным описанием синтаксиса обратитесь к странице справочника group 5. вручную, используйте команду pw 8 для добавления и редактирования групп. Например, для добавления группы, называемой и проверки ее существования вы можете использовать: Пример 13-8. Добавление группы с использованием pw 8 нет членов, и поэтому она практически бесполезна. Давайте изменим эту ситуацию, добавив Пример 13-9. Добавление пользователя в группу с использованием pw 8 это разделенный запятыми список пользователей, являющихся членами группы. Из предыдущих разделов мы знаем, что файл паролей также указывает группу для каждого пользователя. Пользователь автоматически добавляется системой к списку групп; пользователь не будет показан как член группы при использовании pw 8 но эта информация будет показана при использовании id 1 или похожего инструмента. Другими словами, с этим параметром программа pw 8 работает только с файлом она никогда не будет пытаться получить дополнительную информацию из файла Пример 13-10. Использование id 1 для определения принадлежности к группам uid1001jru gid1001jru groups1001jru, 1100teamtwo За дальнейшей информацией о pw 8, обратитесь к ее странице справочника, а за дополнительной информацией о формате файла Большая часть этой главы была взята из страницы справочника security7 которую написал Matthew Dillon. Перевод на русский язык: Денис Пеплин. Эта глава представляет введение в основные концепции безопасности системы, некоторые эмпирические правила и более подробно обращается к отдельным темам, касающимся FreeBSD. Большая часть затрагиваемых тем может быть применена к безопасности системы и безопасности в интернет вообще. Интернет больше не то дружественное место, где каждый хочет быть вам добрым соседом. Защита системы необходима для сохранения ваших данных, интеллектуальной собственности, времени и всего остального от хакеров и им подобных. FreeBSD предоставляет массу утилит и механизмов для обеспечения целостности и безопасности системы и сети. Основные концепции безопасности системы, специфику FreeBSD. О различных механизмах шифрования в FreeBSD, таких как DES Как настроить аутентификацию с использованием одноразовых паролей. Как настроить KerberosIV в релизах FreeBSD до 5.0. Как настроить Kerberos5 в релизах FreeBSD после 5.0. между компьютерами на FreeBSD/Windows. Как настроить и использовать OpenSSH, реализацию SSH Как использовать утилиту Portaudit для проверки пакаджей сторонних разработчиков, установленных из Коллекции Портов. Как работать с сообщениями безопасности FreeBSD. Что такое Process Accounting и как активировать его во FreeBSD. Понимание основных концепций FreeBSD и интернет. В этой книге рассмотрены и другие вопросы безопасности. Например, принудительный контроль доступа Mandatory Access Control рассматривается в Гл. 15, а брандмауэры в Гл. 24. Безопасность это первая и основная функция системного администратора. Хотя все многопользовательские системы BSD UNIX уже снабжены некоторой защитой, работа по созданию и поддержке дополнительных механизмов безопасности, обеспечивающих защищенную работу пользователей, это одна из самых серьезных задач системного администратора. Компьютеры безопасны настолько, насколько вы сделаете их безопасными и требования безопасности всегда находятся в противоречии с удобством работы пользователей. Системы UNIX способны одновременно работать с огромным количеством процессов и многие из этих процессов серверные - - это означает, что с ними могут взаимодействовать внешние программы. Сегодня десктопы заменили мини-компьютеры и мэйнфрэймы, и поскольку компьютеры в наши дни подключены к сети интернет, безопасность важна как никогда. Наилучшая реализация системы безопасности представима в виде послойной системы. Вообще говоря все, что нужно сделать, это создать столько слоев безопасности, сколько необходимо и затем внимательно следить за вторжениями в систему. Не переусердствуйте в настройке системы безопасности, иначе она сделает невозможной обнаружение вторжений, являющееся одним из наиболее важных аспектов механизма безопасности. Например, нет большого смысла в установке флага chflags 1 на каждый исполняемый файл системы, поскольку хотя таким способом можно временно защитить исполняемые файлы, это помешает обнаружению факта взлома системы. Безопасность системы также относится к различным формам атак, имеющих своей целью вызвать крах системы, или сделать систему недоступной другим способом, но не пытающихся получить доступ к учётной записи break root. Угрозы безопасности могут быть поделены на несколько категорий: Отказ в обслуживании Denial of service, DoS. Взлом пользовательских учётных записей. Взлом учётной записи root через доступные сервисы. Взлом учётной записи root через учётные записи пользователей. Атака отказ в обслуживании отбирает у машины необходимые ресурсы. Обычно DoS атаки используют грубую силу, чтобы попытаться обрушить систему или сделать ее недоступной другим способом, превысив лимиты ее сервисов или сетевого стека. Некоторые DoS атаки пытаются использовать ошибки в сетевом стеке для обрушения системы одним пакетом. Эту проблему можно решить только исправив ядро системы. Атаки зачастую можно предотвратить правильной установкой параметров, ограничивающих нагрузку на систему в неблагоприятных условиях. С атаками, использующими грубую силу, бороться сложно. Например, атака с использованием пакетов с поддельными адресами, которую почти невозможно остановить, может быстро отключить вашу систему от интернет. Возможно, она не приведет к отказу системы, но сможет переполнить соединение с интернет. Взлом учётной записи пользователя обычно встречается чаще, чем DoS атаки. Многие системные администраторы все еще используют стандартные сервисы ftpd на своих серверах. Эти сервисы по умолчанию не работают с зашифрованными соединениям. В результате при среднем количестве пользователей пароль одного или нескольких пользователей, входящих в систему через внешнее соединение это обычный и наиболее удобный способ входа в систему, будет перехвачен. Внимательный системный администратор должен анализировать логи удаленного доступа на предмет подозрительных адресов пользователей даже в случае успешного входа. Кто-то может предположить, что атакующий при наличии доступа к учётной записи пользователя может взломать учётную запись Однако, реальность такова, что в хорошо защищенной и поддерживаемой системе доступ к учётной записи пользователя не обязательно даст атакующему доступ к Разница между доступом к обычной учётной записи и к важна, поскольку без доступа к атакующий обычно не способен скрыть свои действия, и в худшем случае сможет лишь испортить файлы пользователя или вызвать крах системы. Взлом пользовательских учётных записей встречается очень часто, поскольку пользователи заботятся о безопасности так, как системные администраторы. Системные администраторы должны помнить, что существует множество потенциальных способов взлома учётной записи Атакующий может узнать пароль найти ошибку в сервисе, работающем с привилегиями и взломать учётную запись через сетевое соединение с этим сервисом, или узнать об ошибке в suid-root программе, позволяющей атакующему взлом с помощью взломанной учётной записи пользователя. Если атакующий нашел способ взлома ему может не понадобиться установка backdoor. Многие из обнаруженных и закрытых на сегодняшний день брешей в системе, позволяющие взлом требуют от атакующего серьезной работы по заметанию следов, поэтому большинство атакующих устанавливают backdoor. Backdoor предоставляет атакующему простой способ восстановления доступа к системе с привилегиями но также дает системному администратору удобный способ обнаружения вторжения. Устранение возможности установки backdoor возможно повредит безопасности системы, поскольку это не устранит брешь, позволившую проникнуть в систему. Меры безопасности всегда должны реализовываться на нескольких уровнях, которые могут быть классифицированы следующим образом: и служебных учётных записей. сервисов и suid/sgid исполняемых файлов. Защита учётных записей пользователей. Защита ядра, raw устройств и файловых систем. Быстрое обнаружение несанкционированных изменений в системе. В следующем разделе этой главы эти темы изложены более подробно. выделенный текст, упоминая приложение, и шрифт, упоминая определенные команды. Для протоколов используется обычный шрифт. Это типографическое отличие полезно для таких случаев, как ssh, поскольку это и команда и протокол. В последующем разделе будут рассмотрены методы защиты системы FreeBSD, упомянутые в предыдущем разделе этой главы. 14.3.1. Защита учётной записи Во-первых, не беспокойтесь о защите служебных учётных записей, если не защищена учётная запись В большинстве систем у учётной записи есть пароль. Использование пароля всегда. Это не означает, что вы должны удалить пароль. Пароль почти всегда необходим для доступа по консоли. Но это означает, что вы должны сделать невозможным использование пароля не из консоли или может быть даже с помощью команды su 1. Например, убедитесь, что псевдотерминалы в файле что делает невозможным вход на них под При использовании других средств входа, таких как sshd, убедитесь что вход под напрямую отключен и в них. Сделайте это, открыв файл и убедившись, что параметр Проверьте каждый метод доступа - - сервис FTP и ему подобные часто подвержены взлому. Прямой вход под должен быть разрешен только с системной консоли. Конечно, как системный администратор вы должны иметь доступ поэтому потребуется открыть несколько лазеек. Но убедитесь, что для доступа к ним необходим дополнительный пароль. Одним из способов доступа к Это позволяет использовать Вы никогда не должны давать таким учётным записям доступ к непосредственно, помещая их в группу в файле паролей. Служебные учётные записи должны помещаться в группу а затем добавляться к группе Только те члены группы staff, которым действительно нужен доступ к должны быть помещены в группу При работе с такими методами аутентификации как Kerberos, возможно также использование файла Это решение возможно лучше, поскольку механизм если злоумышленник получил копию файла паролей и смог взломать служебную учётную запись. Хотя использование механизма напрямую, это не обязательно самый безопасный способ. Используя команду vipw 8, замените каждый зашифрованный пароль служебных учётных записей на этот символ для запрета входа с аутентификацией по паролю. Эта команда обновит файл и базу данных пользователей/паролей. Это изменение предотвратит обычный вход, поскольку зашифрованный пароль никогда не совпадет с split После этого члены группы staff должны использовать другой механизм аутентификации, например kerberos 1 или ssh 1 с парой ключей: публичным и приватным. При использовании такой системы как Kerberos, потребуется защитить сервер Kerberos и рабочую станцию. При использовании пары публичного/приватного ключей с ssh, потребуется защитить компьютер, с которого происходит вход обычно это рабочая станция. Дополнительных слой защиты может быть добавлен путем защиты пары ключей при создании их с помощью ssh-keygen 1. Возможность заменить пароли служебных учётных записей на split гарантирует также, что вход может быть осуществлен только через защищенные методы доступа, которые вы настроили. Это принуждает всех членов staff использовать защищенные, шифрованные соединения для всех входов, что закрывает большую брешь, используемую многими нарушителями: перехват паролей с другого, слабо защищенного компьютера. Более непрямой механизм безопасности предполагает, что вы входите с более защищенного сервера на менее защищенный. Например, если главный сервер работает со всеми сервисами, рабочая станция не должна работать ни с одним. Для поднятия уровня безопасности до приемлемого уровня, число запущенных на ней сервисов необходимо сократить до минимума, вплоть до отключения их всех, кроме того необходимо использовать защищенный паролем хранитель экрана. Конечно, при наличии физического доступа к рабочей станции атакующий может взломать любую систему безопасности. Это определенно проблема, которую вы должны учитывать, но учтите также тот факт, что большинство взломов совершаются удаленно, через сеть, людьми, которые не имеют физического доступа к вашим рабочим станциям или серверам. Использование такой системы как Kerberos дает возможность заблокировать или изменить пароль в одном месте, что сразу отразиться на всех компьютерах, где существует служебная учётная запись. Если эта учётная запись будет взломана, возможность немедленно изменить пароль на всех компьютерах нельзя недооценивать. Без этой возможности изменение паролей на N машинах может стать проблемой. Вы можете также наложить ограничения на смену паролей с помощью Kerberos: не только установить значения timeout в Kerberos, но и добавить требование смены пароля пользователем после определенного периода времени скажем, раз в месяц. Предусмотрительный системный администратор запускает только те сервисы, в которых нуждается, ни больше ни меньше. Учитывайте, что сервисы сторонних разработчиков наиболее подвержены ошибкам. К примеру, работа со старыми версиями всему миру. Никогда не запускайте сервисы, которые вы не проверили достаточно внимательно. Многим сервисам не требуется работа под comsat, и finger могут быть запущены в так называемых песочницах sandboxes. Песочница это не идеальное решение, поскольку вызывает много проблем, но она подходит под модель послойной безопасности: если кто-то сможет взломать сервис, работающий в песочнице, ему потребуется взломать еще и саму песочницу. Чем больше уровней слоев потребуется пройти атакующему, тем меньше вероятность его успеха. Ошибки, позволяющие получать root доступ, находили фактически во всех сервисах, запускаемых под включая основные системные сервисы. Если вы обслуживаете машину, на которую входят только через sshd и никогда не входят через telnetd, rshd или rlogind, отключите эти сервисы! В FreeBSD сервисы ntalkd, comsat и finger теперь по умолчанию работают в песочнице. Другая программа, которая может быть кандидатом на запуск в песочнице это named 8. named в песочнице аргументы в закомментированой форме. В зависимости от того, устанавливаете ли вы новую систему, или обновляете старую, учётные записи пользователей, используемые этими песочницами могут не быть созданы. Предусмотрительный системный администратор должен узнать о песочницах для сервисов и установить их если есть возможность. Есть множество других сервисов, которые обычно не работают в песочницах: imapd, ftpd, и другие. Некоторым из этих сервисов есть альтернативы, но их установка может потребовать больше работы, чем вы готовы выполнить фактор удобства. Вы можете запустить эти сервисы под и положиться на другие механизмы обнаружения вторжений, которые могут пройти через них. брешь в системе это suid-root и sgid исполняемые файлы. Большинство этих исполняемых файлов, таких как Хотя ничто не может быть безопасно на 100%, находящиеся по умолчанию в системе suid и sgid исполняемые файлы могут быть признаны достаточно безопасными. Но бреши все еще обнаруживаются в этих исполняемых файлах. в 1998 делала xterm который обычно suid подверженным взлому. Лучше сразу принять меры предосторожности, чем сожалеть потом. Предусмотрительный системный администратор ограничит права запуска suid исполняемых файлов, которые должны запускаться пользователями группы staff, только этой группой, а также запретит доступ к тем исполняемым файлам suid, которые никем не используются. Серверу без монитора обычно не требуется исполняемый файл xterm. Исполняемые sgid исполняемые файлы могут быть почти так же опасны. Если нарушитель сможет взломать sgid-kmem исполняемый файл, он возможно сможет прочесть и таким образом получить файл зашифрованных паролей, что потенциально делает возможным взлом любой защищённой паролем учётной записи. Аналогично нарушитель, проникший в группу может отслеживать последовательности клавиш, отправляемые через псевдотерминалы, включая те, что используют защищённые соединения. Нарушитель, вошедший в группу может сделать вывод почти на любой пользовательский терминал. Если пользователь работает с терминальной программой или эмулятором с возможностью эмуляции клавиатуры, взломщик может потенциально сгенерировать поток данных, который заставит терминал пользователя ввести команду, и она будет запущена с правами этого пользователя. Учетные записи пользователей обычно сложнее всего защитить. Вы можете ввести драконовские ограничения доступа к служебным учётным записям, заменив их пароли на символ split но возможно не сможете сделать то же с обычными учётными записями пользователей. Если есть такая возможность, вы возможно сможете защитить учётные записи пользователей соответствующим образом. Если нет, просто более бдительно отслеживайте эти учётные записи. Использование ssh и Kerberos для учётных записей пользователей более проблематично, поскольку требует дополнительной административной работы и технической поддержки, но все же это решение лучше, чем файл с шифрованными паролями. максимально возможного количества паролей и использование ssh или Kerberos для доступа к таким учётным записям. Хотя файл с шифрованными паролями возможно, что нарушитель сможет получить доступ на чтение к этому файлу, даже если не получит права Ваши скрипты безопасности должны всегда проверять и составлять отчет об изменениях файла паролей обратитесь к разделу Проверка целостности файлов ниже по тексту. он сможет сделать практически все, но есть способы усложнить его задачу. Например, в большинстве современных ядер встроено устройство перехвата пакетов. В FreeBSD оно называется Нарушитель обычно пытается запустить перехват пакетов на взломанной машине. Вы не должны предоставлять ему такой возможности, на большинстве систем устройство не должно быть встроено в ядро. все еще остаются проблемы, связанные с устройствами Нарушитель все еще может писать на дисковые raw устройства. Есть также другая возможность ядра, загрузка модулей, kldload 8. Активный нарушитель может использовать KLD модуль для установки собственного устройства или другого перехватывающего устройства на работающее ядро. Для решения этих проблем запускайте ядро с большим уровнем безопасности, как минимум 1. Уровень безопасности может быть установлен с помощью После установки уровня безопасности в 1 доступ на запись в raw устройства будет запрещена и полностью заработают специальные флаги Убедитесь также, что флаг установлен на критически важных загрузочных исполняемых файлах, каталогах и файлах скриптов - - на всем, что запускается до установке уровня безопасности. Это требует большого объема работы, и обновление системы на более высоком уровне безопасности может стать гораздо сложнее. Вы можете пойти на компромисс и запускать систему на высоком уровне безопасности, но не устанавливать флаг для каждого существующего системного файла и каталога. Другая возможность состоит в монтировании только для чтения. Необходимо заметить, что такие правила слишком жесткие и могут помешать обнаружению вторжения. Вы можете защищать только ядро, файлы настройки и управления системой только до тех пор, пока эта защита не вступит в конфликт с удобством работы в системе. Например, использование вероятно может только навредить, поскольку хотя и может защитить файлы, препятствует обнаружению. Последний слой системы безопасности, возможно, наиболее важный - - обнаружение. Остальные меры безопасности практически бесполезны или, что еще хуже, могут дать вам ложное ощущение безопасности если вы не обнаружите потенциальное вторжение. Половина функций системы безопасности направлена на замедление атакующего, а не на его остановку, для того, чтобы дать системе обнаружения возможность поймать нарушителя на месте преступления. Лучший способ обнаружения вторжения - - отслеживание измененных, отсутствующих, или неожиданно появившихся файлов. Для наблюдения за измененными файлами лучше всего использовать другую зачастую централизованную систему с ограниченным доступом. Добавление написанных вами скриптов к этой дополнительно защищенной системе с ограниченным доступом делает ее практически невидимой для потенциальных взломщиков, и это важно. В целях достижения максимального эффекта вам может потребоваться предоставить этой системе доступ к другим машинам в сети, обычно с помощью NFS экспорта только для чтения или сгенерировав пары ключей ssh для доступа к другим машинам по ssh. Помимо большого объема сетевого трафика, NFS более скрытый метод - - он позволяет контролировать файловые системы на каждом клиентском компьютере практически незаметно. Если ваш сервер с ограниченным доступом подключен к клиентским компьютерам через коммутатор, NFS метод это зачастую лучший выбор. При соединении через концентратор, или через несколько маршрутизаторов, NFS метод может стать слишком небезопасным и использование ssh может стать лучшим выбором даже несмотря на то, что ssh оставляет следы своей работы. Как только у вас появился сервер с ограниченным доступом, и как минимум доступ на чтение в клиентских системах, потребуется написать скрипты для выполнения мониторинга. При наличии доступа по NFS вы можете написать скрипты с помощью простых системных утилит, таких как find 1 и md5 1. Лучше всего подсчитывать md5 файлов на клиентском компьютере как минимум один раз в день, а файлы, контролирующие запуск из даже более часто. При обнаружении расхождений в md5, контролирующий компьютер должен просигналить системному администратору проверить изменившиеся файлы. Хороший скрипт безопасности проверит также наличие несоответствующих исполняемых suid файлов и новых или измененных файлов в системных разделах При использовании ssh вместо NFS, написать скрипты безопасности гораздо сложнее. Вам обязательно потребуется скопировать скрипты на клиентский компьютер, сделать из невидимыми, и для безопасности потребуется также скопировать исполняемые файлы такие как find, которые будут использоваться скриптом. Приложение ssh на клиентском компьютере может быть уже взломано. В конечном итоге, без ssh не обойтись при работе через небезопасные соединения, но его гораздо сложнее использовать. Хороший скрипт безопасности проверит также изменения в файлах настройки, работающих при подключении пользователей и служебных учётных записей: и так файлы, которые могли не попасть в область проверки Если для пользователей выделен большой объем дискового пространства, проверка каждого файла на таких разделах может занять слишком много времени. В таком случае установка флагов монтирования для запрета suid исполняемых файлов и устройств на таких разделах это хорошая идея. Примените параметры mount 8 Проверяйте эти разделы в любом случае, хотя бы раз в неделю, поскольку необходимо обнаруживать попытки взлома, независимо от того, эффективны они или нет. Учет процессов accton 8 это относительно несложная возможность операционной системы, которая может помочь как механизм обнаружения состоявшихся вторжений. Она особенно полезна для обнаружения пути проникновения нарушителя в систему, если файл не был затронут проникновением. Наконец, скрипты безопасности должны обработать лог файлы, которые необходимо создавать настолько защищенным способом, насколько это возможно - - подключение syslog удаленно может быть очень полезным. Злоумышленник попытается уничтожить следы взлома, и лог файлы критически важны для системного администратора, пытающегося отследить время и метод первого проникновения. Один из надежных способов получения лог файлов является подключение системной консоли к последовательному порту и постоянный сбор информации через защищенную машину, отслеживающую консоли. Немного паранойи никогда не повредит. Как правило, системный администратор может добавлять элементы безопасности в любом количестве, пока это не влияет на удобство, а также некоторое количество элементов безопасности, влияющих на удобство. Что даже более важно, системный администратор должен немного изменить их - - если вы используете рекомендации, например те, что даны в этом документе, они становятся известны атакующему, который также имеет доступ к этому документу. prospective attacker who also has access to this document. Этот раздел охватывает DoS атаки. DoS атаки это обычно пакетные атаки. Хотя против современной атаки с подделкой пакетов, которая перегружает сеть, мало что можно сделать, вы можете ограничить повреждения, убедившись, что атака не может обрушить ваши сервера. Ограничение количества порождаемых процессов. Уменьшение последствий springboard атак ICMP ответ, широковещательный ping и т.д. Обычная DoS атака против порождающего процессы сервера пытается исчерпать ресурсы сервера по процессам, файловым дескрипторам и памяти до тех пор, пока машина не повиснет. У inetd обратитесь к inetd 8 есть несколько параметров, позволяющих ограничить такие атаки. Необходимо учесть, что хотя можно предотвратить падение системы, в общем случае невозможно предотвратить прекращение работы сервиса. Внимательно прочтите страницу справочника и обратите особое внимание на параметры не работает в случае атак с использованием поддельных IP пакетов, поэтому как правило необходимо использование комбинации параметров. Некоторые standalone сервисы используют собственные параметры, ограничивающие порождение процессов. которая работает гораздо лучше, чем параметр sendmail, ограничивающий нагрузку. Вам необходимо задать параметр запуска достаточно большим, чтобы обслуживать ожидаемую нагрузку, но так, чтобы компьютер мог обслужить такое количество приложений sendmail без падения системы. Хорошей мерой является запуск sendmail в режиме очереди Если вы все же хотите организовать доставку в режиме реального времени, запускайте очередь с меньшим интервалом но убедитесь в правильной установке параметра sendmail для предотвращения ошибок. Syslogd может быть атакован непосредственно, настоятельно рекомендуется использовать параметр Вы также должны быть очень осторожны с сервисами, совершающими обратное подключение, например, с TCP Wrapper и его обратным identd-запросом, который может быть атакован напрямую. По этой причине возможность TCP Wrapper генерировать обратный ident обычно не следует использовать. Правильным будет запрет доступа к внутренним сервисам из внешней сети путем соответствующей настройки брандмауэра на внешнем маршрутизаторе. Идея в том, чтобы предотвратить перегрузку сервисов атаками из внешней сети, а кроме того защитить от взлома через сеть. Всегда настраивайте исключающий брандмауэр, т.е. закрыть все кроме портов A, B, C, D, и M-Z. Этим способом вы можете закрыть все порты нижнего диапазона, кроме явно указанных, таких как named если вы поддерживаете интернет-зону, ntalkd, sendmail, и других сервисов, доступных из интернет. Если вы попробуете настроить брандмауэр другим способом - - включающий, или разрешающий брандмауэр, есть большой шанс забыть закрыть пару сервисов, или добавить новый внутрисетевой сервис и забыть обновить брандмауэр. Вы можете открыть диапазон портов с большими номерами для обычных приложений без угрозы портам нижнего диапазона. Учтите также, что FreeBSD позволяет вам контролировать диапазоны портов, используемые для динамической привязки через различные переменные что позволяет упростить настройку брандмауэра. Например, вы можете использовать обычный диапазон портов со значениями от 4000 до 5000, и диапазон портов с большими номерами от 49152 до 65535, а затем заблокировать все до 4000 порта конечно оставив доступ из интернет к определенным портам. Другой распространенный тип DoS атак называется springboard - - сервер атакуется таким образом, что генерируемые ответы перегружают его, локальную сеть или какие-то другие компьютеры. Наиболее распространенная атака этого вида это широковещательная ICMP ping атака. Атакующий подделывает пакеты ping, подставляя IP адрес машины, которую он намеревается атаковать, и отправляет их на широковещательный адрес вашей локальной сети. Если ваш внешний маршрутизатор не настроен на отбрасывание пакетов ping на широковещательные адреса, ваша сеть начинает генерировать соответствующие ответы на поддельный адрес, что приводит к перегрузке хоста-жертвы, особенно если атакующий использует этот же трюк с множеством широковещательных адресов в множестве сетей одновременно. Были зарегистрированы широковещательные атаки свыше ста двадцати мегабит. Другая распространенная springboard атака направлена на ICMP систему сообщения об ошибках. Конструируя пакеты, вызывающие ICMP сообщения об ошибках, атакующий может нагрузить входящее соединение сервера и вынудить сервер нагрузить исходящее соединение ICMP ответами. Этот тип атаки может также обрушить сервер, когда тот исчерпает mbuf, обычно если сервер не может ограничить число ответов ICMP, когда они генерируются слишком быстро. В ядре FreeBSD есть новая опция сборки, которая ограничивает эффективность этого типа атак. Последний основной класс springboard атак относится к определенным внутренним сервисам inetd, таким как сервис udp echo. Атакующий просто подделывает адрес источника и адрес назначения UDP пакетов, устанавливая в их качестве соответственно echo порт сервера A и B, оба этих сервера принадлежат вашей локальной сети. Эти два сервера начинают перебрасываться этим пакетом друг с другом. Атакующий может вызвать перегрузку обеих серверов и их сетей, просто отправив несколько пакетов таким способом. Аналогичные проблемы существуют с портом chargen. Компетентный системный администратор должен отключить эти тестовые сервисы inetd. Атаки с поддельными пакетами могут также использоваться для переполнения кэша маршрутизации ядра. Обратитесь к параметрам Атака с поддельными пакетами, использующая произвольный IP адрес источника, заставит ядро сгенерировать временный кэшированный маршрут в таблице маршрутизации, который можно увидеть с помощью Эти маршруты обычно удаляются через 1600 секунд или около того. Если ядро определит, что кэшированная маршрутная таблица стала слишком большой, оно динамически уменьшит но никогда не станет делать его меньше чем С этим связаны две проблемы: Ядро не отреагирует достаточно быстро, когда легко нагруженный сервер будет внезапно атакован. недостаточно мало для поддержки работоспособности в условиях продолжительной атаки. Если ваши серверы подключены к интернет через линию T3 или более быструю, предусмотрительно будет изменить оба значения с помощью sysctl 8. Никогда не устанавливайте ни один из этих параметров в нуль если только вы не хотите обрушить систему. Установка обеих параметров в значение 2 секунды должна предотвратить таблицу маршрутизации от атак. При использовании Kerberos и ssh необходимо учесть несколько возможных проблем. Kerberos V это отличный протокол аутентификации, но в адаптированных к нему приложениях telnet и rlogin есть несколько ошибок, которые могут сделать их непригодными к работе с бинарными потоками. К тому же, по умолчанию Kerberos не шифрует сессию, если вы не используете параметр ssh шифрует все по умолчанию. ssh работает очень хорошо во всех ситуациях, но пересылает ключи по умолчанию. Это означает, что если вы работаете с защищенной рабочей станции, ключи на которой дают доступ к остальной сети, и заходите по ssh на незащищенный компьютер, эти ключи могут быть использованы для взлома. Атакующему не удастся получить сами ключи, но поскольку ssh открывает порт во время входа в систему, то если на незащищенной машине взломан эти ключи могут быть использованы для доступа к другим компьютерам, на которых они действуют. Мы рекомендуем использовать ssh в комбинации с Kerberos для служебных учётных записей если это возможно. ssh может быть собран с поддержкой Kerberos. Это уменьшает зависимость от потенциально подверженных взлому ssh ключей, и в то же время защищает пароли через Kerberos. Ключи ssh должны использоваться только для работы скриптов на защищенных компьютерах там, где Kerberos использовать не получится. Мы также рекомендуем или выключить передачу ключей в настройках ssh, или использовать параметр поддерживаемый ssh в файле который позволяет использовать ключи только с определенных компьютеров. Частично переписал и обновил Bill Swingle. У каждого пользователя UNIX системы есть пароль, связанный с его учётной записью. Очевидно, что эти пароли должны быть известны только пользователю и соответствующей операционной системе. Для защиты паролей они шифруются способом, известным как односторонний хэш, то есть их можно легко зашифровать, но нельзя расшифровать. Другими словами, то, что мы сказали чуть раньше было очевидно, но не совсем верно: операционной системе сам пароль неизвестен. Ей известен только пароль в зашифрованной форме. Единственный способ получить обычный пароль это простой перебор всех возможных паролей. К сожалению, единственный способ шифрования пароля при появлении UNIX был основан на DES, Data Encryption Standard. Это не было проблемой для пользователей, живущих в США, но поскольку исходный код DES нельзя было экспортировать из США, FreeBSD нашла способ одновременно не нарушать законов США и сохранить совместимость со всеми другими вариантами UNIX, где все еще использовался DES. Решение было в разделении библиотек шифрования, чтобы пользователи в США могли устанавливать и использовать библиотеки DES, а у остальных пользователей был метод шифрования, разрешенный к экспорту. Так FreeBSD пришла к использованию MD5 в качестве метода шифрования по умолчанию. MD5 считается более безопасным, чем DES, поэтому установка DES рекомендуется в основном из соображений совместимости. была символической ссылкой на библиотеку, используемую для шифрования. В FreeBSD 4.4 была изменена для предоставления настраиваемой библиотеки аутентификации по хэшу пароля. На данный момент библиотека поддерживает хэши DES, MD5 и Blowfish. По умолчанию FreeBSD использует для шифрования паролей MD5. Довольно легко определить какой метод шифрования используется в FreeBSD. Один из способов это проверка файла Пароли, зашифрованные в хэш MD5 длиннее, чем те, что зашифрованы с помощью DES и начинаются с символов Пароли, начинающиеся с символов зашифрованы с помощью Blowfish. Пароли, зашифрованные DES не содержат каких-то определенных идентифицирующих символов, но они короче, чем пароли MD5 и закодированы в 64-символьном алфавите, не содержащем символа поэтому относительно короткая строка, не начинающаяся с этого символа это скорее всего DES пароль. Формат паролей, используемых для новых паролей, определяется параметром которое может принимать значения Обратитесь к странице справочника 5 за дополнительной информацией о параметрах login. S/Key это схема с одноразовыми паролями, основанная на одностороннем хэше. FreeBSD использует хэш MD4 для совместимости, но другие системы используют MD5 и DES-MAC. S/Key была частью базовой системы FreeBSD начиная с версии 1.1.5 и используется также во все большем числе операционных систем. S/Key это зарегистрированная торговая марка Bell Communications Research, Inc. Начиная с FreeBSD версии 5.0, S/Key была замещена на функциональный эквивалент - - OPIE One-time Passwords In Everything. OPIE по умолчанию использует MD5. Есть три различных вида паролей, о которых мы поговорим ниже. Первый вид это ваш обычный пароль UNIX или пароль Kerberos; мы будем называть его пароль UNIX. Второй вид это одноразовый пароль, сгенерированный программой S/Key или opiepasswd 1 и в приглашении login; мы будем называть их одноразовыми паролями. Последний вид паролей это защищенные пароли, которые вы передаете программам и которые эти программы используют для создания одноразовых паролей; мы будем называть его защищенными паролями или просто паролями. Защищенный пароль не имеет никакого отношения к вашему паролю UNIX ; они могут быть одинаковыми, но это не рекомендуется. Защищенные пароли S/Key и OPIE не ограничены 8-ю символами, как старые UNIX пароли 9, они могут быть настолько длинными, насколько вы захотите. Очень часто используются пароли длиной в шесть или семь символов. По большей части система S/Key или OPIE работает полностью независимо от системы паролей UNIX. Помимо паролей, есть два других вида данных, важных для S/Key и OPIE. Первый, известный как seed или ключ, состоит из двух букв и пяти цифр. Другой, называемый счетчиком цикла, это номер от 1 до 100. S/Key создает одноразовый пароль, соединяя ключ и защищенный пароль, а затем применяя MD4/MD5 столько раз, сколько указано счетчиком цикла и выдает результат в виде шести коротких слов на английском. Эти шесть слов на английском и есть ваш одноразовый пароль. Система аутентификации как правило PAM хранит последний использованный одноразовый пароль, и пользователь аутентифицируется если хэш вводимого пользователем пароля совпадает с предыдущим паролем. Поскольку используется односторонний хэш, невозможно сгенерировать следующий одноразовый пароль если получен предыдущий; счетчик цикла уменьшается после каждого успешного входа для поддержки синхронизации пользователя с программой login. Когда счетчик цикла уменьшается до 1, S/Key и OPIE должны быть переинициализированы. В каждой из обсуждаемых ниже систем задействованы три программы. Программы получают счетчик цикла, ключ и защищенный пароль и создают одноразовый пароль или последовательный список одноразовых паролей. Программы используются для инициализации S/Key и OPIE соответственно, и для смены паролей, счетчиков цикла, или ключей; они принимают защищенный пароль или счетчик цикла, ключ и одноразовый пароль. Программы и печатают текущий счетчик цикла и ключ вызывающего пользователя. Мы рассмотрим четыре вида операций. Первая это использование через защищенное соединение для первоначальной настройки системы одноразовых паролей, или для изменения пароля или ключа. Вторая операция это использование в тех же целях через незащищенное соединение, в сочетании с через защищенное соединение. Третья это использование для входа через незащищенное соединение. Четвертая это использование для генерации набора ключей, которые могут быть записаны или распечатаны для соединения из места, где защищенное соединение недоступно. Для первоначальной настройки S/Key, измените ваш пароль или ключ при входе через защищенное соединение например, с консоли компьютера или через ssh, используйте команду Adding unfurl: Reminder - Only use this method if you are directly connected. If you are using telnet or rlogin exit with no password and use keyinit - s. Enter secret password: Again secret password: ID unfurl s/key is 99 to17757 DEFY CLUB PRO NASH LACE SOFT Для OPIE, вместо этого используется grimreaper opiepasswd - f - c Adding unfurl: Only use this method from the console; NEVER from remote. If you are using telnet, xterm, or a dial-in, type C now or exit with no password. Then run opiepasswd without the - c parameter. Using MD5 to compute responses. Enter new secret pass phrase: Again new secret pass phrase: ID unfurl OTP key is 499 to4268 MOS MALL GOAT ARM AVID COED введите пароль или фразу. Запомните, это не тот пароль, с которым вы будете входить, он используется для генерации одноразовых паролей. Строка ID содержит информацию для вашего конкретного случая: имя пользователя, счетчик цикла и ключ. При входе система запомнит эти параметры и отправит их вам, поэтому их не надо запоминать. В последней строке находится одноразовый пароль, соответствующий этим параметрам и секретному паролю; если вы войдете в систему сразу, используйте этот одноразовый пароль. Для инициализации или изменения защищенного пароля через незащищенное соединение, вам потребуется существующее защищенное соединение куда-то, где вы сможете запустить это может быть средство доступа Macintosh или shell на компьютере, которому вы доверяете. Вам потребуется также установить значение счетчика цикла 100 возможно подойдет, и задать ключ или использовать сгенерированный. Через незащищенное соединение к компьютеру, на котором производится настройка, используйте команду Updating unfurl: Old key: to17758 Reminder you need the 6 English words from the key command. Enter sequence count from 1 to 9999: Updating unfurl: You need the response from an OTP generator. Old secret pass phrase: otp-md5 498 to4268 ext Response: GAME GAG WELT OUT DOWN CHAT New secret pass phrase: otp-md5 499 to4269 Response: LINE PAP MILK NELL BUOY TROY ID mark OTP key is 499 gr4269 LINE PAP MILK NELL BUOY TROY Чтобы принять ключ по умолчанию нажмите Enter. Затем, перед вводом пароля доступа введите те же параметры в вашем защищенном соединении или средстве доступа S/Key: Reminder - Do not use this program while logged in via telnet or rlogin. Enter secret password: Using the MD5 algorithm to compute response. Reminder: Dont use opiekey from telnet or dial-in sessions. Enter secret pass phrase: GAME GAG WELT OUT DOWN CHAT Теперь переключитесь на незащищенное соединение и скопируйте одноразовый пароль, сгенерированный соответствующей программой. Как только вы настроите S/Key или OPIE, во время входа появится приглашение вроде этого: Trying Connected to Escape character is. FreeBSD/i386 ttypa login: Trying Connected to Escape character is. FreeBSD/i386 ttypa login: Кроме того, у S/Key и OPIE есть полезная особенность не показанная здесь: если вы нажмете Enter в приглашении на ввод пароля, включится эхо, и вы сможете увидеть то, что вводите. Это может быть очень полезно, если вы пытаетесь ввести пароль вручную, например с распечатки. В этот момент вам потребуется сгенерировать одноразовый пароль, чтобы ввести его в приглашение. Это должно быть выполнено на защищенной системе, в которой вы можете запустить есть версии для DOS, Windows и Mac OS. Им требуются значения счетчика цикла и ключ в качестве параметров командной строки. Вы можете скопировать и вставить их прямо из приглашения login компьютера, на который входите. Reminder - Do not use this program while logged in via telnet or rlogin. Enter secret password: WELD LIP ACTS ENDS ME HAAG Using the MD5 algorithm to compute response. Reminder: Dont use opiekey from telnet or dial-in sessions. Enter secret pass phrase: GAME GAG WELT OUT DOWN CHAT Теперь, когда у вас есть одноразовый пароль, можете продолжить вход в систему: Иногда вы отправляетесь туда, где нет доступа к защищенному компьютеру или защищенному соединению. В этом случае, можно использовать команды для создания нескольких одноразовых паролей, которые вы сможете распечатать и забрать с собой. Например: Reminder - Do not use this program while logged in via telnet or rlogin. Enter secret password: Using the MD5 algorithm to compute response. Reminder: Dont use opiekey from telnet or dial-in sessions. Enter secret pass phrase: запрашивает пять паролей, указывает значение последнего счетчика цикла. Обратите внимание, что пароли печатаются в обратном по сравнению с обычным использованием порядке. Если вы действительно параноик, перепишите результат вручную; иначе скопируйте и передайте его Обратите внимание, что каждая линия содержит как счетчик цикла, так и одноразовый пароль; вам может показаться удобным отрывать пароль после использования. S/Key может наложить ограничения на использование UNIX паролей на основе имени хоста, имени пользователя, порта терминала или IP адреса сессии. Эти ограничения можно найти в файле настройки Страница справочника 5 содержит дополнительную информацию о полном формате файла а также детали о некоторых предосторожностях, которые должны быть предприняты перед тем, как положиться в вопросах безопасности на этот файл. нет это ситуация по умолчанию в системах FreeBSD 4.X, всем пользователям будет разрешено входить с паролями UNIX. Если файл существует, использование S/Key станет обязательно для всех, если только параметры настройки в файле не указывают иначе. В любом случае, пароли UNIX разрешены при входе с консоли. иллюстрирующий три наиболее распространенных вида параметров настройки: permit internet 192.168.0.0 255.255.0.0 permit user fnord permit port ttyd0 разрешает пользователям, чей IP адрес который подвержен подделке соответствует заданному значению и маске, входить с использованием паролей UNIX. Это должно рассматриваться не как механизм безопасности, а как напоминание пользователям, что они работают через небезопасное соединение и должны использовать для аутентификации S/Key. позволяет определенным пользователям, в данном случае всегда использовать пароли UNIX. Вообще говоря, это должно использоваться только для тех, кто не может использовать программу например если они работают с простых терминалов или необучаемы. позволяет всем пользователям, вошедшим с определенного терминала использовать пароли UNIX ; этот параметр должен использоваться для подключений по dial-up. OPIE может ограничивать использование паролей UNIX на основе IP адреса как и S/Key. Соответствующий файл называется он существует по умолчанию в FreeBSD 5.0 и более современных системах. Обратитесь к opieaccess 5 за более подробной информацией об этом файле и о предосторожностях, которые вы должны предпринять при использовании этого файла. permit 192.168.0.0 255.255.0.0 Эта строка позволяет пользователям, чей IP адрес который подвержен подделке соответствует указанному значению и маске, входить с паролем UNIX. не сработало, поведением по умолчанию является запрет всех не-OPIE входов. Написал: Tom Rhodes. Wrappers. Но немногие полностью понимают их полезность в сетевой среде: большинство используют брандмауэр. Хотя его применимость очень широка, есть вещи, с которыми брандмауэр не может работать, такие как отправка текста обратно вызывающей стороне. Программное обеспечение уровня TCP может делать это и многое другое. В следующих нескольких разделах обсуждаются многие возможности TCP Wrappers, и, когда это необходимо, даются примеры настроек. по поддержке каждого даемона. С ним становится возможным протоколирование, возврат сообщений вызывающей стороне, ограничение подключений внутренней сетью и т.п. Хотя некоторые из этих возможностей могут быть реализованы брандмауэром, TCP Wrappers не только предоставляют дополнительный уровень защиты, но и дают больше контроля над системой, чем это возможно с брандмауэром. не может заменить хороший сетевой экран. Тем не менее, обработчики TCP могут использоваться совместно с сетевым экраном и другими средствами обеспечения информационной безопасности, обеспечивая тем самым дополнительный уровень защиты системы. предполагается, что читатель ознакомился с разделом о настройке inetd. Замечание: Хотя программы, запускаемые из inetd 8, на самом деле не соответствуют термину даемоны, существует традиция называть их именно так. Этот термин и используется в данном разделе. это настройки по умолчанию. Конечно, ожидается также наличие правильной настройки но syslogd 8 отправит сообщения в системный протокол если что-то не так. Wrappers, использование не поддерживается. Все параметры настройки должны быть помещены в В простейшей конфигурации, политика подключения сводится к разрешению или блокированию в зависимости от параметров в Настройка в FreeBSD по умолчанию заключается в разрешении подключения к любому даемону, запущенному из Изменение этого поведения будет обсуждаться только после рассмотрения базовой настройки. это имя даемона, который запускается может находиться имя хоста, IP адрес, или IPv6 адрес, заключенный в квадратные скобки. Поле action может принимать значения allow или deny, чтобы соответственно разрешать или запрещать доступ. Помните, что поиск правил производится до первого совпадения. При обнаружении совпадения применяется соответствующее правило и поиск прерывается. Существуют и другие параметры, но они будут описаны в следующих разделах. Простая конфигурация может быть, например, такой: для разрешения соединений по протоколу POP После добавления этой строки, необходимо перезапустить. Это можно выполнить командой kill 1 или скриптом Wrappers имеются дополнительные параметры; они дают дополнительные возможности контроля над соединениями. Иногда бывает полезно возвращать комментарий определенным хостам или при подключении к определенным даемонам. В других случаях может быть необходимо добавить запись в лог файл, или отправить письмо администратору. В определенных ситуациях сервис должен использоваться только для локальных соединений. Все это возможно с использованием параметров c шаблонами, символами подстановки и путем выполнения внешних команд. Следующие два раздела посвящены этим типам настроек. Предположим ситуацию, в которой соединение должно быть запрещено, а о причине необходимо сообщить вызывающей стороне. Как это можно сделать? Соответствующую возможность предоставляет параметр При попытке подключения выполняется команда или скрипт, заданный этим параметром. Пример дан в файле The rest of the daemons are protected. ALL: ALL : severity : twist/bin/echo You are not welcome to use %d from %h. В этом примере сообщение, You are not allowed to use будет возвращено от всех даемонов, которые не были предварительно настроены в файле доступа. Обратите внимание, что возвращаемое сообщение должно быть заключено в кавычки; из этого правила нет исключений. Внимание: Возможна реализация DoS атаки, когда группа атакующих производит множество запросов на подключение. подразумевает запрет соединения и может использоваться для запуска команд или скриптов. В отличие от не отправляет ответ вызывающей стороне. Например, следующая конфигурация: Помимо приведенных выше символов подстановки, например %a, существует еще несколько символов. Обратитесь к странице hostsaccess 5 справочной системы за полным списком. Существуют и другие параметры, функциональность которых в дальнейшем может быть расширена. соответствует любому даемону, домену или IP адресу. Другой доступный шаблон это который соответствует хосту, IP адрес которого может быть подделан. Другими словами, может быть использован для определения действия с хостами, IP адрес которых не соответствует имени хоста. Вот пример применения этого параметра: адрес которых не соответствует имени хоста, будут отклонены. невозможно, если у клиента или сервера неправильно настроен DNS В таких случаях необходимо вмешательство администратора. Более подробная информация о шаблонах и их возможностях дана на странице hostsaccess 5 справочной системы. Для того, чтобы любая выбранная конфигурация заработала, в необходимо закомментировать первую строку настройки. В начале раздела об этом не упоминалось. Оригинальный текст предоставил Mark Dapoz. Kerberos это сетевая дополнительная система/протокол, которая делает возможной аутентификацию пользователей через сервисы на защищенном сервере. Такие сервисы, как удаленный вход, удаленное копирование, защищенное копирование файлов между системами и другие задачи с высоким риском становятся допустимо безопасными и более контролируемыми. Последующие инструкции могут использоваться в качестве руководства по настройке поставляемого с FreeBSD Kerberos. Тем не менее, вам могут потребоваться страницы справочника полного дистрибутива. 14.7.1. Установка Kerberos это опциональный компонент FreeBSD. Простейший способ установки этой программы это выбор sysinstall во время первой установки FreeBSD. Будет установлен eBones KerberosIV или Heimdal Kerberos5 вариант Kerberos. Включение этих реализаций объясняется тем, что они разработаны вне США/Канады и доступны вне этих стран, поскольку на них не влияют ограничения на экспорт криптографического кода из США. Кроме того, реализация MIT Kerberos доступна из Коллекции Портов в виде пакета Это необходимо сделать только на сервере Kerberos. Во-первых, убедитесь что не осталось старой базы данных Kerberos. Войдите в каталог и убедитесь, что в нем находятся только эти файлы: для удаления старой базы данных Kerberos, или, если Kerberos не запущен, просто удалите эти файлы. введя ваши данные. В этом примере уникальный идентификатор Отредактируем или создадим файл В этом примере другие идентификаторы введены для иллюстрации настройки c несколькими хостами. С целью упрощения настройки вы можете не включать их. Первая строка содержит идентификатор, под которым работает эта система. Остальные строки связывают идентификаторы с именами хостов. Сначала указывается идентификатор, затем хост под этим идентификатором, работающий как центр распространения ключей. Слова с последующим именем хоста означают, что этот хост также является сервером администрирования базы данных. За дальнейшей информацией об этих терминах обратитесь к страницам справочника по Kerberos. Как и в предыдущем примере, другие идентификаторы добавлены только для примера. С целью упрощения настройки вы можете не включать их. В первой строке определенная система сопоставляется с идентификатором. В остальных строках показано, сопоставить идентификатору остальные системы определенного поддомена. Теперь мы готовы к созданию базы данных. Потребуется всего лишь запустить сервер Kerberos или центр распространения ключей. Используйте для этого You will be prompted for the database Master Password. It is important that you NOT FORGET this password. Теперь мы должны сохранить ключ, чтобы сервера на локальных компьютерах могли его взять. Используйте для этого команду Current Kerberos master key version is 1. Master key entered. BEWARE! Для каждой системы, защищаемой Kerberos, в базу данных должны быть добавлены две записи. Это Они добавляются вместе с именем системы. Current Kerberos master key version is 1. Master key entered. BEWARE! Previous or default values are in brackets, enter return to leave the same, or new value. Principal: passwd, Instance: grunt, kdckeyver: 1 Expiration date enter yyyy-mm-dd 2000-01-01? Max ticket lifetime 5 minutes 255? Principal: rcmd, Instance: grunt, kdckeyver: 1 Expiration date enter yyyy-mm-dd 2000-01-01? Max ticket lifetime 5 minutes 255? Теперь необходимо создать все записи сервисов, которые были определены для каждого компьютера. Используем для этого команду Будет создан файл, который должен быть скопирован или перемещен каждого Kerberos клиента. Этот файл должен присутствовать на каждом сервере и клиенте, он необходим для работы Kerberos. Current Kerberos master key version is 1. Master key entered. BEWARE! Generating Эта команда создаст временный файл, который должен быть переименован в чтобы серверы смогли обратиться к нему. Используйте команду mv 1 для перемещения его в исходной системе: Если файл предназначен для клиентской системы, и сеть не безопасна, скопируйте на съемный носитель и перенесите файл с его помощью. Убедитесь, что переименовали его в клиента, и что режим доступа к нему 600: Теперь необходимо добавить в базу данных пользователей. Во-первых, создадим запись для пользователя Current Kerberos master key version is 1. Master key entered. BEWARE! Previous or default values are in brackets, enter return to leave the same, or new value. Principal: jane, Instance:, kdckeyver: 1 Expiration date enter yyyy-mm-dd 2000-01-01? Max ticket lifetime 5 minutes 255? Во-первых, запустите даемоны Kerberos. При правильном редактировании файла они запустятся автоматически при перезагрузке. Это необходимо только на сервере Kerberos. Клиенты Kerberos получат все необходимые данные из каталога Kerberos server starting Sleep forever on error Log file is Current Kerberos master key version is 1. Master key entered. BEWARE! Current Kerberos master key version is 1 Local realm: KADM Server KADM0.0A initializing Please do not use kill - 9 to kill this job, use a regular kill instead Current Kerberos master key version is 1. Master key entered. BEWARE! Теперь попробуйте изменить пароль с помощью passwd 1, чтобы убедиться, что даемон kpasswd может получить информацию из базы данных Kerberos: 14.7.7. Включение каждому пользователю, который нуждается в привилегиях собственный пароль su 1. Необходимо добавить учётную запись, которой разрешено получать доступ через su 1. Это делается путем связывания учётной записи с пользовательской учётной записью. Создадим в базе данных Kerberos запись Current Kerberos master key version is 1. Master key entered. BEWARE! Previous or default values are in brackets, enter return to leave the same, or new value. Not found, Create y? y Principal: jane, Instance: root, kdckeyver: 1 Expiration date enter yyyy-mm-dd 2000-01-01? Max ticket lifetime 5 minutes 255? instance. Она основана на пользователе с таким же именем, как и идентификатор, что принято Kerberos по умолчанию; если соответствующие записи находятся в файле Подобно этому, если в файле кто аутентифицировался как см. выше получить доступ к учётной записи пользователя Last login: Mon May 1 21:14:47 from grumble Copyright c 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD BUILT-19950429 GR386 0: Sat Apr 29 17:50:09 SAT 1995 настроен как показано выше, и в Kerberos настроена учётная запись Last login: Mon May 1 21:16:55 from grumble Copyright c 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD BUILT-19950429 GR386 0: Sat Apr 29 17:50:09 SAT 1995 Оригинальный материал предоставил Mark Murray. Все релизы FreeBSD после FreeBSD-5.1 включают поддержку только Kerberos5. Таким образом, Kerberos5 это единственная включаемая в поставку версия и его конфигурация похожа на KerberosIV во многих аспектах. Эта информация применима только к Kerberos5 из релизов после FreeBSD-5.0. Пользователи, желающие использовать пакет KerberosIV, могут установить его из порта Kerberos это дополнительная сетевая система/протокол, позволяющая пользователям авторизоваться через защищенные сервисы на защищенном сервере. Такие сервисы как удаленный вход, удаленное копирование, защищенное копирование файлов между системами и другие задачи с высоким риском становятся допустимо безопасными и более контролируемыми. Kerberos может быть описана как прокси система идентификации-проверки. Она также может быть описана как защищенная внешняя система аутентификации. Kerberos предоставляет только одну функцию - - защищенную аутентификацию пользователей сети. Он не предоставляет функций авторизации что разрешено делать пользователям или функций аудита какой пользователь что делает. После того, как клиент и сервер использовали Kerberos для идентификации, они могут зашифровать все соединения для гарантирования собственной безопасности и целостности данных. Следовательно крайне рекомендуется использовать Kerberos с другими методами безопасности, предоставляющими сервисы авторизации и аудита. Kerberos, поставляемого с FreeBSD. Тем не менее, вам потребуется обратиться к соответствующим страницам справочника за полным описанием. В целях демонстрации установки Kerberos, будут применены следующие обозначения: Kerberos даже если вы будете использовать его во внутренней сети. Это позволит избежать проблем с DNS и гарантирует возможность связи с Kerberos под другими идентификаторами. в качестве решения проблем с безопасностью сети. Протокол Kerberos использует стойкую криптографию, так что клиент может идентифицироваться на сервере и обратно через незащищенное сетевое соединение. Kerberos это и имя сетевого протокола аутентификации и общий термин для описания программ, где он реализован например, Kerberos telnet. Текущая версия протокола 5 описана в RFC Доступно несколько свободных реализаций этого протокола, работающих на множестве операционных систем. Massachusetts Institute of Technology MIT где Kerberos был первоначально разработан, продолжает разрабатывать собственный пакет Kerberos. Он обычно использовался в США как криптографический продукт, и в этом качестве попадал под действие ограничений на экспорт. MIT Heimdal Kerberos это другая реализация версии 5, которая разрабатывалась исключительно вне США для обхода экспортных ограничений и поэтому часто включалась в некоммерческие реализации UNIX. Heimdal его минимальный комплект включен в базовую установку FreeBSD. В целях получения наибольшей аудитории, в этих инструкциях предполагается использование Heimdal включаемого в FreeBSD. 14.8.2. Настройка Heimdal KDC Центр распространения ключей Key Distribution Center, KDC это централизованный сервис аутентификации, предоставляемый Kerberos - это компьютер, который предоставляет доступ через Kerberos. KDC считается доверяемым всеми другими компьютерами с определенным идентификатором Kerberos и поэтому к нему предъявляются высокие требования безопасности. Имейте ввиду, что хотя работа сервера Kerberos требует очень немного вычислительных ресурсов, из соображений безопасности для него рекомендуется отдельный компьютер, работающий только в качестве KDC Затем приступим к редактированию файла настройки Kerberos, Вам потребуется добавить CNAME синоним к файлу зоны, если у KDC Со следующими строками, добавленными в файл зоны kerberos.udp IN SRV 01 00 88 kerberos.tcp IN SRV 01 00 88 kpasswd.udp IN SRV 01 00 464 kerberos-adm.tcp IN SRV 01 00 749 kerberos IN TXT и правильно настроенного DNS сервера. Создадим теперь базу данных Kerberos. Эта база данных содержит ключи всех основных хостов, зашифрованных с помощью главного пароля. Вам не требуется помнить этот пароль, он хранится в файле Для создания главного ключа запустите Как только будет создан главный ключ, вы можете инициализировать базу данных с помощью программы означающим local. Этот ключ сообщает Это помогает решить проблему курицы и яйца, когда обращение идет к еще не созданной базе данных. Как только вы увидите приглашение для создания базы данных идентификаторов. Наконец, оставаясь в приглашении создайте первую запись с помощью команды Оставьте неизменными параметры по умолчанию, вы всегда сможете изменить их позже с помощью команды Обратите внимание, что вы всегда можете использовать команду для просмотра доступных параметров. для запуска сервисов. Заметьте, что ни один из поддерживающих Kerberos даемонов на этот момент запущен не будет, но у вас должна быть возможность убедиться в том, что KDC функционирует путем получения списка доступа для пользователя, которого вы только что самостоятельно создали из командной строки самого KDC 14.8.3. Сервер Для начала нам потребуется копия файла настройки Kerberos, Просто скопируйте его с KDC на клиентский компьютер безопасным способом используя сетевые утилиты, такие как scp 1, или физически, с помощью дискеты. Это основное различие между сервером, поддерживающим Kerberos и рабочими станциями - - на сервере должен быть файл В этом файле находится центральный ключ сервера, который позволяет KDC проверять все другие идентификаторы. Он должен быть помещен на сервер безопасным способом, поскольку безопасность сервера может быть нарушена, если ключ станет общедоступен. Это означает, что его передача через прозрачный канал, такой как FTP Это удобно, поскольку вам потребуется также создать запись хоста KDC Обратите внимание, что должны быть уже зарегистрированы в системе и необходимо наличие прав на использование интерфейса Обратитесь к разделу Remote administration в info страницах Heimdal за деталями по составлению списка доступа. Если вы не хотите включать удаленный доступ можете просто подключиться к KDC через защищенное соединение локальную консоль, ssh 1 или позволит вам добавить запись для сервера, а команда позволит перенести эту запись в собственный keytab файл сервера. Например: Обратите внимание, что команда удаленно, возможно добавление записи хоста Затем вы можете скопировать keytab на сервер защищенным способом например, используя или дискету. Убедитесь, что используемое имя keytab не совпадает с именем по умолчанию во избежание перезаписывания keytab на KDC Теперь вы готовы к включению некоторых сервисов Kerberos. В этом примере мы включим сервис тип аутентификации в user. Обратитесь к странице справочника telnetd 8 за подробной информацией. 14.8.4. Клиент Настройка клиентского компьютера почти тривиально проста. Как только настройка Kerberos закончена, вам потребуется только файл настройки Просто скопируйте его безопасным способом на клиентский компьютер с KDC Протестируйте клиентский компьютер, попытавшись использовать для получения, отображения и удаления списка доступа. Соединитесь с Kerberos севером используя клиент Kerberos, если соединение не работает и получение доступа является проблемой, это скорее всего проблема сервера, а не клиента или KDC попробуйте использовать программу перехвата пакетов такую как tcpdump 1, чтобы убедиться, что ваш пароль не передается незашифрованным. Попробуйте использовать чтобы зашифровать весь поток данных подобно находятся в базовой установке FreeBSD. Обратите внимание, что в FreeBSD версий до 5.0 они были переименованы в хотя их обычно использовали лишь однократно. Различные неосновные клиентские приложения Kerberos также устанавливаются по умолчанию. Здесь проявляется минимальность базовой установки Heimdal: это единственное приложение, поддерживающее и некоторые другие реже используемые программы. Порт MIT 14.8.5. Пользовательские файлы настройки: Клиентские приложения, такие как обычно не требуют указания имени пользователя или учётной записи. Тем не менее, время от времени вам может потребоваться дать доступ к локальной учётной записи кому-то, у кого нет соответствующей учётной записи Kerberos. Например, пользователю Другим учётным записям также может потребоваться доступ к этой локальной учётной записи. помещенные в домашний каталог пользователя, могут быть использованы подобно действенной комбинации для решения этой проблемы. Например, файл то обе упомянутые учётные записи получат доступ к этой учётной записи без необходимости наличия общего пароля. Рекомендуется прочитать страницу справочника по этим командам. Обратите внимание, что страница справочника о Kerberos убедитесь, что в Kerberos клиентов указаны перед их версиями в базовой системе. Все ли компьютеры в пределах данного realm синхронизированы по времени? Если нет, аутентификация может завершиться неудачно. Разд. 23.11 описывает как синхронизировать часы с использованием NTP и Heimdal успешно взаимодействуют. За исключением протокол для которого не стандартизован. Если вы изменяете hostname, потребуется также изменить учётную запись и обновить keytab. Это также необходимо для специальных записей в keytab, таких как прямое и обратное разрешение, или как минимум через Записи CNAME будут работать, но записи A и PTR должны быть корректны и находиться на своем месте. Сообщение об ошибке не всегда интуитивно понятно: Некоторые операционные системы, способные работать в качестве клиентов KDC не работает, что хорошо является хорошей идеей для безопасности, но неудобно. Это не ошибка KDC Kerberos, если вы хотите продлить действие доступа до значения большего, чем десять часов по умолчанию, используйте команду Затем возможно использование для запроса доступа с большим временем действия. для разрешения проблем, а затем запускаете с рабочей станции, то увидите, что TGT даже до того, как вы введете пароль! Объяснение в том, что сервер Kerberos свободно распространяет TGT Ticket Granting Ticket на каждый неавторизованный запрос; однако, каждый TGT зашифрован ключом, полученным из пароля пользователя. Следовательно, когда пользователь вводит свой пароль, он не отправляется на KDC а используется для расшифровка TGT Если в процессе расшифровки получается правильный билет с правильным значением времени, у пользователя есть действующее удостоверение. Это удостоверение содержит ключ сессии для установления безопасного соединения с сервером Kerberos, как и действующий TGT зашифрованный ключом сервера Kerberos. Второй уровень шифрования недоступен пользователю, но позволяет серверу Kerberos проверять правильность каждого TGT Если вы хотите установить большое время жизни доступа например, неделю, и используете OpenSSH для соединения с компьютером, где хранится билет, убедитесь, что параметр Kerberos или билеты будут уничтожены при выходе из сеанса. Запомните, что время жизни билетов хостов больше. Если время жизни билета для учётной записи пользователя составляет неделю, а время жизни учётной записи хоста, к которому вы подсоединяетесь девять часов, учётная запись хоста в кэше устареет и кэш билетов будет работать не так, как ожидается. кратко рассказывает об этом, запомните, что это применимо только к учётным записям, для которых действует политика паролей. Формат файла прост: одно слово на строку. Может помочь создание символической ссылки на 14.8.7. Отличия от порта MIT которая имеет другой но эквивалентный набор команд и использует другой протокол. Если ваш KDC вы не сможете использовать и наоборот, по этой же причине. Опции командной строки клиентов также могут немного отличаться для одинаковых задач. Рекомендуется следование инструкциям на MIT вначале указаны системные каталоги, вместо приложений MIT могут быть запущены системные приложения. предоставляемым FreeBSD, убедитесь что файл установлен портом, если вы хотите понять почему вход через иногда происходит так странно. Наиболее важно, исправление incorrect permissions on cache file требует использования бинарного файла для аутентификации, чтобы права на переданное удостоверение передавались правильно. Каждый сервис, работающий в сети, должен быть модифицирован для работы с Kerberos или другим способом защищен от атак по сети или удостоверения пользователей могут быть украдены или использованы повторно. В качестве примера может быть приведено использование Kerberos версий оболочек для удаленной работы например через сервера, получающего пароли в незашифрованном виде. В многопользовательской среде Kerberos менее безопасен. Это потому, что он хранит билеты в каталоге которая доступна для чтения всем. Если пользователь работает с несколькими другими пользователями одновременно на одном компьютере т.е. в многопользовательской среде, возможна кража копирование билета другим пользователем. но это делается редко. Для преодоления ограничения достаточно сохранять билет в домашнем каталоге пользователя и использовать простые ограничения на доступ к файлам. Архитектура системы такова, что KDC должен быть максимально защищен, поскольку главный пароль базы данных содержится в нем. На KDC не должно быть запущено никаких других сервисов и он должен быть защищен физически. Опасность велика, поскольку Kerberos хранит все пароли зашифрованными одним ключом главным ключом, который хранится в файле на KDC Хорошей новостью является то, что кража главного ключа не станет такой проблемой, как может показаться. Главный ключ используется только для шифрования базы данных Kerberos и в качестве seed для генератора случайных чисел. Поскольку доступ к KDC защищен, атакующий мало что сможет сделать с главным ключом. станет недоступен возможно по причине атак DoS или проблем в сети сетевые сервисы будет невозможно использовать, поскольку аутентификация не может быть выполнена. Уменьшить последствия можно при наличии нескольких KDC 14.8.8.4. Недостатки Kerberos позволяет пользователям, хостам и сервисам производить аутентификацию друг друга. В нем нет механизма аутентификации KDC для пользователей, хостов или сервисов. Это означает, что поддельный например может записывать все имена пользователей и паролей. Помочь решить проблему может или другой инструмент проверки целостности файловой системы. Написал: Tom Rhodes. Одной из программ, требующих особого внимания пользователей, является набор программ OpenSSL, включенный в FreeBSD. OpenSSL предоставляет уровень шифрования поверх обычных уровней соединения; следовательно, он может быть использован многими сетевыми приложениями и сервисами. OpenSSL может использоваться для шифрования соединений почтовых клиентов, транзакций через интернет, например для кредитных карт, и многого другого. Многие порты, такие как не установлена явно в yes. Версия OpenSSL, включаемая в FreeBSD, поддерживает сетевые протоколы безопасности Secure Sockets Layer v2/v3 SSLv2/SSLv3, Transport Layer Security v1 TLSv1 и может быть использована в качестве основной криптографической библиотеки. по умолчанию он отключен из-за патентных ограничений Соединенных Штатов. Для его использования необходимо ознакомиться с лицензией, и, если ограничения приемлемы, установить в Наиболее часто OpenSSL используется для создания сертификатов, используемых программными пакетами. Эти сертификаты подтверждают, что данные компании или частного лица верны и не подделаны. Если рассматриваемый сертификат не был проверен одним из нескольких сертификационных центров Certificate Authorities - CA обычно выводится предупреждение. Центр сертификации представляет собой компанию, такую, как VeriSign, которая подписывает сертификаты для подтверждения данных частных лиц или компаний. Эта процедура не бесплатна и не является абсолютно необходимой для использования сертификатов; однако может успокоить некоторых особо осторожных пользователей. Generating a 1024 bit RSA private writing new private key to - - You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter., the field will be left blank. - - Country Name 2 letter code AU: Organization Name eg, company Internet Widgits Pty Ltd: Organizational Unit Name eg, section : Ввод после приглашения Common Name содержит имя домена. Здесь вводится имя сервера для верификации; помещение в это поле чего-либо кроме этого имени приведет к созданию бесполезного сертификата. Доступны и другие параметры, например срок действия, альтернативные алгоритмы шифрования и т.д. Полный список находится на странице справочного руководства openssl 1. В текущем каталоге, из которого была вызвана вышеуказанная команда, должны появиться два файла. Файл с запросом на сертификацию может быть послан в центр выдачи сертификатов, который проверит введённые вами подтверждающие данные, подпишет запрос и возвратит сертификат вам. Второй созданный файл будет иметь название и содержать приватный сертификационный ключ, который необходимо тщательно защищать; если он попадёт в руки посторонних лиц, то может быть использован для имитации лично вас или вашего сервера. не требуется, может быть создан самоподписанный сертификат. Сначала создайте ключ RSA В каталоге должно появиться два новых файла: подпись сертификата, Они должны быть помещены в каталог, доступный для чтения только Права на каталог можно изменить Итак, что могут сделать эти файлы? Хорошим применением может стать шифрование соединений для Sendmail MTA Это сделает ненужным использование простой текстовой аутентификации для тех, кто отправляет почту через локальный MTA Замечание: Это не лучшее из возможных использований, поскольку некоторые MUA выдадут ошибку, если сертификат не установлен локально. Обратитесь к поставляемой с программой документации за информацией по установке сертификата. dnl SSL Options defineconfCACERTPATH, /etc/certsdnl dnl dnl dnl defineconfTLSSRVOPTIONS, Vdnl это каталог для локального хранения сертификата и ключей. После настройки необходимо собрать локальный файл Это легко сделать, набрав Затем выполните команду которая должна запустить даемон Sendmail. Если все пройдет нормально, в файле ESMTP Sendmail 8.12.10/8.12.10; Tue, 31 Aug 2004 03:41:22 - 0400 EDT Hello 192.0.34.166, pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH LOGIN PLAIN 250-STARTTLS 250-DELIVERBY 250 HELP closing connection Connection closed by foreign host. Если в выводе появилась строка STARTTLS, все работает правильно. Написал Nik Clayton. Создание VPN между двумя сетями, соединенными через интернет, с использованием шлюзов FreeBSD. Написал Hiten M. Pandya. Этот раздел послужит вам руководством по настройке IPsec и его использованию в среде FreeBSD и Microsoft Windows 2000/XP, соединяемых безопасным способом. Для настройки IPsec необходимо ознакомиться с процессом сборки ядра Гл. 8. IPsec это протокол, расположенный поверх слоя Internet Protocol IP. Он позволяет двум или более хостам связываться защищенным способом отсюда и название протокола. Сетевой стек FreeBSD IPsec основан на реализации KAME, поддерживающей оба семейства протоколов, IPv4 и IPv6. Замечание: FreeBSD 5.X содержит аппаратно поддерживаемый стек IPsec, известный как Fast IPsec, заимствованный из OpenBSD. Для оптимизации производительности IPsec он задействует криптографическое оборудование когда оно доступно через подсистему crypto 4. Это новая подсистема и она не поддерживает всех возможностей, доступных в KAME версии IPsec. Для включения IPsec с аппаратной поддержкой необходимо добавить в файл настройки ядра следующий параметр: Обратите внимание, что на данный момент невозможно использовать подсистему Fast IPsec вместе с KAME реализацией IPsec. Обратитесь к странице справочника fastipsec 4 за дальнейшей информацией. Encapsulated Security Payload ESP, защищающей данные IP пакета от вмешательства третьей стороны путем шифрования содержимого с помощью симметричных криптографических алгоритмов таких как Blowfish, 3DES. Authentication Header AH, защищающий заголовок IP пакета от вмешательства третьей стороны и подделки путем вычисления криптографической контрольной суммы и хеширования полей заголовка IP пакета защищенной функцией хеширования. К пакету добавляется дополнительный заголовок с хэшем, позволяющий аутентификацию информации пакета. могут быть использованы вместе или по отдельности, в зависимости от обстоятельств. IPsec может быть использован или для непосредственного шифрования трафика между двумя хостами транспортный режим ; или для построения виртуальных туннелей между двумя подсетями, которые могут быть использованы для защиты соединений между двумя корпоративными сетями туннельный режим. Последний обычно называют виртуальной частной сетью Virtual Private Network, VPN. За детальной информацией о подсистеме IPsec в FreeBSD обратитесь к странице справочника ipsec 4. Для включения поддержки IPsec в ядре, добавьте следующие параметры к файлу настройки ядра: options IPSEC IP security options IPSECESP IP security crypto; define w/IPSEC Если желательна поддержка отладки IPsec, должна быть также добавлена следующая строка: Не существует стандарта VPN. Они могут быть реализованы множеством различных технологий, каждая из которых имеет свои сильные и слабые стороны. Этот раздел представляет сценарий и стратегию реализации VPN для этого сценария. Обе сети соединены через интернет через шлюз, работающий на FreeBSD. У шлюза каждой из сетей есть как минимум один публичный IP адрес. Внутренние IP адреса двух сетей могут быть публичными или приватными, не имеет значения. На шлюзе может работать NAT, если это необходимо. Внутренние IP адреса двух сетей не должны пересекаться. Хотя вероятно теоретически возможно использование комбинации VPN технологии и NAT для настройки такой конфигурации, эта конфигурация будет кошмарна. Если две сети, которые вы пытаетесь соединить, используют один и тот же диапазон приватных адресов например, обе используют номера в одной из сетей необходимо изменить. Заметьте, что здесь присутствуют два публичных IP-адреса. В дальнейшем для их обозначения будут использоваться буквы. Если вы увидите эти буквы, замените их на свои публичные IP адреса. Также обратите внимание, что у обеих шлюзов внутренний адрес заканчивается на.1 и диапазоны приватных адресов двух сетей различны соответственно. Все компьютеры локальных сетей настроены на использование в качестве шлюза по умолчанию компьютера с адресом, оканчивающимся на С сетевой точки зрения замысел в том, чтобы каждая сеть видела компьютеры из другой сети так, как если бы они были непосредственно подключены к тому же самому маршрутизатору - - хотя и немного медленному маршрутизатору, иногда теряющему пакеты. Это означает, что например компьютер и это будет прозрачно работать. Компьютеры с Windows должны видеть компьютеры в другой сети, просматривать сетевые ресурсы, и так далее, точно так же, как и для компьютеров в локальной сети. И все это безопасным способом. Это означает, что трафик между сетями зашифрован. Создание VPN между этими двумя сетями это многошаговый процесс. Этапы создания VPN таковы: Создание виртуального сетевого подключения между двумя сетями через интернет. Тестирование подключения с помощью таких инструментов как ping 8, чтобы убедиться, что оно работает. Применение политики безопасности чтобы убедиться, что трафик между двумя сетями прозрачно шифруется и расшифровывается если необходимо. Тестирование с помощью таких инструментов как tcpdump 1, чтобы убедиться, что трафик шифруется. Настройка дополнительных программ на шлюзах FreeBSD, чтобы компьютеры Windows из одной сети видели компьютеры в другой через VPN. Предположим, что вы работаете на шлюзе сети 1 с публичным адресом т.е. на приватный адрес машины с IP адресом Что должно произойти, чтобы это сработало? Шлюз должен знать, как достичь Другими словами, у него должен быть маршрут к Приватные IP адреса, такие как диапазон не адресуются в интернет. Каждый пакет, отправляемый на должен быть завернут в другой пакет. Исходным адресом пакета должен быть Этот процесс называется инкапсуляцией. необходимо будет разинкапсулировать его и доставить к Как вы можете увидеть, это требует туннеля между двумя сетями. Два конца туннеля это IP адреса Туннель используется для передачи трафика с приватными IP адресами через интернет. В FreeBSD этот туннель создается с помощью устройства generic interface, или Как вы можете догадаться, интерфейс на каждом хосте должен быть настроен с четырьмя IP адресами; два для публичных IP адресов и два для приватных IP адресов. В ядро обеих компьютеров FreeBSD должна быть встроена поддержка устройства gif. Вы можете сделать это, добавив строку: к файлу настройки ядра на обеих компьютерах, с последующей компиляцией, установкой и перезагрузкой. Настройка туннеля это двухшаговый процесс. Во-первых, необходимо задать сведения о внешнем или публичном IP адресе с помощью gifconfig 8. Затем о приватном IP адресе с помощью ifconfig 8. На шлюзе сети 1 для настройки туннеля вам потребуется запустить следующие две команды. gifconfig gif0 ifconfig gif0 inet 192.168.1.1 192.168.2.1 netmask 0xffffffff На другом шлюзе подобные команды, но с IP адресами в обратном порядке. gifconfig gif0 ifconfig gif0 inet 192.168.2.1 192.168.1.1 netmask 0xffffffff для просмотра настройки. Например, на шлюзе сети 1 вы увидите: gif0: flags8011 UP, POINTTOPOINT, MULTICAST mtu 1280 inet 192.168.1.1 - - 192.168.2.1 netmask 0xffffffff physical address inet - - Как вы можете видеть, был создан туннель между физическими адресами для туннелирования разрешен трафик между Это также добавляет запись к таблице маршрутизации на обеих машинах, вы можете проверить запись командой Вот вывод этой команды на шлюзе сети 1. Routing tables Internet: Destination Gateway Flags Refs Use Netif 192.168.2.1 192.168.1.1 UH 0 0 Как показывает значение поля Flags, это маршрут к хосту, что означает, что каждый шлюз знает, как достичь другого шлюза, но не знает как достичь остальной части соответствующей сети. Эта проблема будет быстро решена. Вероятно, на обеих машинах запущен брандмауэр. VPN должен обходить его. Вы можете разрешить весь трафик между двумя сетями, или включить правила, защищающие каждый конец соединения от другого. Это сильно упрощает тестирование настройки брандмауэра, если вы разрешаете весь трафик через VPN. Вы всегда можете Вы всегда можете усилить защиту позже. Если вы используете на шлюзах ipfw 8, команда вроде этой разрешит весь трафик между двумя концами VPN без влияния на другие правила брандмауэра. Очевидно, вам потребуется запустить эту команду на обеих шлюзах. Этого достаточно для включения ping с одного шлюза на другой. На и получить ответ, и аналогично на другом шлюзе. Однако, машины в другой сети пока недоступны. Это из-за маршрутизации - - хотя шлюзы знают, как связаться друг с другом, они не знают, как связаться с сетью за другим шлюзом. Для решения этой проблемы вы должны добавить статический маршрут на каждом шлюзе. Команда на первом шлюзе будет выглядеть так: route add 192.168.2.0 192.168.2.1 netmask 0xffffff00 отправляйте пакеты хосту Вам потребуется запустить похожую команду на другом шлюзе, но с адресами IP трафик с хостов в одной сети теперь может достичь хосты в другой сети. Теперь создано две трети VPN между двумя сетями, поскольку это виртуальная virtual сеть network. Она еще не приватная private. Вы можете протестировать ее с помощью ping 8 и tcpdump 1. Войдите на шлюз и запустите tcpdump dst host 192.168.2.1 16:10:24.018080 192.168.1.1 192.168.2.1: icmp: echo request 16:10:24.018109 192.168.1.1 192.168.2.1: icmp: echo reply 16:10:25.018814 192.168.1.1 192.168.2.1: icmp: echo request 16:10:25.018847 192.168.1.1 192.168.2.1: icmp: echo reply 16:10:26.028896 192.168.1.1 192.168.2.1: icmp: echo request 16:10:26.029112 192.168.1.1 192.168.2.1: icmp: echo reply Как вы видите, ICMP сообщения пересылаются вперед и назад незашифрованными. Если вы использовали с tcpdump 1 параметр для получения большего объема данных пакета, то увидите больше информации. Конечно же это неприемлемо. В следующем разделе мы обсудим защиту соединения между двумя сетями, так что весь трафик будет автоматически шифроваться. Настройте оба ядра с pseudo-device gif. на шлюзе 1 и добавьте следующие строки подставляя IP адреса где необходимо. ifconfiggif0inet 192.168.1.1 192.168.2.1 netmask 0xffffffff staticroutesvpn routevpn192.168.2.0 192.168.2.1 netmask 0xffffff00 или подобный на обеих хостах и добавьте на шлюзе 2, меняя порядок IP адресов. Для защиты соединения мы будем использовать IPsec. IPsec предоставляет хостам механизм определения ключа для шифрования и для последующего использования этого ключа для шифрования данных между двумя хостами. Здесь будут рассмотрены два аспекта настройки. У хостов должен быть способ согласования используемого алгоритма шифрования. Как только хосты договорятся об этом, можно говорить об установленном между ними безопасном соединении. Должен быть механизм определения, какой трафик необходимо шифровать. Конечно, вам не требуется шифровать весь исходящий трафик - - достаточно шифровать только трафик, идущий через VPN. Правила, определяющие то, какой трафик необходимо шифровать, называются политикой безопасности. Безопасное соединение и политика безопасности поддерживаются ядром, и могут быть изменены программами пользователя. Однако перед тем, как вы сможете сделать это, необходимо настроить поддержку протоколов IPsec и Encapsulated Security Payload ESP в ядре. Это делается добавлением в настройку ядра параметров: с последующим перекомпилированием, переустановкой и перезагрузкой. Как и прежде вам потребуется сделать это с ядрами на обеих шлюзах. При настройке параметров безопасности security associations у вас есть два варианта. Вы можете настроить их вручную для обеих хостов, задав алгоритм шифрования, ключи для шифрования и так далее, или использовать даемоны, реализующие Internet Key Exchange protocol IKE, который сделает это за вас. Рекомендуется последнее. Помимо прочего, этот способ более прост. Редактирование и отображение политики безопасности выполняется с помощью setkey 8. По аналогии, используется для настройки таблиц политики безопасности ядра так же, как route 8 используется для настройки таблиц маршрутизации ядра. также может отображать текущие параметры безопасности, и продолжая аналогию дальше, это соответствует Существует множество даемонов для управления параметрами безопасности в FreeBSD. Здесь будет описано использование одного из них, racoon - - он доступен в виде порта в Коллекции Портов FreeBSD. racoon должен работать на обеих шлюзах. На каждом из хостов он настраивается с IP адресом другого конца VPN, и секретным ключом по вашему выбору, должен быть одним и тем же на обеих шлюзах. Эти два даемона подключаются друг к другу, подтверждают, что они именно те, за кого себя выдают используя секретный ключ, заданный вами. Затем даемоны генерируют новый секретный ключ и используют его для шифрования трафика через VPN. Они периодически изменяют этот ключ, так что даже если атакующий сломает один из ключей что теоретически почти невозможно это не даст ему слишком много - - он сломал ключ, который два даемона уже сменили на другой. Этот файл не требует слишком больших изменений. Другим компонентом настройки racoon, который потребуется изменить, является предварительный ключ. Необходимо отметить, что предварительный ключ не используется для шифрования трафика через VPN соединение это просто маркер, позволяющий управляющим ключами даемонам доверять друг другу. содержит строку для каждого удаленного сервера, с которым происходит соединение. В этом примере два сервера, каждый файл будет содержать одну строку каждый конец VPN общается только с другим концом. То есть публичный IP-адрес противоположной стороны, пробел и текстовая строка c секретной фразой. Конечно, вам не стоит использовать в качестве ключевой фразы слово secret - - здесь применяются обычные правила выбора паролей. То есть публичный IP адрес удаленной стороны и та же секретная фраза. Перед запуском racoon режим доступа к файлу т.е. запись и чтение только для Вы должны запустить racoon на обеих шлюзах. Вам также потребуется добавить правила для включения IKE трафика, передающегося по UDP через порт ISAKMP Internet Security Association Key Management Protocol. Опять же, они должны быть расположены насколько возможно ближе к началу набора правил. Как только racoon будет запущен, вы можете попробовать выполнить ping с одного шлюза на другой. Соединение все еще не зашифровано, но racoon установит параметры безопасности между двумя хостами - - это может занять время и вы можете заметить небольшую задержку перед началом ответа команды ping. Как только параметры безопасности установлены, вы можете просмотреть их используя setkey 8. Запустите на любом из хостов для просмотра информации о параметрах безопасности. Это одна сторона проблемы. Другая сторона это настройка политики безопасности. Для создания разумной политики безопасности давайте вспомним, что уже было настроено. Это рассмотрение относится к обеим концам соединения. Каждый отправляемый IP пакет имеет заголовок, содержащий информацию о пакете. Заголовок включает IP адреса источника и назначения. Как мы уже знаем, приватные IP адреса, такие как не могут появиться в интернет. Они должны быть сначала включены внутрь другого пакета. В этом пакете приватные IP адреса источника и назначения заменяются публичными IP адресами. То есть исходящий пакет, который выглядит примерно так: будет инкапсулирован в другой пакет, выглядящий примерно так: Как вы можете видеть, теперь у пакета есть реальный IP адрес, исходный пакет был включен в этот пакет в виде данных, которые передаются через интернет. Конечно, мы хотим зашифровать весь трафик между VPN. Вы можете сформулировать это на словах так: расшифровать его, используя необходимые параметры безопасности. расшифровать его, используя необходимые параметры безопасности. Это похоже на желаемое, но не совсем то. Если вы сделаете это, весь трафик от и к даже если он не является частью VPN, будет зашифрован. Правильная политика такова: в нем инкапсулирован другой пакет и адрес назначения зашифровать его, используя необходимые параметры безопасности. в нем инкапсулирован другой пакет и адрес назначения зашифровать его, используя необходимые параметры безопасности. Тонкое, но необходимое различие. Политика безопасности также устанавливается с использованием setkey 8. В setkey 8 предусмотрен язык определения политики setkey 8. Вы можете или ввести инструкции по настройке со стандартного ввода, или использовать параметр для задания файла, содержащего эти инструкции. spdadd /32 /32 ipencap - P out ipsec /require; Поместите эти команды в файл например, указывает setkey 8 добавить правило к базе данных политики безопасности. Остальная часть строки указывает какие пакеты будут соответствовать политике. это IP адреса и сетевые маски, определяющие сети или хосты, к которым будет применяться данная политика. В данном случае мы хотим применить их к трафику между этими двумя хостами. Параметр сообщает ядру, что эта политика должна применяться только к пакетам, инкапсулирующим другие пакеты. Параметр сообщает, что эта политика применяется к исходящим пакетам, и то, что пакеты будут зашифрованы. Оставшаяся часть строки определяет, как эти пакеты будут зашифрованы. Будет использоваться протокол показывает, что пакет в дальнейшем будет инкапсулирован в IPsec пакет. Повторное использование предназначено для выбора используемых параметров безопасности, и наконец параметр разрешает шифрование пакетов, попадающих под это правило. Это правило соответствует только исходящим пакетам. Вам потребуется похожее правило, соответствующее входящим пакетам. spdadd /32 /32 ipencap - P in ipsec /require; Обратите внимание, что вместо и IP адреса переставлены. потребуются похожие правила. spdadd /32 /32 ipencap - P out ipsec /require; spdadd /32 /32 ipencap - P in ipsec /require; Наконец, вам потребуется добавить правила к брандмауэру для включения прохождения пакетов ESP и IPENCAP в обе стороны. На обеих хостах потребуется добавить следующие правила: Поскольку правила симметричны, можно использовать их без изменения на обеих хостах Когда эти пакеты будут получены на удаленном конце VPN соединения, они будут расшифрованы используя параметры безопасности, о которых договорился racoon. Затем они будут переданы интерфейсу который развернет второй слой, оставив пакет с внутренними адресами, который сможет попасть во внутреннюю сеть. Вы можете проверить безопасность тем же ping 8, который использовался ранее. Сначала войдите на шлюз tcpdump dst host 192.168.2.1 Теперь, как видите, tcpdump 1 показывает ESP пакеты. Если вы попытаетесь просмотреть их с параметром то вероятно увидите нечто непонятное, поскольку применяется шифрование. Поздравляем. Вы только что настроили VPN между двумя удаленными сетями. на обеих шлюзах, добавив запись для каждого IP адреса удаленного хоста и секретный ключ, который будет известен им обеим. Убедитесь, что режим доступа к файлу 0600. на каждом хосте с необходимыми строками spdadd. На шлюзе 1 он будет таким: spdadd /32 /32 ipencap - P out ipsec /require; spdadd /32 /32 ipencap - P in ipsec /require; spdadd /32 /32 ipencap - P out ipsec /require; spdadd /32 /32 ipencap - P in ipsec /require; Добавьте правила к брандмауэрам обеих хостов для включения IKE, ESP и IPENCAP трафика: Двух приведенных шагов должно быть достаточно для настройки и включения VPN. Машины в каждой сети смогут обращаться друг к другу по IP адресам, и весь трафик через соединение будет автоматически надежно зашифрован. Предоставил Chern Lee. OpenSSH это набор сетевых инструментов, используемых для защищенного доступа к удаленным компьютерам. Он может быть использован в качестве непосредственной замены Кроме того, любые другие TCP/IP соединения могут быть безопасно туннелированы/перенаправлены через SSH. OpenSSH шифрует весь трафик, эффективно предотвращая кражу данных, перехват соединения и другие сетевые атаки. OpenSSH поддерживается проектом OpenBSD, он основан на SSH v1.2.12 со всеми последними исправлениями и обновлениями, совместим с протоколами SSH версий 1 и 2. OpenSSH включен в базовую систему начиная с FreeBSD 4.0. Обычно при использовании telnet 1 или rlogin 1 данные пересылаются по сети в незашифрованной форме. Перехватчик пакетов в любой точке сети между клиентом и сервером может похитить информацию о пользователе/пароле или данные, передаваемые через соединение. Для предотвращения этого OpenSSH предлагает различные методы шифрования. Убедитесь, что добавили в файл При следующей загрузке системы запущен sshd 8, даемон для OpenSSH. Вы можете также запустить sshd непосредственно, набрав в командной строке Host key not found from the list of known hosts. Are you sure you want to continue connecting yes/no? Host added to the list of known hosts. s password: split Вход продолжится так же, как если бы сессия была инициирована с использованием SSH использует систему опознавательных ключей для проверки подлинности сервера при подключении клиента. Пользователю предлагается только при первом подключении. Дальнейшие попытки входа предваряются проверкой сохраненного ключа сервера. SSH клиент сообщит вам, если сохраненный ключ будет отличаться от только что полученного. Ключи серверов сохраняются в По умолчанию серверы OpenSSH настроены на приём только соединений SSH v2. Однако клиент может выбрать между версиями 1 и 2 этого протокола. Известно, что версия 2 надёжнее и безопаснее своего предшественника. Команде ssh 1 можно указать использование определенной версии протокола, запустив ее с параметром для версии 1 или 2 соответственно. Команда scp 1 работает подобно rcp 1 ; она копирует файл с удаленного компьютера, но делает это безопасным способом. Поскольку в предыдущем примере ключ сервера уже был сохранен, в этом примере он проверяется при использовании scp 1. Параметры, передаваемые scp 1, похожи на параметры cp 1, с файлом или файлами в качестве первого аргумента и приемником копирования во втором. Поскольку файлы файлы передаются по сети через SSH, один или более аргументов принимают форму используется для настройки клиента, а дают дополнительные возможности настройки. Вместо использования паролей, с помощью ssh-keygen 1 пользователи могут аутентифицироваться ключами RSA: Initializing random number Generating p:. distance 66 Generating distance 498 Computing the Key generation complete. Enter file in which to save the key /identity: Enter passphrase: Enter the same passphrase again: Your identification has been saved in ssh-keygen 1 создаст пару публичного и приватного ключей, используемых для аутентификации. Приватный ключ сохраняется в Для включения аутентификации по ключам публичный ключ должен быть помещен в на удаленном компьютере. Это позволяет соединяться с удаленным компьютером с помощью RSA аутентификации вместо паролей. приведет к созданию RSA ключей, используемых SSH протоколом версии 1. Если вы хотите использовать RSA ключи с SSH протоколом версии 2, используйте команду Если при генерации ключей был использован пароль, каждый раз для при использовании приватного ключа он будет запрашиваться у пользователя. Эта команда создаст публичный/приватный ключи DSA для использования только с SSH протоколом версии 2. Публичный ключ сохраняется в на удаленном компьютере. Утилиты ssh-agent 1 и ssh-add 1 используются для управления множеством защищенных паролем приватных ключей. OpenSSH, установленных в системе, для решения проблем обратитесь к странице справочника ssh-keygen 1. OpenSSH поддерживает возможность создания туннеля для пропуска соединения по другому протоколу через защищенную сессию. использовать версию 2 протокола не используйте этот параметр, если работаете со старыми SSH серверами. Означает использование в не-командном режиме, только для туннелирования. Если этот параметр опущен, запустит обычную сессию. запускаться в фоновом режиме. Затем все принятые на локальном хосту/порту соединения переправляются на через SSH на определенный удаленный хост и порт. удаленного компьютера. Поскольку telnet, будет создано защищенное соединение telnet через туннель SSH. Этот метод можно использовать для любого числа небезопасных протоколов, таких как SMTP, POP3, FTP, и так далее. Пример 14-1. Использование SSH для создания защищенного туннеля на SMTP Trying Connected to localhost. Escape character is. 220 ESMTP Этот метод можно использовать вместе с ssh-keygen 1 и дополнительными пользовательскими учётными записями для создания более удобного автоматического SSH туннелирования. Ключи могут быть использованы вместо паролей, и туннели могут запускаться от отдельных пользователей. На работе находится SSH сервер, принимающий соединения снаружи. В этой же офисной сети находится почтовый сервер, поддерживающий протокол POP3. Сеть или сетевое соединение между вашим домом и офисом могут быть или не быть полностью доверяемыми. По этой причине вам потребуется проверять почту через защищенное соединение. Решение состоит в создании SSH соединения к офисному серверу SSH и туннелирование через него к почтовому серверу. Когда туннель включен и работает, вы можете настроить почтовый клиент для отправки запросов POP3 на порт 2110. Соединение будет безопасно переправлено через туннель на Некоторые сетевые администраторы устанавливают на брандмауэрах драконовские правила, фильтруя не только входящие соединения, но и исходящие. Вам может быть разрешен доступ к удаленным компьютерам только по портам 22 и 80, для SSH и просмотра сайтов. Вам может потребоваться доступ к другому возможно, не относящемуся к работе сервису, такому как Ogg Vorbis для прослушивания музыки. Если этот сервер Ogg Vorbis выдает поток не с портов 22 или 80, вы не сможете получить к нему доступ. Решение состоит в создании SSH соединения с компьютером вне брандмауэра и использование его для туннелирования сервера Ogg Vorbis. порт 8888, который будет перенаправлен на порт 8000, успешно обойдя брандмауэр. 14.11.8. Параметр ограничения пользователей Зачастую хорошие результаты даёт ограничение того, какие именно пользователи и откуда могут регистрироваться в системе. Задание параметра является хорошим способом добиться этого. К примеру, для разрешения регистрации только пользователю AllowUsers root192.168.1.32 из любой точки, просто укажите имя пользователя: Несколько пользователей должны перечислять в одной строке, как здесь: AllowUsers root192.168.1.32 admin Замечание: Важно, чтобы бы перечислили всех пользователей, которые должны регистрироваться на этой машине; в противном случае они будут заблокированы. вы должны указать sshd 8 на повторную загрузку конфигурационных файлов, выполнив следующую команду: Предоставил Tom Rhodes. В дополнение к другим расширениям файловой системы, таким как снимки snapshots, FreeBSD 5.0 и более поздние версии системы предлагают защиту с помощью списков контроля доступа файловой системы File System Access Control Lists, ACLs Списки контроля доступа расширяют стандартную модель прав UNIX высоко совместимым POSIX.1e способом. Эта возможность позволяет администратору получить преимущество от использования более интеллектуальной модели безопасности. должна быть добавлена в файл настройки ядра. Если параметр не добавлен, при попытке монтирования систем, поддерживающих ACL появится предупреждающее сообщение. Этот параметр включен в ядро основывается на дополнительных атрибутах, встроенных в файловую систему. Дополнительные атрибуты поддерживаются по умолчанию следующим поколением файловых систем UNIX, UFS2 Производительность дополнительных атрибутов в UFS2 также существенно выше. По этим причинам для работы с списками контроля доступа предпочтительно использование UFS2 Этот флаг также можно сделать постоянным с помощью tunefs 8, изменив флаг ACL в заголовке файловой системы. Вообще говоря, использование флага в суперблоке предпочтительно по нескольким причинам: нельзя включить на корневой файловой системе после загрузки. Это также означает, что вы не можете изменить флаг на используемой файловой системе. или при смене порядка устройств. Это предотвращает случайное монтирование файловой системы без ACL которое может повлечь за собой проблемы с безопасностью. для включения флага без полного перемонтирования, но считаем, что желательно исключить случайное монтирование без ACL поскольку вы можете попасть в неприятную ситуацию, если включите ACL затем выключите их, затем опять включите без сброса расширенных атрибутов. Обычно, как только вы включили ACL в файловой системе, они не должны быть выключены, поскольку получающаяся защита файлов может быть не совместима с той, что применяется пользователями системы, и повторное включение ACL может подключить предыдущие списки контроля доступа к файлам, права на которые изменены, что приведет к непредсказуемому поведению. при просмотре прав на файлы. Например: Здесь мы видим, что каталоги 14.12.1. Использование ACL файловой системы можно просмотреть с помощью утилиты getfacl 1. Например, для просмотра настроек ACL может использоваться команда: из файла или файловой системы. Более предпочтительный метод это использование параметра который оставит необходимые для работы ACL setfacl - m u:trhodes:rwx, group:web:r-, o::- по умолчанию. Поскольку предустановленных записей не было они были удалены предыдущей командой, эта команда восстановит параметры по умолчанию и задаст приведенные параметры. Имейте ввиду, при добавлении пользователя или группы, которых нет в системе, на Текст предоставил Том Родес. В последние годы в области информационной безопасности произошло много улучшений, касающихся выработки оценки уязвимости. Угроза проникновения в систему увеличивается вместе с установкой и настройкой утилит сторонних разработчиков, какой бы современной операционной системы это ни касалось. Оценка уязвимости является ключевым фактором обеспечения защиты, и хотя для базового комплекта FreeBSD выпускаются бюллетени безопасности, но делать это для каждой сторонней утилиты выше возможностей участников Проекта FreeBSD. Существует способ смягчения уязвимостей программного обеспечения сторонних разработчиков и предупреждения администраторов об известных проблемах с безопасностью. Во FreeBSD существует утилита под названием Portaudit, которая служит исключительно этой цели. обращается к базе данных, обновляемой и поддерживаемой Группой информационной безопасности FreeBSD и разработчиками портов, для получения информации об известных проблемах с защитой. Для того, чтобы приступить к использованию Portaudit, необходимо установить его из Коллекции Портов: В процессе установки будут обновлены конфигурационные файлы для periodic 8, в которые будет добавлена выдача Portaudit при ежедневном её запуске. Проверьте, что ежедневные сообщения электронной почты, касающиеся безопасности, которые посылаются на адрес прочитываются. Другой дополнительной настройки больше не понадобится. После установки администратор должен обновить базу данных, размещаемую в локальном каталоге выполнив следующую команду: Замечание: База данных будет автоматически обновлена при запуске periodic 8 ; таким образом, предыдущая команду можно полностью опустить. Она требуется только для следующих примеров. Для аудита утилит сторонних разработчиков, установленных как часть Коллекции Портов, администратору достаточно запускать только следующую команду: Affected package: cups-base-1.1.22.01 Type of problem: cups-base - - HPGL buffer overflow vulnerability. Reference: 1 problems in your installed packages found. You are advised to update or deinstall the affected packages immediately. администратор может получить более подробную информацию о показанной уязвимости. В неё войдёт перечисление версий, затронутых соответствующей версией порта FreeBSD, а также другие Web-сайты, которые могут содержать бюллетени безопасности. Если описывать вкратце, то Portaudit является мощной и, при использовании вместе с портом Portupgrade, чрезвычайно полезной утилитой. Предоставил Tom Rhodes. Как многие и высококачественные операционные системы, FreeBSD публикует Сообщения безопасности Security Advisories. Эти сообщения обычно отправляются по почте в списки рассылки, посвященные безопасности и публикуются в списке проблем только после выхода исправлений к соответствующим релизам. В этом разделе разъясняется, что такое сообщения безопасности, как их читать и какие меры принимать для исправления системы. Сообщение безопасности FreeBSD выглядит подобно сообщению ниже, взятому из списка рассылки freebsd-security-notifications. Security Advisory The FreeBSD Project Topic: denial of service due to some problem Category: core Module: sys Announced: 2003-09-23 Credits: PersonEMAIL-ADDRESS Affects: All releases of FreeBSD FreeBSD 4-STABLE prior to the correction date Corrected: 2003-09-23 16:42:59 UTC RELENG4, 4.9-PRERELEASE 2003-09-23 20:08:42 UTC RELENG51, 5.1-RELEASE-p6 2003-09-23 20:07:06 UTC RELENG50, 5.0-RELEASE-p15 2003-09-23 16:44:58 UTC RELENG48, 4.8-RELEASE-p8 2003-09-23 16:47:34 UTC RELENG47, 4.7-RELEASE-p18 2003-09-23 16:49:46 UTC RELENG46, 4.6-RELEASE-p21 2003-09-23 16:51:24 UTC RELENG45, 4.5-RELEASE-p33 2003-09-23 16:52:45 UTC RELENG44, 4.4-RELEASE-p43 2003-09-23 16:54:39 UTC RELENG43, 4.3-RELEASE-p39 FreeBSD only: NO For general information regarding FreeBSD Security Advisories, including descriptions of the fields above, security branches, and the following sections, please visit /security/. I. Background II. Problem Description III. Impact 11 IV. Workaround 12 V. Solution 13 VI. Correction details 14 VII. References 15 показывает в чем именно заключается проблема. Это обычно введение в сообщение безопасности, упоминающее утилиту, в которой возникла ошибка. означает, что уязвимость затрагивает основной компонент операционной системы FreeBSD. Категория означает, что уязвимость затрагивает программы, предоставленные проекту FreeBSD, например sendmail. Наконец, категория означает, что уязвимость затрагивает программное обеспечение, доступное из Коллекции Портов. указывает на местоположение компонента, например В этом примере мы видим, что затронут модуль следовательно, эта уязвимость относится к компоненту, используемому в ядре. отражает дату публикации сообщения безопасности, или его анонсирования. Это означает, что команда обеспечения безопасности убедилась, что проблема существует и что патч помещён в хранилище исходных текстов FreeBSD. упоминает частное лицо или организацию, обнаружившую уязвимость и сообщившую о ней. дает информацию о релизах FreeBSD, к которым относится данная уязвимость. Для базовой системы, просмотр вывода команды для файлов, затронутых уязвимостью, поможет определить ревизию. Номер версии портов приведен после имени порта в каталоге Если система не синхронизируется с CVS хранилищем FreeBSD и не пересобирается ежедневно, высок шанс, что она затронута уязвимостью. показывает дату, время, смещение во времени и релиз, в котором исправлена ошибка. показывает, существует ли эта уязвимость только в FreeBSD, или затрагивает и другие системы. дает информацию именно о той утилите, для которой выпущено сообщение. Как правило информация о том, зачем утилита присутствует в FreeBSD, для чего она используется, и немного информации о том, как появилась эта утилита. дает более глубокие разъяснения возникшей проблемы. Оно может включать информацию об ошибочном коде, или даже о том, как утилита может быть использована для создания бреши в системе безопасности. описывает тип воздействия, который проблема может оказать на систему. Это может быть все, что угодно, от атаки на отказ в обслуживании до получения пользователями дополнительных привилегий, или даже получения атакующим прав суперпользователя. предлагает тем, системным администраторам, которые не могут обновить систему, обходной путь решения проблемы. Он может пригодиться при недостатке времени, отсутствии подключения к сети или по массе других причин. В любом случае, к безопасности нельзя относиться несерьезно, и необходимо либо применить указанный обходной путь, либо исправить систему. предлагает инструкции по исправлению затронутой системы. Это пошаговое руководство, протестированный метод восстановления безопасности системы. имя релиза с точками, замененными на символы подчеркивания. Здесь также показан номер ревизии каждого файла из каждой ветви. обычно упоминает другие источники информации. Это могут быть Web-страницы, книги, списки рассылки и группы новостей. Текст предоставил Том Родес. Учёт используемых процессами ресурсов представляет собой метод защиты, при котором администратор может отслеживать использование системных ресурсов и их распределение между пользователями для нужд системного мониторинга и минимального отслеживания команд пользователей. На самом деле здесь есть свои положительный и отрицательные моменты. Положительной стороной является то, что проникновение может быть отслежено до первоначальной точки входа. Отрицательной стороной является объём протоколов, который генерируется при мониторинге, и соответствующие требования к дисковому пространству. В этом разделе администратору даются основы учёта ресурсов процессов. Прежде чем использовать систему учёта ресурсов, её необходимо активировать. Для этого выполните следующие команды: команд и так далее. Все протоколы учёта ведутся в формате, недоступном для чтения человеком, и могут просматриваться при помощи утилиты sa 8. Запущенная без параметров, выдаст информацию, относящуюся к количеству вызовов в расчёте на каждого пользователя, общее затраченное время в минутах, общее время CPU и пользователя в минутах, среднее количество операций ввода/вывода и так далее. Для просмотра информации о запущенных командах, необходимо воспользоваться утилитой lastcomm 1. Команду можно использовать, например, для выдачи списка директив, выданных пользователями определённого терминала ttys 5: Существует многие другие полезные параметры, которые описаны на соответствующих справочных страницах lastcomm 1, acct 5 и sa 8. Написал Tom Rhodes. Перевод на русский язык: Денис Пеплин. FreeBSD 5.X представляет новые расширения системы безопасности от проекта TrustedBSD, основанные на документах POSIX.1e. Два из наиболее важных нововведений в механизмах безопасности это списки контроля доступа файловой системы Access Control Lists, ACLs и принудительный контроль доступа Mandatory Access Control, MAC Инфраструктура позволяет загружать новые модули контроля доступа, реализуя новые политики безопасности. Некоторые из них предоставляют защиту ключевых подсистем, защищая определенный сервис, в то время как другие предоставляют исчерпывающую систему безопасности с метками на всех субъектах и объектах. Контроль называется принудительным, поскольку применение контроля производится администраторами и системой, и не зависит от решения пользователей, как это происходит при обычном контроле доступа Discretionary Access Control, DAC стандартные файловые и System V IPC права в FreeBSD. Вся эта глава фокусируется на инфраструктуре принудительного контроля доступа и настройке подключаемых модулей, реализующих различные политики безопасности. включены в настоящее время в FreeBSD, какие политики с ними связаны. различие между политиками с метками label и без меток. Как настроить различные политики, используемые модулями MAC Как реализовать более защищенную среду, используя инфраструктуру MAC чтобы убедиться, что инфраструктура была реализована правильно. Ознакомиться с основами настройки/компилирования ядра Гл. 8. Иметь некоторые понятия о безопасности и как она относится к FreeBSD Гл. 14. Внимание: Неправильное использование информации этой главы может вызвать потерю доступа к системе, проблемы у пользователей, или невозможность запуска XFree86. Что более важно, MAC не должен восприниматься как полная защита системы. Инфраструктура MAC лишь усиливает имеющуюся систему безопасности: без применения методов защиты и регулярных проверок, система никогда не станет полностью защищенной. Необходимо также учесть, что примеры, приведенные в этой главе, это всего лишь примеры. Не рекомендуется дублирование этих настроек для реальных задач. Реализация политик безопасности требует вдумчивого планирования. Тот, кто не понял полностью как все это на самом деле работает, может столкнуться с необходимостью повторной полной перенастройки системы безопасности для многих файлов и каталогов. В этой главе охвачен широкий спектр вопросов безопасности, относящихся к инфраструктуре MAC однако разработка политик MAC не будет затронута. Несколько модулей, включенных в инфраструктуру MAC имеют особые характеристики, которые предназначены для тестирования и разработки новых модулей. Это относится к модулям/политикам mactest 4, macstub 4 и macnone 4. За дальнейшей информацией по этим модулям и различным предоставляемым ими механизмам, обратитесь к соответствующим страницам справочника. Перед чтением этой главы необходимо ознакомиться с некоторыми ключевыми терминами. Это возможно разрешит возникающие вопросы и предотвратит перегрузку материала новыми терминами и информацией. отдел compartment: Отдел это набор программ и данных, которые необходимо отделить, и где пользователи получают явный доступ к отдельным компонентам системы. Отдел представляет группирование, например рабочую группу, департамент, проект или тему. С использованием отделов возможна реализация политики с явно определенным доступом. целостность integrity: Целостность, как ключевая концепция, это уровень доверия, который может быть присвоен данным. Поскольку целостность данных повышается, это дает возможность доверять данным. метка label: Метка является инструментом безопасности, она может быть применена к файлам, каталогам и другим сущностям системы. Ее можно представить как штамп конфиденциальности; метка, помещенная на файл, описывает уровень секретности данного файла и разрешит доступ только файлам, пользователям, ресурсам и т.д. с теми же или меньшими установками безопасности. Некоторые из политик могут обрабатывать метки различными способами; это будет обсуждаться в разделе политик ниже. это параметр файловой системы, который может быть установлен в однопользовательском режиме с помощью утилиты tunefs 8, во время загрузки через файл fstab 5, или при создании новой файловой системы. Этот параметр позволяет администратору помещать различные метки MAC на различные объекты. разрешает помещение множественных MAC меток на файлы и каталоги файловой системы. Этот параметр применим только к политикам с метками. объект object: Объект или системный объект это сущность, через которую информация проходит к субъекту. Это могут быть каталоги, файлы, поля, экраны, клавиатуры, память, магнитные накопители, принтеры или любые другие устройства хранения/перемещения данных. В сущности это контейнер данных или ресурс системы; доступ к объекту фактически означает доступ к данным. политика policy: Набор правил, определяющих как достичь объекта. Политика обычно документирует обращение с определенными элементами. В этой главе политика будет означать политику безопасности ; т.е. коллекцию правил, которые будут контролировать поток данных и определять кто будет иметь доступ к этим данным. Уровень чувствительности это термин, используемый для описания того, насколько важны или секретны данные. Увеличение уровня чувствительности означает важность данных. одиночная метка single label: означает, что вся файловая система использует одну метку для определения доступа всего потока данных. Когда файловая система использует эту установку, что происходит всегда, если не установлен параметр ко всем файлам будет применяться одна и та же установка метки. субъект subject: субъект это любая активная сущность, вызывающая перемещение информации между объектами ; т.е. пользователь, пользовательский обработчик, системный процесс и т.д. В FreeBSD это почти всегда поток, работающий в процессе или представляющий пользователя. Усвоив все эти термины, рассмотрим как MAC повышает безопасность системы в целом. Различные политики, предоставляемые инфраструктурой MAC могут быть использованы для защиты сети и файловых систем, блокирования доступа пользователей к определенным портам и сокетам, и так далее. Возможно, наилучшее использование политик это сочетание их вместе путем загрузки нескольких модулей одновременно, для создания многослойной защищенной среды. В многослойной среде безопасности несколько политик обеспечивают контролируемость защиты. Это отличается от усиления защиты, когда обычно усиливаются элементы системы, используемой в определенных целях. Единственным недостатком является дополнительная административная нагрузка в случае множественных меток файловой системы, установки сетевого доступа по пользователям, и т.д. Эти недостатки минимальны по сравнению с длительным эффектом функционирования инфраструктуры; например, возможность выбора политик, необходимых для определенных конфигураций, уменьшает потерю производительности. Возможность удаления поддержки не используемых политик может увеличить общую производительность системы, а также дает гибкость выбора. Хорошая реализация удовлетворит общие требования безопасности и будет эффективно использовать различные политики, предоставляемые инфраструктурой. Система, использующая возможности MAC должна как минимум гарантировать, что пользователю не разрешается самостоятельно изменять атрибуты безопасности; все утилиты пользователя, программы и скрипты должны работать с ограничениями доступа, налагаемыми выбранной политикой; весь контроль правил доступа MAC находится в руках системного администратора. Право выбора правильных политик безопасности принадлежит только системному администратору. В некоторых случаях может потребоваться ограничение доступа через сеть; для этого могут пригодиться macportacl 4, macifoff 4 и даже macbiba 4. В других случаях может быть необходима строгая конфиденциальность объектов в файловой системе. Для этого существуют политики macbsdextended 4 и macmls 4. Выбор политики может быть сделан на основе конфигурации сети. Возможно только определенным пользователям можно разрешить доступ через ssh 1 к сети или интернет. В таких ситуациях подойдет политика macportacl 4. Но что необходимо сделать для файловых систем? Должен ли доступ к определенным каталогам быть запрещен для других групп или определенных пользователей? Или мы должны ограничить доступ пользователей или утилит к определенным файлам путем классификации определенных объектов? В случае файловой системы, доступ может считаться конфиденциальным для отдельных пользователей, но не для всех. Например, большая команда разработчиков может быть разбита на небольшие группы. Разработчикам проекта A может быть не разрешен доступ к объектам, написанным разработчиками из проекта B. Хотя им может понадобиться доступ к объектам, созданным разработчиками проекта C; это реально встречающаяся ситуация. С помощью различных политик, предоставляемых инфраструктурой MAC пользователи могут быть разделены на эти три группы и затем получить доступ к соответствующим областям без опасности утечки информации. Таким образом, каждая политика имеет уникальный способ взаимодействия с общей безопасностью системы. Выбор политики должен быть основан на хорошо продуманной политике безопасности. Во многих случаях политика должна быть полностью пересмотрена и реализована заново для всей системы. Понимание различных политик, предоставляемых инфраструктурой MAC поможет администраторам выбрать лучшую политику в своей ситуации. необходимо добавить следующий параметр ядра перед тем, как пробовать какие-либо из примеров или применять информацию этой главы: Затем необходимо пересобрать и переустановить ядро. сообщают, что они могут быть встроены в ядро, возможна блокировка доступа системы к сети и другие побочные эффекты. Включение MAC очень похоже на включение брандмауэра, но необходимо быть внимательным, чтобы полностью не заблокировать систему. Необходимо предусмотреть возможность возврата к предыдущей конфигурации, а реализация MAC удаленно должна производиться с особой осторожностью. это атрибут безопасности, который может быть применен к субъектам и объектам всей системы. При установке метки пользователь должен в точности понимать, что именно она делает. Атрибуты, доступные для объекта, зависят от загруженной политики, а политики интерпретируют свои атрибуты совершенно различным образом. Результатом недостаточного понимания настроек может стать их неправильная реализация, что может привести к неожиданному, и возможно нежелательному поведению системы. Метка безопасности на объекте используется политикой для определения правил доступа. Для некоторых политик метка сама по себе содержит всю необходимую для этого информацию, в других моделях метки могут обрабатываться как часть большого набора правил, и т.д. Например, установка метки в на файле присвоит этому файлу метку, обрабатываемую политикой Biba со значением low. Несколько политик, поддерживающих метки в FreeBSD, предоставляют три определенные предустановленные метки. Это низкая, высокая и равная метки. Хотя они устанавливают контроль различными способами для каждой политики, вы можете быть уверены, что низкая метка задаст минимальные установки, равная метка означает отмену или недействительность, а высокая метка установит максимально возможные настройки в политиках Biba и MLS При применении в файловой системе одиночной метки, только одна метка может быть использована для объектов. Это вызовет установку одних и тех же прав доступа для всей системы, и во многих случаях это все, что необходимо. Тем не менее, существует несколько ситуаций, в которых на объекты и субъекты файловой системы могут быть установлены множественные метки. В этих ситуациях необходимо с помощью tunefs 8 установить параметр может быть установлена числовая метка для указания точного уровня иерархического контроля. Этот числовой уровень используется для разделения или сортировки информации по различным группам классификации, разрешающей доступ только к этой группе или группе с более высоким уровнем. В большинстве случаев системный администратор использует только одну метку на всю файловую систему. Постойте, но это же похоже на DAC дает контроль только администратору. Это утверждение все еще верно, только контролирует и настраивает политики, так что пользователи помещаются в соответствующие категории/уровни доступа. Многие политики могут ограничить также и пользователя Базовый контроль над объектами затем передается группе, но пользователь может отменить или изменить эти настройки в любое время. Данная иерархическая модель соответствует таким политикам как Biba и MLS Практически все действия по настройке политики с метками могут быть выполнены с использованием утилит базовой системы. Эти команды обеспечивают простой интерфейс для настройки объектов или субъектов, или для изменения и проверки настроек. на системные объекты, а команда используется для установки меток на системные субъекты. Выполните: Если не произойдет ошибок, будет возвращено приглашение командной строки, как и после команд chmod 1 и chown 8. В некоторых случаях может появиться ошибка и она обычно появляется при установке или изменении метки на объект с ограничениями. 10 Системный администратор для обхода этой проблемы может использовать следующие команды: Как видно из примера выше, команда может быть использована для изменения установок политики путем присвоения иной метки вызывающему процессу. Утилита обычно используется с существующим на данный момент процессом, таким как sendmail, хотя она принимает PID вместо команды, ее действие аналогично. Если пользователи попытаются манипулировать файлами, к которым у них нет доступа в соответствии с правилами загруженных политик, функцией Пользователям необходимо иметь метки, чтобы их файлы и процессы могли правильно взаимодействовать с определенной в системе политикой безопасности. Это настраивается через файл путем использования классов. Каждая политика, использующая метки, реализует установку класса пользователя. Пример записи, содержащей все политики, приведенные ниже: default::copyright/etc/COPYRIGHT::welcome/etc/motd::setenvMAIL/var/mail/, BLOCKSIZEK::path/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin::manpath/usr/share/man/usr/local/man::nologin/usr/sbin/nologin::cputime1h30m::datasize8M::vmemoryuse100M::stacksize2M::memorylocked4M::memoryuse8M::filesize8M::coredumpsize8M::openfiles24::maxproc32::priority0::requirehome::passwordtime91d::umask022::ignoretime::labelpartition/13, mls/5, biba/105-15, lomac102: по умолчанию для класса пользователя. Пользователи не смогут изменять это значение, поэтому его можно признать не опциональным. В реальной ситуации администратору никогда не потребуется включать каждую политику. Рекомендуется прочесть главу полностью перед реализацией любой из этих настроек. Замечание: Пользователи могут изменить свою метку после входа; однако политика накладывает ограничение на это изменение. В примере выше политике Biba указано, что минимальная целостность процесса 5, максимальная 15, а эффективная целостность по умолчанию 10. Процесс будет работать на уровне 10, пока метка не будет изменена, например если пользователь использует команду setpmac, которую Biba ограничит диапазоном, установленным при входе. база данных login class capability должна быть пересобрана с использованием команды и это будет отражено в каждом последующем примере главы. Полезно отметить, что количество пользователей, которым требуются различные классы, во многих сетях может быть велико. Необходимо тщательное планирование, поскольку управление такой сетью может серьезно усложниться. В будущих версиях FreeBSD появится новый способ связывания пользователей с метками; однако, он будет доступен только через некоторое время после выхода FreeBSD 5.3. Метки также могут быть установлены на сетевые интерфейсы, для контроля потока данных в сети. Во всех случаях они функционируют аналогично тому, как политики по отношению к объектам. Пользователи с высокими установками, например, не смогут получить доступ к сетевым интерфейсам с низкими установками. на интерфейс bge 4. При использовании метки, подобной вся метка должна быть взята в кавычки, иначе будет выдано сообщение об ошибке. Каждая политика, использующая метки, снабжена переменной которая может быть использована для отключения MAC меток на сетевых интерфейсах. Установка метки в будет иметь подобный эффект. Просмотрите вывод команды страницы справочника для политик, или дальнейшую информацию из этой главы по этим переменным. Но что это означает для администратора? Существуют несколько различий между политиками, каждая из которых правильна сама по себе, но имеет свои доводы за и против относительно гибкости модели безопасности системы. одиночная метка разрешает использование только одной метки, например для каждого объекта или субъекта. Ее преимущество в меньшей нагрузке на системного администратора, а недостаток в малой гибкости политик, поддерживающих метки. Многие администраторы в своих политиках безопасности могут предпочесть использование параметра в то время как со стандартным параметром возможна только одна метка на весь раздел. Параметры требуются только для политик, реализующих метки, включая Biba, Lomac, MLS может вообще не потребоваться. Предположим следующую ситуацию и модель безопасности: FreeBSD веб-сервер, использующий инфраструктуру MAC и набор различных политик. Этому компьютеру потребуется лишь одна метка, для всей системы. Файловой системе не нужен параметр поскольку по умолчанию работает одиночная метка. Но поскольку этот компьютер будет веб сервером, процесс веб сервера должен быть запущен с для предотвращения записи. Политика Biba и то, как она работает, будет обсуждаться позже, поэтому предыдущий комментарий сложно интерпретировать; просто продолжайте чтение. Сервер может использовать дисковый раздел с установленной меткой для большинства, если не для всех своих операций. В этом примере отсутствуют многие детали, такие как ограничения на данные, конфигурация системы и установки пользователей; однако, это лишь предварительный пример. Если используется любая из политик, не поддерживающих метки, параметр не требуется. Сюда включаются политики Необходимо также отметить, что использование параметра на разделе и установление модели безопасности, основанной на функциональности может повлечь за собой множество дополнительной административной работы, поскольку всему в файловой системе должны быть присвоены метки. Это включает каталоги, файлы, и даже файлы устройств. на файловых системах. Это может быть сделано только в однопользовательском режиме: Это не требуется для файловой системы подкачки. на корневой раздел. В данном случае обратитесь к Разд. 15.16. Независимо от загрузки модулей, существует несколько частей MAC которые могут быть настроены с использованием интерфейса Эти переменные описаны ниже и во всех случаях значение 1 означает включение, а 0 - - отключение: для процессов, использующих средства межпроцессного взаимодействия. для действий системы, таких как учет accounting и перезагрузка. для системы виртуальной памяти. Они обычно попадают в дерево Для просмотра всех переменных MAC используйте следующую команду: Это должно быть интерпретировано так, что все основные политики MAC включены по умолчанию. Если модули встроены в ядро, система будет заблокирована, и скорее всего не сможет связаться с локальной сетью или с интернет, и т.д. Поэтому встраивание модулей в ядро не рекомендуется. Не потому, что это ограничит возможность отключения командой а потому, что включение политик в виде модулей позволит администратору переключать политики системы без необходимости пересборки и переустановки новой системы. Каждый модуль, включенный в инфраструктуру MAC может быть или встроен в ядро, как упоминалось выше, или загружен в виде модуля ядра. Рекомендуется добавление имени модуля в файл этот модуль будет активирован в самом начале загрузки. и их возможности. Реализация этих возможностей в определенных ситуациях также будет обсуждаться в этой главе. Некоторые модули поддерживают использование меток, которые контролируют доступ путем применения правил вида это разрешено, а это нет. Настройка меток может контролировать доступ к файлам, сетевым коммуникациям и т.д. В предыдущем разделе было показано как флаг может быть установлен на файловые системы для включения контроля доступа по файлам или по разделам. Конфигурация с одной меткой не допускает применение нескольких меток в системе, поэтому параметр Он не требует установки меток и может прозрачно работать с другими модулями. После загрузки модуля, для управления им могут быть использованы следующие переменные включит модуль с настройками по умолчанию. Эти настройки запрещают пользователям просмотр процессов и сокетов, принадлежащих другим пользователям. позволит исключить определенные группы из этой политики. Для исключения определенной группы, используйте переменную В примере выше необходимо заменить используется для исключения определенной основной группы из этой политики. При использовании этой переменной может быть не установлена. Необходимо отметить, что пользователь не является исключением из этой политики. Это одно из самых существенных различий между MAC версией и обычными переменными, существующими по умолчанию: Модуль macbsdextended 4 включает брандмауэр файловой системы. Политика этого модуля является расширением стандартной модели разрешений файловой системы, позволяя администратору создавать набор правил для защиты файлов, утилит и каталогов иерархии файловой системы в стиле брандмауэра. Политика может быть создана с помощью утилиты, ugidfw 8, синтаксис которой похож на синтаксис ipfw 8. Другие инструменты могут быть написаны с использованием функций библиотеки libugidfw 3. При работе с этим модулем необходимо соблюдать особую осторожность; некорректное его использование может заблокировать доступ к отдельным частям файловой системы. Как и можно было ожидать, правила не определены. Это означает, что доступ полностью открыт. Для создания правила, которое заблокирует доступ всех пользователей, но не повлияет на просто запустите следующую команду: Замечание: В релизах FreeBSD до 5.3, параметр не существует. Вместо него необходимо использовать Это очень плохая идея, поскольку такое правило запретит пользователям использовать даже самые простые команды, такие как Более патриотический список правил может быть таким: включая просмотр подкаталогов, к домашнему каталогу пользователя Это включит те ограничения, о которых говорилось выше, для всех пользователей кроме одного. эти изменения не повлияют. Материал выше должен дать общую идею как модуль macbsdextended 4 может быть использован в качестве средства защиты файловой системы. За дальнейшей информацией обращайтесь к страницам справочника macbsdextended 4 и ugidfw 8. Модуль macifoff 4 существует только для отключения сетевых интерфейсов в работающей системе и удержания их от отправки пакетов во время начальной загрузки. Это не требует установления в системе каких-либо меток, нет и зависимости от других модулей MAC включает/выключает весь трафик на loopback lo 4 интерфейсе. включает/выключает весь трафик на интерфейсе Berkeley Packet Filter bpf 4. включает/выключает весь трафик на всех других интерфейсах. Одно из наиболее частых использований macifoff 4 это сетевой мониторинг в среде, где сетевой трафик не должен быть разрешен во время загрузки. Другое предлагаемое применение это написание скрипта, использующего для автоматического блокирования сетевого трафика, если будут обнаружены новые или измененные файлы в защищаемых каталогах. используя различные переменные По сути macportacl 4 делает возможной привязку к привилегированным портам, т.е. к портам с номерами меньше 1024 для не- на всех сокетах. Доступны следующие переменные включает/отключает политику целиком. 11 установит наибольший номер порта, для которого macportacl 4 включает защиту. если установлена в ненулевое значение, исключает пользователя задает действующую политику macportacl: см. ниже. это текстовая строка в форме с таким количеством правил, которое требуется. Каждое правило задается в формате: в качестве id пользователя или группы соответственно. Параметр он может принимать значения задает номер порта, к которому разрешается привязка указанного пользователя или группы. Замечание: Поскольку набор правил интерпретируется непосредственно ядром, для ID пользователя, группы и номера порта могут быть использованы только числовые значения. Т.е. имена пользователей, групп и сервисов портов не могут быть использованы. По умолчанию в UNIX - подобных системах порты с номерами менее чем 1024 могут быть использованы только привилегированными процессами, т.е. теми, что запущены от С macportacl 4 для разрешения привязки непривилегированных процессов к портам с номерами ниже 1024 эти стандартные ограничения UNIX должны быть отменены. Это может быть выполнено путем установки переменных sysctl 8 Обратитесь к примерам ниже или к странице справочника macportacl 4 за дальнейшей информацией. Сначала мы настраиваем macportacl 4 для работы со стандартными привилегированными портами и отмены обычных ограничений UNIX на привязку. должен быть исключен из этой политики, для этого переменная установлена в ненулевое значение. Модуль macportacl 4 теперь настроен на то поведение UNIX - подобных систем по умолчанию. привязку к порту 80. Теперь пользователь sysctl uid:1001:tcp:110, uid:1001:tcp:995 портам 110 pop3 и 995 pop3s. Это позволит данному пользователю запустить сервер, принимающий соединения на портах 110 и 995. Замечание: Это лишь примерные настройки, они не должны использоваться непосредственно в реальных задачах. Цель изложения в том, чтобы документировать и показать синтаксис, а также примеры реализации и тестирования. Для правильной работы этих политик необходимо выполнить некоторые приготовления. или другой подобный класс. Наличие класса не обязательно, он приводится здесь в качестве примера; другие конфигурации могут использовать другое имя класса. должен использовать приведенные ниже настройки и определения. Некоторые из них могут быть изменены, но строка, определяющая метку по умолчанию, необходима и должна быть оставлена. insecure::copyright/etc/COPYRIGHT::welcome/etc/motd::setenvMAIL/var/mail/, BLOCKSIZEK::path/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin::manpath/usr/share/man/usr/local/man::nologin/usr/sbin/nologin::cputime1h30m::datasize8M::vmemoryuse100M::stacksize2M::memorylocked4M::memoryuse8M::filesize8M::coredumpsize8M::openfiles24::maxproc32::priority0::requirehome::passwordtime91d::umask022::ignoretime::labelpartition/13, mls/5, biba/low: Перед тем, как переключать пользователей на новый класс, необходимо запустить команду capmkdb 1 на 5. также необходимо присвоить класс; иначе, почти любой команде, выполняемой от потребуется использование Убедитесь, что все разделы, на которых будут установлены метки MAC Нам необходимо сделать это, поскольку многие из примеров здесь содержат различные метки в целях тестирования. Просмотрите вывод команды в качестве необходимой предосторожности. Переключите всех пользователей, которые будут использовать новые механизмы безопасности, на этот класс. Информация по этой процедуре находится в pw 8 или vipw 8. меток. Это может быть представлено как особый тип jail 8, хотя такое сравнение едва ли подходит. Этот модуль должен быть добавлен в 5, чтобы политика была загружена и включена при загрузке системы. Большая часть настройки этой политики выполняется с помощью утилиты setpmac 8, которая будет описана ниже. Для данной политики имеется также следующая переменная Когда эта политика включена, пользователям разрешено просматривать только собственные процессы, но не разрешено пользоваться определенными утилитами. Например, пользователю из класса а также многих других команд, которые должны порождать процесс. будет добавлена к метке, установленной для пользователей класса Обратите внимание, что все процессы, порожденные пользователями класса и запускать их через скрипт, который установит правильный набор меток. Замечание: Следующие политики поддерживают целочисленные установки вместо трех меток по умолчанию. Эти опции, включая их ограничения, описываются более подробно в страницах справочника модулей. Политика macmls 4 контролирует взаимодействие субъектов и объектов системы путем применения строгой политики к потоку информации. для каждого субъекта или объекта внутри отдела compartment устанавливается уровень допуска. Поскольку количество уровней допуска может превышать шесть тысяч, для любого системного администратора задача настройки каждого субъекта или объекта может быть слишком сложной. К счастью, существуют постоянные метки, которые уже включены в эту политику. Поскольку эти метки подробно описываются в справочнике, здесь мы дадим только краткое описание: содержит минимальную настройку, что позволяет доминирование над ней всех других объектов. Все, что помечено с находится на низком уровне доступа и доступ к более высоким уровням будет запрещен. Кроме того, эта метка предотвратит запись или передачу информации объектам с более высоким уровнем доступа. должна быть помещена на объекты, являющиеся исключением из политики. это наибольший возможный уровень доступа. Объекты с этой меткой будут доминировать над всеми другими объектами системы; однако, утечка информации от них к объектам более низкого класса невозможна. Иерархические уровни безопасности с набором не иерархических категорий; Фиксированные правила: нет чтения сверху, нет записи вниз субъект может иметь доступ на чтение объектов собственного уровня или ниже, но не выше. Аналогично, субъект может иметь доступ на запись в объекты своего уровня или выше, но не наоборот.; Секретность предотвращение неавторизованного раскрытия данных; Основа для разработки систем, одновременно работающих с данными на нескольких уровнях секретности без утечки информации. используется для запрета доступа к объектам после того, как их метка изменится в меньшую сторону. используется для установки максимального количества уровней отделов на объекты; обычно это максимальное количество отделов, разрешенных в системе. существует команда setfmac 8. Для присвоения метки объекту, выполните следующую команду: выполните следующую команду: Существует метод, связанный с созданием основного файла политики в каталоге где будет определена необходимая для политики MLS информация, которая будет передана команде Этот метод будет описан после рассмотрения всех политик. Итоги: объект с низким уровнем доступа не может прочесть данные объекта с высоким уровнем доступа. Базовая политика должна устанавливать на всем, что не должно быть прочитано, даже если туда необходимо записывать. На всем, куда нельзя писать, должна быть установлена метка даже если это необходимо читать. Наконец, на всем остальном установите Все пользователи, помеченные как политику Biba. Эта политика работает в основном так же, как и MLS за исключением того, что правила потока информации изменены на противоположные. Они предназначены для предотвращения передачи потока секретной информации вверх, в то время как политика MLS предотвращает передачу потока секретной информации вниз; таким образом, большая часть этого раздела применима к обеим политикам. В среде Biba, каждому субъекту или объекту присваивается метка целостности. Эти метки состоят из иерархических уровней и не-иерархических компонентов. При возрастании уровня объекта или субъекта это повышает его целостность. обеспечивает наименьшую целостность объекта или субъекта. Установка ее на объект или субъект заблокирует их доступ к объектам или субъектам, имеющим более высокую метку. Тем не менее, у них остается доступ на чтение. должна помещаться только на объекты, исключающиеся из политики. разрешит запись в объекты с более низкой меткой, но не разрешит чтение из этих объектов. Рекомендуется помещать такую метку на объекты, влияющие на целостность всей системы. Иерархические уровни целостности с набором не иерархических категорий; Фиксированные правила: нет записи наверх, нет чтения снизу обратно MLS Субъект может иметь доступ на запись к объектам своего уровня или ниже, но не выше. Аналогично, субъект может иметь доступ на чтение к объектам своего уровня или выше, но не ниже; Целостность предотвращение неавторизованного изменения данных; Уровни целостности вместо уровней секретности MLS. может использоваться для включения/выключения политики Biba. может использоваться для отключения политики Biba на устройствах pty 4. включит отмену доступа к объектам, если метка изменена на более высокую, чем у субъекта. Для выполнения настроек политики Biba на системных объектах, применяются команды Итоги: субъект с низким уровнем целостности не может писать в субъект с высоким уровнем целостности; субъект с высоким уровнем целостности не может читать из субъекта с низким уровнем целостности. Biba, политика maclomac 4 разрешает доступ к объектам с более низким уровнем целостности только после уменьшения уровня целостности, чтобы не нарушать каких-либо правил целостности. версия политики целостности Low-watermark, чтобы не пересекаться со старой реализацией lomac 4, работает почти так же, как и Biba, за исключением использования плавающих меток для поддержки понижения метки субъекта через отдел для вспомогательной градации auxiliary grade compartment. Этот вспомогательный отдел принимает вид При включении политики lomac с вспомогательной градацией метка должна выглядеть приблизительно так: где номер 2 это вспомогательная градация. LOMAC основана на тотальной пометке всех системных объектов метками целостности, разрешая субъектам читать из объектов с более низкой степенью целостности и с уменьшением метки субъекта для предотвращения последующей записи в объекты с более высокой степенью целостности. Параметр обсуждался выше, таким образом политика может быть более совместимой и требовать меньшей первоначальной настройки, чем Biba. для установки меток на системные объекты и субъекты могут быть использованы утилиты Обратите внимание, что вспомогательная градация здесь эта возможность предоставляется только политикой MAC модулей с соответственно настроенными политиками. Используйте этот пример только для тестирования, он не предназначен для удовлетворения всех требований к защите. Реализация этих политик без понимания принципа их работы неприменима в реальных задачах. Перед началом процесса настройки, на каждую файловую систему необходимо установить параметр который упоминался в начале этой главы. Невыполнение этого требования приведет к ошибкам. insecure::copyright/etc/COPYRIGHT::welcome/etc/motd::setenvMAIL/var/mail/, BLOCKSIZEK::path/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:manpath/usr/share/man/usr/local/man::nologin/usr/sbin/nologin::cputime1h30m::datasize8M::vmemoryuse100M::stacksize2M::memorylocked4M::memoryuse8M::filesize8M::coredumpsize8M::openfiles24::maxproc32::priority0::requirehome::passwordtime91d::umask022::ignoretime::labelpartition/13, mls/5: labelmls/equal, biba/equal, partition/equal: После завершения этих действий, для пересборки базы данных должна быть выполнена следующая команда: следующие строки, чтобы необходимые модули были загружены при старте системы: Всем учетным записям, кроме или системных пользователей теперь потребуется присвоить класс login class. При отсутствии класса пользователи не смогут получить доступа к обычным командам, таким как vi 1. Следующий скрипт etc/passwd; do pw usermod x - L insecure; done; Должен быть создан файл контекста; следующий пример взят из примера политики от Robert Watson, он может быть помещен в Эта политика обеспечит безопасность путем применения ограничений на нисходящий и восходящий потоки информации в применении к каталогам и утилитам, приведенным в левой части файла. Замечание: Раскладка вышеприведенной файловой системы может быть различной для разных систем. defaultlabels file?biba,?mls defaultlabels ifnet?biba,?mls defaultlabels process?biba,?mls,?partition defaultlabels socket?biba,?mls и обычных пользователей будет смешиваться; форма приглашения поможет различить этих пользователей. biba/1515-15, mls/1515-15, partition/15 setpmac partition/15, mls/equal top Замечание: Процесс top будет уничтожен перед тем, как мы запустим другой процесс top. biba/1515-15, mls/1515-15, partition/15 1096 C: S 0:00.03 - su bash biba/1515-15, mls/1515-15, partition/15 1101 C: R 0:00.01 ps Zax Просмотр процессов всех других пользователей должен быть запрещен. Все пользователи должны видеть каждый процесс в своем разделе partition. setpmac partition/15, mls/equal, biba/highhigh-high top Политика Biba позволяет чтение объектов с более высокими метками. setpmac partition/15, mls/equal, biba/low top Политика Biba не позволяет чтение объектов с более низкими метками; тем не менее, MLS maclabel biba/lowlow-low, mls/lowlow-low PING 192.0.34.166 192.0.34.166: 56 data bytes ping: sendto: Permission denied или на любой домен по этой причине. Для устранения этой ошибки, запустите следующую команду: Она устанавливает метку интерфейса по умолчанию в незащищенный режим, так что политика Biba по умолчанию не будет применена. ifconfig bge0 maclabel biba/equallow-high, mls/equallow-high PING 192.0.34.166 192.0.34.166: 56 data bytes 64 bytes from 192.0.34.166: icmpseq0 ttl50 time204.455 ms - - 192.0.34.166 ping statistics - - 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max/stddev 204.455/204.455/204.455/0.000 ms Установив более корректную метку, мы можем использовать test1: biba/equal, mls/equal setfmac biba/low test1 test2; setfmac biba/high test4 test5; setfmac mls/low test1 test3; setfmac mls/high test2 test4 setfmac mls/equal, biba/equal test3 getfmac test? test1: biba/low, mls/low test2: biba/low, mls/high test3: biba/equal, mls/equal test4: biba/high, mls/high test5: biba/high, mls/equal chown testuser:testuser test? Теперь несколько тестов на запись: Подобно тестам на чтение, доступ на запись должен быть запрещен для пар: Будет создано отдельное хранилище для веб данных, к которому пользователи должны иметь доступ. Это позволит управлять доступом к веб данным. Предполагается, что ядро скомпилировано с поддержкой MAC для всей системы по умолчанию. класс default, необходимо внести следующие изменения: Каждого пользователя необходимо поместить в класс по умолчанию; такая команда: etc/passwd; do pw usermod x - L default; done; Теперь создадим другой класс, web, копию класса default с меткой, установленной в Создайте пользователя для работы с основными веб данными, хранящимися в репозитории cvs. Этого пользователя необходимо поместить в новый класс, на репозитории она будет той же. Веб данные должны иметь ту же метку, чтобы у пользователей был доступ к ним на чтение/запись. Веб сервер должен иметь доступ к тем же данным, к которым есть доступ у пользователей с меткой для этого необходимо понизить метку данных. Все, что потребуется, это следующий sh 1 скрипт, который может быть запущен из cron 8: PATH/bin:/usr/bin:/usr/local/bin; export PATH; CVSROOT/home/repo; export CVSROOT; cd/home/web; cvs - qR checkout - P htdocs; exit; необходимо поместить теги Id. необходимо также добавить следующую запись crontab 1: страницы каждые двенадцать часов. Это может быть сделано путем следующего изменения в скрипте В этом случае необходимо указать для хранения лог файлов каталог с меткой иначе будут возвращены ошибки Apache не сможет найти каталог с документами. Необходимо также изменить другие параметры конфигурации, включая PID или любые другие настройки для каталогов, где необходим доступ на запись. При использовании будет запрещен доступ на запись во все каталоги сервера, на которых нет метки На стадии разработки несколько пользователей сообщали о проблемах при обычных настройках. Некоторые из этих проблем приведены ниже: 15.16.1. Параметр Похоже, что каждый пятидесятый пользователь сталкивается с этой проблемой; на самом деле, и у нас была эта проблема в первых настройках. Дальнейшие наблюдения за этой так называемой ошибкой привели меня к мнению, что это результат или некорректной документации, или неправильной интерпретации этой документации. Независимо от того, почему это случилось, для решения этой проблемы могут быть предприняты следующие шаги: Перегрузитесь в однопользовательский режим. Перегрузите систему в нормальный режим. перегрузите систему опять. чтобы убедиться, что параметр был установлен на корневой файловой системе. 15.16.2. Не могу запустить XFree86 после MAC я больше не могу запускать XFree86! Для отладки попробуйте следующее: Просмотрите сообщение об ошибке; если пользователь находится в классе проблема может быть в политике Попробуйте установить класс пользователя обратно в Если это не решит проблемы, попробуйте шаг два. Дважды проверьте политики с метками. Убедитесь, что политики настроены правильно для рассматриваемого пользователя, приложения XFree86, и устройств в 15.16.3. Error: securepath3 cannot stat на другого пользователя системы, появляется сообщение об ошибке Это сообщение обычно показывается, когда у пользователя более высокая метка, чем у пользователя, которым он пытается стать. Например, у пользователя системы не может просматривать домашний каталог пользователя Это не зависит от того, использует ли пользователь или нет. В этом сценарии модель целостности Biba не позволит просматривать объекты с низким уровнем целостности. 15.16.4. Пользователя не обнаруживается. Команда Это может произойти, если политика с метками была отключена, или через sysctl 8, или путем выгрузки модуля политики. Если политика была постоянно или временно отключена, базу данных login необходимо перенастроить. Дважды проверьте чтобы убедиться, что все параметры Перевод на русский язык: Андрей Захватов. В этой главе описывается использование дисков во FreeBSD. К ним относятся диски в памяти, диски, подключенные по сети, обычные устройства хранения SCSI/IDE и устройства, использующие интерфейс USB. Терминологию, используемую во FreeBSD для описания организации данных на физическом диске разделы и слайсы. Как добавить дополнительные винчестеры к вашей системе. Как настроить FreeBSD для использования дисковых устройств USB. Как настроить виртуальные файловые системы, такие, как диски в оперативной памяти. Как использовать квоты для ограничения использования дискового пространства. Как зашифровать диски, чтобы защитить их от взлома. Как создавать и записывать CD и DVD во FreeBSD. Различные варианты использования устройств хранения для резервных копий. Как использовать программы резервного копирования, имеющиеся для FreeBSD. Как выполнять резервное копирование на дискеты. Узнать как настраивать и устанавливать новое ядро FreeBSD Гл. 8. Далее приводится список физических устройств хранения информации, которые поддерживаются во FreeBSD, и имена устройств, которые им соответствуют. Таблица 16-1. Соглашения по именованию физических дисков для Adaptec AdvancedRAID, a. 5 октября 2002 года драйвер matcd 4 был удалён из ветки FreeBSD 4.X и отсутствует во FreeBSD 5.0 и последующих релизах. Изначальный текст предоставил David OBrien. Предположим, что мы хотим установить новый диск SCSI на машину, имеющую в данный момент только один диск. Сначала выключим компьютер и установим диск в компьютер согласно инструкциям к компьютеру, контроллеру и от производителя диска. Из-за большого разнообразия этих процедур их рассмотрение выходит за рамки этого документа. После того, как вы установили диск, просмотрите файл чтобы убедиться, что новый диск был найден. Продолжая наш пример, только что добавленный диск будет называться если вы добавляете диск IDE, то устройство будет называться в системах, предшествовавших 4.0, и FreeBSD работает на IBM-PC совместимых компьютерах, поэтому она должна уметь работать с разделами PC BIOS. Однако они отличаются от традиционных разделов BSD. Диск ПК может иметь до четырёх записей разделов BIOS. Если диск на самом деле будет использоваться исключительно под FreeBSD, вы можете использовать режим dedicated. В противном случае FreeBSD будет располагаться в одном из разделов PC BIOS. Во FreeBSD разделы PC BIOS называются слайсами, чтобы не путать их с традиционными разделами BSD. Вы также можете использовать слайсы и с диском, предназначенным исключительно для FreeBSD, однако используемым в компьютере, на котором имеется дополнительная операционная система. Это является хорошим способом избежать путаницы в утилите других операционных систем, не связанных с FreeBSD. Это интерпретируется следующим образом: диск SCSI, устройство номер 1 второй диск SCSI, слайс 1 раздел PC BIOS 1, и раздел BSD В случае использования в выделенном режиме диск будет добавлен просто как Вследствие использования 32-разрядных целых чисел для адресации секторов, bsdlabel 8 называемый disklabel 8 в FreeBSD 4.X ограничен 232-1 секторами на диск, или 2TB в в большинстве случаев. Формат fdisk 8 позволяет наличие первого сектора со смещением не более 232-1 и длину не более 232-1, что ограничивает размер раздела до 2TB, а размер диска до 4TB в большинстве случаев. Формат sunlabel 8 ограничен 232-1 секторами на раздел и 8 разделами, что составляет 16TB. Для дисков большего раздела могут быть использованы разделы gpt 8. во FreeBSD версий, более старых, чем 5.2 для разбиения на разделы и разметки нового диска. Войдите как пользователь пролистайте и выберите пункт используется для выделения под FreeBSD полностью всего диска. Когда будет задан вопрос о том, хотите ли вы сохранить совместимость с другими возможными операционными системами в будущем, ответьте Запишите изменения на диск при помощи команды А теперь выйдите из редактора FDISK, нажав В этот момент вам будет задан вопрос о Master Boot Record главной загрузочной записи. Так как вы добавляете диск к уже работающей системе, выберите Теперь вам нужно выйти из sysinstall и запустить эту утилиту снова. Следуйте указаниям выше, но на этот раз выберите пункт Здесь вы создадите традиционные разделы BSD. На диске может быть до восьми разделов, имеющих метки Некоторые из меток разделов имеют особый смысл. Раздел По этой причине только ваш системный диск например, тот, с которого происходит загрузка, должен иметь раздел используется под раздел подкачки, и вы можете иметь много дисков с разделами подкачки. Раздел используется для доступа ко всему диску в режиме эксклюзивного использования или ко всему слайсу FreeBSD при работе в режиме с использованием слайсов. Остальные разделы имеют обычное предназначение. для некорневого раздела и не для раздела подкачки. Внутри редактора метки диска создайте отдельную файловую систему, нажав Когда будет задан вопрос о том, будет ли это раздел с файловой системой FS или это будет раздел подкачки, выберите и наберите точку монтирования например, При добавлении диска после установки системы, программа sysinstall не будет автоматически создавать записи в файле поэтому точка монтирования не так уж и важна. Теперь вы готовы записать новую метку на диск и создать на нем файловую систему. Сделайте это, набрав Проигнорируйте сообщения об ошибках от sysinstall о невозможности смонтировать новый раздел. Полностью выйдите из редактора метки диска и из программы и добавлении записи для вашего нового диска. Следующая настройка позволит вашему диску корректно работать с другими операционными системами, которые могут быть установлены на вашем компьютере, и не вызовет конфликта с утилитами других операционных систем. Этот способ рекомендуется использовать для установок новых дисков. Используйте режим, только если у вас есть реальные причины делать это! Инициализируем новый диск. Редактируем только что созданную метку диска и добавляем разделы. Повторяем этот шаг для всех созданных разделов. Если у вас установлен диск IDE, подставьте На системах версий ранее 4.X используйте Если вы не будете использовать новый диск совместно с другой операционной системой, то вы можете использовать режим использования. Отметьте, что этот режим может ввести в заблуждение операционные системы от Microsoft; однако информацию они не разрушат. А вот OS/2 компании IBM будет забирать себе любой раздел, который она найдет и не сможет распознать. Замечание: Начиная с FreeBSD 5.1-RELEASE, на смену старой программе disklabel 8 пришла утилита bsdlabel 8. У bsdlabel 8 отсутствуют некоторые устаревшие опции и параметры; в примере выше параметр не может использоваться с bsdlabel 8. Для получения дополнительной информации обратитесь к справочной странице п о bsdlabel 8. Оригинальный текст предоставил Christopher Shumway. Изменения внёс Jim Brown. При выборе решения для организации хранилища самыми важными характеристиками являются скорость, надежность и стоимость. Редко все эти характеристики наличествуют одновременно; обычно быстрое и надёжное устройство хранения стоит дорого, а при уменьшении стоимости в жертву приносятся скорость работы или надёжность. При проектировании описываемой далее системы в качестве самого важного фактора была выбрана её стоимость, затем быстродействие и надёжность. Скорость передачи данных для этой системы ограничивалась только пропускной способностью сети. И, хотя надёжность очень важна, CCD-диск, описываемый ниже, обслуживал работу с данными, полные копии которых уже хранились на дисках CD-R, так они могли быть с лёгкостью обновлены. При выборе решения для массового хранения данных первым шагом является определение ваших требований к нему. Если в ваших требованиях главными являются скорость или надёжность, а не стоимость, то ваш выбор будет отличаться от описываемой в этом разделе системы. Кроме системного IDE-диска, основу описываемого далее CCD-диска общим объёмом примерно в 90 Гбайт составили три IDE-диска Western Digital 30GB, 5400 RPM. В идеальном случае каждый диск IDE имеет собственный контроллер и кабель, но для минимизации стоимости дополнительные контроллеры IDE не использовались. Вместо этого диски были настроены при помощи переключателей так, что на каждом IDE-контроллере находилось по одному ведущему и одному ведомому диску. До перезагрузки BIOS системы была настроена на автоматическое распознавание подключенных дисков. Более важно то, что при перезагрузке их распознала FreeBSD: Замечание: Если FreeBSD не распознала все диски, проверьте корректность положения переключателей на них. На большинстве IDE-дисков имеется также переключатель Cable Select. Он не имеет отношения к выбору ведущего и ведомого устройств. Для получения помощи по правильному положению переключателей обратитесь к документации по устройствам. Затем определите, как сделать их частью файловой системы. Изучите справку по vinum 8 Гл. 17 и ccd 4. В нашем конкретном случае была выбрана технология ccd 4. Драйвер ccd 4 позволяет вам взять несколько идентичных дисков и объединить их в одну логическую файловую систему. Для использования ccd 4 нужно ядро со встроенной поддержкой ccd 4. Добавьте такую строку в файл конфигурации ядра, перестройте и установите новое ядро: В системах 5.X вместо этого вам нужно использовать такую строку: Замечание: Во FreeBSD 5.X нет нужды указывать количество устройств ccd 4 так как драйвер устройства ccd 4 теперь клонируется сам - - новые экземпляры устройств будут создаваться автоматически по необходимости. Во FreeBSD 3.0 и последующих версиях поддержка ccd 4 также может быть обеспечена загрузкой подгружаемого модуля ядра. которые занимают диск полностью. Замечание: Начиная с FreeBSD 5.1-RELEASE, на смену старой программе disklabel 8 пришла утилита bsdlabel 8. У bsdlabel 8 отсутствуют некоторые устаревшие опции и параметры; в примере выше параметр не может использоваться с bsdlabel 8. Для получения дополнительной информации обратитесь к справочной странице п о bsdlabel 8. Следующим шагом является изменение типа метки диска. Для редактирования дисков можно использовать утилиту disklabel 8: При этом в редакторе, задаваемом переменной окружения обычно это vi 1, открывается текущая метка каждого диска. для использования драйвером ccd 4. Как правило, он может быть скопирован с раздела Теперь метка диска должна выглядеть примерно так: может ещё не существовать, так что для его создания предварительно выполните такие команды: Замечание: Во FreeBSD 5.0 devfs 5 будет управлять файлами устройств в каталоге автоматически, так что в использовании Теперь, когда все диски размечены, вы должны построить ccd 4. Для этого используйте утилиту ccdconfig 8 с параметрами, подобными следующим: Первым аргументом является конфигурируемое устройство, в нашем случае является необязательной. Чередование для файловой системы. Оно определяет размер единицы блока данных в количестве дисковых блоков, каждый из которых обычно имеет объём в 512 байт. Таким образом, при чередовании в 32 это будет составлять 16384 байт. Опции для ccdconfig 8. Если вы хотите включить зеркалирование диска, то можете задать это здесь. В нашей конфигурации зеркалирование для ccd 4 не предусмотрено, поэтому здесь задан 0 ноль. Последним параметром для ccdconfig 8 является список устройств для объединения в массив. Для каждого устройства нужно задавать полное имя. После запуска ccdconfig 8 устройство ccd 4 будет отконфигурировано. Может будет построить файловую систему. Обратитесь к справке по команде newfs 8 для выяснения требуемых параметров, или просто запустите: Вообще говоря, вам потребуется монтировать ccd 4 при каждой перезагрузке. Для этого сначала вы должны отконфигурировать это устройство. Запишите вашу текущую конфигурацию в файл При этом ccd 4 автоматически конфигурируется так, чтобы он мог быть смонтирован. Замечание: Если при загрузке вы входите в однопользовательский режим, то перед тем, как выполнять монтирование ccd 4 по команде mount 8, вам нужно для конфигурации массива запустить следующую команду: чтобы он мог быть смонтирован во время загрузки системы: Менеджер томов Vinum является драйвером блочного устройства, который реализует виртуальные диски. Он отделяет дисковое оборудование от интерфейса блочного устройства и работает с данными таким образом, что в результате повышается гибкость, производительность и надёжность по сравнению с традиционным взглядом на дисковое хранилище как на кусок дискового пространства. vinum 8 реализует модели RAID-0, RAID-1 и RAID-5, как по отдельности, так и в комбинациях. Эти устройства самостоятельно управляют RAID подсистемой, без необходимости иметь специфичное для FreeBSD программное обеспечения управления массивом. он сам управляет большинством дисковых операций. Далее следует краткое описание установки при помощи контроллера Promise IDE После установки адаптера и запуска системы, выдаётся запрос на ввод. Следуйте указаниям для входа в настройку адаптера. Отсюда вы можете объединить все подключенные диски. После этого во FreeBSD диски будут выглядеть как один диск. Аналогично могут быть настроены и другие уровни RAID FreeBSD позволяет вам выполнять горячую замену вышедшего из строя диска. При этом требуется, чтобы вы заметили это до перезагрузки. ad6 on monster1 suffered a hard error. ad6: READ command timeout tag0 serv0 - resetting ad6: trying fallback to PIO mode ata3: resetting devices. done ad6: hard error reading fsbn 1116119 of 0-7 ad6 bn 1116119; cn 1107 tn 4 sn 11 status59 error40 ar0: WARNING - mirror lost ATA channel 0: Master: no device present Slave: acd0 HL-DT-ST CD-ROM GCR-8520B/1.00 ATA/ATAPI rev 0 ATA channel 1: Master: no device present Slave: no device present ATA channel 2: Master: ad4 MAXTOR 6L080J4/A93.0500 ATA/ATAPI rev 5 Slave: no device present ATA channel 3: Master: ad6 MAXTOR 6L080J4/A93.0500 ATA/ATAPI rev 5 Slave: no device present Сначала вам нужно отключить диск от массива, чтобы его можно было без последствий извлечь: Master: ad6 MAXTOR 6L080J4/A93.0500 ATA/ATAPI rev 5 Slave: no device present Команда перестроения будет работать, пока не закончит. Однако имеется возможность открыть другой терминал комбинацией клавиш Alt Дождитесь завершения этой операции. Предоставил Marc Fonvieille. Множество современных устройств хранения используют Universal Serial Bus USB: жесткие диски, брелоки USB, CD-R приводы, и т.д. FreeBSD предоставляет поддержку этих устройств. Драйвер umass 4 предоставляет поддержку устройств хранения USB. Если вы используете ядро, изменять что-либо в настройках не потребуется. Если вы используете настроенное ядро, убедитесь, что в файле настройки присутствуют следующие строки: Для доступа к устройствам хранения USB драйвер umass 4 использует подсистему SCSI, ваши устройства USB будут видны системе как SCSI устройства. В зависимости от чипсета USB на материнской плате, вам потребуется только один из параметров Однако, наличие обоих этих параметров не помешает. Не забудьте скомпилировать и установить новое ядро после добавления каких-либо строк. Замечание: Если ваше USB устройство это пишущий привод CD-R или DVD, необходимо добавить в ядро SCSI CD-ROM драйвер, cd 4, следующей строкой: Поскольку устройство записи видно как SCSI диск, драйвер atapicam 4 не должен использоваться в файле настройки. Поддержка USB 2.0 контроллеров предоставляется в FreeBSD 5.X, и в ветви 4.X с FreeBSD 4.10-RELEASE. Добавьте: в файл настройки ядра для поддержки USB 2.0. Обратите внимание, что драйверы uhci 4 и ohci 4 все еще нужны, если необходима поддержка USB Замечание: В FreeBSD 4.X, необходимо запустить USB даемона usbd 8, чтобы увидеть некоторые USB устройства. Для этого добавьте и перезагрузите компьютер. Конфигурация готова к тестированию, подключите устройство USB, и в буфере системных сообщений dmesg 8, диск должен отобразиться примерно так: umass0: USB Solid state disk, rev 1.10/1.00, addr 2 GEOM: create disk da0 dp0xc2d74850 da0 at umass-sim0 bus 0 target 0 lun 0 da0: Generic Traveling Disk 1.11 Removable Direct Access SCSI-2 device da0: 1.000MB/s transfers da0: 126MB 258048 512 byte sectors: 64H 32S/T 126C Конечно, производитель, имя устройства и другие детали могут отличаться в зависимости от конфигурации. Поскольку устройство USB видится как SCSI, команда может быть использована для вывода списка устройств хранения USB, подключенных к системе: Generic Traveling Disk 1.11 at scbus0 target 0 lun 0 da0, pass0 Если на диске есть файловая система, у вас должна быть возможность смонтировать ее. Разд. 16.3 поможет вам создать и отформатировать разделы на диске USB если потребуется. Если вы отключите устройство диск должен быть сначала размонтирован, вы должны увидеть в буфере системных сообщений что-то подобное: Текст предоставил Mike Meyer. Компакт-диски CD имеют несколько особенностей, отличающих их от обычных дисков. Во-первых, на них невозможно производить запись. Они спроектированы с расчетом на то, что их можно читать последовательно без задержек на перемещение головки между дорожками. К тому же их гораздо проще переносить от системы к системе, чем носители близкого объема. У CD имеются дорожки, но они представляют собой последовательность данных, читаемую последовательно, и не являются физической характеристикой диска. Для записи CD во FreeBSD вы готовите файлы данных, которые будут формировать дорожки на компакт-диске, а затем записываете дорожки на CD. Файловая система ISO 9660 была разработана с учетом этих отличий, К сожалению, она унаследовала ограничения файловых систем, которые были тогда. К счастью, она дает механизм расширений, которые позволяют правильно записанным дискам обходить эти ограничения и при этом продолжать работать с системами, которые не поддерживают эти расширения. Для создания файла данных, содержащего файловую систему ISO 9660, используется программа mkisofs 8, которая включена в порт Она имеет опции, поддерживающие различные расширения, и описана ниже. Какой инструмент использовать для записи CD, зависит от того, является ли ваше устройство для записи CD устройством ATAPI или каким-либо другим. С устройствами для записи стандарта ATAPI используется программа которая является частью комплекта поставки системы. С устройствами SCSI и USB нужно использовать поддерживает не все устройства. Для определения того, поддерживается ли устройство, посмотрите список поддерживаемых приводов CD-R/RW. Замечание: Если вы используете FreeBSD 5.X, FreeBSD 4.8-RELEASE или более новые версии, то при работе с ATAPI-оборудованием через модуль ATAPI/CAM можно использовать утилиту и другие инструменты для SCSI-приводов. Если для записи CD вам нужна программа с графическим интерфейсом пользователя, взгляните на X-CD-Roast или K3b. Они доступны в виде пакетов или из портов создаёт файловую систему ISO 9660, которая является образом дерева каталогов в пространстве имён файловой системы UNIX. В самом простом случае она используется так: содержащий файловую систему ISO 9660, которая является копией дерева каталогов Во время работы она будет преобразовывать имена файлов в имена, которые удовлетворяют ограничениям файловой системы ISO 9660, и исключит файлы, которые носят имена, неподходящие для файловой системы ISO. Для того, чтобы обойти эти ограничения, имеется несколько опций. В частности, включает использование расширений Rock Ridge, распространенных в UNIX - системах, с будут применены расширения Joliet, используемые в системах от Microsoft, а может использоваться для создания файловых систем HFS, используемых в Mac OS. Для CD, которые будут использоваться только с системами FreeBSD, может использоваться опция отменяющая все ограничения на имена файлов. При использовании с опцией генерируется образ файловой системы, идентичный начальному дереву FreeBSD, хотя при этом стандарт ISO 9660 может нарушаться в нескольких местах. Она используется для указания загрузочного образа для использования при создании загрузочного CD в стандарте El Torito. Этой опции указывается аргумент, который является маршрутом к загрузочному образу из корня дерева, записываемого на CD. По умолчанию, mkisofs 8 создает образ ISO в так называемом режиме эмуляции флоппи-диска, и потому ожидает загрузочный образ размера строго 1200, 1440 или 2880 KB. Некоторые загрузчики, в том числе и тот, что используется на дистрибутивных дисках FreeBSD, не используют режим эмуляции; в этом случае должна использоваться опция вы можете создать образ файловой системы ISO 9660 в Сделав это, и имея в ядре отконфигурированное устройство при использовании FreeBSD 5.X, вы можете смонтировать файловую систему, выполнив: в случае использования FreeBSD 4.X, а для FreeBSD 5.X: В этот момент вы можете проверить, что Имеется много других опций, которые можно использовать с программой mkisofs 8 для тонкой настройки её поведения. В частности: модификации в размещении ISO 9660 и создание дисков в форматах Joliet и HFS. Обратитесь к справочным страницам по mkisofs 8 для получения более подробной информации. Если ваше устройство для записи CD соответствует стандарту ATAPI, то для записи ISO-образа на компакт-диск вы можете воспользоваться командой Использовать её очень просто, так как параметров у ней немного: По умолчанию используется устройство в FreeBSD 4.X. Для получения информации о параметрах, задающих скорость записи, выброс диска после записи и запись звуковых данных, обратитесь к burncd 8. Если ваше устройство для записи CD не соответствует стандарту ATAPI, то для записи компакт-дисков вам нужно пользоваться программой не входит в комплект поставки системы; вы должны установить её из порта или из соответствующего пакета. Изменения в системе могут приводить к тому, что откомпилированные версии этой программы работать не будут, или приводить к порче дисков. Поэтому вы должны при обновлении системы либо обновить порт, либо, если вы следуете - STABLE, обновить порт при появлении его новой версии. имеет много опций, в основном использовать её ещё проще, чем Запись образа ISO 9660 делается такой командой: Чтобы задать параметр правильно, воспользуйтесь флагом в результате чего может получиться примерно такой результат: для имеющихся устройств. Найдите здесь ваше устройство для записи CD, а в качестве параметров для задавайте три числа через запятые. В нашем случае CRW-устройству соответствуют числа 1, 5, 0, так что правильным параметром будет Имеется более простой способ задать эти значения; обратитесь к справочной информации о cdrecord 1 для выяснения подробностей. Там же находится информация о записи звуковых дорожек, управлении скоростью и другим вещам. Вы можете копировать музыкальные CD, извлекая данные аудио с CD в набор файлов, а затем записывая эти файлы на чистый CD. Процесс несколько различен в случаях использования устройств ATAPI и SCSI. для извлечения данных аудио. Значение, соответствующее должно быть установлено правильно, как это описано в Разд. 16.6.4. является номером привода, а соответствует номеру дорожки, который записывается двумя десятичными цифрами с нулём в начале, если это нужно. Таким образом, первая дорожка на первом диске будет носить имя вторая будет именоваться Удостоверьтесь, что соответствующий файл имеется в каталоге Замечание: Во FreeBSD 5.0 devfs 5 будет автоматически создавать объекты в каталоге и управлять ими, так что использовать Извлеките каждую дорожку при помощи команды dd 1. При извлечении файлов вы должны также использовать специфическое значение для размера блока. Вы должны указать, что это файлы с аудио, и что должна зафиксировать диск по окончании работы. Вы можете скопировать CD с данными в файл образа, который функционально эквивалентен файлу образа, созданному командой mkisofs 8, и вы можете использовать его для копирования любого CD с данными. В приводимом здесь примере предполагается, что ваш привод CDROM называется Подставьте название вашего привода CDROM. В FreeBSD 4.X к имени устройства должен быть добавлен символ для указания на то, что берётся весь раздел, а в случае CDROM, весь диск. Теперь, когда вы имеете образ, вы можете записать его на CD так, как это описано выше. Теперь, после того, как вы создали стандартный CDROM с данными, вы, наверное, захотите смонтировать его и считать с него данные. По умолчанию mount 8 предполагает, что файловая система имеет тип Если вы попытаетесь выполнить что-то вроде: и диск не смонтируется. CDROM не является файловой системой поэтому попытки смонтировать его таким образом будут терпеть неудачу. Вам просто нужно указать команде mount 8, что файловая система имеет тип и всё должно заработать. Сделайте это, задав параметр при вызове mount 8. К примеру, если вы хотите смонтировать устройство CDROM, Заметьте, что имя вашего устройства в этом примере может быть другим, в зависимости от интерфейса, используемого в CDROM. Кроме того, параметр всего лишь задаёт выполнение утилиты mountcd9660 8. Пример выше может быть упрощён до: Таким способом, вообще говоря, вы можете использовать компакт-диски любого производителя. Диски с некоторыми расширениями ISO 9660 могут, однако, работать со странностями. К примеру диски Joliet хранят все имена файлов в виде последовательностей двухбайтовых символов Unicode. Ядро FreeBSD пока ещё не может работать с Unicode, поэтому не английские символы выводятся в виде знаков вопроса. Если в работаете с FreeBSD 4.3 или более поздней версией, то в драйвере CD9660 имеется механизм для динамической загрузки соответствующей таблицы преобразования Unicode. Модули для некоторых распространённых кодировок могут быть получены из порта при попытке смонтировать CDROM. Это обычно означает, что привод CDROM полагает, что в нём нет диска, или что привод не виден на шине. Приводу CDROM может понадобиться несколько секунд, чтобы понять, что он был закрыт, так что будьте терпеливы. Иногда SCSI CDROM может потеряться из-за того, что у него не было достаточно времени, чтобы ответить на сброс шины. Если у вас имеется SCSI CDROM, то, пожалуйста, добавьте следующий параметр в конфигурацию вашего ядра и перестройте его. Это укажет вашей шине SCSI выдерживать 15-секундную паузу во время загрузки, чтобы дать вашему приводу CDROM шанс ответить на сброс шины. Вы можете предпочесть запись файла непосредственно на CD без создания файловой системы ISO 9660. Некоторые поступают так при создании резервных копий. Это выполняется гораздо быстрее. чем запись стандартного компакт-диска: Для извлечения данных, записанных так на компакт-диск, вы должны считывать данные из файла непосредственного доступа к устройству: Вы не можете монтировать этот диск как обычный CDROM. Такой компакт-диск не может быть прочитан ни в какой другой операционной системе, кроме FreeBSD. Если вы хотите монтировать CD или обменяться данными с другой операционной системой, то вы должны использовать mkisofs 8 так, как это было описано выше. Предоставил Marc Fonvieille. Этот драйвер позволяет работать с ATAPI-устройствами приводы CD-ROM, CD-RW, DVD и так далее через подсистему SCSI, таким образом расширяя использование таких приложений, как Кроме того, в файле конфигурации ядра должны быть следующие строки: которая уже должна там присутствовать. После этого перестройте и установите ваше новое ядро, выполните перезагрузку машины. В процессе загрузки ваш пишущий привод должен появиться примерно следующим образом: acd0: CD-RW MATSHITA CD-RW/DVD-ROM UJDA740 at ata1-master PIO4 cd0 at ata1 bus 0 target 0 lun 0 cd0: MATSHITA CDRW/DVD UJDA740 1.00 Removable CD-ROM SCSI-0 device cd0: 16.000MB/s transfers cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed например, чтобы смонтировать CD-ROM в каталог просто наберите следующую команду: Для получения SCSI-адреса пишущего привода, вы можете, работая как пользователь запустить такую команду: MATSHITA CDRW/DVD UJDA740 1.00 at scbus1 target 0 lun 0 pass0, cd0 будет SCSI-адресом для использования с cdrecord 1 и другими приложениями для работы со SCSI. Для получения дополнительной информации об ATAPI/CAM и системе SCSI, обратитесь к страницам справочной системы по atapicam 4 и cam 4. Предоставил Marc Fonvieille. Дополнения предоставил Andy Polyakov. DVD это следующее после CD поколение оптических носителей. DVD может вмещать больше данных чем любой CD и является современным стандартом распространения видео. DVD-R: Был первым форматом записываемых DVD. Стандарт DVD-R был создан DVD Forum. Это формат для однократной записи. DVD-RW: Это перезаписываемая версия стандарта DVD-R. Носители DVD-RW могут быть перезаписаны около 1000 раз. DVD-RAM: Это также перезаписываемый формат, поддерживаемый DVD Forum. DVD-RAM может быть виден как съемный жесткий диск. Однако, этот носитель не совместим с большинством приводов DVD-ROM и проигрывателями DVD-Video; лишь несколько пишущих DVD поддерживают формат DVD-RAM. DVDRW: Это перезаписываемый формат, созданный DVDRW Alliance. Носитель DVDRW может быть перезаписан около 1000 раз. DVDR: Этот формат - - однократно записываемая версия формата DVDRW. Однослойный записываемый DVD может хранить до 4, 700, 000, 000 байт, что равно 4.38 Гбайт, или 4485 Мбайт 1 килобайт это 1024 байт. Замечание: Необходимо различать физический носитель и приложение. Например, DVD-Video это определенная файловая раскладка, которая может быть помещена на записываемый DVD любого физического формата: DVD-R, DVDR, DVD-RW и т.д. Перед выбором типа носителя вы должны убедиться, что и устройство записи и DVD-Video проигрыватель отдельный или DVD-ROM привод компьютера совместимы с данным носителем. Для записи DVD будет использоваться программа growisofs 1. Эта команда входит в набор утилит dvdrw-tools который поддерживает все типы носителей DVD. Эти утилиты используют подсистему SCSI для доступа к устройствам, следовательно необходимо добавить в ядро поддержку ATAPI/CAM. Если пишущий привод использует USB интерфейс, это добавление бесполезно и необходимо прочесть более подробную информацию по настройке устройств USB в Разд. 16.5 Вам также потребуется включить DMA доступ для устройств ATAPI, это можно сделать добавив в Замечание: Если вам нужен графический интерфейс пользователя, взгляните на который предоставляет дружественный пользователю интерфейс к growisofs 1 и многим другим программам записи. Команда growisofs 1 является оболочкой для mkisofs, она вызовет mkisofs 8 для создания файловой системы и запишет DVD. Это означает, что вам не потребуется создавать образ с данными перед началом процесса записи. на DVDR или DVD-R, используйте следующую команду: передаются mkisofs 8 для создания файловой системы в данном случае: файловая система ISO 9660 с расширениями Joliet и Rock Ridge, обратитесь к странице справочника mkisofs 8 за более подробной информацией. используется для первой сессии записи в любом случае: для одной или нескольких сессий. Устройство DVD, должно быть изменено в соответствии с имеющимися настройками. Параметр закроет диск и дозапись станет невозможна. Это должно улучшить совместимость с приводами DVD-ROM. Возможна также запись предварительного pre-mastered образа, например, для записи Скорость записи должна быть определена и автоматически установлена в соответствии с носителем и приводом. Если вы хотите явно указать скорость записи, используйте параметр За дальнейшей информацией обратитесь к странице справочника growisofs 1. DVD-Video это особая файловая система, базирующаяся на ISO 9660 и спецификациях micro-UDF M-UDF. DVD-Video также представляет определенную иерархию структуры данных, поэтому для создания DVD потребуется особая программа, такая как Если у вас уже есть образ файловой системы DVD-Video, просто запишите его как любой другой образ, примеры находятся в предыдущем разделе. Если вы создали DVD и результат находится в каталоге для записи DVD-Video должна быть использована следующая команда: будет передан mkisofs 8 и укажет создать файловую систему DVD-Video. Помимо этого, параметр В отличие от CD-RW, новый DVDRW необходимо отформатировать перед первым использованием. Программа growisofs 1 позаботится об этом сама при необходимости, и это рекомендованный способ. Тем не менее, для форматирования DVDRW вы можете использовать команду Эту операцию необходимо выполнить лишь однажды, помните, что только новые носители DVDRW необходимо форматировать. Затем запишите DVDRW тем способом, который описан в предыдущем разделе. Если вы хотите записать новые данные полностью новую файловую систему, а не дописать данные на DVDRW, его не нужно очищать, просто запишите поверх предыдущей записи создав новую начальную сессию примерно так: Формат DVDRW делает возможным легко дописать данные к предыдущей записи. Операция состоит в присоединении предыдущей сессии к существующей, это не мультисессионная запись, growisofs 1 расширит grow файловую систему ISO 9660, существующую на носителе. Например, для дозаписи данных к предыдущей сессии на DVDRW, используется следующая команда: При последующих записях mkisofs 8 необходимо передавать те же параметры, что и при первой записи. для улучшения совместимости с приводами DVD-ROM. В случае DVDRW это не помешает добавлению данных. Если по какой-либо причине вам потребуется очистить носитель, используйте следующую команду: Существует два формата дисков DVD-RW: последовательно дополняемый и с ограниченной перезаписью. По умолчанию формат дисков DVD-RW последовательный. Новый DVD-RW может быть записан непосредственно без необходимости форматирования, однако DVD-RW с данными в последовательном формате необходимо очистить перед созданием новой начальной сессии. Для очистки DVD-RW в последовательном формате, запустите: займет около одного часа на скорости 1x. Быструю очистку можно выполнить с параметром если DVD-RW будет записан в режиме Disk-At-Once DAO. Для записи DVD-RW в режиме DAO, используйте команду: не должен потребоваться, поскольку growisofs 1 попытается определить был ли носитель быстро очищен и включить DAO запись. Фактически, лучше использовать режим с ограниченной перезаписью с любым DVD-RW, этот формат более гибкий, чем формат по умолчанию с последовательной записью. Для записи данных на последовательный DVD-RW, используйте ту же команду, что и для других форматов DVD: Если вы хотите добавить данные к предыдущей записи, используйте параметр growisofs 1 Однако при добавлении данных на DVD-RW в последовательном режиме, на диске будет создана новая сессия и в результате получится мультисессионный диск. В формате DVD-RW с ограниченной перезаписью не требуется очищать носитель перед созданием новой начальной сессии, вам всего лишь нужно переписать диск с параметром подобно DVDRW. Возможно также увеличение существующей файловой системы ISO 9660, записанной на диск тем же способом, как для DVDRW с параметром В результате получится односессионный DVD. Для перевода DVD-RW в формат с ограниченной перезаписью, необходимо использовать следующую команду: Для перевода обратно в последовательный формат, выполните: Лишь несколько DVD-ROM и проигрывателей поддерживают мультисессионные DVD, в основном они в лучшем случае прочтут только первую сессию. DVDR, DVD-R и DVD-RW в последовательном формате могут работать с несколькими сессиями, и это не относится к форматам DVDRW и DVD-RW в формате ограниченной перезаписи. Использование следующей команды после первой не закрытой сессии для DVDR, DVD-R, или DVD-RW в последовательном формате, добавит на диск новую сессию: Использование этой командной строки с DVDRW или DVD-RW в режиме ограниченной перезаписи добавит данные, объединив новую сессию с предыдущей. В результате получится односессионный диск. Такой способ используется для добавления данных после первой записи на эти носители. Замечание: Некоторый объем носителя используется между сессиями для завершения и начала сессии. Следовательно, для оптимизации объема хранения сессии должны быть большими. Количество сессий ограничено 154 для DVDR, около 2000 для DVD-R и 127 для DVDR Double Layer. Для получения дополнительной информации о DVD, можно запустить команду диск должен находиться в приводе. при записи или проблемный носитель необходимы для любого сообщения о проблеме. Без этого вывода будет совершенно невозможно помочь вам. Первоначальный текст предоставил Julio Merino. Переписал Martin Karlsson. Хранение данных на дискетах иногда бывает полезным, например, когда нет других съёмных носителей или когда необходимо перенести небольшой объём данных на другой компьютер. В этом разделе будет описано, как использовать дискеты во FreeBSD. В основном речь пойдёт о форматировании и использовании дискет DOS размером 3.5 дюйма, однако общие принципы применимы и для других форматов гибких дисков. Доступ к гибким дискам, как, впрочем, и к остальным устройствам, осуществляется через соответствующие файлы в каталога Чтобы обратиться к дискете при использовании релизов 4.X и ранее, необходимо работать с обозначает номер привода, обычно 0, или В 5.0 и более новых релизах просто используйте обозначает размер дискеты в килобайтах. Эти файлы устройств используются во время низкоуровневого форматирования для задания размера устройства. В последующих примерах будет использоваться размер в 1440kB. необходимо создавать повторно. Для этого выполните следующее: В 5.0 devfs 5 управляет файлами устройств в каталоге в автоматическом режиме, так что использование Поддерживаемые размеры перечислены в fdcontrol 8, но, по нашему мнению, лучше всего работает 1440kB. Перед тем, как дискетой можно будет воспользоваться, её необходимо отформатировать на низком уровне. Обычно это выполняется производителем, однако форматирование является хорошим способом проверить целостность носителя. Большинство гибких дисков предназначены для использования с размером 1440kB, однако возможно задать меньший или больший размер. Для низкоуровневого форматирования дискет вам нужно использовать fdformat 1. В качестве параметра этой утилите передаётся имя устройства. Обратите внимание на появление сообщений об ошибках, так как они могут помочь определить, хорошая это дискета или плохая. Вставьте новую 3.5-дюймовую дискету в дисковод и введите команду: usr/sbin/fdformat/dev/fd0.1440 Вставьте новую 3.5-дюймовую дискету в дисковод и введите команду: После низкоуровневого форматирования диска вам нужно поместить на него метку диска. Эта метка будет потом разрушена, но она будет нужна системе для определения размера диска и его характеристик. Новая метка диска будет касаться диска в целом, и будет содержать полную информацию о параметрах дискеты. Значения геометрии для метки диска перечислены в файле Замечание: Начиная с FreeBSD 5.1-RELEASE, на смену старой программе disklabel 8 пришла утилита bsdlabel 8. У bsdlabel 8 отсутствуют некоторые устаревшие опции и параметры; в примере выше параметр не может использоваться с bsdlabel 8. Для получения дополнительной информации обратитесь к справочной странице п о bsdlabel 8. Теперь ваша дискета готова к высокоуровневому форматированию. При этом на неё будет помещаться новая файловая система, которая позволит FreeBSD читать и записывать информацию на диск. После создания новой файловой системы метка диска уничтожается, так что если вы захотите переформатировать диск, вам придётся создавать метку диска повторно. Файловой системой для дискеты может служить UFS или FAT. Вообще говоря, FAT для дискет походит лучше. Для размещения на дискете новой файловой системы, выполните: Теперь диск готов к работе. Для работы с гибким диском смонтируйте его при помощи утилит mountmsdos 8 для 4.X и более ранних релизов или mountmsdosfs 8 в 5.0 и последующих релизах. Можно также использовать пакет К наиболее часто используемым носителям на магнитной ленте следует отнести ленты шириной 4мм и 8мм, а также типа QIC, мини-картриджи и DLT. Ленты шириной 4мм заменяют QIC в качестве наиболее предпочтительного носителя для создания резервных копий. Эта тенденция значительно усилилась после покупки компанией Conner фирмы Archive, ведущего производителя накопителей QIC и последующего прекращения их выпуска. Накопители 4мм малы по размеру и мало шумят, но у них нет репутации носителя, обладающего надежностью приводов 8мм. Картриджи более дешевы и меньше по размеру 3 x 2 x 0.5 дюймов, 76 x 51 x 12 мм, чем 8мм-картриджи. Накопители для лент шириной 4мм, как и 8мм, имеют сравнительно малый срок службы головок, по причине использования в обоих случаях технологии спирального сканирования helical scan. Пропускная способность у таких накопителей начинается с цифры 150 kB/s, пиковая достигает 500 kB/s. Ёмкость накопителей начинается с 1.3 GB и может достигать 2.0 GB. Аппаратное сжатие, имеющееся на большинстве таких накопителей, даёт увеличение ёмкости примерно вдвое. Блоки многоприводных ленточных библиотек могут иметь до 6 накопителей в одном модуле с автоматической сменой ленты. Ёмкость библиотек может достигать 240 Гбайт. Стандарт DDS-3 в настоящее время поддерживает ёмкости лент вплоть до 12 Гбайт или 24 Гбайт сжатой информации. В накопителях 4мм, как и в приводах 8мм, используется технология спирального сканирования. Все плюсы и минусы этой технологии относятся как к 4мм, так и 8мм приводам. Не следует использовать ленты после того, как они были подвергнуты 2000 проходов, или были использованы для создания 100 полных копий. Ленты шириной 8мм являются самым распространённым типом для ленточных SCSI-накопителей; они же являются наиболее удачным выбором при выборе типа носителей для обмена лентами. Наверное, каждый сервер имеет привод Exabyte шириной 8мм и объёмом 2 Гбайт. Эти приводы удобны, они работают надёжно и тихо. Картриджи дешевы и малы по размеру 4.8 x 3.3 x 0.6 дюймов; 122 x 84 x 15 мм. Одним минусом лент шириной 8мм является сравнительно малое время службы головок и лент из-за высокой скорости движения ленты вдоль головок. Скорость передачи данных варьируется от 250 kB/s до 500 kB/s. Объём хранимых данных начинается с 300 Мбайт и может достигать 7 Гбайт. Аппаратное сжатие, имеющееся практически на всех таких приводах, увеличивает емкость примерно вдвое. Эти приводы существуют как в виде отдельных модулей, так и в виде многоприводных ленточных библиотек с 6 приводами и 120 лентами в одном отсеке. Ленты сменяются автоматически модулем. Емкости библиотек достигают величин, превышающих 840 Гбайт. Модель Exabyte Mammoth поддерживает ёмкость ленты в 12 Гбайт 24 Гбайт со сжатием и стоит примерно вдвое больше, чем обычный ленточный накопитель. Данные на ленту записываются по технологии спирального сканирования, головки позиционируются под углом к носителю примерно в 6 градусов. Лента оборачивается на 270 градусов вокруг шпульки, которая держит головки. Во время скольжения ленты вокруг шпульки последняя вращается. В результате достигается высокая плотность записи данных с очень близко лежащими дорожками, расположенными под наклоном по всей ленте. Ленты и накопители формата QIC-150, наверное, являются наиболее распространенным типом носителей. Приводы лент формата QIC являются самыми дешёвыми серьёзными накопителями для резервного копирования. Минусом является стоимость носителей. Ленты формата QIC по сравнению с лентами шириной 8мм или 4мм являются дорогими, превосходя их по стоимости хранения одного гигабайта в пять раз. Однако если вам будут достаточно половины ленты, QIC может оказаться правильным выбором. QIC является самым распространенным типом привода. Каждый сайт имеет привод QIC какой-либо емкости. QIC имеет большое количество плотностей на физически похожих иногда даже идентичных лентах. Приводы QIC работают вовсе не тихо. Эти накопители громко осуществляют поиск перед тем, как начать запись данных и достаточно шумны в процессе чтения, записи или поиска. Ленты QIC имеют размеры 6 x 4 x 0.7 дюймов; 152 x 102 x 17 мм. Скорость обмена данными лежит в границах от 150 kB/s до 500 kB/s. Ёмкость накопителей варьируется от 40 Мбайт до 15 Гбайт. Аппаратное сжатие присутствует во многих современных накопителях QIC. Приводы QIC устанавливаются менее часто; они вытесняются накопителями DAT. На ленту данные записываются в виде дорожек. Дорожки располагаются в длину вдоль всей ленты. Количество дорожек, и, в свою очередь, их ширина, меняется вместе с емкостью ленты. Большинство, если не все современные накопители обеспечивают обратную совместимость по крайней мере для чтения однако зачастую и для режима записи. Формат QIC имеет хорошую репутацию в области надежности хранения данных механика устроена проще и более надежна, чем в случае накопителей, построенных по технологии спирального сканирования. Ленты не следует больше использовать после создания 5, 000 резервных копий. Формат DLT обладает самой высокой скоростью передачи данных среди всех перечисленных здесь накопителей. Лента шириной 1/2 12.5мм помещена в один картридж с катушкой 4 x 4 x 1 дюймов; 100 x 100 x 25 мм. Вдоль одной из сторон картриджа расположена сдвигающаяся крышечка. Механизм накопителя открывает эту крышку, чтобы вытащить конец ленты. На этом конце имеется овальное отверстие, которое используется для захвата ленты. Принимающая катушка размещена внутри накопителя. Все другие типы картриджей, перечисленные здесь за исключением 9-дорожечных лент, имеют как подающий, так и принимающий барабаны внутри самого картриджа. Скорость передачи данных равна примерно 1.5 MB/s, что в три раза больше скорости передачи данных для накопителей 4мм, 8мм или QIC. Ёмкость картриджей варьируется от 10 Гбайт до 20 Гбайт для одного накопителя. Приводы могут компоноваться как многоленточные роботизированные, так и многоленточные, многоприводные библиотеки лент, вмещающие от 5 до 900 лент и от 1 до 20 приводов, что даёт ёмкость хранилища от 50 Гбайт до 9 Тбайт. Формат DLT Type IV поддерживает емкость до 70 Гбайт со сжатием. Данные на ленту записываются в виде дорожек, параллельных направлению движения точно также, как и для лент QIC. Одновременно записываются две дорожки. Срок жизни головок чтения/записи сравнительно велик; как только лента перестает двигаться, одновременно прекращается трение между головками и лентой. AIT - это новый формат фирмы Sony, который позволяет хранить до 50 Гбайт со сжатием информации на одной ленте. Ленты содержат микросхемы памяти, на которых размещается каталог содержимого ленты. Этот каталог может быть быстро считан накопителем для определения расположения файлов на ленте, вместо того, чтобы тратить несколько минут на поиск, как это происходит с другими форматами. Такое программное обеспечение, как SAMS:Alexandria, может управлять сорока или большим количеством ленточных библиотек AIT, связываясь непосредственно с памятью лент для вывода их содержимого, определения того, какие файлы были скопированы на какую ленту, выбора нужной ленты, её загрузки и восстановления данных с ленты. Библиотеки с такими функциями стоят в районе 20, 000, выводя их из ниши любительского рынка. Если вы попытаетесь прочитать или записать новую, абсолютно чистую ленту, в первый раз, то вам это не удастся. Выводимые на консоль сообщения будут выглядеть примерно так: sa0ncr1:4:0: NOT READY asc:4, 1 sa0ncr1:4:0: Logical unit is in process of becoming ready На ленте отсутствует идентификационный блок блок номер 0. Со времен принятия стандарта QIC-525 все накопители формата QIC записывают на ленту идентификационный блок Identifier Block. Здесь имеется два решения: ленточный накопитель записывает идентификационный блок на ленту. Воспользуйтесь кнопкой на передней панели для выброса ленты. сбросьте данные на ленту. HARDWARE FAILURE info:280 asc:80, 96 Последующие операции с лентой будут успешными. На самом деле дискеты не подходят для создания резервных копий, потому что: Носитель ненадёжен, особенно если речь идет о больших сроках хранения. Создание резервных копий и восстановление данных происходит очень медленно. Дискеты имеют весьма ограниченную емкость дни, когда весь винчестер копировался на десяток или около того дискет, давно прошли. Несмотря на все это, если у вас нет другого способа сделать резервную копию ваших данных, то дискеты все же лучше, чем ничего. Если вы используете дискеты, то проверьте, что они должны быть хорошего качества. Дискеты, которые валялись по всему офису в течении нескольких лет, не подойдут. Идеально использовать новые от известного производителя. многотомные архивы, которая позволяет размещать архивы на нескольких дискетах. Когда первая дискета окажется полностью заполненной, программа tar 1 выдаст запрос на следующий том так как работа утилиты tar 1 не зависит от носителя, она имеет дело с томами; здесь это означает дискету. Это сообщение будет повторяться со все увеличивающимся номером тома до тех пор, пока все указанные файлы не будут заархивированы. К сожалению, tar 1 при создании многотомных архивов не позволяет использовать опцию Вы конечно же, можете скомпрессировать все файлы утилитой gzip 1, программой gzip 1 скопировать их на дискеты, а затем распаковать файлы снова утилитой gunzip 1! Есть два подхода к восстановлению только нужных вам файлов. В первом вы можете начать с первой дискеты и выдать такую команду: Программа tar 1 будет выдавать запрос на подачу последующих дискет до тех пор, пока не найдет требуемый файл. Как альтернатива, если вы знаете, на какой дискете расположен файл, то вы можете просто подать ее и дать ту же самую команду, что и выше. Заметьте, что если первый файл на дискете является продолжением предыдущего, то tar 1 выдаст предупреждение о том, что не может его восстановить, хотя вы этого и не просили делать! Они работают с приводом как с набором дисковых блоков, которые расположены ниже понятий файлов, связей и каталогов, создаваемых файловыми системами. Программа выполняет резервное копирование всей файловой системы, располагающейся на устройстве. Невозможно выполнить резервное копирование части файловой системы или дерева каталогов, которые располагаются более чем в одной файловой системе. Утилита не записывает на ленту файлы и каталоги, она записывает блоки данных, из которых строятся файлы и каталоги. для работы с корневым каталогом, при этом не будет выполняться резервное копирование и многих других каталогов, так как они обычно являются точками монтирования других файловых систем или символическими ссылками на эти файловые системы. имеются некоторые неудобства, оставшиеся от её ранних дней в составе Version 6 операционной системы AT T UNIX примерно 1975. Параметры, используемые по умолчанию, подходят для 9-дорожечных лент 6250 bpi, но не для современных носителей с высокой плотностью записи информации до 62, 182 ftpi. Для использования ёмкостей нынешних накопителей на магнитной ленте эти параметры могут быть заданы в командной строке. возможно резервное копирование данных по сети на накопитель, подключенный к другому компьютеру. Обе программы используют в работе rcmd 3 и ruserok 3 для доступа к накопителю на магнитной ленте на удалённом компьютере. Поэтому пользователь, выполняющий резервное копирование, должен быть указан в файле на удалённом компьютере. Аргументы для должны подходить для использования на другом компьютере. При выполнении копирования по команде на компьютере с FreeBSD на накопитель Exabyte, подключенный к машине Sun по имени используйте такую команду: Внимательно рассмотрите вашу ситуацию. Пример 16-1. Использование возможностью, задав переменную окружения Пример 16-2. Использование Утилита tar 1 также восходит корнями к Version 6 системы AT T UNIX около 1975. работает с файловой системой, записывая на ленту файлы и каталоги. Эта утилита поддерживает не полный набор опций, имеющихся в cpio 1, однако не требует необычного перенаправления в командной строке, которое используется в утилите FreeBSD начиная с версии 5.3 содержит как GNU так и используемую по умолчанию утилиту Версия GNU вызывается командой и поддерживает удалённые устройства в том же самом синтаксисе, что и Чтобы скопировать данные на накопитель Exabyte, подключенный к машине Sun по имени используйте такую команду: Тот же результат вы можете получить, используя воспользовавшись перенаправлением вывода и командой для посылки данных на удалённый ленточный накопитель. Если вы беспокоитесь о безопасности создания резервных копий по сети, то вместо cpio 1 является оригинальной программой UNIX для обмена файлами на магнитных носителях. В утилите имеются опции кроме всего прочего, позволяющие выполнять изменение порядка следования байтов, поддерживающие различные форматы архивов и выполняющие перенаправление данных другим программам. Последняя возможность делает прекрасным выбором для целей установки. не знает о том, как работать с каталогами, список файлов должен даваться через не поддерживает создание резервных копий по сети. Вы можете воспользоваться перенаправлением вывода и программой для посылки данных на удалённый накопитель. Где directorylist это список директорий, c которых Вы хотите создать резервные копии, это комбинация пользователь/хост которая описывает того кто занимается резервированием, и это устройство куда копии должны быть записаны например, В течение многих лет различные версии программ получались не совсем совместимыми. Так что вместо того, чтобы попытаться полностью их стандартизировать, POSIX создал новую утилиту для работы с архивами. и, кроме того, свои собственные новые форматы. Набор команд этой утилиты больше напоминает Amanda Advanced Maryland Network Disk Archiver является целой клиент/серверной системой резервного копирования, а не отдельной программой. Сервер Amanda сможет осуществлять резервное копирование на единственный накопитель любого количества компьютеров, на которых имеется клиент Amanda. Общей проблемой систем с большим количеством больших дисков является то, что время, требуемое для непосредственной записи данных на ленту, превышает лимит времени, выделенный на эту задачу. Amanda решает эту проблему. Amanda может использовать промежуточный диск для резервного копирования нескольких файловых систем одновременно. Amanda создаёт наборы архивов: группа лент, используемых в некоторый период времени для создания полных копий всех файловых систем, перечисленных в конфигурационном файле системы Amanda. Архивный набор содержит также создаваемый каждую ночь инкрементальные или дифференциальные резервные копии всех файловых систем. Восстановление повреждённой файловой системы требует наличия самой последней полной копии и инкрементальных резервных копий. Конфигурационный файл даёт прекрасный механизм для управления процессом резервного копирования и объёмом трафика, генерируемого системой Amanda. Amanda сможет использовать любую из перечисленных выше программ для записи данных на ленту. Amanda имеется в виде как порта, так и пакета, и по умолчанию она не установлена. Не делать ничего - это не программа для компьютера, и в то же время это наиболее широко используемая стратегия резервного копирования. Здесь нет никаких первоначальных затрат. Здесь нет расписания, которому нужно следовать. Просто скажите нет. Если что-то случится с вашими данными, улыбнитесь и забудьте о них! Если ваше время и данные практически ничего не стоят, то не делать ничего является самой подходящей программой для вашего компьютера. Но будьте осторожны, POSIX является весьма полезным инструментом, и через полгода вы можете обнаружить, что у вас есть набор файлов, представляющих для вас определенную ценность. и других деревьев каталогов, которые могут быть в точности перегенерированы вашим компьютером. Примером являются файлы, представляющие страницы этого Руководства в форматах HTML или PostScript. Они генерируются из входных файлов в формате SGML. Создавать резервные копии файлов в форматах HTML и PostScript не нужно. Исходные файлы в формате SGML копируются регулярно. dump 8 Точка. Elizabeth D. Zwicky протестировала все программы резервного копирования, обсуждаемые здесь. Беспроигрышным вариантом для сохранения всех ваших данных и особенностей файловых систем UNIX является Элизабет создала файловые системы, содержащие большое количество необычных элементов и некоторых не так уж необычных и тестировала каждую из программ, выполняя резервное копирование и последующее восстановление этих файловых систем. В число необычных элементов входили: файлы с дырами, файлы с дырами и блоком пустого места, файлы с необычными символами в их именах, нечитаемые и незаписываемые файлы, устройства, меняющие свой размер во время резервного копирования, файлы, создаваемые и удаляемые во время копирования и тому подобное. Она представила результаты на конференции LISA V в октябре 1991 года. Посмотрите ссылку на сайте torture-testing Backup and Archive Programs. Вам нужно выполнить всего лишь четыре шага для того, чтобы быть готовым к любому сбою. Во-первых, распечатайте разметку диска для всех ваших дисков к примеру, таблицу файловых систем и все сообщения, выводимые при загрузке, каждого по два экземпляра. Во-вторых, определите, все ли устройства присутствуют на загрузочной и аварийной дискетах Самым простым способом проверки является перезагрузка вашей машины с загрузочной дискетой, вставленной в дисковод и последующая проверка сообщений при загрузке. Если все имеющиеся у вас устройства здесь будут перечислены и будут работоспособны, перейдите к третьему шагу. В противном случае вам необходимо будет создать две особым образом сформированные загрузочные дискеты, на которых помещено ядро, могущее смонтировать все ваши диски и получить доступ к вашему стримеру. На этих дискетах должны быть: и какая-либо используемая вами программа резервного копирования. Эти программы должны быть скомпонованы статически. Если вы используете то на дискете должна присутствовать и программа В-третьих, регулярно создавайте резервные копии на ленте. Любые изменения, которые вы делали после последнего резервного копирования, могут быть безвозвратно потеряны. На лентах включайте защиту от записи. В-четвертых, проверяйте работу дискет либо либо двух дискет, которые вы сделали при выполнении второго шага и лент с резервными копиями. Ведите журнал выполняемых действий. Храните эти записи вместе с загрузочной дискетой, распечатками и лентами. Вы просто обезумеете при восстановлении данных, если окажется, что записи могли бы избежать разрушения ваших резервных копий Каким образом? Вместо команды и тем самым перезаписать вашу резервную копию. Для дополнительной страховки, каждый раз создавайте загрузочные дискеты и две резервные копии на ленте. Храните одну из копий в каком-то удаленном месте и НЕ в том же здании, где находится ваш офис. Достаточно большое количество компаний во Всемирном Торговом Центре изучило это на своей шкуре. Это удаленное хранилище должно быть физически отделено на большое расстояние от ваших компьютеров и дисковых устройств. Пример 16-3. Скрипт для создания загрузочной дискеты bin/sh create a restore floppy format the floppy PATH/bin:/sbin:/usr/sbin:/usr/bin fdformat - q fd0 if? - ne 0 then echo Bad floppy, please use a new one exit 1 fi place boot blocks on the floppy disklabel - w - B/dev/fd0c fd1440 newfs the one and only partition newfs - t 2 - u 18 - l 1 - c 40 - i 5120 - m 5 - o space/dev/fd0a mount the new floppy mount/dev/fd0a/mnt create required directories mkdir/mnt/dev mkdir/mnt/bin mkdir/mnt/sbin mkdir/mnt/etc mkdir/mnt/root mkdir/mnt/mnt for the root partition mkdir/mnt/tmp mkdir/mnt/var populate the directories if ! - x/sys/compile/MINI/kernel then cat EOM The MINI kernel does not exist, please create one. Here is an example config file: MINI - - A kernel to get FreeBSD onto a disk. machine i386 cpu I486CPU ident MINI maxusers 5 options INET needed for tcp icmpstat ipstat udpstat tcpstat udb options FFS Berkeley Fast File System options FATCURSOR block cursor in syscons or pccons options SCSIDELAY15 Be pessimistic about Joe SCSI device options NCONS2 1 virtual consoles options USERCONFIG Allow user configuration with - c XXX config kernel root on da0 swap on da0 and da1 dumps on da0 device isa0 device pci0 device fdc0 at isa? port IOFD1 bio irq 6 drq 2 vector fdintr device fd0 at fdc0 drive 0 device ncr0 device scbus0 device sc0 at isa? port IOKBD tty irq 1 vector scintr device npx0 at isa? port IONPX irq 13 vector npxintr device da0 device da1 device da2 device sa0 pseudo-device loop required by INET pseudo-device gzip Exec gzipped s EOM exit 1 fi cp - f/sys/compile/MINI/kernel/mnt gzip - c - best/sbin/init /mnt/sbin/init gzip - c - best/sbin/fsck /mnt/sbin/fsck gzip - c - best/sbin/mount /mnt/sbin/mount gzip - c - best/sbin/halt /mnt/sbin/halt gzip - c - best/sbin/restore /mnt/sbin/restore gzip - c - best/bin/sh /mnt/bin/sh gzip - c - best/bin/sync /mnt/bin/sync cp /mnt/root cp - f/dev/MAKEDEV/mnt/dev chmod 755/mnt/dev/MAKEDEV chmod 500/mnt/sbin/init chmod 555/mnt/sbin/fsck/mnt/sbin/mount/mnt/sbin/halt chmod 555/mnt/bin/sh/mnt/bin/sync chmod 6555/mnt/sbin/restore create the devices nodes cd/mnt/dev./MAKEDEV std./MAKEDEV da0./MAKEDEV da1./MAKEDEV da2./MAKEDEV sa0./MAKEDEV pty0 cd create minimum filesystem table cat /mnt/etc/fstab EOM/dev/fd0aufs rw 1 1 EOM create minimum passwd file cat /mnt/etc/passwd EOM root::0:0:Charlie :/root:/bin/sh EOM cat EOM root::0:0::0:0:Charlie :/root:/bin/sh EOM chmod 600 chmod 644/mnt/etc/passwd/usr/sbin/pwdmkdb - d/mnt/etc umount the floppy and inform the user /sbin/umount/mnt echo The floppy has been unmounted and is now ready. Главный вопрос: выжило ли ваше оборудование? Вы регулярно делали резервные копии, так что нет нужды беспокоиться о программном обеспечении. Если оборудование было повреждено, должны быть заменены неисправные компоненты. Если с оборудованием все в порядке, проверьте ваши дискеты. При использовании самостоятельно созданной загрузочной дискеты, загрузитесь в однопользовательском режиме набрав Пропустите следующий абзац. читайте дальше. Вставьте дискету в первый дисковод и загрузите компьютер. На экран будет выведено оригинальное меню установки. Выберите пункт После вывода приглашения вставьте во FreeBSD версий, предшествующих 5.2. Восстановите по отдельности каждую файловую систему. по отношению к корневому разделу вашего первого диска. Если метка диска была испорчена, то воспользуйтесь командой для переразбиения на разделы и разметки диска так, чтобы получившаяся метка совпала с той, которая вами была распечатана и сохранена. Для повторного создания файловых систем используйте утилиту Повторно смонтируйте корневой раздел дискеты в режиме чтения-записи Воспользуйтесь вашей программой резервного копирования и резервными копиями на лентах для восстановления данных для этой файловой системы например. Размонтируйте файловую систему например, Повторите эту процедуру для каждой файловой системы, которая была повреждена. Как только ваша система заработает, сделайте резервную копию на новые ленты. Что бы ни вызвало сбой или потерю данных, это может случиться снова. Ещё один час, потраченный в этот момент, может спасти вас от неприятностей в будущем. Реорганизацию и улучшения выполнил Marc Fonvieille. Кроме дисков, которые вы физически устанавливаете в ваш компьютер; дискеты, компакт-диски, винчестеры и так далее, FreeBSD воспринимает и другие типы дисков - Сюда могут быть отнесены сетевые файловые системы, такие, как Network File System и Coda, а также файловые системы с организацией в памяти и создаваемые в файлах. В зависимости от версии FreeBSD, которую вы используете, для создания и работы с файловыми системами, отображаемыми в оперативную память или файлы, вам нужно будет пользоваться разными инструментами. Замечание: Пользователи FreeBSD 4.X для создания требуемых устройств должны использовать MAKEDEV 8. Во FreeBSD 5.0 и более поздних версиях для создания файлов устройств используется devfs 5, которая выполняет это прозрачно для пользователей. Утилита vnconfig 8 конфигурирует и позволяет использовать дисковые устройства на основе псевдо-устройств vnode. vnode представляет собой файл и отвечает за работу с файлом. Это означает, что vnconfig 8 использует файлы для создания и работы с файловой системой. Одним из возможных способов использования является монтирование образов дискет или образов компакт-дисков, сброшенных в файлы. Пример 16-4. Использование vnconfig для монтирования имеющегося образа файловой системы во FreeBSD 4.X Пример 16-5. Создание нового диска в файле с помощью Warning: 2048 sectors in last cylinder unallocated/dev/vn0c: 10240 sectors in 3 cylinders of 1 tracks, 4096 sectors 5.0MB in 1 cyl groups 16 c/g, 32.00MB/g, 1280 i/g super-block backups for fsck - b at: 32 Во FreeBSD 5.X для конфигурации и подключения дисков md 4, отображаемых в оперативную память, используется утилита mdconfig 8. Для работы с mdconfig 8 вам нужно подгрузить модуль md 4 или добавить поддержку этих устройств в файл конфигурации ядра: Утилита mdconfig 8 поддерживает три типа виртуальных дисков, отображаемых в память: диски в памяти, которая выделяется запросами malloc 9 и диски в памяти, использующие в качестве устройств хранения файлы или раздел подкачки. Одним из возможных использований таких дисков является монтирование файлов с образами дискет или CD. Пример 16-6. Использование для монтирования файла с образом существующей файловой системы во FreeBSD 5.X Пример 16-7. Создание нового диска, отображаемого в файл, при помощи dev/md0c: 5.0MB 10240 sectors block size 16384, fragment size 2048 using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes. super-block backups for fsck - b at: 32, 2624, 5216, 7808 вы не задали номер устройства, то mdconfig 8 для выбора неиспользуемого устройства будет использовать функцию автоматическое выделения в md 4. Имя выделенного устройства будет выдано на стандартное устройство выводы в виде, например, Для получения более полной информации о mdconfig 8, пожалуйста, обратитесь к соответствующей странице справочной системы. Замечание: Начиная с FreeBSD 5.1-RELEASE, на смену старой программе disklabel 8 пришла утилита bsdlabel 8. У bsdlabel 8 отсутствуют некоторые устаревшие опции и параметры; в примере выше параметр не может использоваться с bsdlabel 8. Для получения дополнительной информации обратитесь к справочной странице п о bsdlabel 8. Утилита mdconfig 8 весьма полезна, однако для создания файла с файловой системой требуется произвести много действий. Вместе с FreeBSD 5.0 поставляется утилита под названием mdmfs 8, которая создаёт диск md 4 при помощи mdconfig 8, размещает на нём файловую систему UFS при помощи newfs 8 и монтирует её командой mount 8. Например, если вы хотите создать и смонтировать такой же образ файловой системе, как выше, просто наберите такую команду: Пример 16-8. Настройка и монтирование диска, отображаемого в файл, при помощи команды без номера устройства, то mdmfs 8 будет использовать автоматическую нумерацию md 4 для автоматического выбора неиспользуемого устройства. Более полную информацию о mdmfs 8 можно найти на страницах справочной системы. Драйвер md 4 является простым и эффективным способом создания файловых систем в памяти во FreeBSD Для выделения памяти используется malloc 9. Просто возьмите файловую систему, которую вы приготовили при помощи, скажем, vnconfig 8 и: Пример 16-9. Диск md в памяти во FreeBSD 4.X Для получения более полной информации, пожалуйста, обратитесь к страницам справочной системы по md 4. При работе с файловыми системами, отображаемыми в файл или память, используются одни и те же утилиты: mdconfig 8 или mdmfs 8. Место для хранения файловых систем в памяти выделяется через malloc 9. Пример 16-10. Создание нового диска с отображением в память при помощи dev/md1: 5.0MB 10240 sectors block size 16384, fragment size 2048 using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes. with soft updates super-block backups for fsck - b at: 32, 2624, 5216, 7808 Пример 16-11. Создание нового диска с отображением в память при помощи Вместо того, чтобы использовать файловую систему, опирающуюся на malloc 9, возможно использовать память раздела подкачки, для чего нужно просто заменить создаёт диск в разделе подкачки. Для выяснения всех подробностей, пожалуйста, обратитесь к страницам справочной системы по mdconfig 8 и mdmfs 8. Если файловые системы, отображаемые в память или файл, больше не используются, вам нужно высвободить все ресурсы для системы. Первым делом нужно размонтировать файловую систему, затем воспользоваться mdconfig 8 для отключения диска от системы и освободить ресурсы. К примеру, чтобы отключить и освободить все ресурсы, используемые Во FreeBSD 4.X для отключения устройства используется команда vnconfig 8. Например, для отключения и освобождения всех ресурсов, используемых Текст предоставил Tom Rhodes. Во FreeBSD 5.0 вместе с технологией Отложенных обновлений представлена новая возможность: генерация мгновенных копий файловых систем. Мгновенные копии позволяют пользователю создавать образы заданных файловых систем и работать с ними как с файлами. Файлы мгновенных копий должны создаваться в той файловой системе, над которой производится действие, и пользователь может создавать не более 20 мгновенных копий для каждой файловой системы. Активные копии записываются в суперблок, так что они остаются в силе между операциями монтирования и размонтирования в процессе системных перезагрузок. Если мгновенная копия больше не нужна, она может быть удалена стандартной командой rm 1. Мгновенные копии могут удаляться в любом порядке, однако всё использованное пространство не может быть использовано, так как другая мгновенная копия может претендовать на некоторые блоки из освобождённых. устанавливается на файл при помощи mksnapffs 8 после первоначального создания файла мгновенной копии. Команда unlink 1 делает исключение для файлов мгновенных копий, позволяя их удалять. Мгновенные копии создаются при помощи утилиты mount 8. Чтобы создать мгновенную копию воспользуйтесь такой командой: Файлы мгновенных копий файловых систем к примеру, Некоторые администраторы будут использовать файл мгновенной копии для целей создания резервной копии, так как мгновенная копия может быть перенесена на CD или магнитную ленту. Утилита проверка целостности файловой системы, fsck 8, может быть запущена над мгновенной копией. Полагая, что файловая система была в порядке, когда она была смонтирована, вы всегда должны получать нормальный и неизменный результат. Это именно то, что выполняет фоновый процесс fsck 8. Запустить утилиту dump 8 с мгновенной копией. Будет создаваться дамп, соответствующий файловой системе на момент создания мгновенной копии. Утилита dump 8 при использовании опции тоже может работать с мгновенными копиями, создавать их дампы, а затем удалять за один проход. Смонтировать командой mount 8 мгновенную копию как замороженный образ файловой системы. Чтобы смонтировать командой mount 8 мгновенную копию смонтированной в каталог Первоначально всё будет в том же самом состоянии, в каком это было во время создания мгновенной копии. Единственным исключением будет то, что любые ранее сделанные мгновенные копии будут видны как файлы нулевой длины. Когда использование мгновенной копии закончено, она может быть удалена командой: и мгновенных копиях файловых систем, включая технической описание, вы можете посетить сайт Маршалла Кёрка МакКузика Marshall Kirk McKusick по адресу /. Квоты - это опциональная возможность операционной системы, которая позволяет ограничивать объем дискового пространства и/или количество файлов для конкретного пользователя или членов определенной группы в рамках одной файловой системы. Чаще всего эта возможность используется в системах разделения времени, когда желательно ограничить количество ресурсов, которые может использовать один пользователь или группа пользователей. Это позволит не допустить ситуации, когда один пользователь или группа пользователей заполняют всё доступное дисковое пространство. Перед тем, как попытаться использовать дисковые квоты, необходимо убедиться, что квоты включены в вашем ядре. Это делается добавлением следующей строки в конфигурационный файл вашего ядра: это по умолчанию не включено, так что для использования дисковых квот вам нужно будет настроить, откомпилировать и установить собственное ядро. Пожалуйста, обратитесь к Гл. 8 за дополнительной информацией о настройке ядра. Это делается добавление такой строчки: Для более полного контроля над запуском квотирования имеется дополнительная переменная для настройки. Как правило, при загрузке целостность квот каждой файловой системы проверяется программой quotacheck 8. При работе программы quotacheck 8 проверяется точное соответствие данных в базе данных квот данным в файловой системе. Это весьма долгий процесс, что отражается на времени загрузки системы. Если вам захочется пропустить этот шаг, то для этого предназначена специальная переменная в файле Наконец, вам потребуется отредактировать файл для включения дисковых квот на уровне файловых систем. Это то место, где вы можете включить квоты для пользователей, для групп или для обеих этих категорий для всех ваших файловых систем. Для включения пользовательских квот для файловой системы, добавьте параметр в поле параметров файловой системы, на которой вы хотите включить квотирование, в файле dev/da1s2g/home ufs rw, userquota 1 2 Подобным же образом для включения квотирования на уровне групп, воспользуйтесь параметром Чтобы включить квотирование как для пользователей, так и для групп, измените строчку следующим образом: dev/da1s2g/home ufs rw, userquota, groupquota 1 2 соответственно для пользовательских и групповых квот. Для получения подробной информации обратитесь к команде fstab 5. Хотя справочная страница по fstab 5 утверждает, что вы можете указать другое местоположение файлов с квотами, этого делать не рекомендуется, потому что различные утилиты для работы с квотами не могут нормально работать в такой ситуации. На этом этапе вы должны перезагрузить вашу систему с новым ядром. Скрипт автоматически запустит соответствующие команды для создания начальных файлов для всех квот, которые вы создали в файле так что нет нужды вручную создавать никаких файлов квот нулевой длины. При нормальной работе вам не потребуется вручную запускать программы quotacheck 8, quotaon 8 или quotaoff 8. Однако вам нужно хотя бы прочесть страницы справочника по этим командам, просто чтобы ознакомиться с их функциями. Как только вы настроили вашу систему на использование квот, проверьте, что они действительно были задействованы. Простым способом сделать это является запуск такой команды: Вы должны увидеть однострочную информацию, отражающую использование диска и текущие ограничения для каждой файловой системы, на которой включено квотирование. Теперь вы действительно готовы задавать ограничения при помощи команды edquota 8. У вас есть несколько вариантов того, как приводить в действие ограничения по объему дискового пространства, который могут занимать пользователь или группа, а также по количеству файлов, которые они могут создать. Вы можете ограничивать размещение ресурсов на основе объема дискового пространства квотирование блоков, количества файлов квотирование inode или их комбинации. Каждое из этих ограничений, в свою очередь, делится на две категории: мягкие и жёсткие ограничения. Жёсткое ограничение не может быть превышено. Как только пользователь достиг своих ограничений, ресурсы соответствующей файловой системы ему больше выделяться не будут. Например, если пользователь имеет жесткое ограничение в 500 Кбайт на файловой системе и в текущий момент использует 490 Кбайт, то пользователь может получить дополнительно ещё 10 Кбайт. Попытка занять ещё 11 Кбайт окончится неудачно. С другой стороны, мягкие ограничения могут быть превышены в течении некоторого периода времени. Этот период времени также называют периодом отсрочки, который по умолчанию равен одной неделе. Если пользователь превышает своё мягкое ограничение в течение периода времени, превышающего отсрочку, то это мягкое ограничение становится жестким и последующее выделение ресурсов будет запрещено. Когда пользователь вернётся обратно к отметке, меньшей, чем мягкое ограничение, то период отсрочки будет сброшен. Далее приводится пример того, что вы можете наблюдать при запуске команды edquota 8. Когда вызывается команда edquota 8, вы оказываетесь в редакторе, заданном переменной переменной окружения или в редакторе vi, если переменная не задана, и можете редактировать квоты. Quotas for user test:/usr: kbytes in use: 65, limits soft 50, hard 75 inodes in use: 7, limits soft 50, hard 60/usr/var: kbytes in use: 0, limits soft 50, hard 75 inodes in use: 0, limits soft 50, hard 60 Для каждой файловой системы, на которой включено квотирование, вы должны увидеть две строки. В одной строке приведены ограничения на блоки, а в другой на количество inode. Например, чтобы увеличить ограничения на количество блоков для пользователя с мягкого ограничения в 50 и жёсткого ограничения в 75, на мягкое ограничение в 500 и жёсткое ограничение в 600, измените: usr: kbytes in use: 65, limits soft 50, hard 75 usr: kbytes in use: 65, limits soft 500, hard 600 Новые ограничения вступят в силу после выхода из редактора. Иногда желательно установить ограничения квот на некоторый диапазон UID идентификаторов пользователей. Это можно сделать при помощи параметра в команде edquota 8. Во-первых, установите желаемое ограничение для пользователя, а затем запустите команду Например, если пользователь имеет желаемые ограничения, то для дублирования этих ограничений на пользователей с UID от 10000 до 19999 может быть использована такая команда: Дополнительную информацию можно получить из справочной страницы по команде edquota 8. Для проверки квот и использования дисков вы можете использовать команды quota 1 или repquota 8. Команда quota 1 может быть использована для проверки квот отдельных пользователей, групп, а также использования дисков. Пользователь может только проверить собственную квоту и квоту той группы, к которой он принадлежит. Только администратор системы может проверить квоты всех пользователей и групп. Команду repquota 8 можно использовать для получения суммарной статистики всех квот и использования дисков для файловых систем с включенными квотами. для пользователя, который имеет ограничения на двух файловых системах. пользователь превысил свое мягкое ограничение в 50 Кбайт на 15 Кбайт и имеет 5 дней до истечения отсрочки. Отметьте знак звездочки split который указывает на превышение пользователем своего ограничения. Как правило, файловые системы, на которых пользователь не занимает дискового пространства, не показываются в выводе команды quota 1, даже если ему выделена квота на этой файловой системе. При использовании параметра эти файловые системы выводятся, как, например, файловая система Квоты определяются подсистемой квот на сервере NFS. Даемон 8 предоставляет информацию о квотах для программы quota 1 на клиентах NFS, позволяя пользователям на этих машинах смотреть свою статистику о квотах. Текст предоставил Lucky Green. FreeBSD предоставляет прекрасную возможность по защите от несанкционированного доступа к данным. Права на доступ к файлам и технология принудительного контроля доступа MAC Mandatory Access Control смотрите see Гл. 15 помогают предотвратить несанкционированный доступ посторонних лиц к данным, при условии работы операционной системы и компьютера. Однако права доступа, контролируемые операционной системой, не имеют значения, если нападающий получает физический доступ к компьютеру и может просто перенести жёсткий диск на другую машину для копирования и дальнейшего анализа важных данных. Вне зависимости от того, как атакующий завладел жёстким диском или выключенным компьютером, технология gbde GEOM Based Disk Encryption - шифрование диска на уровне GEOM может защитить данные файловой системы компьютера даже против очень заинтересованной атакующей стороны с достаточными ресурсами. В отличие от громоздких систем шифрования, которые шифруют отдельные файлы, gbde шифрует в прозрачном режиме файловую систему в целом, при этом данные в открытом виде на диск никогда не записываются. Настройка gbde требует права доступа администратора системы. Выполните конфигурацию, компиляцию и установку нового ядра FreeBSD. Этот процесс описан в Гл. 8. Перезагрузитесь, запустив новое ядро. В следующем примере предполагается, что в вашу систему вы добавляете новый винчестер, на котором будет располагаться единственный раздел с зашифрованными данными. Этот раздел будет монтироваться в каталог но это требует более сложной последовательности действий, что выходит за рамки этого вводного материала. Установите новый диск в систему, как это описано в Разд. 16.3. В рамках этого примера раздел, соответствующий новому жёсткому диску, будет называться представляют существующие стандартные разделы FreeBSD нашей тестовой системы. Файл блокировки gbde содержит информацию, которая нужна gbde для доступа к зашифрованному разделу. Не имея доступа к файлу блокировки, gbde не сможет расшифровать данные, хранимые в зашифрованном разделе, без значительного ручного вмешательства, что программно не поддерживается. Каждый зашифрованный раздел использует отдельный файл блокировки. Перед началом работы с разделом gbde его необходимо проинициализировать. Эта инициализация производится только один раз: gbde 8 запустит редактор, что позволит вам задать в шаблоне различные конфигурационные параметры. При работе с файловыми системами UFS1 и UFS2 задайте значение sectorsize равным 2048: FreeBSD:, v 1.1 2002/10/20 11:16:13 phk Exp Sector size is the smallest unit of data which can be read or written. Making it too small decreases performance and decreases available space. Making it too large may prevent filesystems from working. 512 is the minimum and always safe. For UFS, use the fragment size sectorsize 2048 gbde 8 дважды запросит ввод пароля, который будет использоваться для защиты данных. Пароль в обоих случаях должен вводиться одинаковый. Возможности gbde по защите ваших данных полностью зависят от качества выбранной вами ключевой фразы. 12 создаётся файл блокировок для вашего раздела gbde, который в нашем случае будет иметь имя gbde должны храниться вместе с содержимым шифруемых разделов. Хотя удаление только блокировочного файла не сможет противостоять дешифрации атакующим раздела gbde, без этого файла даже легитимный пользователь не сможет получить доступ к данным без определённых и значительных усилий, что не поддерживается gbde 8 и его разработчиком. Будет выдан запрос на ввод ключевой фразы, которую вы выбирали во время инициализации зашифрованного раздела. Новое защищённое устройство будет видно в каталоге Как только защищённое устройство будет подключено к системе, вы сможете создать на нём файловую систему. Для этого используется утилита newfs 8. Так как инициализация новой файловой системы UFS2 происходит быстрее, чем инициализация файловой системы старого формата UFS1, то рекомендуется использовать newfs 8 с параметром Замечание: Во FreeBSD 5.1-RELEASE и последующих релизах параметр используется по умолчанию. Замечание: Запуск команды newfs 8 должен выполняться над подключенном разделе gbde, который идентифицируется по расширению Создайте точку монтирования для зашифрованной файловой системы. Смонтируйте защищённую файловую систему. Защищённая файловая система теперь должна быть доступна утилите df 1 и доступной для использования. После каждой загрузки для каждой защищённой файловой системы перед их использованием должны выполняться повторное подключение к системе, проверка на наличие ошибок и монтирование. Требуемые для этого команды должны выполняться пользователем Будет выдан запрос на ввод ключевой фразы, выбранной на этапе инициализации зашифрованного раздела gbde. для автоматического монтирования, то она должны проверяться на наличие ошибок посредством ручного запуска fsck 8 до её монтирования. Теперь защищённая файловая система доступна для работы. Для автоматического подключения, проверки и монтирования зашифрованного раздела можно создать скрипт, но во соображениям безопасности в этом скрипте пароля для gbde 8 быть не должно. Поэтому рекомендуется запускать такие скрипты вручную, а пароль задавать с консоли или сеанса ssh 1. gbde 8 шифрует содержимое секторов при помощи 128-битного AES в режиме CBC. Каждый сектор диска шифруется различным ключом AES. Более полная информацию о системе шифрования gbde, включая алгоритм генерации ключей для секторов из ключевой фразы, вводимой пользователем, можно найти на страницах справочной системы о gbde 4. sysinstall 8 несовместим с устройствами, зашифрованными gbde. Все устройства перед запуском sysinstall 8 должны быть отключены от системы, или эта утилита аварийно завершит работу на этапе обнаружения устройств. Для отключения защищённого устройства, используемого в нашем примере, воспользуйтесь такой командой: Также заметьте, что, так как vinum 4 работает не через подсистему geom 4, то вы не можете использовать тома vinum с Изначально написано Greg Lehey. Перевод на русский язык: Дмитрий Морозовский. Какие бы диски у вас ни были, они всегда будут подвержены ограничениям: Для того, чтобы обойти эти ограничения, можно использовать несколько и, возможно, избыточное число дисков. В дополнение к поддержке разнообразных контроллеров RAID, базовая система FreeBSD включает Менеджер дискового пространства Vinum - - драйвер, реализующий поддержку виртуальных дисков. Vinum позволяет более гибко оперировать дисковым пространством, повысить производительность и надежность дисковой подсистемы за счет реализации моделей RAID-0, RAID-1 и RAID-5, а также их комбинаций. В данной главе кратко рассматриваются потенциальные проблемы традиционной системы хранения данных и методы их решения при помощи Vinum. Vinum произносится Винум, с ударением на первом слоге - - так называемый Менеджер дисковых томов - представляет собой виртуальный дисковый драйвер, призванный решить три вышеописанные проблемы. Взглянем на них более подробно. Предлагаются и реализованы следующие пути: Объемы дисков растут, тем не менее, растут и требования к объемам систем хранения данных. Вы запросто можете оказаться в ситуации, когда требуемый объем файловой системы превышает размеры доступных дисков. Надо признать, что в настоящее время данная проблема стоит не так остро, как 10 лет назад, но тем не менее она существует. Некоторые системы выходят из этого тупика посредством создания мета-устройств, распределяющих хранящиеся данные по нескольким дискам. Современным системам часто необходим одновременный доступ ко многим данным. В частности, крупный FTP или HTTP-сервер может обслуживать тысячи одновременных соединений, поступающих по нескольким 100 Mbit/s каналам во внешний мир, что ощутимо превышает скорость передачи данных большинства дисков. Современные диски могут передавать данные со скоростями до 70 MB/s; однако, эти цифры труднодостижимы в случае, когда к диску обращается большое число независимых процессов, каждый из которых может получить лишь часть этого значения. Интересным будет взглянуть на проблему с точки зрения дисковой подсистемы: важным параметром в нашем случае будет загрузка подсистемы фактом передачи фрагмента данных, а именно время, в течение которого диски, участвующие в передаче, будут заняты. При любом запросе диск сначала должен спозиционировать головки, дождаться подхода к головкам первого сектора из необходимых, и лишь затем выполнить обращение. Данная операция может рассматриваться как атомарная: нет никакого смысла ее прерывать. Рассмотрим типичный запрос на передачу 10 kB информации. Современные высокопроизводительные диски подводят головки в нужную позицию в среднем за 3.5 миллисекунды. Самые быстрые диски вращаются со скоростью 15000 об/мин, так что среднее время на подход первого сектора к головке rotational latency, половина времени одного оборота составит еще 2 миллисекунды. При линейной скорости передачи данных в 70 MB/s собственно чтение/запись займет около 150 микросекунд - - исчезающе мало по сравнению с временем позиционирования. В нашем случае, эффективная скорость передачи данных падает почти до 1 MB/s и, очевидно, сильно зависит от размера передаваемого блока. Традиционным и очевидным решением этой проблемы является принцип больше шпинделей: вместо использования одного большого диска можно применить несколько дисков меньшего размера. Диски позиционируют головки и передают данные независимо, так что эффективная пропускная способность возрастает примерно во столько раз, сколько дисков мы применяем. Точная цифра, разумеется, будет несколько ниже: диски могут передавать данные параллельно, но у нас нет средства обеспечить строго равномерное распределение нагрузки по всем дискам. Нагрузка на один диск неизбежно будет больше чем на другой. Равномерность распределения нагрузки на диски серьезно зависит от способа распределения по ним данных. В терминах дальнейшего обсуждения, будет удобно представить пространство хранения набором большого количества секторов с данными, которые адресуются по номеру, подобно страницам в книге. Наиболее очевидным методом будет поделить виртуальный диск на группы расположенных последовательно секторов размером с физический диск которые будут подобны разделам книги. Этот метод называется конкатенацией или сцеплением concatenation ; его преимуществом является то, что он не налагает никаких ограничений на размеры применяемых дисков. Конкатенация эффективна, если нагрузка на дисковое пространство распределена равномерно. В случае концентрации нагрузки в малой области диска увеличение производительности не будет заметно. Организация секторов на сцепленных единицах хранения показана на Рис. 17-1. Рисунок 17-1. Организация сцепленных дисков Альтернативным подходом будет разделение адресного пространства на компоненты одного, сравнительно небольшого размера, и расположение их последовательно на разных устройствах. Например, первая группа из 256 секторов будет расположены на первом физическом диске, вторая - - на следующем и т.д. n1-я группа попадает на первый диск вслед за первой. Такое расположение называется перемежающимся striping или RAID-0 13. Перемежение требует дополнительных усилий для нахождения нужного блока данных и может приводить к дополнительным нагрузкам на подсистемы ввода-вывода, если передаваемый блок пересекает границу stripe тем самым попадая на разные диски, зато обеспечивает более равномерное распределение нагрузки по физическим дискам. Распределение блоков по физическим дискам в случае striping иллюстрируется Рис. 17-2. Рисунок 17-2. Организация с перемежением Наконец, слабым местом современных дисков является их ограниченная надежность. Несмотря на то, что за последние несколько лет она ощутимо выросла, из всех компонентов сервера отказ дисков наиболее вероятен. Отказ может привести к катастрофическим результатам: замена отказавшего диска и восстановление данных может занять несколько дней. зеркалирование mirroring, обеспечивающее хранение всей информации в двух копиях на различных физических носителях. С момента изобретения аббревиатуры RAID Любой запрос на запись в таком томе приводит к записи в оба подтома, чтение может производиться из любой половины, так что данные остаются доступны в случае отказа одного из дисков. Цена: требуется вдвое больше дисков. Проблемы с производительностью: запись производится на оба диска, требуя вдвое большей пропускной способности шины. Производительность чтения не уменьшается, более того, часто увеличивается. контрольных сумм четности, реализованное в RAID уровней 2, 3, 4 и 5. Наиболее интересен RAID-5 В реализации Vinum, это вариант организации тома с перемежением, при котором один из блоков в страйпе выделяется для хранения четности остальных n-1 блоков. Как требует спецификация RAID-5 положение блока четности меняется от страйпа к страйпу. Рисунок 17-3. Организация RAID-5 является гораздо меньшее требование к объему дисков. Скорость чтения сравнима с чтением в случае томов с перемежением, а вот запись происходит ощутимо медленнее примерно вчетверо медленнее чтения. При отказе одного из дисков массив продолжает работать в деградировавшем режиме: запросы на чтение с оставшихся дисков производятся обычным образом, а блоки с отказавшего диска перевычисляются из данных остальных блоков страйпа. Видимая снаружи сущность - - виртуальный диск, называемый томом volume. Тома в основном аналогичны дискам UNIX, хотя имеются и мелкие различия. На тома нет ограничений по размеру. Тома образуются из наборов plex, каждый из которых представляет полное адресное пространство тома. Данный уровень иерархии, таким образом, реализует избыточность. Наборы являются аналогами отдельных дисков в зеркалированном массиве; содержимое наборов идентично. Поскольку Vinum работает в среде подсистемы хранения данных UNIX, многодисковые наборы можно было бы реализовать на базе дисковых разделов UNIX. На практике, подобная реализация недостаточно гибка диски UNIX могут иметь весьма ограниченное число разделов. Вместо этого Vinum вводит еще один уровень абстракции: единый дисковый раздел UNIX drive в терминах Vinum делится на непрерывные области, называемые поддисками subdisk, которые и будут строительным материалом для наборов. Поддиски, как уже упоминалось, располагаются внутри приводов drive Vinum, существующих дисковых разделов UNIX. Привод может содержать неограниченное количество поддисков. Небольшая область в начале привода зарезервирована под хранение информации о конфигурации и состоянии Vinum; все остальное пространство пригодно для хранения данных. Сейчас мы опишем, как эта иерархия обеспечивает необходимую функциональность для Vinum. Наборы могут состоять из большого количества поддисков, распределенных по разным приводам Vinum. Стало быть, размеры отдельных дисков не ограничивают размер набора, а следовательно, и тома. Vinum реализует избыточность посредством связывания с томом нескольких наборов. Содержимое каждого набора является полной копией содержимого тома. Количество наборов в томе может быть от одного до восьми. Хотя набор представляет данные тома целиком, отдельные части содержимого тома могут быть представлены не всеми наборами. Во-первых, для некоторых частей набора поддиски могут быть не определены; во-вторых, часть набора может быть потеряна из-за отказа диска. До тех пор, пока хотя бы один набор может обеспечить данные для полного адресного пространства тома, том полностью функционален. Vinum поддерживает как конкатенацию, так и перемежение на уровне наборов: Сцепленный набор использует пространство поддисков последовательно, склеивая их встык. Набор с перемежением разбивает данные по поддискам в соответствии с размером страйпа. Поддисков должно быть по меньшей мере два чтобы отличить набор от сцепленного, и все они должны быть одинакового размера. Vinum, распространяемый с FreeBSD версии 6.0 поддерживает два вида организации наборов: Сцепленные наборы наиболее гибки в использовании: они могут содержать любое количество поддисков произвольного размера. Такой набор может быть расширен на лету путем добавления дополнительных поддисков. Поддержка сцепленных наборов требует меньших затрат процессорного времени, чем поддержка наборов с перемежением хотя различие вряд ли поддается измерению. С другой стороны, они наиболее чувствительны к концентрации нагрузки в одной области тома, при которой один из дисков принимает на себя всю нагрузку, а остальные бездействуют. является распределение горячих точек нагрузки; вы можете даже полностью уравнять ее, выбрав оптимальный размер страйпа около 256 kB. Недостатки такой организации - - более сложный код и ограничения на поддиски: все они должны быть строго одного размера. Кроме того, процесс добавления поддиска в набор с перемежением на ходу является настолько нетривиальной задачей, что в настоящее время Vinum не поддерживает эту операцию. Дополнительное тривиальное ограничение состоит в том, что набор с перемежением должен содержать как минимум два поддиска, иначе он будет неотличим от сцепленного. Преимущества и недостатки различных методов организации наборов описаны в Табл. 17-1. Таблица 17-1. Методы организации наборов Vinum Крупные системы хранения, требующие максимальной гибкости и умеренной производительности Высокая производительность, в том числе в случае параллельного доступа к данным Vinum ведет базу данных конфигурации, в которой описаны все объекты Vinum в отдельной системе. Начальная конфигурация создается пользователем при помощи системной утилиты vinum 8 из одного или нескольких конфигурационных файлов. Копия конфигурации хранится в начале каждого дискового раздела привода Vinum. Все копии обновляются при изменении состояния томов, поэтому после перезапуска состояние объектов Vinum восстанавливается. Конфигурационный файл описывает объекты Vinum. Описание простого тома может быть таким: Строка drive объявляет дисковый раздел привод и его местоположение на физическом диске. Приводу дано символьное имя a. Разделение символьных имен и имен устройств дает возможность перемещать физические диски например, по разным контроллерам, или менять их местами без изменения конфигурации. Строка volume описывает том. Единственным требуемым параметром является имя тома Строка plex определяет набор. Единственный обязательный параметр - - метод организации набора, в нашем случае concat сцепленный. Давать набору имя в явном виде не обязательно: Vinum автоматически сгенерирует имя набора из имени тома и суффикса.p x, где x - номер набора в томе. В нашем случае набор будет называться myvol.p0. Наконец, строка sd описывает поддиск. Минимальными требованиями к его описанию являются имя привода, на котором он будет располагаться, и его размер. Как и в случае набора, имя указывать не обязательно: имя поддиска будет построено добавлением.s x будет номером поддиска в наборе. Наш поддиск получит имя myvol.p0.s0. На этом кратком листинге показан формат вывода vinum 8. Графически созданный нами том представлен на Рис. 17-4. Рисунок 17-4. Простой том Vinum Этот и последующие рисунки изображают том, содержащий один или несколько наборов, каждый из которых, в свою очередь, состоит из одного или нескольких поддисков. В первом тривиальном примере том состоит из одного набора, представленного одним поддиском. Построенный нами только что том не имеет никаких преимуществ перед обычным дисковым разделом. Он содержит единственный набор, так что не обеспечивает избыточность; набор состоит из одного поддиска, поэтому методика распределения дисковых блоков ничем не отличается от дискового раздела. В последующих параграфах мы рассмотрим более интересные конфигурации. Надежность тома может быть повышена при помощи зеркалирования. Планируя зеркалированный том, важно не забыть о том, чтобы поддиски каждого набора располагались на разных физических дисках, чтобы отказ одного из них не привел к выходу из строя более чем одного набора. Вот конфигурация, определяющая зеркалированный том: Как мы видим, нет необходимости вновь описывать привод a, поскольку Vinum сохраняет состояние уже сконфигурированных объектов. После обработки этих определений конфигурация будет выглядеть так: Рис. 17-5 иллюстрирует структуру полученного тома. Рисунок 17-5. Зеркалированный том Vinum В данном примере каждый набор содержит все 512 MB адресного пространства тома. Как и в предыдущем случае, каждый набор состоит из одного поддиска. Зеркалированный том из предыдущего примера гораздо более отказоустойчив, чем обычный том, но его производительность ниже: каждый запрос на запись выливается в две операции физической записи, что вдвое увеличивает необходимую пропускную способность шины дисковой подсистемы. Увеличение производительности требует иного подхода: вместо зеркалирования данные распределяются перемежением по максимальному количеству физических дисков. Следующий пример конфигурации создает том с перемежением на четырех дисках: Как и ранее, нет необходимости переопределять уже сконфигурированные приводы. Общий вид базы конфигурации Vinum после создания нового тома будет таким: Рисунок 17-6. Том с перемежением Новосозданный том представлен на Рис. 17-6. Плотность заштрихованных участков показывает расположение страйпов в адресном пространстве набора от светлых к темным. При наличии достаточного количества дисков можно создать том, сочетающий повышенную отказоустойчивость и высокую производительность по сравнению со стандартными дисковыми разделами UNIX. Типичная конфигурация может быть такой: Как вы можете заметить, поддиски второго набора смещены на два привода относительно поддисков первого. В результате даже при запросе на запись, пересекающем границы страйпа, не возникнет двух обращений к одному физическому диску. Рисунок 17-7. Зеркалированный том с перемежением Как уже было описано, Vinum автоматически именует создаваемые наборы и поддиски, хотя эти имена и могут быть переопределены. На самом деле, мы не рекомендовали бы переопределять стандартные имена: опыт с дисковым менеджером VERITAS показал, что гибкость в именовании объектов не дает ощутимого преимущества, а запутать пользователя может. Имена объектов могут состоять из любых непробельных символов. Впрочем, рекомендуем ограничиться буквами, цифрами и подчеркиваниями. Имена томов, наборов и поддисков могут быть до 64 символов длиной; максимальная длина имени привода - - 32 символа. создаются файлы устройств. Приведенный выше пример конфигурации создаст следующий набор устройств: используемые системной утилитой vinum 8 и даемоном Vinum соответственно. Блоковые и символьные устройства для каждого из томов. Основные устройства, используемые Vinumом. Блоковые устройства именуются в соответствии с именами томов; символьные, в соответствии с традицией именования устройств BSD, имеют префикс r. Таким образом, вышеописанная конфигурация будет включать блоковые устройства и символьные устройства с записями для каждого привода. В реальности, каждая запись является символьной ссылкой на соответствующий файл дискового устройства. с записями для томов. В нем содержатся поддиректории для каждого набора, внутри которых, в свою очередь, имеются поддиректории для каждого из поддисков. содержащие блочные устройства для наборов, блочные и символьные устройства для каждого из поддисков. Например, для конфигурации, описываемой как после обработки vinum 8, созданный набор устройств в каталоге brwx-- 1 root wheel 25, 0x40000001 Apr 13 16:46 Control brwx-- 1 root wheel 25, 0x40000002 Apr 13 16:46 control brwx-- 1 root wheel 25, 0x40000000 Apr 13 16:46 controld drwxr-xr-x 2 root wheel 512 Apr 13 16:46 drive drwxr-xr-x 2 root wheel 512 Apr 13 16:46 plex crwxr-xr- 1 root wheel 91, 2 Apr 13 16:46 rs64 drwxr-xr-x 2 root wheel 512 Apr 13 16:46 rsd drwxr-xr-x 2 root wheel 512 Apr 13 16:46 rvol brwxr-xr- 1 root wheel 25, 2 Apr 13 16:46 s64 drwxr-xr-x 2 root wheel 512 Apr 13 16:46 sd drwxr-xr-x 3 root wheel 512 Apr 13 16:46 vol/dev/vinum/drive: total 0 lrwxr-xr-x 1 root wheel 9 Apr 13 16:46 drive1 - /dev/sd1h lrwxr-xr-x 1 root wheel 9 Apr 13 16:46 drive2 - /dev/sd2h lrwxr-xr-x 1 root wheel 9 Apr 13 16:46 drive3 - /dev/sd3h lrwxr-xr-x 1 root wheel 9 Apr 13 16:46 drive4 - /dev/sd4h/dev/vinum/plex: total 0 brwxr-xr- 1 root wheel 25, 0x10000002 Apr 13 16:46 s64.p0/dev/vinum/rsd: total 0 crwxr-xr- 1 root wheel 91, 0x20000002 Apr 13 16:46 s64.p0.s0 crwxr-xr- 1 root wheel 91, 0x20100002 Apr 13 16:46 s64.p0.s1 crwxr-xr- 1 root wheel 91, 0x20200002 Apr 13 16:46 s64.p0.s2 crwxr-xr- 1 root wheel 91, 0x20300002 Apr 13 16:46 s64.p0.s3/dev/vinum/rvol: total 0 crwxr-xr- 1 root wheel 91, 2 Apr 13 16:46 s64/dev/vinum/sd: total 0 brwxr-xr- 1 root wheel 25, 0x20000002 Apr 13 16:46 s64.p0.s0 brwxr-xr- 1 root wheel 25, 0x20100002 Apr 13 16:46 s64.p0.s1 brwxr-xr- 1 root wheel 25, 0x20200002 Apr 13 16:46 s64.p0.s2 brwxr-xr- 1 root wheel 25, 0x20300002 Apr 13 16:46 s64.p0.s3/dev/vinum/vol: total 1 brwxr-xr- 1 root wheel 25, 2 Apr 13 16:46 s64 drwxr-xr-x 3 root wheel 512 Apr 13 16:46 : total 1 brwxr-xr- 1 root wheel 25, 0x10000002 Apr 13 16:46 s64.p0 drwxr-xr-x 2 root wheel 512 Apr 13 16:46 : total 0 brwxr-xr- 1 root wheel 25, 0x20000002 Apr 13 16:46 s64.p0.s0 brwxr-xr- 1 root wheel 25, 0x20100002 Apr 13 16:46 s64.p0.s1 brwxr-xr- 1 root wheel 25, 0x20200002 Apr 13 16:46 s64.p0.s2 brwxr-xr- 1 root wheel 25, 0x20300002 Apr 13 16:46 s64.p0.s3 Заметим, что, несмотря на то что наборы и поддиски не рекомендуется называть каким-либо специальным образом, приводы Vinum должны быть поименованы. Именование позволяет отвязать приводы от физических устройств, и при этом обеспечить их автоматическое распознавание. Имена приводов могут достигать длины в 32 символа. Тома с точки зрения системы аналогичны дискам, за одним малым исключением: в отличие от дисков UNIX, тома Vinum не содержат таблиц разделов. В результате потребовалось модифицировать некоторые утилиты работы с дисками, в первую очередь newfs 8, которая ранее использовала последний символ имени тома для определения идентификатора раздела. Например, дисковое устройство может именоваться Том Vinum может называться, например, как легко видеть, имя тома никак не связано с именем раздела. Замечание: Дальнейшее относится к версиям FreeBSD до 5.0: ядро FreeBSD не включает Vinum. Хотя и можно собрать специальное ядро с включенной поддержкой Vinum, этот вариант не рекомендуется. Обычный способ активизации Vinum - - загрузка модуля для ядра kld При этом, явно использовать команду kldload 8 нет необходимости: при старте утилита vinum 8 проверит наличие поддержки Vinum в ядре и при необходимости загрузит модуль автоматически. Vinum хранит конфигурационную информацию на дисковых разделах в той же форме, что используется в файлах конфигурации при создании объектов. Впрочем, в них применяются некоторые ключевые слова, не разрешенные в файлах конфигурации. Например, хранимая на диске база может выглядеть так: volume myvol state up volume bigraid state down plex name myvol.p0 state up org concat vol myvol plex name myvol.p1 state up org concat vol myvol plex name myvol.p2 state init org striped 512b vol myvol plex name bigraid.p0 state initializing org raid5 512b vol bigraid sd name myvol.p0.s0 drive a plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 0b sd name myvol.p0.s1 drive b plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 1048576b sd name myvol.p1.s0 drive c plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 0b sd name myvol.p1.s1 drive d plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 1048576b sd name myvol.p2.s0 drive a plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 0b sd name myvol.p2.s1 drive b plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 524288b sd name myvol.p2.s2 drive c plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1048576b sd name myvol.p2.s3 drive d plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1572864b sd name bigraid.p0.s0 drive a plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 0b sd name bigraid.p0.s1 drive b plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 4194304b sd name bigraid.p0.s2 drive c plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 8388608b sd name bigraid.p0.s3 drive d plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 12582912b sd name bigraid.p0.s4 drive e plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 16777216b Видно, что каждый объект имеет явно описанное имя, а поддиски еще и явное положение на приводе и то и другое может, хотя это и не рекомендуется, устанавливаться пользователем. Помимо этого, для каждого объекта хранится его состояние и установка состояния напрямую пользователю недоступна. Vinum не хранит в конфигурационных базах информацию о приводах: она создается при сканировании дисковых разделов, помеченных как Vinum. Это дает возможность Vinum правильно идентифицировать диски при смене имени устройства. создайте его с таким содержимым. Данная строка вызовет активацию kld модуля Vinum при загрузке, а также старт всех объектов, упомянутых в конфигурации Vinum. Активация Vinum происходит до монтирования файловых систем, так что возможны автоматическая проверка fsck 8 и монтирование файловых систем на томах Vinum. Vinum читает базы конфигурации с одного из приводов. В нормальной ситуации все приводы содержат идентичную информацию о конфигурации, так что не имеет значения, какой именно диск будет читаться. В случае краха Vinum определяет, какая копия является наиболее свежей, в дальнейшем использует ее, а также обновляет ее на оставшихся приводах. Сервер, все информационные файловые системы которого дублированы, хотелось бы оснастить и зеркалированной корневой файловой системой. Создание такой конфигурации не вполне тривиально по сравнению с зеркалированием прочих файловых систем: Корневая файловая система должна быть доступна для чтения в самом начале процесса загрузки, так что инфраструктура Vinum должна к этому моменту уже работать. Том с корневой файловой системой содержит, помимо прочего, системный загрузчик и ядро, которые должны читаться родными native утилитами компьютера BIOS для машин архитектуры PC; обеспечить поддержку ими тонкостей Vinum зачастую невозможно. В данном разделе термин корневой том означает том Vinum, содержащий корневую файловую систему. Неплохой идеей является назвать такой том хотя это, разумеется, и необязательно. Все наши примеры, впрочем, будут использовать именно это имя. Vinum должен быть доступен ядру еще на этапе загрузки. Метод, описанный в Разд. 17.8.1.1, неприменим; на самом деле, параметр не должен быть установлен. Одним из вариантов является сборка ядра с поддержкой Vinum, что возможно, но, как правило, нежелательно. Более удобный вариант - - загрузка модуля ядра Vinum при помощи Vinum должен быть активирован достаточно рано, поскольку требуется предоставить том для корневой файловой системы. По умолчанию Vinum в ядре не начинает поиск приводов, содержащих информацию о томах Vinum, до команды администратора или одного из стартовых скриптов Замечание: Данный раздел описывает необходимые действия для FreeBSD версии 5.X и старше. Шаги, необходимые в случае FreeBSD версии 4.X, описаны ниже: Разд. 17.9.5. указывает Vinum автоматически просканировать все диски для сбора информации о томах в процессе загрузки ядра. Обращаем ваше внимание, что нет необходимости как-либо специально сообщать ядру, где находится корневая файловая система. Загрузчик и передаст его ядру. В момент монтирования корневой файловой системы ядро передаст имя устройства соответствующему драйверу для декодирования трансляции в пару идентификаторов устройств - - major/minor device number. В настоящее время начальный загрузчик FreeBSD ограничен размером всего в 7.5 KB, и этот размер фактически исчерпан загрузчик должен уметь прочесть файл с файловой системы формата UFS и передать ему управление. Невозможно разместить в загрузчике внутренние структуры Vinum, чтобы он мог считать настройку Vinum и самостоятельно определить элементы загрузочного тома. Поэтому, для создания у загрузчика иллюзии, что загрузка происходит со стандартного раздела требуются некоторые дополнительные ухищрения. Для того, чтобы такая загрузка вообще была возможной, корневой том должен отвечать следующим требованиям: быть только зеркалированным ни перемежение, ни RAID5 невозможны; содержать ровно один поддиск на каждом из наборов. Заметим, что возможно и является, вообще говоря, основной целью, чтобы корневой том содержал несколько наборов, каждый с копией корневой файловой системы. В процессе загрузки, впрочем, используется только одна из копий на этапе поиска начального загрузчика и его конфигурационных файлов, ядра, модулей и т.п. до момента монтирования корневой файловой системы. Для обеспечения возможности загрузки поддиск каждого из наборов должен быть отображен в псевдо-раздел Вообще говоря, эти псевдо-разделы не обязаны находиться на одних и тех же местах дисков; тем не менее, во избежание излишней путаницы, рекомендуется создавать тома с одинаково устроенными дисками для зеркалирования. необходимо для каждого из дисков, содержащих копию корневого тома, проделать следующее: Определить положение смещение от начала устройства и размер поддиска, являющегося частью корневого тома: Отметим, что все размеры и смещения в терминах Vinum указаны в байтах. Для получения номеров блоков, используемых в утилите все числа надо поделить на 512. для каждого из дисков, на котором будет расположен корневой том. будет или именем диска например, для дисков без таблицы слайсов, или именем слайса скорее всего, это предыдущая инкарнация корневой файловой системы, он должен быть переименован чтобы быть доступным в будущем, на всякий случай; при этом стартовый загрузчик больше не должен выбирать его по умолчанию. Не забудьте, что активный например, смонтированный раздел не может быть переименован, так что переименование нужно производить или загрузившись с диска Fixit, или в два шага для конфигурации с зеркалированием сначала переименовать раздел на втором диске, затем, после перезагрузки, на первом. Затем, адрес начала нового раздела вычисляется как сумма начального смещения раздела Vinum и подсчитанного выше адреса поддиска внутри привода. Совместно с вычисленным размером эти значения вносятся в поля желательно заполнить в соответствии с имеющейся файловой системой, хотя в обсуждаемом контексте это и не строго обязательно. Как можно заметить, новосозданный раздел располагается внутри раздела Vinum. Утилита разрешает разделам пересекаться только в случае, если один из них корректно описан как имеющий тип Готово! Сконструированный псевдо-раздел создан на каждом из устройств, содержащих реплики корневого тома. Крайне важно проверить результат еще раз, выполнив команду Следует помнить, что все файлы, содержащие загрузочную конфигурацию, должны быть построены в соответствии с новой корневой файловой системой; скорее всего, эта информация не будет соответствовать текущему положению вещей. В особенности, следует обратить внимание на содержимое файлов После перезагрузки начальный загрузчик должен определить данные новой корневой файловой системы на основе Vinum и действовать в соответствии с ними. В завершение процесса инициализации ядра, после упоминания всех определившихся устройств, должно появиться сообщение вида: После создания корневого тома, вывод команды Subdisk root.p0.s0: Size: 125829120 bytes 120 MB State: up Plex root.p0 at offset 0 0 B Drive disk0/dev/da0h at offset 135680 132 kB Subdisk root.p1.s0: Size: 125829120 bytes 120 MB State: up Plex root.p1 at offset 0 0 B Drive disk1/dev/da1h at offset 135680 132 kB После деления на 512 получим 265 дисковых блоков для утилиты Аналогичным образом, размер тома составит 245760 512-байтных блоков. Так же устроена реплика тома на диске Как уже отмечалось, размер соответствует значению, вычисленному ранее; смещение и смещения самого этого раздела относительно начала диска слайса. Так мы избегаем проблем, описанных ниже Разд. 17.9.4.3. Заметим также, что раздел описывающего все данные Vinum на этом диске. Заметим, что в описанном примере все дисковое пространство отдано Vinum. Корневого раздела, существовавшего до настройки Vinum, нет, поскольку это вновь установленный диск, предназначенный для использования исключительно в Vinum. Если что-то пошло не так, должен быть путь для восстановления доступа к информации. Далее описаны некоторые известные проблемные ситуации и способы их устранения. Если по каким-то причинам система не может завершить загрузку, загрузчик может быть прерван нажатием пробела в течение первых 10 по умолчанию секунд. Вы можете посмотреть переменные загрузчика такие как Если единственной проблемой было отсутствие загруженного модуля ядра Vinum, поможет просто команда режиме. При этом корневая файловая система будет смонтирована в режиме только для чтения read-only. В результате, даже если будет смонтирован лишь один набор из многонаборного тома, риска рассинхронизации наборов нет. Ответом на приглашение ввести адрес корневой файловой системы может быть имя любого устройства, указывающего на файловую систему, пригодную для загрузки. При корректно построенной карте файловых систем Распространенной альтернативой будет, например, раздел, содержащий корневую файловую систему в эпоху до Vinum. Будьте осторожны, монтируя в качестве корневой файловой системы раздел ссылающийся внутрь привода Vinum. В зеркалированном томе смонтируется только часть файловой системы. Если вам потребуется изменить ее содержимое, необходимо будет также удалить и создать заново остальные наборы тома в конфигурации Vinum, иначе они будут содержать несинхронизированные данные. не загружается, а основной загрузчик все еще пригоден к работе в начале процесса загрузки появляется одиночный минус в первой колонке экрана, можно попытаться прервать основной загрузчик нажатием пробела в этот момент. При этом загрузка будет остановлена на второй стадии см. Разд. 12.3.2. Можно попробовать загрузиться с другого раздела, например, содержащего предыдущую копию корневой файловой системы бывший раздел Это происходит, когда загрузчик на диске затерт Vinumом. К сожалению, Vinum оставляет лишь 4 KB в начале своего раздела до записи своих управляющих блоков. Две стадии первоначального загрузчика в совокупности с меткой диска BSD disklabel требуют 8 KB. Так что попытка создать раздел Vinum по смещению 0 диска или слайса, который должен быть загруженным, затрет загрузчик. Что хуже, попытка разрешить описанную ситуацию посредством загрузки с диска Fixit и перезаписи начального загрузчика при помощи команды как описано в Разд. 12.3.2 приведет к тому, что загрузчик затрет управляющий заголовок Vinum, и тот не сможет найти свой диск. Хотя собственно конфигурация Vinum при этом не потеряется, и все данные могут быть восстановлены посредством создания объектов на их предыдущих местах, очень сложно окончательно исправить ситуацию. Весь раздел Vinum должен быть смещен по крайней мере на 4 KB, так чтобы загрузчики и заголовок Vinum более не пересекались. В системах под управлением FreeBSD 4.X отсутствуют некоторые функции ядра, необходимые для автоматического сканирования дисков Vinumом; кроме того, код, определяющий номера устройств корневой файловой системы, недостаточно продвинут для того, чтобы понимать конструкции вида Требуется приложение дополнительных усилий. должен быть явно указан список дисков, которые Vinum будет сканировать: Важно, чтобы были описаны все приводы, на которых могут встретиться данные Vinum. Не произойдет ничего плохого, если будет описано больше дисков, чем необходимо. Также, нет нужды описывать все слайсы и/или разделы Vinum сканирует их автоматически. Поскольку подпрограммы разбора имени корневой файловой системы и определения номеров устройств воспринимают только классические имена, такие как для них не подходят имена типа Имя корневого тома должно быть сообщено Vinum отдельно. Для этого служит переменная загрузчика Соответствующая строка в файле Процедура инициализации ядра выглядит так: перед определением корневого устройства для загрузки проверяется, не установил ли какой-либо модуль соответствующий параметр ядра. В случае положительного ответа и при совпадении основного major номера устройства драйвера и установленной файловой системы автоопределение прекращается, что дает возможность передать продолжение процесса загрузки и монтирование корневого тома Vinum. Следует отметить, впрочем, что обработчик ответа на запрос имени корневой файловой системы не может разобрать имя тома Vinum. Можно ввести имя устройства, отличное от устройства Vinum в этом случае произойдет стандартная процедура разбора, так что можно указать, например, не могут быть распознаны. Единственным выходом из этой ситуации будет перезагрузка и введение имени устройства заново префикс в ответе на запрос askroot всегда можно опустить. Предоставил Andrey A. Chernov. Перевод на русский язык: Александр Пересунко, Денис Пеплин. FreeBSD - это очень распределенный проект, пользователи и контрибьюторы которого находятся в самых разных частях света. В этой главе рассказывается о возможностях интернационализации и локализации FreeBSD, которые позволяют не-англоговорящим пользователям делать свою работу. Существует много подходов в i18n реализации - как на системном уровне, так и на уровне приложений, так что, где это возможно, мы будем давать читателю ссылки на более углубленные источники документации. После прочтения этой главы, вы будете знать: Как разные языки и региональные настройки кодируются в современных операционных системах. Как установить региональные настройки для вашей оболочки. Как настроить вашу консоль для отличных от английского языков. Как эффективно использовать X Window System с разными языками. Где найти дополнительную документацию по созданию i18n-совместимых приложений. Знать как установить дополнительные приложения сторонних разработчиков Гл. 4. Разработчики сократили интернационализацию в термин I18N, по числу символов между первым и последним символом интернационализации. В названии L10N используется тот же принцип от локализации. Совместно используемые I18N/L10N методы, протоколы и приложения позволяют пользователям использовать языки по своему выбору. I18N приложения написаны с применением набора I18N посредством библиотек. Это позволяет разработчикам писать простые файлы и переводить отображаемые меню и надписи на разные языки. Мы настоятельно рекомендуем программистам следовать этому соглашению. I18N/L10N используется всегда, когда вы хотите просмотреть, ввести или обработать данные на отличных от английского языках. I18N и L10N не являются специфичными для FreeBSD. На текущий момент у вас есть выбор между самыми распространенными языками мира, включая, но не ограничиваясь: китайский, немецкий, японский, корейский, французский, русский, вьетнамский и др. При всем своем величии, I18N не специфична для FreeBSD и является, по сути, соглашением. Следование этому соглашению помогает FreeBSD, и мы это приветствуем. Настройки локализации базируются на трех основных терминах: код языка, код страны и кодировка. Имена локализаций строятся из этих частей следующим образом: Чтобы настроить FreeBSD или любую другую UNIX - систему, поддерживающую I18N на использование специфического языка, пользователю нужно выяснить коды этого языка и страны коды страны сообщают приложению какой именно диалект языка этой страны нужно использовать. К тому же, веб-браузеры, SMTP/POP серверы, веб-серверы и т.п. делают свой выбор в зависимости от этого. Далее показаны примеры кодов языка/страны: Некоторые языки используют не соответствующие ASCII кодировки, которые используют для кодирования 8 бит, расширенное или многобайтовое представление символов подробности см. в multibyte 3. Старые приложения не распознают такие кодировки и ошибочно принимают их за управляющие символы. Новые приложения обычно распознают 8-битные символы. В зависимости от реализации, пользователю может потребоваться компиляция приложения с поддержкой расширенного или многобайтного представления символов, или же просто правильная его настройка. Чтобы иметь возможность вводить и обрабатывать символы с расширенным или многобайтным представлением, Коллекция портов FreeBSD предоставляет поддержку разных языков для различных приложений. Смотрите документацию по I18N в соответствующем порту FreeBSD. В частности, пользователю необходимо читать прилагаемую к приложению документацию чтобы решить, как правильно его настроить или указать правильные параметры configure/Makefile/компилятору. Наборы символов, использующие один байт для кодирования символа см. multibyte 3, например, ISO-8859-1, ISO-8859-15, KOI8-R, CP437. Расширенные или многобайтные кодировки, например, EUC, Big5. Вы можете посмотреть актуальный список наборов символов на сайте IANA Registry. Замечание: Вместо этого, FreeBSD версий 4.5 и выше используют X11-совместимые кодировки для локализации. В системе Портов и Пакетов FreeBSD в название приложений, поддерживающих I18N, включена аббревиатура для легкой их идентификации. И, тем не менее, не все приложения поддерживают требуемый язык. Вашей оболочки. Это можно сделать в пользовательском Нет надобности устанавливать отдельные параметры локализации такие как За дополнительной информацией, пожалуйста, обращайтесь к документации FreeBSD по нужному вам языку. Эти настройки включают конфигурацию оболочки пользователя, конфигурацию конкретных приложений и конфигурацию X11. Существует два метода настройки локализации и оба описаны ниже. Первый рекомендуемый заключается в задании переменных в классе логина, другой метод заключается в задании переменных окружения в инициализационном файле системной оболочки. Этот метод позволяет установить переменные окружения, необходимые для установки локализации и набора символов MIME, однократно для любых оболочек, вместо того, чтобы добавлять установку этих переменных в инициализационный файл каждой оболочки. Настройка на уровне пользователя может быть сделана самим пользователем, а Настройка на уровне администратора требует привилегий суперпользователя. в домашнем каталоге пользователя, в котором задаются обе переменные для кодировки Latin-1: который задает переменные для Традиционного Китайского языка в кодировке BIG-5. Обратите внимание, что задается намного больше переменных, потому что некоторое программы некорректно воспринимают переменные окружения локализации для Китая, Японии и Кореи. Пользователи, которые не хотят использовать денежные единицы и форматы времени Тайваня, могут вручную изменить каждую переменную 5::charsetbig5::xmodifiersimxcin: Setting the XIM Input Server Проверьте, что класс логина пользователя в задает нужный язык. Убедитесь, что эти настройки присутствуют в Используя наш предыдущий пример с Latin-1, это должно выглядеть так: для добавления новых пользователей и отредактируйте запись о пользователе, чтобы она была похожа на эту: Помните, что в этом случае вы должны задать класс для всех пользователей других языков. Другой способ заключается в задании класса логина каждый раз, когда adduser 8 попросит об этом: Еще один способ - использовать следующее для каждого пользователя другого языка, которого вы хотите добавить: Если для добавления новых пользователей вы используете утилиту pw 8, запускайте ее с такими параметрами: Замечание: Этот метод не рекомендуется, потому что он требует разных настроек для каждой оболочки. Вместо этого используйте Метод класса логина. Чтобы добавить локализацию и набор символов MIME, просто установите две переменные окружения, приведенные ниже, в инициализационные файлы оболочек Для примера мы используем немецкий язык: 8859-1; export LANG MMCHARSETISO-8859-1; export MMCHARSET Как вариант, вы можете добавить установки, приведенные выше в 8859-1; export LANG В зависимости от вашей оболочки см. выше. Для всех однобайтовых кодовых таблиц, укажите подходящие консольные шрифты в без указания расширения в FreeBSD версий более ранних, чем 5.2. В sysinstall выберите Configure, затем Console. Или добавьте следующие строки в Screenmap с соответствующим шрифтом обычно используется в качестве обходного пути для расширения 8 бит до 9 бит в псевдографическую область VGA адаптера, например для удаления букв из этой области если используется 8-битный шрифт. прочтите информацию о курсоре мыши в следующем параграфе. По умолчанию драйвер syscons 4 выделяет для курсора мыши в таблице символов диапазон 0xd0-0xd3. Если в вашем языке используется этот диапазон, переместите этот диапазон. В FreeBSD версий до 5.0, добавьте следующую строку в файл конфигурации ядра: Для FreeBSD версий 4.4 и выше включите следующую строку в Если вы не знаете какую таблицу использовать, запустите kbdmap 1 для тестирования таблицы без перезагрузки. обычно требуется для сопоставления функциональных клавиш выбранному типу терминала, поскольку последовательности функциональных клавиш не могут быть определены в раскладке клавиатуры. Убедитесь также, что для всех записей установлен подходящий тип терминала. Имеющиеся типы соответствуют следующим кодировкам: Для расширенных кодировок, а также для многобайтовых кодировок, используйте порт FreeBSD из каталога Некоторые порты выводят информацию на консоль, хотя для системы выглядят как последовательные псевдотерминалы, следовательно вы должны зарезервировать достаточное количество псевдотерминалов и для X11 и для последовательных псевдоконсолей. Вот неполный список приложений для использования этих кодировок в консоли: Хотя X11 не является частью проекта FreeBSD, мы включили сюда некоторую информацию для пользователей FreeBSD. За детальной информацией обращайтесь к Веб сайту Xorg или к сайту того сервера X11, который вы используете. вы можете внести дополнительные I18N настройки приложений настройки шрифтов, меню и т.п. затем TrueType шрифты для используемого языка. После установки корректного значения locale меню, сообщения и т.д. должны появиться на соответствующем языке. Протокол X11 Input Method XIM это новый стандарт для всех клиентов X11. Все приложения X11 должны быть написаны как XIM клиенты, получающие ввод с серверов XIM Input. Существует несколько XIM серверов, доступных для различных языков. Некоторые однобайтовые кодовые таблицы обычно поддерживаются принтерами на аппаратном уровне. Расширенные, или мультибайтовые кодовые таблицы требуют дополнительной настройки. Мы рекомендуем использование apsfilter. Кроме того, вы можете преобразовать документ в формат PostScript или PDF с помощью поддерживающих соответствующий язык программ. Файловая система FreeBSD fast filesystem, FFS поддерживает 8-битные символы, ее можно использовать с любой односимвольной кодовой таблицей см. multibyte 3, но кодовые таблицы не хранятся в файловой системе; т.е. ей ничего не известно о порядке расположения символов в кодовой таблице. Официально FFS пока не поддерживает расширенные или много символьные кодовые таблицы. Однако, для некоторых расширенных или многобайтовых кодировок есть неофициальные патчи, включающие их поддержку в FFS. Это всего лишь временные не переносимые решения или исправления кода и мы решили не включать их в дерево исходных текстов. Обращайтесь к сайтам по соответствующим языкам за дальнейшей информацией и патчами. Файловая система MS-DOS в FreeBSD может быть настроена для поддержки перекодировки между MS-DOS, кодовыми таблицами Unicode и выбранной кодовой таблицей FreeBSD. Обращайтесь к mountmsdos 8 за подробностями. Многие порты FreeBSD были созданы с поддержкой I18N. Некоторые из них помечены символами - I18N в имени порта. Эти и многие другие программы имеют встроенную поддержку I18N и не нуждаются в специальной настройке. Однако, некоторые приложения, такие как MySQL, требуют указания кодировки в Это обычно делается правкой configure при сборке из исходных текстов. Первоначально предоставил Andrey A. Chernov. Обратитесь к вышеизложенному материалу этой главы за соответствующей информацией. Для FreeBSD версий до 5.0 добавьте к файлу настройки ядра следующую строку: Для FreeBSD версий 4.4 и выше вставьте следующую строку в в качестве типа терминала. Обратитесь к вышеизложенному материалу этой главы за примерами настройки консоли. Большинство принтеров для России поставляются с аппаратной кодовой страницей CP866, требуется специальный выходной фильтр для перекодировки из KOI8-R в CP866. Такой фильтр устанавливается по умолчанию в выбирает имя используемой локализации, а параметр задает таблицу перекодировки. При использовании параметра смонтирован перед разделом MS-DOS, поскольку таблицы перекодировки расположены в каталоге За более подробной информацией обращайтесь к странице справочника mountmsdos 8. Замечание: Локализация KOI8-R может не работать со старыми релизами XFree86 ниже 3.3. На настоящий момент в FreeBSD в качестве системы X Window по умолчанию используется Xorg. Поэтому если только вы не используете старые версии FreeBSD, это не должно стать проблемой. Вышеуказанный порт установит последнюю версию KOI8-R шрифтов. В Xorg так же как и в XFree86 версии 3.3 и выше уже есть некоторые KOI8-R шрифты, но эти масштабируются лучше. Следующие строки должны быть добавлены перед всеми записями Если вы используете видеорежим с высоким разрешением, поменяйте местами строки для 75 dpi и 100 dpi. Для настройки ввода на русском языке, добавьте нижеприведенные строки в раздел отключен закомментирован в этом разделе. Переключателем RUS/LAT служит CapsLock. Прежняя функция CapsLock только в режиме LAT. Если на вашей клавиатуре есть клавиши Windows, и некоторые не-алфавитные клавиши работают неправильно в режиме RUS, добавьте следующую строку в файл XFree86, прочтите предупреждение выше с более подробной информацией. Ввод на русском языке может также не работать с нелокализованными приложениями. Минимально локализованные приложения должны вызывать функцию XtSetLanguageProc NULL, NULL, NULL; в начале программы. Обратитесь к KOI8-R for X Window за дальнейшими инструкциями по локализации приложений X11. У проекта FreeBSD-Taiwan есть Chinese HOWTO для FreeBSD по адресу /statue/freebsd/zh-tut/, в котором используются многие порты на китайском. На данный момент редактором написал учебник по использованию umlauts в FreeBSD. Учебник написан на немецком и доступен по адресу /de/umlaute/. Отдельные контрибьюторы FreeBSD перевели части документации FreeBSD на другие языки. Эти переводы доступны на основном сайте или из каталога Реструктурирование, реорганизацию и частичное обновление выполнил Jim Mock. Оригинальный текст написал Jordan Hubbard, Poul-Henning Kamp, John Polstra, Nik Clayton. Перевод на русский язык: Андрей Захватов. Между релизами над FreeBSD ведется постоянная работа. Для тех, кто хочет быть на переднем крае, есть несколько простых методов для поддержания своей системы в соответствии с последними разработками. Будьте осторожны - - передний край не для всех! Эта глава поможет вам решить, хотите ли вы отслеживать систему в процессе работы над ней или останетесь верным одному из выпущенных релизов. Разницу между двумя ветвями разработки: FreeBSD-STABLE и FreeBSD-CURRENT. Полностью настроить своё подключение к сети Гл. 25. Знать, как устанавливать дополнительное программное обеспечение других разработчиков Гл. 4. Во FreeBSD имеется две ветки разработки: FreeBSD-CURRENT и FreeBSD-STABLE. Этот раздел описывает каждую из них и объясняет, как синхронизировать вашу систему с любой из веток. Сначала будет обсуждаться ветка FreeBSD-CURRENT, затем FreeBSD-STABLE. Пока вы читаете этот текст, помните, что FreeBSD-CURRENT является передовым краем работ над FreeBSD. Предполагается, что пользователи FreeBSD-CURRENT технически более грамотны и могут решать проблемы с системой самостоятельно. Если вы являетесь во FreeBSD новичком, вам лучше сначала дважды подумать, прежде чем её устанавливать. FreeBSD-CURRENT является последними рабочими версиями исходных текстов FreeBSD. Сюда включаются неоконченные работы, экспериментальные изменения и промежуточные механизмы, которые могут присутствовать, а могут и отсутствовать в следующем официальном релизе программного обеспечения. Хотя многие из разработчиков FreeBSD выполняют компиляцию из исходных текстов FreeBSD-CURRENT ежедневно, случаются периоды, когда исходные тексты заведомо не могут быть откомпилированы. Такие проблемы обычно решаются так быстро, как это возможно, но всё-таки момент, когда вы загрузили исходные тексты FreeBSD-CURRENT, может повлиять на то, содержат они мину замедленного действия или очень нужную функциональность! Участники проекта FreeBSD, активно работающие над некоторой частью дерева исходных текстов и для кого работа в current является абсолютной необходимостью. Участники проект FreeBSD, которые являются активными тестерами. Они тратят свое время на исправление проблем для того, чтобы FreeBSD-CURRENT оставалась, насколько это возможно, нормально работающей системой. Есть также люди, которые вносят важные предложения по изменениям и общему направлению развития FreeBSD и присылают свои патчи, реализующие эти изменения. Те, кто просто хотят быть в курсе всех изменений или используют текущие исходные тексты для ознакомительных целей к примеру, для чтения, но не для использования. Такие люди также иногда высказывают замечания или предоставляют код. Быстрым способом получить предварительную версию, в случае, если вы услышали, что здесь появилась некая крутая возможность, и вы хотите быть первым в вашем микрорайоне, у кого она есть. Здесь быть первым из тех, кто имеет это программное обеспечение означает также быть первым из тех, кто столкнулся с ошибками в нём. Быстрым способом получения исправлений. Любая версия FreeBSD-CURRENT является в равной мере как источником исправлений существующих ошибок, так и источником появления новых. Официально поддерживаемой каким бы то ни было способом. Мы прилагаем все усилия, чтобы помочь тем, кто изначально принадлежит одной из трех признанных групп пользователей FreeBSD-CURRENT, но у нас просто нет времени на техническую поддержку. Это не потому, что мы гадкие и злые люди, которые ни за что не будут помогать другим если бы это было так, мы бы не создали FreeBSD. Мы просто не в силах отвечать на сотни сообщений в день и работать над FreeBSD! Если бы стоял выбор между тем, отвечать ли на множество вопросов об экспериментально коде или продолжать работу над совершенствованием FreeBSD, большинство разработчиков проголосовало бы за последнее. необходимость. Если вы не являетесь участником списка рассылки freebsd-current, то вы не увидите замечаний, высказываемых о текущем состоянии системы и в итоге можете столкнуться со множеством проблем, которые уже были найдены и решены другими. Ещё хуже, если вы пропустите важные сообщения, касающиеся жизнеспособности вашей системы. Список рассылки cvs-all позволит вам для каждого изменения увидеть соответствующую запись в журнале коммитов, а они порой содержат относящуюся к делу информацию о возможных побочных эффектах. Чтобы подключиться к этим и другим доступным спискам рассылки, перейдите по ссылке /mailman/listinfo и щёлкните на списке, к которому вы хотите подключиться. Инструкции по дальнейшим действиям размещены там же. Загрузите исходные тексты с зеркального сайта FreeBSD. Вы можете сделать это одним из следующих двух способов: который можно найти в каталоге Это наиболее рекомендуемый метод, так как он позволяет вам загрузить набор исходных текстов один раз полностью, а затем загружать только произошедшие изменения. Многие запускают и получают самые свежие исходные тексты автоматически. Измените примерный файл выше и отконфигурируйте cvsup для вашего окружения. При помощи CTM. Если у вас очень плохое подключение дорогое или предоставляющее доступ только к электронной почте, то CTM можно рассматривать как вариант. Однако в нем много подводных камней, и его использование может привести к появлению неправильных файлов. Это привело к тому, что этот способ используется редко, что, в свою очередь, увеличивает шанс появления периодов его неработы. Мы рекомендуем использовать CVSup всем, чья скорость подключения равна 9600 bps и выше. Если вам нужны исходные тексты для компиляции и запуска, а не просто для ознакомления, то загружайте исходные тексты ветки FreeBSD-CURRENT полностью, а не отдельные ее части. Причиной является то, что многие части исходных текстов зависят от других обновлений где-то еще, и попытка компиляции лишь некоторой части программ в этом случае гарантированно вызовет проблемы. Перед тем, как компилировать FreeBSD-CURRENT, внимательно прочтите файл позволит вам быть в курсе всех процедур, которые иногда бывают необходимы в процессе работы над следующим релизом. Будьте активным подписчиком! Если вы работаете с FreeBSD-CURRENT, мы хотим знать, что вы думаете о ней, особенно если у вас есть соображения по ее улучшению или исправлению ошибок. Пожелания, к которым прилагается код, всегда принимаются с большим энтузиазмом! FreeBSD-STABLE является нашей веткой разработки, из которой делаются основные релизы. Изменения в этой ветке происходят с разной скоростью, и при этом предполагается, что сначала они были выполнены для FreeBSD-CURRENT в целях тестирования. Однако эта ветка остаётся веткой для разработки, а это значит, что в любой момент времени исходные тексты FreeBSD-STABLE могут оказаться неприменимы для некоторой задачи. Это просто ещё одна ветка при разработке, а не ресурс для конечных пользователей. Если вы заинтересованы в отслеживании процесса разработки FreeBSD или хотите принять в нём участие, особенно в той мере, насколько это касается выпуска следующего релиза FreeBSD с точкой, то вам необходимо отслеживать FreeBSD-STABLE. Хотя правда то, что исправления, касающиеся безопасности, также делаются и в ветке FreeBSD-STABLE, вам не нужно для этого отслеживать FreeBSD-STABLE. Каждый бюллетень по безопасности FreeBSD описывает, как решить проблему для тех релизов, которых он касается 14, а отслеживание ветки разработки в полном объёме только ради исправлений пробелов в безопасности приводит к появлению большого количества дополнительных ненужных изменений. Хотя мы прилагаем все усилия, чтобы ветка FreeBSD-STABLE всегда компилировалась и работала, этого нельзя гарантировать. Кроме того, несмотря на то, что перед включением в FreeBSD-STABLE, код разрабатывается в FreeBSD-CURRENT, гораздо большее количество людей работают с FreeBSD-STABLE, чем с FreeBSD-CURRENT. Поэтому неудивительно, что в FreeBSD-STABLE иногда обнаруживаются ошибки и всплывают непредвиденные ситуации, которые не проявляли себя в FreeBSD-CURRENT. По этим причинам мы не рекомендуем слепо отслеживать FreeBSD-STABLE, и, что особенно важно, вы не должны обновлять какие-либо сервера, находящиеся в активной эксплуатации, до FreeBSD-STABLE без предварительного тщательного тестирования кода в вашей среде разработки. Если у вас нет возможности сделать это, то мы рекомендуем работать с самой последним релизом FreeBSD и использовать механизм обновления бинарных файлов для перехода от релиза к релизу. Подпишитесь на список рассылки freebsd-stable. Это позволит вам узнавать о зависимостях процесса компиляции, которые могут появиться в ветке FreeBSD-STABLE или любых других проблемах, требующих особого внимания. В этом списке рассылки разработчики также делают объявления о спорных исправлениях или добавлениях, давая пользователям возможность высказать свое мнение о возможных тонких моментах. Список рассылки cvs-all позволит вам для каждого изменения увидеть соответствующую запись в журнале коммитов, а они порой содержат относящуюся к делу информацию о возможных побочных эффектах. Чтобы подключиться к этим и другим доступным спискам рассылки, перейдите по ссылке /mailman/listinfo и щёлкните на списке, к которому вы хотите подключиться. Инструкции по дальнейшим действиям размещены там же. Если вы устанавливаете новую систему и хотите, чтобы она работала максимально стабильно, то можете просто загрузить самый свежий снэпшот ветки по адресу и установить его, как любой другой релиз. Либо вы можете установить самый последний релиз FreeBSD-STABLE, загрузив его с зеркалирующих сайтов, а затем следовать инструкциям ниже по обновлению исходных текстов вашей системы до самой последней версии FreeBSD-STABLE. Если вы уже работаете с предыдущим релизом FreeBSD и хотите обновить его из исходных текстов, то вы можете легко это сделать с зеркального сайта FreeBSD. Это можно сделать одним из двух способов: Это наиболее рекомендуемый метод, так как он позволяет вам загрузить набор исходных текстов один раз полностью, а затем загружать только произошедшие изменения. Многие запускают и получают самые свежие исходные тексты автоматически. Измените примерный файл выше и отконфигурируйте cvsup для вашего окружения. При помощи CTM. Если у вас нет быстрого и недорогого подключения к Интернет, то это как раз тот метод, которым вы должны воспользоваться. Итак, если вам нужен быстрый доступ к исходным текстам и нагрузка на каналы связи для вас не проблема, то используйте В противном случае воспользуйтесь Перед тем, как компилировать FreeBSD-STABLE, внимательно прочтите файл позволит вам быть в курсе всех процедур, которые иногда бывают необходимы при переходе к следующему релизу. Имеются различные способы использования Интернет или почтового подключения для того, чтобы иметь самые последние версии исходных текстов любого проекта FreeBSD, в зависимости от того, чем вы интересуетесь. Основной сервис, который мы предлагаем, это Анонимный CVS, CVSup и CTM. Внимание: Хотя имеется возможностью обновлять только часть дерева исходных текстов, процедурой, которую мы настоятельно советуем, является обновление всего дерева и перекомпиляция пользовательских программ то есть тех, которые работают в пространстве имен пользователя, например те, что находятся в каталогах и ядра. Обновление только части дерева исходных текстов, только текстов ядра или только текстов пользовательских программ часто приводит к возникновению проблем. Эти проблемы могут варьироваться от ошибок компиляции до аварийных остановов системы или порчи данных. Анонимный CVS и CVSup используют модель pull обновления исходных текстов. В случае CVSup пользователь или скрипт программы а она работает с каким-либо сервером cvsupd, чтобы выполнить обновление ваших файлов. Обновления, которые вы получаете, актуальны с точностью до минуты, и вы получаете их тогда и только тогда, когда сами захотите. Вы можете с легкостью ограничить обновления конкретными файлами или каталогами, которые представляют для вас интерес. Обновления создаются на лету сервером согласно тому, что у вас есть и что вы хотите иметь. Анонимный CVS гораздо проще, чем CVSup в том смысле, что он представляет собой всего лишь расширение CVS, позволяющее загрузить изменения непосредственно с удаленного хранилища CVS. CVSup может делать это гораздо более эффективно, однако анонимным CVS легче пользоваться. CTM, с другой стороны, не сравнивает последовательно исходные тексты, имеющиеся у вас, с теми, что находятся в главном архиве и вообще ни коим образом не касается наших серверов. Вместо этого несколько раз в день на главной машине CTM запускается скрипт, находящий изменения в файлах с момента своего предыдущего запуска; все замеченные изменения сжимаются, помечаются последовательным номером и кодируются для передачи по электронной почте в форме печатаемых символов ASCII. После получения эти дельта-файлы CTM могут быть переданы утилите ctmrmail 1, которая осуществит автоматическое декодирование, проверку и применение изменений к пользовательской копии исходных текстов. Этот процесс гораздо более эффективен, чем CVSup, и требует меньше ресурсов нашего сервера, так как он сделан по модели push, а не pull. Несомненно, есть и минусы. Если вы случайно уничтожили часть вашего архива, то CVSup обнаружит и загрузит поврежденную часть. CTM этого делать не будет, и если вы уничтожили какую-то часть вашего дерева исходных текстов и у вас нет архивной копии, то вам нужно будет начать с самого начала с последнего базового дельта-файла, перестроив всё с помощью CTM, или, используя анонимный CVS, просто удалить повреждённую часть и пересинхронизироваться. После того, как вы синхронизировали ваше локальное дерево исходных текстов с некоторой версией FreeBSD FreeBSD-STABLE, FreeBSD-CURRENT и так далее, то можете использовать эти исходные тексты для перестроения системы. Создайте резервную копию: Невозможно переоценить важность создания резервной копии вашей системы до того, как вы будете это делать. Хотя перестроение системы пока вы следуете этим инструкциям является простой задачей, вы всегда можете допустить ошибку, или ошибка может оказаться в исходных текстах, что может привести к тому, что система перестанет загружаться. Обязательно сделайте резервную копию. И держите под рукой аварийную fixit дискету или загрузочный компакт диск. Может быть, вам никогда не приходилось ими пользоваться, но, постучав по дереву, всегда лучше подготовиться, чем потом сожалеть. изменяющимися. В разработке FreeBSD участвуют люди, и время от времени случаются ошибки. Иногда эти ошибки достаточно безобидны и приводят к выводу нового диагностического сообщения. Бывает, что изменение оказывается катастрофическим, и система не может загрузиться или разрушаются файловые системы или что-нибудь ещё хуже. Если возникают подобные проблемы, в соответствующем списке рассылки публикуется сообщение heads up, в котором описывается природа проблемы и затрагиваемые системы. Когда проблема решается, публикуется сообщение all clear. При этом пропускаются многие важные шаги, и использование этой команды возможно лишь в том случае, если вы точно знаете, что делаете. Почти во всех обстоятельствах это неправильный способ, вместо него необходимо использовать описанную здесь процедуру. для выяснения шагов, которые нужно предпринять перед построением системы из вашей версии исходных текстов, а затем выполнить следующую последовательность действий: Замечание: Есть несколько редких случаев, когда перед выполнением В общем случае вы можете без ущерба пропустить этот шаг, если не выполняете обновление с одной большой версии FreeBSD на другую. заданной в приглашении загрузчика. После этого выполните: Прочтите более полное описание: Описанная выше последовательность является только краткой выжимкой для того, чтобы помочь вам начать. Вы должны всё же прочесть последующие разделы для полного понимания каждого шага, особенно если собираетесь использовать собственную конфигурацию ядра. 19.4.2. Прочтите Перед тем, как делать что-либо, прочтите или соответствующий файл в вашей копии исходных текстов. В этом файле содержится важная информация о проблемах, с которыми вы можете столкнуться, или указан порядок, в котором вы должны запускать определенные команды. Если в файле написано нечто, противоречащее тому, что вы здесь читаете, то нужно следовать указаниям в не заменит подписки на соответствующий список рассылки, как это и описано выше. Эти два условия являются дополняющими, а не взаимоисключающими друг друга. 19.4.3. Проверьте содержимое Первый содержит некоторые предопределенные по умолчанию значения - большинство из них закомментировано. Чтобы воспользоваться ими при перестроении системы из исходных текстов, добавьте их в файл Имейте в виду, что все, добавляемое вами в используется также каждый раз при запуске команды так что полезно задать здесь значения, подходящие вашей системе. и так далее и решите, нужны ли они вам. 19.4.4. Обновите файлы в каталоге содержит значительную часть информации о конфигурации вашей системы, а также скрипты, работающие в начале работы системы. Некоторые из этих скриптов меняются от версии к версии FreeBSD. Некоторые конфигурационные файлы также используются в ежедневной работе системы. В частности, файл Случалось, что установочная часть ожидала существования определённых имен пользователей или групп. При обновлении существует вероятность, что эти пользователи или группы не существуют. Это вызывает проблемы при обновлении. В некоторых случаях проверяет наличие этих пользователей или групп. Пользователи столкнулись с прерыванием процесса установки, когда mtree 8 пыталась создать и сравнение списка групп в нем с вашим собственным. Если в новом файле есть группы, отсутствующие в вашем, то скопируйте их. Таким же образом вы должны переименовывать все группы в которые имеют тот же самый GID, но другое название в Начиная с 4.6-RELEASE, вы можете запустить mergemaster 8 в режиме, предваряющем построение системы, задаваемым опцией Она будет сравнивать только те файлы, которые необходимы для успешного выполнения целей Если ваша старая версия утилиты воспользуйтесь новой версией из дерева исходных текстов при первом запуске: Подсказка: Если вы параноик, можете поискать файлы, владельцем которых является та группа, которую вы переименовываете или удаляете: выдаст список всех файлов, владельцем которых является группа задаваемая именем или численным значением ID. Вам может понадобиться откомпилировать систему в однопользовательском режиме. Кроме обычного выигрыша в скорости процесса, переустановка системы затрагивает много важных системных файлов, все стандартные выполнимые файлы системы, библиотеки, include-файлы и так далее. Изменение их на работающей системе в частности, в которой активно работают пользователи может привести к неприятностям. Другим способом является компиляция системы в многопользовательском режиме с последующим переходом в однопользовательский режим для выполнения установки. Если вы хотите поступить именно так, просто следуйте инструкциям до момента окончания построения. Вы можете отложить переход в однопользовательский режим до завершения целей Как администратор, вы можете выполнить: на работающей системе, что переведет ее в однопользовательский режим. После этого система загрузится в однопользовательском режиме. В приглашении командного процессора вы должны запустить: Эти команды выполняют проверку файловых систем, повторно монтируют в режиме чтения/записи, монтируют все остальные файловые системы UFS, перечисленные в файле Замечание: Если часы в вашей CMOS настроены на местное время, а не на GMT это имеет место, если команда date 1 выдаёт неправильные время и зону, то вам может понадобиться запустить следующую команду: Это обеспечит корректную настройку местного часового пояса - - без этого впоследствии вы можете столкнуться с некоторыми проблемами. 19.4.6. Удалите При перестроении частей системы они помещаются в каталоги, которые по умолчанию находятся в Структура повторяет структуру и, возможно, избавить себя от некоторой головной боли, связанной с зависимостями, удалив этот каталог. могут быть установлены специальные флаги обратитесь к chflags 1 за дополнительной информацией, которые сначала должны быть сняты. Неплохо сохранить вывод, получаемый при работе программы make 1, в файл. Если что-то вдруг пойдет не так, вы будете иметь копию сообщения об ошибке и полную картину того, где она произошла. Хотя это может и не помочь в определении причин происходящего, это может помочь другим, если вы опишите вашу проблему в одном из списков рассылки FreeBSD. Проще всего это сделать при помощи команды script 1 с параметром, в котором указано имя файла, в который нужно сохранить вывод. Вы должны сделать это непосредственно перед тем, как перестроить систему, а по окончании процесса набрать Script started, output file is Если вы делаете это, не сохраняйте вывод в Этот каталог может быть очищен при следующей перезагрузке. Лучше сохранить его в если, конечно, ваш исходный код не находится в другом месте, в случае чего вам нужно перейти в соответствующий каталог. Для полного перестроения системы используется команда make 1. Эта команда читает инструкции из файла описывающего, как должны быть перестроены программы, которые составляют систему FreeBSD, в каком порядке они должны быть построены и так далее. Общий формат командной строки, которую вы будет набирать, таков: является параметром, который вы передаете в make 1. Обратитесь к справочной странице программы make 1, которая содержит список возможных параметров. определяется этими переменными. Это те же самые переменные, которые задаются в и это - - еще один способ их задания. является другим способом указания того, что библиотеки для профилирования строить не нужно, и соответствует строке указывает программе make 1 на то, что вы хотите сделать. Каждый файл определяет некоторое количество различных целей, и ваш выбор цели определяет то, что будет делаться. Некоторые цели, перечисленные в файле не предназначены для вызова. Просто они используются в процессе построения для разбиения его на этапы. В большинстве случаев вам не нужно передавать никаких параметров в make 1, так что ваша команда будет выглядеть примерно так: Начиная с версии FreeBSD 2.2.5 на самом деле впервые это было сделано в ветке FreeBSD-CURRENT, а затем адаптировано в FreeBSD-STABLE где-то между 2.2.2 и 2.2.5 цель Начиная с версии FreeBSD 5.3, изменена так, что она более не работает, поскольку для большинства пользователей ее выполнение представляет опасность. Как указывают на это названия, устанавливает это дерево на используемой машине. Это весьма полезно по двум причинам. Во-первых, это позволяет вам безопасно строить систему, зная, что компоненты вашей рабочей системы затронуты не будут. Построение самодостаточно. По этой причине вы можете спокойно запустить на машине, работающей в многопользовательском режиме без опаски получить какие-либо проблемы. Но всё же рекомендуется запускать цель в однопользовательском режиме. Во-вторых, это позволяет вам использовать монтирование по NFS для обновления многих машин в сети. Если у вас есть три машины, которые вы хотите обновить, запустите всё ещё имеется в наличии, вам настоятельно рекомендуется не пользоваться ею. который приводит к запуску нескольких одновременно работающих процессов. Наиболее полезно использовать это на многопроцессорных машинах. Однако, так как процесс компиляции больше всего требователен к подсистеме ввода/вывода, а не к производительности процессора, это можно использовать и на машинах с одним процессором. make 1 будет иметь до 4 одновременно работающих процессов. Эмпирические замеры, опубликованные как-то в списке рассылки, показывают, что в среднем это дает наибольшее увеличение производительности. Если у вас многопроцессорная машина и вы используете ядро с настройками для SMP, попробуйте использовать значения между 6 и 10 и посмотрите, как это отразится на скорости работы. Имейте в виду, что это все еще экспериментальная возможность, и изменения в дереве исходных текстов иногда могут быть не совместимы с параллельной сборкой. Если система не может быть построена с использованием этого параметра, попробуйте еще раз без него перед тем, как сообщать о проблемах. На время компиляции влияет множество факторов, но на данный момент Pentium III частотой 500 МГц и 128 МБ ОЗУ справляется с построением дерева FreeBSD-STABLE примерно за 2 часа без дополнительных хитростей и убыстряющих процесс уловок. Дерево FreeBSD-CURRENT строится несколько дольше. Чтобы получить полную отдачу от вашей новой системы, вы должны перекомпилировать ядро. Это практически необходимость, так как отдельные структуры в памяти могут меняться, и программы типа ps 1 и top 1 не будут работать, пока версии ядра и исходных текстов системы не будут совпадать. могут оказаться не все необходимые для работы вашей системы устройства, в нем имеется все необходимое для перезагрузки вашей системы обратно в однопользовательский режим. Это является хорошей проверкой на правильность работы новой системы. После загрузки с ядром и проверки работоспособности системы вы можете построить новое ядро на основе вашего обычного конфигурационного файла ядра. В современных версиях FreeBSD важно выполнить buildworld перед сборкой нового ядра. Замечание: Если вы хотите построить собственное ядро и уже подготовили файл конфигурации, просто используйте Для FreeBSD 4.2 и более старых версиях вы должны заменять 4.2-STABLE, загруженная до 2 февраля 2001 года, не распознаёт Заметьте, что, если вы установили в значение, превышающее 1, и установили флаг или подобный на бинарный файл ядра, то вы будете вынуждены перейти в однопользовательский режим для того, чтобы воспользоваться В противном случае вы должны выполнять эти команды без проблем. Обратитесь к справочным страницам об init 8 для получения подробной информации о и chflags 1 для получения информации о различных флагах файлов. Если вы производите обновление до версии FreeBSD ниже 4.0, то нужно использовать старую процедуру построения ядра. Однако рекомендуется использовать новую версию программы config 8 со следующей командной строкой. Для проверки работоспособности ядра вы должны перезагрузить систему и перейти в однопользовательский режим. Сделайте это, следуя указаниям в Разд. 19.4.5. Если вы компилировали достаточно свежую версию FreeBSD, в которой имеется команда то для установки новых версий программ вы должны теперь выполнить команду вы задавали значения каких-либо переменных, то при выполнении вы должны задать те же самые переменные. Это не всегда так для остальных параметров; например, при выполнении Например, если вы выполняли команду: В противном случае будет делаться попытка установить библиотеки для профилирования, которые не компилировались на этапе выполнения команды 19.4.11. Обновите файлы, не обновленные по команде При перестроении системы не будут обновляться некоторые каталоги в частности, с конфигурационными файлами. Самым простым способом обновить такие файлы является запуск утилиты mergemaster 8, хотя можно сделать это и вручную, если вам так больше нравится. Вне зависимости от выбранного вами способа обязательно сделайте резервную копию каталога на случай, если произойдёт что-то непредвиденное. Утилита mergemaster 8 является скриптом для оболочки Боурна, которая поможет вам в определении разницы между вашими конфигурационными файлами в каталоге Это является рекомендуемым способом синхронизации системных конфигурационных файлов с теми, что размещены в дереве исходных текстов. была интегрирована в базовый комплект системы FreeBSD между выпусками 3.3-RELEASE и 3.4-RELEASE, что означает её наличие во всех системах - STABLE и - CURRENT, начиная с 3.3. в приглашении командной строки и посмотрите, что происходит. построит временное окружение для пользователя root, начиная от а затем заполнит его различными системными конфигурационными файлами. Эти файлы затем будут сравниваться с теми, что установлены в вашей системе. В этот момент файлы, которые имеют отличия, будут выданы в формате diff 1, где знак будет означать добавленные или изменённые строки, а знак будет означать строки, которые были либо полностью удалены, либо заменены на новые. Обратитесь к страницам справочной системы по команде diff 1 для получения более полной информации о синтаксисе команды diff 1 и формате выдачи отличий в файлах. Затем mergemaster 8 выдаст вам каждый файл, в котором есть изменения, и в этот момент у вас есть возможность либо удалить новый файл который будем считать временным, установить временный файл в его неизменённом виде, объединить временный файл с установленным на данный момент, либо просмотреть выдачу diff 1 ещё раз. Выбор удаления временного файла укажет mergemaster 8 на то, что мы хотим оставить наш текущий файл без изменений и удалить его новую версию. Делать это не рекомендуется, если только у вас нет причин вносить изменения в текущий файл. Вы можете получить помощь в любое время, набрав? в приглашении mergemaster 8. Если пользователь выбирает пропуск файла, запрос появится снова после того, как будут обработаны все остальные файлы. Выбор установки немодифицированного временного файла приведёт к замене текущего файла новым. Для большинства немодифицированных файлов это является подходящим вариантом. Выбор варианта с объединением файла приведёт к вызову текстового редактора, содержащего текст обоих файлов. Теперь вы можете объединить их, просматривая оба файла на экране, и выбирая те части из обоих, что подходят для окончательного варианта. Когда файлы сравниваются на экране, то нажатие l выбирает содержимое слева, а нажатие r выбирает содержимое справа. В окончательном варианте будет файл, состоящий из обеих частей, который и будет установлен. Этот вариант используется для файлов, настройки в которых изменялись пользователем. Выбор повторного просмотра diff 1 - разниц выдаст вам разницы между файлами, как это делала утилита mergemaster 8 до того, как запросила вас о выборе. После того, как утилита mergemaster 8 закончит работу с системными файлами, она выдаст запрос относительно других параметров. mergemaster 8 может запросить вас относительно перестроения файла паролей и/или запуска MAKEDEV 8 при использовании FreeBSD версий, меньших чем 5.0, и завершит запросом на удаление оставшихся временных файлов. Однако если вы хотите произвести обновление вручную, то вы не можете просто скопировать файлы из и получить работающую систему. Некоторые из этих файлов сначала нужно установить. Это нужно потому, что каталог не является копией того, что должен содержать ваш каталог Кроме того, есть файлы, которые должны присутствовать в Вручную проще всего сделать это, установив файлы в новый каталог, а затем пройтись по ним, отмечая разницу. Хотя, в теории, никаких автоматических действий с этим каталогом не производится, всегда лучше чувствовать себя уверенным. Так что скопируйте имеющийся каталог в какое-нибудь безопасное место. Запустите что-то вроде: задает выполнение рекурсивного копирования, а сохраняет даты, владельца файлов и тому подобное. и других файлов. Подходящим местом является и в нём потребуется разместить некоторое количество подкаталогов. Эти команды приведут к созданию нужной структуры каталогов и установке файлов. Множество каталогов, созданных в будут пустыми и должны быть удалены. Проще всего сделать это так: find - d. - type d xargs rmdir 2/dev/null Эти команды удалят все пустые каталоги. Стандартный поток диагностических сообщений перенаправляется в для исключения предупреждений о непустых каталогах. содержит все файлы, которые должны быть помещены в соответствующие места в Теперь пройдитесь по каждому их этих файлов и определите, чем они отличаются от имеющихся у вас файлов. Заметьте, что некоторые из файлов, которые были установлены в каталог имеют первым символом. На момент написания единственными такими файлами являлись файлы начальных скриптов командных процессоров в хотя могут быть и другие зависит от того, когда вы это читаете. Обязательно пользуйтесь командой Используйте это для определения того, переносить ли сделанные вами изменения или скопировать поверх вашего старого файла. по дате, чтобы вы смогли легко выявить разницу между версиями: Частое перестроение системы означает также и частое обновление которое может быть несколько обременительным. Вы можете ускорить этот процесс, сохраняя копию последнего набора измененных файлов, которые вы перенесли в Следующая процедура подаст вам одну идею о том, как это сделать. Выполните перестроение системы обычным образом. Когда вы вам потребуется обновить и другие каталоги, дайте целевому каталогу имя на основе текущей даты. Если вы делаете это 14 февраля 1998 года, то вы можете сделать следующее: Перенесите изменение из этого каталога, как это описано выше. после окончания этого процесса. Когда вы загрузите самую последнюю версию исходного кода и перестроите систему, выполните шаг 1. Это даст вам новый каталог, который может называться если вы ждете неделю между обновлениями. Теперь вы можете видеть изменения, которые были сделаны за прошедшую неделю, выполнив при помощи команды diff 1 рекурсивное сравнение двух каталогов: Как правило, здесь содержится гораздо меньше отличий, чем между каталогами Так как отличий меньше, то и легче перенести эти изменения в ваш каталог Повторяйте этот процесс всякий раз, когда вам нужно перенести изменения в каталог 19.4.12. Обновите Замечание: Если вы работаете с FreeBSD 5.0 или более поздними версиями, то можете спокойно пропустить этот раздел. В этих версиях devfs 5 используется для выделения файлов устройств в режиме, прозрачном для пользователя. Если вы используете DEVFS, то этого можно не делать. В большинстве случаев утилита mergemaster 8 обнаружит, что необходимо обновить файлы устройств, и предложит сделать это автоматически. Эти указания описывают, как обновить файлы устройств вручную. Для безопасности этот процесс делается в несколько шагов. уже должен быть обновлен, так что его не нужно проверять утилитой diff 1 и копировать вручную в случае необходимости. Этот список должен содержать права, владельцев, старшее и младшее числа каждого файла, но не должен содержать информацию о времени. Проще всего это сделать, отрезав при помощи awk 1 часть информации: Создайте ещё один список содержимого каталога, на этот раз в Теперь просмотрите оба эти файла и поищите файлы устройств, которые вы забыли создать. Таких быть не должно, но лишний раз удостовериться не помешает. Скорее всего, вы заметите разногласия в именовании дисковых слайсов, что решается такими командами, как: для повторного создания устройств слайсов. Точное название зависит от вашей системы и может отличаться от приведённого. 19.4.13. Обновите Замечание: Этот шаг описан только для полноты. Он может быть безболезненно опущен. Если вы работаете с FreeBSD 5.2 или более поздней версией, то для пользователей каталог автоматически обновляется до текущего состояния, а статически компилируемые выполнимые файлы во время выполнения команды поэтому обновлять каталог которого вообще не существует во FreeBSD 5.2 и последующих версиях не нужно. Эти файлы представляют собой жёсткие ссылки на выполнимый файл Этот файл должен быть статически скомпонован, чтобы его работа не зависела от других файловых систем в частности, от наличия смонтированной файловой системы Теперь вы сделали всё. После того, как вы проверили, что всё на месте, можете перегрузить систему. Простая команда shutdown 8 должна это сделать: Теперь у вас имеется успешно обновлённая система FreeBSD. Поздравляем! Если что-то работает неправильно, можно с лёгкостью перестроить конкретную часть системы. Например, если вы случайно удалили файл то команда file 1 перестанет работать. В таком случае это можно исправить вот так: 19.4.16.3. Могу ли я удалить каталог 19.4.16.1. Нужно ли полностью перестраивать систему при каждом изменении? Простого ответа на этот вопрос нет, так как это зависит от характера изменения. Например, если вы только что выполнили CVSup, и оказалось, что с момента последнего его запуска были изменены следующие файлы: src/games/cribbage/instr.c src/release/sysinstall/config.c src/release/sysinstall/media.c то перестраивать всю систему незачем. Вы можете просто перейти в соответствующий подкаталог и выдать команду этого будет достаточно. Однако, если меняется что-то важное, например, то вы должны перестроить всю систему или по крайней мере те ее части, которые скомпонованы статически. В конце концов, выбор за вами. Может быть вам нравится перестраивать систему, скажем, каждый вечер, а изменения скачивать ночью. Или вы можете захотеть перестраивать только те вещи, которые менялись, но быть уверенным, что отслежены все изменения. И, конечно же, всё это зависит от того, как часто вы хотите делать обновление, и отслеживаете ли вы FreeBSD-STABLE или FreeBSD-CURRENT. 19.4.16.2. Компиляция прерывается с большим количеством ошибок по сигналу 11 или с другим номером сигнала. Что случилось? Как правило, это говорит о проблемах с оборудованием. Перепостроение системы является эффективным стресс-тестом для вашего оборудования и частенько выявляет проблемы с памятью. Обычно это проявляется в виде неожиданных сбоев компилятора или получения странных программных сигналов. Явным указателем на это является то, что при перезапуске процедуры построения она прекращается в различные моменты времени. В этом случае вы мало что можете сделать, разве что попробовать заменить комплектующие вашей машины для определения сбоящей компоненты. Если отвечать коротко, то да. содержит все объектные файлы, которые создаются во время фазы компиляции. Обычно одним из первых шагов в процессе является удаление этого каталога. В этом случае сохранение после окончания имеет мало смысла; вдобавок, он будет занимать большой объём дискового пространства на данный момент около 340 МБ. Однако если вы точно знаете, что делаете, то можете заставить процедуру пропустить этот шаг. Это позволит последующие построения выполняться гораздо быстрее, так как большинство исходных текстов не нужно будет перекомпилировать. Оборотной стороной медали этого подхода является вероятность появления некоторых проблем с зависимостями, что может привести к прерыванию построения по странным причинам. Это частенько вызывает шум в списках рассылки FreeBSD, когда кто-либо жалуется на прерывание процесса построения, не обращая внимания на то, что он пытается срезать углы на повороте. 19.4.16.4. Могут ли быть продолжены прерванные процессы построения? Это зависит от того, насколько далеко зашел процесс построения перед тем, как вы обнаружили проблему. строит новые копии необходимых инструментальных средств таких, как gcc 1 и make 1 и системные библиотеки. Затем эти средства и библиотеки устанавливаются. Новые инструментальные средства и библиотеки затем используются для перестроения самих себя, и повторно устанавливаются. Система в целом теперь включая обычные пользовательские программы, такие, как ls 1 или grep 1 теперь перестраивается с новыми системными файлами. Если вы на последнем шаге, и вы знаете это потому что просматривали вывод, который сохраняете, то вы можете достаточно безболезненно выполнить команду: то делать так достаточно безопасно. Если этого сообщения не было, или вы в этом не уверены, то всегда лучше обезопасить себя, и начать построение с самого начала. 19.4.16.5. Как ускорить процесс построения системы? Работайте в однопользовательском режиме. в отдельных файловых системах, располагающихся на разных дисках. Если это возможно, то разместите эти диски на разных дисковых контроллерах. Ещё лучше разместить эти файловые системы на нескольких дисках при помощи устройства ccd 4 драйвер объединённых дисков. Вам это скорее всего никогда не понадобится. выполняется гораздо медленнее, а разница между позволяет компилятору использовать для связи вместо временных файлов программные каналы, что уменьшает обращение к диску за счет оперативной памяти. для запуска параллельно нескольких процессов. Обычно это помогает вне зависимости от того, сколько процессоров установлено в вашей машине. Файловая система, на которой располагается каталог может быть смонтирована или перемонтирована с опцией При этом запись на диск информации о времени последнего доступа к файлам будет отключена. Скорее всего, вам эта информация и не нужна. Внимание: В примере предполагается, что располагается на собственной файловой системе. Если это не так то есть он является частью, скажем, то вам нужно использовать точку монтирования той файловой системы, а не Файловая система, на которой располагается может быть смонтирована или перемонтирована с параметром Это приведёт к тому, что операции записи на диск будут выполняться асинхронно. Другими словами, запись будет завершаться немедленно, но данные записываться на диск несколькими секундами позже. Это позволит объединять операции записи и приведёт к значительному приросту производительности. Внимание: Имейте в виду, что эта опция делает вашу файловую систему менее устойчивой. С этой опцией имеется больше шансов, что при перезагрузке машины после неожиданного сбоя при пропадании напряжения файловая система окажется в невосстановимом состоянии. это все, что есть в этой файловой системе, то это не проблема. Если на той же самой файловой системе имеются какие-то важные данные, то проверьте давность ваших резервных копий перед включением этой опции. Внимание: Как и раньше, если каталог располагается не на собственной файловой системе, то в примере замените его на имя соответствующей точки монтирования. Скрупулезно проверьте, чтобы в вашем окружении не было мешающих остатков от предыдущих построений. Это достаточно просто. действительно нужно выполнять дважды. После этого повторите весь процесс снова, начиная с Если у вас все еще есть проблемы, пришлите текст ошибки и выдачу команды на адрес списка рассылки freebsd-questions. Будьте готовы ответить на другие вопросы о конфигурации вашей системы! Текст предоставил Mike Meyer. Если у вас множество машин, для которых вы хотите отслеживать одно и то же дерево исходных текстов, то загрузка кода и перестроение системы полностью выглядит как ненужная трата ресурсов: дискового пространства, пропускной способности сети и процессорного времени. Так оно и есть, и решением является выделение одной машины, которая выполняет основной объём работы, в то время как остальные используют результаты работы посредством NFS. В этом разделе описывается именно этот метод. Первым делом определите набор машин, на которых выполняется один и тот же набор бинарных программ, и мы будем называть его набором для построения. Каждая машина может иметь собственное уникальное ядро, но они будут работать с одними и теми же программами пользователя. Из этого набора выберите машину, которая будет являться машиной для построения. Она станет машиной, на которой будут строиться ядро и всё окружение. В идеальном случае с достаточно незагруженным CPU для выполнения команд Вам также потребуется выбрать машину, которая будет тестовой для проверки обновлений программного обеспечения прежде, чем оно будет запущено в промышленную эксплуатацию. Это должна быть машина, которая может быть в нерабочем состоянии достаточно долго. Это может быть машина для построения, но не обязательно. с одной и той же машины и в одну и ту же точку монтирования. В идеальном случае они располагаются на разных дисках машины построения, но они могут также монтироваться по NFS на этой машине. Если у вас имеется несколько наборов для построения, то каталог должен быть на машине построения, а по NFS он должен быть смонтирован на остальных. Наконец, удостоверьтесь в том, что файл на всех машинах набора для построения соответствует машине построения. Это означает, что машина построения должна строить все части основного системного набора, которые будут устанавливаться на каждой машине из набора для построения. Кроме того, у каждой машины построения должно быть задано имя ядра посредством переменной а машина построения должна перечислить их все в переменной причём первым должно быть имя её собственного ядра. Машина построения должна хранить конфигурационные файлы ядра каждой машины в каталоге если на ней будут строиться соответствующие ядра. Теперь, когда всё это сделано, вы готовы к построению. Постройте ядро и всё окружение так, как это описано в Разд. 19.4.7.2 на машине построения, но ничего не устанавливайте. После того, как процесс построения завершится, перейдите к тестовой машине и установите только что построенное ядро. Если эта машина монтирует каталоги посредством NFS, то при перезагрузке в однопользовательский режим вам потребуется задействовать сеть и смонтировать их. Самым простым способом сделать это является переход во многопользовательский режим и запуск команды для перехода в однопользовательский режим. После этого вы можете установить новое ядро и всё окружение, а затем выполнить команду обычным образом. После выполнения этих действий перезагрузитесь для возвращения к обычному режиму работы во многопользовательском режиме с этой машиной. После того, как вы убедитесь в нормальной работе всего на тестовой машине, проведите ту же самую процедуру для установки нового программного обеспечения на каждой из оставшихся машин из набора для построения. Те же самые идеи могут использоваться и для дерева портов. Первым критическим шагом является монтирование с одной и той же машины на всех компьютерах в наборе для построения. Затем вы можете корректно настроить для использования общего каталога с дистрибутивными файлами. Вы должны задать переменную так, чтобы она указывала на общедоступный каталог, доступный тому пользователю, который отображается в пользователя для ваших точек монтирования NFS. Каждая машина должна задавать так, чтобы она указывала на локальный каталог построения. Наконец, если вы собираетесь строить и распространять пакеты, то должны задать переменную так, чтобы она указывала на каталог, соответствующий FreeBSD это одна из наиболее широко используемых в высокопроизводительных сетевых серверах операционных систем. Главы этой части книги охватывают: Эти главы предназначены для получения дополнительной информации. Нет необходимости читать их в определенной последовательности, или читать их все перед тем, как начать использовать FreeBSD в сети. Перевод на русский язык: Денис Пеплин. В UNIX всегда была поддержка последовательных соединений. Фактически, самые первые UNIX машины использовали последовательные линии для пользовательского ввода/вывода. Многое изменилось с тех пор, когда среднестатистический терминал состоял из 10-символов-в-секунду последовательного принтера и клавиатуры. Эта глава рассказывает о некоторых способах, которыми FreeBSD использует последовательные соединения. Прочитав эту главу, вы узнаете: Как подсоединить терминалы к системе FreeBSD. Как использовать модем для дозвона на удаленные хосты. Как разрешить удаленным пользователям входить в вашу систему с помощью модема. Как загрузить систему с последовательной консоли. Узнать как настраивать и устанавливать новое ядро Гл. 8. Понять, что такое права доступа и процессы UNIX Гл. 3. Кроме этого вам потребуется техническое руководство на последовательное оборудование модем или мультипортовую карту, которую вы хотите использовать с FreeBSD. Терминальное оборудование Data Terminal Equipment - - например, ваш компьютер При упоминании скорости передачи данных, в этой главе не используется термин бод baud. Бод означает количество электрических импульсов, которые могут быть переданы за период времени, а bps это корректный термин для использования он хотя бы не создает столько проблем как предыдущий. Для подсоединения модема или терминала к системе FreeBSD потребуется последовательный порт и подходящий кабель для последовательного устройства. Если вы уже знаете о аппаратном обеспечении и требуемых кабелях, можете пропустить этот раздел. Есть несколько различных видов последовательных кабелей. Два наиболее часто используемых в нашей ситуации типа это нуль-модемный и стандартный прямой RS-232 кабель. Документация на оборудование должна описывать тип требуемого кабеля. Нуль модемный кабель пропускает некоторые сигналы, такие как signal ground, напрямую, а другие заворачивает. Например, контакт send data на одном конце соединяется с контактом receive data на другом. Если вы изготавливаете собственный кабели, то можете сделать собственный кабель для использования с терминалами. Эта таблица показывает названия сигналов RS-232C и номера контактов на разъеме DB-25. Замечание: Соедините Data Set Ready DSR и Data Carrier Detect DCD внутри корпуса коннектора, а затем подключите к Data Terminal Ready DTR на другой стороне. Стандартный последовательный кабель пропускает все RS-232C сигналы напрямую. Так, send data на одном конце кабеля соединяется с контактом send data на другом конце. Этот тип кабеля предназначен для подсоединения модема, а также подходит для некоторых терминалов. Последовательные порты это устройства, через которые данные передаются между компьютером с FreeBSD и терминалом. Этот раздел описывает типы существующих портов и их адресацию в FreeBSD. Существует несколько типов последовательных портов. Перед изготовлением кабеля, вам потребуется убедиться, что он подходит к портам терминала и системы FreeBSD. Большинство терминалов используют порты DB25. Персональные компьютеры, включая PC под управлением FreeBSD, используют порты DB25 или DB9. Если у вас есть мультипортовая последовательная карта для PC, там могут быть RJ-12 или RJ-45 порты. Обратитесь к сопровождающей документации на оборудование за информацией об используемых портах. Можно также определить тип используемых портов по их внешнему виду. Есть два различных типа файлов: это номер порта начиная с нуля. Обычно, порты входящих соединений используются для терминалов. Для корректной работы этим портам требуется, чтобы последовательный кабель передавал сигнал data carrier detect DCD. Они обычно используются не для терминалов, а только для модемов. Вы можете использовать эти порты если последовательный кабель или терминал не поддерживает сигнал DCD. для доступа к терминалу. Если терминал соединен со вторым последовательным портом известным также как FreeBSD c настройками по умолчанию поддерживает последовательные порты. В мире MS-DOS они известны как На данный момент в FreeBSD есть поддержка как простых мультипортовых карт с последовательными интерфейсами, таких как BocaBoard 1008 и 2016, так и более умных мультипортовых карт, например карт Digiboard и Stallion Technologies. Тем не менее, ядро по умолчанию определяет только стандартные COM порты. Чтобы увидеть, как ядро определяет последовательные порты, просмотрите сообщения, выводимые во время загрузки ядра, или используйте команду для вывода сообщений ядра еще раз. В частности, обратите внимание на сообщения, начинающиеся с символов Подсказка: Для просмотра только тех сообщений, которые содержат слово Например, в системе с четырьмя последовательными портами, появятся такие специфичные для последовательных портов сообщения: Если ядро не распознает все последовательные порты, вам возможно потребуется настроить ядро FreeBSD. За детальной информацией по настройке ядра обращайтесь к главе Гл. 8. Строки соответствующих устройств в файле конфигурации ядра FreeBSD 4.X будут выглядеть примерно так: device sio0 at isa? port IOCOM1 irq 4 device sio1 at isa? port IOCOM2 irq 3 device sio2 at isa? port IOCOM3 irq 5 device sio3 at isa? port IOCOM4 irq 9 и примерно так для FreeBSD 5.X: Вы можете закомментировать или полностью удалить эти строки для отсутствующих устройств в FreeBSD 4.X; в FreeBSD 5.X вам потребуется отредактировать файл для настройки последовательных портов. Обратитесь к странице справочника sio 4 за дополнительной информацией о настройке последовательных портов и мультипортовых карт. Будьте осторожны при использовании настроек, которые работали в предыдущих версиях FreeBSD, поскольку флаги устройств и синтаксис изменились в новых версиях. Это наиболее часто используемые для соответствующих последовательных портов адреса. Наиболее часто используемые прерывания 4, 3, 5, и 9. Имейте ввиду, что обычные последовательные порты не могут совместно использовать прерывания на ISA PC на мультипортовых картах есть электроника, позволяющая всем чипам 16550A на плате совместно использовать одно или два IRQ. К большинству устройств ядра можно получить доступ через специальные файлы устройств, расположенные в каталоге устройства входящих вызовов, dial-in и устройства исходящих вызовов, call-out. FreeBSD предоставляет также устройства инициализации Первые используются для инициализации параметров порта при каждом его открытии таких как для модемов, использующих сигналы для управления потоком. Устройства блокировки используются для установки флага блокировки на порт и предотвращения изменения определенных параметров пользователями или программами; обратитесь к страницам справочника termios 4, sio 4 и stty 1 соответственно за информацией о параметрах терминала, блокировании и инициализации устройств и настройке терминала. Замечание: FreeBSD 5.0 включает файловую систему devfs 5, которая автоматически создает файлы устройств по мере необходимости. Если вы работаете с версией FreeBSD, поддерживающей просто пропустите этот раздел. находится shell скрипт, называющийся который управляет специальными файлами устройств. Чтобы использовать Точно так же, для создания специальных файлов устройств исходящих соединений для порта После создания специальных файлов устройств, обязательно проверьте права на файлы особенно на файлы чтобы убедиться, что только те пользователи, которым дан доступ на эти файлы, могут читать и писать в них - - возможно, вы не хотите, чтобы обычные пользователи использовали модемы для звонков. Права по умолчанию на crw-rw- 1 uucp dialer 28, 129 Feb 15 14:38/dev/cuaa1 crw-rw- 1 uucp dialer 28, 161 Feb 15 14:38/dev/cuaia1 crw-rw- 1 uucp dialer 28, 193 Feb 15 14:38/dev/cuala1 использовать устройства исходящих вызовов. это обычное устройство, которое потребуется открыть для приложений. Когда процесс открывает устройство применяются настройки ввода/вывода терминала по умолчанию. Вы можете посмотреть эти настройки с помощью команды Если вы измените настройки устройства, они будут действовать до его закрытия. После повторного открытия, оно вернется к настройкам по умолчанию. Для изменения настроек по умолчанию, вы можете открыть и изменить установки начального состояния устройства. Например, для включения по умолчанию режима 8-битного соединения и контроля передачи Этот файл определяет настройки последовательных устройств по умолчанию. Для предотвращения изменения программами отдельных установок, настройте состояние блокировки устройства. Например, для установки значения скорости Теперь приложение, открывающее и пытающееся изменить скорость порта, получит скорость 57600 bps. И конечно, сделайте запись начальных значений и состояния блокировки устройств доступной только учетной записи Предоставил Sean Kelly. Терминалы предоставляют удобный и дешевый способ доступа к системе FreeBSD, когда вы не сидите за консолью компьютера и не подключены к сети. Этот раздел описывает использование терминалов в FreeBSD. В первых системах UNIX не было консолей. Вместо этого, пользователи входили и запускали программы через терминалы, которые были подключены к последовательным портам компьютеров. Это очень похоже на использование модема и программного обеспечения терминала для дозвона до удаленной системы и выполнения только-текстовой работы. Консоли современных PC поддерживают высококачественную графику, но возможность входа по последовательному порту на сегодняшний день все еще доступна почти в каждой UNIX подобной операционной системе; FreeBSD не исключение. Используя терминал, подключенный к неиспользуемому последовательному порту, вы можете войти и запустить текстовую программу, которую обычно запускаете в текстовой консоли или в окне Для корпоративных пользователей, вы можете подсоединить множество терминалов к системе FreeBSD и поставить их на столы пользователей. Для домашнего пользователя, устаревший IBM PC или Macintosh может быть подключен в качестве терминала к более мощному компьютеру под управлением FreeBSD. Вы можете превратить однопользовательский компьютер в мощную многопользовательскую систему. В оставшейся части раздела описывается каждый вид. Простые терминалы это специализированное оборудование, позволяющее соединять компьютеры через последовательные линии. Они называются простыми, поскольку их вычислительных возможностей хватает только для отображения, отправки и получения текста. Вы не сможете запустить на них никаких программ. Компьютер, к которому подсоединяется терминал, предоставляет все возможности для запуска текстовых редакторов, компиляторов, почтовых программ, игр и так далее. Есть сотни видов простых терминалов, изготовленных различными производителями, включая DEC VT-100 и Wyse WY-75. Почти любой терминал может работать с FreeBSD. Некоторые high-end терминалы даже могут отображать графику, но только отдельные программные пакеты могут получить преимущество от этих расширенных возможностей. Простые терминалы популярны в рабочей среде, где не требуется доступ к графическим приложениям, например тем, которые предоставляет система X Window. Если простые терминалы могут только отображать, отправлять и получать текст, возможностей абсолютно любого персонального компьютера хватит для работы в роли простого терминала. Все, что вам потребуется, это подходящий кабель и какая-нибудь программа эмулятора терминала. Это популярная домашняя конфигурация. Например, когда ваша вторая половина занята работой на системной консоли FreeBSD, вы можете одновременно выполнять только-текстовую работу с менее мощного персонального компьютера, подключенного к системе FreeBSD. X терминалы это наиболее сложный тип существующих терминалов. Вместо подключения к последовательному порту, они обычно подключаются к сети, например Ethernet. Вместо работы только с текстовыми приложениями, они могут отображать любое X приложение. Мы представляем X терминалы только ради полноты описания. Тем не менее, эта глава не охватывает установку, настройку или использование X терминалов. Этот раздел описывает, что нужно сделать для настройки системы FreeBSD и включения входа в систему через терминал. Предполагается, что вы уже подключили терминал и настроили ядро для включения поддержки последовательного порта, к которому он подключен. Обратитесь к главе Гл. 12 за информацией о процессе отвечающем за контроль над всеми процессами и за инициализацию системы во время загрузки. Одна из задач, выполняемых на доступных терминалах. Процесс Таким образом, для настройки терминалов в системе FreeBSD необходимо выполнить следующие действия под представляющего последовательный порт, если этой строки еще нет. Указать тип терминала по умолчанию. Указать, должен ли порт быть secure безопасным Опционально, вы можете настроить свой тип для использования на шаге 2, добавив описание в файл 20.3.2.1. Добавление строки в находится список всех портов системы FreeBSD, на которые возможен вход. Например, там находится первая виртуальная консоль Вы можете войти на консоль с помощью этой записи. Файл содержит записи и для других виртуальных консолей, последовательных портов, и псевдо-терминалов. Название файла последовательного порта из каталога Если вы подключаете терминал к одному из этих портов, добавлять записи терминалов не потребуется. Пример 20-1. Добавление записей терминалов в Предположим, вы хотите подключить два терминала к системе: Wyse-50 и старый 286 IBM PC с эмулятором терминала VT-100. Мы подключаем Wyse к второму последовательному порту и 286 к шестому последовательному порту порт на мультипортовой карте. Соответствующие строки в ttyd1/usr/libexec/getty std.38400 wy50 on insecure ttyd5/usr/libexec/getty std.19200 vt100 on insecure Первое поле, как правило, указывает имя специального файла терминала, в соответствии с его именем в Второе поле - - это команда, исполняемая для этого терминала, обычно getty 8. инициализирует и открывает линию, устанавливает ее скорость, приглашает пользователя к вводу имени пользователя, а затем выполняет программу login 1. принимает один опциональный параметр в командной строке, тип определяет характеристики терминальной линии, такие как значение bps и четность. Программа содержит множество записей для терминалов, как для старых так и для новых. Почти во всех случаях запись, начинающаяся с текста предназначена для работы с аппаратными терминалами. Эти записи игнорируют четность. Запись есть для каждого значения bps от 110 до 115200. Конечно, вы можете добавить собственные записи в этот файл. Страница справочника gettytab 5 содержит дополнительную информацию. убедитесь в наличии соответствующей записи терминала. Например, Wyse-50 не использует четность и соединяется на 38400 bps. 286 PC не использует четность и соединяется на 19200 bps. Третье поле определяет тип терминала, обычно подключаемого к этой линии tty. Для портов входящих соединений обычно используется значение поскольку пользователь может подключить практически любой тип терминала или программу. Для аппаратных терминалов тип не меняется, поэтому вы можете поместить в это поле определенный тип терминала из базы данных termcap 5. Например, Wyse-50 использует реальный тип терминала, а 286 PC, работающий с Procomm, настроен на эмуляцию VT-100. Четвертое поле определяет должен ли порт быть включен. Размещение здесь запустить программу, указанную во втором поле, не будет запущена и вход на этот порт станет невозможен. Последнее поле используется, чтобы указать, является ли порт безопасным. Пометка порта безопасным означает, что вы доверяете ему достаточно для того, чтобы разрешить учетной записи или любой учетной записи с UID 0 входить с этого порта. Небезопасные порты не разрешат вход На небезопасном порту пользователи должны войти с через непривилегированную учетную запись, а затем использовать su 1 или подобный механизм для получения привилегий суперпользователя. Настоятельно рекомендуется использовать insecure даже для терминалов, находящихся за закрытыми дверями. Довольно легко использовать после входа, если вам потребуются привилегии суперпользователя. 20.3.2.2. Заставьте вам потребуется отправить сигнал SIGHUP hangup процессу чтобы заставить его перечитать его файл настройки. Например: это всегда первый из запущенных в в системе процессов, поэтому его PID всегда 1. Если все установлено правильно, все кабели на месте и терминалы включены, процесс должен быть запущен на каждом терминале и вы увидите приглашение ко входу на каждом терминале. Даже при самом внимательном отношении к деталям, при настройке терминала все же могут возникнуть проблемы. В этом разделе приведен список симптомов и предлагается несколько решений. Убедитесь, что терминал подключен и его питание включено. Убедитесь, что эмулятор терминала запущен на соответствующем порту. Убедитесь, что кабель хорошо подключен и к терминалу и к компьютеру с FreeBSD. Убедитесь, что правильно выбран тип кабеля. Убедитесь, что терминал и FreeBSD имеют одинаковые установки значения bps и четности. Если у вас видео терминал, убедитесь, что контраст и яркость включены. Если это принт-терминал, убедитесь, что бумага и чернила в порядке. запущен и обслуживает терминал. Например, для получения списка запущенных процессов Вы должны увидеть строку для соответствующего терминала. Например, если 22189 d1 Is 0:00.03/usr/libexec/getty std.38400 ttyd1 не запущен, убедитесь, что вы включили порт в Не забудьте также запустить запущен, но на терминале по-прежнему не отображается приглашение ко входу, или если приглашение отображается, но войти невозможно, терминал или кабель, возможно, не поддерживают квитирование связи. Попробуйте изменить поле в но игнорирует квитирование связи. Вам может потребоваться уменьшить скорость соединения или включить программный контроль передачи при использовании для предотвращения переполнений буфера. Убедитесь, что терминал и FreeBSD имеют одинаковые установки значения bps и четности. Проверьте процесс чтобы убедиться, что используется подходящий тип Если это не так, отредактируйте Переключите терминал или программу эмулятора терминала с half duplex или local echo на full duplex. Предоставил Guy Helmer. Настройка системы FreeBSD для поддержки входящих соединений очень похожа на подсоединение терминалов за исключением того, что вы работаете с модемами вместо терминалов. Внешние модемы более удобны для дозвона, поскольку легко могут быть настроены с помощью параметров, сохраняемых в энергонезависимой памяти. На них обычно есть индикаторы, отображающие состояние основных RS-232 сигналов. Мигающие индикаторы впечатляют, но кроме того они также очень полезны для индикации правильной работы модема. Внутренние модемы обычно не снабжаются энергонезависимой памятью, поэтому их настройка может ограничиваться установкой DIP переключателей. Если на внутреннем модеме есть индикаторы, их обычно сложно увидеть при закрытой крышке корпуса. Если вы используете внешний модем, несомненно потребуется подходящий кабель. Стандартный RS-232C кабель должен подойти, если подключены все обычные сигналы: для контроля передачи на скоростях выше 2400 bps, сигнал CD для определения, был ли ответ на сигнал или произошло отключение линии, и сигнал DTR для сброса модема после завершения сессии. Некоторые кабели не поддерживают все необходимые сигналы, поэтому, если вы столкнулись с проблемами, например, если сессия не завершается после отсоединения линии, причиной возможно являются проблемы с кабелем. Как и другие UNIX подобные операционные системы, FreeBSD использует аппаратные сигналы для определения того, был ли ответ на звонок или линия была отключена и требуется завершить работу модема и сбросить его в начальное состояние. FreeBSD избегает отправлять команды модему или просматривать отчеты о статусе от модема. Если вы знакомы с настройкой BBS, это может показаться неудобным. FreeBSD поддерживает интерфейсы, основанные на NS8250, NS16450, NS16550, и NS16550A EIA RS-232C CCITT V.24. Устройства 8250 и 16450 снабжены односимвольным буфером. Устройство 16550 снабжено 16-ти символьным буфером, который повышает производительность системы. Ошибки в 16550 делают невозможным использование 16-символьного буфера, поэтому используйте 16550A если возможно. Поскольку устройства с односимвольным буфером предъявляют большие требования к операционной системе, чем с 16-ти символьным буфером, предпочтительны устройства на 16550A. Если в системе много активных последовательных портов или нагрузка велика, устройства на 16550A лучше подходят для поддержки соединений с малым количеством ошибок. на каждом настроенном для входящих звонков последовательном порту. Например, если модем подключен к 4850?? I 0:00.09/usr/libexec/getty V19200 ttyd0 Когда пользователь дозванивается на подключенный модем, модем выдает сигнал CD Carrier Detect. Ядро определяет, что несущая обнаружена и завершает открытие порта командой ожидает в ответ набор символов, и, как правило, получает неправильный набор обычно это происходит из-за того, что скорость соединения модема отличается от скорости пробует подобрать скорость линии до тех пор, пока не получит правильный набор символов. После того, как будет введено имя пользователя, которая завершает вход, запрашивая пароль пользователя и запуская оболочку. которые возможно потребуется отредактировать для включения удаленного доступа по модему в FreeBSD. Первый, содержит информацию по настройке даемона содержит информацию, указывающую Наконец, вы можете поместить команды инициализации портов в скрипт В UNIX есть две школы настройки модемов для входящих соединений. Одна предпочитает настраивать модемы и системы так, что не важно на какой скорости подсоединяется удаленный пользователь. Локальный интерфейс RS-232 компьютер-модем работает на жестко заданной скорости. Преимущество этой настройки в том, что удаленный пользователь всегда сразу видит приглашение ко входу. Обратная сторона в том, что система не знает, какова на самом деле скорость передачи данных, поэтому полноэкранные программы, такие как Emacs, не настраивают свои методы отображения на экране для работы с медленными соединениями. Другая школа настраивает интерфейс RS-232 для работы с различной скоростью в зависимости от скорости подсоединения удаленного пользователя. Например, соединение модемов по протоколу V.32bis 14.4 Кбит/с установит скорость порта RS-232 равной 19.2 Кбит/с, а соединение на скорости 2400 бит/с установит скорость RS-232 равной 2400 бит/с. Поскольку не понимает сообщений модема о скорости соединения, на установленной по умолчанию скорости и считывает символы, полученные в ответе. Если пользователь видит мусор вместо приглашения ко входу, это означает, что нужно нажимать Enter до тех пор, пока не появится приглашение ко входу. Если скорости не совпадают, получает все, что вводит пользователь, в виде мусора, пробует переключиться на другую скорость и выдает приглашение опять. Эта процедура может продолжаться до отвращения, но обычно требуется одно или два нажатия клавиши перед появлением нормально выглядящего приглашения. Очевидно, эта последовательность входа не так хороша, как метод с фиксированной скоростью, но при низкой скорости соединения работать с полноэкранными программами станет проще. В этом разделе делается попытка дать сбалансированную информацию для настройки, но предпочтение будет отдано установке скорости соединения с модемом в соответствие скорости подключения. это файл в стиле termcap 5, содержащей информацию по настройке getty 8. Пожалуйста, обратитесь к странице справочника gettytab 5 за полной информацией о формате файла и за списком возможностей Если вы зафиксировали скорость соединения модема на определенной скорости, редактировать файл скорее всего не потребуется. информации о скоростях, которые предполагается использовать для модема. Если у вас 2400 бит/с модем, возможно, подойдет существующая запись Fast dialup terminals, 2400/1200/300 rotary can start either way D2400d2400Fast-Dial-2400::nxD1200:tc2400-baud: 3D1200Fast-Dial-1200::nxD300:tc1200-baud: 5D300Fast-Dial-300::nxD2400:tc300-baud: Если у вас более скоростной модем, вам возможно потребуется добавить запись в вот запись, которую вы можете использовать для 14.4 Кбит/с модема с максимальной скоростью интерфейса 19.2 Кбит/с: Additions for a V.32bis Modem umV300High Speed Modem at 300, 8-bit::nxV19200:tcstd.300: unV1200High Speed Modem at 1200, 8-bit::nxV300:tcstd.1200: uoV2400High Speed Modem at 2400, 8-bit::nxV1200:tcstd.2400: upV9600High Speed Modem at 9600, 8-bit::nxV2400:tcstd.9600: uqV19200High Speed Modem at 19200, 8-bit::nxV9600:tcstd.19200: Эта настройка включает 8-битные соединения без программного контроля четности. В примере выше скорость порта будет переключаться в цикле начиная с 19.2 Кбит/с для соединения по V.32bis, затем 9600 бит/с для V.32, 2400 бит/с, 1200 бит/с, 300 бит/с, и обратно на 19.2 Кбит/с. Переключение скоростей в цикле реализовано с помощью next table. Каждая из линий использует table continuation для указания стандартных std настроек на каждой скорости. Если у вас 28.8 Кбит/с модем и/или вы хотите получить преимущество от сжатия на скорости 14.4 Кбит/с, потребуются скорости выше, чем 19.2 Кбит/с. Вот пример записи из для начала соединения на скорости 57.6 Кбит/с: Additions for a V.32bis or V.34 Modem Starting at 57.6 Kbps vmVH300Very High Speed Modem at 300, 8-bit::nxVH57600:tcstd.300: vnVH1200Very High Speed Modem at 1200, 8-bit::nxVH300:tcstd.1200: voVH2400Very High Speed Modem at 2400, 8-bit::nxVH1200:tcstd.2400: vpVH9600Very High Speed Modem at 9600, 8-bit::nxVH2400:tcstd.9600: vqVH57600Very High Speed Modem at 57600, 8-bit::nxVH9600:tcstd.57600: Если у вас медленный CPU или сильно загруженная система без последовательных портов на базе 16550A, на скорости 57.6 Кбит/с могут возникнуть ошибки была описана в Прим. 20-1. Настройка модемов похожа, но потребуется передавать различные аргументы и указывать различные типы терминалов. Общий формат для фиксированной и переменной скорости такой: для начальной скорости, это процесс, который будет запущен на данном устройстве. Третий пункт, это тип терминала по умолчанию. Четвертый параметр, что линия включена. Может быть пятый параметр, но он должен использоваться только для терминалов, которые физически безопасны таких как системная консоль. в примере выше может зависеть от личных предпочтений. это традиционный тип терминала по умолчанию на линиях для дозвона, который позволяет пользователям, зная что тип терминала автоматически настраивать свой тип терминала. Однако, автор находит более легким указание в качестве типа терминала по умолчанию, поскольку пользователи работают на своих удаленных системах с эмулятором терминала VT102. вы можете отправить процессу перечитать файл. Используйте команду для отправки сигнала. Если вы настраиваете систему в первый раз, то возможно захотите подождать, пока модемы правильно настроятся и соединятся перед отправкой сигнала Для настройки соединения с фиксированной скоростью, в файле Для модема, скорость порта которого фиксирована на значении 19.2 Кбит/с, строка в ttyd0/usr/libexec/getty std.19200 dialup on Если скорость модема фиксирована на другом значении, подставьте соответствующее значение в Убедитесь, что вы используете тип, описанный в В настройке с переменной скоростью, запись в Например, если вы добавите предложенную выше запись для подключения модема с переменной скоростью, которая начинается с 19.2 Кбит/с запись в Для высокоскоростных модемов, таких как V.32, V.32bis и V.34, требуется использование аппаратного контроля передачи Вы можете добавить команды для установки флага аппаратного контроля передачи в ядре FreeBSD для модемных портов. Например, для установки флага при инициализации устройств для входящей и исходящей связи, в Если параметры вашего модема могут быть сохранены в энергонезависимой памяти, потребуется использовать терминальную программу например, Telix под MS-DOS или под FreeBSD для установки параметров. Подсоединитесь к модему, используя ту же скорость соединения, которую использует в качестве начальной скорости, и настройте модем для соответствия следующим требованиям: включен во время работы; сброс DTR отключает линию и переводит модем в начальное состояние Прочтите документацию на модем для определения какие команды и/или DIP переключатели требуются чтобы установить эти настройки. Например, для установки вышеуказанных параметров на внешнем 14, 400 модеме Robotics Sportster, требуется отправить модему следующие команды: Вы, возможно, захотите настроить и другие параметры модема, такие как использование сжатия V.42bis и/или MNP5. Внешний Robotics Sportster 14, 400 модем также снабжен некоторыми DIP переключателями, которые требуется установить; для других модемов эти настройки могут быть использованы в качестве примера: Переключатель 4: вниз - - без эхо, offline команды Коды возврата должны быть отключены/подавлены для устранения проблем, которые могут возникнуть, если модему в командном режиме и модем вернет echo эту команду или код возврата. Эта последовательность может привести к дополнительному и бессмысленному обмену командами между Для настройки фиксированной скорости вам потребуется настроить модем с поддержкой постоянной скорости обмена данными модем-компьютер независимо от скорости соединения. На внешнем модеме Robotics Sportster 14, 400 эти команды зафиксируют скорость передачи модем-компьютер на скорости, которая установлена при выполнении команды: Для настройки переменной скорости вам потребуется настроить модем с поддержкой изменения скорости передачи данных через последовательный порт в соответствии через скоростью соединения. Следующие команды зафиксируют скорость передачи данных с коррекцией ошибок внешнего модема Robotics Sportster 14, 400 на значении, которое установлено при выполнении команды, но сделают возможным изменение скорости последовательного порта для соединений без коррекции ошибок: Большинство высокоскоростных модемов предоставляют команды для просмотра текущих параметров модема в виде, отчасти приспособленном для чтения. Для внешних модемов Robotics Sportster 14, 400 команда отображает установки, сохраненные в энергонезависимой памяти. Для просмотра действующих параметров модема с учетом положения DIP переключателей, используйте команду Если ваш модем другого производителя, проверьте руководство к модему для аккуратной проверки параметров настройки модема. Вот несколько шагов, которые нужно выполнить для проверки настроек. Подсоедините модем к системе FreeBSD, загрузите систему, и, если на модеме есть индикаторы, посмотрите, загорелся ли индикатор DTR на системной консоли - - если он загорелся, это означает, что FreeBSD запустила процесс на соответствующем коммуникационном порту и модем ожидает входящего звонка. не загорелся, войдите на консоль системы FreeBSD и выполните команду чтобы увидеть, пытается ли FreeBSD запустить процесс на соответствующем порту. Вы должны увидеть строки вроде этих среди показанных процессов: 114?? I 0:00.10/usr/libexec/getty V19200 ttyd0 115?? I 0:00.10/usr/libexec/getty V19200 ttyd1 Если вы видите что-то другое, вроде этого: 114 d0 I 0:00.10/usr/libexec/getty V19200 ttyd0 и модем все еще не принимает звонок, это означает, что завершила открытие коммуникационного порта. Это может означать проблему с кабелем или неправильную настройку модема, поскольку не должна открывать коммуникационный порт, пока модем не установит CD ожидающих открытия соответствующего порта внимательно проверьте записи в и попробуйте найти ошибки, если они есть. Проверьте также лог файл имеющих отношение к проблеме. Если сообщения есть, проверьте еще раз файлы настройки как и соответствующие специальные файлы устройств чтобы обнаружить ошибки, отсутствующие записи или отсутствующие специальные файлы устройств. Попробуйте дозвониться до системы; убедитесь, что используете 8 бит без четности и 1 стоп бит на удаленной системе. Если вы не получите приглашение сразу, или получите случайные данные, попробуйте нажимать Enter примерно раз в секунду. Если вы все еще не видите приглашения после нескольких попыток, попробуйте отправить команду Если вы используете для дозвона высокоскоростной модем, попробуйте позвонить еще раз после фиксирования скорости интерфейса дозванивающегося модема например, с помощью команды для модема Robotics Sportster. совпадает с именем параметра в Если система FreeBSD не отвечает на звонок, убедитесь, что модем настроен для ответа на звонок при включении DTR Если модем настроен правильно, проверьте, что DTR включается, взглянув на индикаторы модема если они есть. Если вы проверили все несколько раз и все еще не добились результата, сделайте перерыв и вернитесь к настройкам позже. Если опять ничего не получилось, возможно вам потребуется отправить письмо в Список рассылки, посвящённый вопросам и ответам пользователей FreeBSD, описав модем и возникшую проблему, участники рассылки попробуют помочь вам. Текст, приведенный ниже, это советы, позволяющие настроить ваш хост для доступа к другому компьютеру через модем. Они подходят для установления терминальной сессии с удаленным хостом. Это подходит для входа на BBS. Этот вид соединения может очень выручить, если требуется получить файл из интернет и есть проблемы с PPP. Если вам требуется зайти куда-то по FTP, а PPP не работает, используйте терминальную сессию для получения файла по FTP. Затем используйте zmodem для сброса его на свой компьютер. На самом деле, страница руководства для устарела. Встроенная поддержка generic Hayes уже есть. Используйте Вы должны отключить эти сообщения при использовании составляет 60 секунд. Ваш модем должен использовать меньшее значение, или решит, что возникли проблемы со связью. Попробуйте не полностью поддерживает модемы Hayes. Решить это проблему можно отредактировав файл Конечно, для этого вам потребуются исходные тексты. После этого все должно работать отлично. Сделайте то, что называется прямой записью в файле Например, если модем подключен к первому последовательному порту, добавьте следующую строку: Используйте для br наибольшее значение bps, поддерживаемое модемом. Для подключения к модему выполните После ввода команд AT наберите Экранируйте его с помощью обратной косой черты: используйте generic запись для но используйте то значение bps, которое записано в поле br. считает, что хорошее значение по умолчанию это 1200 bps, поэтому обращается к записи Тем не менее, значение bps будет другим. используйте возможность для соединения с хостами pain или muffin, и для доступа к терминальному серверу. Эта проблема часто возникает в университете, где несколько модемных линий и несколько тысяч студентов, пытающихся их использовать. Затем, создайте список телефонов для университета в попробует связаться с каждым в указанном порядке, затем прекратит попытки. Если вы хотите продолжать соединяться, запустите 20.5.8. Почему я должен дважды нажать Ctrl P для отправки Ctrl P это управляющий символ по умолчанию, используемый для указания того, что далее идут символьные данные. Вы можете сделать любой другой символ управляющим с помощью экранирования которое означает установить переменную. завершив ввод новой строкой. это любой одиночный символ. Если вы не введете управляющим символом станет nul, который можно получить, введя Ctrl 2 или Ctrl Space. Хорошее значение для Ctrl 6, которое используется только на некоторых терминальных серверах. Вы можете использовать в качестве управляющего символа все, что захотите, поместив его в файл который был специально введен для тех, у кого не работает клавиша caps-lock. Используйте в подходящее значение. Фактически, вы можете установить ее в то же значение, что и управляющий символ, если не собираетесь использовать ни один из них. Вот, отлично подходящий для пользователей Emacs, которым часто требуется вводить 20.5.10. Могу ли я передавать файлы с помощью Если вы соединяетесь с другой системой UNIX, возможны передача и прием файлов с помощью команды take. Эти команды запускают в удаленной системе для приема и передачи файлов. Синтаксис следующий: Коррекции ошибок нет, поэтому возможно лучше использовать другой протокол, например zmodem. 20.5.11. Как мне запустить zmodem с Для получения файла запустите отправляющую программу на удаленной стороне. Затем, наберите для начала локального приема файла. Для отправки файлов запустите принимающую программу на удаленной стороне. Затем, наберите для отправки их на удаленную систему. Предоставил Kazutaka YOKOTA. Оригинальный документ написал Bill Paul. FreeBSD может загружаться при использовании в качестве консоли текстового терминала на последовательном порту. Такая конфигурация может быть полезна в двух случаях: для системных администраторов, устанавливающих FreeBSD на компьютеры без подключенных клавиатуры или монитора, и для разработчиков, производящих отладку ядра или драйверов устройств. Как описано в Гл. 12, процесс загрузки FreeBSD состоит из трех стадий. Первые две стадии реализованы в блоке загрузки, находящемся в начале слайса FreeBSD на загрузочном диске. На третей стадии загрузочный блок запускает загрузчик Для настройки последовательной консоли вам потребуется настроить блок загрузки, загрузчик и ядро. В этом разделе предполагается, что вы используете настройки по умолчанию и просто хотите увидеть краткий обзор настройки последовательной консоли. Соедините кабелем последовательный порт COM1 и управляющий терминал. Для того, чтобы сообщения в процессе загрузки выводились в последовательную консоль, выполните от имени суперпользователя команду В противном случае для входа с последовательной консоли не будет требоваться пароль, что может являться проблемой с точки зрения безопасности. Перезагрузите систему и убедитесь, что последовательная консоль активировалась. Если вам требуется иная конфигурация, обратитесь к более подробному описанию в разделе Разд. 20.6.3. Вам потребуется нуль-модемный или стандартный последовательный кабель и нуль-модемный адаптер. Обратитесь к Разд. 20.2.2, где рассматриваются последовательные кабели. Большинство систем PC тестируют клавиатуру во время включения POST и выдают ошибку если клавиатура не обнаружена. Некоторые системы при отсутствии клавиатуры выдают звуковой сигнал и не загружаются пока клавиатура не будет подключена. Если компьютер сообщает об ошибке, но все же загружается, вам не потребуется делать что-то еще. Некоторые компьютеры с Phoenix BIOS просто сообщают Если компьютер не загружается без клавиатуры, вам потребуется настроить BIOS так, чтобы отсутствие клавиатуры игнорировалось если это возможно. Обратитесь к руководству по материнской плате за деталями о том, как это сделать. Подсказка: Установка параметра клавиатуры Not installed в настройках BIOS не означает, что вы не сможете использовать клавиатуру. Все, что делает этот параметр - - указывает BIOS не тестировать клавиатуру во время загрузки, поэтому ее отсутствие не вызывает ошибки. Вы можете оставить клавиатуру подключенной, даже если с флагом Not installed и она все еще будет работать. Замечание: Если в к системе подключена PS/2 мышь, отключите ее, как и клавиатуру. Мышь PS/2 использует часть оборудования совместно с клавиатурой, поэтому если оставить ее подключенной, тестирование клавиатуры может ошибочно выдать наличие последней. Например, система Gateway 2000 Pentium 90 MHz ведет себя именно так. К тому же, это не проблема, поскольку мышь без клавиатуры как правило не нужна. Если у вас нет текстового терминала, используйте старый PC/XT с модемной программой, или последовательный порт на другом компьютере UNIX. Если порта нет, подключите его. На данный момент нет способа использовать другой порт вместо без перекомпиляции загрузочных блоков. Если вы уже используете для подключения другого устройства, временно удалите это устройство установите новый загрузочный блок и ядро как только FreeBSD заработает. Предполагается, что будет доступен на файловом/вычислительном/терминальном сервере в любом случае; если вам действительно требуется возможно не стоит беспокоиться об этом сейчас. Убедитесь, что в файле настройки ядра установлены соответствующие флаги для Включает поддержку консоли для этого устройства. Если установлен этот флаг, другие игнорируются. На данный момент поддержка консоли может быть включена не более чем на одном устройстве; предпочтительно на первом в соответствии с порядком в конфигурационном файле с установкой этого флага. Эта опция сама по себе не сделает последовательный порт консолью. Установите следующий флаг или используйте опцию описанную ниже, вместе с этим флагом. Включает поддержку консоли на устройстве если нет другой консоли с более высоким приоритетом, независимо от наличия описываемой ниже опции и делает устройство недоступным для обычной работы. Вы не должны использовать этот флаг для устройства последовательного порта, которое будет использоваться в качестве последовательной консоли. Используйте этот флаг только если устройство предназначено для удаленной отладки ядра. Обратитесь к Руководству для разработчиков за дополнительной информацией по удаленной отладке. Замечание: В FreeBSD 4.0 или выше семантика флага немного другая и для удаленной отладки используется другой флаг. device sio0 at isa? port IOCOM1 flags 0x10 irq 4 Обратитесь к странице справочника sio 4 за подробностями. Если флаги не были установлены, вам потребуется запустить UserConfig на другой консоли или пересобрать ядро. Этот файл сообщит загрузочному блоку способ загрузки системы. Для активации последовательной консоли вам потребуется одна или несколько следующих опций - - несколько опций могут быть указаны на одной строке: Переключает внутреннюю и последовательную консоль. Вы можете использовать ее для переключения устройств консоли. Например, при загрузке с внутренней видео консоли, вы можете использовать для запуска загрузчика и ядра с использованием последовательного порта в качестве устройства консоли. При загрузке с последовательной консоли, вы можете использовать опцию для указания загрузчику и ядру использовать в качестве консоли видео дисплей. Переключает одно- и двухконсольную конфигурации. В одноконсольной конфигурации консоль может быть либо внутренней видео дисплей, либо последовательным портом, в зависимости от состояния опции В двухконсольной конфигурации и видео дисплей и последовательный порт станут консолями одновременно, независимо от состояния опции Имейте ввиду, что конфигурация с двумя консолями работает только во время работы загрузочного блока. Как только управление переходит к загрузчику, остается только одна консоль, указанная опцией Указывает загрузочному блоку протестировать клавиатуру. Если клавиатура не найдена, автоматически устанавливаются параметры Замечание: По причине ограничений на размер в существующей версии загрузочного блока, опция может протестировать только расширенные клавиатуры. Клавиатуры с менее чем 101 клавишами и без клавиш F11 и F12 могут быть не обнаружены. Клавиатуры некоторых лэптопов могут быть не найдены из-за этого ограничения. Если это случилось, вы не сможете использовать опцию К сожалению, не существует обходного пути решения этой проблемы. для автоматического выбора консоли, или опцию для активации последовательной консоли. Вы можете включить также другие опции, описанные в boot 8. будут переданы загрузчику Загрузчик определит будет ли консолью внутреннее видео устройство или последовательный порт, проверив только состояние опции Это означает, что если вы включите в то сможете использовать консоль только во время работы загрузочного блока; загрузчик будет использовать внутреннее видео устройство в качестве консоли. Когда вы включите компьютер FreeBSD, загрузочный блок выведет содержимое и отражает наличие/отсутствие клавиатуры. Эти сообщения выводятся либо на последовательную, либо на внутреннюю консоль, или на обе, в зависимости от параметров в клавиатура присутствует клавиатура отсутствует После вывода вышеприведенных сообщений, происходит небольшая пауза перед тем, как запускается загрузчик и на консоли появляются следующие сообщения. В нормальной ситуации вам не потребуется прерывать загрузку в этот момент, но это можно сделать, чтобы убедиться, что все настроено правильно. Нажмите на консоли любую клавишу кроме Enter для прерывания процесса загрузки. Загрузочный блок выдаст приглашение к дальнейшим действиям. Оно выглядит примерно так: FreeBSD/i386 BOOT Default: 0:ad0, a/boot/loader boot: Убедитесь, что сообщение выше появилось на последовательной, внутренней консоли или на обеих, в зависимости от опций в Если сообщение появилось там, где должно было появиться, нажмите Enter для продолжения процесса загрузки. Если вам нужна последовательная консоль, но на терминале не видно приглашения, это означает проблемы с настройками. Введите и нажмите Enter/Return если это возможно для указания загрузочному блоку а также загрузчику и ядру выбрать последовательный порт в качестве консоли. Когда система загрузится, проверьте настройки еще раз и определите, что было сделано неправильно. После запуска загрузчика и перехода в третью стадию процесса загрузки вы все еще можете переключиться между внутренней консолью и последовательной консолью путем установки соответствующих переменных окружения в загрузчике. Обращайтесь к разделу Разд. 20.6.6. Здесь приведены краткие итоги по различным настройкам, рассмотренным в этом разделе и выбираемым в соответствии с ними консолям. 20.6.4.1. Вариант 1: вы устанавливаете для device sio0 at isa? port IOCOM1 flags 0x10 irq 4 клавиатура присутствует клавиатура отсутствует 20.6.4.2. Вариант 2: вы устанавливаете для device sio0 at isa? port IOCOM1 flags 0x30 irq 4 клавиатура присутствует клавиатура отсутствует По умолчанию, последовательный порт настроен так: 9600 бит/с, 8 бит, без четности, 1 стоп бит. Если вам необходимо изменить скорость, потребуется перекомпиляция как минимум загрузочных блоков. Добавьте следующую строку к Обратитесь к Разд. 20.6.5.2 за подробными инструкциями по сборке и установке новых загрузочных блоков. или последовательная консоль, используемая ядром, отличается от той, что используется загрузочным блоком, потребуется добавить следующие опции к файлу настройки ядра и собрать новое ядро: 20.6.5.2. Использование для консоли другого последовательного порта вместо для консоли потребует кое-какой перекомпиляции. Если вы по каким-либо причинам хотите использовать другой последовательный порт, перекомпилируйте загрузочный блок, загрузчик и ядро согласно приведенной ниже инструкции. Получите исходные тексты ядра глава Гл. 19 в соответствии с адресом порта, который вы хотите использовать 0x3F8, 0x2F8, 0x3E8 или 0x2E8. Могут быть использованы только устройства от мультипортовые последовательные карты не будут работать. Установка прерываний не требуется. Создайте файл настройки ядра и добавьте соответствующие флаги для порта, который планируется использовать. Например, если вы хотите использовать для консоли device sio1 at isa? port IOCOM2 flags 0x10 irq 3 device sio1 at isa? port IOCOM2 flags 0x30 irq 3 Флаги для других последовательных устройств не устанавливайте. Соберите и установите ядро. Запишите загрузочный блок на загрузочный диск с помощью disklabel 8 и загрузитесь с новым ядром. Если вы хотите войти в отладчик ядра с последовательной консоли полезно для удаленной диагностики, но опасно если вы введете неправильный BREAK на последовательном порту!, потребуется собрать ядро со следующими параметрами: Хотя это не обязательно, вам может потребоваться приглашение login по последовательной линии, в дополнение к уже доступным загрузочным сообщениям и отладочной сессии ядра. Здесь описано как сделать это. ttyd0/usr/libexec/getty std.9600 unknown off secure ttyd1/usr/libexec/getty std.9600 unknown off secure ttyd2/usr/libexec/getty std.9600 unknown off secure ttyd3/usr/libexec/getty std.9600 unknown off secure для требуемого порта. Если вы изменили скорость последовательного порта, может потребоваться изменить для соответствия текущим настройкам, например Возможно, вы захотите заменить тип терминала на тип реально используемого терминала. для включения новых настроек. Предыдущий раздел описывает настройку последовательной консоли изменением параметров загрузочного блока. Этот раздел показывает, как указать консоль, вводя команды и переменные окружения для загрузчика. Поскольку загрузчик загружается после загрузочного блока, на третьей стадии загрузочного процесса, настройки загрузчика превалируют над настройками загрузочного блока. Вы можете прямо указать загрузчику и ядру использовать последовательную консоль, записав одну строку в Это сработает независимо от настроек загрузочного блока, рассмотренных в предыдущем разделе. чтобы увидеть на последовательной консоли все загрузочные сообщения. загрузчик, а затем и ядро будут использовать ту консоль, которая установлена параметром В версиях 3.2 или выше, вы можете указать консоль в include/boot/loader.4th start и поместите туда следующую строку. Обращайтесь к 5 за дополнительной информацией. Замечание: На данный момент у загрузчика нет параметра, эквивалентного параметру загрузочного блока и нет способа автоматического выбора внутренней и последовательной консоли в зависимости от наличия клавиатуры. 20.6.6.2. Использование для консоли отличного от последовательного порта в качестве консоли. Следуйте процедуре, описанной в разделе Разд. 20.6.5.2. Идея в том, чтобы настроить выделенный сервер, который не требует графического оборудования или подсоединенной клавиатуры. К сожалению, хотя многие системы способны загрузиться без клавиатуры, есть совсем немного систем, способных загрузиться без графического адаптера. Компьютеры с AMI BIOS могут быть настроены для загрузки без графического адаптера простой установкой параметра настройки CMOS graphics adapter в значение Not installed. Однако, многие компьютеры не поддерживают этот параметр и не смогут загрузиться без графического оборудования. Для этих компьютеров вам потребуется оставить подключенной любую графическую карту даже если это просто старая моно карта, хотя монитор и не подключен. Реструктурировал, реорганизовал и обновил Jim Mock. Перевод на русский язык: Денис Пеплин. В FreeBSD существует множество способов соединения одного компьютера с другим. Для установления соединения с отдельной сетью или интернет через обычный модем, или для открытия доступа к собственному компьютеру необходимо использование PPP или SLIP. В этой главе детально описана настройка таких модемных сервисов. Как настроить PPP уровня пользователя user PPP. Как настроить PPP уровня ядра kernel PPP. Как настроить SLIP клиента и сервер. Ознакомиться с основными сетевыми технологиями. Понимать основы и назначение модемного соединения и PPP и/или SLIP. Вы возможно захотите узнать, в чем главное различие между PPP уровня пользователя и ядра. Ответ прост: PPP уровня пользователя обрабатывает входящие и исходящие данные в пространстве пользователя, а не в ядре. В терминах копирования данных между ядром и пространством пользователя это дорогостоящий путь, который однако позволяет значительно расширить возможности реализации PPP. PPP уровня пользователя для связи с внешним миром использует устройство а PPP уровня ядра - - устройство Замечание: В дальнейшем в этой главе PPP уровня пользователя будет обозначаться просто как ppp, пока не потребуется различать его и любое другое программное обеспечение PPP, такое как pppd. Если не указано иначе, все команды, приведенные в этой главе, должны выполняться под Обновил и расширил Tom Rhodes. Первоначально предоставил Brian Somers. Дополнительную информацию предоставили Nik Clayton, Dirk Fr mberg, Peter Childs. В этом документе предполагается, что у вас есть следующее: Учетная запись у провайдера интернет Internet Service Provider, ISP, к которому вы подсоединяетесь, используя PPP. Модем или другое подключенное к системе и правильно настроенное устройство, позволяющее подключиться к провайдеру. Номер модемного пула провайдера. Имя пользователя логин и пароль обычная UNIX пара логин/пароль, или PAP/CHAP пара логин/пароль. IP адреса одного или нескольких серверов имен. Обычно провайдер дает для этих целей два IP адреса. Если нет ни одного, вы можете использовать команду ppp настроит список серверов имен. Эта возможность зависит от наличия поддержки согласования DNS в реализации PPP провайдера. Следующая информация может поставляться провайдером, но не является совершенно необходимой: IP адрес шлюза провайдера. Шлюз это компьютер, к которому вы подключитесь и который будет настроен в качестве маршрута по умолчанию default route. Если у вас нет этой информации, она может быть получена от PPP сервера после подключения. Сетевая маска, которую вы должны использовать. Если провайдер не предоставил ее значение, вы можете использовать Если провайдер предоставил статический IP и имя хоста, используйте их. Иначе позвольте удаленной стороне назначить свободный IP адрес. Если у вас нет всей необходимой информации, свяжитесь с провайдером. Замечание: В этом разделе строки файлов настройки из многих примеров пронумерованы. Эти номера приведены только для обсуждения настроек, они не должны помещаться в действующую настройку. Правильные отступы с табуляцией и пробелами также важны. В обычной ситуации, большинству пользователей нужно только одно устройство это любой номер устройства, соответствующий вашей системе. Для систем FreeBSD без devfs 5 FreeBSD 4.X более ранние, необходимо проверить устройство это не требуется, если включена devfs 5, поскольку файлы устройств будут создаваться автоматически. Простейший способ убедиться, что устройство настроено правильно, это пересоздать устройство. Для пересоздания устройства выполните следующее: Если вам необходимы 16 туннельных устройств, потребуется их создать. Это можно сделать, выполнив следующие команды: 21.2.1.3. Автоматическая настройка реализация PPP уровня ядра используют файлы настройки, расположенные в каталоге Примеры для ppp уровня пользователя можно найти в требует редактирования нескольких файлов, в зависимости от ваших потребностей. То, что вы поместите в эти файлы, зависит в некоторой степени от того, предоставит ли провайдер статический IP адрес т.е. вы получите один определенный IP адрес и будете использовать его постоянно или динамический т.е. ваш IP адрес будет изменяться при каждом подключении к провайдеру. Он похож на приведенный ниже пример. Замечание: Строки, оканчивающиеся на вводятся без отступа в начале строки, остальные строки должны быть введены с отступом, как показано в примере. 255.255.255.255 0.0.0.0 18 add default HISADDR Начинает настройку по умолчанию default. Команды этой настройки выполняются автоматически при запуске ppp. Включает параметры протоколирования. Когда настройка работает удовлетворительно, эта строка должна быть сокращена до следующей формы для предотвращения появления слишком больших лог файлов. Указывает PPP как идентифицировать себя на удаленной стороне. PPP идентифицирует себя на удаленной стороне если возникают проблемы согласования и установки соединения, предоставляя информацию, по которой администратор на удаленной стороне может воспользоваться для решения таких проблем. Указывает устройство, к которому подключен модем. Устанавливает желаемую скорость подключения к модему. Если 115200 не работает хотя должна работать для любого относительно нового модема попробуйте 38400. Строка дозвона. PPP уровня пользователя применяет expect-send синтаксис, похожий на синтаксис chat 8. Обратитесь к странице справочника за информацией о возможностях этого языка. Обратите внимание, что эта команда продолжается на следующей строке для улучшения читаемости. Любая команда в может быть продолжена на следующей строке, если последний символ предыдущей строки Устанавливает предельное время ожидания для соединения. Значение 180 секунд используется по умолчанию, так что строка с этим значением чисто косметическая. Указывает PPP запросить у удаленной стороны сервера имен. Если вы работаете с локальным сервером имен, эта строка должна быть закомментирована или удалена. Пустая строка для улучшения читаемости. Пустые строки игнорируются PPP. Определяет настройки для провайдера, называемого provider. Это имя может быть изменено на имя вашего провайдера, чтобы в дальнейшем вы могли использовать Определяет телефонный номер для этого провайдера. Несколько телефонных номеров могут быть указаны с помощью двоеточия в качестве разделителя. Различия между двумя разделителями описаны в ppp 8. Главным образом они заключаются в том, что если вы хотите перебирать номера, используйте двоеточие. Если вы хотите дозваниваться по первому номеру в первую очередь, и использовать другие номера только если дозвон по первому завершится неудачно, используйте символ канала. Всегда заключайте список номеров в кавычки, как показано в примере. если в нем используются пробелы. Отсутствие кавычек может вызвать простую, но трудно обнаруживаемую ошибку. Задают имя пользователя и пароль. При использовании приглашения login в стиле UNIX, эти значения используются командой через переменные U и P. При соединении с использованием PAP или CHAP, эти значения используются во время аутентификации. Если вы используете PAP или CHAP, приглашение на вход не появится, и эта строка должна быть закомментирована или удалена. Обратитесь к странице аутентификация PAP и CHAP за дальнейшей информацией. Строка для входа записана в том же chat-подобном синтаксисе, что и строка для дозвона. В этом примере строка работает для сервиса, сессия входа которого выглядит примерно так: Вам потребуется изменить эту строку для использования с другим сервисом. При первом составлении скрипта убедитесь, что вы включили chat протоколирование, чтобы убедиться, что соединение происходит как ожидалось. Установка максимального времени ожидания по умолчанию для соединения. В данном случае соединение будет разорвано автоматически после 300 секунд неактивности. Если вы не хотите, чтобы соединение разрывалось, установите эту переменную в нуль, или используйте параметр командной строки Устанавливает адрес интерфейса. Строка должна быть заменена на IP адрес, который выделил вам провайдер. Строка должна быть заменена на IP адрес шлюза провайдера компьютер, к которому вы подключаетесь. Если провайдер не сообщил адрес шлюза, используйте Если вам требуется использовать вычисленные адреса, убедитесь, что создана запись в Добавляет маршрут по умолчанию к шлюзу провайдера. Специальное слово заменяется адресом шлюза, указанном в строке 17. Важно, чтобы эта строка появилась после строки 17, до нее переменная еще не инициализирована. эта строка должна быть перемещена в файл если у вас статический IP адрес и ppp работает в режиме поскольку таблица маршрутизации настроена правильно еще до подключения. Однако, вы возможно захотите создать запись для запуска программ после соединения. Эта ситуация описана далее в примере по sendmail. Если провайдер не выделил статический IP адрес, может быть настроен для определения локального и удаленного адреса. Это делается путем вычисления IP адреса и настройки его программой с использованием IP Configuration Protocol IPCP после установления соединения. Файл настройки 17 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255 Как и раньше, не включайте номер строки, он используется только для ссылки на строку в этом примере. Требуется отступ хотя бы в один пробел. это число бит в адресе, которые будут запрошены ppp. Вы можете использовать более подходящие вам IP адреса, но пример выше всегда будет работать. потребуется создать запись в Этот файл используется после установки соединения. На этот момент При установке соединения, по следующим правилам: сначала в соответствии с меткой, используемой в Если это не сработает, ведется поиск записи для IP адреса шлюза. Это метка в IP записывается в виде IP адреса. Если запись все еще не найдена, используется запись добавить маршрут по умолчанию, указывающий на будет заменен на IP адрес шлюза, определенного IPCP. При настройке ppp для приема входящих звонков на компьютере, подключенном к локальной сети, вам необходимо решить, перенаправлять ли пакеты в локальную сеть. Если вы будете делать это, выделите удаленной стороне IP адрес из диапазона адресов локальной сети, и используйте команду Вам потребуется также убедиться, что в файле это mgetty, более интеллектуальная версия разработанная специально для приема входящих звонков. в том, что она активно общается с модемами, то есть если порт будет выключен в модем не будет отвечать на звонок. от 0.99beta и выше поддерживают также автоматическое определение потоков PPP, позволяя клиентам безскриптовое подключение к серверу. 21.2.1.3.5. Права Если вы хотите разрешить запуск как описано ниже, этого пользователя необходимо добавить в группу Вам также потребуется дать ему доступ к одному или более разделов конфигурации, используя команду она дает пользователю полный доступ. Создайте файл, называющийся bin/sh IDENTecho 0 sed - e s/.-./1/CALLEDASIDENT TTYtty if xIDENT xdialup ; then IDENTbasename TTY fi echo PPP for CALLEDAS on TTY echo Starting PPP for IDENT exec/usr/sbin/ppp - direct IDENT Этот скрипт должен быть исполняемым. Теперь создайте на этот скрипт символическую ссылку с именем оболочки для удаленных пользователей. Ниже приведен пример записи в для редактирования файла паролей. который доступен для чтения и содержит следующие файлы нулевой длины: как в примере выше, и для каждой учетной записи со статически назначаемым IP создайте символическую ссылку на Например, если у вас три пользователя удаленного доступа, которые подключаются к вашей сети класса C, выполните следующее: Оболочка каждого из этих пользователей удаленного доступа должна быть символической ссылкой, созданной выше например, оболочка пользователя 21.2.1.3.8. Настройка default: set debug phase lcp chat set timeout 0 ttyd0: set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255 enable proxy ttyd1: set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255 enable proxy Замечание: Необходимо соблюдать отступы. загружается для каждого соединения. Для каждой строки, включенной в создайте запись, подобную выше. Каждая строка должна содержать уникальные IP адреса из вашего пула IP адресов, выделенных пользователям с динамическими IP. 21.2.1.3.9. Настройка Помимо содержимого, описанного в примере файла выше, вам потребуется добавить раздел для каждого из пользователей со статическими IP. Мы продолжим использовать имена fred: set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255 sam: set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255 mary: set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255 должен также содержать информацию о маршрутизации для каждого пользователя со статическим IP. В строке ниже через клиентское соединение добавляется маршрут к сети класса C fred: add 203.14.101.0 netmask 255.255.255.0 HISADDR sam: add 203.14.102.0 netmask 255.255.255.0 HISADDR mary: add 203.14.103.0 netmask 255.255.255.0 HISADDR определять LCP фазу PPP соединений и автоматически порождать оболочку ppp. Однако, поскольку стандартный метод логин/пароль не используется, необходима аутентификация пользователей через PAP или CHAP. В этом разделе предполагается, что пользователь успешно настроил, скомпилировал и установил версию v0.99beta или более поздняя. для обнаруженных соединений PPP. содержащий следующее этот файл должен быть выполняемым: bin/sh exec/usr/sbin/ppp - direct papIDENT Для каждой линии, включенной в создайте соответствующую запись в Она будет отлично сочетаться с тем, что было создано выше. pap: enable pap set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40 enable proxy Для каждого пользователя, входящего по этому методу, в файле должна присутствовать запись с логином/паролем, или, в качестве альтернативы, для аутентификации пользователей по PAP через необходимо использовать следующий параметр. Если вы хотите присвоить некоторым пользователям статический IP, задайте его в качестве третьего аргумента в Возможна настройка PPP для выдачи адресов DNS и NetBIOS по запросу. Для включения этих расширений с PPP версии 1.x, необходимо добавить к соответствующему разделу enable msext set ns 203.14.100.1 203.14.100.2 set nbns 203.14.100.5 accept dns set dns 203.14.100.1 203.14.100.2 set nbns 203.14.100.5 Клиентам будут выдаваться адреса первичного и вторичного серверов имен, и адрес хоста NetBIOS. будет опущена, PPP использует значения из Некоторые провайдеры настраивают систему так, что аутентификация производится с использованием либо PAP либо CHAP. В этом случае, приглашение при соединении не выдается и соединение PPP начинается сразу. PAP менее безопасен, чем CHAP, но безопасность в данном случае не страдает, поскольку хотя пароли и передаются открытым текстом, они передаются только по модемной линии. У кракеров не так много возможностей для кражи паролей. Эта строка указывает имя пользователя PAP/CHAP. Вам потребуется заменить Эта строка указывает пароль PAP/CHAP. Вам потребуется заменить на правильное значение. Вы можете также добавить дополнительную строку, такую как: для явного указания протокола, но и PAP и CHAP поддерживаются по умолчанию. Ваш провайдер обычно не потребует входа на сервер при использовании PAP или CHAP. Следовательно, вы должны отключить строку set login. 21.2.1.3.13. Изменение настроек программы во время ее работы в фоновом режиме, но только если открыт соответствующий диагностический порт. Для его открытия добавьте в настройку следующую строку: С этой директивой ppp будет прослушивать заданный UNIX сокет, запрашивая у клиентов пароль перед выдачей доступа. Символы Как только сокет открыт, в скриптах, выполняющих настройку работающей программы, можно использовать pppctl 8. PPP имеет возможность использовать встроенный NAT без преобразования пакетов в ядре. Эта возможность может быть включена следующей строкой в Альтернативно, PPP NAT может быть включен параметром командной строки Существует также переменная которая включена по умолчанию. Если вы используете эту возможность, вы также можете найти полезными параметры настроена, осталось выполнить еще несколько действий прежде, чем все это заработает. Они выполняются путем редактирования файла Просматривая этот файл, убедитесь, что добавлена строка Если провайдер предоставил вам статический IP адрес и имя, возможно лучше всего использовать это имя в качестве имени хоста. Если вы хотите настроить систему для дозвона по требованию, убедитесь, что устройство добавлено в список, иначе удалите его. должна быть пуста, необходимо также создать файл В этом файле должна находиться строка: Этот скрипт выполняется во время настройки сети, запуская даемона ppp в автоматическом режиме. Если эта машина является шлюзом для локальной сети, вы можете также использовать переключатель Обратитесь к странице справочника за дальнейшей информацией. Убедитесь, что программа маршрутизации отключена переменной в файле не был запущен, поскольку он может удалить запись маршрута по умолчанию, создаваемую Возможно, стоит обратить внимание на переменную и убедиться, что она не включает параметр попытается сразу же обратиться к сети, и компьютер может начать дозвон. Вы можете попробовать: Обратная сторона этого решения в том, что необходим запуск очереди 1 provider: 2 delete ALL 3 add 0 0 HISADDR 4!bg sendmail - bd - q30m Если вам это не нужно, возможна настройка dfilter для блокирования SMTP трафика. Обратитесь файлам примеров за дальнейшей информацией. Все, что осталось, это перегрузить компьютер. После перезагрузки вы можете либо выполнить: для запуска сессии PPP, либо, если вы хотите, чтобы программа Убедитесь, что устройство Убедитесь, что устройства должен подойти для большинства провайдеров. Если у вас динамический IP адрес, создайте запись в если необходим дозвон по требованию. Убедитесь, что устройство Убедитесь, что устройства Создайте профиль в домашнем каталоге пользователя, запускающий Части документа первоначально предоставили Gennady B. Sorokopud, Robert Huff. Перед началом настройки PPP на вашем компьютере, убедитесь, что В качестве клиента - - когда вы хотите подключить компьютер к внешнему миру через последовательное соединение PPP или модемную линию. В качестве сервера - - когда компьютер подключен к сети и используется для подключения других компьютеров через PPP. если на вашем компьютере более одного пользователя работают с PPP. для дозвона и установки соединения с удаленным хостом. 21.3.2. Использование в качестве клиента Основано на информации, предоставленной Trev Roydhouse. crtscts enable hardware flow control modem modem control line noipdefault remote PPP server must supply your IP address if the remote host does not send your IP during IPCP negotiation, remove this option passive wait for LCP packets domain put your domain name here: remoteip put the IP of remote PPP host here it will be used to route packets via PPP link if you didnt specified the noipdefault option change this line to localip : remoteip defaultroute put this if you want that PPP server will be your default router Дозвонитесь на удаленный хост, используя kermit или любую другую модемную программу, и введите ваше имя пользователя и пароль или те данные, которые требуются для установления PPP соединения с удаленным хостом. Выйдите из kermit без обрыва соединения. Убедитесь, что выбраны подходящая скорость и правильное имя устройства. Теперь ваш компьютер подключен по PPP. Если соединение не состоялось, вы можете добавить параметр и отследить проблему по сообщениям на консоли. bin/sh ps ax grep pppd grep - v grep pidps ax grep pppd grep - v grepawk print 1; if Xpid! X ; then echo killing pppd, PID pid kill pid fi ps ax grep kermit grep - v grep pidps ax grep kermit grep - v grepawk print 1; if Xpid! X ; then echo killing kermit, PID pid kill - 9 pid fi ifconfig ppp0 down ifconfig ppp0 delete kermit - y pppd/dev/tty01 19200 kermit, который дозванивается до удаленного хоста и проходит необходимую авторизацию пример такого скрипта находится в конце этого раздела. bin/sh pidps ax grep pppd grep - v grepawk print 1; if Xpid! X ; then echo killing pppd, PID pid kill - TERM pid fi ps ax grep kermit grep - v grep pidps ax grep kermit grep - v grepawk print 1; if Xpid! X ; then echo killing kermit, PID pid kill - 9 pid fi/sbin/ifconfig ppp0 down/sbin/ifconfig ppp0 delete kermit - y /etc/ppp/ppptest Проверьте, запущен ли еще который выглядит примерно так: bin/sh pidps ax grep pppd grep - v grepawk print 1; if Xpid! X ; then echo pppd running: PID pid-NONE else echo No pppd running. fi set - x netstat - n - I ppp0 ifconfig ppp0 Для обрыва соединения, выполните который должен содержать: set line/dev/tty01 ; put your modem device here set speed 19200 set file type binary set file names literal set win 8 set rec pack 1024 set send pack 1024 set block 3 set term bytesize 8 set command bytesize 8 set flow none pau 1 out inp 5 OK out ATH013 echo 13 exit Существует альтернативный метод, использующий dev/cuaa1 115200 crtscts enable hardware flow control modem modem control line connect/usr/bin/chat - f noipdefault remote PPP serve must supply your IP address if the remote host doesnt send your IP during IPCP negotiation, remove this option passive wait for LCP packets domain put your domain name here: put the IP of remote PPP host here it will be used to route packets via PPP link if you didnt specified the noipdefault option change this line to localip : remoteip defaultroute put this if you want that PPP server will be your default router Замечание: Все это может быть расположено на одной строке. Как только эти файлы будут созданы и отредактированы, необходимо только запустить 21.3.3. Использование bin/sh ps ax grep pppd grep - v grep pidps ax grep pppd grep - v grepawk print 1; if Xpid! X ; then echo killing pppd, PID pid kill pid fi ps ax grep kermit grep - v grep pidps ax grep kermit grep - v grepawk print 1; if Xpid! X ; then echo killing kermit, PID pid kill - 9 pid fi reset ppp interface ifconfig ppp0 down ifconfig ppp0 delete enable autoanswer mode kermit - y run ppp pppd/dev/tty01 19200 bin/sh ps ax grep pppd grep - v grep pidps ax grep pppd grep - v grepawk print 1; if Xpid! X ; then echo killing pppd, PID pid kill pid fi ps ax grep kermit grep - v grep pidps ax grep kermit grep - v grepawk print 1; if Xpid! X ; then echo killing kermit, PID pid kill - 9 pid fi ifconfig ppp0 down ifconfig ppp0 delete kermit - y включит/отключит режим ответа модема на входящие звонки. Он должен выглядеть примерно так: set line/dev/tty01 set speed 19200 set file type binary set file names literal set win 8 set rec pack 1024 set send pack 1024 set block 3 set term bytesize 8 set command bytesize 8 set flow none pau 1 out inp 5 OK out ATH013 inp 5 OK echo 13 out ATS0113 ; change this to out ATS0013 if you want to disable ; autoanswer mode inp 5 OK echo 13 exit используется для дозвона и аутентификации на удаленном хосте. Вам потребуется приспособить его под собственные нужды. Поместите ваш логин и пароль в этот скрипт; вам также потребуется изменить операторы input в зависимости от ответов от модема и удаленного хоста. put the com line attached to the modem here: ; set line/dev/tty01 ; ; put the modem speed here: ; set speed 19200 set file type binary ; full 8 bit file xfer set file names literal set win 8 set rec pack 1024 set send pack 1024 set block 3 set term bytesize 8 set command bytesize 8 set flow none set modem hayes set dial hangup off set carrier auto ; Then SET CARRIER if necessary, set dial display on ; Then SET DIAL if necessary, set input echo on set input timeout proceed set input case ignore def %x 0 ; login prompt counter goto slhup:slcmd ; put the modem in command mode echo Put the modem in command mode. clear ; Clear unread characters from input buffer pause 1 output ; hayes escape sequence input 1 OK1310 ; wait for OK if success goto slhup output 13 pause 1 output at13 input 1 OK1310 if fail goto slcmd ; if modem doesnt answer OK, try again:slhup ; hang up the phone clear ; Clear unread characters from input buffer pause 1 echo Hanging up the phone. output ath013 ; hayes command for on hook input 2 OK1310 if fail goto slcmd ; if no OK answer, put modem in command mode:sldial ; dial the number pause 1 echo Dialing. output atdt9, 5503111310 ; put phone number here assign %x 0 ; zero the time counter:look clear ; Clear unread characters from input buffer increment %x ; Count the seconds input 1 CONNECT if success goto sllogin reinput 1 NO CARRIER1310 if success goto sldial reinput 1 NO DIALTONE1310 if success goto slnodial reinput 1 255 if success goto slhup reinput 1 127 if success goto slhup if %x 60 goto look else goto slhup:sllogin ; login assign %x 0 ; zero the time counter pause 1 echo Looking for login prompt.:slloop increment %x ; Count the seconds clear ; Clear unread characters from input buffer output 13 ; ; put your expected login prompt here: ; input 1 Username: if success goto sluid reinput 1 255 if success goto slhup reinput 1 127 if success goto slhup if %x 10 goto slloop ; try 10 times to get a login prompt else goto slhup ; hang up and start again if 10 failures:sluid ; ; put your userid here: ; output ppp-login13 input 1 Password: ; ; put your password here: ; output ppp-password13 input 1 Entering SLIP mode. echo quit:slnodial echo 7No dialtone. Check the telephone line!7 exit 1 ; local variables: ; mode: csh ; comment-start: ; ; comment-start-skip: ; ; end: 21.4. Решение проблем с соединениями PPP Этот раздел охватывает несколько вопросов, которые могут возникнуть при использовании PPP через модемные соединения. Например, предположим, что вам потребовалось узнать, какое именно приглашение отображает система, до которой вы дозваниваетесь. Некоторые провайдеры выдают приглашение скрипт не обрабатывает такие приглашения, попытка входа завершится неудачно. Наиболее общий способ отладки соединений это подключение вручную. Ниже дана пошаговая информация по подключению вручную. Если вы пересобирали ядро, проверьте устройство Если вы не перенастраивали ядро, нет причин для беспокойства. Просто проверьте вывод Это COM порты, которые нам необходимы. Если ваш модем работает как стандартный последовательный порт, вы увидите его на Если это так, вам не требуется пересобирать ядро, необходимо лишь создать последовательное устройство. Вы можете сделать это, зайдя в Создайте последовательные устройства: в DOS, модемным устройством будет вручную это быстрый, легкий и действенный способ отладки соединения или получения информации о обслуживании провайдером клиентского соединения Запустите PPP из командной строки. В примерах в качестве имени хоста мы будем использовать example. Запустите Мы указали модемное устройство, в данном случае Мы установили скорость подключения к модему, в данном случае 115, 200 кбит/с настроить разрешение имен, добавив строки в не может определить имя хоста, его можно настроить позже вручную. Переключение в терминальный режим для контроля модема вручную. для инициализации модема, а затем и номера провайдера для начала дозвона. Подтверждение соединения, если есть проблемы с соединением, не вызванные проблемами в оборудовании, здесь мы попытаемся решить их. Здесь вам предлагается ввести имя пользователя в приглашение, выводимое сервером провайдера. Здесь предлагается ввести пароль, предоставленный провайдером. Как и при входе в FreeBSD, пароль не отображается. В зависимости от вашего провайдера, это приглашение может не появиться. Здесь задается вопрос, хотите ли вы использовать оболочку на компьютере провайдера или запустить В этом примере мы выбрали поскольку хотим соединиться с интернет. Обратите внимание, что в этом примере первая буква появилась в верхнем регистре. Это означает, что мы успешно подключились к провайдеру. адресов, соединение успешно установлено. Это маршрут по умолчанию, его необходимо настроить, чтобы сделать возможной связь с внешним миром, поскольку на этот момент установлена связь только с удаленной стороной. Если маршрут не устанавливается из-за уже существующего маршрута, добавьте символ Альтернативно вы можете сделать настройку перед установкой соединения. Если все прошло удачно, на данный момент должно работать соединение с интернет, которое можно поместить в фоновый режим клавишами CTRL означает, что соединение было разорвано. Таким образом, символы P в верхнем регистре означают наличие соединения, а в нижнем - - потерю соединения. Если у вас выделенная линия и нет необходимости устанавливать соединение, выключите контроль передачи данных CTS/RTS Это обычно необходимо при подключении к поддерживающим PPP терминальным серверам, когда PPP прерывается при попытке записать данные в ваше соединение, и ожидает сигнала CTS или Clear To Send, который не появляется. Если вы используете этот параметр, используйте также параметр который может быть необходим для устранения зависимости от оборудования путем пропускания определенных символов через соединение, обычно XON/XOFF. Обратитесь к странице справочника ppp 8 за более подробной информацией по этому параметру и его использованию. Если у вас старый модем, может потребоваться использование Проверка четности по умолчанию отключена, но она используется для для устранения ошибок с серьезным увеличением объема трафика на старых модемах и у некоторых провайдеров. PPP может не вернуться в командный режим, что обычно вызвано ошибкой согласования, когда провайдер ждет от вас начала процесса согласования. В этот момент использование команды заставит ppp начать отправку настроечной информации. Если вы не получаете приглашения на вход, скорее всего вам требуется использование аутентификации PAP вместо UNIX стиля как в примерах выше. Для использования PAP на имя пользователя, выданное провайдером. должен быть заменен на пароль, выданный провайдером. Если вы подключаетесь, не можете определить ни одно доменное имя, попробуйте использовать ping 8 с каким-либо IP адресом и просмотрите выводимую информацию. Если 100 процентов 100% пакетов теряются, скорее всего не назначен маршрут по умолчанию. Дважды проверьте, что параметр установлен во время соединения. Если вы можете подключиться к удаленному IP адресу, возможно, что адрес сервера имен не был добавлен в Этот файл должен выглядеть примерно так: адреса DNS серверов провайдера. Эта информация может предоставляться провайдером, вы можете выяснить это в службе поддержки. Вы можете также настроить syslog 3 для протоколирования PPP соединения. Просто добавьте: В большинстве случаев эти строки уже присутствуют. Предоставил с Jim Mock. Этот раздел описывает настройку PPP через Ethernet PPP over Ethernet, PPPoE Для PPPoE более не требуется настройка ядра. Если необходимая поддержка netgraph не встроена в ядро, она будет динамически загружена ppp. 21.5.2. Настройка default: set log Phase tun command you can add more detailed logging if you wish set ifaddr 10.0.0.1/0 10.0.0.2/0 nameofserviceprovider: set device PPPoE: 21.5.3. Запуск 21.5.4. Запуск pppenableYES pppmodeddial pppnatYES if you want to enable nat for your local network, otherwise NO pppprofilenameofserviceprovider Иногда для установки соединения необходимо использовать тег сервиса. Теги сервисов используются для различения PPPoE серверов, подключенных к одной сети. В документации, предоставляемой провайдером, должна находиться необходимая информация о теге сервиса. Если вы не можете ее обнаружить, обратитесь в службу поддержки. В крайнем случае, вы можете попробовать метод, предложенный в программе Roaring Penguin PPPoE, которая находится в коллекции портов. Учтите, что этот метод может сделать ваш модем неработоспособным, так что дважды подумайте перед тем, как воспользоваться им. Просто установите программу, поставляемую с модемом вашим провайдером. Затем, войдите в меню System программы. Имя вашего профиля должно находиться здесь. Обычно это относящаяся к провайдеру. Обратитесь к странице справочника ppp 8 за более подробной информацией. Эта команда должна выглядеть примерно так: на имя устройства вашей Ethernet карты. на профиль, определенный вами ранее. Этот модем не поддерживает RFC 2516 Метод соединения PPP через Ethernet PPPoE, написанный L. Mamakos, K. Lidl, J. Evarts, D. Carrel, D. Simone, и R. Wheeler. Вместо этого, для фреймов Ethernet используются различные коды типов пакетов. Сообщите 3Com если считаете, что они должны соблюдать спецификации PPPoE. Для включения поддержки этого нестандартного устройства, в FreeBSD необходимо установить переменную sysctl. Это может быть сделано автоматически, поместите в или, для непосредственного включения, выполните команду К сожалению, поскольку эта настройка влияет на всю систему, невозможно одновременно взаимодействовать с нормальным PPPoE клиентом или сервером и 3Com HomeConnect ADSL Modem. 21.6. Использование Далее описано как настроить PPP через ATM PPP over ATM, PPPoA. PPPoA популярен у европейских провайдеров DSL. Поддержка PPPoA для этого устройства в FreeBSD поставляется в виде порта, поскольку встроенное программное обеспечение поставляется под лицензионным соглашением Alcatel и не может свободно распространяться с основной системой FreeBSD. Для установки этой программы, просто используйте коллекцию портов. Установите порт Как и многие устройства USB, Alcatel SpeedTouch USB должен загрузить встроенное программное обеспечение с компьютера. Возможна автоматизация этого процесса в FreeBSD, чтобы эта передача происходила при подключении устройства к порту USB. Для включения этой автоматической передачи необходимо добавить в нижеприведенную информацию. Этот файл необходимо отредактировать под пользователем device Alcatel SpeedTouch USB devname ugen0-9 vendor 0x06b9 product 0x4061 attach/usr/local/sbin/modemrun - f/usr/local/libdata/mgmt.o Для включения даемона USB, usbd, поместите в Возможна также настройка ppp для дозвона при запуске. Для этого добавьте в нижеприведенные строки. Опять же, для этого вам необходимо войти под пользователем Вы можете использовать mpd для подключения к различным сервисам, в частности к сервисам PPTP. Вы можете найти mpd в коллекции портов, Многие ADSL модемы требуют, чтобы PPTP туннель был создан между модемом и компьютером, один из таких модемов это Alcatel SpeedTouch Home. Сначала установите порт, затем настройте mpd под собственные нужды и настройки провайдера. Порт помещает набор примеров настройки в каталог означает каталог, в который устанавливаются порты, по умолчанию это Полное руководство по настройке mpd доступно в HTML формате после установки порта. Оно находится в Ниже находится пример настройки mpd для соединения с ADSL сервисом. Настройка разделена на два файла, первый это set bundle disable multilink set link no pap acfcomp protocomp set link disable chap set link accept chap set link keep-alive 30 10 set ipcp no vjcomp set ipcp ranges 0.0.0.0/0 0.0.0.0/0 set iface route default set iface disable on-demand set iface enable proxy-arp set iface idle 0 open Имя пользователя, используемое для аутентификации у провайдера. Пароль, используемый для аутентификации у провайдера. содержит информацию о соединении или соединениях, которые вы планируете установить. Пример соответствующий приведенному выше примеру: IP адрес компьютера FreeBSD, с которого вы будете использовать IP адрес модема ADSL. Для Alcatel SpeedTouch Home этот адрес по умолчанию ng0: flags88d1 UP, POINTOPOINT, RUNNING, NOARP, SIMPLEX, MULTICAST mtu 1500 inet 216.136.204.117 - - 204.152.186.171 netmask 0xffffffff Использование mpd это рекомендуемый способ подключения к сервису ADSL из FreeBSD. установите порт или пакет и отредактируйте Вам потребуется работать под дан ниже. За дальнейшей информацией по параметрам Имя пользователя вашей учетной записи у провайдера DSL. Пароль для вашей учетной записи. убедитесь что никто другой не сможет прочесть содержимое этого файла. Следующая последовательность команд сделает этот файл доступным для чтения только пользователю Следующая команда откроет туннель для PPP сессии к вашему DSL маршрутизатору. Модемы Ethernet DSL поставляются с настроенным IP адресом локальной сети, к которому вы подключаетесь. У Alcatel SpeedTouch Home этот адрес В документации на ваш маршрутизатор должно быть указано, какой адрес используется. Для открытия туннеля и начала PPP сессии выполните: Подсказка: Чтобы вернуться в приглашение командной строки после выполнения этой команды, добавьте символ в конец строки. ppp. Как только вы вернетесь в приглашение, или процесс pptp выполнит соединение, вы можете проверить туннель примерно такой командой: tun0: flags8051 UP, POINTOPOINT, RUNNING, MULTICAST mtu 1500 inet 216.136.204.21 - - 204.152.186.171 netmask 0xffffff00 Opened by PID 918 Если вы не сможете соединиться, проверьте настройку маршрутизатора, которая обычно доступна через telnet или через веб браузер. Если вы все еще не можете подключиться, проверьте вывод команды и содержимое лог файла ppp, Первоначально предоставил Satoshi Asami. Дополнительный материал предоставили Guy Helmer, Piero Serini. Ниже дан один из способов настройки FreeBSD для подключения к SLIP сети со статическим адресом. Для динамического подключения адрес изменяется при каждом дозвоне возможно потребуется более сложная настройка. Сначала определите, к какому последовательному порту подключен модем. Многие создают символическую ссылку, такую как на настоящий файл устройства, Это позволяет абстрагироваться от имени файла устройства, например если вы переносите модем на другой порт. Довольно сложно править множество файлов в Убедитесь, что в вашем файле настройки ядра присутствует строка: В FreeBSD 5.X, используйте вместо этой строки следующую: так что если вы ее не удаляли, проблем быть не должно. Добавьте ваш компьютер, шлюз и сервера имен в файл для FreeBSD версий до 5.0. Начиная с FreeBSD 5.0, система использует файл этого файла. Без этого параметра могут происходить странные вещи. Установите имя хоста, настроив переменную hostname: Здесь необходимо использовать полное доменное имя вашего компьютера в интернет. к списку сетевых интерфейсов, изменив переменную: Назначьте маршрутизатор по умолчанию, изменив строку: domain nameserver 128.32.136.9 nameserver 128.32.136.12 Как вы видите, здесь указаны адреса серверов имен. Конечно, реальные имена доменов и адреса для вас будут другими. Перегрузите компьютер и убедитесь, что его имя хоста настроено правильно. Дозвонитесь на удаленный сервер, введите в приглашение, имя своего компьютера и пароль. Все, что требуется ввести в вашем случае. Если вы используете kermit, попробуйте такой скрипт: kermit setup set modem hayes set line/dev/modem set speed 115200 set parity none set flow rts/cts set terminal bytesize 8 set file type binary The next macro will dial up and login define slip dial 643-9600, input 10, if failure stop, - output slipx0d, input 10 Username:, if failure stop, - output silviax0d, input 10 Password:, if failure stop, - output x0d, echo x0aCONNECTEDx0a Конечно, вам потребуется заменить имя хоста и пароль на ваши собственные. После этого, для подключения просто введите Замечание: Хранение пароля в любом месте файловой системы в незашифрованном виде это обычно плохая идея. Вы делаете это на свой риск. Выйдите из kermit вы можете приостановить его, нажав Ctrl - для хостов по другую сторону маршрутизатора, вы подключились! Если это не работает, попробуйте параметр Помните, что вы должны работать под для выполнения этой команды. Затем вернитесь в kermit запустив если он приостановлен и выйдите из него сообщает, что для отключения интерфейса необходимо использовать но это похоже не играет никакой роли. Иногда модем может не сбросить соединение это бывает довольно часто. В этом случае просто запустите kermit и выйдите из него еще раз. При второй попытке соединение обычно разрывается. это может быть не фатально, но иногда вызывает проблемы. с некоторыми шрифтами сложно увидеть разницу. для просмотра статуса интерфейса. Например, вы можете получить такую информацию: sl0: flags10 POINTOPOINT inet 136.152.64.181 - - 136.152.64.1 netmask ffffff00 от команды ping, возможно это проблема с таблицей маршрутизации. Используйте команду Routing tables Destination Gateway Flags Refs Use IfaceMTU Rtt Netmasks: root node root node Route Tree for Protocol Family inet: root node default UG 8 224515 sl0 - - UH 5 42127 lo0 - 0.438 UH 1 0 sl0 - - UGH 34 47641234 lo0 - 0.438 root node Предыдущий пример получен на относительно загруженной системе. Числа в вашей системе будут сильно зависеть от загрузки сети. Этот документ предоставляет решение для настройки SLIP сервера в системе FreeBSD, что обычно означает настройку системы для автоматического запуска соединений при удаленном входе SLIP клиентов. Информация в этом разделе чисто техническая, поэтому требуются некоторые предварительные знания. Предполагается, что вы знакомы с сетевым протоколом TCP/IP, и в частности, с адресацией сетей и хостов, сетевыми масками, делением на подсети, маршрутизацией и протоколами маршрутизации, такими как RIP. Настройка SLIP сервисов на сервере удаленного доступа требует знания этих концепций, и если вы не знакомы с ними, прочтите или книгу TCP/IP Network Administration от Craig Hunt, опубликованную OReilly Associates, Inc. ISBN Number 0-937175-82-X, или книги Douglas Comer по протоколу TCP/IP. В дальнейшем предполагается, что вы уже настроили ваш модем модемы и настроили соответствующие системные файлы для разрешения входа через них. Если вы еще не подготовили систему соответствующим образом, обратитесь к руководству по настройке сервисов удаленного входа; просмотрите список руководств на Вы можете также обратиться к странице справочника sio 4 за информацией о драйвере последовательного порта и к страницам gettytab 5, getty 8 и init 8 за информацией по настройке системы для удаленного входа в систему через модемы, и возможно stty 1 за информацией о настройке параметров последовательных портов таких как для подключаемых непосредственно последовательных интерфейсов. В типичной конфигурации FreeBSD работает в качестве SLIP сервера так: пользователь SLIP дозванивается на FreeBSD SLIP сервер и входит в систему со специальным SLIP логином, использующим в качестве оболочки. Программа на предмет строки, соответствующей специальному пользователю, и если находит совпадение, подключает последовательную линию к доступному SLIP интерфейсу, а затем запускает shell скрипт для настройки SLIP интерфейса. Например, идентификатор пользователя на SLIP сервере Соответствующая запись в в которой находится соответствующий идентификатор пользователя; например, строка может быть такой: подключает последовательную линию к следующему доступному SLIP интерфейсу, а затем выполняет Если все проходит нормально, для SLIP интерфейса, к которому подключилась программа slip интерфейс 0 в примере выше, первый параметр в списке, задаваемом сетевой маски для SLIP интерфейса и любых дополнительных флагов syslog; эти сообщения как правило попадают в чтобы выяснить, что протоколирует и куда помещается информация. Достаточно примеров - - давайте начнем настройку системы. вы можете использовать команду чтобы выяснить, определены ли эти интерфейсы в вашем ядре. означает, что SLIP интерфейсы встроены в ядро символ split показывает неактивность интерфейсов. Ядро FreeBSD по умолчанию не пересылает пакеты между интерфейсами компьютер FreeBSD не работает как маршрутизатор, вследствие требований RFC см. RFCs 1009 Requirements for Internet Gateways, 1122 Requirements for Internet Hosts - - Communication Layers, и возможно 1127 A Perspective on the Host Requirements RFCs. Если вы хотите, чтобы FreeBSD SLIP работал в качестве маршрутизатора, отредактируйте файл Для вступления изменений в силу потребуется перезагрузка. Она определяет число доступных устройств SLIP в ядре; Число в конце строки определяет максимально возможное количество одновременных SLIP соединений. Обратитесь к Гл. 8 за информацией по настройке ядра FreeBSD. Как упоминалось ранее, в каталоге находятся три файла, являющиеся частью настройки для определяющий список пользователей SLIP и связанные с ними IP адреса; который обычно всего лишь настраивает SLIP интерфейс; который восстанавливает состояние системы до запуска после завершения последовательного соединения. 21.7.2.4.1. Настройка содержит строки, в которых находится как минимум четыре параметра, разделенных пробелами: или через службу доменных имен, в зависимости от настроек в файле для FreeBSD 4.X, а сетевая маска может быть именем, разрешаемым через файл В системе, используемой в качестве примера, файл В конце строки находятся один или более параметров. сжимать заголовки, если удаленная сторона это позволяет Выбор локального и удаленного адреса для SLIP соединений зависит от того, используете ли вы выделенную TCP/IP сеть, или используете на SLIP сервере ARP прокси. это не настоящий ARP прокси, но данная терминология используется в этом разделе. Если вы не уверены, какой метод выбрать, или как присвоить IP адреса, обратитесь к книгам по TCP/IP, упомянутым выше Разд. 21.7.2.1. Если вы собираетесь использовать отдельную подсеть для SLIP клиентов, потребуется выделить адреса за пределом адресов вашей сети и присвоить каждому SLIP клиенту IP адрес из данной подсети. Затем вам возможно потребуется настроить статический маршрут в используемую для SLIP подсеть через SLIP сервер на ближайшем IP маршрутизаторе. Иначе, если вы будете использовать метод proxy ARP, потребуется присвоить SLIP клиентам IP адреса, не входящие в Ethernet подсеть сервера SLIP, а также настроить скрипты чтобы использовать arp 8 для управления записями ARP прокси в таблице ARP сервера SLIP. 21.7.2.4.2. Настройка bin/sh - 5.1 Berkeley 7/1/90 generic login file for a slip line. sliplogin invokes this with the parameters: 1 2 3 4 5 6 7-n slipunit ttyspeed loginname local-addr remote-addr mask opt-args /sbin/ifconfig sl1 inet 4 5 netmask 6 для соответствующего SLIP интерфейса с заданными локальным и удаленным адресом и сетевой маской. Если вы решили использовать метод ARP прокси вместо использования отдельной подсети для SLIP клиентов, ваш файл bin/sh - 5.1 Berkeley 7/1/90 generic login file for a slip line. sliplogin invokes this with the parameters: 1 2 3 4 5 6 7-n slipunit ttyspeed loginname local-addr remote-addr mask opt-args /sbin/ifconfig sl1 inet 4 5 netmask 6 Answer ARP requests for the SLIP client with our Ethernet addr/usr/sbin/arp - s 5 00:11:22:33:44:55 pub создает ARP запись в ARP таблице SLIP сервера. При соединении другого узла в Ethernet с IP адресом SLIP клиента, SLIP сервер выдает ответ с собственным Ethernet MAC адресом. При использовании примера выше убедитесь, что заменили Ethernet MAC адрес на MAC адрес Ethernet карты вашей системы, или ваш ARP прокси точно не будет работать! Вы можете определить Ethernet MAC адрес SLIP сервера, просмотрев вывод команды выше; информация об адресе находится второй строке: Это означает, что в данной системе Ethernet MAC адрес точки в MAC адресе, выдаваемые должны быть заменены на двоеточия, необходимо также добавить нуль в начало каждого односимвольного шестнадцатеричного номера для преобразования этого адреса в форму, пригодную для arp 8 ; обратитесь к странице справочника arp 8 за полной информацией по использованию. должен быть установлен бит выполнения 21.7.2.4.3. Настройка не является совершенно необходимым если только вы не реализуете ARP прокси, но если вы решили создать его, воспользуйтесь следующим примером: bin/sh - logout file for a slip line. sliplogin invokes this with the parameters: 1 2 3 4 5 6 7-n slipunit ttyspeed loginname local-addr remote-addr mask opt-args /sbin/ifconfig sl1 down Если вы используете ARP прокси, потребуется удаление записи ARP для SLIP клиента через bin/sh - logout file for a slip line. sliplogin invokes this with the parameters: 1 2 3 4 5 6 7-n slipunit ttyspeed loginname local-addr remote-addr mask opt-args /sbin/ifconfig sl1 down Quit answering ARP requests for the SLIP client/usr/sbin/arp - d 5 удаляет запись ARP, добавленную Повторяем: убедитесь, что на файл Если вы не используете ARP прокси метод для маршрутизации пакетов между SLIP клиентами и остальной сетью и возможно интернет, вам возможно потребуется статический маршрут маршруты до ближайшего шлюза шлюзов для маршрутизации подсети SLIP клиентов через SLIP сервер. Добавление статических маршрутов может стать для кого-то проблемой это даже невозможно, если у вас нет соответствующих прав. Если в вашей организации сеть с несколькими маршрутизаторами, некоторые маршрутизаторы, например Cisco и Proteon, требуют не только настройки статического маршрута в подсеть SLIP, но и указания, о каких статических маршрутах сообщать другим маршрутизаторам, так что для наладки работоспособности статической маршрутизации может потребоваться некоторое исследование и отладка. 21.7.2.5.2. Запуск Замечание: GateD это закрытое программно обеспечение, более недоступное в исходных текстах дополнительная информация находится на вебсайте GateD. Этот раздел существует лишь в целях обратной совместимости для тех, кто все еще использует старую версию. GateD на FreeBSD SLIP сервере и настройка его для использования соответствующих протоколов маршрутизации RIP/OSPF/BGP/EGP для сообщения другим маршрутизаторам о вашей SLIP подсети. Вам потребуется создать для настройки gated. Ниже дан пример: gated configuration file for ; for gated version 3.5alpha5 Only broadcast RIP information for out the ed Ethernet interface tracing options traceoptions replace size 100k files 2 general ; rip yes interface sl noripout noripin ; interface ed ripin ripout version 1 ; traceoptions route ; ; Turn on a bunch of tracing info for the interface to the kernel: kernel traceoptions remnants request routes info interface ; ; Propagate the route to out the Ethernet interface via RIP export proto rip interface ed proto direct mask 255.255.252.0 metric 1; SLIP connections ; ; Accept routes from RIP via ed Ethernet interfaces import proto rip interface ed all ; ; протоколом RIP на сеть Ethernet; если вы используете другой драйвер Ethernet вместо потребуется соответственно изменить запись для В этом примере отладочная информация переправляется в вы можете выключить отладку, если GateD работает. Вам потребуется заменить в сетевом адресе на вашу подсеть SLIP убедитесь, что изменение сетевой маски в Как только вы установили и настроили GateD, потребуется сообщить стартовым скриптам FreeBSD запускать его вместо routed. Простейший способ сделать это - - установить переменные Обратитесь к странице справочника GateD за информацией о параметрах командной строки. Оригинальную версию предоставил Bill Lloyd. Переписал Jim Mock. Перевод на русский язык: Алексей Докучаев, Денис Пеплин. Электронная почта называемая также email, является на сегодняшний день одним из самых популярных средств связи. Эта глава описывает основы работы с почтовым сервером в FreeBSD, а также введение в процесс отправки и получения почты в FreeBSD; однако, это не полноценный справочник и фактически в главу не вошло много важной информации. Более подробно эта тема рассмотрена во множестве прекрасных книг, список которых приведен в Прил. B. Какие программные компоненты задействованы в отправке и получении электронной почты. Какие основные файлы настройки sendmail имеются в FreeBSD. Разницу между удаленными и локальными почтовыми ящиками. Как запретить спамерам использовать ваш почтовый сервер для пересылки почты. Как установить и настроить альтернативный агент передачи почты Mail Transfer Agent, MTA, заменив им sendmail. Как разрешить наиболее часто встречающиеся проблемы с почтовым сервером. Как использовать SMTP с UUCP. Как настроить систему только для отправки почты. Как использовать почту с коммутируемым подключением к сети. Как настроить SMTP аутентификацию для дополнительной защиты. Как установить и настроить почтовый агент пользователя Mail User Agent, MUA, например mutt, для отправки и получения почты. Как автоматически применять фильтры и правила к входящей почте. Правильно настроить сетевое подключение Гл. 25. Правильно настроить DNS для почтового сервера Гл. 23. Знать как устанавливать дополнительное программное обеспечение сторонних разработчиков Гл. 4. Обычно, это программа типа mutt, mail, а также программы с графическим интерфейсом, такие, как balsa или xfmail, или интегрированные приложения например, какой-либо WWW браузер типа Netscape. Все эти программы общаются с локальным почтовым сервером, вызывая какой-либо даемон, или напрямую по протоколу TCP FreeBSD по умолчанию поставляется с sendmail, но помимо того поддерживает множество других даемонов почтового сервера, вот лишь некоторые из них: Почтовый даемон выполняет только две функции: он отвечает за прием входящей почты и отправку исходящей. Он не отвечает за выдачу почты по протоколам POP и не обеспечивает подключения к локальным почтовым ящикам или Maildir. Для этих целей вам может потребоваться дополнительный даемон. Внимание: Старые версии sendmail содержат некоторые серьезные ошибки безопасности, которые могут привести к получению атакующим локального и/или удаленного доступа к вашему компьютеру. Убедитесь, что вы работаете с современной версией, свободной от таких ошибок. Или установите альтернативный MTA Служба имен доменов Domain Name System, DNS и соответствующий ей даемон играют важную роль в доставке почты. Для доставки почты с вашего сайта другому, даемон почтового сервера обратится к DNS для определения удаленного хоста, отвечающего за доставку почты по назначению. Тот же процесс происходит при доставке почты с удаленного хоста на ваш почтовый сервер. отвечает за сопоставления имен хостов IP адресам, как и за хранение информации, предназначенной для доставки почты, известной как MX записи. Запись MX Mail eXchanger определяет хост или хосты, которые будут получать почту для определенного домена. Если для вашего имени хоста или домена нет записи MX, почта будет доставлена непосредственно на ваш хост, IP адрес которого определен в записи A. Вы можете просмотреть MX записи для любого домена с помощью команды host 1, как показано в примере ниже: Получение почты для вашего домена выполняет почтовый сервер. Он сохраняет отправленную в ваш домен почту в формате либо это метод по умолчанию, либо Maildir, в зависимости от настроек. После сохранения почты ее можно либо прочитать локально, используя такие приложения как mail 1, mutt, или удаленно, по таким протоколам как POP Это означает, что для локального чтения почты вам не потребуется устанавливать сервер POP 22.2.4.1. Доступ к удаленным почтовым ящикам по протоколам POP серверу. Хотя удаленный доступ обеспечивают оба протокола POP последний предоставляет множество дополнительных возможностей, вот некоторые из них: может как хранить сообщения на удаленном сервере, так и забирать их. поддерживает одновременные обновления. может быть очень полезен для низкоскоростных соединений, поскольку позволяет пользователям получить структуру сообщений без их загрузки; он также может использоваться для выполнения таких задач как поиск на сервере, для минимизации объема передаваемых между клиентом и сервером данных. сервер, который подходит вам наилучшим образом. Следующие POP даемон, выбранный из Коллекции Портов. Если потребуется, настройте Внимание: Необходимо отметить, что и POP серверы передают информацию, включая имя пользователя и пароль, в незашифрованном виде. Это означает, что если вы хотите защитить передачу информации по этим протоколам, потребуется использовать туннелирование сессий через ssh 1. Туннелирование соединений описано в Разд. 14.11.7. на сервере, где эти ящики расположены. Это можно сделать используя приложения вроде mutt или mail 1. Почтовый хост это сервер, который отвечает за отправку и получение почты для вашего компьютера, и возможно, для всей вашей сети. 22.3. Настройка sendmail Предоставил Christopher Shumway. В FreeBSD по умолчанию программой передачи почты Mail Transfer Agent, MTA является sendmail 8. Работа sendmail заключается в приеме почты от почтовых программ пользователей Mail User Agents, MUA и отправке ее на соответствующий адрес, в соответствии с имеющимися настройками. sendmail может также принимать входящие соединения по сети и доставлять почту в локальные почтовые ящики или перенаправлять их другой программе. Список хостов, для которых sendmail принимает почту База данных доступа определяет список хостов или IP адресов, имеющих доступ к локальному почтовому серверу, а также тип предоставляемого доступа. Хосты могут быть перечислены как sendmail с заданным сообщением об ошибке. Хостам, перечисленным с параметром по умолчанию разрешено отправлять почты на этот хост, если адрес назначения почты принадлежит локальной машине. Все почтовые соединения от хостов, перечисленных с параметром отбрасываются. Для хостов, перечисленных с параметром разрешена передача через этот сервер почты с любым адресом назначения. Пример 22-1. Настройка базы данных доступа sendmail 550 We do not accept mail from spammers 550 We do not accept mail from spammers REJECT OK 128.32 RELAY В этом примере приведены пять записей. К отправителям, чей адрес соответствует записи в левой части таблицы, применяется правило записанное в правой части таблицы. В первых двух примерах код ошибки будет передан процедуре обработке ошибок sendmail. В этом случае на удаленном хосте будет получено соответствующее сообщение. В следующем примере почта отбрасывается почта от определенного хоста, В четвертом примере разрешается прием почты от хоста имя которого более точно совпадает с этой записью, чем с в примере выше. При более точном совпадении правила перезаписываются. В последнем примере разрешается пересылка почты от хостов с IP адресами, начинающимися с Эти хосты смогут отправлять почту через этот почтовый сервер для других почтовых серверов. База данных синонимов содержит список виртуальных почтовых ящиков, принадлежащих другим пользователям, файлам, программам, или другим синонимам. Вот несколько примеров, которые могут быть использованы для root: localuser ftp-bugs: joe, eric, paul :/dev/null procmail:/usr/local/bin/procmail Формат файла прост; имя почтового ящика слева от двоеточия сопоставляется назначениюям справа. В первом примере производится простое сопоставление почтового ящика для которого затем опять будет произведен поиск в базе данных синонимов. Если совпадений не обнаружится, сообщение будет доставлено локальному пользователю В следующем примере приведен список рассылки. Почта на адрес Обратите внимание, что удалённый почтовый ящик может быть задан в виде В следующем примере показана запись почты в файл, в данном случае И в последнем примере показано отправление почты программе, в данном случае почтовое сообщение переправляется через канал UNIX на стандартный вход для обновления базы данных. В этом файле находится список имен хостов, принимаемых программой sendmail 8 в качестве локальных. Поместите в этот файл любые домены или хосты, для которых sendmail должен принимать почту. Например, если этот почтовый сервер должен принимать почту для домена После обновления этого файла необходимо перезапустить sendmail 8, чтобы он смог перечитать изменения. Основной файл настройки sendmail, sendmail, включая все, от перезаписи почтовых адресов до отправки удаленным серверам сообщений об отказе от пересылки почты. Конечно, файл настройки с таким многообразием возможностей очень сложен и подробное его описание выходит за рамки данного раздела. К счастью, для стандартных почтовых серверов изменять этот файл придется не часто. Основной файл настройки sendmail может быть собран из макроса m4 1, определяющего возможности и поведение sendmail. Подробнее этот процесс описан в файле сопоставляет виртуальные почтовые домены и почтовые ящики реальным почтовым ящикам. Эти почтовые ящики могут быть локальными, удаленными, синонимами, определенными в Пример 22-3. Пример таблицы виртуального домена Почта обрабатывается по первому совпадению с записью в этом файле. Первая запись сопоставляет адрес Вторая запись сопоставляет Наконец, до этого момента адрес в домене не совпал ни с одним из предыдущих, будет применено последнее сопоставление, в которому соответствует всякое другое почтовое сообщение, отправленное на любой адрес в Это сообщение будет доставлено в локальный почтовый ящик Написал Andrew Boothman. Информация получена из писем, написанных Gregory Neil Shapiro. Как уже упоминалось, FreeBSD поставляется с MTA Mail Transfer Agent sendmail. Следовательно, по умолчанию именно эта программа отвечает за вашу исходящую и входящую почту. Однако, по различным причинам некоторые системные администраторы заменяют системный MTA. Эти причины варьируются от простого желания попробовать другой MTA до потребности в определенных возможностях пакета, основанного на другой почтовой программе. К счастью, вне зависимости от причины, в FreeBSD такая замена выполняется просто. Вам предоставлен широкий выбор MTA. Начните с поиска в Коллекции Портов FreeBSD, где их немало. Конечно, вы можете использовать любой MTA по желанию, взятый откуда угодно, если только сможете запустить его под FreeBSD. Начните с установки нового MTA. После установки у вас будет возможность решить, действительно ли он подходит вашем нуждам, а также настроить новое программное обеспечение перед тем, как заменить им sendmail. При установке новой программы убедитесь, что она не пытается перезаписать системные файлы, такие как Иначе ваша новая почтовая программа фактически начнет работать до того, как вы ее настроите. Обратитесь к документации на выбранный MTA за информацией по его настройке. 22.4.2. Отключение Процедура, используемая для запуска sendmail, значительно изменилась между релизами 4.5-RELEASE и 4.6-RELEASE. Поэтому процедура, используемая для его отключения, немного отличается. Это отключит сервис входящей почты см. ниже не изменен, sendmail все еще будет использоваться для отправки почты. sendmail таким способом, необходимо заменить его полностью работоспособной альтернативной системой доставки почты. Если вы не сделаете этого, системные программы, такие как periodic 8, не смогут отправлять сообщения по электронной почте как обычно. Многие программы в вашей системе могут требовать наличия функционирующей sendmail - совместимой системы. Если приложения будут продолжать использовать программу sendmail, пытаясь отправить почту после отключения почтовой системы, почта может попасть в неактивную очередь sendmail и никогда не будет доставлена. Дополнительная информация о параметрах запуска sendmail доступна на странице справочника 8. Вы можете выбрать один из двух методов для запуска нового MTA при загрузке, опять же в зависимости от используемой версии FreeBSD. Скрипт должен принимать параметры Во время запуска системы он будет запущен командой которая также может использоваться для запуска сервера вручную Во время завершения работы системы, системные скрипты используют параметр которая также может использоваться для остановки почтового сервера при работающей системе. С более поздними версиями FreeBSD, вы можете использовать метод, описанный выше, или добавить строку это имя скрипта, который вы хотите выполнить при загрузке для запуска MTA. 22.4.4. Замещение Программа sendmail настолько распространена в качестве стандартной программы для систем UNIX, что многие программы считают, что она уже установлена и настроена. По этой причине многие альтернативные MTA предоставляют собственные совместимые реализации интерфейса командной строки sendmail ; это облегчает их использование в качестве прозрачной замены sendmail. Поэтому если вы используете альтернативную почтовую программу, потребуется убедиться, что когда программное обеспечение пытается выполнить стандартные исполняемые файлы на самом деле выполняются программы вновь установленной почтовой системы. К счастью, FreeBSD предоставляет систему, называемую mailwrapper 8, которая выполняет эту работу за вас. Когда установлен sendmail, файл Это означает, что когда выполняется какая-то из этих стандартных программ например сам система на самом деле вызывает копию mailwrapper, называемую Такая схема делает простой замену программ, которые на самом деле выполняются, когда вызываются стандартные функции sendmail, отредактируйте Как только вы все настроили, потребуется или уничтожить процесс sendmail, который уже не нужен и запустить новую почтовую программу, или просто перегрузить систему. Перезагрузка также даст вам возможность проверить, правильно ли настроена система для автоматического запуска MTA при загрузке. 22.5.4. Почему я продолжаю получать ошибки при отправки почты через другие хосты? 22.5.1. Почему я должен использовать FQDN для хостов вне моей подсети? Вы, видимо, обнаружили, что хост, к которому вы обратились, оказался на самом деле в другом домене; например, если вы находитесь в домене то должны указать его полное доменное имя, Традиционно, программа разрешения имен BSD BIND позволяла это делать. Однако, текущая версия BIND, поставляемая с FreeBSD, больше не добавляет имена доменов, отличающихся от того, в котором вы находитесь, для не полностью указанных имен хостов. То есть, имя или будет искаться в корневом домене. Это отличается от предыдущего поведения, при котором поиск продолжался в доменах Если вам интересны причины объявления такого поведения плохой практикой и даже ошибкой в безопасности, обратитесь к RFC 1535. Однако удостоверьтесь, что порядок поиска не нарушает границ полномочий между локальным и внешним администрированием, в терминологии RFC 1535. Я получаю такие сообщения об ошибке: 553 MX list for points back to 554 Local configuration error Как можно решить эту проблему? Согласно записям MX, почта для домена однако последний не распознается как известный как до версии 8.10 если вы используете FETUREusecwfile или добавьте Cw в файл FAQ по sendmail можно найти на /faq/и рекомендуется прочесть его при желании произвести некоторые усовершенствования настроек почтовой системы. 22.5.3. Как организовать работу почтового сервера при коммутируемом соединении с Интернет? Вы хотите подключить к интернет компьютер с FreeBSD, работающий в локальной сети. Компьютер с FreeBSD будет почтовым шлюзом для локальной сети. PPP соединение не выделенное. Существует как минимум два пути, чтобы сделать это. Один способ это использование UUCP. Другой способ это использование постоянно работающего интернет сервера для обеспечения вторичного MX сервиса вашего домена. Например, домен вашей компании и провайдер интернет настроил со стороны отправителя захочет доставить почту, она попытается соединиться с вашим хостом через модемное подключение. Скорее всего, ей это не удастся вы, вероятнее всего, не будете подключены к интернет. Программа sendmail автоматически перейдет ко вторичному MX серверу, т.е. вашему провайдеру Вторичный MX сервер будет периодически пытаться соединиться с вашим хостом и доставить почту на основной сервер MX Вы можете воспользоваться следующим сценарием, чтобы забирать почту каждый раз, когда вы входите в систему: bin/sh Put me in/usr/local/bin/pppmyisp sleep 60 ;/usr/sbin/sendmail - q /usr/sbin/ppp - direct pppmyisp Если же вы хотите написать отдельный пользовательский скрипт, лучше воспользоваться командой вместо вышеприведенного сценария, так как в этом случае вся почта в очереди для хоста будет обработана немедленно. Мы предоставляем вторичный MX для наших клиентов. Вы соединяетесь с нашим сервером несколько раз в день, чтобы забрать почту для вашего первичного главного MX мы не соединяемся с ним каждый раз, когда приходит новая почта для его доменов. Далее, sendmail отправляет почту, находящуюся в очереди каждые 30 минут, и клиент должен быть подключен к Интернет в течении 30 минут, чтобы удостовериться, что вся почта ушла на основной MX-сервер. Может быть, есть какая-либо команда, которая заставит sendmail немедленно отправить все почту, находящуюся в очереди? Естественно, пользователи не обладают какими-либо повышенными привилегиями на нашем сервере. В разделе privacy flags файла чтобы разрешить рядовым пользователям инициировать работу с очередью. Вам также может понадобиться изменить порядок MX-серверов. Так, если вы предоставляете первый основной MX-сервер для ваши пользователей, мы указываем: If we are the best MX for a host, try directly instead of generating local config error. OwTrue Таким образом, удаленный хост будет доставлять почту непосредственно к вам, не пытаясь установить соединение с клиентом. Затем уже вы, в свою очередь, отсылаете ее клиенту. Удостоверьтесь, что в DNS есть записи про и. Просто добавьте запись A в DNS для. при отправки почты через другие хосты? В установке FreeBSD по умолчанию, sendmail настроен для отправки почты только от хоста, на котором он работает. Например, если доступен POP сервер, пользователи смогут проверять почту из школы, с работы или других удаленных точек, но не смогут отправлять письма. Обычно, через некоторое время после попытки будет отправлено письмо от Есть несколько путей разрешения этой ситуации. Самый прямой путь это использование адреса вашего провайдера в файле relay-domains, расположенном в Быстрый способ сделать это: sendmail. Это отлично работает, если вы администратор сервера и не хотите отправлять почту локально, или хотите воспользоваться почтовым клиентом/системой на другом компьютере или даже через другого провайдера. Это также очень полезно, если у вас настроены одна или две почтовые записи. Если необходимо добавить несколько адресов, вы можете просто открыть этот файл в текстовом редакторе и добавить домены, по одному на строку: Теперь будет отправляться любая почта, посылаемая через вашу систему любым хостом из этого списка предоставляемого пользователем, имеющим учетную запись в вашей системе. Это отличный способ разрешить пользователям отправлять почту через вашу систему удаленно, одновременно он блокирует отправку спама. В следующем разделе рассматриваются более сложные темы, такие как настройка почты и включение почтовой системы для всего домена. Изначально, вы можете отправлять почту во внешний мир если правильно составлен файл или запущен свой сервер имен. Если вы хотите, чтобы почта, предназначенная для хоста в вашем домене, доставлялась MTA например, sendmail на вашем хосте FreeBSD, есть два пути: Запустите свой собственный сервер DNS, тем самым организовав собственный домен, например, Получайте почту для вашего хоста непосредственно. Это работает при доставке почты непосредственно на DNS имя вашей машины. Например, Независимо от выбранного из предложенных выше вариантов, для доставки почты непосредственно на ваш хост у него должен быть постоянный IP адрес а не динамический, как у большинства PPP соединений. Если вы находитесь за брандмауэром, то последний должен пропускать SMTP-пакеты. Если вы хотите, чтобы почта приходила непосредственно на ваш хост, необходимо убедиться в одном из двух: Убедитесь, что запись с наименьшим номером MX в DNS соответствует IP адресу вашего хоста. Убедитесь, что в DNS для вашего хоста вообще отсутствует MX-запись. Выполнение любого из перечисленных условий обеспечит доставку почты для вашего хоста. Если вы это видите, то можно без проблем посылать почту на Однако, если вы видите это: то вся почта, посланная на для того же пользователя, вместо того, чтобы быть отосланной непосредственно на ваш хост. Эта информация обрабатывается вашим DNS сервером. Соответствующая запись DNS, указывающая, через какой хост будет проходить ваша почта, называется MX M ail e X changer. Если для хоста отсутствует такая запись, почта будет приходить прямо на этот хост. Допустим, что запись MX для хоста существуют несколько MX-записей. Запись с наименьшим номером соответствует хосту, получающему почту непосредственно, если он доступен; если он недоступен по каким-то причинам, другие сервера иногда называемые резервными MX временно получают почту, и хранят ее пока не станут доступны хосты с меньшими номерами, в конечном итоге отправляя почту на эти хосты. Чтобы альтернативные MX-хосты использовались наиболее эффективно, они должны быть независимо подключены к Интернет. Ваш провайдер или дружественный сайт скорее всего без проблем сможет оказать подобные услуги. Для настройки почтового хоста почтовый сервер вам потребуется, чтобы почта, направляемая различным рабочим станциям, пересылалась этому хосту. Обычно вам необходима доставка всей почты для любого хоста вашего домена в данном случае на почтовый сервер, чтобы пользователи могли получать свою почту на с этого сервера. Чтобы облегчить себе и другим жизнь, создайте на обеих машинах учетные записи с одинаковыми именами пользователей, например, с помощью команды adduser 8. Сервер, который вы будете использовать в качестве почтового, должен быть объявлен таковым для каждой машины в домене. Вот фрагмент примерной конфигурации: Таким образом, вся корреспонденция, адресованная рабочей станции, будет обрабатываться вашим почтовым сервером, независимо от того, что указано в A-записи. Все это можно реализовать только в том случае, если вы используете сервер DNS. Если вы по каким-либо причинам не имеете возможности установить свой собственный сервер имен, необходимо договориться с провайдером или теми, кто поддерживает ваш DNS. Если вы хотите поддерживать несколько виртуальных почтовых серверов, может пригодиться следующая информация. Допустим, что ваш клиент зарезервировал домен, например, и вам требуется, чтобы почта, предназначенная для приходила на ваш хост, например, В таком случае, DNS должен выглядеть так: Заметьте, что если вам требуется только получать почту для домена, соответствующая A-запись не нужна. Замечание: Помните, что если вы попытаетесь каким-либо образом обратиться к хосту у вас вряд ли что-либо получится, если нет A-записи для этого хоста. Последнее, что вы должны сделать - это сказать программе sendmail, для каких доменов и/или хостов она должна принимать почту. Это можно сделать несколькими способами: Если у вас sendmail версии ниже 8.10, необходимо отредактировать файл sendmail версии 8.10 или более поздней. Настройка поставляемого с FreeBSD sendmail предназначена для сайтов, подключенных к интернет непосредственно. Сайты, осуществляющие обмен почтой через UUCP, должны использовать другой файл настройки вручную это сложная задача. sendmail версии 8 генерирует файлы настройки через препроцессор m4 1, реально настройка выполняется на более высоком уровне абстракции. Файлы настройки m4 1 можно найти в Если вы не установили в систему все исходные тексты, пакет настройки sendmail можно найти в отдельном архиве исходных текстов. Если CDROM с исходными текстами FreeBSD смонтирован, выполните: cat scontrib.?? tar xzf - - C/usr/src/contrib/sendmail Эта установка займет всего несколько сотен килобайт. Файл содержит введение в основы настройки m4 1. При этом создается база данных, которая помогает sendmail решать вопросы маршрутизации. находятся несколько примеров. Возьмем для примера имя файла Все, что потребуется для преобразования его в OSTYPEbsd4.4 FEATUREacceptunresolvabledomains FEATUREnocanonify FEATUREmailertable, hash - o/etc/mail/mailertable defineUUCPRELAY, defineUUCPMAXSIZE, 200000 defineconfDONTPROBEINTERFACES MAILERlocal MAILERsmtp MAILERuucp Cw предотвратят использование DNS для доставки почты. Пункт необходим для поддержки доставки по UUCP. Просто поместите сюда имя хоста в интернет, способного работать адресами псевдо-доменов; скорее всего, вы введете сюда основной сервер пересылки почты провайдера. Как только вы сделаете это, потребуется файл Если вы используете для всей почты только одно внешнее соединение, подойдет следующий файл: В первых трех строках обрабатываются специальные случаи, когда почта для домена должна отправляться не на маршрут по умолчанию, а на ближайшее соединение UUCP для сокращения пути доставки. Следующая строка обрабатывает почту, которая может быть доставлена по SMTP для локального Ethernet домена. Наконец, определены маршруты UUCP в нотации, для включения перезаписи правил по умолчанию правилом Последняя строка всегда содержит одиночную точку, означающую все остальное, с отправкой через UUCP, являющимся универсальным почтовым шлюзом. Все имена узлов после ключевого слова должны представлять существующие маршруты UUCP, проверить их можно с помощью команды Напоминаем, что этот файл должен быть преобразован в базу данных DBM перед использованием. Командную строку для этой задачи лучше всего поместить в качестве комментария в верхней части файла Всегда выполняйте эту команду после правки файла И наконец: если вы не уверены, что некоторые отдельные почтовые маршруты будут работать, запомните параметр sendmail С этим параметром sendmail запускается в режиме тестирования адреса ; просто введите и адрес, который вы хотите протестировать. В последней строке появится сообщение об используемом внутреннем почтовом агенте, хосте назначения, с которым вызывается этот агент, и возможно транслированный адрес. Выход из этого режима происходит при нажатии Ctrl Предоставил Bill Moran. Существует множество случаев, когда может потребоваться только отправка почты через почтовый сервер. Вот отдельные примеры: У вас настольный компьютер, но вы хотите использовать такие программы как send-pr 1. Для пересылки почты вам потребуется использовать почтовый сервер провайдера. Ваш компьютер является сервером, где почта не хранится локально, необходима только переправка всей почты через внешний почтовый сервер. способен работать и в этих условиях. К сожалению, может быть очень сложно правильно настроить полноценный MTA для работы только с исходящей почтой. Такие программы, как sendmail и postfix слишком избыточны для этих целей. К тому же, если вы используете обычные средства доступа в интернет, условий для запуска почтового сервера может быть недостаточно. с помощью файла из четырех строк, расположенного в Убедитесь, что используете существующий почтовый адрес для Введите сервер вашего провайдера для пересылки исходящей почты вместо некоторые провайдеры называют его сервером исходящей почты или SMTP сервером. Убедитесь, sendmail выключен путем добавления строки имеются и другие параметры. Обратитесь к файлу с примером настройки в или к странице справочника ssmtp за примерами и дополнительной информацией. Установка ssmtp таким способом позволит правильно работать любым программам на вашем компьютере, которым требуется отправка почты, но не нарушит политику вашего провайдера и не позволит вашему компьютеру быть использованным спамерами. Если у вас есть статический IP, настройки по умолчанию менять не потребуется. Установите имя хоста в соответствии с присвоенным именем интернет и sendmail будет делать свою работу. Если у вас динамический IP адрес и используется коммутируемое PPP соединение с интернет, у вас возможно уже есть почтовый ящик на сервере провайдера. Предположим, что домен провайдера называется и что ваше имя пользователя ваш компьютер называется и провайдер сообщил вам, что возможно использование в качестве сервера для пересылки почты. Для получения почты из почтового ящика необходима установка соответствующей программы. Хорошим выбором является утилита fetchmail, она поддерживает множество различных протоколов. Эта программа доступна в виде пакета или из Коллекции Портов Обычно провайдер предоставляет доступ по протоколу POP Если вы работаете с пользовательским PPP то можете автоматически забирать почту после установления соединения с интернет с помощью следующей записи в MYADDR:!bg su user - c fetchmail Если вы используете sendmail как показано ниже для доставки почты к не-локальным учетным записям, вам возможно потребуется обработка почтовой очереди sendmail сразу после установки соединения с интернет. Для выполнения этой работы поместите в Предполагается, что учетная запись для Этот файл не должен быть доступен на чтение никому, кроме поскольку в нем находится пароль вам потребуется сообщить sendmail использовать для более быстрой пересылки почты. version 1.0 OSTYPEbsd4.4dnl FEATUREnouucpdnl MAILERlocaldnl MAILERsmtpdnl Cwlocalhost dnl FEATUREallmasqueradednl FEATUREmasqueradeenvelopednl FEATUREnocanonifydnl FEATUREnodnsdnl defineSMARTHOST, dnl defineconfDELIVERYMODE, deferreddnl Обратитесь к предыдущему разделу за информацией о том, как преобразовать этот файл Не забудьте также перезапустить sendmail после обновления Написал James Gorham. аутентификации на почтовом сервере дает множество преимуществ. SMTP аутентификация может добавить дополнительный уровень безопасности к sendmail, и позволяет мобильным пользователям, подключающимся к разным хостам, возможность использовать тот же почтовый сервер без необходимости перенастройки почтового клиента при каждом подключении. из портов. Вы можете найти этот порт в есть множество параметров компиляции, и для используемого здесь метода убедитесь, что выбран параметр FreeBSD. Это позволяет избежать проблем, связанных с созданием нового набора имен пользователей и паролей для каждого пользователя, которому необходима SMTP аутентификация, пароль для входа в систему и для отправки почты будет одним и тем же. во время компиляции. Убедитесь, что Перекомпилируйте sendmail, выполнив следующие команды: Компиляция sendmail должна пройти без проблем, если не был сильно изменен и доступны необходимые разделяемые библиотеки. После компилирования и переустановки sendmail, отредактируйте файл или тот файл, который используется в качестве многие администраторы используют в качестве имени этого файла вывод hostname 1 для обеспечения уникальности. Добавьте к нему следующие строки: dnl set SASL options TRUSTAUTHMECHGSSAPI DIGEST-MD5 CRAM-MD5 LOGINdnl defineconfAUTHMECHANISMS, GSSAPI DIGEST-MD5 CRAM-MD5 LOGINdnl defineconfDEFAUTHINFO, /etc/mail/auth-infodnl Эти параметры настраивают различные методы, доступные sendmail для аутентификации пользователей. Если вы хотите использовать вместо pwcheck другой метод, обратитесь к прилагаемой документации. или с тем именем, которое было использовано для файла Затем используйте команду которая скопирует файл в и правильно перезапустит sendmail. Дополнительная информация об этом процессе находится в Если все шаги пройдены успешно, введите информацию для аутентификации в настройки почтового клиента и отправьте тестовое сообщение. Для определения причин возможных ошибок установите параметр sendmail За дальнейшей информацией обратитесь к странице sendmail, посвященной SMTP Предоставил Marc Silver. Почтовая программа пользователя Mail User Agent, MUA это приложение, используемое для отправки и получения почты. Кроме того, поскольку почта эволюционирует и становится более сложной, MUA совершенствуют свои функции по обработке почты, становятся более удобны в использовании. FreeBSD поддерживает множество различных пользовательских почтовых программ, каждая из которых может быть легко установлена из Коллекции Портов FreeBSD. Пользователи могут выбирать между графическими почтовыми клиентами, такими как evolution или balsa, консольными клиентами, такими как или Web-интерфейсами, используемыми в некоторых больших организациях. по умолчанию используется mail 1. Это консольный MUA предоставляющий все основные функции, необходимые для отправки и получения текстовых сообщений, хотя его возможности по работе с вложениями ограничены и он может работать только с локальными почтовыми ящиками. эти почтовые ящики могут быть загружены в локальный файл fetchmail, который будет обсуждаться далее в этой главе Разд. 22.12. Если почтовый ящик пуст, утилита завершит работу с сообщением о том, что почта не была обнаружена. После чтения почтового ящика запустится интерфейс программы и будет отображен список сообщений. Сообщения нумеруются автоматически и будут выглядеть как в этом примере: Mail version 8.1 6/6/93. Type? for help./var/mail/marcs: 3 messages 3 new N 1 rootlocalhost Mon Mar 8 14:05 14/510 test N 2 rootlocalhost Mon Mar 8 14:05 14/509 user account N 3 rootlocalhost Mon Mar 8 14:05 14/509 sample Теперь сообщения могут быть прочитаны с помощью команды t, завершаемой номером сообщения, которое должно быть отображено. В этом примере мы прочтем первое сообщение: Message 1: From rootlocalhost Mon Mar 8 14:05:52 2004 X-Original-To: marcslocalhost Delivered-To: marcslocalhost To: marcslocalhost Subject: test Date: Mon, 8 Mar 2004 14:05:52 0200 SAST From: rootlocalhost Charlie Root This is a test message, please reply if you receive it. Как видно в примере выше, клавиша t выводит сообщение со всеми заголовками. Для повторного вывода списка сообщений необходимо использовать клавишу Если требуется ответить на сообщение, используйте для ответа для ответа только отправителю, а r для ответа и отправителю, и другим получателям сообщения. Вы можете также завершить эти команды номером письма, на которое хотите составить ответ. После этого необходимо ввести ответ, конец сообщения должен быть завершен символом. на новой строке. Пример можно увидеть ниже: Thank you, I did get your email. Для отправки нового сообщения используйте клавишу m и введите адрес получателя. Несколько получателей могут быть указаны через запятую. Введите тему сообщения и его содержимое. Конец сообщения отмечается помещением символа I mastered mail Now I can send and receive email using :. для вызова справки в любой момент может быть использована команда?, для получения помощи по необходимо также обратиться к странице справочника mail 1. Замечание: Как упоминалось выше, команда mail 1 не была первоначально предназначена для работы с вложениями, и поэтому их поддержка довольно слабая. Современные MUA mutt, работают с вложениями гораздо более уверенно. Но если вы все же предпочитаете использовать mutt это небольшая но очень мощная почтовая программа с отличными возможностями, в числе которых: Возможность сортировки сообщений по дискуссиям; Поддержка PGP для подписи и шифрования сообщений; Широкие возможности настройки. Все эти возможности делают mutt одним из самых лучших почтовых клиентов. Обратитесь к за дополнительной информацией по и отобразит почту, если она имеется в наличии. Если почты в ящике пользователя нет, mutt будет ожидать команд от пользователя. В примере ниже показан mutt со списком сообщений: Enter. Пример mutt, отображающего сообщение, показан ниже: mutt позволяет пользователям отвечать как только отправителю, так и всем получателям. Для ответа только отправителю почты, используйте клавишу r. Для группового ответа и отправителю сообщения и всем получателям используйте клавишу g. Замечание: mutt использует vi 1 в качестве редактора для создания писем и ответа на них. Редактор можно заменить путем создания или редактирования собственного Для создания нового почтового сообщения нажмите m. После введения темы mutt запустит vi 1 для создания письма. Как только письмо будет завершено, сохраните его и закройте mutt продолжит работу, отобразив окно с сообщением, которое должно быть отправлено. Для отправки сообщения нажмите y. Пример окна с сообщением показан ниже: mutt также содержит исчерпывающий справочник, к которому можно обратиться из большинства меню, нажав клавишу?. Верхняя строка также показывает клавиатурные сокращения, которые могут быть использованы. pine предназначен для начинающих пользователей, но включает некоторые дополнительные возможности. Внимание: В программе pine ранее были обнаружены некоторые уязвимости, позволяющие удаленному взломщику выполнять произвольный код с правами пользователя локальной системы путем отправки специально подготовленного письма. Все эти известные проблемы были исправлены, но код pine написан в очень небезопасном стиле и офицеры безопасности FreeBSD считают, что возможно наличие других не обнаруженных уязвимостей. Имейте это ввиду при установке pine. Как только порт установлен, При первом запуске pine отображает страницу приветствия с кратким введением, а также просьбу команды разработчиков pine отправить анонимное почтовое сообщение, позволяющее им определить количество пользователей, работающих с их почтовым клиентом. Для отправки анонимного сообщения нажмите Enter, или E для выхода из из приветствия без отправки анонимного сообщения. Пример приветствия показан ниже: Затем отображается главное меню, перемещение по которому осуществляется с помощью клавиш навигации. В главном меню находятся ссылки для составления новых писем, просмотра почтовых каталогов, и даже управления адресной книгой. Ниже главного меню показаны клавиатурные сокращения, выполняющие соответствующие задачи. Для просмотра списка сообщений нажмите I, или выберите MESSAGE INDEX, как показано ниже: В списке показаны сообщения в текущем каталоге, они могут быть просмотрены с помощью клавиш навигации. Подсвеченные сообщения можно прочесть нажав На снимке экрана ниже показан пример письма, отображаемого pine. Внизу экрана даны клавиатурные сокращения. Например, ответить на отображаемое в данный момент сообщение. Ответ на письмо в pine осуществляется с помощью редактора pico, который устанавливается по умолчанию вместе с pine. pico упрощает навигацию в сообщении гораздо проще для новых пользователей, чем vi 1 или mail 1. Как только ответ будет готов, сообщение можно отправить нажав Ctrl X. pine запросит подтверждение. Программа pine может быть настроена через пункт SETUP главного меню. Обратитесь к странице /pine/за дальнейшей информацией. Предоставил Marc Silver. клиент, позволяющий пользователям автоматически загружать почту с удаленных серверов IMAP в локальные почтовые ящики; так доступ к почтовым ящикам упрощается. и предоставляет различные возможности, в том числе: что позволяет использовать функции фильтрации, перенаправления и синонимов. Может быт запущен в режиме даемона для периодической проверки поступающих сообщений. Может забирать почту с нескольких почтовых ящиков и рассылать ее различным локальным пользователям в зависимости от настроек. Описание всех возможностей fetchmail выходит за пределы этой главы, за дополнительной информацией обратитесь к документации по fetchmail. Утилита fetchmail требует наличия файла настройки Этот файл включает информацию о сервере, а также информацию для аутентификации. Поскольку этот файл содержит важную информацию, правильно будет сделать его доступным для чтения только владельцем с помощью следующей команды: Этот файл указывает fetchmail соединиться с В примере подразумевается, что пользователь существует также и в локальной системе. серверам, при необходимости почта перенаправляется другим локальным пользователям: poll proto pop3: user joesoap, with password XXX, is jsoap here; user andrea, with password XXXX; poll proto imap: user john, with password XXXXX, is myth here; заданным с интервалом в секундах, через который fetchmail должен опрашивать серверы, перечисленные в Предоставил Marc Silver. Утилита procmail это невероятно мощное приложение, используемое для фильтрации входящей почты. Она позволяет пользователям определять правила, которые могут быть сопоставлены входящим письмам для выполнения определенных действий или для перенаправления почты в альтернативные почтовые ящики и/или на почтовые адреса. procmail может быть установлен с помощью порта После установки он может быть непосредственно интегрирован в большинство MTA сверьтесь с документацией на ваш MTA Другой способ интеграции находящийся в домашнем каталоге пользователя, следующей строки: procmail, а также краткое описание их действия. Эти и другие правила должны быть помещены в файл который должен находиться в домашнем каталоге пользователя. Большую часть этих правил также можно найти на странице справочника procmailex 5. Перенаправление всей почты, отправляемой на Полезный пример, обрабатывающий входящую почту со списков рассылки и помещающий каждый список в отдельный почтовый ящик. Реорганизовал Murray Stokely. Перевод на русский язык: Андрей Захватов. Эта глава посвящена некоторым наиболее часто используемым сетевым службам систем UNIX. Мы опишем, как установить, настроить, протестировать и поддерживать многие различные типы сетевых сервисов. Для облегчения вашей работы в главу включены примеры конфигурационных файлов. Как управлять даемоном inetd. Как настроить сетевую файловую систему. Как настроить сетевой сервер информации для совместного использования учётных записей пользователей. Как настроить автоматическое конфигурирование сетевых параметров при помощи DHCP. Как настроить сервер имён. Как настроить Apache HTTP сервер. Как настроить файловый и принт сервер для Windows клиентов с использованием Samba. Как синхронизировать дату и время, а также настроить сервер времени с протоколом NTP. Свободно владеть основными сетевыми терминами. Знать как устанавливать дополнительные программы сторонних разработчиков Гл. 4. 23.2. Супер-сервер inetd 8 называют также супер-сервером Интернет, потому что он управляет соединениями к многим сервисам. Когда inetd принимает соединение, он определяет, для какой программы предназначено соединение, запускает соответствующий процесс и предоставляет ему сокет, ссылка на который передается процессу в качестве стандартных устройств ввода, вывода и сообщения об ошибках. Запуск одного экземпляра inetd уменьшает общую нагрузку на систему по сравнению с запуском каждого даемона индивидуально в выделенном режиме. В первую очередь inetd используется для вызова других даемонов, но несколько простых протоколов, таких, как chargen, auth и daytime, обслуживаются непосредственно. Этот раздел посвящен основам настройки inetd посредством его параметров командной строки и его конфигурационного файла, однако часто включается утилитой sysinstall при выборе профиля среднего уровня безопасности. Указание inetd могут быть переданы различные параметры командной строки. Включение отладочной информации. Включение регистрации успешных соединений. Включение механизма TCP Wrapping для внешних служб по умолчанию включено. Включение механизма TCP Wrapping для внутренних служб, которые встроены в inetd по умолчанию включено. Определение максимального числа одновременных запусков каждой службы; по умолчание не ограничено. Может быть переопределено индивидуально для каждой службы при помощи параметра Определение по умолчанию максимального количества раз, которое служба может быть вызвана с одного IP-адреса в минуту; по умолчанию не ограничено. Может быть переопределено для каждой службы параметром Определяет максимальное количество раз, которое служба может быть вызвана в минуту; по умолчанию 256. Частота, равная 0, не ограничивает число вызовов. Задает один IP-адрес, к которому делается привязка. Альтернативно может быть указано имя хоста, и в этом случае используется соответствующий этому имени хоста адрес IPv4 или IPv6. Обычно имя хоста задается, когда inetd запускается в окружении jail 8, и в этом случае имя хоста соответствует этому jail 8 - окружению. Если используется формат с именем хоста и требуется привязка как для IPv4, так и для IPv6, то для каждой привязки требуется запись с соответствующим типом протокола для каждой службы в файле К примеру, службе на основе TCP потребуется две записи, в одной для протокола используется Задает альтернативный файл для хранения ID процесса. что включает механизм TCP wrapping для внутренних и внешних служб inetd. Новичкам эти параметры изменять и даже задавать их в файле inetd, который запускается при получении соединения к нему. С другой стороны, внутренней службой является услуга, которую inetd предоставляет сам. inetd можно заставить считать его конфигурационный файл повторно, послав сигнал HangUP процессу inetd, как показано здесь: Пример 23-1. Посылка сигнала HangUP процессу inetd В каждой строке конфигурационного файла описывается отдельный даемон. Комментариям в файле предшествует знак. Файл Пример записи для даемона ftpd, использующего IPv4: Это имя сервиса, предоставляемого конкретным даемоном. Оно должно соответствовать сервису, указанному в файле Здесь определяется, какой порт должен обслуживать inetd. При создании нового сервиса он должен помещаться сначала в файл должен использоваться для ориентированных на соединение даемонов TCP, когда как используется для даемонов, использующих транспортный протокол UDP определяет, может ли даемон, вызванный из inetd, работать с собственным сокетом, или нет. Сокеты типа когда как даемоны с потоковыми сокетами, которые обычно многопоточны, должны использовать обычно передает много сокетов одному даемону, когда как порождает даемон для каждого нового сокета. Максимальное число порожденных даемонов, которых может создать inetd, может быть задано параметром Если нужно ограничение в десять экземпляров некоторого даемона, то после параметра может быть задействован другой параметр, ограничивающий максимальное число соединений от одного источника. служит именно для этого. Здесь значение, равное десяти, будет ограничивать любой заданный IP-адрес на выполнение десяти попыток подключения к некоторому сервису в минуту. Это полезно для предотвращения намеренного или ненамеренного расходования ресурсов и атак типа Denial of Service DoS на машину. Наконец, та же конфигурация с ограничением в двадцать соединений на IP-адрес в минуту и общим ограничением в максимум десять порожденных даемонов выглядит так: Эти параметры, используемые все со значениями по умолчанию даемоном Это имя пользователя, под которым должен работать соответствующий даемон. Чаще всего даемоны работают как пользователь Для обеспечения безопасности некоторые серверы запускаются как пользователь Полный маршрут к даемону, который будет выполняться при установлении соединения. Если даемон является сервисом, предоставляемым самим inetd, то нужно задать ключевое слово задавая параметры, начиная с передаваемые даемону при запуске. Если в командной строке задано И снова, если даемон является внутренней службой, то здесь нужно использовать В зависимости от схемы безопасности, выбранной при установке, многие из даемонов inetd могут оказаться по умолчанию включенными. Если нет особой нужды в некотором даемоне, то выключите его! Поместите знак перед ненужным даемоном в и пошлите сигнал для inetd. Некоторые даемоны, такие, как fingerd, вообще нежелательны, потому что они дают атакующему слишком много информации. Некоторые даемоны не заботятся о безопасности и имеют большие таймауты для соединений или вообще их не имеют. Это позволяет атакующему неспешно устанавливать соединения к конкретному даемону, истощая имеющиеся ресурсы. Может оказаться полезным задать для некоторых даемонов ограничения По умолчанию механизм TCP wrapping включен. Обратитесь к справочной странице по hostsaccess 5 для получения более подробной информации о задании ограничений TCP для различных даемонов, запускаемых посредством inetd. chargen и auth все являются услугами, предоставляемыми самим inetd. Сервис auth предоставляет идентификационные сетевые услуги ident, identd и поддается настройке. Обратитесь к справочной странице по inetd 8 для получения более подробной информации. Реорганизация и улучшения Tom Rhodes. Текст создал Bill Swingle. Кроме поддержки многих прочих типов файловых систем, во FreeBSD встроена поддержка сетевой файловой системы Network File System, известной как NFS позволяет системе использовать каталоги и файлы совместно с другими машинами, посредством сети. Посредством NFS пользователи и программы могут получать доступ к файлам на удалённых системах точно так же, как если бы это были файлы на собственных дисках. Вот некоторые из наиболее заметных преимуществ, которые даёт использование NFS Отдельно взятые рабочие станции используют меньше собственного дискового пространства, так как совместно используемые данные могут храниться на одной отдельной машине и быть доступными для других машин в сети. Пользователям не нужно иметь домашние каталоги, отдельные для каждой машины в вашей сети. Домашние каталоги могут располагаться на сервере NFS и их можно сделать доступными отовсюду в сети. Устройства хранения информации, такие, как дискеты, приводы CD-ROM и устройства Zip, могут использоваться другими машинами в сети. Это может привести к уменьшению переносимых устройств хранения информации в сети. 23.3.1. Как работает NFS строится по крайней мере из двух основных частей: сервера и одного или большего количества клиентов. Клиент обращается к данным, находящимся на сервере, в режиме удалённого доступа. Для того, чтобы это нормально функционировало, нужно настроить и запустить несколько процессов. Замечание: В FreeBSD 4.X, вместо утилиты portmap. Таким образом, при использовании FreeBSD 4.X пользователю необходимо заменить в последующих примерах все команды обслуживающий запросы от клиентов NFS который выполняет запросы, передаваемые ему от nfsd 8. определить порт, используемый сервером NFS Клиент может запустить также даемон, называемый nfsiod. nfsiod обслуживает запросы, поступающие от сервера от сервера NFS Он необязателен, увеличивает производительность, однако для нормальной и правильной работы не требуется. Для получения дополнительной информации обратитесь к разделу справочной системы о nfsiod 8. 23.3.2. Настройка NFS является достаточно незамысловатым процессом. Все процессы, которые должны быть запущены, могут быть запущены во время загрузки посредством нескольких модификаций в вашем файле mountd запускается автоматически, если включена функция сервера NFS На клиенте убедитесь, что в файле определяет, какие файловые системы на вашем сервере NFS будут экспортироваться иногда их называют совместно используемыми. Каждая строка в задаёт файловую систему, которая будет экспортироваться и какие машины будут иметь к ней доступ. Кроме машин, имеющих доступ, могут задаваться другие параметры, влияющие на характеристики доступа. Имеется полный набор параметров, которые можно использовать, но здесь пойдёт речь лишь о некоторых из них. Описания остальных параметров можно найти на страницах справочной системы по exports 5. В следующих примерах даётся общая идея того, как экспортировать файловые системы, хотя конкретные параметры могут отличаться в зависимости от ваших условий и конфигурации сети. К примеру, чтобы экспортировать каталог для трёх машин, находящихся в том же самом домене, что и сервер поэтому отсутствует доменное имя для каждой машины или для которых имеются записи в файле указывает на использование экспортируемой файловой системы в режиме только чтения. С этим флагом удалённая система не сможет никоим образом изменить экспортируемую файловую систему. которая становится доступной трем хостам, указанным по их IP-адресам. Это полезно, если у вас есть собственная сеть без настроенного сервера DNS может содержать внутренние имена хостов; пожалуйста, обратитесь к справочную систему по hosts 5 для получения дополнительной информации. Флаг позволяет рассматривать подкаталоги в качестве точек монтирования. Другими словами, это не монтирование подкаталогов, но разрешение клиентам монтировать только каталоги, которые им требуются или нужны. home - alldirs 10.0.0.2 10.0.0.3 10.0.0.4 В строке, приведённой ниже, файловая система экспортируется таким образом, что она доступна двум клиентам из других доменов. Параметр не задан, то даже если пользователь имеет права доступа на удалённой системе, он не сможет модифицировать файлы на экспортированной файловой системе. Для того, чтобы клиент смог обратиться к экспортированной файловой системе, он должен иметь права сделать это. Проверьте, что клиент указан в вашем файле каждая строка содержит информацию об экспортировании для отдельной файловой системы для отдельно взятого хоста. Удалённый хост может быть задан только один раз для каждой файловой системы, и может иметь только одну запись, используемую по умолчанию, для каждой локальной файловой системы. К примеру, предположим, что является отдельной файловой системой. Следующий имеет две строки, задающие экспортирование для одного и того же хоста, Правильный формат в этом случае таков: Свойства отдельной файловой системы, экспортируемой некоторому хосту, должны задаваться в одной строке. Строки без указания клиента воспринимаются как отдельный хост. Это ограничивает то, как вы можете экспортировать файловые системы, но для большинства это не проблема. Ниже приведён пример правильного списка экспортирования, где Экспортируем src и ports для client01 и client02, но только client01 имеет права пользователя root на них/usr/src/usr/ports - maprootroot client01/usr/src/usr/ports client02 Клиентские машины имеют пользователя root и могут монтировать всё в каталоге/exports. Кто угодно может монтировать/exports/obj в режиме чтения/exports - alldirs - maprootroot client01 client02/exports/obj - ro Вы должны перезапустить mountd после того, как изменили чтобы изменения вступили в силу. Это может быть достигнуто посылкой сигнала HUP процессу Как вариант, при перезагрузке FreeBSD всё настроится правильно. Хотя выполнять перезагрузку вовсе не обязательно. Выполнение следующих команд пользователем Теперь всё должно быть готово к реальному монтированию удалённой файловой системы. В приводимых примерах сервер будет носить имя а клиент будет носить имя Если вы только хотите временно смонтировать удалённую файловую систему, или всего лишь протестировать ваши настройки, то просто запустите команды, подобные приводимым здесь, работая как пользователь на клиенте. Если всё настроено правильно, вы сможете войти в каталог на клиенте и увидеть файлы, находящиеся на сервере. Если вы хотите автоматически монтировать удалённую файловую систему при каждой загрузке компьютера, добавьте файловую систему в На страницах справочной системы по fstab 5 перечислены все доступные параметры. есть много вариантов практического применения. Ниже приводится несколько наиболее широко распространённых способов её использования: Настройка несколько машин для совместного использования CDROM или других носителей. Это более дешёвый и зачастую более удобный способ установки программного обеспечения на несколько машин. на котором размещаются все домашние каталоги пользователей. Эти домашние каталоги могут затем экспортироваться в сеть так, что пользователи всегда будут иметь один и тот же домашний каталог вне зависимости от того, на какой рабочей станции они работают. Таким образом, когда вам нужно будет установить порт на несколько машин, вы сможете быстро получить доступ к исходным текстам без их загрузки на каждой машине. Текст предоставил Wylie Stilwell. Текст переписал Chern Lee. amd 8 даемон автоматического монтирования автоматически монтирует удалённую файловую систему, как только происходит обращение к файлу или каталогу в этой файловой системе. Кроме того, файловые системы, которые были неактивны некоторое время, будут автоматически размонтированы даемоном amd. Использование amd является простой альтернативой статическому монтированию, так как в последнем случае обычно всё должно быть описано в файле amd работает, сам выступая как сервер NFS для каталогов Когда происходит обращение к файлу в одном из этих каталогов, amd ищет соответствующий удаленный ресурс для монтирования и автоматически его монтирует. используется для монтирования экспортируемой файловой системы по адресу IP, когда как каталог используется для монтирования ресурса по удаленному имени хоста. который находится на хосте Пример 23-2. Монтирование ресурса при помощи amd К примеру, чтобы посмотреть ресурсы хоста с именем как экспортируемый ресурс. При переходе в каталог и автоматически смонтировать требуемый ресурс. amd может быть запущен из скриптов начальной загрузки, если поместить такую строку в файл Кроме того, даемону amd могут быть переданы настроечные флаги через параметр задает опции, используемые по умолчанию при монтировании экспортируемых ресурсов. В файле заданы настройки некоторых более сложных возможностей amd. Обратитесь к справочным страницам по amd 8 и 5 для получения более полной информации. Текст предоставил John Lind. Некоторые сетевые адаптеры для систем PC с шиной ISA имеют ограничения, которые могут привести к серьезным проблемам в сети, в частности, с NFS. Эти проблемы не специфичны для FreeBSD, однако эту систему они затрагивают. Проблема, которая возникает практически всегда при работе по сети систем PC FreeBSD с высокопроизводительными рабочими станциями, выпущенными такими производителями, как Silicon Graphics, Inc. и Sun Microsystems, Inc. Монтирование по протоколу NFS будет работать нормально, и некоторые операции также будут выполняться успешно, но неожиданно сервер окажется недоступным для клиент, хотя запросы к и от других систем будут продолжаться обрабатываться. Такое встречается с клиентскими системами, не зависимо от того, является ли клиент машиной с FreeBSD или рабочей станцией. Во многих системах при возникновении этой проблемы нет способа корректно завершить работу клиента. Единственным выходом зачастую является холодная перезагрузка клиента, потому что ситуация с NFS не может быть разрешена. Хотя правильным решением является установка более производительного и скоростного сетевого адаптера на систему FreeBSD, имеется простое решение, приводящее к удовлетворительным результатам. Если система FreeBSD является сервером, укажите параметр на клиенте при монтировании. Если система FreeBSD является клиентом, то смонтируйте файловую систему NFS с параметром Эти параметры могут быть заданы в четвертом поле записи в файле клиента при автоматическом монтировании, или при помощи параметра Нужно отметить, что имеется также другая проблема, ошибочно принимаемая за приведенную выше, когда серверы и клиенты NFS находятся в разных сетях. Если это тот самый случай, проверьте, что ваши маршрутизаторы пропускают нужную информацию UDP в противном случае вы ничего не получите, что бы вы ни предпринимали. является именем хоста интерфейса высокопроизводительной рабочей станции, а является именем хоста интерфейса системы FreeBSD со слабым сетевым адаптером. Кроме того, будет являться экспортируемой через NFS файловой системой обратитесь к страницам справочной системы по команде exports 5, а будет точкой монтирования экспортируемой файловой системы на клиенте. В любом случае, отметьте, что для вашего приложения могут понадобиться дополнительные параметры, такие, как fastws:/sharedfs/project nfs rw, -r1024 0 0 Команда, выдаваемая вручную на машине freebox:/sharedfs/project nfs rw, -w1024 0 0 Команда, выдаваемая вручную на машине Практически все 16-разрядные сетевые адаптеры позволят работать без указанных выше ограничений на размер блоков при чтении и записи. Для тех, кто интересуется, ниже описывается, что же происходит в при появлении этой ошибки, и объясняется, почему ее невозможно устранить. Как правило, NFS работает с блоками размером 8 килобайт хотя отдельные фрагменты могут иметь меньшие размеры. Так, пакет Ethernet имеет максимальный размер около 1500 байт, то блок NFS разбивается на несколько пакетов Ethernet, хотя на более высоком уровне это все тот же единый блок, который должен быть принят, собран и подтвержден как один блок. Высокопроизводительные рабочие станции могут посылать пакеты, которые соответствуют одному блоку NFS, сразу друг за другом, насколько это позволяет делать стандарт. На слабых, низкопроизводительных адаптерах пакеты, пришедшие позже, накладываются поверх ранее пришедших пакетов того же самого блока до того, как они могут быть переданы хосту и блок как единое целое не может быть собран или подтвержден. В результате рабочая станция входит в ситуацию таймаута и пытается повторить передачу, но уже с полным блоком в 8 КБ, и процесс будет повторяться снова, до бесконечности. Задав размер блока меньше размера пакета Ethernet, мы достигаем того, что любой полностью полученный пакет Ethernet может быть подтвержден индивидуально, и избежим тупиковую ситуацию. Наложение пакетов может все еще проявляться, когда высокопроизводительные рабочие станции сбрасывают данные на PC-систему, однако повторение этой ситуации не обязательно с более скоростными адаптерами с блоками NFS. Когда происходит наложение, затронутые блоки будут переданы снова, и скорее всего, они будут получены, собраны и подтверждены. Текст создал Bill Swingle. Внёс добавления Eric Ogren, Udo Erdelhoff. что является сокращением от Network Information Services Сетевые Информационные Службы, которые были разработаны компанией Sun Microsystems для централизованного администрирования систем UNIX изначально SunOS. В настоящее время эти службы практически стали промышленным стандартом; все основные UNIX - подобные системы Solaris, HP-UX, AIX, Linux, NetBSD, OpenBSD, FreeBSD и так далее поддерживают NIS первоначально назывались Yellow Pages или yp, но из-за проблем с торговым знаком Sun изменила это название. Старое название и yp всё ещё часто употребляется. Это система клиент/сервер на основе вызовов RPC, которая позволяет группе машин в одном домене NIS совместно использовать общий набор конфигурационных файлов. Системный администратор может настроить клиентскую систему NIS только с минимальной настроечной информацией, а затем добавлять, удалять и модифицировать настроечную информацию из одного места. Это похоже на систему доменов Windows NT ; хотя их внутренние реализации не так уж и похожи, основные функции сравнимы. Существует несколько терминов и некоторое количество пользовательских программ, которые будут нужны, когда вы будете пытаться сделать NIS во FreeBSD, и в случае создания сервера, и в случае работы в качестве клиента NIS: Главный сервер NIS и все его клиенты включая вторичные серверы, имеют доменное имя NIS. Как и в случае с именем домена Windows NT, имя домена NIS не имеет ничего общего с DNS. Для обеспечения работы RPC Remote Procedure Call, Удалённого Вызова Процедур, сетевого протокола, используемого NIS, должен быть запущен даемон rpcbind. Если даемон rpcbind не запущен, невозможно будет запустить сервер NIS, или работать как NIS-клиент в FreeBSD 4.X вместо rpcbind используется Связывает NIS-клиента с его NIS-сервером. Он определяет имя NIS-домена системы, и при помощи RPC подключается к серверу. ypbind является основой клиент-серверного взаимодействия в среде NIS; если на клиентской машине программа ypbind перестанет работать, то эта машина не сможет получить доступ к серверу NIS. которая должна запускаться только на серверах NIS: это и есть сервер NIS. Если ypserv 8 перестанет работать, то сервер не сможет отвечать на запросы NIS к счастью, на этот случай предусмотрен вторичный сервер. Есть несколько реализаций NIS к FreeBSD это не относится, в которых не производится попыток подключиться к другому серверу, если ранее используемый сервер перестал работать. Зачастую единственным средством, помогающим в этой ситуации, является перезапуск серверного процесса или сервера полностью или процесса ypbind на клиентской машине. другой процесс, который запускается только на главных NIS-серверах: это даемон, позволяющий клиентам NIS изменять свои пароли NIS. Если этот даемон не запущен, то пользователи должны будут входить на основной сервер NIS и там менять свои пароли. В системе NIS существует три типа хостов: основные master серверы, вторичные slave серверы и клиентские машины. Серверы выполняют роль централизованного хранилища информации о конфигурации хостов. Основные серверы хранят оригиналы этой информации, когда как вторичные серверы хранят ее копию для обеспечения избыточности. Клиенты связываются с серверами, чтобы предоставить им эту информацию. Информация во многих файлах может совместно использоваться следующим образом. Файлы используются совместно через NIS. Когда процессу, работающему на клиентской машине, требуется информация, как правило, находящаяся в этих файлах локально, то он делает запрос к серверу NIS, с которым связан. Основной сервер NIS. Такой сервер, по аналогии с первичным контроллером домена Windows NT, хранит файлы, используемые всеми клиентами NIS. Файлы и различные другие файлы, используемые клиентами NIS, находятся на основном сервере. Замечание: Возможно использование одной машины в качестве сервера для более чем одного домена NIS. Однако, в этом введении такая ситуация не рассматривается, и предполагается менее масштабное использование NIS. Вторичные серверы NIS. Похожие на вторичные контроллеры доменов Windows NT, вторичные серверы NIS содержат копии оригинальных файлов данных NIS. Вторичные серверы NIS обеспечивают избыточность, что нужно в критичных приложениях. Они также помогают распределять нагрузку на основной сервер: клиенты NIS всегда подключаются к тому серверу NIS, который ответил первым, в том числе и к вторичным серверам. Клиенты NIS. Клиенты NIS, как и большинство рабочих станций Windows NT, аутентифицируются на сервере NIS или на контроллере домена Windows NT для рабочих станций Windows NT во время входа в систему. В этом разделе приводится пример настройки NIS. Замечание: В этом разделе предполагается, что вы работаете с FreeBSD 3.3 или выше. Указания, приводимые здесь, скорее всего, будут работать с любой версией FreeBSD, выше, чем 3.0, однако нет гарантий, что это на самом деле так. Давайте предположим, что вы являетесь администратором в маленькой университетской лаборатории. В настоящий момент в этой лаборатории с 15 машинами отсутствует единая точка администрирования; на каждой машине имеются собственные файлы Эти файлы синхронизируются друг с другом только вручную; сейчас, когда вы добавляете пользователя в лаборатории, вы должны выполнить команду на всех 15 машинах. Понятно, что такое положение вещей нужно исправлять, так что вы решили перевести сеть на использование NIS, используя две машины в качестве серверов. Итак, конфигурация лаборатории сейчас выглядит примерно так: Если вы определяете схему NIS первый раз, ее нужно хорошо обдумать. Вне зависимости от размеров вашей сети, есть несколько ключевых моментов, которые требуют принятия решений. Это имя не должно быть именем домена, которое вы использовали. Более точно это имя называется именем домена NIS. Когда клиент рассылает запросы на получение информации, он включает в них имя домена NIS, частью которого является. Таким способом многие сервера в сети могут указать, какой сервер на какой запрос должен отвечать. Думайте о домене NIS как об имени группы хостов, которые каким-то образом связаны. Некоторые организации в качестве имени домена NIS используют свой домен Интернет. Это не рекомендуется, так как может вызвать проблемы в процессе решения сетевых проблем. Имя домена NIS должно быть уникальным в пределах вашей сети и хорошо, если оно будет описывать группу машин, которые представляет. Например, художественный отдел в компании Acme Inc. может находиться в домене NIS с именем acme-art. В нашем примере положим, что мы выбрали имя Несмотря на это, некоторые операционные системы в частности, SunOS используют свое имя домена NIS в качестве имени домена Интернет. Если одна или более машин в вашей сети имеют такие ограничения, вы обязаны использовать имя домена Интернет в качестве имени домена NIS. Есть несколько вещей, которые нужно иметь в виду при выборе машины для использования в качестве сервера NIS. Одной из обескураживающей вещью, касающейся NIS, является уровень зависимости клиентов от серверов. Если клиент не может подключиться к серверу своего домена NIS, зачастую машину просто становится нельзя использовать. Отсутствие информации о пользователях и группах приводит к временной остановке работы большинства систем. Зная это, вы должны выбрать машину, которая не должна подвергаться частым перезагрузкам и не используется для разработки. Сервер NIS в идеале должен быть отдельно стоящей машиной, единственным целью в жизни которой является быть сервером NIS. Если вы работаете в сети, которая не так уж сильно загружена, то можно поместить сервер NIS на машине, на которой запущены и другие сервисы, просто имейте в виду, что если сервер NIS становится недоступным, то это негативно отражается на Оригинальные копии всей информации NIS хранится на единственной машине, которая называется главным сервером NIS. Базы данных, которые используются для хранения информации, называются картами NIS. Во FreeBSD эти карты хранятся в является именем обслуживаемого домена NIS. Один сервер NIS может поддерживать одновременно несколько доменов, так что есть возможность иметь несколько таких каталогов, по одному на каждый обслуживаемый домен. Каждый домен будет иметь свой собственный независимый от других набор карт. отвечает за получение входящих запросов от клиентов NIS, распознавание запрашиваемого домена и отображение имени в путь к соответствующему файлы базы данных, а также передаче информации из базы данных обратно клиенту. Настройка основного сервера NIS может оказаться сравнительно простой, в зависимости от ваших потребностей. В поставку FreeBSD сразу включена поддержка NIS. Все, что вам нужно, это добавить следующие строки в файл а FreeBSD сделает за вас всё остальное. В этой строке задается имя домена NIS, которое будет еще до настройки сети например, после перезагрузки. Здесь указывается FreeBSD на запуск процессов серверов NIS, когда дело доходит до сетевых настроек. который, как это отмечено выше, позволит пользователям менять свой пароль NIS с клиентской машины. Замечание: В зависимости от ваших настроек NIS, вам могут понадобиться дополнительные строки. Обратитесь к разделу о серверах NIS, которые являются и клиентами NIS ниже для получения подробной информации. А теперь всё, что вам нужно сделать, это запустить команду работая как администратор. По ней произойдет настройка всего, при этом будут использоваться значения, заданные в файле Карты NIS являются файлами баз данных, которые хранятся в каталоге Они генерируются из конфигурационных файлов, находящихся в каталоге основного сервера NIS, за одним исключением: файл На это есть весомая причина, вам не нужно распространять пароли пользователя и других административных пользователей на все серверы в домене NIS. По этой причине, прежде чем инициализировать карты NIS, вы должны сделать вот что: Вы должны удалить все записи, касающиеся системных пользователей и так далее, а также записи, которые вы не хотите распространять клиентам NIS например, и другие пользователи с UID, равным 0 администраторы. Замечание: Проверьте, чтобы файл был недоступен для записи ни для группы, ни для остальных пользователей режим доступа 600! Воспользуйтесь командой Когда с этим будет покончено, самое время инициализировать карты NIS! В поставку FreeBSD включен скрипт с именем который делает это обратитесь к его справочной странице за дополнительной информацией. Отметьте, что этот скрипт имеется в большинстве операционных систем UNIX, но не во всех. В системе Digital Unix/Compaq Tru64 UNIX он называется Так как мы генерируем карты для главного сервера NIS, то при вызове программы Для генерации карт NIS в предположении, что вы уже сделали шаги, описанные выше, выполните следующее: Server Type: MASTER Domain: test-domain Creating an YP server will require that you answer a few questions. Questions will all be asked at the beginning of the procedure. Do you want this procedure to quit on non-fatal errors? y/n: n Ok, please remember to go back and redo manually whatever fails. If you dont, something might not work. At this point, we have to construct a list of this domains YP servers. is already known as master server. Please continue to add any slave servers, one per line. When you are done with the list, type a control D. master server: ellington next host to add: The current list of NIS servers looks like this: ellington coltrane Is this correct? y/n: y вывод при генерации карт. NIS Map update completed. ellington has been setup as an YP master server without any errors. При создании этого файла предполагается, что вы работаете в окружении с единственным сервером NIS и только с машинами FreeBSD. Так как в домене имеется также и вторичный сервер, то вы должны отредактировать файл Вы должны закомментировать строку, в которой указано она уже не раскомментирована. Настройка вторичного сервера NIS осуществляется ещё проще, чем настройка главного сервера. Войдите на вторичный сервер и отредактируйте файл точно также, как вы делали это ранее. Единственным отличием является то, что при запуске программы требует также указание имени главного сервера NIS, так что наша команда должна выглядеть так: Server Type: SLAVE Domain: test-domain Master: ellington Creating an YP server will require that you answer a few questions. Questions will all be asked at the beginning of the procedure. Do you want this procedure to quit on non-fatal errors? y/n: n Ok, please remember to go back and redo manually whatever fails. If you dont, something might not work. There will be no further questions. The remainder of the procedure should take a few minutes, to copy the databases from ellington. Transferring ypxfr: Exiting: Map successfully transferred Transferring ypxfr: Exiting: Map successfully transferred Transferring ypxfr: Exiting: Map successfully transferred Transferring ypxfr: Exiting: Map successfully transferred Transferring ypxfr: Exiting: Map successfully transferred Transferring ypxfr: Exiting: Map successfully transferred Transferring ypxfr: Exiting: Map successfully transferred Transferring ypxfr: Exiting: Map successfully transferred Transferring ypxfr: Exiting: Map successfully transferred Transferring ypxfr: Exiting: Map successfully transferred Transferring ypxfr: Exiting: Map successfully transferred Transferring ypxfr: Exiting: Map successfully transferred Transferring ypxfr: Exiting: Map successfully transferred Transferring ypxfr: Exiting: Map successfully transferred Transferring ypxfr: Exiting: Map successfully transferred Transferring ypxfr: Exiting: Map successfully transferred Transferring ypxfr: Exiting: Map successfully transferred Transferring ypxfr: Exiting: Map successfully transferred Transferring ypxfr: Exiting: Map successfully transferred Transferring ypxfr: Exiting: Map successfully transferred coltrane has been setup as an YP slave server without any errors. Dont forget to update map ypservers on ellington. Копии карт главного сервера NIS должны быть в этом каталоге. Вы должны удостовериться, что этот каталог обновляется. Следующие строки в Эти две строки заставляют вторичный сервер синхронизировать свои карты с картами главного сервера. Хотя эти строчки не обязательны, так как главный сервер делает попытки передать все изменения в своих картах NIS на свои вторичные серверы, но из-за того, что информация для входа в систему настолько жизненно важна для систем, зависящих от сервера, что выполнение регулярных обновлений является совсем не плохой идеей. Это ещё более важно в загруженных сетях, в которых обновления карт могут не всегда завершаться успешно. на вторичном сервере, по которой снова выполнится запуск сервера NIS. определяет домен, используемый в системе по умолчанию тот, который устанавливается по команде и начинает широковещательную рассылку запросов RPC в локальной сети. В этих запросах указано имя домена, к серверу которого пытается осуществить привязку. Если сервер, который был настроен для обслуживания запрашиваемого домена, получит широковещательный запрос, он ответит который, в свою очередь запомнит адрес сервера. Если имеется несколько серверов например, главный и несколько вторичных, то будет использовать адрес первого ответившего. С этого момента клиентская система будет направлять все свои запросы NIS на этот сервер. Время от времени будет пинать сервер для проверки его работоспособности. Если на один из тестовых пакетов не удастся получить ответа за разумное время, то пометит этот домен как домен, с которым связка разорвана, и снова начнет процесс посылки широковещательных запросов в надежде найти другой сервер. Настройка машины с FreeBSD в качестве клиента NIS достаточно проста. добавив туда следующие строки для того, чтобы задать имя домена NIS и запустить Для импортирования всех возможных учётных записей от сервера NIS, удалите все записи пользователей из вашего файла Замечание: Эта строчка даст всем пользователям с корректной учетной записью в картах учетных баз пользователей доступ к этой системе. Есть множество способов настроить ваш клиент NIS, изменив эту строку. Посмотрите ниже текст, касающийся сетевых групп, чтобы получить более подробную информацию. Дополнительная информация для изучения находится в книге издательства OReilly под названием Если с NIS что-то случится, эта запись может использоваться для удаленного входа в систему, перехода в режим администратора и исправления неисправностей. Для импортирования всех возможных записей о группах с сервера NIS, добавьте в ваш файл и увидеть карту учетных записей сервера NIS. В общем-то любой пользователь, зная имя вашего домена, может выполнить запрос RPC к ypserv 8 и получить содержимое ваших карт NIS. Для предотвращения такого неавторизованного обмена ypserv 8 поддерживает так называемую систему securenets, которая может использоваться для ограничения доступа к некоторой группе хостов. При запуске ypserv 8 будет пытаться загрузить информацию, касающуюся securenets, из файла Замечание: Имя каталога зависит от параметра, указанного вместе с опцией Этот файл содержит записи, состоящие из указания сети и сетевой маски, разделенных пробелом. Строчки, начинающиеся со знака, считаются комментариями. Примерный файл securenets может иметь примерно такой вид: allow connections from local host - - mandatory 127.0.0.1 255.255.255.255 allow connections from any host on the 192.168.128.0 network 192.168.128.0 255.255.255.0 allow connections from any host between 10.0.0.0 to 10.0.15.255 this includes the machines in the testlab 10.0.0.0 255.255.240.0 Если ypserv 8 получает запрос от адреса, который соответствует одному из этих правил, он будет отрабатывать запрос обычным образом. Если же адрес не подпадает ни под одно правило, запрос будет проигнорирован и в журнал будет записано предупреждающее сообщение. Если файл будет обслуживать соединения от любого хоста. TCP Wrapper от Wietse Venema. Это позволяет администратору для ограничения доступа вместо использовать конфигурационные файлы TCP Wrapper. Замечание: Хотя оба этих метода управления доступом обеспечивают некоторую безопасность, они, как основанные на проверке привилегированного порта, оба подвержены атакам типа IP spoofing. Весь сетевой трафик, связанный с работой NIS, должен блокироваться вашим брандмауэром. Серверы, использующие файл могут быть не в состоянии обслуживать старых клиентов NIS с древней реализацией протокола TCP/IP. Некоторые из этих реализаций при рассылке широковещательных запросов устанавливают все биты машинной части адреса в ноль и/или не в состоянии определить маску подсети при вычислении адреса широковещательной рассылки. Хотя некоторые из этих проблем могут быть решены изменением конфигурации клиента, другие могут привести к отказу от использования на сервере с такой архаичной реализацией TCP/IP является весьма плохой идеей, и приведёт к потере работоспособности NIS в большой части вашей сети. Использование пакета TCP Wrapper увеличит время отклика вашего сервера NIS. Дополнительной задержки может оказаться достаточно для возникновения таймаутов в клиентских программах, особенно в загруженных сетях или с медленными серверами NIS. Если одна или более ваших клиентских систем страдают от таких проблем, вы должны преобразовать такие клиентские системы во вторичные серверы NIS и сделать принудительную их привязку к самим себе. о которой предполагается, что она является исключительно факультетской рабочей станцией. Мы не хотим исключать эту машину из домена NIS, однако файл на главном сервере NIS содержит учетные записи как для работников факультета, так и студентов. Что мы можем сделать? Есть способ ограничить вход некоторых пользователей на этой машине, даже если они присутствуют в базе данных NIS. Чтобы это сделать, вам достаточно добавить на клиентской машине, где является именем пользователя, которому вы хотите запретить вход. Рекомендуется сделать это с помощью утилиты а также автоматически перестроит базу данных паролей по окончании редактирования. Например, если мы хотим запретить пользователю root:password:0:0::0:0:The super-user:/root:/bin/csh toor:password:0:0::0:0:The other super-user:/root:/bin/sh daemon::1:1::0:0:Owner of many system processes:/root:/sbin/nologin operator::2:5::0:0:System :/:/sbin/nologin bin::3:7::0:0:Binaries Commands and Source,,, :/:/sbin/nologin tty::4:65533::0:0:Tty Sandbox:/:/sbin/nologin kmem::5:65533::0:0:KMem Sandbox:/:/sbin/nologin games::7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin news::8:8::0:0:News Subsystem:/:/sbin/nologin man::9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin bind::53:53::0:0:Bind Sandbox:/:/sbin/nologin uucp::66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico xten::67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin pop::68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin nobody::65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin ::::::::: - bill basie Текст предоставил Udo Erdelhoff. Способ, описанный в предыдущем разделе, работает достаточно хорошо, если вам нужны особые правила для очень малой группы пользователей или машин. В более крупных сетях вы забудете о запрете входа определенных пользователей на важные машины или даже будете настраивать каждую машину по отдельности, теряя таким образом главное преимущество использования NIS: централизованное администрирование. сетевые группы. Их назначение и смысл можно сравнить с обычными группами, используемыми в файловых системах UNIX. Главное отличие заключается в отсутствии числового идентификатора и возможности задать сетевую группу включением как пользователей, так и других сетевых групп. Сетевые группы были разработаны для работы с большими, сложными сетями с сотнями пользователей и машин. С одной стороны, хорошо, если вам приходится с такой ситуацией. С другой стороны, эта сложность делает невозможным описание сетевых групп с помощью простых примеров. Пример, используемый в дальнейшем, демонстрирует эту проблему. Давайте предположим, что успешное внедрение системы NIS в вашей лаборатории заинтересовало ваше руководство. Вашим следующим заданием стало расширение домена NIS для включения в него некоторых других машин студенческого городка. В двух таблицах перечислены имена новых машин и пользователей, а также их краткое описание. Ваши самые важные серверы. Только служащим IT позволяется входить на эти машины. Менее важные серверы. Все сотрудники департамента IT могут входить на эти машины. Обычные рабочие станции. Только реально нанятым служащим позволяется использовать эти машины. Очень старая машина без каких-либо критичных данных. Даже проходящим интернатуру разрешено ее использовать. Если вы попытаетесь реализовать эти требования, ограничивая каждого пользователя по отдельности, то вам придется добавить на каждой машине в файл для каждого пользователя, которому запрещено входить на эту систему. Если вы забудете даже одну строчку, у вас могут начаться проблемы. Гораздо проще делать это правильно во время начальной установки, однако вы постепенно будете забывать добавлять строчки для новых пользователей во время повседневной работы. В конце концов, Мерфи был оптимистом. Использование в этой ситуации сетевых групп дает несколько преимуществ. Нет необходимости описывать по отдельности каждого пользователя; вы ставите в соответствие пользователю одну или несколько сетевых групп и разрешаете или запрещаете вход всем членам сетевой группы. Если вы добавляете новую машину, вам достаточно определить ограничения на вход для сетевых групп. Если добавляется новый пользователь, вам достаточно добавить его к одной или большему числу сетевых групп. Эти изменения независимы друг от друга: нет больше комбинаций для каждого пользователя и машины. Если настройка вашей системы NIS тщательно спланирована, то для разрешения или запрещения доступа к машинам вам нужно будет модифицировать единственный конфигурационный файл. Первым шагом является инициализация карты NIS по имени netgroup. Программа ypinit 8 во FreeBSD по умолчанию этой карты не создаёт, хотя реализация NIS будет её поддерживает, как только она будет создана. Чтобы создать пустую карту, просто наберите и начните добавлять содержимое. Например, нам нужно по крайней мере четыре сетевых группы: сотрудники IT, практиканты IT, обычные сотрудники и интернатура. ITEMP,alpha, test-domain,beta, test-domain ITAPP,charlie, test-domain,delta, test-domain USERS,echo, test-domain,foxtrott, test-domain, golf, test-domain INTERNS,able, test-domain,baker, test-domain и так далее являются именами сетевых групп. Несколько слов в скобках служат для добавления пользователей в группу. Три поля внутри группы обозначают следующее: Имя хоста или хостов, к которым применимы последующие записи. Если имя хоста не указано, то запись применяется ко всем хостам. Если же указывается имя хоста, то вы получите мир темноты, ужаса и страшной путаницы. Имя учетной записи, которая принадлежит этой сетевой группе. Домен NIS для учетной записи. Вы можете импортировать в вашу сетевую группу учетные записи из других доменов NIS, если вы один из тех несчастных, имеющих более одного домена NIS. Каждое из этих полей может содержать шаблоны, подробности даны в странице справочника по netgroup 5. Замечание: Не нужно использовать имена сетевых групп длиннее 8 символов, особенно если в вашем домене NIS имеются машины, работающие под управлением других операционных систем. Имена чувствительны к регистру; использование заглавных букв для имен сетевых групп облегчает распознавание пользователей, имен машин и сетевых групп. Некоторые клиенты NIS отличные от FreeBSD не могут работать с сетевыми группами, включающими большое количество записей. Например, в некоторых старых версиях SunOS возникают проблемы, если сетевая группа содержит более 15 записей. Вы можете обойти это ограничение, создав несколько подгрупп с 15 или меньшим количеством пользователей и настоящую сетевую группу, состоящую из подгрупп: BIGGRP1,joe1, domain,joe2, domain,joe3, domain BIGGRP2,joe16, domain,joe17, domain BIGGRP3,joe31, domain,joe32, domain BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3 Вы можете повторить этот процесс, если вам нужно иметь более 225 пользователей в одной сетевой группе. Воспользуйтесь утилитой ypcat 1 для проверки доступности ваших новых карт NIS: Вторая команда не выведет ничего, если вы не зададите сетевые группы, специфичные для хоста. Третья команда может использоваться пользователем для получения списка сетевых групп. Настройка клиента достаточно проста. Чтобы настроить сервер вам достаточно запустить vipw 8 и заменить строку Теперь только данные, касающиеся пользователей, определенных в сетевой группе импортируются в базу паролей машины и только этим пользователям будет разрешен вход. К сожалению, это ограничение также касается и функции командного процессора и всех подпрограмм, выполняющих преобразование между именами пользователей и их числовыми ID. Другими словами, команда работать не будет, команда будет выдавать числовые идентификаторы вместо имён пользователей, а работать откажется, выдавая сообщение Чтобы это исправить, вам нужно будет выполнить импорт всех записей о пользователях без разрешения на вход на ваши серверы. Это можно сделать, добавив еще одну строку в файл Эта строка должна содержать: что означает Произвести импортирование всех записей с заменой командного процессора на в импортируемых записях. Вы можете заменить любое поле в строке с паролем, указав значение по умолчанию в вашем Внимание: Проверьте, что строка В противном случае все пользовательские записи, импортированные из NIS, будут иметь После этого изменения при появлении нового сотрудника IT вам будет достаточно изменять только одну карту NIS. Вы можете применить подобный метод для менее важных серверов, заменяя старую строку на нечто, подобное следующему: И все было прекрасно до того момента, когда через несколько недель изменилась политика: Департамент IT начал нанимать интернатуру. Интернатуре в IT позволили использовать обычные рабочие станции и менее важные серверы; практикантам позволили входить на главные серверы. Вы создали новую сетевую группу добавили в нее новую интернатуру и начали изменять настройки на всех и каждой Как говорит старая мудрость: Ошибки в централизованном планировании приводят к глобальному хаосу. Возможность в NIS создавать сетевые группы из других сетевых групп может использоваться для предотвращения подобных ситуаций. Одним из вариантов является создание сетевых групп на основе ролей. Например, вы можете создать сетевую группу с именем для задания ограничений на вход на важные серверы, другую сетевую группу с именем для обычных рабочих станций. Каждая из этих сетевых групп содержит сетевые группы, которым позволено входить на эти машины. Новые записи для вашей карты NIS сетевой группы должны выглядеть таким образом: Этот метод задания ограничений на вход работает весьма хорошо, если вы можете выделить группы машин с одинаковыми ограничениями. К сожалению, такая ситуация может быть исключением, но не правилом. В большинстве случаев вам нужна возможность определять ограничения на вход индивидуально для каждой машины. Задание сетевых групп в зависимости от машин является другой возможностью, которой можно воспользоваться при изменении политики, описанной выше. При таком развитии событий файл на каждой машине содержит две строки, начинающиеся с. Первая из них добавляет сетевую группу с учётными записями, которым разрешено входить на эту машину, а вторая добавляет все оставшиеся учетные записи с в качестве командного процессора. Хорошей идеей является использование ИМЕНИ МАШИНЫ заглавными буквами для имени сетевой группы. Другими словами, строки должны иметь такой вид: Как только вы завершите эту работу для всех ваших машин, вам не нужно будет снова модифицировать локальные версии Все будущие изменения могут быть выполнены изменением карты NIS. Вот пример возможной карты сетевой группы для этого случая с некоторыми полезными дополнениями: Сначала определяем группы пользователей ITEMP,alpha, test-domain,beta, test-domain ITAPP,charlie, test-domain,delta, test-domain DEPT1,echo, test-domain,foxtrott, test-domain DEPT2,golf, test-domain,hotel, test-domain DEPT3,india, test-domain,juliet, test-domain ITINTERN,kilo, test-domain,lima, test-domain DINTERNS,able, test-domain,baker, test-domain Теперь задаем несколько групп на основе ролей USERS DEPT1 DEPT2 DEPT3 BIGSRV ITEMP ITAPP SMALLSRV ITEMP ITAPP ITINTERN USERBOX ITEMP ITINTERN USERS И группы для специальных задач Открыть пользователям echo и golf доступ к антивирусной машине SECURITY ITEMP,echo, test-domain,golf, test-domain Сетевые группы, специфичные для машин Наши главные серверы WAR BIGSRV FAMINE BIGSRV Пользователю india необходим доступ к этому серверу POLLUTION BIGSRV,india, test-domain Этот очень важен и ему требуются большие ограничения доступа DEATH ITEMP Антивирусная машина, упомянутая выше ONE SECURITY Ограничить машину единственным пользователем TWO,hotel, test-domain далее следуют другие группы Если вы используете какие-либо базы данных для управления учетными записями ваших пользователей, вы должны смочь создать первую часть карты с помощью инструментов построения отчетов вашей базы данных. В таком случае новые пользователи автоматически получат доступ к машинам. И последнее замечание: Не всегда бывает разумно использовать сетевые группы на основе машин. Если в студенческих лабораториях вы используете несколько десятков или даже сотен одинаковых машин, то вам нужно использовать сетевые группы на основе ролей, а не основе машин, для того, чтобы размеры карты NIS оставались в разумных пределах. Есть некоторые действия, которые нужно будет выполнять по-другому, если вы работаете с NIS. Каждый раз, когда вы собираетесь добавить пользователя в лаборатории, вы должны добавить его только на главном сервере NIS и обязательно перестроить карты NIS. Если вы забудете сделать это, то новый пользователь не сможет нигде войти, кроме как на главном сервере NIS. Например, если в лаборатории нам нужно добавить нового пользователя Не помещайте административные учетные записи в карты NIS. Вам не нужно распространять административных пользователей и их пароли на машины, которые не должны иметь доступ к таким учётным записям. Сделайте главный и вторичные серверы NIS безопасными и минимизируйте их время простоя. Если кто-то либо взломает, либо просто отключит эти машины, то люди без права входа в лабораторию с легкостью получат доступ. Это основное уязвимое место в любой централизованно администрируемой системе. Если вы не защищаете ваши серверы NIS, вы будете иметь дело с толпой разозлённых пользователей! ypserv из поставки FreeBSD имеет встроенную поддержку для обслуживания клиентов NIS v1. Реализация NIS во FreeBSD использует только протокол NIS v2, хотя другие реализации имеют поддержку протокола v1 для совместимости со старыми системами. Даемоны ypbind, поставляемые с такими системами, будут пытаться осуществить привязку к серверу NIS v1, даже если это им не нужно и они будут постоянно рассылать широковещательные запросы в поиске такого сервера даже после получения ответа от сервера v2. Отметьте, что хотя имеется поддержка обычных клиентских вызовов, эта версия ypserv не отрабатывает запросы на передачу карт v1; следовательно, она не может использоваться в качестве главного или вторичного серверов вместе с другими серверами NIS, поддерживающими только протокол v1. К счастью, скорее всего, в настоящий момент такие серверы практически не используются. Особое внимание следует уделить использованию ypserv в домене со многими серверами, когда серверные машины являются также клиентами NIS. Неплохо бы заставить серверы осуществить привязку к самим себе, запретив рассылку запросов на привязку и возможно, перекрестную привязку друг к другу. Если один сервер выйдет из строя, а другие будут зависеть от него, то в результате могут возникнуть странные ситуации. Постепенно все клиенты попадут в таймаут и попытаются привязаться к другим серверам, но полученная задержка может быть значительной, а странности останутся, так как серверы снова могут привязаться друг к другу. Вы можете заставить хост выполнить привязку к конкретному серверу, запустив команду Если вы не хотите делать это вручную каждый раз при перезагрузке вашего сервера NIS, то можете добавить в файл Дополнительную информацию можно найти на странице справки по ypbind 8. Одним из общих вопросов, которые возникают в начале работы с NIS, является вопрос совместимости форматов паролей. Если ваш сервер NIS использует пароли, зашифрованные алгоритмом DES, то он будет поддерживать только тех клиентов, что также используют DES. К примеру, если в вашей сети имеются клиенты NIS, использующие Solaris, то вам, скорее всего, необходимо использовать пароли с шифрованием по алгоритму DES. Чтобы понять, какой формат используют ваши серверы и клиенты, загляните в файл Если хост настроен на использование паролей, зашифрованных по алгоритму DES, то класс для паролей, шифруемых по стандартам Blowfish и MD5 соответственно. то вам также нужно перестроить базу данных параметров входа в систему, что достигается запуском следующей команды пользователем Замечание: Формат паролей, которые уже находятся в файле не будет изменён до тех пор, пока пользователь не сменит свой пароль после перестроения базы данных параметров входа в систему. После этого, чтобы удостовериться в том, что пароли зашифрованы в том формате, который выбран вами, нужно проверить, что строка указывает предпочтение выбранного вами формата паролей. Для этого поместите выбранный формат первым в списке. Например, при использовании DES-шифрования паролей строка будет выглядеть так: Выполнив вышеперечисленные шаги на каждом из серверов и клиентов NIS, работающих на FreeBSD, вы можете обеспечить их согласованность относительно используемого в вашей сети формата паролей. Если у вас возникли проблемы с аутентификацией клиента NIS, начать её решать определённо стоит отсюда. Запомните: если вы хотите использовать сервер NIS в гетерогенной сети, вам, наверное, нужно будет использовать DES на всех системах в силу того, что это минимальный общий стандарт. Текст написал Greg Sutter. DHCP, или Dynamic Host Configuration Protocol Протокол Динамической Конфигурации Хостов, описывает порядок, по которому система может подключиться к сети и получить необходимую информацию для работы в ней. Во FreeBSD используется реализация DHCP от ISC Internet Software Consortium, так что вся информация, описывающая особенности, зависящие от реализации, относится к дистрибутиву ISC. В этом разделе описываются компоненты системы ISC DHCP как со стороны клиента, так и со стороны сервера. Программа, работающая на клиентской стороне, интегрирована в поставку FreeBSD, а серверная часть доступна в виде порта являющаяся клиентом DHCP, она начинает широковещательную рассылку запросов на получение настроечной информации. По умолчанию эти запросы делаются на 68 порт UDP. Сервер отвечает на UDP 67, выдавая клиенту адрес IP и другую необходимую информацию, такую, как сетевую маску, маршрутизатор и серверы DNS. Вся эта информация даётся в форме аренды DHCP и верна только определенное время что настраивается администратором сервера DHCP. При таком подходе устаревшие адреса IP тех клиентов, которые больше не подключены к сети, могут автоматически использоваться повторно. Клиенты DHCP могут получить от сервера очень много информации. Подробный список находится в странице Справочника dhcp-options 5. полностью интегрирован во FreeBSD. Поддержка клиента DHCP есть как в программе установки, так и в самой системе, что исключает необходимость в знании подробностей конфигурации сети в любой сети, имеющей сервер DHCP. Утилита включена во все версии FreeBSD, начиная с 3.2. DHCP поддерживается утилитой sysinstall. При настройке сетевого интерфейса из программы sysinstall второй вопрос, который вам задается: Do you want to try DHCP configuration of the interface? Хотите ли вы попробовать настроить этот интерфейс через DHCP?. Утвердительный ответ приведёт к запуску программы и при удачном его выполнении к автоматическому заданию информации для настройки интерфейса. Есть две вещи, которые вы должны сделать для того, чтобы ваша система использовала DHCP при загрузке: Убедитесь, что устройство включено в компиляцию вашего ядра. Чтобы это сделать, добавьте строчку в FreeBSD 4.X в конфигурационный файл ядра и перестройте ядро. Более подробная информация о построении ядер имеется в Гл. 8. которое поставляется вместе с FreeBSD, так что, если вы не используете другое ядро, то вам и не нужно его делать для того, чтобы работал DHCP. Замечание: Те, кто беспокоится о безопасности, должны иметь в виду, что устройство является также тем самым устройством, которое позволяет работать программам-снифферам пакетов хотя для этого они должны быть запущены пользователем необходимо для использования DHCP, но если вы чересчур беспокоитесь о безопасности, то вам нельзя добавлять устройство в ядро только для того, чтобы в неопределённом будущем использовать DHCP. включив в него следующее: на имя интерфейса, который вы хотите настраивать динамически, как это описано в Разд. 11.8. то также укажите следующее изменив так, как вам нужно: Сервер DHCP, dhcpd, включён как часть порта в коллекцию портов. Этот порт содержит DHCP-сервер от ISC и документацию. требует наличия конфигурационного файла, Как правило, файл содержит только комментарии, а настройки по умолчанию достаточно хороши. Этот настроечный файл описан на страницах справочной системы по 5. На страница Справочника dhclient 8 дается более подробная информация о является специфичным для FreeBSD скриптом настройки клиента DHCP. Он описан в dhclient-script 8, но для нормального функционирования никаких модификаций со стороны пользователя не требуется. В этом файле клиент DHCP хранит базу данных выданных к использованию адресов в виде журнала. На странице 5 дается гораздо более подробное описание. Полное описание протокола DHCP дается в RFC 2131. Кроме того, дополнительная информация есть на сервере /. Этот раздел даёт информацию о том, как настроить систему FreeBSD для работы в качестве сервера DHCP на основе реализации пакета DHCP от ISC Internet Software Consortium. Серверная часть пакета не поставляется как часть FreeBSD, так что вам потребуется установить порт для получения этого сервиса. Обратитесь к Гл. 4 для получения более полной информации об использовании коллекции портов. Для того, чтобы настроить систему FreeBSD на работу в качестве сервера DHCP, вам необходимо обеспечить присутствие устройства bpf 4, вкомпилированного в ядро. Для этого добавьте строку в FreeBSD 4.X в файл конфигурации вашего ядра. Для получения более полной информации о построении ядер, обратитесь к Гл. 8. поставляемого с FreeBSD, так что вам не нужно создавать собственное ядро для обеспечения работы DHCP. Замечание: Те, кто обращает особое внимание на вопросы безопасности, должны заметить, что является тем устройством, что позволяет нормально работать снифферам пакетов хотя таким программам требуются привилегированный доступ. Наличие устройства обязательно для использования DHCP, но если вы очень обеспокоены безопасностью, наверное, вам не нужно включать в ваше ядро только потому, что в отдалённом будущем вы собираетесь использовать DHCP. Следующим действием, которое вам нужно выполнить, является редактирование примерного который устанавливается в составе порта и вы должны скопировать его в файл перед тем, как его редактировать. состоит из деклараций относительно подсетей и хостов, и проще всего описывается на примере: option domain-name ; option domain-name-servers 192.168.4.100; option subnet-mask 255.255.255.0; default-lease-time 3600; max-lease-time 86400; ddns-update-style none; subnet 192.168.4.0 netmask 255.255.255.0 range 192.168.4.129 192.168.4.254; option routers 192.168.4.1; host mailhost hardware ethernet 02:03:04:05:06:07; fixed-address ; Этот параметр задаёт домен, который будет выдаваться клиентам в качестве домена, используемого по умолчанию при поиске. Обратитесь к страницам справочной системы по 5 для получения дополнительной информации о том, что это значит. Этот параметр задаёт список разделённых запятыми серверов DNS, которые должен использовать клиент. Маска сети, которая будет выдаваться клиентам. Клиент может запросить определённое время, которое будет действовать выданная информация. В противном случае сервер выдаст настройки с этим сроком в секундах. Это максимальное время, на которое сервер будет выдавать конфигурацию. Если клиент запросит больший срок, он будет подтверждён, но будет действовать только Этот параметр задаёт, будет ли сервер DHCP пытаться обновить DNS при выдаче или освобождении конфигурационной информации. В реализации ISC этот параметр является обязательным. Это определение того, какие IP-адреса должны использоваться в качестве резерва для выдачи клиентам. IP-адреса между и включая границы, будут выдаваться клиентам. Объявление маршрутизатора, используемого по умолчанию, который будет выдаваться клиентам. Аппаратный MAC-адрес хоста чтобы сервер DHCP мог распознать хост, когда тот делает запрос. Определение того, что хосту всегда будет выдаваться один и тот же IP-адрес. Заметьте, что указание здесь имени хоста корректно, так как сервер DHCP будет разрешать имя хоста самостоятельно до того, как выдать конфигурационную информацию. вы можете продолжить работу запуском сервера при помощи следующей команды: Если в будущем вам понадобится сделать изменения в настройке вашего сервера, то важно заметить, что посылка сигнала dhcpd не приведёт к перезагрузке настроек, как это бывает для большинства даемонов. Вам нужно послать сигнал для остановки процесса, а затем перезапустить его при помощи вышеприведённой команды. Страницы справочной системы dhcpd 8, устанавливаемые портом, содержат более полную информацию о dhcpd требует наличия конфигурационного файла, до того, как он будет запущен и начнёт предоставлять сервис клиентам. Необходимо, чтобы этот файл содержал все данные, которая будет выдаваться обслуживаемым клиентам, а также информацию о работе сервера. Этот конфигурационный файл описывается на страницах справочной системы 5, которые устанавливаются портом. Сервер DHCP ведёт базу данных выданной информации в этом файле, который записывается в виде протокола. Страницы справочной системы 5, устанавливаемые портом, дают гораздо более подробное описание. dhcrelay используется в сложных ситуациях, когда сервер DHCP пересылает запросы от клиента другому серверу DHCP в отдельной сети. Если вам нужна такая функциональность, то установите порт На страницах справочной системы dhcrelay 8, которые устанавливаются портом, даётся более полное описание. Текст предоставил Chern Lee. По умолчанию во FreeBSD используется одна из версий программы BIND Berkeley Internet Name Domain, являющейся самой распространенной реализацией протокола DNS. DNS - это протокол, при помощи которого имена преобразуются в IP-адреса и наоборот. Например, в ответ на запрос о будет получен IP-адрес веб-сервера Проекта FreeBSD, а запрос о возвратит IP-адрес соответствующей машины с FTP-сервером. Точно также происходит и обратный процесс. Запрос, содержащий IP-адрес машины, возвратит имя хоста. Для выполнения запросов к DNS вовсе не обязательно иметь в системе работающий сервер имён. В сети Интернет DNS управляется через достаточно сложную систему авторизированных корневых серверов имён, и других менее крупных серверов имён, которые содержат и кэшируют информацию о конкретных доменах. В этом документа рассматривается BIND 8.x, так как это стабильная версия, используемая во FreeBSD. Начиная с FreeBSD 5.3, с системой поставляется BIND 9, инструкции к настройке которого находятся далее в этой главе. Пользователи FreeBSD 5.2 и предыдущих релизов могут установить BIND Протокол DNS стандартизован в RFC1034 и RFC1035. На данный момент пакет BIND поддерживается Internet Software Consortium /. Для понимания этого документа нужно понимать значения некоторых терминов, связанных с работой DNS. Обозначает домен, покрываемый конкретным файлом зоны Общеупотребительные названия для обозначения пакета BIND, обеспечивающего работу сервера имён во FreeBSD. Системный процесс, посредством которого машина обращается к серверу имён для получения информации о зоне Операция, обратная прямому запросу к DNS; преобразование адресов IP в имена хостов Начало иерархии зон Интернет. Все зоны находятся под корневой зоной, подобно тому, как все файлы располагаются ниже корневого каталога. Отдельный домен, поддомен или часть DNS, управляемая одним сервером. является поддоменом, зоной под зоной является зоной, в которую включены все IP-адреса, формирующие пространство адресов Как можно видеть, уточняющая часть имени хоста появляется слева. Например, более точен, чем корневая зона. Расположение каждой части имени хоста сильно похоже на файловую систему: каталог расположен в корневой файловой системе, и так далее. Сервера имён обычно используются в двух видах: авторитетный сервер имён и кэширующий сервер имён. Авторитетный сервер имён нужен, когда: нужно предоставлять информацию о DNS остальному миру, отвечая на запросы авторизированно. зарегистрирован домен, такой, как и в этом домене требуется поставить имена машин в соответствие с их адресами IP. блоку адресов IP требуется обратные записи DNS IP в имена хостов. резервный slave сервер имён должен отвечать на запросы о домене, когда основной не работает или не доступен. Кэширующий сервер имён нужен, когда: локальный сервер DNS может кэшировать информацию и отвечать на запросы быстрее, чем это происходит при прямом опросе внешнего сервера имён. требуется уменьшение общего сетевого трафика DNS составляет около 5% всего трафика Интернет, или чуть больше. Например, когда кто-нибудь запрашивает информацию о то обычно резолвер обращается к серверу имён вашего провайдера, посылает запрос и ожидает ответа. С локальным кэширующим сервером DNS запрос во внешний мир будет делаться всего один раз. Каждый дополнительный запрос не будет посылаться за пределы локальной сети, потому что информация уже имеется в кэше. Во FreeBSD даемон BIND, по очевидным причинам, называется каталог, в котором располагается вся информация о зонах BIND и содержат информацию о зоне DNS, за которую отвечает сервер имён. Так как сервер имён BIND устанавливается по умолчанию, его настройка сравнительно проста. Чтобы даемон named запускался во время загрузки, поместите в 23.6.6.1. Использование для того, чтобы правильно создать файл локальной обратной зоны для loopback-интерфейса. FreeBSD////Refer to the named8 manual page for details. If you are ever going//to setup a primary server, make sure youve understood the hairy//details of how DNS is working. Even with simple mistakes, you can//break connectivity for affected parties, or cause huge amount of//useless Internet traffic. options directory/etc/namedb;//In addition to the forwarders clause, you can force your name//server to never initiate queries of its own, but always ask its//forwarders only, by enabling the following line:////forward only;//If youve got a DNS server around at your upstream provider, enter//its IP address here, and enable the line below. This will make you//benefit from its cache, thus reduce overall DNS traffic in the Internet. Как и говорится в комментариях, если вы хотите получить эффект от использования кэша провайдера, то можно включить раздел В обычном случае сервер имён будет рекурсивно опрашивать определённые серверы имён Интернет до тех пор, пока не получит ответ на свой запрос. При включении этого раздела он будет автоматически опрашивать сервер имён вашего провайдера или тот, который здесь указан, используя преимущества его кэша. наличия нужной информации. Если соответствующий сервер имён провайдера работает быстро и имеет хороший канал связи, то в результате такой настройки вы можете получить хороший результат. здесь работать не будет. Измените его на IP-адрес сервера имён провайдера. query-source address port 53; //dump-file ; ;//Note: the following will be supported in a future release. //Setting up secondaries is way easier and the rough picture for this//is explained below.////If you enable a local name server, dont forget to enter 127.0.0.1//into your so this server will be queried first.//Also, make sure to enable it in zone. type hint; file ; ; zone type master; file ; ; zone type master; file ; ;//NB: Do not use the IP addresses below, they are faked, and only//serve demonstration/documentation purposes!////Example secondary config entries. It can be convenient to become//a secondary at least for the zone where your own domain is in. Ask//your network administrator for the IP address of the responsible//primary.////Never forget to include the reverse lookup zone!//This is the first bytes of the respective IP address, in reverse//order, with appended.////Before starting to setup a primary zone, better make sure you fully//understand how DNS and BIND works, however. There are sometimes//unobvious pitfalls. Setting up a secondary is comparably simpler.////NB: Dont blindly enable the examples below.:- Use actual names//and addresses instead.////NOTE!!! FreeBSD runs BIND in a sandbox see namedflags in.//The directory containing the secondary zones must be write accessible//to BIND. The following sequence is suggested:////mkdir/etc/namedb/s//chown bind:bind/etc/namedb/s//chmod 750/etc/namedb/s Дополнительная информация о запуске BIND в ограниченном окружении находится в соответствующем разделе. Для каждого новой зоны, которую будет обслуживать сервер имён, в файл должна быть добавлена запись. К примеру, самая простая запись для домена zone type master; file ; ; Зона является первичной, что отражается в поле и информация о зоне хранится в файле zone type slave; file ; ; В случае вторичной зоны информация о ней передается с основного сервера имён для заданной зоны и сохраняется в указанном файле. Если и когда основной сервер имён выходит и строя или недосягаем, то скачанная информация о зоне будет находиться на вторичных серверах и они смогут обслуживать эту зону. Заметьте, что все имена хостов, оканчивающиеся на., задают полное имя, тогда как все имена без символа. на конце считаются заданными относительно origin. Например, В нашем воображаемом файле ориджином является имя домена, а также ориджин для этого файла зоны. основной/авторитативный сервер имён для этой зоны. человек, отвечающий за эту зону, адрес электронной почты с подменённым символом. последовательный номер файла. При каждом изменении файла зоны это число должно увеличиваться. В настоящее время для нумерации многие администраторы предпочитают формат будет означать, что файл последний раз изменялся 10.04.2001, а последнее число означает, что это была вторая модификация файла за день. Последовательный номер важен, так как он служит для того, чтобы вторичные серверы узнавали об обновлении зоны. Это NS-запись. Такие записи должны иметься для всех серверов имён, которые будут отвечать за зону. Символ используемый здесь, преобразуется в соответствует ориджину. Записи типа A служат для обозначения имён машин. Как это видно выше, имя И снова здесь используется символ ориджина Записи с каноническими именами обычно используются для присвоения машинам псевдонимов. В этом примере является псевдонимом для машины, соответствующей ориджину, то есть Записи CNAME могут использоваться для присвоения псевдонимов именам хостов или для использования одного имени несколькими машинами по очереди. MX-запись указывает, какие почтовые серверы отвечают за обработку входящей электронной почты для зоны. является именем почтового сервера, а 10 обозначает приоритет этого почтового сервера. Можно иметь несколько почтовых серверов с приоритетами 3, 2 и 1. Почтовый сервер, пытающийся доставить почту для сначала попробует связаться с машиной, имеющий MX-запись с самым большим приоритетом, затем с приоритетом поменьше и так далее, до тех пор, пока почта не будет отправлена. Для файлов зон обратные записи DNS используется тот же самый формат, отличающийся только использованием записей PTR вместо A или CNAME. В этом файле дается полное соответствие имён хостов IP-адресам в нашем описанном ранее вымышленном домене. Кэширующий сервер имён - это сервер имён, не отвечающий ни за какую зону. Он просто выполняет запросы от своего имени и сохраняет результаты для последующего использования. Для настройки такого сервера достаточно исключить все описания зон из стандартной конфигурации сервера имён. Для дополнительной безопасности вам может потребоваться запускать named 8 с правами непривилегированного пользователя и настроить его на выполнение chroot 8 в каталог-песочницу. Это позволит сделать недоступным для даемона named все, что расположено вне песочницы. Если named будет взломан, то это поможет уменьшить возможный ущерб. По умолчанию во FreeBSD имеются пользователь и группа с именами которые предназначены именно для такого использования. named внутри jail 8. В этом разделе такой подход не рассматривается. Так как named не сможет обратиться ни к чему вне песочницы например, совместно используемым библиотекам, сокетам протоколов и так далее, то нужно выполнить несколько шагов, чтобы named смог работать нормально. В следующем списке предполагается, что каталогом песочницы является и что вы не делали никаких изменений в содержимом этого каталога. Выполните следующие шаги, работая как пользователь Создайте все каталоги, которые ожидает увидеть named : Программе named нужен доступ с правом записи в эти каталоги, так что это все, что мы ей предоставим. Это позволит программе named протоколировать правильное время в syslogd 8. Если вы используете FreeBSD версии ранее 4.9-RELEASE, то постройте статически скомпонованную копию named-xfer и скопируйте её в песочницу: во избежание появления старых копий библиотек и программ в дереве исходного кода, требуется некоторая зачистка: Иногда при выполнении этого шага возникают ошибки. Если это случилось, выполните такую команду: При этом из вашего дерева исходных текстов будет удалён весь мусор, и повторение вышеописанных шагов должно выполниться успешно. Если вы используете FreeBSD 4.9-RELEASE или более позднюю версию, то копия по умолчанию является статически скомпонованной, и вы можете просто скопировать её в песочницу при помощи команды cp 1. Замечание: Это просто для того, чтобы не задавать опцию при каждом запуске ndc 8. Так как содержимое каталога удаляется при загрузке, может быть полезно добавить эту команду в crontab 5 для в который может писать named. Для этого добавьте в песочницу, добавив следующее в Замечание: Заметьте, что конфигурационный файл именуется по полному имени относительно песочницы, то есть в вышеприведённой строке указывается файл, который на самом деле является файлом named знал, какую зону загружать и где найти их на диске. Далее следует прокомментированный пример все, что специально не прокомментировано, ничем не отличается от настройки сервера DNS, работающего не в песочнице: options directory/; named-xfer/bin/named-xfer; version ;//Не выдавайте версию BIND query-source address port 53; ;//управляющий сокет ndc controls unix/var/run/ndc perm 0600 owner 0 group 0; ;//Далее следуют зоны: zone localhost IN type master; file ; allow-transfer localhost; ; notify no; ; zone IN type master; file ; allow-transfer localhost; ; notify no; ; zone type master; file ; allow-transfer localhost; ; notify no; ; zone. IN type hint; file ; ; zone in type master; file ; allow-transfer 192.168.10.0/24; ; ; zone in type slave; masters 192.168.10.2; ; file ; ; так как все файлы, которые нужны для named, находятся внутри этого каталога вспомните, что это равнозначно обычному пользовательскому внутри границ видимости named. Это необходимо, так как named компилируется с тем, чтобы брать выше, в котором named может найти файл зоны для этой зоны. выше, в котором named должен записывать копию файла зоны для этой зоны после успешной передачи ее с основного сервера. Вот почему нам нужно изменить владельца каталога После выполнения шагов выше либо перезагрузите ваш сервер, либо перезапустите syslogd 8 и запустите named 8, не забыв использовать новые опции, заданные в Теперь named должен заработать в песочнице! Хотя BIND является самой распространенной реализацией DNS, всегда стоит вопрос об обеспечении безопасности. Время от времени обнаруживаются возможные и реальные бреши в безопасности. Подсказка: Если возникают проблемы, то наличие последних исходных текстов и свежеоткомпилированного named не помешает. Перевод на русский язык: Dmitry Morozovsky. FreeBSD начиная с версии 5.3 содержит в базовой поставке сервер DNS 9. Среди прочих нововведений стоит отметить новые возможности, связанные с безопасностью, новую организацию файлов конфигурации и автоматическое использование опции chroot 8. Первая часть этой главы посвящена обсуждению новых возможностей и их использования, вторая описывает процесс обновления сервера DNS при переходе на FreeBSD 5.3. Мы будем ссылаться на сервер BIND как named 8. Мы подразумеваем, что читатель знаком с терминологией, описываемой в предыдущей главе. и требуют модификации перед началом использования сервера. Большая часть работы по конфигурации сервера DNS происходит именно в этом каталоге. В поставляемом стандартном файле конфигурации уже есть ссылки на оба файла зон. Дополнительные домены и поддомены могут быть добавлены как зависимые зоны. В большинстве случаев достаточно просто скопировать файл и изменить копию. После изменения файлов зон нужно добавить ссылки на них в основной файл конфигурации как в следующем примере для Отметим, что использованный в этом примере IP адрес является адресом, с которого будут копироваться файлы зон; этот адрес не обязательно является публичным сервером DNS Есть и другие параметры конфигурации, но эта строка - - минимально необходима. Список параметров можно найти на странице справочника 5. Если запуск named не разрешен в сервер можно запустить вручную командой FreeBSD автоматически запускает named в ограниченном пространстве chroot 8 ; кроме того, существует еще несколько средств, помогающих защитить сервис DNS Для ограничения доступа к зонам могут применяться списки доступа. Для этого опишите для домена список IP адресов, которым разрешены запросы к содержимому доменной зоны, и используйте имя этого списка в конфигурации зоны. Вот пример описания списка ограничения доступа: acl 192.168.0.0/24; ; zone type slave; file ; masters 10.0.0.1; ; allow-query ; ; ; zone type slave; file ; masters 10.0.0.1; ; allow-query ; ; ; сервера может быть не самой лучшей идеей: возможный злоумышленник может воспользоваться ей для выяснения известных ошибок и уязвимостей и применить их вашего сервера. Внимание: Подмена сообщения о версии не защитит ваш сервер от эксплоитов. Защитить сервер может только обновление до версии, не содержащей известных ошибок. можно вписать строку, скрывающую версию сервера: options directory/etc/namedb; pid-file/var/run/named/pid; dump-file ; statistics-file ; version None of your business; ; Предоставил Murray Stokely. FreeBSD используется в качестве платформы для многих из самых нагруженных серверов в мире. Большинство серверов в интернет используют Apache HTTP сервер. Пакеты Apache должны быть включены в поставку FreeBSD. Если вы не установили их во вместе с системой, воспользуйтесь портами Как только Apache был успешно установлен, его необходимо настроить. Замечание: В этом разделе рассказывается о версии 1.3.X Apache HTTP сервера, поскольку эта версия наиболее широко используется в FreeBSD. Apache 2.X содержит много новых технологий, но здесь они не обсуждаются. За дополнительной информацией о Это обычный текстовый UNIX файл настройки с строками комментариев, начинающимися с символа Исчерпывающее описание всех возможных параметров настройки находится за пределом рассмотрения этой книги, поэтому здесь будут описаны только наиболее часто модифицируемые директивы. Указывает верхний каталог установки Apache по умолчанию. Бинарные файлы находятся в подкаталоги расположены относительно корневого каталога сервера, файлы настройки находятся в Адрес, на который должны будут отправляться сообщения о проблемах с сервером. Этот адрес выводится на некоторые генерируемые сервером страницы, например с сообщениями об ошибках. позволяет вам устанавливать имя хоста, которое отправляется обратно клиентам, если оно отличается от того, с которым настроен хост например, использование вместо реального имени хоста. Каталог, внутри которого будут храниться документы. По умолчанию, все запросы обрабатываются внутри этого каталога, но символические ссылки и синонимы могут использоваться для указания на другие каталоги. Хорошей идеей будет сделать резервные копии настроек Apache перед внесением изменений. Как только вы будете удовлетворены первоначальной настройкой, можно запускать Apache. 23.8.3. Запуск Apache не запускается из inetd, как это делают многие другие сетевые серверы. Он настроен для автономного запуска, чтобы обеспечивать большую производительность при обработке HTTP запросов от браузеров клиентов. Для упрощения запуска, остановки и перезапуска сервера существует shell скрипт. Для запуска Apache в первый раз просто выполните: Вы можете остановить сервер в любой момент, выполнив: После внесения любых изменений в файл настроек, вам потребуется перезапустить сервер: Для перезапуска Apache без прерывания имеющихся соединений, выполните: Дополнительная информация находится на странице справочного руководства apachectl 8. Для запуска Apache при старте системы, добавьте в дополнительные параметры командной при загрузке системы, они могут быть помещены в дополнительную строку Теперь, когда веб сервер запущен, вы можете просмотреть свой веб сайт, задав в строке браузера адрес По умолчанию отображается веб страница Apache поддерживает два различных типа виртуального хостинга Virtual Hosting. Первый метод основан на именах Name-based Virtual Hosting. Он использует полученные от клиента заголовки HTTP/1.1 для определения имени хоста. Это позволяет многим различным доменам использовать один и тот же IP адрес. Замените адреса и пути к документам на те, что вы будете использовать. За дополнительной информацией по настройке виртуальных хостов обращайтесь к официальной документации Apache : /docs/vhosts/. Существуют множество различных модулей Apache, которые добавляют функциональность к основному серверу. Коллекция портов FreeBSD предоставляет простой способ установки Apache с некоторыми наиболее популярными дополнительными модулями. Модуль modssl использует библиотеку OpenSSL для сильной криптографии через протоколы Secure Sockets Layer SSL v2/v3 и Transport Layer Security TLS v1. Этот модуль содержит все необходимое для запроса подписанного сертификата из центра сертификации для защищенного веб сервера на FreeBSD. Если вы еще не установили Apache, версия Apache 1.3.X с modssl может быть установлена через порт Поддержка SSL также доступна для где она включена по умолчанию. Проект интеграции Apache/Perl объединяет мощь языка программирования Perl и HTTP сервера Apache. С модулем Apache полностью на Perl. Кроме того, постоянно запущенный встроенный в сервер интерпретатор позволяет не тратить ресурсы на запуск внешнего интерпретатора и время на запуск Perl. Если вы еще не установили Apache, его версия с модулем Написал Tom Rhodes. В последние несколько лет все большее количество компаний выходит в интернет, стараясь повысить свою узнаваемость и получить больший доход. Это увеличивает потребность в интерактивном веб контенте. В то время, как некоторые компании, такие как Microsoft, представили свои решения в проприетарных продуктах, сообщество открытых исходных текстов ответило на вызов. Один из таких ответов, это широко используемый PHP PHP, также известный как Hypertext Preprocessor, это скриптовый язык общего назначения, в основном предназначенный для веб разработки. Этот язык может быть встроен в HTML его синтаксис заимствован из C, Java и Perl, и он позволяет веб разработчикам быстро писать динамически генерируемые страницы. Этот порт устанавливает и настраивает модули, необходимые для поддержки динамических веб страниц. Убедитесь, что в файл LoadModule php5module AddModule modphp5.c IfModule modphp5.c DirectoryIndex /IfModule IfModule modphp5.c AddType AddType /IfModule в FreeBSD построена по модульному принципу. Если требуется поддержка какого-либо расширения, администратор должен лишь установить соответствующий порт и перезапустить Apache, как показано выше. Например, для добавления поддержки MySQL к PHP Предоставил Murray Stokely. Samba это популярный пакет программ с открытыми исходными текстами, которая предоставляет файловые и принт-сервисы Microsoft Windows клиентам. Эти клиенты могут подключаться и использовать файловое пространство FreeBSD, как если бы это был локальный диск, или принтеры FreeBSD, как если бы это были локальные принтеры. Пакет Samba должен быть включен в поставку FreeBSD. Если вы не установили Samba при первой установке системы, ее можно установить из порта или пакета Этот файл необходимо скопировать в и отредактировать перед использованием Samba. находится информация, необходимая для работы Samba, например определение принтеров и общих каталогов, которые будут использоваться совместно с Windows клиентами. В пакет Samba входит программа с веб интерфейсом, называемая swat, которая дает простой способ редактирования файла Программа веб администрирования Samba Samba Web Administration Tool, SWAT запускается как даемон из inetd. Следовательно, в необходимо снять комментарий перед тем, как использовать swat для настройки Как описано в Прим. 23-1, после изменения настроек inetd необходимо отправить HangUP сигнал. вы можете использовать браузер для подключения к http://localhost:901. Сначала необходимо зарегистрироваться с системной учетной записью После успешного входа на основную страницу настройки Samba, вы можете просмотреть документацию или начать настройку, нажав на кнопку Globals. Раздел Globals соответствует переменным, установленным в разделе Независимо от того, используете ли вы swat, или редактируете непосредственно, первые директивы, которые вы скорее всего встретите при настройке Имя домена или рабочей группы NT для компьютеров, которые будут получать доступ к этому серверу. Устанавливает имя NetBIOS, под которым будет работать Samba сервер. По умолчанию оно устанавливается равным первому компоненту DNS имени хоста. Устанавливает строку, которая будет показана командой и некоторыми другими сетевыми инструментами, которые отображают строку описания сервера. отвечают за выбор модели безопасности и за формат паролей для клиентов. Эти параметры контролируются следующими директивами: Если имена пользователей для клиентов совпадают с их именами на компьютере FreeBSD, вы возможно захотите включить безопасность уровня пользователя user. Это политика безопасности по умолчанию, она требует, чтобы клиент авторизовался перед доступом к совместно используемым ресурсам. На уровне безопасности share клиенту не требуется входить на сервер перед подключением к ресурсу. Эта модель безопасности использовалась по умолчанию в старых версиях Samba поддерживает несколько различных подсистем аутентификации. Вы можете аутентифицировать клиентов с помощью LDAP, NIS, базы данных SQL, или через модифицированный файл паролей. Метод аутентификации по умолчанию и здесь рассматривается только он. Предполагая, что используется подсистема по умолчанию необходимо создать файл Samba могла аутентифицировать клиентов. Если вы хотите разрешить всем учетным записям UNIX доступ с Windows клиентов, используйте следующую команду: Обратитесь к документации на Samba за дополнительной информацией о параметрах настройки. Основные настройки, рассмотренные здесь, достаточны для первого запуска Samba. 23.9.3. Запуск Для запуска Samba при загрузке системы, добавьте в Затем вы можете запустить Samba в любой момент, набрав: Starting SAMBA: removing stale tdbs: Starting nmbd. Starting smbd. Samba состоит из трех отдельных даемонов. Вы можете видеть, что nmbd и smbd запускаются скриптом Если вы включили сервис разрешения имен winbind в то увидите также запуск даемона Вы можете остановить Samba в любой момент, набрав: Samba это сложный программный набор с функциональностью, позволяющей полную интеграцию в сети Microsoft Windows. За дальнейшей информацией о функциях, выходящих за рамки описанной здесь базовой установки, обращайтесь к Предоставил Murray Stokely. Протокол передачи файлов File Transfer Protocol, FTP дает пользователям простой путь передачи файлов на и с FTP сервера. В FreeBSD серверная программа FTP ftpd, включена в базовую систему. Это упрощает настройку и администрирование FTP Наиболее важный шаг заключается в определении того, каким учетным записям будет позволено получать доступ к FTP серверу. В обычной системе FreeBSD есть множество системных учетных записей, используемых различными даемонами, но пользователям должно быть запрещен вход с использованием этих учетных записей. В файле находится список пользователей, которым запрещен доступ по FTP. По умолчанию он включает упомянутые системные учетные записи, но в него можно добавить и определенных пользователей, которым будет запрещен доступ по FTP. Вам может понадобиться ограничить доступ определенных пользователей без полного запрета использования FTP. Это можно сделать через файл В нем находится список пользователей и групп, к которым применяется ограничение доступа. На странице справочника ftpchroot 5 дана подробная информация, и она не будет дублироваться здесь. Если вы захотите разрешить анонимный FTP доступ на сервер, в системе FreeBSD необходимо создать пользователя Этот пользователь сможет входить на FTP сервер с именем пользователя с любым паролем существует соглашение об использовании почтового адреса пользователя в качестве пароля. FTP сервер выполнит chroot 2 при входе пользователя anonymous для ограничения доступа только домашним каталогом пользователя Существуют два текстовых файла, определяющих сообщение, отправляемое FTP клиентам. Содержимое файла будет выведено пользователям перед приглашением на вход. После успешного входа будет выведено содержимое файла Обратите внимание, что путь к этому файлу задается относительно домашнего каталога пользователя, так что анонимным пользователям будет отправляться Как только FTP сервер был правильно настроен, он должен быть включен в Все, что необходимо, это удалить символ комментария из начала существующей строки ftpd : Как описано в Прим. 23-1, сигнал HangUP должен быть отправлен inetd после того, как этот файл настройки был изменен. Теперь вы можете войти на FTP сервер, введя: Для протоколирования даемон ftpd использует сообщения syslog 3. По умолчанию, syslog 3 поместит сообщения, относящиеся к FTP, в файл Местоположение лог файла FTP может быть изменено путем изменения следующей строки в файле Учитывайте потенциальные проблемы, возникающие с анонимным FTP сервером. В частности, вы должны дважды подумать, прежде чем позволить анонимным пользователям загружать файлы на сервер. Вы можете обнаружить, что FTP сайт стал форумом, на котором происходит обмен нелицензионным коммерческим программным обеспечением или чем-то еще хуже. Если вам необходимо разрешить анонимную выгрузку файлов на FTP, права должны быть настроены таким образом, чтобы эти файлы не могли прочитать другие анонимные пользователи до их рассмотрения администратором. Текст предоставил Tom Hukins. С течением времени часы компьютера имеют тенденцию отставать. Network Time Protocol - Сетевой Протокол Времени NTP является одним из способов вести точное время. Многие сервисы Интернет опираются или сильно зависят от точности часов компьютеров. К примеру, веб-сервер может получать запрос на посылку файла, который был недавно модифицирован. В локальной сети необходимо, чтобы часы компьютеров, совместно использующих файлы, были синхронизированы, чтобы время модификации файлов устанавливалось правильно. Такие службы, как cron 8, также зависят от правильности установки системных часов, поскольку запускают команды в определенное время. ntpd 8, который можно использовать для опроса других серверов NTP для установки часов на вашей машине или предоставления услуг точного времени. Для синхронизации ваших часов вам нужно найти для использования один или большее количество серверов NTP. Ваш сетевой администратор или провайдер могут иметь сервер NTP для этой цели-обратитесь к ним, так ли это в вашем случае. Существует онлайн список общедоступных серверов NTP, которым можно воспользоваться для поиска ближайшего к вам сервера NTP. Не забудьте выяснить политику выбранного вами сервера и спросить разрешения, если это требуется. Выбор нескольких несвязанных серверов NTP является хорошей идеей в том случае, если один из используемых вами серверов станет недоступным или его часы неточны. ntpd 8 использует ответы, которые он получает от других серверов с умом-он делает предпочтение надежным серверам. Если вам нужно только синхронизировать ваши часы при загрузке машины, вы можете воспользоваться утилитой ntpdate 8. Это может подойти для некоторых настольных машин, которые часто перезагружаются и только требуют изредка синхронизироваться, но на большинстве машин должен работать ntpd 8. Использование ntpdate 8 при загрузке также хорошо для машин, на которых запущен даемон ntpd 8. Программа ntpd 8 изменяет время постепенно, тогда как ntpdate 8 устанавливает время вне зависимости от того, насколько велика разница между текущим временем машины и точным временем. Для включения ntpdate 8 во время загрузки, добавьте строчку Вам также потребуется указать все серверы, с которыми вы хотите синхронизироваться, и все параметры, которые передаются в ntpdate 8, в формат которого описан в 5. Вот простой пример: задает, какие серверы будут использоваться, по одному в каждой строке. Если сервер задан с аргументом то этому серверу отдается предпочтение перед остальными. Ответ от предпочтительного сервера будет отброшен, если он значительно отличается от ответов других серверов, в противном случае он будет использоваться безотносительно к другим ответам. Аргумент обычно используется для серверов NTP, о которых известно, что они очень точны, такими, на которых используется специальное оборудование точного времени. задает файл, который используется для хранения смещения частоты системных часов. Программа ntpd 8 использует его для автоматической компенсации естественного смещения часов, позволяя ему поддерживать достаточно правильную настройку, даже если он на некоторый период отключается от внешнего источника информации о времени. задает, какой файл используется для сохранения информации о предыдущих ответах от серверов NTP, которые вы используете. Этот файл содержит внутреннюю информацию для NTP. Он не должен изменяться никакими другими процессами. По умолчанию ваш сервер NTP будет доступен всем хостам в Интернет. Параметр позволяет вам контролировать, какие машины могут обращаться к вашему серверу. Если вы хотите запретить всем машинам обращаться к вашему серверу NTP, добавьте следующую строку в файл Если вы хотите разрешить синхронизировать свои часы с вашим сервером только машинам в вашей сети, но запретить им настраивать сервер или быть равноправными участниками синхронизации времени, то вместо указанной добавьте строчку restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap является адресом IP вашей сети, а Для получения подробной информации обратитесь к подразделу Для того, чтобы сервер NTP запускался при загрузке, добавьте строку Если вы хотите передать дополнительные опции в ntpd 8, то отредактируйте параметр Для запуска сервера без перезагрузки вашей машины, выполните команду не забыв задать дополнительные параметры из переменной Замечание: Во FreeBSD 4.X вам необходимо заменить каждую строчку Для нормальной работы программе ntpd 8 не требуется постоянное подключение к Интернет. Однако если ваше временное подключение к Интернет настроено для дозвона по требованию, хорошо бы запретить трафику NTP вызывать дозвон или поддерживать соединение постоянно. Если вы используете пользовательский PPP, то можете воспользоваться директивами Замечание: Некоторые провайдеры Интернет блокируют трафик по портам с маленькими номерами, что приводит к неработоспособности NTP, так как ответы никогда не достигают вашей машины. Предоставил Joseph J. Barbish. Преобразовал в SGML и обновил Brad Davis. Межсетевые экраны firewall, брандмауэр делают возможной фильтрацию входящего и исходящего трафика, идущего через систему. Межсетевой экран использует один или более наборов правил для проверки сетевых пакетов при их входе или выходе через сетевое соединение, он или позволяет прохождение трафика или блокирует его. Правила межсетевого экрана могут проверять одну или более характеристик пакетов, включая но не ограничиваясь типом протокола, адресом хоста источника или назначения и портом источника или назначения. Межсетевые экраны могут серьезно повысить уровень безопасности хоста или сети. Они могут быть использованы для выполнения одной или более нижеперечисленных задач: Для защиты и изоляции приложений, сервисов и машин во внутренней сети от нежелательного трафика, приходящего из внешней сети интернет. Для ограничения или запрещения доступа хостов внутренней сети к сервисам внешней сети интернет. Для поддержки преобразования сетевых адресов network address translation, NAT что позволяет использование во внутренней сети приватных IP адрес, либо через адрес из пула автоматически присваиваемых публичных адресов. Как правильно задать правила фильтрации пакетов. Разницу между межсетевыми экранами, встроенными в FreeBSD Как использовать и настраивать IPFILTER. Как использовать и настраивать IPFW. Ознакомиться с основами FreeBSD и интернет. Существует два основных способа создания наборов правил межсетевого экрана: включающий и исключающий. Исключающий межсетевой экран позволяет прохождение всего трафика, за исключением трафика, соответствующего набору правил. Включающий межсетевой экран действует прямо противоположным образом. Он пропускает только трафик, соответствующий правилам и блокирует все остальное. Включающие межсетевые экраны обычно более безопасны, чем исключающие, поскольку они существенно уменьшают риск пропуска межсетевым экраном нежелательного трафика. Безопасность может быть дополнительно повышена с использованием межсетевого экрана с сохранением состояния. Такой межсетевой экран сохраняет информацию об открытых соединениях и разрешает только трафик через открытые соединения или открытие новых соединений. Недостаток межсетевого экрана с сохранением состояния в том, что он может быть уязвим для атак DoS Denial of Service, отказ в обслуживании, если множество новых соединений открывается очень быстро. Большинство межсетевых экранов позволяют комбинировать поведение с сохранением состояния и без сохранения состояния, что оптимально для реальных применений. В FreeBSD встроено три программных межсетевых экрана. Это IPFILTER известный также как IPF, IPFIREWALL известный также как IPFW и PF OpenBSD PacketFilter. В IPFIREWALL встроена поддержка ограничителя трафика DUMMYNET для контроля использования пропускной способности. В IPFILTER поддержка ограничителя трафика не встроена, но в тех же целях может использоваться ALTQ. IPF, IPFW и PF для контроля исходящих и входящих пакетов используют наборы правил, хотя и разными способами с разным синтаксисом правил. поставляемый в составе базовой системы, является устаревшим, сложным, и не использует правила с сохранением состояния на интерфейсах, выходящих во внешнюю сеть интернет. В нем используются правила без сохранения состояния, способные только открывать или закрывать порты сервисов. Приводимый здесь пример набора правил IPFW с сохранением состояния расширяет набор из файла Правила с сохранением состояния лучше подходят для анализа пакетов с целью защиты от переполнения в результате различных атак, применяемых в в настоящее время. Автор предпочитает IPFILTER, поскольку его правила с сохранением состояния гораздо проще использовать совместно с NAT кроме того, в него встроен ftp прокси, упрощающий настройку безопасного внешнего использования FTP. Он также гораздо проще в освоении для пользователя, не имеющего опыта настройки межсетевых экранов. Поскольку все межсетевые экраны основаны на анализе значений выбранных полей заголовка пакета, для создания правил межсетевого экрана необходимо понимание принципов TCP IP, того, что означают различные поля заголовка пакета, и как эти поля используются в обычной сессии. Хорошим примером является: В июле 2003 программный межсетевой экран OpenBSD, известный как PF был портирован в FreeBSD и стал доступен из коллекции портов FreeBSD; первым релизом, где PF был интегрирован в основную систему, стала FreeBSD 5.3 в ноябре 2004. PF это полноценный межсетевой экран с широким набором возможностей, в котором есть опциональная поддержка ALTQ позволяющее гарантировать пропускную способность для различных сервисов на основе фильтрующих правил. Проект OpenBSD поддерживает Руководство Пользователя PF, которое не было внесено в этот раздел руководства во избежание дублирования работы. PF недоступен для релизов FreeBSD более старых, чем релизы из ветви PF доступен как часть KAME. Эти релизы предназначались для разработчиков и тех, кто желал ознакомиться с ранними версиями Настоятельно рекомендуется обновление до 5.3-RELEASE или более свежих версий FreeBSD. 5.3-RELEASE и более свежие версии PF стал частью основной системы. на этих версиях FreeBSD. Он не будет работать. Вместо этого воспользуйтесь поддержкой pf 4 в базовой системе. Внимание: PF в FreeBSD 5.X соответствует OpenBSD версии 3.5. Порт из коллекции портов FreeBSD соответствует OpenBSD версии 3.4. Имейте это ввиду при просмотре руководства пользователя. PF включен в базовую поставку FreeBSD версии 5.3 и выше в качестве отдельного загружаемого модуля. PF динамически подгружает модуль ядра если включена переменная Включение PF путем компиляции с ядром FreeBSD не является обязательным требованием, и описано здесь в качестве дополнительной информации. При компиляции PF с ядром загружаемый модуль не используется. для FreeBSD 4.X и показан здесь: включает поддержку межсетевого экрана Packet Filter. включает необязательное сетевое псевдоустройство pflog 4, которое может использоваться для протоколирования трафика через bpf 4. Даемон pflogd 8 может использоваться для сохранения протоколируемой информации на диск. включает необязательное сетевое псевдоустройство pfsync 4, используемое для отслеживания изменений состояния. Поскольку оно не входит в загружаемый модуль, для его использования необходимо собрать собственное ядро. Эти настройки будут действовать только после сборки и установки нового ядра. Если за межсетевым экраном находится локальная сеть и необходимо передавать пакеты для компьютеров этой сети, или использовать NAT, включите также следующий параметр: 24.4.4. Включение ALTQ может быть включен только путем компилирования ядра FreeBSD с соответствующими параметрами. ALTQ поддерживается не всеми существующими драйверами сетевых карт. Для просмотра списка поддерживаемых устройств в вашем релизе FreeBSD обратитесь к странице справочника altq 4. Следующие параметры включат ALTQ и добавят дополнительную функциональность. позволяет распределять пропускную способность соединений по классам или очередям для выставления приоритетов трафика на основе правил фильтрации. используется для предотвращения перегрузки сети. RED вычисляет длину очереди и сравнивает ее с минимальной и максимальной границей очереди. Если очередь превышает максимум, все новые пакеты отбрасываются. В соответствии со своим названием, RED отбрасывает пакеты из различные соединений в произвольном порядке. включает Random Early Detection In and Out. включает Hierarchical Fair Service Curve Packet Scheduler. Дополнительная информация о HFSC всегда пропускает трафик из более высокой очереди первым. Эта опция необходима для SMP Внимание: Перевод раздела не завершен. Автором IPFILTER является Darren Reed. IPFILTER не зависит от операционной системы: это приложение с открытыми исходными текстами, которое было портировано на операционные системы FreeBSD, NetBSD, OpenBSD, SunOS, HP/UX, и Solaris. IPFILTER активно разрабатывается и поддерживается, регулярно выпускаются обновленные версии. IPFILTER основан на межсетевом экране уровня ядра, механизм NAT может управляться и контролироваться через пользовательский интерфейс. Правила межсетевого экрана могут устанавливаться или удаляться утилитой ipf 8. Правила NAT могут устанавливаться или удаляться утилитой ipnat 1. Утилита ipfstat 8 выводит статистику IPFILTER для ядра. Программа ipmon 8 заносит действия IPFILTER в файлы системных протоколов. IPF был первоначально написан с использованием правила последнее совпадение применяется и только с правилами без сохранения состояния. Со временем IPF был расширен и включает параметры quick и keep state сохранение состояния, которые кардинальным образом изменяют обработку пакетов. Официальная документация IPF включает традиционные параметры правил с традиционной последовательностью обработки пакетов. Измененные функции включены в виде дополнительных параметров, они необходимы для создания эффективного межсетевого экрана. Инструкции этого раздела подразумевают использование параметра quick и параметра сохранения состояния keep state. Это основа для создания включающего межсетевого экрана. IPF включен в базовую систему FreeBSD в качестве отдельного загружаемого модуля. Система динамически загрузит модуль IPF, если в указана переменная Модуль создается с включенным протоколированием и правилом по умолчанию пропускать все. Для изменения правила по умолчанию не обязательно собирать ядро с новыми параметрами. Просто добавьте в конец набора правило, блокирующее все пакеты. Сборка ядра с FreeBSD включением IPF не обязательна. Эта процедура представлена здесь в качестве дополнительной информации. При включении IPF в ядро загружаемый модуль не используется. для FreeBSD 4.X и воспроизведен здесь: включает поддержку межсетевого экрана IPFILTER. для каждого правила, содержащего ключевое слово изменяет поведение по умолчанию так, что блокируется каждый пакет, не соответствующий правилу Эти настройки будут работать только после сборки и установки нового ядра. ipfilterenableYES Запуск межсетевого экрана ipf Загрузка файла с правилами ipmonenableYES Включение протоколирования IP monitor ipmonflags-Ds D запуск в виде даемона s протоколирование в syslog v протоколирование tcp window, ack, seq n отображение имен IP и портов Если за межсетевым экраном находится локальная сеть, использующая приватные IP адреса, для включения NAT Команда ipf используется для загрузки файла с правилами. Обычно создается файл, содержащий подготовленный набор правил, который полностью замещает набор, используемый на данный момент: означает сброс всех внутренних таблиц правил. указывает файл с правилами, который необходимо загрузить. Таким образом, после внесения изменений в файл правил и запуска вышеприведенной команды IPF, набор правил межсетевого экрана обновляется без перезагрузки системы. Для обновления правил такой подход очень удобен, поскольку команду можно выполнять столько раз, сколько нужно. На странице справочной системы ipf 8 находится подробная информация по флагам этой команды. Набор правил для команды ipf 8 должен быть в виде стандартного текстового файла. Правила, написанные в виде скрипта с символами подстановки, не принимаются. Есть способ составления правил IPF, использующих символы подстановки. Обратитесь к Разд. 24.5.9. По умолчанию ipfstat 8 получает и отображает суммарную статистику, полученную в результате применения действующих правил к пакетам, проходящим через межсетевой экран с момента его последнего запуска, или с того момента, когда статистика была последний раз обнулена командой Детальная информация приводится на странице справочника ipfstat 8. соответственно для входящих или или исходящих пакетов, будет получен и отображен список правил, используемых на данный момент. отображает правила, применяемые к входящим пакетам, вместе с номерами этих правил. отображает правила, применяемые к исходящим пакетам, вместе с номерами этих правил. отображает правила, применяемые к входящим пакетам, со счетчиком количества совпадений для каждого правила. отображает правила, применяемые к исходящим пакетам, со счетчиком количества совпадений для каждого правила. правила отображаются подобно тому, как top 1 показывает таблицу запущенных процессов FreeBSD. Когда межсетевой экран подвергается атаке, эта функция позволяет обнаружить соответствующие пакеты. Дополнительные флаги дают возможность выбирать IP адрес назначения или источника, порт или протокол, которые будут отслеживаться в реальном времени. Подробная информация приведена на странице ipfstat 8. Для того, чтобы стало возможно использование команды необходимо включить параметр ядра IPFILTERLOG. Эта команда может использоваться в двух различных режимах. В основном режиме, который используется по умолчанию, она используется без флага В режиме даемона создается непрерывный протокол, и возможен просмотр предыдущих событий. В этом режиме IPFILTER работает в FreeBSD. Поскольку в FreeBSD встроена функция ротации файлов протокола, лучше использовать syslogd, чем используемый по умолчанию вывод в обычный файл. В Описывать преимущества протоколирования излишне. Например, оно дает возможность просмотра информации о отброшенных пакетах, откуда они пришли и куда направлялись. Это дает определенные возможности отслеживания атак. Даже с включенным протоколированием, IPF не ведет протокол для каждого правила. Администратор межсетевого экран должен решить, по каким правилам набора нужно вести протокол и добавить ключевое слово log к этим правилам. Обычно протоколируются только правила, отбрасывающие пакеты. Довольно часто правило по умолчанию, запрещающее прохождение пакетов, включается в набор последним, и для него применяется ключевое слово log. Так вы можете увидеть все пакеты, не попадающие ни под одно правило набора. Для сбора данных Syslogd использует свой собственный специальный метод. Он использует группировку по категории facility и уровню level. IPMON в режиме в качестве имени категории. Все протоколируемые IPMON данные отправляются на Для сбора протоколируемых данных могут быть использованы следующие уровни: LOGINFO - packets logged using the log keyword as the action rather than pass or block. LOGNOTICE - packets logged which are also passed LOGWARNING - packets logged which are also blocked LOGERR - packets which have been logged and which can be considered short создайте этот файл следующей командой: позволяет достаточно гибко настроить обработку системных сообщений, выдаваемых программами, такими как IPF. local0. означает запись всех протоколируемых сообщений в указанный файл. для ротации только что созданного лог файла. Сообщения, генерируемые состоят из полей данных, разделенных пробелами. Поля, общие для всех сообщений: Время получения пакета. Формат времени HH:MM:SS.F для часов, минут, секунд и долей секунд последнее поле может состоять из нескольких цифр. Имя интерфейса, через который прошел пакет, например Группа и номер правила, например Действие: p для пропущенных, b для заблокированных, S для пакетов с неполным заголовком short packet, n для пакетов, не соответствующих какому-либо правилу, L для соответствующих правилу протоколирования. Порядок следования по флагам: S, p, b, n, L. Знаки P или B в верхнем регистре означают, что пакет был протоколирован в соответствии с общими настройками, а не каким-то конкретным правилом. Адреса. Всего три поля: адрес и порт источника разделенные запятой, -, адрес и порт назначения. 209.53.17.22, 80 - 198.73.220.17, 1722. с последующим именем или номером протокола, например PR tcp. с последующей длиной заголовка и общей длиной пакета, например len 20 40. пакетов добавляется дополнительное поле, начинающееся с дефиса, за которым следуют буквы, соответствующие установленным флагам. На странице справочника находится список букв и флагов. Для пакетов ICMP, в конце находятся два поля, одно всегда ICMP, а во втором тип ICMP сообщения message и sub-message, например ICMP 3/3 для сообщения port unreachable. Некоторые опытные пользователи IPF создают файл правил, поддерживающий использование символьной подстановки. Основное преимущество использования такого скрипта заключается в возможности изменения значения, присваиваемого символьному имени, в результате чего во всех правилах, содержащих эту символьную подстановку, будет использоваться новое значение. В начале скрипта вы можете поместить часто используемые переменные, а затем использовать их сразу в нескольких правилах. Ниже дан пример такого использования. Синтаксис скрипта совместим с sh, csh, и tcsh. Для присвоения значения символьным переменным знак не используется. Start of IPF rules script oifdc0 name of the outbound interface odns192.0.2.11 ISPs DNS server IP address myip192.0.2.7 my static IP address from ISP kskeep state fksflags S keep state You can choose between building file from this script or running this script as is. Uncomment only one line and comment out another. 1 This can be used for building : cat EOF 2 This can be used to run script as is:/sbin/ipf - Fa - f - EOF Allow out access to my ISPs Domain name server. pass out quick on oif proto tcp from any to odns port 53 fks pass out quick on oif proto udp from any to odns port 53 ks Allow out non-secure standard www function pass out quick on oif proto tcp from myip to any port 80 fks Allow out secure www function https over TLS SSL pass out quick on oif proto tcp from myip to any port 443 fks EOF End of IPF rules script Это все, что требовалось сделать. В данном примере сами правила не важны; важно то, как используется символьная подстановка. Если вышеприведенный пример помещен в файл вы можете перезагрузить набор правил, введя следующую команду: С использованием в правилах символьной подстановки связана одна проблема: IPF не понимает символьную подстановку и не может обработать такой скрипт непосредственно. Уберите комментарий перед строкой, начинающейся с и закомментируйте строку, начинающуюся с как обычно, и запускайте скрипт после каждого его обновления для создания или обновления файла Отключите IPFILTER в стартовых скриптах системы, поместив строку Поместите скрипт, подобный нижеприведенному в каталог У него должно быть однозначно говорящее о его назначении имя, например Права на этот скрипт должны разрешать чтение, запись и выполнение владельцу Теперь, при загрузке системы, правила IPF будут загружены. Набор правил ipf это группа правил, составленных для пропускания или блокирования пакетов на основе их содержимого. Двусторонний обмен пакетами между хостами составляет сессию. Межсетевой экран обрабатывает пакеты в обеих направлениях, Каждый IP пакет имеет такие характеристики как порт и адрес источника и назначения. Эти основные характеристики используются для пропускания или блокирования пакетов. IPF был первоначально написан с использованием логики последнее совпадающее правило побеждает и только с правилами без сохранения состояния. Со временем в IPF был включен параметр quick и параметр сохранения состояния keep state, что существенно улучшило логику обработки правил. Инструкции, помещенные в эту главу, созданы с использованием параметров quick и keep state. Это основа для создания набора правил включающего межсетевого экрана. Внимание: При работе с правилами межсетевого экрана, будьте очень осторожны. Некоторые конфигурации могут заблокировать вам доступ к серверу. В целях предосторожности, первоначальную настройку межсетевого экрана вы можете выполнить с локальной консоли, а не через удаленное подключение, такое как Этот раздел не переведен. Перевод на русский язык: Андрей Захватов. Эта глава охватывает множество различных сетевых тематик повышенной сложности. Основные понятия о маршрутизации и маршрутах. Как настроить IEEE 802.11 и Bluetooth. Как заставить FreeBSD работать в качестве сетевого моста. Как настроить загрузку по сети для бездисковой машины. Как настроить трансляцию сетевых адресов. Как соединить два компьютера посредством PLIP. Как настроить IPv6 на машине FreeBSD. Свободно владеть основными сетевыми терминами. Знать как настраивать и устанавливать новое ядро FreeBSD Гл. 8. Знать как устанавливать дополнительное программное обеспечение сторонних разработчиков Гл. 4. Текст предоставил Coranth Gryphon. Чтобы некоторая машина могла найти в сети другую, должен иметься механизм описания того, как добраться от одной машине к другой. Такой механизм называется маршрутизацией. Маршрут задаётся парой адресов: адресом назначения destination и сетевым шлюзом gateway. Эта пара указывает на то, что если Вы пытаетесь соединиться с адресом назначения, то вам нужно устанавливать связь через сетевой шлюз. Существует три типа адресов назначения: отдельные хосты, подсети и маршрут по умолчанию default. Маршрут по умолчанию default route используется, если не подходит ни один из других маршрутов. Мы поговорим немного подробнее о маршрутах по умолчанию позже. Также имеется и три типа сетевых шлюзов: отдельные хосты, интерфейсы также называемые подключениями links и аппаратные адреса Ethernet MAC-адреса. который указан в этой таблице маршрутов для использования с имеет также второе название, устройство loopback. Это значит сохранение всего трафика для указанного адреса назначения внутри, без посылки его по сети, так как он все равно будет направлен туда, где был создан. Следующими выделяющимися адресами являются адреса, начинающиеся с Это аппаратные адреса Ethernet, или MAC-адреса. FreeBSD будет автоматически распознавать любой хост в нашем примере это в локальной сети Ethernet и добавит маршрут для этого хоста, указывающий непосредственно на интерфейс Ethernet, С этим типом маршрута также связан параметр таймаута колонка используемый в случае неудачной попытки услышать этот хост в течении некоторого периода времени. Если такое происходит, то маршрут до этого хоста будет автоматически удалён. Такие хосты поддерживаются при помощи механизма, известного как RIP Routing Information Protocol, который вычисляет маршруты к хостам локальной сети при помощи определения кратчайшего расстояния. является именем домена, связанным с этой подсетью. Назначение соответствует первому адаптеру Ethernet в машине. Отметьте отсутствие дополнительного интерфейса для этих строк. В обеих этих группах хосты и подсети локальной сети маршруты конфигурируются автоматически даемоном, который называется routed. Если он не запущен, то будут существовать только статически заданные то есть введенные явно маршруты. относится к нашему хосту, который известен по адресу Ethernet. Так как мы являемся посылающим хостом, FreeBSD знает, что нужно использовать loopback-интерфейс вместо того, чтобы осуществлять посылку в интерфейс Ethernet. являются примером того, что происходит при использовании алиасов в команде ifconfig 8 обратитесь к разделу об Ethernet для объяснения того, почему мы это делаем. Символ указывает на то, что мы используем не просто интерфейс loopback так как это адрес, обозначающий локальный хост, но к тому же это алиас. Такие маршруты появляются только на хосте, поддерживающем алиасы; для всех остальных хостов в локальной сети для таких маршрутов будут показаны просто строчки имеет отношение к многоадресной посылке, которая будет рассмотрена в другом разделе. И наконец, различные атрибуты каждого маршрута перечисляются в колонке Ниже приводится краткая таблица некоторых из этих флагов и их значений: Host: Адресом назначения является отдельный хост. Gateway: Посылать все для этого адреса назначения на указанную удаленную систему, которая будет сама определять дальнейший путь прохождения информации. Static: Маршрут был настроен вручную, а не автоматически сгенерирован системой. Clone: Новый маршрут сгенерирован на основе указанного для машин, к которым мы подключены. Такой тип маршрута обычно используется для локальных сетей. WasCloned: Указывает на то, что маршрут был автоматически сконфигурирован на основе маршрута в локальной сети Clone. Link: Маршрут включает ссылку на аппаратный адрес Ethernet. Когда локальной системе нужно установить соединение с удаленным хостом, она обращается к таблице маршрутов для того, чтобы определить, существует ли такой маршрут. Если удаленный хост попадает в подсеть, для которой известен способ ее достижения маршруты типа Cloned, то система определяет возможность подключиться к ней по этому интерфейсу. Если все известные маршруты не подходят, у системы имеется последняя возможность: маршрут default. Это маршрут с особым типом сетевого шлюза обычно единственным, присутствующим в системе, и в поле флагов он всегда помечен как Для хостов в локальной сети этот сетевой шлюз указывает на машину, имеющую прямое подключение к внешнему миру неважно, используется ли связь по протоколу PPP, канал DSL, кабельный модем, T1 или какой-то другой сетевой интерфейс. Если вы настраиваете маршрут по умолчанию на машине, которая сама является сетевым шлюзом во внешний мир, то маршрутом по умолчанию будет являться сетевой шлюз у Вашего провайдера Интернет ISP. Давайте взглянем на примеры маршрутов по умолчанию. Вот типичная конфигурация: подключён к ISP через коммутируемое соединение по протоколу PPP. Этот компьютер с сервером PPP подключён посредством локальной сети к другому шлюзовому компьютеру через внешний интерфейс самого ISP к Интернет. а не сервер провайдера, к которому подключаемся?. Запомните, что из-за использования PPP-интерфейсом адреса в сети провайдера Интернет с вашей стороны соединения, маршруты для всех других машин в локальной сети провайдера будут сгенерированы автоматически. Таким образом, вы уже будете знать, как достичь машины так что нет нужды в промежуточной точке при посылке трафика к серверу ISP. часто используется в качестве адреса сетевого шлюза. Тогда при использовании того же самого примера если пространство адресов класса C вашей локальной сети было задано как а ваш провайдер использует то маршруты по умолчанию будут такие: В нашем примере на машине route add default 10.20.30.1 Для получения дополнительной информации об управлении таблицами маршрутизации обратитесь к справочной странице по команде route 8. Есть еще один тип подключения, который мы должны рассмотреть, и это случай, когда хост находится в двух различных сетях. Технически, любая машина, работающая как сетевой шлюз в примере выше использовалось PPP-соединение, считается хостом с двойным подключением. Однако этот термин реально используется для описания машины, находящейся в двух локальных сетях. В одном случае у машины имеется два адаптера Ethernet, каждый имеющий адрес в разделенных подсетях. Как альтернативу можно рассмотреть вариант с одним Ethernet-адаптером и использованием алиасов в команде ifconfig 8. В первом случае используются два физически разделённые сети Ethernet, в последнем имеется один физический сегмент сети, но две логически разделённые подсети. В любом случае таблицы маршрутизации настраиваются так, что для каждой подсети эта машина определена как шлюз входной маршрут в другую подсеть. Такая конфигурация, при которой машина выступает в роли маршрутизатора между двумя подсетями, часто используется, если нужно реализовать систему безопасности на основе фильтрации пакетов или функций брандмауэра в одном или обоих направлениях. Если вы хотите, чтобы эта машина действительно перемещала пакеты между двумя интерфейсами, то вам нужно указать FreeBSD на включение этой функции. Обратитесь к следующей главе, чтобы узнать, как это сделать. Сетевой маршрутизатор является обычной системой, которая пересылает пакеты с одного интерфейса на другой. Стандарты Интернет и хорошая инженерная практика не позволяют Проекту FreeBSD включать эту функцию по умолчанию во FreeBSD. Вы можете включить эту возможность, изменив значение следующей переменной в Если вам временно нужно выключить маршрутизацию, вы можете на время сбросить это значение в Вашему новому маршрутизатору нужна информация о маршрутах для того, чтобы знать, куда пересылать трафик. Если ваша сеть достаточно проста, то вы можете использовать статические маршруты. С FreeBSD также поставляется стандартный даемон BSD для маршрутизации routed 8, который умеет работать с RIP как версии 1, так и версии 2 и IRDP. Поддержка BGP v4, OSPF v2 и других сложных протоколов маршрутизации имеется в пакете Также существуют и коммерческие продукты, применяемые как более комплексное решение проблемы маршрутизации в сети, такие как Предоставил Al Hoang. Предположим, что у нас есть следующая сеть: это наш компьютер с FreeBSD, который выступает в качестве маршрутизатора в сеть Интернет. Его маршрут по умолчанию настроен на что позволяет ему соединяться с внешним миром. Мы будем предполагать, что уже правильно настроен и знает все необходимые маршруты на этом рисунке все просто; добавьте на маршрут по умолчанию, используя то увидим примерно следующее: не сможет достичь внутренней сети 2 Internal Net 2. Один из способов обхода этой проблемы - - добавление маршрута вручную. Следующая команда добавляет внутреннюю сеть 2 к таблице маршрутизации route add - net 192.168.2.0/24 192.168.1.2 Предыдущий пример прекрасно подходит для настройки статического маршрута в работающей системе. Однако, проблема заключается в том, что маршрутная информация не сохранится после перезагрузки FreeBSD. Способ сохранения добавленного маршрута заключается в добавлении его в файл Добавление статического маршрута в Internal Net 2 staticroutesinternalnet2 routeinternalnet2-net 192.168.2.0/24 192.168.1.2 находятся строки, разделенные пробелами. Каждая строка означает имя маршрута. В примере выше в есть только одна строка, это Затем мы добавили переменную куда помещены все параметры, которые необходимо передать команде route 8. В примере выше была использована команда: route add - net 192.168.2.0/24 192.168.1.2 Как было сказано выше, мы можем добавить в более чем одну строку. Это позволит создать несколько статических маршрутов. В следующем примере показано добавление маршрутов для сетей staticroutesnet1 net2 routenet1-net 192.168.0.0/24 192.168.0.1 routenet2-net 192.168.1.0/24 192.168.1.1 Мы уже говорили о том, как мы задаем наши маршруты во внешний мир, но не упоминали о том, как внешний мир находит нас. Мы уже знаем, что таблицы маршрутизации могут быть настроены так, что весь трафик для некоторого диапазона адресов в нашем примере это подсеть класса C может быть направлен заданному хосту в той сети, которая будет перенаправлять входящие пакеты дальше. При получении адресного пространства, выделенного Вашей сети, Ваш провайдер настроит свои таблицы маршрутизации так, что весь трафик для Вашей подсети будет пересылаться по PPP-соединению к Вашей сети. Но как серверы по всей стране узнают, что Ваш трафик нужно посылать Вашему ISP? Существует система подобная распределению информации DNS, которая отслеживает все назначенные пространства адресов и определяет точку подключения к магистрали Интернет. Магистралью называют главные каналы, по которым идет трафик Интернет внутри страны и по всему миру. Каждая магистральная машина имеет копию основного набора таблиц, согласно которой трафик для конкретной сети направляется по конкретному магистральному каналу, и затем, передаваясь по цепочке провайдеров, он достигает вашей сети. Задачей вашего провайдера является объявить на магистрали о том, что он отвечает за подключение и поэтому на него указывает маршрут вашей сети. Этот процесс называется распространением маршрута. Иногда с распространением маршрута возникают проблемы, и некоторые сайты не могут к вам подключиться. Наверное, самой полезной командой для определения точки неверной работы маршрутизации является traceroute 8. Она также полезна и когда вы сами не можете подключиться к удаленной машине то есть команда ping 8 не срабатывает. Команда traceroute 8 запускается с именем удаленного хоста, с которым вы хотите установить соединение, в качестве параметра. Она показывает промежуточные сетевые шлюзы по пути следования, в конце концов достигая адрес назначения или прерывая свою работу из-за отсутствия соединения. За дополнительной информацией обратитесь к странице Справочника по traceroute 8. FreeBSD изначально поддерживает как приложения, работающие с многоадресным трафиком, так и его маршрутизацию. Такие приложения не требуют особой настройки FreeBSD; обычно они работают сразу. Для маршрутизации многоадресного трафика требуется, чтобы поддержка этого была включена в ядро: Кроме того, даемон многоадресной маршрутизации, mrouted 8, должен быть настроен посредством файла Дополнительную информацию о настройки многоадресного трафика можно найти на страницах справочной системы, посвящённых даемону mrouted 8. Текст предоставил Перевёл на русский язык Eric Anderson, Андрей Захватов. Было бы весьма полезным иметь возможность использовать компьютер без хлопот, связанных с постоянно подключенным сетевым кабелем. FreeBSD может использоваться как клиент беспроводной сети, и даже в качестве точки доступа к ней. Существуют два варианта конфигурации устройств беспроводного доступа 802.11: BSS и IBSS. Режим BSS является наиболее часто используемым. Режим BSS также называют режимом инфраструктуры. В этом режиме несколько точек доступа беспроводной сети подключаются к проводной сети передачи данных. Каждое беспроводная сеть имеет собственное имя. Это имя является идентификатором SSID сети. Клиенты беспроводной сети подключаются к этим точкам доступа беспроводной сети. Стандарт IEEE 802.11 определяет протокол, используемый для связи в беспроводных сетях. Клиент сети беспроводного доступа может подключаться к некоторой сети, если задан её SSID. Клиент может также подключаться к любой сети, если SSID не задан. Режим IBSS, также называемый ad-hoc, предназначен для соединений точка-точка. На самом деле существуют два типа режима ad-hoc. Один из них является режимом IBSS, называемый также режимом ad-hoc или IEEE ad-hoc. Этот режим определён стандартами IEEE 802.11. Второй режим называется демонстрационным режимом ad-hoc, или Lucent ad-hoc или, иногда неправильно, режимом ad-hoc. Это старый, существовавший до появления 802.11, режим ad-hoc, и он должен использоваться только для старых сетей. В дальнейшем мы не будем рассматривать ни один из режимов ad-hoc. Точки доступа представляют собой беспроводные сетевые устройства, позволяющие одному или большему количеству клиентов беспроводной сети использовать эти устройства в качестве центрального сетевого концентратора. При использовании точки доступа все клиенты работают через неё. Зачастую используются несколько точек доступа для полного покрытия беспроводной сетью некоторой зоны, такой, как дом, офис или парк. Точки доступа обычно имеют несколько подключений к сети: адаптер беспроводной связи и один или большее количество сетевых ethernet-адаптеров для подключения к остальной части сети. Точки доступа могут быть либо приобретены уже настроенными, либо вы можете создать собственную при помощи FreeBSD и поддерживаемого адаптера беспроводной связи. Несколько производителей выпускают точки беспроводного доступа и адаптеры беспроводной связи с различными возможностями. Для того, чтобы создать беспроводную точку доступа на FreeBSD, вам нужно иметь совместимый адаптер беспроводной связи. На данный момент поддерживаются адаптеры только на основе набора микросхем Prism. Вам также потребуется поддерживаемый FreeBSD адаптер проводной сети найти такой будет нетрудно, FreeBSD поддерживает множество различных устройств. В этом руководстве мы будем полагать, что вы будете строить сетевой мост bridge 4 для пропуска всего трафика между устройством беспроводной связи и сетью, подключенной к обычному Ethernet-адаптеру. Функциональность hostap, которая используется FreeBSD для организации точки доступа, работает лучше всего с некоторыми версиями микрокода. Адаптеры Prism 2 должны использовать микрокод версии 1.3.4 или более новый. Адаптеры Prism 2.5 и Prism 3 должны использовать микрокод версии 1.4.9. Более старые версии микрокода могут работать нормально, а могут и некорректно. В настоящее время единственным способом обновления адаптеров является использование утилит обновления для Windows, которые можно получить у производителя ваших адаптеров. Первым делом убедитесь, что ваша система распознаёт адаптер беспроводной связи: wi0: flags8843 UP, BROADCAST, RUNNING, SIMPLEX, MULTICAST mtu 1500 inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7 inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255 ether 00:09:2d:2d:c9:50 media: IEEE 802.11 Wireless Ethernet autoselect DS/2Mbps status: no carrier ssid stationname FreeBSD Wireless node channel 10 authmode OPEN powersavemode OFF powersavesleep 100 wepmode OFF weptxkey 1 На данном этапе не беспокойтесь о деталях, просто убедитесь, что выдаётся нечто, указывающее на установленный адаптер беспроводной связи. Если при этом у вас есть проблемы с недоступностью интерфейса беспроводной связи, и вы используете PC Card, то обратитесь к страницам справочной системы, описывающим pccardc 8 и pccardd 8 для получения более полной информации. Теперь вам нужно загрузить модуль для подготовки той части FreeBSD, что отвечает за организацию сетевых мостов, для работы с точкой доступа. Для загрузки модуля bridge 4 просто выполните следующую команду: При загрузке модуля никаких сообщений об ошибках быть не должно. Если это всё же произошло, вам может потребоваться вкомпилировать код для модуля bridge 4 в ядро. В этом вам должен помочь раздел этого Руководства об организации сетевых мостов. Теперь, когда вы завершили с той частью, что касается организации сетевого моста, нам нужно указать ядру FreeBSD, какие интерфейсы должны объединяться в сетевом мосте. Это мы делаем при помощи sysctl 8: sysctl wi0, xl0 В версиях FreeBSD, предшествующих 5.2, вместо указанных нужно использовать следующие параметры: sysctl cfgwi0, xl0 Теперь необходимо настроить адаптер беспроводной сети. Следующая команда заставит адаптер работать в режиме точки доступа: конфигурирует его SSID как переводит адаптер в режим 11Mbps и нужен только для того, чтобы сработал параметр переводит интерфейс в режим точки доступа. Параметр задаёт использование канала 802.11b. Страница справки по команде wicontrol 8 перечисляет корректные значения каналов для ваших нужд. Теперь у вас должна получиться полнофункциональная работающая точка доступа. Настоятельно советуем прочесть страницы справочной по wicontrol 8, ifconfig 8, и wi 4 для получения дополнительной информации. Также полагаем, что вы прочтёте следующий раздел о шифровании. После того, как точка доступа сконфигурирована и начала свою работу, операторам может понадобиться видеть клиентов, связанных с этой точкой. В любой момент оператор может набрать: 1 station: 00:09:b7:7b:9d:16 asid04c0, flags3 ASSOC, AUTH, caps1 ESS, ratesf 1M, 2M, 5.5M, 11M, sig38/15 Это показывает, что имеется одна связанная станция с перечисленными характеристиками. Выдаваемое значение сигнала должно использоваться только как сравнительный индикатор его силы. Его перевод в dBm или другие единицы измерения различаются в разных версиях микрокода. Клиент в беспроводной сети представляет собой систему, которая обращается к точке доступа или непосредственно к другому клиенту. Как правило, клиенты беспроводной сети имеют только один сетевой адаптер, а именно адаптер беспроводной сети. Существует несколько различных способов конфигурации клиента беспроводной сети. Они основаны на различных режимах работы в беспроводной сети, обычно BSS режим инфраструктуры, который требует точки доступа или IBSS ad-hoc или режим одноранговой сети. В нашем примере мы будем использовать самый популярный их них, режим BSS, для связи с точкой доступа. Существует только одно жёсткое условие для настройки FreeBSD в качестве клиента беспроводной сети. Вам нужен адаптер беспроводной связи, поддерживаемый FreeBSD. Перед тем, как подключиться к беспроводной сети, вам нужно будет узнать о ней несколько вещей. В этом примере мы подключаемся к сети, которая называется и шифрование в ней отключено. Замечание: В этом примере мы не используем шифрование, но это небезопасно. В следующем разделе вы узнаете, как её включить, почему это так важно, и почему некоторые технологии шифрования всё же не могут полностью обеспечить вашу информационную безопасность. Удостоверьтесь, что ваш адаптер распознаётся во FreeBSD: wi0: flags8843 UP, BROADCAST, RUNNING, SIMPLEX, MULTICAST mtu 1500 inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7 inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255 ether 00:09:2d:2d:c9:50 media: IEEE 802.11 Wireless Ethernet autoselect DS/2Mbps status: no carrier ssid stationname FreeBSD Wireless node channel 10 authmode OPEN powersavemode OFF powersavesleep 100 wepmode OFF weptxkey 1 Теперь мы можем изменить настройки адаптера на те, что соответствуют нашей сети: на правильные IP-адрес и сетевую маску в вашей проводной сети. Запомните, что наша точка доступа выступает в роли моста для данных между беспроводной и проводной сетями, так что они будут доступны для других устройств, находящихся в сети, как будто они тоже находятся в проводной сети. Как только вы это выполнили, то сможете получить ping от хостов в проводной сети, как будто вы подключены посредством обычных проводов. Если вы столкнулись с проблемами при работе в беспроводной сети, удостоверьтесь, что вы ассоциированы подключены с точкой доступа: должна выдать некоторую информацию, и вы должны увидеть: это может значить, что вы оказались вне зоны досягаемости точки доступа, включили шифрование или, возможно, имеются проблемы с конфигурацией. Шифрование в беспроводной сети имеет важное значение, потому что у вас нет больше возможности ограничить сеть хорошо защищённой областью. Данные вашей беспроводной сети вещаются по всей окрестности, так что любой заинтересовавшийся может их считать. Вот здесь используется шифрование. Шифруя данные, посылаемые в эфир, вы делаете их прямой перехват гораздо более сложным для всех любопытных. Двумя наиболее широко применяемыми способами шифрования данных между вашим клиентом и точкой доступа являются WEP и ipsec 4. WEP является сокращением от Wired Equivalency Protocol Протокол Соответствия Проводной сети. WEP является попыткой сделать беспроводные сети такими же надёжными и безопасными, как проводные. К сожалению, он был взломан и сравнительно легко поддаётся вскрытию. Это означает также, что он не тот протокол, на который следует опираться, когда речь идёт о шифровании критически важных данных. Он лучше, чем ничего, так что используйте следующую команду для включения WEP в вашей новой точке доступа FreeBSD: Отметьте, что вы должны заменить на более уникальный ключ. ipsec 4 является гораздо более надёжным и мощным средством шифрования данных в сети. Этот метод определённо является предпочтительным для шифрования данных в беспроводной сети. Более детально ознакомиться с безопасностью и применением ipsec 4 вы можете в разделе об IPsec этого Руководства. Имеется несколько утилит, которые можно использовать для настройки и отладки вашей беспроводной сети, и здесь мы попытаемся описать некоторые из них и что они могут делать. 25.3.3.5.1. Пакет Пакет bsd-airtools представляет собой полный набор инструментов, включая инструменты для проверки беспроводной сети на предмет взлома WEP-ключа, обнаружения точки доступа и тому подобное. Информацию об установке портов можно найти в Главе Гл. 4 этого Руководства. является инструментом, предназначенным для обнаружения точки доступа и выдачи отношения уровня сигнала к шуму. Если у вас с трудом получается запустить точку доступа, Для тестирования информационной безопасности вашей беспроводной сети, вы можете воспользоваться набором dweputils который может помочь понять, является ли WEP подходящим решением для обеспечения ваших потребностей в информационной безопасности. 25.3.3.5.2. Утилиты Это инструменты, которые могут быть использованы для управления поведением адаптера беспроводной связи в сети. В примере выше мы выбирали wicontrol 8, так как нашим адаптером беспроводной сети был интерфейс Если у вас установлено устройство беспроводного доступа от Cisco, этим интерфейсом будет 25.3.3.5.3. Команда Команда ifconfig 8 может использоваться для установки многих из тех параметров, что задаёт wicontrol 8, однако работа с некоторыми параметрами в ней отсутствует. Обратитесь к ifconfig 8 для выяснения параметров и опций командной строки. Единственными адаптерами, которые на данный момент поддерживаются в режиме BSS как точка доступа, являются те устройства, что сделаны на основе набора микросхем Prism 2, 2.5 или 3. Полный список можно увидеть в wi 4. Практически все адаптеры беспроводной связи 802.11b на данный момент во FreeBSD поддерживаются. Большинство адаптеров, построенных на основе Prism, Spectrum24, Hermes, Aironet и Raylink, будут работать в качестве адаптера беспроводной сети в режиме IBSS ad-hoc, одноранговая сеть и BSS. Драйвер устройства ath 4 поддерживает 802.11a и 802.11g. Если ваша карта основана на чипсете Atheros, вы можете использовать этот драйвер. К сожалению, все еще много производителей, не предоставляющих схематику своих драйверов сообществу open source, поскольку эта информация считается торговым секретом. Следовательно, у разработчиков FreeBSD и других операционных систем остается два варианта: разработать драйверы долгим и сложным методом обратного инжиниринга, или использовать существующие драйверы для платформ Microsoft Windows. Большинство разработчиков FreeBSD выбрали второй способ. Благодаря усилиям Билла Пола wpaul, начиная с FreeBSD 5.3-RELEASE существует прозрачная поддержка Network Driver Interface Specification NDIS. FreeBSD NDISulator известный также как Project Evil преобразует бинарный драйвер Windows так, что он работает так же как и в Windows. Эта возможность всё ещё относительно нова, но в большинстве тестов она работает адекватно. Вам может потребоваться компиляция драйвера оболочки мини порта ndis 4. Под Определите местоположение файлов для вашей карты. Обычно их можно найти на входящем в комплект CD или на Web-сайте поставщика. В нашем примере используются файлы Следующий шаг это компиляция бинарного драйвера в загружаемый модуль ядра. Чтобы сделать это, сначала зайдите в каталог модуля задают соответственно файл настройки и бинарный файл. Мы используем параметр при создании модуля будет обращаться именно к этому файлу. Замечание: Некоторым драйверам Windows для работы требуются дополнительные файлы. Вы можете включить их параметром Обратитесь к странице справочной системы ndiscvt 8 за дополнительной информацией. Наконец, соберите и установите модуль драйвера: Первая команда загружает оболочку драйвера мини-порта NDIS, вторая загружает собственно сетевой интерфейс. Проверьте dmesg 8 на предмет ошибок загрузки. Если все прошло хорошо, вывод должен быть примерно таким: ndis0: Wireless-G PCI Adapter mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1 ndis0: NDIS API version: 5.0 ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5 ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps как любое другое беспроводное устройство например, в этой ситуации применима информация, приведенная в начале этой главы. Текст предоставил Pav Lucistnik. Bluetooth является беспроводной технологией для создания персональных сетей на расстоянии не более 10 метров, работающей на частоте 2.4 ГГц, которая не подлежит лицензированию. Обычно такие сети формируются из портативных устройств, таких, как сотовые телефоны, КПК и лэптопы. В отличие от Wi-Fi, другой популярной беспроводной технологии, Bluetooth предоставляет более высокий уровень сервиса, например, файловые серверы типа FTP, передачу файлов, голоса, эмуляцию последовательного порта и другие. Стек протоколов Bluetooth во FreeBSD реализован на основе технологии Netgraph обратитесь к netgraph 4. Широкий спектр USB-устройств Bluetooth поддерживается драйвером ngubt 4. Устройства Bluetooth на основе набора микросхем Broadcom BCM2033 поддерживается драйвером ngbt3c 4. Устройства Bluetooth, работающие через последовательные и UART-порты, поддерживаются драйверами sio 4, ngh4 4 и hcseriald 8. В этом разделе описывается использование Bluetooth-устройств, подключаемых через USB. Поддержка Bluetooth имеется во FreeBSD 5.0 и более новых версиях системы. По умолчанию драйверы устройств Bluetooth поставляются в виде модулей ядра. Перед подключением устройства вам необходимо подгрузить драйвер в ядро: Если Bluetooth-устройство в момент запуска системы подключено, то загружайте модуль из файла Подключите ваше USB-устройство. На консоли или в журнале syslog появится примерно такое сообщение: ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2 ubt0: Interface 0 endpoints: interrupt0x81, bulk-in0x82, bulk-out0x2 ubt0: Interface 1 5 endpoints: isoc-in0x83, isoc-out0x3, wMaxPacketSize49, nframes6, buffer size294 в какое-нибудь подходящее место, например, в файл Этот скрипт используется для запуска и остановки работы Bluetooth-стека. Перед отключением устройства рекомендуется остановить его работы, хотя обычно это не фатально. При запуске стека вы получите сообщения, подобные следующим: BDADDR: 00:02:72:00:d4:1a Features: 0xff 0xff 0xf 00 00 00 00 00 3-Slot 5-Slot Encryption Slot offset Timing accuracy Switch Hold mode Sniff mode Park mode RSSI Channel quality SCO link HV2 packets HV3 packets u-law log A-law log CVSD Paging scheme Power control Transparent SCO data Max. ACL packet size: 192 bytes Number of ACL packets: 8 Max. SCO packet size: 64 bytes Number of SCO packets: 8 Host Controller Interface HCI предоставляет интерфейс для управления контроллером передатчика и менеджером соединений, а также доступ к данным о состоянии оборудования и его управляющим регистрам. Этот интерфейс предоставляет унифицированный метод доступа к передающим возможностям Bluetooth. Уровень HCI на управляющей машине обменивается данными и командами с микрокодом HCI в оборудовании Bluetooth. Драйвер для Host Controller Transport Layer то есть физической шины предоставляет обоим слоям HCI возможность обмениваться данными друг с другом. Для одного Bluetooth-устройства создаётся один узел Netgraph типа hci. HCI-узел обычно подключается к узлу драйвера устройства Bluetooth входящий поток и к узлу L2CAP исходящий поток. Все операции с HCI должны выполняться на узле HCI, но не на узле драйвера устройства. В качестве имени по умолчанию для узла HCI используется devicehci. Дополнительные подробности можно найти на справочной странице nghci 4. Одной из самой часто выполняемой задач является обнаружение Bluetooth-устройств в радиусе RF-доступности. Эта операция называется опросом inquiry. Опрос и другие операции, связанные с HCI, выполняются при помощи утилиты hccontrol 8. Пример ниже показывает, как найти доступные устройства Bluetooth. Список таких устройств должен быть получен в течение нескольких секунд. Заметьте, что удалённые устройства будут отвечать на опрос, если только они находятся в режиме обнаруживаемости discoverable. Inquiry result, numresponses1 Inquiry result 0 BDADDR: 00:80:37:29:19:a4 Page Scan Rep. Mode: 0x1 Page Scan Period Mode: 00 Page Scan Mode: 00 Class: 52:02:04 Clock offset: 0x78ef Inquiry complete. Status: No error 00 является уникальным адресом устройства Bluetooth, вроде MAC-адресов сетевых адаптеров. Этот адрес необходим для дальнейшей работы с устройством. Адресу BDADDR можно присвоить удобное для чтения имя. Файл содержит информацию об известных хостах Bluetooth. В следующем примере показано, как получить имя, назначенное удалённому устройству: Если вы выполните опрос на другом Bluetooth-устройстве, но ваш компьютер будет опознан как ubt0. Имя, назначаемое локальному устройству, может быть в любой момент изменено. Система Bluetooth предоставляет услуги по соединениям типа точка-точка при этом задействованы только два устройства Bluetooth или точка-ко-многим-точкам. В последнем случае соединение используется совместно несколькими устройствам Bluetooth. В следующем примере показывается, как получить список активных для локального устройства соединений: Идентификатор соединения connection handle полезен, когда необходимо прекратить соединение. Заметьте, что обычно нет нужды делать это вручную. Стек будет автоматически разрывать неактивные соединения. для получения полного списка доступных HCI-команд. Большинство команд HCI для выполнения не требуют прав администратора системы. Протокол L2CAP Logical Link Control and Adaptation Protocol предоставляет услуги по работе с данными, как ориентированные на соединения, так и без ориентации на них, протоколам более высокого уровня с возможностями мультиплексирования и обеспечением операций по сегментации и обратной сборке. L2CAP позволяет протоколам более высокого уровня и приложениям передавать и получать пакеты данных L2CAP длиной до 64 Кбайт. каналов. Каналом является логическое соединение поверх соединения по радиоканалу. Каждый канал привязан к некоторому протоколу по принципу многие-к-одному. Несколько каналов могут быть привязаны к одному и тому же протоколу, но канал не может быть привязан к нескольким протоколам. Каждый пакет L2CAP, получаемый каналом, перенаправляется к соответствующему протоколу более высокого уровня. Несколько каналов могут совместно использовать одно и то же радиосоединение. Для одного Bluetooth-устройства создается один узел Netgraph типа l2cap. Узел L2CAP обычно подключается к узлу Bluetooth HCI нижестоящий и узлам Bluetooth-сокетов вышестоящие. По умолчанию для узла L2CAP используется имя devicel2cap. Для получения дополнительной информации обратитесь к справочной странице по ngl2cap 4. Полезной является программа l2ping 8, которая может использоваться для проверки связи с другими устройствами. Некоторые реализации Bluetooth могут не возвращать все данные, посылаемые им, так что в следующем примере - это нормально. 0 bytes from 0:80:37:29:19:a4 seqno0 time48.633 ms result0 0 bytes from 0:80:37:29:19:a4 seqno1 time37.551 ms result0 0 bytes from 0:80:37:29:19:a4 seqno2 time28.324 ms result0 0 bytes from 0:80:37:29:19:a4 seqno3 time46.150 ms result0 Утилита l2control 8 используется для выполнения различных операций с узлами L2CAP. В этом примере показано, как получить список логических соединений каналов и перечень радиосоединений локального устройства: Ещё одним диагностическим инструментом является btsockstat 1. Она выполняет действия, подобные тем, что обычно выполняет netstat 1, но со структурами данных, связанных с работой в сети Bluetooth. В примере ниже описывается то же самое логическое соединение, что и с l2control 8 выше. Протокол RFCOMM эмулирует последовательные порты поверх протокола L2CAP. Он основан на ETSI-стандарте TS 07.10. RFCOMM представляет собой простой транспортный протокол, с дополнительными возможностями по эмуляции 9 цепей последовательных портов RS-232 EIATIA-232-E. Протокол RFCOMM поддерживает одновременно до 60 соединений каналов RFCOMM между двумя устройствами Bluetooth. В рамках RFCOMM полный коммуникационный маршрут включает два приложения, работающие на разных устройствах конечные коммуникационные точки с коммуникационным сегментом между ними. RFCOMM предназначен для сокрытия приложений, использующих последовательные порты устройств, в которых они расположены. Коммуникационный сегмент по сути является Bluetooth-связью от одного устройства к другому прямое соединение. RFCOMM имеет дело с соединением между устройствами в случае прямого соединения, или между устройством и модемом в сетевом случае. RFCOMM может поддерживать и другие конфигурации, такие, как модули, работающие через беспроводную технологию Bluetooth с одной стороны и предоставляющие проводное соединение с другой стороны. Во FreeBSD протокол RFCOMM реализован на уровне сокетов Bluetooth. По умолчанию связь Bluetooth не аутентифицируется, поэтому любое устройство может общаться с любым другим. Устройство Bluetooth например, сотовый телефон может задать обязательность аутентификации для предоставления определённого сервиса в частности, услугу доступа по коммутируемой линии. Bluetooth-аутентификация обычно выполняется через PIN-коды. PIN-код представляет из себя ASCII-строку длиной до 16 символов. Пользователь обязан ввести один и тот же PIN-код на обоих устройствах. Как только он введёт PIN-код, оба устройства сгенерируют ключ связи. После этого ключ может быть сохранён либо в самом устройстве, либо на постоянном носителе. В следующий раз оба устройства будут использовать ранее сгенерированный ключ соединения. Процедура, описанная выше, носит название подгонки пары pairing. Заметьте, что если ключ связи потерян любой из сторон, то подбор пары должен быть повторен. За обработку всех запросов на Bluetooth-аутентификацию отвечает даемон hcsecd 8. По умолчанию файл конфигурации называется Пример раздела, содержащего информацию о сотовом телефоне с явно заданным PIN-кодом 1234 приведен ниже: Кроме длины, на PIN-коды не накладывается никаких ограничений. Некоторые устройства например, Bluetooth-гарнитуры могут иметь фиксированный встроенный PIN-код. Параметр позволяет запустить hcsecd 8 как нефоновый процесс, что облегчает просмотр происходящих событий. Задайте получение парного ключа на удалённом устройстве и инициируйте Bluetooth-соединение с этим устройством. Удалённое устройство должно подтвердить получение пары и запросить PIN-код. Введите тот же самый код, что находится в Теперь ваш ПК и удалённое устройство спарены. Альтернативным способом является инициация процесса создания пары на удалённом устройстве. Ниже даётся пример выдачи протокола команды hcsecd16484: Got LinkKeyRequest event from ubt0hci, remote bdaddr 0:80:37:29:19:a4 hcsecd16484: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name Pavs T39, link key doesnt exist hcsecd16484: Sending LinkKeyNegativeReply to ubt0hci for remote bdaddr 0:80:37:29:19:a4 hcsecd16484: Got PINCodeRequest event from ubt0hci, remote bdaddr 0:80:37:29:19:a4 hcsecd16484: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name Pavs T39, PIN code exists hcsecd16484: Sending PINCodeReply to ubt0hci for remote bdaddr 0:80:37:29:19:a4 Протокол обнаружения сервисов SDP даёт возможность клиентским приложениям осуществлять поиск услуг, предоставляемых серверными приложениями, а также характеристик этих услуг. В перечень атрибутов сервиса включается тип класса предлагаемого сервиса и информация о механизме или протоколе, требуемом для использования сервиса. SDP подразумевает коммуникации между SDP-сервером и SDP-клиентом. Сервер поддерживает список сервисов, в котором описываются параметры сервисов, связанных с сервером. Каждая запись об услуге содержит информацию об одном сервисе. Клиент может запросить информацию об определённом сервисе, обслуживаемом SDP-сервером, выдавая SDP-запрос. Если клиент или приложение, связанное с клиентом, решат воспользоваться сервисом, то для его использования необходимо открыть отдельное соединение к устройству, предоставляющему сервис. SDP предоставляет механизм обнаружения услуг и их параметров, но не даёт механизма использования этих сервисов. Обычно SDP-клиент выполняет поиск услуг на основе некоторых желаемых характеристик услуг. Однако иногда возникает необходимость выяснить полный перечень типов услуг, предоставляемых SDP-сервером, не имея никакой информации об имеющихся сервисах. Такой процесс всех предлагаемых сервисов называется Bluetooth SDP сервер sdpd 8 и клиент с интерфейсом командной строки sdpcontrol 8 включены в стандартную поставку FreeBSD. В следующем примере показано, как выполнять запрос на SDP-обзор. Record Handle: 00000000 Service Class ID List: Service Discovery Server 0x1000 Protocol Descriptor List: L2CAP 0x0100 Protocol specific parameter 1: u/int/uuid16 1 Protocol specific parameter 2: u/int/uuid16 1 Record Handle: 0x00000001 Service Class ID List: Browse Group Descriptor 0x1001 Record Handle: 0x00000002 Service Class ID List: LAN Access Using PPP 0x1102 Protocol Descriptor List: L2CAP 0x0100 RFCOMM 0x0003 Protocol specific parameter 1: u/int8/bool 1 Bluetooth Profile Descriptor List: LAN Access Using PPP 0x1102 ver. 1.0 и так далее. Заметьте, что каждый сервис имеет перечень атрибутов например, канал RFCOMM. В зависимости от сервиса вам может потребоваться где-то сохранить эти атрибуты. Некоторые реализации Bluetooth не поддерживают просмотр сервисов и могут возвращать пустой список. В этом случае возможен поиск конкретной услуги. В примере ниже показано, как выполнить поиск службы OBEX Object Push OPUSH: Приложение на локальном сервере, желающее предоставить сервис Bluetooth удаленным клиентам, регистрирует сервис через локального даемона SDP. Пример такого приложения - - rfcommpppd 8. После запуска оно регистрирует Bluetooth LAN сервис через локального даемона SDP. Список сервисов, зарегистрированных через локальный SDP сервер, может быть получен путем выдачи запроса на просмотр SDP через локальный контрольный канал: Модуль работы с коммутируемым доступом к сети DUN - Dial-Up Networking в большинстве случаев используется с модемами и сотовыми телефонами. Этот модуль покрывает следующие случаи: сотовый телефон или модем используется вместе с компьютером в качестве беспроводного модема для подключения к серверу коммутируемого доступа в Интернет, или другой коммутируемой услуге; сотовый телефон или модем используется компьютером для приёма входящих соединений. доступ к ЛВС для одного Bluetooth-устройства; доступ к ЛВС для нескольких Bluetooth-устройств; связь между двумя ПК при помощи протокола PPP поверх эмулируемого последовательного канала связи. Во FreeBSD оба случая реализуются при помощи сервисных программ ppp 8 и rfcommpppd 8 - это обработчик, преобразующий RFCOMM-соединения Bluetooth в нечто, с чем может работать PPP. Перед тем, как использовать любой модуль, в файле должна быть создана новая PPP-метка. Примеры использования можно найти в справочной странице к rfcommpppd 8. В следующем примере rfcommpppd 8 будет использоваться для открытия RFCOMM-соединения к удалённому устройству с BDADDR 00:80:37:29:19:a4 на DUN RFCOMM-канале. Реальный номер RFCOMM-канала будет получаться с удалённого устройства через SDP. Возможно указать RFCOMM-канал вручную, и в этом случае rfcommpppd 8 не будет выполнять SDP-запрос. Для нахождения RFCOMM-канала на удалённом устройстве используйте утилиту sdpcontrol 8. Для того, чтобы организовать сервис Network Access with PPP LAN, необходимо запустить сервер sdpd 8. В файле должна быть создана новая запись для клиентов LAN. Примеры можно найти в справке по rfcommpppd 8. Наконец, запустите RFCOMM PPP сервер на существующем номере канала RFCOMM. Сервер RFCOMM PPP автоматически зарегистрирует Bluetooth LAN сервис через локальный SDP даемон. В примере ниже показано, как запустить сервер RFCOMM PPP. OBEX является широко используемым протоколом для простой передачи файлов между мобильными устройствами. В основном он используется в коммуникациях через инфракрасный порт для передачи файлов между ноутбуками или КПК, а также для пересылки визитных карточек или календарных планов между сотовыми телефонами и другими устройствами с персональными информационными менеджерами. obexapp, который доступен в виде порта Клиент OBEX используется для посылки или приёма объектов с сервера OBEX. Объектом, к примеру, может быть визитная карточка или указание. Клиент OBEX может получить номер RFCOMM-канала, указав вместо него имя сервиса. Поддерживаются следующие имена сервиса: IrMC, FTRN и OPUSH. Канал RFCOMM можно задать его номером. Ниже даётся пример сеанса OBEX, где с сотового телефона забирается объект с информацией об устройстве, а новый объект визитная карточка передаётся в каталог сотового телефона. obex get Success, response: OK, Success 0x20 obex put Success, response: OK, Success 0x20 obex di Success, response: OK, Success 0x20 Для того, чтобы предоставить сервис OBEX Push, должен быть запущен сервер sdpd 8. Должен быть создан корневой каталог, в котором будут сохраняться все поступающие объекты. По умолчанию корневым каталогом является Наконец, запустите OBEX сервер на существующем номере канала RFCOMM. OBEX сервер автоматически зарегистрирует сервис OBEX Object Push через локального даемона SDP. В примере ниже показано, как запустить OBEX-сервер. Профиль последовательного порта SPP - Serial Port Profile позволяет Bluetooth-устройствам осуществлять эмуляцию последовательного порта RS232 или подобного. Этот профиль покрывает случаи, касающиеся работы унаследованных приложений с Bluetooth в качестве замены кабельному соединению, при это используется абстракция виртуального последовательного порта. Утилита rfcommsppd 1 реализует профиль последовательного порта. В качестве виртуального последовательного порта используется псевдотерминал. В примере ниже показано, как подключиться к сервису Serial Port удалённого устройства. Заметьте, что вы не указываете RFCOMM-канал - rfcommsppd 1 может получить его с удалённого устройства через SDP. Если вы хотите переопределить это, укажите RFCOMM-канал явно в командной строке. Некоторые старые Bluetooth-устройства не поддерживают переключение ролей. По умолчанию, когда FreeBSD подтверждает новое соединение, она пытается выполнить переключение роли и стать ведущим устройством. Устройства, которые это не поддерживают, не смогут подключиться. Заметьте, что переключение ролей выполняется при установлении нового соединения, поэтому невозможно выяснить, поддерживает ли удалённое устройство переключение ролей. На локальной машине имеется возможность отключить переключение ролей при помощи HCI-параметра: Да, можно. Воспользуйтесь пакетом стороннего разработчика, Утилита hcidump похожа на tcpdump 1. Она может быть использована для вывода на терминал содержимого Bluetooth-пакетов и сбрасывать пакеты Bluetooth в файл. Текст создал Steve Peterson. Иногда полезно разделить одну физическую сеть такую, как сегмент Ethernet на два отдельных сегмента сети без необходимости создания подсетей IP и использования маршрутизатора для соединения сегментов. Устройство, которое соединяет две сети на такой манер, называется сетевым мостом bridge. Система FreeBSD с двумя сетевыми адаптерами может выступать в роли моста. Мост работает на основе изучения адресов уровня MAC адресов Ethernet устройств на каждом из своих сетевых интерфейсах. Он перенаправляет трафик между двумя сетями, только когда адреса отправителя и получателя находятся в разных сетях. По многим параметрам мост работает также, как коммутатор Ethernet с малым количеством портов. На сегодняшний день есть две ситуации, когда можно использовать мост. Первая ситуация возникает, когда ваша физическая сеть перегружена трафиком, но по каким-то соображениям вы не хотите разделять сеть на подсети и соединять их с помощью маршрутизатора. Давайте рассмотрим в качестве примера газету, в которой редакторский и производственный отделы находятся в одной и той же подсети. Пользователи в редакторском отделе все используют сервер для служб доступа к файлам, а пользователи производственного отдела используют сервер Для объединения всех пользователей используется сеть Ethernet, а высокая нагрузка на сеть замедляет работу. Если пользователи редакторского отдела могут быть собраны в одном сегменте сети, а пользователи производственного отдела в другом, то два сетевых сегмента можно объединить мостом. Только сетевой трафик, предназначенный для интерфейсов с другой стороны моста, будет посылаться в другую сеть, тем самым снижая уровень нагрузки на каждый сегмент сети. Второй распространённой ситуацией является необходимость в обеспечении функций сетевого экрана без трансляции сетевых адресов NAT. Для примера можно взять маленькую компанию, которая подключена к своему провайдеру по каналу DSL или ISDN. Для неё провайдер выделил 13 глобально доступных IP-адресов для имеющихся в сети 10 персональных компьютеров. В такой ситуации использование сетевого экрана на основе маршрутизатора затруднено из-за проблем с разделением на подсети. Брандмауэр на основе моста может быть настроен и включен между маршрутизаторами DSL/ISDN без каких-либо проблем с IP-адресацией. Для работы моста требуются по крайней мере два сетевых адаптера. К сожалению, не все сетевые адаптеры во FreeBSD 4.0 поддерживают функции моста. Прочтите страницу Справочника по bridge 4 для выяснения подробностей о поддерживаемых адаптерах. Перед тем, как продолжить, сначала установите и протестируйте два сетевых адаптера. Для включения поддержки функций сетевого моста в ядре, добавьте строчку в файл конфигурации вашего ядра, и перестройте ядро. Если вы планируете использовать мост в качестве брандмауэра, вам нужно также добавить опцию Прочтите Гл. 24, содержащую общую информацию о настройке моста в качестве брандмауэра. Если вам необходимо обеспечить прохождение не-IP пакетов таких, как ARP через мост, то имеется опция брандмауэра, которую можно задать. Это опция Заметьте, что при этом правило, используемое брандмауэром по умолчанию, меняется на разрешительное для всех пакетов. Перед тем, как задавать эту опцию, убедитесь, что вы понимаете работу вашего набора правил. Если вы хотите использовать мост в качестве машины, ограничивающей пропускную способность, то добавьте в файл конфигурации ядра опцию Дополнительную информацию можно почерпнуть из страницы Справочника по dummynet 4. для включения функций моста во время работы системы, и строку: на имена двух ваших сетевых интерфейсов. Если вы хотите, чтобы проходящие через мост пакеты фильтровались посредством ipfw 8, вы должны также добавить строчку: Для версий FreeBSD, предшествующих FreeBSD 5.2-RELEASE, нужно использовать следующие строки: Если вы хотите осуществлять удалённый доступ на мост через ssh 1 из сети, то корректно назначить одному из сетевых адаптеров IP-адрес. Общепринято, что назначение адреса обоим сетевым адаптерам является не самой хорошей идеей. Если в вашей сети присутствует несколько мостов, не должно быть более одного маршрута между любыми двумя рабочими станциями. С технической точки зрения это означает отсутствие поддержки протокола spanning tree. Сетевой мост может увеличить задержки в замерах командой ping 8, особенно для трафика между двумя разными сегментами. Текст обновил Jean-Fran ois Dock s. Реорганизовал и улучшил Alex Dupre. Машина с FreeBSD может загружаться по сети и работать без наличия локального диска, используя файловые системы, монтируемые с сервера NFS Кроме стандартных конфигурационных файлов, не нужны никакие модификации в системе. Такую систему легко настроить, потому что все необходимые элементы уже готовы: Система Intel Preboot eXecution Environment является формой загрузочного ПЗУ, встроенного в некоторые сетевые адаптеры или материнские платы. Обратитесь к справочной странице по pxeboot 8 для получения более полной информации. генерирует код, который может применяться в ПЗУ для загрузки ядра по сети. Код может быть либо прошит в загрузочный PROM на сетевом адаптере, либо загружен с локальной дискеты или винчестера, или с работающей системы MS-DOS. Поддерживаются многие сетевые адаптеры. облегчает создание и поддержку корневой файловой системы рабочей станции на сервере. Скрипт, скорее всего, потребует некоторых настроек, но он позволит вам быстро начать работу. Стандартные файлы начального запуска системы, располагающиеся в распознают и поддерживают загрузку системы в бездисковом варианте. Подкачка, если она нужна, может выполняться через файл NFS Существует много способов настройки бездисковой рабочей станции. При этом задействованы многие компоненты, и большинство из них могут быть настроены для удовлетворения ваших вкусов. Далее будет описаны варианты полной настройки системы, при этом упор будет делаться на простоту и совместимость с стандартной системой скриптов начальной загрузки FreeBSD. Описываемая система имеет такие характеристики: в режиме только чтения, а также используют совместно тоже в режиме только чтения. Корневая файловая система является копией стандартной корневой системы FreeBSD обычно сервера, с некоторыми настроечными файлами, измененными кем-то специально для бездисковых операций или, возможно, для рабочей станции, которой она предназначена. Части корневой файловой системы, которые должны быть доступны для записи, перекрываются файловыми системами mfs 8 FreeBSD 4.X или md 4 FreeBSD 5.X. Любые изменения будут потеряны при перезагрузках системы. и в некоторых ситуациях может быть использован любой из этих методов. Предостережение: Как описано, эта система не защищена. Она должна располагаться в защищенной части сети, а другие хосты не должны на нее полагаться. Вся информация этого раздела была протестирована с релизами FreeBSD 4.9-RELEASE и 5.2.1-RELEASE. Текст структурирован преимущественно для использования с Отличия для 5.X упоминаются особо. Настройка бездисковых рабочих станций относительно проста, но в то же время легко сделать ошибку. Иногда сложно диагностировать эти ошибки по нескольким причинам. Например: Параметры компиляции могут по-разному проявлять себя во время работы. Сообщения об ошибках бывают загадочны или вовсе отсутствуют. В данной ситуации некоторые знания, касающиеся используемых внутренних механизмов, очень полезны при разрешении проблем, которые могут возникнуть. Компьютеру необходимо получить начальные параметры, такие как собственный IP адрес, имя исполняемого файла, корневой каталог. Для этого используются протоколы DHCP это совместимое расширение BOOTP, используются те же номера портов и основной формат пакетов. Возможна настройка системы для использования только BOOTP. Серверная программа bootpd 8 включена в основную систему FreeBSD. есть множество преимуществ над BOOTP лучше файлы настройки, возможность использования PXE плюс многие другие преимущества, не относящиеся непосредственно к бездисковым операциям, и мы в основном будем описывать настройку DHCP с эквивалентными примерами для bootpd 8, когда это возможно. Пример конфигурации будет использовать пакет ISC DHCP релиз 3.0.1.r12 был установлен на тестовом сервере. Компьютеру требуется загрузить в локальную память одну или несколько программ. Используются TFTP производится во время компилирования в нескольких местах. Часто встречающаяся ошибка это указание имен файлов для другого протокола: TFTP обычно загружает все файлы с одного каталога сервера, и принимает имена файлов относительно этого каталога. NFS нужны абсолютные пути к файлам. Необходимо инициализировать и выполнить возможные промежуточные программы загрузки и ядро. В этой области существует несколько важных вариаций: загрузит pxeboot 8, являющийся модифицированной версией загрузчика третьей стадии FreeBSD. loader 8 получит большинство параметров, необходимых для старта системы, и оставит их в окружении ядра до контроля передачи. В этом случае возможно использование ядра Etherboot, непосредственно загрузит ядро, с меньшей подготовкой. Вам потребуется собрать ядро со специальными параметрами. и Etherboot работают одинаково хорошо с системами Поскольку ядро 5.X обычно позволяет loader 8 выполнить больше предварительной работы, метод PXE на системах 5.X предпочтителен. используйте его. Однако, все же возможен запуск системы 5.X с Etherboot. Наконец, компьютеру требуется доступ к файловым системам. NFS используется во всех случаях. Сервер ISC DHCP может обрабатывать как запросы BOOTP, так и запросы DHCP Начиная с релиза 4.9, ISC DHCP 3.0 не включается в поставку системы. Сначала вам нужно будет установить порт или соответствующий пакет. Вот прокомментированный пример, где хост использует Etherboot, а хост default-lease-time 600; max-lease-time 7200; authoritative; option domain-name ; option domain-name-servers 192.168.4.1; option routers 192.168.4.1; subnet 192.168.4.0 netmask 255.255.255.0 use-host-decl-names on; option subnet-mask 255.255.255.0; option broadcast-address 192.168.4.255; host margaux hardware ethernet 01:23:45:67:89:ab; fixed-address ; next-server 192.168.4.4; filename ; option root-path 192.168.4.4:/data/misc/diskless; host corbieres hardware ethernet 00:02:b3:27:62:df; fixed-address ; next-server 192.168.4.4; filename pxeboot; option root-path 192.168.4.4:/data/misc/diskless; как имя хоста для бездисковой машины. Альтернативным способом было бы добавление используемый для получения загрузчика или файла ядра по умолчанию используется тот же самый хост, на котором расположен сервер DHCP определяет файл, который будут загружать для следующего шага выполнения. Он должен быть указан в соответствии с используемым методом передачи. Etherboot может быть скомпилирован для использования NFS FreeBSD порт по умолчанию использует NFS поэтому здесь применяются относительные пути файлов это может зависеть от настроек TFTP сервера, но обычно довольно типично. Кроме того, PXE а не ядро. Существуют другие интересные возможности, такие как загрузка ядро, это делает возможной загрузку с удаленного CD-ROM. определяет путь к корневой файловой системе, в обычной нотации NFS можно оставить IP хоста отключенным, если параметр ядра BOOTP не используется. Затем NFS сервер может использоваться так же, как и TFTP bootpd для одного клиента. Она будет располагаться в Пожалуйста, отметьте, что Etherboot должен быть откомпилирован с нестандартной опцией для того, чтобы можно было использовать BOOTP, и что для работы PXE Единственным очевидным преимуществом bootpd является его наличие в поставке системы. rp192.168.4.4:/data/misc/diskless: 100 Сайт Etherboot содержит подробную документацию, в основном предназначенную для систем Linux, но несомненно, она полезна. Далее будет просто кратко описано, как вы должны использовать Etherboot в системе FreeBSD. Вы можете изменить настройку Etherboot например, для использования TFTP В нашей ситуации мы будем использовать загрузочную дискету. Для других методов PROM или программа MS-DOS пожалуйста, обратитесь к документации по Etherboot. Для создания загрузочной дискеты, вставьте дискету в дисковод на машине, где установлен Etherboot, затем перейдите в каталог зависит от типа адаптера Ethernet на бездисковой рабочей станции. Обратитесь к файлу 25.6.2.4. Загрузка с PXE Он может быть скомпилирован для использования вместо него TFTP систем 5.X с инструкциями. которые могут быть полезны для настройки бездискового компьютера с последовательной консолью: последняя существует только в FreeBSD 5.X. или нажать функциональную клавишу во время загрузки PC. 25.6.2.5. Настройка серверов TFTP Etherboot, настроенные для использования TFTP вам нужно включить tftpd на файловом сервере: Создайте каталог, файлы которого будет обслуживать tftpd, например, Замечание: Бывает, что некоторым версиям PXE В таком случае добавьте вторую строчку, заменяющую в любом месте на сервере. Проверьте, что это местоположение указано как в Во всех случаях, вам также нужно включить NFS Экспортируйте файловую систему, в которой расположен корневой каталог для бездисковой рабочей станции, добавив следующую строку в Укажите mountd на повторное чтение настроечного файла. На самом деле если вам потребовалось на первом шаге включить NFS то вам нужно будет выполнить перезагрузку. При использовании Etherboot, вам потребуется создать конфигурационный файл ядра для бездискового клиента со следующими параметрами вдобавок к обычным: Эти имена параметров сложились исторически, и могут немного ввести в заблуждение, поскольку включают необязательное использование DHCP Постройте ядро обратитесь к Гл. 8 и скопируйте его в каталог, указанный в сборка ядра с вышеприведенными параметрами не является совершенно необходимой хотя желательна. Включение этих параметров приведет к выполнению большинства DHCP запросов во время загрузки ядра, с небольшим риском несоответствия новых значений и значений, полученных pxeboot 8 в некоторых особых случаях. Преимущество использования в том, что в качестве побочного эффекта будет установлено имя хоста. Иначе вам потребуется установить имя хоста другим методом, например в клиент-специфичном файле Etherboot, в ядро 5.X необходимо включить устройство hints. Вам потребуется установить в файле конфигурации следующий параметр см. файл комментариев Вам нужно создать корневую файловую систему для бездисковых рабочих станций, в местоположении, заданном как В следующем разделе описаны два способа, чтобы сделать это. 25.6.2.7.1. Использование скрипта Это самый простой способ создания корневой файловой системы, но на данный момент он не поддерживается в FreeBSD Этот shell скрипт находится в и требует настройки, по крайней мере, задания того места, где будет создана файловая система переменная Прочтите комментарии в начале скрипта для получения указаний. Там описано, как строится основная файловая система, и как файлы могут быть выборочно заменены версиями, предназначенными для работы без диска, для подсети или для отдельной рабочей станции. Также здесь даются примеры бездисковых файлов много интересной информации, но вместе с другими примерами из каталога они на самом деле описывают метод настройки, который отличается от того, что используется в этим несколько запутывая дело. Используйте их только для справки, за исключением того случая, когда вы выберете метод, ими описываемый, и тогда вам нужны исправленные скрипты 25.6.2.7.2. Использование стандартной процедуры Этот метод может быть применен к FreeBSD 4.X или 5.X и установит новую систему не только корневую в Все, что вам потребуется сделать, это просто выполнить следующий скрипт: bin/sh export DESTDIR/data/misc/diskless mkdir - p DESTDIR cd/usr/src; make world make kernel cd/usr/src/etc; make distribution Как только это будет сделано, вам может потребоваться настроить в соответствии с вашими потребностями. Если это нужно, то файл подкачки, расположенный на сервере, можно использовать посредством NFS Один из методов, используемых для этого, не поддерживается в релизах 25.6.2.8.1. Подкачка по NFS 128 и 129. Примеры файлов настройки для ISC DHCP 3.0 или Global section option swap-path code 128 string; option swap-size code 129 integer 32; host margaux Standard lines, see above option swap-path 192.168.4.4:/netswapvolume/netswap это путь к каталогу, где находятся файлы подкачки. Название каждого файла имеет вид который больше не поддерживается. T128192.168.4.4:/netswapvolume/netswap:T1290000fa00 размер файла подкачки должен быть записан в шестнадцатеричном формате. является IP-адресом бездискового клиента. 25.6.2.8.2. Подкачка по NFS с номерами 128 и 129. Ниже приведены примеры файлов настройки для ISC DHCP 3.0 или Global section option swap-path code 128 string; option swap-size code 129 integer 32; host margaux Standard lines, see above option swap-path 192.168.4.4:/netswapvolume/netswap это путь к каталогу, где расположены файлы подкачки. Файлы называются которые более не поддерживаются. T128192.168.4.4:/netswapvolume/netswap:T1290000fa00 размер подкачки должен вычисляться в шестнадцатеричном формате. это IP адрес бездискового клиента. Затем заставьте mountd перечитать конфигурационные файлы как было показано выше. 25.6.2.9.1. Работа с доступной только для чтения Если бездисковая рабочая станция настроена на запуск X, вам нужно подправить настроечный файл для XDM, который по умолчанию помещает протокол ошибок в Если сервер с корневой файловой системой работает не под управлением FreeBSD, вам потребуется создать корневую файловую систему на машине FreeBSD, а затем скопировать ее в нужно место, при помощи из-за различной разрядности целых чисел для старшего/младшего чисел. Решением этой проблемы является экспортирование каталога с не-FreeBSD сервера, монтирование его на машине с FreeBSD и запуск скрипта на машине с FreeBSD для создания правильных файлов устройств во FreeBSD 5.0 и более поздних версиях используется devfs 5 для создания файлов устройств прозрачно для пользователя, запуск в этих версиях бессмысленно. Полезным источником информации о технологии ISDN и его аппаратном обеспечении является Страница Дэна Кегела Dan Kegel об ISDN. Если вы живёте в Европе, то вам может понадобиться изучить раздел об ISDN-адаптерах. Если вы планируете использовать ISDN в основном для соединений с Интернет через провайдера по коммутируемому, не выделенному соединению, рекомендуется посмотреть информацию о терминальных адаптерах. Это даст вам самую большую гибкость и наименьшее количество проблем при смене провайдера. Если вы объединяете две локальные сети или подключаетесь к Интернет через постоянное ISDN-соединение, рекомендуем остановить свой выбор на отдельном мосте/маршрутизаторе. Стоимость является важным фактором при выборе вашего решения. Далее перечислены все возможности от самого дешевого до самого дорогого варианта. Текст предоставил Hellmuth Michaelis. Реализация ISDN во FreeBSD поддерживает только стандарт DSS1/Q.931 или Евро-ISDN при помощи пассивных адаптеров. Начиная с FreeBSD 4.4 поддерживаются некоторые активные адаптеры, прошивки которых поддерживают также другие сигнальные протоколы; также сюда впервые включена поддержка адаптеров ISDN Primary Rate PRI. Пакет программ isdn4bsd позволяет вам подключаться к другим маршрутизаторам ISDN при помощи IP поверх DHLC, либо при помощи синхронного PPP; либо при помощи PPP на уровне ядра с модифицированного драйвера sppp 4, или при помощи пользовательского ppp 8. При использовании пользовательского ppp 8 возможно использование двух и большего числа B-каналов ISDN. Также имеется приложение, работающее как автоответчик, и много утилит, таких, как программный модем на 300 Бод. Во FreeBSD поддерживается все возрастающее число адаптеров ISDN для ПК, и сообщения показывают, что они успешно используются по всей Европе и других частях света. Из пассивных адаптеров ISDN поддерживаются в основном те, которые сделаны на основе микросхем Infineon бывший Siemens ISAC/HSCX/IPAC ISDN, а также адаптеры ISDN с микросхемами от Cologne Chip только для шины ISA, адаптеры PCI с микросхемами Winbond W6692, некоторые адаптеры с набором микросхем Tiger300/320/ISAC и несколько адаптеров, построенных на фирменных наборах микросхем, такие, как AVM Fritz!Card PCI V.1.0 и AVM Fritz!Card PnP. На данный момент из активных адаптеров ISDN поддерживаются AVM B1 ISA и PCI адаптеры BRI и AVM T1 PCI адаптеры PRI. вашей системы FreeBSD или на домашней странице isdn4bsd, на которой также размещены ссылки на советы, замечания по ошибкам и более подробную информацию, например, на руководство по isdn4bsd. Если вы заинтересованы в добавлении поддержки для различных протоколов ISDN, не поддерживаемых на данный момент адаптеров ISDN для PC или каких-то других усовершенствованиях isdn4bsd, пожалуйста, свяжитесь с Hellmuth Michaelis Для обсуждения вопросов, связанных с установкой, настройкой и устранением неисправностей isdn4bsd, имеется список рассылки freebsd-isdn. Терминальные адаптеры TA для ISDN выполняют ту же роль, что и модемы для обычных телефонных линий. Большинство TA используют стандартный набор AT-команд Hayes-модемов, и могут использоваться в качестве простой замены для модемов. TA будут работать точно так же, как и модемы, за исключением скорости соединения и пропускной способности, которые будут гораздо выше, чем у вашего старого модема. Вам потребуется настроить PPP точно также, как и в случае использования модема. Проверьте, что вы задали скорость работы последовательного порта максимально высокой. Главным преимуществом использования TA для подключения к провайдеру Интернет является возможность использования динамического PPP. Так как пространство адресов IP истощается все больше, большинство провайдеров не хочет больше выдавать вам статический IP-адрес. Большинство же маршрутизаторов не может использовать динамическое выделение IP-адресов. TA полностью полагаются на даемон PPP, который используете из-за его возможностей и стабильности соединения. Это позволяет вам при использовании FreeBSD легко заменить модем на ISDN, если у вас уже настроено соединение PPP. Однако, в тоже время любые проблемы, которые возникают с программой PPP, отражаются и здесь. Если вы хотите максимальной надёжности, используйте PPP на уровне параметра ядра, а не пользовательский PPP. Известно, что следующие TA работают с FreeBSD: Большинство остальных TA, скорее всего, тоже будут работать, производители TA прилагают все усилия для обеспечения поддержки практически всего набора стандартных AT-команд модема. Как и в случае модемов проблемой использования внешнего TA является потребность в хорошем последовательном адаптере на вашем компьютере. Вы должны прочесть учебник Последовательные устройства во FreeBSD для того, чтобы в деталях понять работу последовательных устройств и осознать различие между асинхронными и синхронными последовательными портами. TA, работающий со стандартным последовательным асинхронным портом PC, ограничивает вас скоростью 115.2 Кбит/с, хотя реально у вас соединение на скорости 128 Кбит/с. Чтобы использовать 128 Кбит/с, которые обеспечивает ISDN, полностью, вы должны подключить TA к синхронному последовательному адаптеру. Не обманывайте себя, думая, что покупка встроенного TA поможет избежать проблемы синхронности/асинхронности. Встроенные TA просто уже имеют внутри стандартный последовательный порт PC. Все, что при этом достигается - это экономия дополнительных последовательного кабеля и электрической розетки. Синхронный адаптер с TA по крайней мере так же быстр, как и отдельный маршрутизатор, а если он работает под управлением машины класса 386 с FreeBSD, то это гораздо более гибкое решение. Выбор между использованием синхронного адаптера/TA или отдельного маршрутизатора в большей степени является религиозным вопросом. По этому поводу в списках рассылки была некоторая дискуссия. Рекомендуем поискать в архивах обсуждение полностью. Мосты или маршрутизаторы ISDN не так уж специфичны для FreeBSD или для любой другой операционной системы. Для более подробного описания технологий маршрутизации и работы мостов, пожалуйста, обратитесь к справочникам по сетевым технологиям. В контексте этого раздела термины маршрутизатор и сетевой мост будут использоваться как взаимозаменяемые. Вместе с падением цен на простые мосты/маршрутизаторы ISDN, они становятся все более популярными. Маршрутизатор ISDN представляет собой маленькую коробочку, которая подключается непосредственно в вашу сеть Ethernet, и поддерживает связь с другим мостом/маршрутизатором. Всё программное обеспечение для работы по PPP и другим протоколам встроено в маршрутизатор. Маршрутизатор обладает гораздо большей пропускной способностью, чем стандартный TA, так как он использует полное синхронное соединение ISDN. Основной проблемой с маршрутизаторами и мостами ISDN является то, что их совместная работа с оборудованием других производителей может оказаться под вопросом. Если вы собираетесь подключаться к провайдеру, то вы должны обсудить с ним то, что вам нужно. Если вы планируете объединить два сегмента локальной сети, например, домашнюю сеть с сетью офиса, это самое простое решение с минимальными издержками на обслуживание. Так как вы покупаете оборудование для обоих сторон соединения, то можете быть уверены, что связь будет работать нормально. Например, для соединения домашнего компьютера или сети подразделения к сети центрального офиса, может использоваться такая настройка: Пример 25-1. Офис подразделения или домашняя сеть Сеть построена в топологии общей шины на основе 10 base 2 Ethernet thinnet - тонкий Ethernet. Подключите маршрутизатор к сетевому кабелю с помощью трансивера AUI/10BT, если это нужно. Если ваш домашний или удаленный офис представляет собой один компьютер, то для непосредственного подключения к маршрутизатору вы вы можете использовать витую пару с перекрестным соединениям. Пример 25-2. Центральный офис или другая локальная сеть Сеть построена в топологии звезды на основе 10 Base T Ethernet витая пара. Одним большим преимуществом большинства маршрутизаторов/мостов является то, что они позволяют иметь 2 отдельных независимых соединения PPP к 2 различным сайтам одновременно. Это не поддерживается в большинстве TA, кроме специальных обычно дорогих моделей, имеющих по два последовательных порта. Не путайте это с балансировкой нагрузки, MPP и так далее. Это может оказаться весьма полезной особенностью, например, если у вас имеется постоянное ISDN-соединение в вашем офисе, и вы хотите им воспользоваться, но не хотите задействовать дополнительный канал ISDN на работе. Маршрутизатор, расположенный в офисе, может использовать выделенное соединение по каналу B 64 Кбит/с для Интернет, и одновременно другой канал B для отдельного соединения для передачи данных. Второй канал B может использоваться для входящих, исходящих и динамически распределяемых соединений MPP и так далее совместно с первым каналом B для повышения пропускной способности. Мост Ethernet также позволяет вам передавать больше, чем просто трафик IP. Вы сможете передавать IPX/SPX и любые другие протоколы, которые вы используете. Текст предоставил Chern Lee. Даемон преобразования сетевых адресов Network Address Translation во FreeBSD, широко известный как natd 8, является даемоном, который принимает входящие IP-пакеты, изменяет адрес отправителя на адрес локальной машины и повторно отправляет эти пакеты в потоке исходящих пакетов. natd 8 делает это, меняя IP-адрес отправителя и порт таким образом, что когда данные принимаются обратно, он может определить расположение источника начальных данных и переслать их машине, которая запрашивала данные изначально. Чаще всего NAT используется для организации так называемого Совместного Использования Интернет. Из-за исчерпания пространства адресов в IPv4 и увеличения количества пользователей высокоскоростных каналов связи, таких, как кабельное подключение или DSL, необходимость в решении по Совместному Использованию Интернет растёт. Возможность подключить несколько компьютеров через единственное соединение и IP-адрес делает natd 8 подходящим решением. Чаще всего у пользователя имеется машина, подключенная к кабельному каналу или каналу DSL с одним IP-адресом и есть желание использовать этот единственный подключенный компьютер для организации доступа в Интернет другим компьютерам в локальной сети. Для этого машина FreeBSD, находящаяся в Интернет, должна выступать в роли шлюза. Эта шлюзовая машина должна иметь два сетевых адаптера-один для подключения к маршрутизатору Интернет, а другой для подключения к ЛВС. Все машины в локальной сети подключаются через сетевой концентратор или коммутатор. Подобная конфигурация часто используется для совместного использования доступа в Интернет. Одна из подключенных к локальной сети машин подключается к Интернет. Остальные машины работают с Интернет посредством этой шлюзовой машины. Дополнительно, если это нужно, можно добавить следующее: Указывает машине выступать в качестве шлюза. Выполнение команды приведёт к тому же самому результату. Здесь задается предопределенный набор правил брандмауэра, который разрешает все. Посмотрите файл для нахождения дополнительных типов. Указывает, через какой интерфейс передавать пакеты интерфейс, подключенный к Интернет. Любые дополнительный параметры, передаваемые при запуске даемону natd 8. Эту команду можно запустить и вручную. Замечание: Если для передачи natd 8 набирается слишком много параметров, возможно также использовать конфигурационный файл. В этом случае имя настроечного файла должно быть задано добавлением следующей строки в будет содержать перечень конфигурационных параметров, по одному в строке. К примеру, для примера из следующего раздела будет использоваться такой файл: redirectport tcp 192.168.0.2:6667 6667 redirectport tcp 192.168.0.3:80 80 Каждой машине и интерфейсу в ЛВС должен быть назначен IP-адрес из адресного пространства частных сетей, как это определено в RFC 1918, а в качестве маршрутизатора по умолчанию должен быть задан IP-адрес машины с а интерфейс машины с natd в локальной сети имеет IP-адрес Маршрутизатором по умолчанию для клиентов Внешний, или Интернет-интерфейс машины с natd не требует особых настроек для работы natd 8. Минусом использования natd 8 является то, что машины в локальной сети недоступны из Интернет. Клиенты в ЛВС могут выполнять исходящие соединения во внешний мир, но не могут обслуживать входящие. Это является проблемой при запуске служб Интернет на клиентских машинах в локальной сети. Простым решением является перенаправление некоторых портов Интернет машины с natd на клиента локальной сети. Пусть, к примеру, сервер IRC запущен на клиенте а Web-сервер работает на клиенте Чтобы это работало, соединения, принимаемые на портах 6667 IRC и 80 Web, должны перенаправляться на соответствующие машины. с соответствующими параметрами. Синтаксис следующий: redirectport tcp 192.168.0.2:6667 6667 - redirectport tcp 192.168.0.3:80 80 tcp на клиентские машины в локальной сети. может использоваться для указания диапазонов портов, а не конкретного порта. Например, будет перенаправлять все соединения, принимаемые на портах от 2000 до 3000, на порты от 2000 до 3000 клиента Эти параметры можно указать при непосредственном запуске natd 8, поместить их в параметр либо передать через конфигурационный файл. Перенаправление адреса полезно, если имеется несколько адресов IP, и они должны быть на одной машине. В этой ситуации natd 8 может назначить каждому клиенту ЛВС свой собственный внешний IP-адрес. Затем natd 8 преобразует исходящие от клиентов локальной сети пакеты, заменяя IP-адреса на соответствующие внешние, и перенаправляет весь трафик, входящий на некоторый IP-адрес, обратно конкретному клиенту локальной сети. Это также называют статическим NAT. К примеру, пусть IP-адреса может использоваться в качестве внешнего IP-адреса шлюзовой машины natd, тогда как Внутренний IP-адрес клиента локальной сети. Внешний IP, соответствующий клиенту локальной сети. redirectaddress 192.168.0.2 128.1.1.2 - redirectaddress 192.168.0.3 128.1.1.3 эти аргументы также помещаются в строку или передаются через конфигурационный файл. При перенаправлении адресов нет нужды в перенаправлении портов, потому что перенаправляются все данные, принимаемые для конкретного IP-адреса. Внешние IP-адреса машины с natd должны быть активизированы и являться синонимами для внешнего интерфейса. Обратитесь к 5, чтобы это сделать. PLIP позволяет нам работать с TCP/IP по параллельному порту. Это полезно для машин без сетевых адаптеров или для установки на лэптопы. В этом разделе мы обсудим: создание кабеля для параллельного порта laplink. Соединение двух компьютеров посредством PLIP. Вы можете приобрести кабель для параллельного порта в большинстве магазинов, торгующих комплектующими. Если вы его не найдете, или же просто хотите знать, как он делается, то следующая таблица поможет вам сделать такой кабель из обычного принтерного кабеля для параллельного порта. Таблица 25-1. Распайка кабеля для параллельного порта для сетевой работы Прежде всего вы должны найти laplink-кабель. Затем удостоверьтесь, что на обоих компьютерах в ядро включена поддержка драйвера lpt 4: Управление параллельным портом должно выполняться по прерываниям. Во FreeBSD 4.X в файле конфигурации ядра должна присутствовать строка, подобная следующей: Затем проверьте, что файл конфигурации ядра имеет строку или загружен ли модуль ядра В обоих случаях интерфейс работы с сетью по параллельному порту должен присутствовать на момент прямого использования команды ifconfig 8. Во FreeBSD 4.X это должно быть примерно так: lp0: flags8810 POINTOPOINT, SIMPLEX, MULTICAST mtu 1500 plip0: flags8810 POINTOPOINT, SIMPLEX, MULTICAST mtu 1500 Замечание: Имя устройства, используемого для параллельного интерфейса, во FreeBSD 4.X Подключите кабель laplink к параллельным интерфейсам на обоих компьютерах. Настройте параметры сетевого интерфейса с обеих сторон, работая как пользователь К примеру, если вы хотите соединить хост на котором работает FreeBSD 4.X, с хостом под управлением FreeBSD 5.X: ifconfig plip0 10.0.0.1 10.0.0.2 ifconfig lp0 10.0.0.2 10.0.0.1 Теперь вы должны получить работающее соединение. Пожалуйста, прочтите страницы руководства по lp 4 и lpt 4 для выяснения деталей. Чтобы проверить работу соединения, перейдите к каждому хосту и выполните тестирование соединения с другой машиной посредством команды ping. К примеру, на машине lp0: flags8851 UP, POINTOPOINT, RUNNING, SIMPLEX, MULTICAST mtu 1500 inet 10.0.0.1 - - 10.0.0.2 netmask 0xff000000 PING host2 10.0.0.2: 56 data bytes 64 bytes from 10.0.0.2: icmpseq0 ttl255 time2.774 ms 64 bytes from 10.0.0.2: icmpseq1 ttl255 time2.530 ms 64 bytes from 10.0.0.2: icmpseq2 ttl255 time2.556 ms 64 bytes from 10.0.0.2: icmpseq3 ttl255 time2.714 ms - - host2 ping statistics - - 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max/stddev 2.530/2.643/2.774/0.103 ms Первоначальный текст написал Aaron Kaplan. Реструктуризацию и добавления внёс Tom Rhodes. Расширил Brad Davis. Как и другие современные системы BSD, FreeBSD включает эталонную реализацию IPv6 от KAME. Так что система FreeBSD поставляется со всем, что вам нужно для экспериментирования с IPv6. Этот раздел посвящён настройке и запуску в работу IPv6. В начале 1990-х люди стали беспокоиться о быстро иссякающем адресном пространстве IPv4. Принимая во внимание темпы роста Интернет, имелись основные проблемы: Нехватка адресов. Сегодня это не такая большая проблема, так как стали применяться адресные пространства для частных сетей Network Address Translation. Таблицы маршрутов становятся чересчур большими. Это всё ещё является проблемой сегодня. 128-битное адресное пространство. Другими словами, теоретически доступны 340, 282, 366, 920, 938, 463, 463, 374, 607, 431, 768, 211, 456 адреса. Это означает плотность примерно в 6.67 1027 адресов IPv6 на квадратный метр нашей планеты. Маршрутизаторы будут хранить в своих таблицах только агрегированные адреса сетей, что уменьшает средний размер таблицы маршрутизации до 8192 записей. Имеется также множество других полезных особенностей IPv6, таких, как: Существуют различные типы адресов IPv6: одноадресные Unicast, групповые Anycast и многоадресные Multicast. Адреса типа Unicast хорошо всем известны. Пакет, посланный на такой адрес, достигает в точности интерфейса, который этому адресу соответствует. Адреса типа Anycast синтаксически неотличимы от адресов Unicast, но они адресуют группу интерфейсов. Пакет, направленный такому адресу, попадёт в ближайший согласно метрике маршрутизатора интерфейс. Адреса Anycast могут использоваться только маршрутизаторами. Адреса типа Multicast идентифицируют группу интерфейсов. Пакет, посланный на такой адрес, достигнет всех интерфейсов, привязанных к группе многоадресного вещания. выражаются адресами многоадресного вещания IPv6. Таблица 25-2. Зарезервированные адреса IPv6 Нижние 32 бита это адрес IPv4. Также называется IPv4 совместимым IPv6 адресом Адрес IPv6, отображенный на IPv4 Нижние 32 бита это адрес IPv4. Для хостов, не поддерживающих IPv6. Все global unicast адреса присваиваются из этого пула. Первые три бита 001. где каждый символ x является 16-разрядным числом в шестнадцатеричной форме. К примеру, Часто в адресе присутствуют длинные строчки, заполненные нулями, поэтому одна такая последовательность на адрес может быть сокращена до ::. Кроме того, до трех ведущих 0 на шестнадцатеричную четверку могут быть пропущены. К примеру, В третьей форме последние 32 бита записываются в широко известном десятичном стиле IPv4 с точками. в качестве разделителей. Например, которое, в свою очередь, равнозначно записи rl0: flags8943 UP, BROADCAST, RUNNING, PROMISC, SIMPLEX, MULTICAST mtu 1500 inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255 inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1 ether 00:00:21:03:08:e1 media: Ethernet autoselect 100baseTX status: active является автоматически настроенным локальным адресом. Он генерируется из MAC адреса в процессе автоматической конфигурации. Для получения дополнительной информации о структуре адресов IPv6 обратитесь к RFC3513. Получить сеть IPv6 от вышестоящего провайдера. Для получения рекомендаций обратитесь к вашему провайдеру Интернет. если вы используете коммутируемое соединение. Здесь мы будем рассматривать подключение к 6bone, так как на данный момент это является самым популярным способом. Сначала взгляните на сайт 6bone и найдите ближайшую к вам точку подключения к 6bone. Напишите ответственному и при некоторой удаче вам дадут инструкции по настройке соединения. Обычно это касается настройки туннеля GRE gif. gif0: flags8010 POINTOPOINT, MULTICAST mtu 1280 Замените слова, написанные заглавными буквами, информацией, которую вам дал вышестоящий узел 6bone. При этом установится туннель. Проверьте работу туннеля утилитой ping6 8 с адресом Вы должны получить два положительных ответа. скажем, что это адрес многоадресного вещания. над адресом многоадресного вещания, то другая сторона туннеля также должна ответить. 3ffe:505:2008:1:2a0:24ff:fe57:e561 from 3ffe:8060:100::40:2, 30 hops max, 12 byte packets 1 atnet-meta6 14.147 ms 15.499 ms 24.319 ms 2 103.408 ms 95.072 ms 3 3ffe:1831:0:ffff::4 138.645 ms 134.437 ms 144.257 ms 4 3ffe:1810:0:6:290:27ff:fe79:7677 282.975 ms 278.666 ms 292.811 ms 5 3ffe:1800:0:ff00::4 400.131 ms 396.324 ms 394.769 ms 6 3ffe:1800:0:3:290:27ff:fe14:cdee 394.712 ms 397.19 ms 394.102 ms Эта выдача будет отличаться от машины к машине. Теперь вы должны суметь достигнуть сайта IPv6 и увидеть танцующую черепаху - - в случае, если ваш браузер поддерживает IPv6, как, например, Для IPv6 использовались два типа записей DNS. IETF объявил записи A6 устаревшими. Стандартом на данный момент являются записи AAAA. Использование записей AAAA достаточно просто. Назначение вашему имени хоста нового адреса IPv6 достигается просто добавлением: к вашему первичному файлу DNS зоны. В случае, если вы не обслуживаете собственные зоны DNS обратитесь к вашему провайдеру DNS с патчем IPv6 поддерживают записи AAAA. 25.10.5. Внесение необходимых изменений в Эти установки помогут вам настроить компьютер, который будет работать в сети как клиент, а не как маршрутизатор. Для включения настройки интерфейсов через rtsol 8 при загрузке, все, что вам потребуется, это добавить следующую строку: Для статического присвоения IP адреса, такого как добавьте следующую строку к Этот раздел поможет вам использовать инструкции, которые выдал провайдер туннеля, например, 6bone, и сделать эти настройки постоянными. Для восстановления туннеля при загрузке системы используйте в нижеприведенные настройки. Задайте список туннельных интерфейсов Generic Tunneling interfaces, которые необходимо настроить, например Для включения IPv6 адреса, который был вам присвоен для использования в подключении к туннелю IPv6, добавьте: Затем все, что вам потребуется сделать, это добавить маршрут по умолчанию для IPv6. Это другая сторона туннеля IPv6: Если сервер будет обеспечивать маршрутизацию между вашей сетью и остальным миром, то в файле Этот раздел поможет вам настроить rtadvd 8 для распространения маршрута IPv6 по умолчанию. Важно указать интерфейс, на котором выполняется запрос маршрутизатора IPv6. Например, для указания rtadvd 8 использовать Теперь мы должны создать файл настройки, на интерфейс, который вы будете использовать. на префикс вашего размещения. больше ничего менять не потребуется. Иначе, вам потребуется изменить Предоставил Harti Brandt. это простейший метод использования асинхронного режима передачи Asynchronous Transfer Mode, ATM с IP. Он может быть использован с коммутируемыми подключениями switched connections, SVC и с постоянными подключениями permanent connections, PVC. В этом разделе будет описано как настроить сеть на основе PVC. с PVC это подключение каждого компьютера к каждому в сети с выделенным PVC. Хотя настройка проста, она непрактична для большого количества компьютеров. В примере предполагается, что в сети есть четыре компьютера, каждый подключенный к ATM адаптера. Первый шаг это планирование IP адресов и ATM подключений между компьютерами. Мы используем: Значения VPI и VCI на каждом конце соединения конечно могут отличаться, но для упрощения мы предполагаем, что они одинаковы. Затем нам потребуется настроить ATM интерфейсы на каждом хосте: ifconfig hatm0 192.168.173.1 up ifconfig hatm0 192.168.173.2 up ifconfig hatm0 192.168.173.3 up ifconfig hatm0 192.168.173.4 up предполагая, что ATM интерфейс называется на всех хостах. Теперь PVC необходимо настроить на мы предполагаем, что ATM коммутаторы уже настроены, вам необходимо свериться с руководством на коммутатор за информацией по настройке. atmconfig natm add 192.168.173.2 hatm0 0 100 llc/snap ubr atmconfig natm add 192.168.173.3 hatm0 0 101 llc/snap ubr atmconfig natm add 192.168.173.4 hatm0 0 102 llc/snap ubr atmconfig natm add 192.168.173.1 hatm0 0 100 llc/snap ubr atmconfig natm add 192.168.173.3 hatm0 0 103 llc/snap ubr atmconfig natm add 192.168.173.4 hatm0 0 104 llc/snap ubr atmconfig natm add 192.168.173.1 hatm0 0 101 llc/snap ubr atmconfig natm add 192.168.173.2 hatm0 0 103 llc/snap ubr atmconfig natm add 192.168.173.4 hatm0 0 105 llc/snap ubr atmconfig natm add 192.168.173.1 hatm0 0 102 llc/snap ubr atmconfig natm add 192.168.173.2 hatm0 0 104 llc/snap ubr atmconfig natm add 192.168.173.3 hatm0 0 105 llc/snap ubr Конечно, вместо UBR может быть использован другой тип, если ATM адаптер поддерживает это. В этом случае имя типа дополняется параметрами трафика. Помощь по atmconfig 8 может быть получена командой: networkinterfaceslo0 hatm0 ifconfighatm0inet 192.168.173.1 up natmstaticrouteshostB hostC hostD routehostB192.168.173.2 hatm0 0 100 llc/snap ubr routehostC192.168.173.3 hatm0 0 101 llc/snap ubr routehostD192.168.173.4 hatm0 0 102 llc/snap ubr FreeBSD доступна в коробочной версии FreeBSD CD диски, дополнительное программное обеспечение, печатная документация от нескольких поставщиков: Hilliard House, Lester Way Если вы продавец и хотите заниматься FreeBSD CDROM, пожалуйста свяжитесь с распространителем: Официальным источником FreeBSD являются анонимные FTP зеркала по всему миру. Сайт /pub/FreeBSD/имеет хорошее подключение и поддерживает большое количество одновременных соединений, но для вас возможно потребуется найти ближайшее зеркало особенно если вы решили настроить у себя какой-то из видов зеркал. База данных зеркал FreeBSD предпочтительнее по сравнению со списком зеркал в Руководстве, поскольку информация в базе собирается из DNS, а не из статического списка узлов. Кроме того, FreeBSD доступна через анонимный FTP со следующих зеркал. Если вы выбрали получение FreeBSD через анонимный FTP, пожалуйста выберите ближайший к вам сайт. Зеркала из списка Основных зеркал обычно содержат полный архив FreeBSD все доступные на данный момент версии для каждой архитектуры, скорость загрузки возможно будет больше с зеркала, расположенного в вашей стране или регионе. Сайты каждой страны содержат последнюю версию для наиболее популярных архитектур, но на них может не быть полного архива FreeBSD. Все сайты предоставляют доступ через анонимный FTP, а некоторые предоставляют доступ и другими методами. Для каждого сайта приведен список методов доступа в скобках после имени хоста. Анонимный CVS известный также как, anoncvs это возможность, предоставляемая утилитами CVS, поставляемыми с FreeBSD для синхронизации с удаленным CVS репозиторием. Помимо прочего, он позволяет пользователям FreeBSD без специальных привилегий с правами только на чтение выполнять CVS операции на одном из официальных anoncvs серверов проекта FreeBSD. Для использования этой возможности, просто установите переменную на соответствующий сервер anoncvs, введите общеизвестный пароль anoncvs в ответ на приглашение команды а затем используйте cvs 1 для доступа к репозиторию как к обычному локальному CVS. сохраняет пароли, использованные для авторизации на сервере CVS в файле с именем Если этот файл не существует, вы можете получить сообщение об ошибке при первом запуске Просто создайте пустой файл anoncvs выполняют в сущности похожие функции, есть несколько отличий, которые могут повлиять на выбор метода синхронизации. По своей сути, CVSup гораздо более эффективно использует сетевые ресурсы, и из двух этих программ он более интеллектуален, но за его эффективность приходится платить. Во-первых, для того, чтобы появилась возможность хоть что-то получить этим методом, CVSup потребуется установить и настроить специальную программу, а во-вторых, этот CVSup позволяет синхронизацию только довольно больших частей исходных текстов, называемых Anoncvs напротив может использоваться для получения как одного файла, так и всей программы например с помощью ссылки на имя модуля CVS. Конечно, anoncvs хорошо подходит только при операциях на чтение CVS репозитория, поэтому если вы намереваетесь производить локальную разработку в одном из репозиториев проекта FreeBSD, вам подойдет только CVSup. anoncvs серверов проекта FreeBSD. На момент написания этого документа доступны следующие сервера: и введите любой пароль в ответ на приглашение. home/ncvs pserver пароль anoncvs, ssh нет пароля и введите пароль anoncvs в ответ на приглашение. home/ncvs rsh, pserver, ssh, ssh/2022 и введите пароль anoncvs в ответ на приглашение. Поскольку CVS позволяет выполнить check out практически любой версии исходных текстов FreeBSD, которые когда-либо существовали или, в некоторых случаях, будут существовать, вам необходимо познакомиться с флагом cvs 1 для ревизий и с параметрами, которые могут быть использованы с этим флагом в репозитории проекта FreeBSD. Есть два вида тегов, теги ревизий и теги ветвей. Теги ревизий отвечают за определенную ревизию. Их значение остается прежним изо дня в день. Теги ветвей сопоставляются последней ревизии определенной ветви разработки, в любой момент времени. Поскольку теги ветвей не сопоставлены какой-то определенной ревизии, завтра они могут означать совсем не то, что сегодня. Разд. A.6 содержит теги ревизий, которые могут заинтересовать пользователей. Опять же, ни один из них не подходит для коллекции портов, поскольку в коллекции портов нет разнообразия ревизий. Если вы указываете тег ветви, то обычно получаете последнюю версию файлов этой ветви разработки. Если вы хотите получить предыдущую версию, это можно сделать путем указания даты флагом Обратитесь к странице справочника cvs 1 за более подробной информацией. Хотя перед тем, как что-то делать, рекомендуется полностью прочесть страницу справочника cvs 1, вот несколько кратких примеров использования Anonymous CVS: Пример A-1. Извлечение кода из - CURRENT ls 1 с последующим удалением: At the prompt, enter the password anoncvs. Пример A-2. Использование SSH для извлечения дерева The authenticity of host 128.46.156.46 cant be established. DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65. Are you sure you want to continue connecting yes/no? Warning: Permanently added DSA to the list of known hosts. Пример A-3. Извлечение ls 1 из ветви для 3.X-STABLE: At the prompt, enter the password anoncvs. Пример A-4. Создание списка изменений ls 1 в виде unified diff At the prompt, enter the password anoncvs. Пример A-5. Поиск доступных имен модулей: At the prompt, enter the password anoncvs. CVS Home, сообщество разработки и поддержки CVS. CVSweb это веб интерфейс к CVS проекта FreeBSD. CTM это метод синхронизации удаленного дерева исходных текстов с центральным. Он был разработан для использования с деревом исходных текстов FreeBSD, хотя может быть полезен и для других целей. На данный момент существует очень немного если она вообще существует документации по процессу создания дельта-файлов deltas, разница между имеющимися и актуальными исходными текстами, поэтому обратитесь в список рассылки ctm-users за дополнительной информацией, если захотите использовать A.4.1. Зачем мне может понадобиться CTM создаст для вас локальную копию исходных текстов FreeBSD. Существует множество разновидностей дерева исходных текстов. Захотите ли вы поддерживать все дерево CVS или только одну из ветвей, CTM может предоставить вам все необходимое. Если вы разработчик FreeBSD, но ваше соединение по TCP/IP некачественное или отсутствует, или же вы просто хотите, чтобы изменения автоматически отправлялись вам, CTM предназначен для вас. Вам потребуется получать до трех изменений в день для наиболее активных ветвей. Они будут отправляться вам по электронной почте. Размеры обновлений всегда поддерживаются настолько малыми, насколько это возможно. Они обычно меньше 5K, хотя случается раз из десяти достигают 10-50K и время от времени даже 100K или больше. Вам также потребуется узнать о различных особенностях работы непосредственно с исходными текстами в разработке, вместо готовых релизов. Это в частности относится к выбору исходных текстов ветви - CURRENT. Рекомендуется прочесть материал На переднем крае разработок. Вам потребуются две вещи: программа CTM и исходные тексты, которые требуется обновить до актуального состояния. Программа CTM была частью FreeBSD все время с момента выпуска релиза 2.0, она находится в каталоге если у вас есть копия исходных текстов. Дельта-файлы CTM могут приходить двумя путями, через FTP или email. Если у вас есть доступ к интернет по FTP, доступ к Подпишитесь на один из списков распространения CTM. ctm-cvs-cur поддерживает все дерево CVS. ctm-src-cur поддерживает главную ветвь разработки. ctm-src-4 поддерживает ветвь 4.X, и т.д. Если вы не знаете, как подписаться на список, нажмите на ссылку выше или на ссылку /mailman/listinfo, а затем на ссылку соответствующего списка. Страница списка должна содержать все необходимые инструкции по подписке. Когда вы начнете получать обновления CTM по почте, используйте программу для распаковки и применения обновлений. Вы можете использовать программу если хотите полностью автоматизировать процесс. Прочтите страницу справочника с более подробной информацией. CTM, вам потребуется подписка на список рассылки ctm-announce. В будущем этот список станет единственным местом, где будут анонсироваться операции, относящиеся к системе CTM. Нажмите на ссылку выше и следуйте инструкциям для подписки на эту рассылку. A.4.3. Использование Перед тем, как вы сможете начать использование дельта-файлов CTM, потребуется определить исходную точку для последующего их применения. Сначала потребуется определить, что уже имеется. Каждый может начать с пустого empty каталога. Вы должны использовать дельта-файл Empty для создания поддерживаемого CTM дерева. Планируется распространение стартовых дельта-файлов на CD, но на данный момент это не делается. Поскольку дерево исходных текстов может быть объемом в десятки мегабайт, предпочтительно начать с каких-то уже имеющихся текстов. Если у вас есть - RELEASE CD, распакуйте исходные тексты с него. Это снизит объем передаваемых данных. добавляемому к номеру например, соответствует имеющимся исходным текстам. это пустой каталог. Как правило файл с создается через каждые 100 дельта-файлов. Между прочем, эти файлы большие! От 70 до ; мегабайт упакованных Как только вы получили основной дельта-файл, потребуются также все дельта-файлы с последующими номерами. A.4.4. Повседневное использование Для применения дельта-файлов, просто выполните: ctm - v - v/where/you/store/your/deltas/src-xxx. CTM работает с дельта-файлами, упакованными с помощью поэтому вам не требуется их распаковывать. Хотя весь процесс довольно безопасен, CTM не будет изменять дерево исходных текстов. Для проверки дельта-файла вы также можете использовать флаг CTM только проверит целостность дельта-файла а также его применимость к существующим исходным текстам. Это все. Каждый раз после получения дельта-файла, запускайте CTM для поддержания исходных текстов в актуальном состоянии. Не удаляйте дельта-файлы, если их сложно загрузить еще раз. Вы возможно захотите сохранить их на всякий случай. Если вы можете сохранить их только на дискете, используйте для создания копии Как разработчик вы возможно захотите поэкспериментировать и изменить файлы в дереве исходных текстов. CTM имеет ограниченную поддержку локальных изменений: перед проверкой наличия файла Такое поведение обеспечивает простой путь поддержки локальных изменений: просто скопируйте файлы, которые вы хотите изменить, в файлы с соответствующими именами и суффиксом Вы можете свободно изменять код, а Вы можете определить список изменений, которые CTM внесет в исходные тексты, используя параметр CTM Это полезно, если вы хотите поддерживать лог изменений, выполнить предварительную или последующую обработку изменяемых файлов, или если вы просто немного параноидальны. Иногда вам может понадобиться сделать резервные копии всех файлов, которые будут изменены CTM. Иногда необходимо ограничить набор файлов, обновляемых CTM, или даже задать обновление нескольких определенных файлов. Вы можете управлять списком файлов, с которыми будет работать CTM, путем указания фильтрующих регулярных выражений с параметрами Например, для извлечения свежей копии из коллекции сохраненных дельта-файлов CTM, выполните команду: ctm - e lib/libc/Makefile ctm/src-xxx. Для каждого указанного CTM дельта-файла, параметры применяются в порядке их задания в командной строке. Файл обрабатывается CTM только если он помечается как подходящий после обработки всех параметров A.4.7. Дальнейшие планы для CTM, позволяющий обнаружение поддельных дат Доработать параметры CTM, поскольку они могут ввести в заблуждение. но интерес к нему пока не так высок. CTM/FreeBSD доступен через анонимный FTP с нижеприведенных зеркал. Если вы выбрали получение CTM через анонимный FTP, используйте ближайший к вам сервер. В случае возникновения проблем обратитесь в список рассылки ctm-users. California, Bay Area, официальный источник South Africa, резервный сервер для старых дельта-файлов Если вы не нашли ближайшего к вам зеркала, или зеркало неполно, попробуйте воспользоваться поиском, например alltheweb. CVSup это пакет программного обеспечения для распространения и обновления исходных текстов с основного репозитория CVS на удаленном сервере. Исходные тексты FreeBSD поддерживаются в репозитории CVS на центральной машине разработки в Калифорнии. С помощью CVSup пользователи FreeBSD легко могут поддерживать собственные исходные тексты в актуальном состоянии. опрашивающую pull модель обновления. Работая по этой модели, каждый клиент запрашивает обновления с сервера, если и когда они нужны. Сервер пассивно ожидает запросы на обновление от своих клиентов. Таким образом, все обновления инициируются клиентами. Сервер никогда не высылает не запрошенные обновления. Пользователь для получения обновлений должен либо запустить CVSup клиента вручную, либо добавить задание в для настройки периодических обновлений в автоматическом режиме. Термин CVSup, написанный с заглавными буквами, означает весь пакет программного обеспечения. Его основные компоненты это клиент запускаемый на каждом пользовательском компьютере, и сервер работающий на каждом зеркале FreeBSD. sup. Sup был предшественником CVSup, и выполнял похожие функции. CVSup в основном используется тем же способом, что и sup, и, фактически, использует файлы настройки, обратно совместимые с файлами Sup более не используется проектом FreeBSD, поскольку CVSup и быстрее и более гибок. из коллекции пакетов FreeBSD. Если вы предпочтете собрать CVSup из исходных текстов, можете использовать вместо этого порт зависит от системы Modula-3, которой потребуется существенный объем времени и пространства на диске для загрузки и установки. Замечание: Если вы собираетесь использовать CVSup на компьютере, где нет установленного XFree86 или Xorg, например на сервере, используйте порт, не включающий CVSup GUI Работа CVSup контролируется файлом настройки, называемым последовательным ответом на каждый из этих вопросов. Сначала опишем общую структуру это текстовый файл. Комментарии, начинающиеся с продолжаются до конца строки. Пустые строки и строки, содержащие только комментарии, игнорируются. Каждая из оставшихся строк описывает набор файлов, получаемых пользователем. Строка начинается с имени коллекции, логического объединения файлов, определяемых сервером. Имя коллекции говорит серверу о том, какие файлы вам нужны. После имени коллекции следуют одно или больше полей, разделенных пробелом. Эти поля отвечают на вопросы, заданные выше. Есть два типа полей: флаги и значения. Поле флага состоит из одного ключевого слова, например Поле значения также начинается с ключевого слова, но за ним без пробела следует обычно задает получение более одной коллекции. Одним из способов построения является указание всех соответствующих полей для каждой коллекции явно. Однако, это приводит к появлению слишком длинных строк в и это неудобно, поскольку большинство полей одинаковы для всех коллекций CVSup предоставляет механизм задания значений по умолчанию для устранения этих проблем. Строки, начинающиеся со специального имени псевдо-коллекции splitdefault могут быть использованы для установки флагов и значений, которые послужат значениями по умолчанию для всех последующих коллекций Значение по умолчанию может быть перезаписано для каждой отдельной коллекции путем указания другого значения в ее собственных параметрах. Значения по умолчанию также могут быть изменены или расширены в любом месте Получив эту информацию, мы начнем строить для получения и обновления главного дерева исходных текстов FreeBSD-CURRENT. Какие файлы вы хотите получить? Файлы, доступные через CVSup, организованы в именованные группы, называемые коллекциями. Доступные коллекции описаны в следующем разделе. В этом примере мы получим все дерево исходных текстов системы FreeBSD. Существует одиночная большая коллекция которая позволит нам сделать это. В качестве первого шага по созданию добавим список коллекций, по одной на строку в нашем случае, только одну строку: Какие их версии вам нужны? С CVSup вы в принципе можете получить любую версию исходных текстов, которая когда-либо существовала. Это возможно, поскольку cvsupd сервер работает непосредственно с репозиторием CVS, который содержит все версии. Вы указываете ту, которая вам нужна, с помощью полей Некоторые теги существуют только в определенных коллекциях файлов. Если вы укажете некорректный тег или ошибетесь в его написании, CVSup удалит файлы, которые вы возможно не хотели удалять. В частности, используйте только означают символьные имена в репозитории. Существует два вида тегов, теги ревизий и теги ветвей. Теги ревизий означают определенную ревизию. Они не меняются со временем. Теги ветвей, с другой стороны, означают последнюю ревизию заданной линии разработки в любой момент времени. Поскольку тег ветви не относится к определенной ревизии, он может означать завтра что-то иное чем сегодня. Разд. A.6 содержит теги ветвей, которые могут быть интересны пользователям. Тег, указанный в файле настройки CVSup, должен предваряться строкой Помните, что для коллекции портов подходит только Внимание: Будьте очень осторожны при наборе имен тегов. CVSup не может отличить правильные и неправильные теги. Если вы неправильно наберете тег, CVSup поведет себя так, как если бы вы указали тег, не содержащий файлов. В этом случае он удалит существующие исходные тексты. При указании тега ветви вы получите последние версии файлов этой ветви разработки. Если вы хотите получить какую-то из предыдущих версий, сделайте это указав дату в поле значения Страница справочника cvsup 1 описывает как сделать это. В нашем примере мы хотим получить FreeBSD-CURRENT. Мы добавим эту строку в начало Существует важный специальный случай, когда не задаются ни поле В этом случае вы получите последние версии RCS файлов непосредственно из CVS репозитория сервера вместо получения определенной версии. Разработчики обычно предпочитают этот способ. Поддерживая копию репозитория в своей системе, они получают возможность просмотра истории ревизий и проверки последних версий файлов. Однако это достигается ценой большего занимаемого дискового пространства. Откуда вы хотите их получить? откуда забирать обновления. Подойдет любое из CVSup зеркал, хотя вы должны попробовать выбрать ближайшее к вам зеркало. В этом примере мы используем не существующий сервер, CVSup. При каждом запуске вы можете перезаписать настройку хоста из командной строки, используя параметр Где вы хотите разместить их на своем компьютере? где размещать получаемые файлы. В этом примере, мы поместим файлы непосредственно в главное дерево исходных текстов, уже подразумевается в коллекциях, которые мы собираемся получить, поэтому корректное указание таково: Клиент CVSup поддерживает определенные файлы статуса в так называемом base каталоге. Эти файлы помогают CVSup работать более эффективно путем поддержки истории уже полученных обновлений. Мы будем использовать стандартный каталог base, Если base каталог не существует, теперь подходящий момент для его создания. Клиент не запустится, если base каталог не существует. Существует еще одна строка, которая обычно должна присутствовать в означает, что сервер должен получать информацию из главного репозитория FreeBSD CVS. Это обычно всегда так, но существуют несколько иных вариантов, изложение которых выходит за пределы этой главы. дает CVSup возможность удалять файлы. Вы должны всегда указывать этот параметр, чтобы CVSup мог поддерживать дерево исходных текстов полностью актуальным. CVSup удалит только те файлы, за которые отвечает. Все другие файлы останутся нетронутыми. мистика. Если вы действительно хотите узнать о нем, обратитесь к странице справочника cvsup 1. Иначе просто укажите это поле и не беспокойтесь о нем больше. включает использование gzip сжатия при передаче данных. Если ваше сетевое подключение работает со скоростью T1 или быстрее, вам возможно не потребуется использование сжатия. Иначе оно обычно помогает. default tag. default default prefix/usr default base/var/db default releasecvs delete use-rel-suffix compress src-all Как упомянуто выше, CVSup использует метод опроса. В основном это означает, что вы подключаетесь к CVSup серверу, и он говорит Вот то, что вы можете загрузить с, и клиент отвечает OK, я возьму это, это и это. С настройкой по умолчанию CVSup клиент заберет каждый файл, связанный с коллекцией и тегом, выбранным в файле настройки. Однако, это не всегда то, что вам нужно, особенно если вы синхронизируете деревья большинство людей не могут читать на пяти или четырех языках, и следовательно им не требуются локализованные файлы. Если вы обновляете коллекцию портов, это можно обойти путем индивидуального указания каждой коллекции например, ports-biology и т.д. вместо коллекции ports-all. Однако, поскольку для деревьев нет специфичных для языка коллекций, используйте одну из замечательных возможностей говорит CVSup, что он не должен забирать каждый файл из коллекции; другими словами, он говорит клиенту отказаться refuse от получения с сервера определенных файлов. Файл можно найти или, если у вас его еще нет, должен быть помещен в наше стандартное расположение что означает, что по умолчанию файл очень прост; он содержит имена файлов или каталогов, которые вы не хотите загружать. Например, если вы не можете разговаривать ни на каком языке кроме английского и русского, и вы не будете читать документацию на этих языках, поместите следующие строки в файл и так далее для других языков полный список находится на странице FreeBSD CVS репозитория. С этой очень полезной возможностью пользователи с низкоскоростным подключением или с поминутной платой за подключение смогут сохранить время, поскольку им более не потребуется загружать файлы, которые они никогда не будут использовать. За более подробной информацией о файлах и замечательных возможностях CVSup, обратитесь к его справочной странице. A.5.4. Запуск Теперь вы готовы к тестированию обновления. Командная строка для этого очень проста: который только что был создан. При запуске под X11, отобразит GUI интерфейс с несколькими полезными кнопками. Нажмите кнопку go и смотрите за его работой. вам потребуется, запуск программы из под были права, необходимые для обновления файлов. Если файл настройки только что создан, и эта программа раньше никогда не использовалась, это может действовать вам на нервы. Есть простой способ для пробного запуска без затрагивания ваших драгоценных файлов. Просто создайте где-нибудь пустой каталог и поместите его в качестве дополнительного аргумента командной строки: Указанный каталог будет использоваться в качестве места назначения всех обновлений. но не станет изменять или удалять их. Вместо этого все обновления файлов будут помещены в При запуске таким способом CVSup оставит также неприкосновенным каталог base. Новые версии этих файлов будут записаны в указанный каталог. Если у вас есть права на чтение каталога вам даже не потребуется работать под для выполнения пробного обновления. Если вы не работаете с X11 или просто не любите GUI, добавьте набор параметров командной строки при запуске указывает CVSup не использовать GUI. Он действует автоматически, если вы не работаете под X11, но иначе вам потребуется его указать. указывает CVSup выводить информацию о каждом производимом обновлении. Есть три уровня протоколирования, от Уровень по умолчанию 0, что означает полное отсутствие сообщений, за исключением сообщений об ошибках. Доступно множество других параметров. Для получения их краткого списка, наберите За более подробным описанием обратитесь к странице справочника. После проверки работоспособности обновлений вы можете организовать регулярные запуски CVSup с помощью cron 8. Очевидно, вы не должны позволять CVSup использовать GUI при запуске из cron 8. A.5.5. Коллекции файлов Коллекции файлов, доступные через CVSup, организованы иерархически. Существует несколько больших коллекций, и они разделены на несколько меньших под-коллекций. Получение большой коллекции эквивалентно получению каждой из ее подколлекции. Иерархические отношения между коллекциями отражаются путем использования отступов в списке ниже. Другие коллекции используются небольшими группами людей для специальных целей и некоторые сайты зеркал могут не содержать их все. Главный FreeBSD CVS репозиторий, включающий криптографический код. Файлы, относящиеся к распространению и зеркалированию FreeBSD. Исходные тексты Руководства FreeBSD и другой документации. Они не включают файлы веб-сайта FreeBSD. Коллекция портов FreeBSD. все дерево портов, а только одну из подколлекций, перечисленных ниже, убедитесь, что вы каждый раз обновляете подколлекцию При любых изменениях в инфраструктуре сборки портов подколлекции они могут быть использованы настоящими портами довольно скоро. Таким образом, если вы обновляете только настоящие порты и они используют некоторые новые возможности, есть большой шанс того, что их сборка прервется с непонятным сообщением об ошибке. Самое первое, что вы должны сделать, это убедиться, что подколлекция полное дерево портов. Построение файла с частью дерева не поддерживается, хотя и возможно. См. также FAQ. ПО для поддержки пользователей с нарушениями зрения, слуха и т.п. Поддержка арабского языка. Инфраструктура сборки портов - различные файлы, расположенные в подкаталогах всегда обновлять эту подколлекцию, при каждом обновлении любой части коллекции портов FreeBSD! Измерение производительности. Поддержка китайского языка. Коммуникационные программы. Преобразование кодировок. Вещи, использовавшиеся на рабочем столе до изобретения компьютеров. Программы, имеющие отношение к DNS. Эмуляторы других операционных систем. Финансовые, расчетные и связанные с ними приложения. Клиентские и серверные утилиты FTP. Поддержка немецкого языка. Поддержка венгерского языка. Поддержка японского языка. Поддержка корейского языка. Языки программирования. Почтовое программное обеспечение. Математические программы. Мультимедийное программное обеспечение. Сетевое программное обеспечение. ПО для сетевого управления. Программное обеспечение новостей USENET. Программная поддержка для Palm. Поддержка польского языка. Поддержка португальского языка. Поддержка русского языка. Научное программное обеспечение. Оболочки командной строки. Утилиты обработки текста не включают настольные утилиты публикации. Поддержка украинского языка. Поддержка вьетнамского языка. Программы, относящиеся к World Wide Web. Порты с поддержкой X window system. Шрифты и шрифтовые утилиты X11. Пакеты разработки приложений для X11. Основные исходные тексты FreeBSD, включая криптографический код. Утилиты, которые могут потребоваться в однопользовательском режиме Утилиты и библиотеки, заимствованные проектом FreeBSD, используются почти без модификаций Криптографические утилиты и библиотеки, заимствованные проектом FreeBSD, используются почти без модификаций Не используются в текущих релизах FreeBSD. Утилиты, попадающие под GNU Public License Системные программы, обычно выполняемые другими программами Файлы, необходимые для производства релизов FreeBSD Файлы, которые могут быть использованы несколькими системами Исходные тексты www сайта FreeBSD. Собственные файлы настройки сервера CVSup. Используются зеркалами CVSup. База данных отслеживания ошибок GNATS. Архив списков рассылки FreeBSD. Файлы предобработки WWW сайта FreeBSD не исходные файлы. Используются зеркалами WWW. Большая часть связанных с FreeBSD обсуждений CVSup проводилась в списке рассылки freebsd-hackers. Новые версии программного обеспечения анонсируются здесь и в списке рассылки freebsd-announce. cvs или CVSup должен быть указан тег ревизии Тег относится либо к определенной линии разработки FreeBSD либо к определенному моменту времени. Первый тип называется тегом ветви, второй тип называется тегом релиза. который всегда работает, относятся только к дереву Символическое имя для основной ветви разработки, FreeBSD-CURRENT. Используется по умолчанию, если тег не указан. В CVSup, этот тег представлен символом не знак пунктуации, а символ Замечание: В CVS тег по умолчанию используется, если тег не указан вообще. Обычно не очень хорошей идеей является обновление до CURRENT на машине со STABLE, только если вы не стремитесь именно к этому. Ветвь разработки FreeBSD-6.X, известная также как FreeBSD 6-STABLE. Ветвь разработки FreeBSD-5.X, известная также как FreeBSD 5-STABLE. Ветвь релиза для FreeBSD-5.4, используемая только для исправлений безопасности и других критических исправлений. Ветвь релиза для FreeBSD-5.3, используемая только для исправлений безопасности и других критических исправлений. Ветвь релиза для FreeBSD-5.2 и FreeBSD-5.2.1, используемая только для исправлений безопасности и других критических исправлений. Ветвь релиза для FreeBSD-5.1, используемая только для исправлений безопасности и других критических исправлений. Ветвь релиза для FreeBSD-5.0, используемая только для исправлений безопасности и других критических исправлений. Ветвь разработки FreeBSD-4.X, известная также как FreeBSD 4-STABLE. Ветвь релиза для FreeBSD-4.11, используемая только для исправлений безопасности и других критических исправлений. Ветвь релиза для FreeBSD-4.10, используемая только для исправлений безопасности и других критических исправлений. Ветвь релиза для FreeBSD-4.9, используемая только для исправлений безопасности и других критических исправлений. Ветвь релиза для FreeBSD-4.8, используемая только для исправлений безопасности и других критических исправлений. Ветвь релиза для FreeBSD-4.7, используемая только для исправлений безопасности и других критических исправлений. Ветвь релиза для FreeBSD-4.6 и FreeBSD-4.6.2, используемая только для исправлений безопасности и других критических исправлений. Ветвь релиза для FreeBSD-4.5, используемая только для исправлений безопасности и других критических исправлений. Ветвь релиза для FreeBSD-4.4, используемая только для исправлений безопасности и других критических исправлений. Ветвь релиза для FreeBSD-4.3, используемая только для исправлений безопасности и других критических исправлений. Ветвь разработки для FreeBSD-3.X, известная также как 3.X-STABLE. Ветвь разработки для FreeBSD-2.2.X, известная также как 2.2-STABLE. Эта ветвь по большей части устарела. Эти теги относятся к определенным моментам времени, когда были выпущены конкретные версии FreeBSD. Процесс выпуска релизов более детально документирован в информации о выпусках релизов и статье о процессе подготовки релизов. Дерево использует имена тегов, начинающиеся с используют теги, имена которых начинаются с нет специальных имен для релизов. Stacken Computer Club, KTH, Sweden 130.237.234.43 130.237.237.230 130.237.234.3 rsync работает в основном тем же путем, что и команда rcp 1, но поддерживает больше параметров и использует протокол удаленного обновления rsync, который передает только разницу между двумя наборами файлов, что значительно повышает скорость синхронизации по сети. Это особенно полезно, если вы поддерживаете зеркало сервера FreeBSD FTP, или репозитория CVS. Пакет rsync доступен для многих операционных систем, в FreeBSD используйте порт ftp: Частичное зеркало FreeBSD FTP сервера. FreeBSD: Полное зеркало FreeBSD FTP сервера. freebsd-cvs: Полный FreeBSD CVS репозиторий. Этот компьютер помимо прочих также зеркалирует CVS репозитории проектов NetBSD и OpenBSD. vol/4/freebsd-core: Полное зеркало FreeBSD FTP сервера. Полное зеркало FreeBSD FTP сервера. Этот сервер может использоваться только основными зеркалами FreeBSD. FreeBSD: Основной архив FreeBSD FTP сервера. acl: Основной ACL список FreeBSD. FreeBSD: Полное зеркало FreeBSD FTP сервера. Так как страницы Справочника FreeBSD предоставляют лишь описание отдельных частей операционной системы FreeBSD, они не очень удобны для иллюстрации объединения этих частей вместе для того, чтобы настроить ОС и сделать ее работу более гладкой. Для этого незаменимы хорошая книга по системному администрированию UNIX и хорошее руководство пользователя. FreeBSD Unleashed перевод на китайский, опубликовано China Machine Press. ISBN 7-111-10201-0. FreeBSD From Scratch First Edition на китайском, опубликовано China Machine Press. ISBN 7-111-07482-3. FreeBSD From Scratch Second Edition на китайском, опубликовано China Machine Press. ISBN 7-111-10286-X. FreeBSD Windows на китайском, ISBN 7-113-03845-X FreeBSD Internet Services HOWTO на китайском, ISBN 7-113-03423-3 FreeBSD for PC 98ers на японском, выпущено SHUWA System Co, LTD. ISBN 4-87966-468-5 C3055 P2900E. FreeBSD на японском, выпущено CUTT. ISBN 4-906391-22-2 C3055 P2400E. FreeBSD Handbook японский перевод, выпущено ASCII. ISBN 4-7561-1580-2 P3800E. FreeBSD mit Methode на немецком, выпущено Computer und Literatur Verlag/Vertrieb Hanser, 1998. ISBN 3-932311-31-0. Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo Teach Yourself FreeBSD in 24 Hours, выпущено Sams, 2002. ISBN: 0672324245 FreeBSD unleashed, выпущено Sams, 2002. ISBN: 0672324563 FreeBSD: The Complete Reference, выпущено McGrawHill, 2003. ISBN: 0072224096 Computer Systems Research Group, UC Berkeley. 4.4BSD Users Reference Manual. OReilly Associates, Inc., 1994. ISBN 1-56592-075-9 Computer Systems Research Group, UC Berkeley. 4.4BSD Users Supplementary Documents. OReilly Associates, Inc., 1994. ISBN 1-56592-076-7 UNIX in a Nutshell. OReilly Associates, Inc., 1990. ISBN 093717520X Mui, Linda. What You Need To Know When You Cant Find Your UNIX System Administrator. OReilly Associates, Inc., 1995. ISBN 1-56592-104-6 Итальянский перевод этого документа доступен как часть FreeBSD Italian Documentation Project. Albitz, Paul and Liu, Cricket. DNS and BIND, 4th Ed. OReilly Associates, Inc., 2001. ISBN 1-59600-158-4 Computer Systems Research Group, UC Berkeley. 4.4BSD System Managers Manual. OReilly Associates, Inc., 1994. ISBN 1-56592-080-5 Sendmail, 2nd Ed. OReilly Associates, Inc., 1997. ISBN 1-56592-222-0 Frisch, leen. Essential System Administration, 2nd Ed. OReilly Associates, Inc., 1995. ISBN 1-56592-127-5 Hunt, Craig. TCP/IP Network Administration, 2nd Ed. OReilly Associates, Inc., 1997. ISBN 1-56592-322-7 Nemeth, Evi. UNIX System Administration Handbook. 2nd Ed. Prentice Hall, 2000. ISBN 0-13-020601-6 Stern, Hal Managing NFS and NIS OReilly Associates, Inc., 1991. ISBN 0-937175-75-7 Asente, Paul, Converse, Diana, and Swick, Ralph. X Window System Toolkit. Digital Press, 1998. ISBN 1-55558-178-1 Computer Systems Research Group, UC Berkeley. 4.4BSD Programmers Reference Manual. OReilly Associates, Inc., 1994. ISBN 1-56592-078-3 Computer Systems Research Group, UC Berkeley. 4.4BSD Programmers Supplementary Documents. OReilly Associates, Inc., 1994. ISBN 1-56592-079-1 Harbison, Samuel P. and Steele, Guy L. Jr. C: A Reference Manual. 4th ed. Prentice Hall, 1995. ISBN 0-13-326224-3 Kernighan, Brian and Dennis M. Ritchie. The C Programming Language. 2nd Ed. PTR Prentice Hall, 1988. ISBN 0-13-110362-8 Lehey, Greg. Porting UNIX Software. OReilly Associates, Inc., 1995. ISBN 1-56592-126-7 Plauger, P. J. The Standard C Library. Prentice Hall, 1992. ISBN 0-13-131509-9 Spinellis, Diomidis. Code Reading: The Open Source Perspective. Addison-Wesley, 2003. ISBN 0-201-79940-5 Stevens, W. Richard. Advanced Programming in the UNIX Environment. Reading, Mass.: Addison-Wesley, 1992. ISBN 0-201-56317-7 Stevens, W. Richard. UNIX Network Programming. 2nd Ed, PTR Prentice Hall, 1998. ISBN 0-13-490012-X Wells, Bill. Writing Serial Drivers for UNIX. Dr. Dobbs Journal. 1915, December 1994. pp68-71, 97-99. Andleigh, Prabhat K. UNIX System Architecture. Prentice-Hall, Inc., 1990. ISBN 0-13-949843-5 Jolitz, William. Porting UNIX to the 386. Dr. Dobbs Journal. January 1991-July 1992. Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels and John Quarterman The Design and Implementation of the 4.3BSD UNIX Operating System. Reading, Mass.: Addison-Wesley, 1989. ISBN 0-201-06196-1 Leffler, Samuel J., Marshall Kirk McKusick, The Design and Implementation of the 4.3BSD UNIX Operating System: Answer Book. Reading, Mass.: Addison-Wesley, 1991. ISBN 0-201-54629-9 McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and John Quarterman. The Design and Implementation of the 4.4BSD Operating System. Reading, Mass.: Addison-Wesley, 1996. ISBN 0-201-54979-4 глава 2 этой книги доступна онлайн как часть Проекта документирования FreeBSD, и глава 9 доступна здесь. Marshall Kirk McKusick, George V. Neville-Neil The Design and Implementation of the FreeBSD Operating System. Boston, Mass.: Addison-Wesley, 2004. ISBN 0-201-70245-2 Stevens, W. Richard. TCP/IP Illustrated, Volume 1: The Protocols. Reading, Mass.: Addison-Wesley, 1996. ISBN 0-201-63346-9 Schimmel, Curt. Unix Systems for Modern Architectures. Reading, Mass.: Addison-Wesley, 1994. ISBN 0-201-63338-8 Stevens, W. Richard. TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP and the UNIX Domain Protocols. Reading, Mass.: Addison-Wesley, 1996. ISBN 0-201-63495-3 Vahalia, Uresh. UNIX Internals - - The New Frontiers. Prentice Hall, 1996. ISBN 0-13-101908-2 Wright, Gary R. and W. Richard Stevens. TCP/IP Illustrated, Volume 2: The Implementation. Reading, Mass.: Addison-Wesley, 1995. ISBN 0-201-63354-X Cheswick, William R. and Steven M. Bellovin. Firewalls and Internet Security: Repelling the Wily Hacker. Reading, Mass.: Addison-Wesley, 1995. ISBN 0-201-63357-4 Garfinkel, Simson and Gene Spafford. Practical UNIX Internet Security. 2nd Ed. OReilly Associates, Inc., 1996. ISBN 1-56592-148-8 Garfinkel, Simson. PGP Pretty Good Privacy OReilly Associates, Inc., 1995. ISBN 1-56592-098-8 Anderson, Don and Tom Shanley. Pentium Processor System Architecture. 2nd Ed. Reading, Mass.: Addison-Wesley, 1995. ISBN 0-201-40992-5 Ferraro, Richard F. Programmers Guide to the EGA, VGA, and Super VGA Cards. 3rd ed. Reading, Mass.: Addison-Wesley, 1995. ISBN 0-201-62490-7 Intel Corporation publishes documentation on their CPUs, chipsets and standards on their developer web site, usually as PDF files. Shanley, Tom. 80486 System Architecture. 3rd ed. Reading, Mass.: Addison-Wesley, 1995. ISBN 0-201-40994-1 Shanley, Tom. ISA System Architecture. 3rd ed. Reading, Mass.: Addison-Wesley, 1995. ISBN 0-201-40996-8 Shanley, Tom. PCI System Architecture. 4th ed. Reading, Mass.: Addison-Wesley, 1999. ISBN 0-201-30974-2 Van Gilluwe, Frank. The Undocumented PC, 2nd Ed. Reading, Mass: Addison-Wesley Pub. Co., 1996. ISBN 0-201-47950-8 Messmer, Hans-Peter. The Indispensable PC Hardware Book, 4th Ed. Reading, Mass: Addison-Wesley Pub. Co., 2002. ISBN 0-201-59616-4 Lion, John Lions Commentary on UNIX, 6th Ed. With Source Code. ITP Media Group, 1996. ISBN 1573980137 Raymond, Eric S. The New Hackers Dictionary, 3rd edition. MIT Press, 1996. ISBN 0-262-68092-0. Also known as the Jargon File Salus, Peter H. A quarter century of UNIX. Addison-Wesley Publishing Company, Inc., 1994. ISBN 0-201-54777-5 Simon Garfinkel, Daniel Weise, Steven Strassmann. The UNIX-HATERS Handbook. IDG Books Worldwide, Inc., 1994. ISBN 1-56884-203-1. Не печаталась, доступна по адресу online. Don Libes, Sandy Ressler Life with UNIX - special edition. Prentice-Hall, Inc., 1989. ISBN 0-13-536657-7 Old BSD releases from the Computer Systems Research group CSRG. /csrg/: В набор на 4CD включены все версии BSD от 1BSD до 4.4BSD и 4.4BSD-Lite2 но к сожалению нет 2.11BSD. На последнем диске находится также последняя версия исходных текстов и файлы SCCS. The C/C Users Journal. R D Publications Inc. ISSN 1075-2838 Sys Admin - - The Journal for UNIX System Administrators Miller Freeman, Inc., ISSN 1061-2688 freeX - - Das Magazin f r Linux - BSD - UNIX на немецком Computer- und Literaturverlag GmbH, ISSN 1436-7033 Высокая скорость прогресса FreeBSD делает непрактичным использование печатных изданий для информирования о последних разработках. Электронные ресурсы это лучший, а зачастую и единственный способ информирования о новых возможностях. Поскольку FreeBSD основывается на усилиях добровольцев, сообщество пользователей само по себе зачастую выполняет роль службы технической поддержки, а электронная почта и новости USENET это наиболее эффективный способ обращения к этому сообществу. Наиболее важная контактная информация сообщества пользователей FreeBSD показана ниже. Если вам известно о других ресурсах, не упомянутых здесь, пожалуйста отправьте информацию о них в Список рассылки Проекта Документации FreeBSD, чтобы мы могли включить в этот документ. Хотя многие участники разработки FreeBSD читают USENET, мы не можем всегда гарантировать, что ответим на ваши вопросы в краткий срок или вообще, если вы отправите их только в группы Вопросы, отправленные в соответствующий список рассылки, достигнут и нас и обширной аудитории FreeBSD, что несомненно гарантирует лучшую или как минимум более быструю поддержку. Внимание: Все сообщения в приведенные ниже списки рассылки должны быть составлены только на английском языке. Описание каждой рассылки дано в конце этого документа. Пожалуйста, прочтите описание перед подпиской или отправкой почты в любой из списков. Большинство наших подписчиков получают многие сотни относящихся к FreeBSD сообщений каждый день, и определяя правила использования рассылок мы стремимся удержать высокое соотношение сигнал к шуму. При меньшем соотношении списки рассылки перестанут быть эффективной средой общения участников проекта. Перед тем, как направлять сообщение в любой список рассылки, пожалуйста, выясните, как лучше всего их использовать, например, как избежать частого повторения одних и тех же дискуссий, прочитав документ Часто задаваемые вопросы о списках рассылки FAQ. Архивы поддерживаются для всех списков рассылки и поиск по ним организован на WWW сервере FreeBSD. Поиск в архиве по ключевым словам дает отличный способ получения ответов на часто задаваемые вопросы и должен быть выполнен перед отправкой вопроса. Общие списки: Ниже представлены общие списки рассылки, к которым каждый может и приглашается присоединиться: Изменения, вносимые в дерево исходных текстов FreeBSD Обсуждения, относящиеся к поддержке базы данных сообщений о проблемах FreeBSD и соответствующим инструментам Не-технические темы, относящиеся к сообществу FreeBSD Обсуждения, относящиеся к использованию FreeBSD-CURRENT Вакансии и резюме, относящиеся к FreeBSD, с полной и частичной занятостью Публикация правил FreeBSD Core team. Только для чтения, малое количество сообщений Обсуждения, относящиеся к использованию FreeBSD-STABLE Технические списки: Следующие списки предназначены для технических обсуждений. Вам необходимо внимательно прочитать описание перед подпиской или отправкой почты в один из этих списков, поскольку они предназначены для использования внутри проекта. Обсуждение портов, относящихся к Apache Использование в FreeBSD системы электронного документооборота Eclipse, а также приложений и портов для нее. Эмуляция других систем, таких как Linux/MS-DOSWindows Техническое обсуждение FreeBSD FireWire iLink, IEEE 1394 Технические обсуждения, относящиеся к переработке кода IP брандмауэра Разработчики Java и те, кто занимается переносом JDK на FreeBSD Обсуждения, относящиеся к сети и исходному тексту TCP/IP Поддержка различных портов, относящихся к Perl Вопросы, специфичные для использования Python во FreeBSD Обсуждение гарантий качества Quality Assurance, обычно перед релизом Обсуждения, касающиеся системы Сообщения безопасности, касающиеся FreeBSD Портирование FreeBSD на системы, основанные на Sparc Ограниченные списки: Следующие списки рассылки предназначены для более специализированной и более официальной аудитории и вероятно не могут заинтересовать широкую публику. Вероятно хорошей идеей будет сначала наладить общение в технических списках рассылки перед присоединением к ограниченным спискам, так вы сможете освоить этику общения. Люди, поддерживающие зеркала поддержка инфраструктуры Дайджест рассылки: Все вышеприведенные списки доступны в формате дайджеста. После подписки на рассылку, вы можете изменить параметры дайджеста в разделе настроек учетной записи. CVS рассылки: Следующие рассылки предназначены для людей, заинтересованных в просмотре сообщений об изменении в различных областях дерева исходных текстов. Это списки только для чтения и вы не должны отправлять туда почту. Для подписки на рассылку, нажмите на название списка рассылки выше или воспользуйтесь ссылкой /mailman/listinfo и нажмите на имя рассылки, которой вы заинтересовались. Страница списка рассылки содержит все необходимые инструкции по подписке. Для отправки сообщения в выбранный список рассылки, отправьте письмо в Это письмо будет разослано участникам рассылки по всему миру. Для отписки от рассылки, нажмите на ссылку, находящуюся внизу каждого письма, отправляемого через список рассылки. Возможна также отписка путем отправки письма на Напоминаем, что обсуждение в технических списках рассылки должно оставаться в рамках технической темы. Если вас интересует только получение важных анонсов, мы предлагаем подписаться на рассылку с небольшим трафиком freebsd-announce. Все списки рассылки FreeBSD имеют определенные основные правила, которых должен придерживаться каждый использующий их. Несоблюдение этих правил приведет к отправлению двух 2 предупреждений от FreeBSD Postmaster после которых, после третьего нарушения, подписчик будет удален из всех списков рассылки FreeBSD и дальнейшие его сообщения будут отфильтровываться. Мы сожалеем, что эти правила и меры вообще необходимы, но современный интернет это довольно суровая среда и многие его механизмы довольно слабы. Тема любого сообщения должна соответствовать назначению списка рассылки, в который это сообщение отправляется. Например, если список рассылки посвящен техническим вопросам, сообщение должно быть техническим. Продолжающееся обсуждение вне темы, или флейм только понижают ценность рассылки для всех ее участников и поэтому не разрешаются. Для обсуждений вне какой-либо определенной темы необходимо использовать Список рассылки, посвящённый неформальным беседам о FreeBSD, специально для этого предназначенный. Ни одно сообщение не должно отправляться более чем в 2 рассылки, отправка сообщения в 2 рассылки должна выполняться только при наличии простой и очевидной причины для дублирования сообщения. В большинстве рассылок подписчикам уже приходит много избыточного материала, и за исключением редких случаев скажем, - stable - scsi, на самом деле нет причины отправлять сообщение более чем в один список рассылки. Если сообщение отправлено вам так, что в поле находятся несколько списков рассылки, необходимо урезать поле перед отправкой ответа. Именно вы отвечаете за собственные сообщения, независимо от того, кто был автором исходного письма. Персональные нападки и профанация в контексте аргументов не разрешены, это относится и к пользователям, и к разработчикам. Грубые нарушения сетевой этики, такие как цитирование или пересылка личной переписки без специального на то разрешения, осуждаются но специальные меры в этом случае не принимаются. Однако, существует несколько специальных случаев, когда такие письма не отвечают назначению списка рассылки и, следовательно, могут повлечь отправку предупреждения или исключение из списка рассылки. Реклама не-FreeBSD продуктов или сервисов строго запрещена и исключение из списка рассылки последует незамедлительно, если станет очевидным, что это спам. Этот список рассылки предназначен для тех, кто интересуется только периодическими анонсами значительных событий FreeBSD. Сюда включаются анонсы снэпшотов и других релизов, а также новых возможностей FreeBSD. Рассылка может содержать призыв к добровольцам и т.п. Это строго модерируемый список рассылки с малым объемом трафика. Эта рассылка предназначена для обсуждения архитектуры FreeBSD. Сообщения в основном строго технические. Примеры подходящих тем: Как изменить систему сборки для одновременной сборки нескольких по-разному настроенных систем. Что необходимо исправить в VFS для включения слоев Heidemann. Как необходимо изменить интерфейс драйверов устройств для использования одних и тех же драйверов на множестве шин и архитектур. Как написать сетевой драйвер. Это список рассылки для проекта аудита исходных текстов FreeBSD. Хотя первоначально он предназначался для изменений, связанных с безопасностью, его назначение было расширено для пересмотра всех изменений кода. В эту рассылку отправляется большой объем исправлений, и она вероятно не представляет интереса для обычного пользователя FreeBSD. Обсуждения безопасности, не относящиеся к определенному изменению в коде, ведутся в freebsd-security. Разработчикам предлагается отправлять изменения в этот список рассылки для просмотра, особенно если эти изменения затрагивают части кода, ошибки в которых могут повлечь нарушение целостности системы. Этот список предназначен для обсуждений системы бинарного обновления системы, или binup. В этой рассылке обсуждаются вопросы дизайна, детали реализации, исправления, сообщения об ошибках, сообщения о статусе, запросы на расширение функциональности, протоколы коммитов, и все, что относится к Это форум, где собираются пользователи Bluetooth во FreeBSD. Обсуждения касаются вопросов архитектуры, деталей реализации, патчей, сообщений об ошибках, состояния работы, запросов на добавление функций и всего, что относится к Bluetooth. Назначение этой рассылки в координации и предоставлении места для обсуждения для лиц, обслуживающих базу данных сообщений о проблемах bugmeister, bugbusters и для всех сторон, интересующихся базой данных PR. Эта рассылка не предназначена для обсуждения отдельных проблем, исправлений или PR. Этот список рассылки предназначен для отправки сообщений об ошибках в FreeBSD. Когда это возможно, сообщения должны отправляться с использованием send-pr 1 или через WEB интерфейс к Не-технические темы, относящиеся к сообществу FreeBSD В эту рассылку входят все темы, не подходящие для других рассылок, с не-технической, социальной информацией. Она включает обсуждения на темы: кто пьет слишком много кофе, где варят лучшее пиво, кто варит пиво в своем подвале, и так далее. Нерегулярные анонсы важных событий такие как будущие встречи, свадьбы, дни рождения, новая работа и т.д. могут быть опубликованы в технических рассылках, но ответы должны отправляться в - chat. Это внутренний список рассылки, используемый членами core. Сообщения в эту рассылку могут быть отправлены по серьезной, имеющей отношение к FreeBSD причине, которая требует рассмотрения на самом высоком уровне. Обсуждения, касающиеся использования FreeBSD-CURRENT Это список рассылки для пользователей FreeBSD-CURRENT. Он включает предупреждения о новых возможностях, вносимых в - CURRENT, влияющих на пользователей, и инструкции относительно действий, которые должны быть предприняты для поддержки - CURRENT. Всякий, работающий с CURRENT, должен подписаться на эту рассылку. Это технический список рассылки, все сообщения должны быть строго техническими. Технические обсуждения использования, разработки и поддержки FreeBSD-CVSweb. Этот список рассылки предназначен для обсуждения вопросов и проектов, относящихся к созданию документации для FreeBSD. Члены этой рассылки все вместе обозначаются как The FreeBSD Documentation Project. Это открытая рассылка; присоединяйтесь и участвуйте! Этот список рассылки предназначен для технических дискуссий, относящихся к написанию драйверов устройств для FreeBSD. Это наилучшее место для того, чтобы задать вопросы по форматам и протоколам общенияi API драйверов устройств с ядром FreeBSD. Список рассылки для пользователей системы электронного документооборота Eclipse EDI под FreeBSD, а также ее приложений и портов. Этот список рассылки призван оказать помощь тем, кто выбирает, устанавливает, использует, разрабатывает и поддерживает работу под FreeBSD систем электронного документооборота Eclipse, а также портирует их под FreeBSD. Кроме того, в данном списке для общего блага пересекаются и обмениваются информацией сообщества Eclipse и FreeBSD. Хотя данный список предназначен главным образом для тех, кто использует Eclipse, в нем также можно обсуждать средства разработки приложений для FreeBSD при помощи среды Eclipse. Эмуляция других систем, таких как Linux/MS-DOSWindows Этот список рассылки предназначен для обсуждения вопросов запуска и эксплуатации под FreeBSD программ, предназначенных для работы под другими операционными системами. Это список рассылки, предназначенный для обсуждения дизайна и реализации подсистемы FireWire также известной как IEEE 1394 или iLink в FreeBSD. Соответствующие темы относятся к стандартам, устройствам шины и их протоколам, наборам плат/карт/чипов адаптера, а также архитектуре и реализации кода для их правильной поддержки. Обсуждения, относящиеся к файловым системам FreeBSD. Это технический список рассылки, предназначенный только для технических обсуждений. Обсуждения, относящиеся к GEOM и связанным с GEOM реализациям. Это технический список рассылки, предназначенный только для технических обсуждений. Обсуждения, относящиеся к графической среде GNOME для системы FreeBSD. Это технический список рассылки, предназначенный только для технических обсуждений. Это форум для технических обсуждений, относящихся к перепроектированию кода межсетевого экрана IP во FreeBSD. Это технический список рассылки, предназначенный только для технических обсуждений. Это технический список рассылки для тех, кто активно работает над портированием FreeBSD на платформу IA-64 от Intel, предназначенный для поднятия вопросов или обсуждения альтернативных решений. Те, кто интересуется обсуждаемыми проблемами, также приглашаются к участию в рассылке. Это список рассылки для обсуждения разработки поддержки ISDN для FreeBSD. Этот список рассылки предназначен для обсуждения ключевых приложений Java для FreeBSD, а также портирования и поддержки JDK. Это форум для публикации вакансий и резюме, относящихся к FreeBSD. Например, если вы ищете работу, относящеюся к FreeBSD, или у вас есть работа, связанная с FreeBSD, вы можете разместить соответствующую информацию именно здесь. Эта рассылка не предназначена для обсуждения общих вопросов о приеме на работу, поскольку форумы на соответствующие темы уже существуют на других сайтах. Имейте ввиду, что эта рассылка, как и другие рассылки распространяется по всему миру. Поэтому вам необходимо чётко указать свое местоположение и область, с которой возможны телекоммуникации или помощь в перемещении. Письма должны быть составлены только в открытых форматах - - предпочтителен чистый текст, но Portable Document Format PDF HTML, и некоторые другие форматы могут быть прочитаны многими. Закрытые форматы, такие как Microsoft Word будут отброшены сервером почтовой рассылки. Обсуждения, относящиеся к KDE в системах FreeBSD. Это технический список рассылки, предназначенный только для технических обсуждений. Это форум для технических обсуждений, относящихся к FreeBSD. Это в основном технический список рассылки. Он предназначен для тех, кто активно работает над FreeBSD, и служит для поднятия вопросов или обсуждения альтернативных решений. Те, кто интересуется обсуждаемыми вопросами, также приглашаются к участию в обсуждении. Это технический список рассылки, предназначенный только для технических обсуждений. Общее обсуждение типов оборудования, на котором работает FreeBSD, различных проблем и предложений относительно того, какое оборудование можно покупать а какое нет. Анонсы и обсуждения для поддерживающих зеркала FreeBSD. Этот список рассылки предназначен для обсуждения тем, имеющих значение для провайдеров, использующих FreeBSD. Это технический список рассылки, предназначенный только для технических обсуждений. Обсуждения, относящиеся к портированию и поддержке Этот список рассылки существует как место для обсуждения тем, имеющих отношение к производительности FreeBSD, хакерами, администраторами, и/или заинтересованными сторонами. Приемлемые темы включают обсуждения установок FreeBSD, которые находятся под высокой нагрузкой и сталкиваются с проблемами производительности, или преодоление ограничений FreeBSD. Заинтересованным сторонам, собирающимся работать над улучшением производительности FreeBSD, настоятельно рекомендуется подписаться на эту рассылку. Это техническая рассылка, идеально подходящая для пользователей, хакеров или администраторов, заинтересованных в скорости, стабильности и расширяемости FreeBSD. Это не рассылка вопросов-и-ответов, заменяющая чтение документации, а место, где можно внести свой вклад или получить информацию по еще незатронутой теме, связанной с производительностью. Обсуждения, касающиеся работы пакетного фильтра pf под FreeBSD. Допускаются как вопросы пользователей, так и технические дискуссии. Помимо этого, в данном списке уместно обсуждать инфраструктуру ALTQ QoS. Кросс-платформенные вопросы FreeBSD, общее обсуждение и предложения для не- Intel портов FreeBSD. Это технический список рассылки, предназначенный только для технических обсуждений. Это рассылка с малым количеством сообщений, только для чтения, предназначенная для публикации решений FreeBSD Core Team. Обсуждения, относящиеся к коллекции портов FreeBSD, инфраструктуры портов и общих усилий по координации портов. Это технический список рассылки, предназначенный только для технических обсуждений. Обсуждения, относящиеся к сообщениям о проблемах для коллекции портов FreeBSD предлагаемых портов, или изменений к портам. Это технический список рассылки, предназначенный только для технических обсуждений. Этот список используется для обсуждения технических аспектов использования FreeBSD на серверах HP ProLiant, в том числе для обсуждения специфичных для ProLiant драйверов, управляющего ПО, систем конфигурации и обновлений BIOS. В частности, это основное место для обсуждения модулей hpasmd, hpasmcli и hpacucli. Этот список рассылки посвящён обсуждениям, связанным с улучшением поддержки Python во FreeBSD. Это технический список рассылки. Он предназначен тем, кто работает над портированием во FreeBSD языка Python, модулей сторонних разработчиков для него и Zope. К участию приглашаются также все, кому интересны технические вопросы. Это список рассылки по вопросам о FreeBSD. Вы не должны отправлять вопросы как сделать в технические рассылки, если только не уверены, что ваш вопрос чисто технический. Это список рассылки для тех, кто работает над подсистемой SCSI для FreeBSD. Это технический список рассылки, предназначенный только для технических обсуждений. Вопросы безопасности FreeBSD DES, Kerberos, известные проблемы безопасности и исправления, и т.п. Это технический список рассылки, предназначенный только для технических обсуждений. Обратите внимание, что это не рассылка вопросов-и-ответов, но дополнения в FAQ И вопрос И ответ приветствуются. Уведомления о проблемах безопасности FreeBSD и исправления. Эта рассылка не предназначена для обсуждений. Для обсуждения предназначена рассылка FreeBSD-security. В этой рассылке обсуждаются темы, связанные с необычно малыми и встроенными установками FreeBSD. Это технический список рассылки, предназначенный только для технических обсуждений. Обсуждения, касающиеся использования FreeBSD-STABLE Этот список рассылки предназначен для пользователей FreeBSD-STABLE. Он включает предупреждения о новых возможностях, добавляемых в - STABLE, и влияющих на пользователей, и инструкции по действиям, которые необходимы для поддержки системы в состоянии - STABLE. Всякий, использующий STABLE, должен подписаться на эту рассылку. Это технический список рассылки, предназначенный только для технических обсуждений. Это форум для технических обсуждений, относящихся к соответствию FreeBSD стандартам C99 и POSIX. Это форум для технических обсуждений, относящихся к поддержке в FreeBSD устройств с интерфейсом USB. Этот список рассылки предназначен для обсуждения вопросов координаторами каждой группы пользователей и назначенным членом Core Team. Обсуждения в этой рассылке ограничены темой встреч и координацией проектов, относящихся к группам пользователей. Обсуждения, относящиеся к координации между FreeBSD Project и поставщиками программного и аппаратного обеспечения для FreeBSD. Списки рассылки FreeBSD фильтруются различными способами для предотвращения распространения спама, вирусов, и другой нежелательной почты. Действия по фильтрации, описанные в этом разделе, не включают всех используемых для фильтрации списков рассылки проекта действий. Только определенные типы вложений разрешены в списках рассылки. Все вложения с типами MIME содержимого, не входящие в список ниже, будут вырезаться перед тем, как письмо будет отправлено в список рассылки. Замечание: Некоторые из списков рассылки могут пропускать вложения других типов MIME, но список выше применим к большинству рассылок. Если письмо содержит как HTML, так и только текстовую версию, версия HTML будет удалена. Если письмо содержит только HTML версию, она будет конвертирована в простой текст. В дополнение к двум относящимся к FreeBSD группам новостей, существуют множество других, где обсуждается FreeBSD или куда помещается другая информация, относящаяся к пользователям FreeBSD. Архивы с поиском по ключевому слову доступны для некоторых из этих новостных групп благодаря Warren Toomey Следующие группы пользователей предоставляют для своих участников почтовые адреса. Приведенные в списке администраторы оставляют за собой право удалить адреса при любом злоупотреблении. Следующие группы пользователей предоставляют shell доступ для тех, кто активно поддерживает проект FreeBSD. Приведенные в списке администраторы оставляют за собой право закрыть учетную запись при любом злоупотреблении. Email, место для сайта, анонимный FTP В случае если Вам необходимо проверить подпись или послать зашифрованное электронное письмо одному из офицеров безопасности или члену core группы FreeBSD ряд PGP ключей представлены здесь для Вашего удобства. Полный список ключей пользователей доступен для скачивания с D.1.1. Группа Офицеров Безопасности D.1.2. Секретарь CORE BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQCNAzw7fN4AAAEEALL1ENfbFYcAEmS6Hrb7CV7sWrbGHlIwYvUUuqvr8D3axd XuRJGFaWk8zNrTrwWROnlMMlctG3iXNsKzQNxAE6N64rbrUbKI5PzihfEsJW5/io XGXrRGdXvwob/Qdnd6mIlm3IJduChV7Nf3K2WbimUNkFeXrrh/ymwUj/iuMFAAUR tBpjb3JlLXNlY3JldGFyeUBGcmVlQlNELm9yZ4kAlQMFEDw7fN78psFI/4rjBQEB U4ID/1N6haUdktzwNpX6pKnlCuTCJvJ619Lp83T8pRDGZom/uSLrfMrzvmKPeE abXGnreM41JRLAbGOclsONVBCLvwc/vVVXTm24J1rdS1qY/SDLE87pxPL6Ncyt Ug2sxPSo8fDVKuMdcGK5zwP5ekNHDlDB1mMsYDkZHTp9FMiQCVAwUQPDtRafG T4fq3uQJAQFKvAQAl6XaXQ1GzfqJoGqaTVW2O1OaodyBJjLxgRsVv7ps5Z4M4nl uYoe5ihLk3BVD9Y18QKUrnAPlbXDr1Ld0arq8uFkFsVzNDb2asg6tgcQe7mQ9lA QZPgVOUsiTmEuolSvxwsjxn/szBYBPv5EnU6lSmGf/RDJnbFXC9Z/LgPFU tMn4 - -END PGP PUBLIC KEY BLOCK-- D.2.1. Warner Losh pub 1024R/F6A8F561 1996-01-10 M. Warner Losh Key fingerprint D4 31 FD B9 F7 90 17 E8 37 C5 E7 7F CF A6 C1 B9 BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQCNAzDzTiAAAAEEAK8D7KWEbVFUrmlqhUEnAvphNIqHEbqqT8sc5f5c2uHtlcH V4mV2TlUaDSVBN4/D70oHmZc4IgiQwMPCWRrSezg9z/MaKlWhaslc8YT6Xc1qo EP/fAdKUrq49H0QQbkQk6Ks5wKW6v9AOvdmsS6ZJEcet6d9G4dxynu/2qPVhAAUR tCBNLiBXYXJuZXIgTG9zaCA8aW1wQHZpbGxhZ2Uub3JnPokAlQMFEDM/SK1VLh4u c9KIpQEBFPsD/1n0YuuUPvD4CismZ9bx9M84y5sxLolgFEfP9Ux196ZSeaPpkA0g C9YX/IyIy5VHh3372SDWN5iVSDYPwtCmZziwIV2YxzPtZw0nUu82P/Fn8ynlCSWB 5povLZmgrWijTJdnUWI0ApVBUTQoiW5MyrNN51H3HLWXGoXMgQFZXKWYiQCVAwUQ MzmhkfUVW/uOVC1dAQG3AP/T1HL/5EYF0ij0yQmNTzt1cLt0b1e3N3zN/wPFFWs BfrQnsv1zw7cEgxLtktk73wBGM9jUIdJu8phgLtl5a0m9UjBq5oxrJaNJr6UTxN asFkapTLT1g84UFUO/8qRB12vhZr2WeXMYjHAFUT18mp3xwjW9DUV2fW1Wag YDKJAJUDBRAzOYK1s1pi61mfMj0BARBbA/930CHswOF0HIr4YYUs1ejDnZ2J3zn icTZhl9uAfEQqXor1x476j67Z9fESxyHltUxCmwxsJ1uOJRwzjyEoMlyFrIN4C dE0C8g8BFsRTt7VLURLERvlBvFrVZueXSnXvmMoWFnqpSpt3EmN6TNaLe8Cm87a k6EvQy0dpnkPKokAlQMFEDD9Lorccp7v9qj1YQEBrRUD/3N4cCMWjzsIFp2Vh9y RzUrblyF84tJyA7Rr1pA7dxf7je3Zx5QMEXosWL1WGnS5vC9YH2WZwv6sCU61gU rSy9z8KHlBEHhZ6fdRMrjd9byPfn3cktT0NhS23oXB1ZhNZcB2KKhVPlNctMqO 3gTYxNlo6xqjRJ2NnBYU8p 7fQV - -END PGP PUBLIC KEY BLOCK-- D.2.2. John Baldwin D.2.3. Jun Kuriyama BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDZZXiQRBACWc1PcCjIpTl6aCyOMVfz4jlRSKblwib2s07TBwbgR1zMhbPie O2K4ZJqTcG4EnbMLEyYMbYwvNdOfUIjMW3VI1PJhRwWthTcbUjubzTu8ZxwsKME ansth0xZW7Ax29UWQcTPxs4SRsCPFO8taWwZOm6z0fb5l1vMmKNJuw1wCg3ZZB qK93hQPaOObwglnAIrgNpScD/j0VCEeC8fTMkZIoz0bUGPGU5cq4XVXABYLn wMfR6Wr5Ys/3VCx4Oyzzgp/HBzcE5HxJukJ2ur3m9IEuFfY4HEFiwLKe4TWU 7rn4rKjJYhGJ6iqGFwuxwmHdjcBh/38X0kmrCxyPYpt6xOsJBPQOABw3PFlMkF PUY5A/9RGU4mm6K7cteNdbHDI8yFNorQs8W8fRb8yP8bw1T8qB5/rQ5jxAfA5sr FCuZsKNFdph9z/I3eFYVW4P89gmI2FAAAocWheSyKttAFHx63JRyBqXq9xmHKST kuaoQVXeFycSULAPkV67j0/zDL2mis6bRpPopINGgjkia16u6LQjSnVuIEt1cml5 YW1hIDxrdXJpeWFtYUBGcmVlQlNELm9yZz6IVwQTEQIAFwUCOmRRlgULBwoDBAMV AwIDFgIBAheAAAoJEO48TbvO1nN4YAoKeQztEcbPBbbX7DZAHOsGZLrZ2NAJ9a WEoFGMT3keQDjtjUI9c8IMh/l7QmSnVuIEt1cml5YW1hIDxrdXJpeWFtYUBqcC5G cmVlQlNELm9yZz6IVwQTEQIAFwUCPE3sswULBwoDBAMVAwIDFgIBAheAAAoJEO48 TbvO1nNMp4An22RFzdv9zdNLlcY9GLPFyUrniqiAJ9F9Rhic6qBaXynksNw51Do cLWkbQkSnVuIEt1cml5YW1hIDxrdXJpeWFtYUBpbWdzcmMuY28uanAiFcEExEC ABcFAjxN7RoFCwcKAwQDFQMCAxYCAQIXgAAKCRDuPE27/jtZzYFdAJ9BFckSo4/r SMe9UqbRMPK8FUumwCfYH1pt4t6jFlulLk9wYA9wISL3e5Ag0ENllesBAIAMSU hrKdEdKzQXHzkoE4Nzl3hb6dtDmjgYr3X95wBkUvtrk2CeYG3RC1PNwd1sEFEWp IiSzOaQDzxZmtBGpMkQ1ItCW4sC5Cs2TQ59VHLFw7HWSYMNjRchWuWkhwipnX5 8wu6To12Mu2MnyLszX2QIUxrQme7UpKkJgCct60C1DZLoQuZmfEZEyXmSfJsizeq eeJuusZwOWDH0ixuFVK/5A2RwaWFMftdhh/Vw0EkxdQnMJ7zJ/hbY64VR7uz8oI 5smfjVe0yqXMACREUzXmqnDc6Pz6ESVTv2XwIy0UxqxiYk1J98Cf3ffi5e/q1d rej2PzArpfzaygu88uMAAwUIAI/IiiQJupz9BaCws/K6j4Qs5iWRiSB7vaZfgCr9 c6vxmIXX1Pblity5TOn9qXMv7vUM/dgmWSBbkkrvfDH4ybJjpcOZNpeeGd0G/UfiQFMarsj9MozAmhzI5L00JqLOf4u/XBv0rh5HOX6tM9MfZYL3C7bn/LxmDif prT8jxoA2SClPGSzIMay/mz8kDmGD7fCSuAFo5T1kjUed2dhXnl16gRR8NO 6yAdURICxs6P7L8uOiZfuk0gzn5RC6CYrEKiGZf9VqTRA2vcirPNEZR44jYXS3 nL7x9pIsHyCyxEvojut7iGWO6qbaW/cMRjcA8jgp9OuFROIRgQYEQIABgUCNlle sAAKCRDuPE27/jtZzZksAKDbznARmDIIxZjHfAry2UJFBPQbvgCgl/ERQfFUvw hLaVfesP/NCIt5Y AoU9 - -END PGP PUBLIC KEY BLOCK-- D.2.4. Murray Stokely D.2.5. Peter Wemm D.2.6. Wes Peters BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDnubLMRBACzBJP6rUqruNhVttH8vMFy3IQIWgoMNbzGsa6O26y3wFXV6xr gLGYo0Yb621CWKpO5/bfRbfPobcgVbInsx0cVJITNeLwLbvZP8Yd9GkUy5B8DomW ptrKd61NRG4NjGoXNG3Z1KaPYEmbQG7hOeilq2cIcNlSDhILrpRlzbboSwCgcbC zRXEcCiGUKUgwD9E/58vKFkDwdbVXdjRlAZ0uzs9B1zTuR4CqFe7mOE2ZwEz0 eI1X639jr5CFNlruWXbT4ZzcqPdAe4Z5G1SqucG8ahOqfzybi4D04fsnM99f6IK P4M4ejwmKQnrsUXuoyEOGhxtziXbuX7AfftDd9CcmFJi9ix4MT8JNVCmf2AnG3oU/WPA/9RmCW9XrnKGFzuJPrj5fFlF0yyOfnGBtCluDg0bGWlncOoVdaHajdpTzk 2es8vDDn17vX4KDGJhai4/lgvdoIIu6VZ9gbDvjkhBPRZID2PBtRA3PqJrHAe8OK PkP78wceHncrjH7PGOvB6K7zgkolBhbigBQxxqyJpiwlLsJYmrQdV2VzIFBldGVy cyA8d2VzQHNvZnR3ZXlyLmNvbT6IVgQTEQIAFgUCOe5sswQLCgQDAxUDAgMWAgEC F4AACgkQc4fikq0QxsRqSgCg5U4czx4fZBpgKXkSUwqN12NUTDgAoN6nLEpYOwax 3CZSxOHKIM0OaQaCiEYEEBECAAYFAjnuga8ACgkQXVIcjOaxUBbcsQCfU7yEZGRh fd27HoAoCaoesLs3DDAAoNFYihZhlddiaAsSRFEdl5YLRXMKtBxXZXMgUGV0ZXJz IDx3ZXNAZnJlZWJzZC5vcmciFcEExECABcFAj2QxXYFCwcKAwQDFQMCAxYCAQIX gAAKCRBzhKSrRDGxPC2AKDEpC6kiHzVt/NOJ887lxRiMACggx0g0bcXakU F9uTA/Mem/EGc9S5AQ0EOe5svRAEAK6sihIm3uapbbXwHBq/3KP1mnR5TumcuqY VMJH0hSnaps/seA5332YrlYlzGZot7u/yKoNj9HAt1b3bqRjxVpcQkkVqO5beN vtJ2l0VDVtdynNL/p6pIj/w/tQlbMYjwDtEbner76IG0RZvwrREz5Dr5FUEcSJuN l4sOaJ3nAAMFBACCbceKau0sxw7mymEgXlCQmj/uF4e8DaPmgPJxncccbv78GEeV NQbLYsKKxts43vmhHKNQI0SUSN3kpqIGAP/Z1FwaxsL2UAZvGzLo2Eb0mhfe9iI N8MPaxLWFZevSE/e9EWsb5o3d6xZJqhuaLzMGi0yqR18ZUAUMhAeIK1hAYhGBBgR AgAGBQI57my9AAoJEHOH4pKtEMbEIHkAn2jVNUFiT5HelooOTkOL36zXxALOAJ9K ni2QSv6GouiphI2WO/bd0STFg oTDt - -END PGP PUBLIC KEY BLOCK-- D.3.1. Will Andrews D.3.2. Mathieu Arnold D.3.3. Satoshi Asami BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQCNAzPVyoQAAAEEAL7WkipxB171Z4SVyyL9skaA7hG3eRsSOWk7lfvfUBLtPog f3OKwrApoc/jwLf4Qpdzv5DLEt/6Hd/clskhJq1gMNHyZ5ABmUxrTRRNvJMTrb 3fPU3oZj7sL/MyiFaT1zF8EaMP/iS2ZtcFsbYOqGeA8E/58uk4NA0SoeCNiJAAUR tCVTYXRvc2hpIEFzYW1pIDxhc2FtaUBjcy5iZXJrZWxleS5lZHUiQCVAwUQM/AT EqGN2HYnOMZAQF11QP/eSXb2FuTb1yX5yoo1Im8YnIk1SEgCGbyEbOMMBznVNDy 5g2TAD0ofLxPxy5Vodjg8rflfMVtO5amUH6aNcORXRncE83T10JmeM6JEp0T6jw zOHKz8jRzygYLBayGsNIJ4BGxa4LeaGxJpO1ZEvRlNkPH/YEXK5oQmq9/DlrtYOJ AEUDBRAz42JT8ng6GBbVvu0BAU8nAYCsJ8PiJpRUGlrz6rxjX8hqM1v3vqFHLcG G52nVMBSyRZBgzsYIPwI5EZtWAKb22JAJUDBRAz4QBWdbtuOHaj97EBAaQPA/46 NLUpWubl90JoonoXocwAg88tvAUVSzsxPXj0lvypAiSI2AJKsmn5PuQ/IoQy lywRsxiQ5GD7C72SZ1yw2WI9DWFeAiqa4b8n9fcLYrnHpyCYzxEpu4pam8FJ7H JocEUZz5HRoKKOLHErzXDiuTkkm72b1glmCqAQvnB4kAlQMFEDPZ3gyDQNEqHgjY iQEBFfUEALu2C0uo1Z7C5xshWRYY5xNCzK20O6bANVJCO2fih96KhwsMof3lw fDso5HJSwgFd8WT/sRWwzz6BAE5UtgsQq5GcsdYQuGI1yIlCYUpDp5sgswNmOA bX5ar4F/ZJqrqT1J56Mer0VVsNfe5nIRsjd/rnFAFVfjcQtaQmjiQCVAwUQM9uV mcdm8Q/vPRJAQELHgP9GqNiMpLQlZig17fDnCJ73P0e5t/hRLFehZDlmEI2TK7j Yeqbw078nZgyyuljZ7YsbstRIsWVCxobX5eH1kXhIxuUqCAkCsWUY4abG89kHJr XGQn6X1CX7xbZb6b9jLKbJKFcLSfyqR3M2eCyscSiZYkWKQ5l3FYvbUzkeb6K0 IVNhdG9zaGkgQXNhbWkgPGFzYW1pQEZyZWVCU0QuT1JHPg 39SC - -END PGP PUBLIC KEY BLOCK-- D.3.4. Doug Barton BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.4.2 FreeBSD Comment: Public key for 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 QG/c - -END PGP PUBLIC KEY BLOCK-- D.3.5. Anton Berezin BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDks22ERBACsqOob/YoPnaI/xubQKn/CCUFsaEMqL14TZFSlCphq3uZ7Y0W Qg2eqaTp97lG2NTVNEzF7K0yr/C3ofEQmTINQTd7DmEj04DDlRt8BMFe6Xz2sBI WlEPD54ZfJVqhEX5P6T0xe9hiqjXKwQHHl1skKniKeO07o3K/4bCDDMfKwCg5DY1/2j/Gid0YmxsJCIlg9kzRGMD/1lkSkQ0KrPH3RVPMrkRWE3rvvMES/F7jYNfKDQj X5lJDKoIQyWh1JwAmW/O10V24Vl6JEFNQ4QJ7ix9hlkI59YS4TERxCUGGDpl3jr Lae6FFxYc1D5H8LLpiTSApmZcLxUE8CFoZJLySHgjp8qzvA60wMOjkfkWMgw3BpE N8DVA/9UF5ue4bLHsPn7Jv5NzOkzaTgC/9O3UZUj/jYOp/vkI0wPnP0U5f304P iLpYl1tlCEpciWF88MS5k38zsk8trqorss/XQfFzhHVtvRtgVxj87V0Z01E2ZZr YlqrnzHKQZOAKM2X9FiRZOAkndkkpeB7SSeXDP62I56B690LQfQW50b24gQmVy ZXppbiA8dG9iZXpAdG9iZXoub3JnPohWBBMRAgAWBQI5LNthBAsKBAMDFQMCAxYC AQIXgAAKCRAiylhMenujwBepAKCCtVcVRS40E9SY4Su8GTOBVoH4UwCgu3gK3zMy/QhZnnhmTKaguG6XopqIRgQQEQIABgUCOSz5ngAKCRCBvdPEDhbeRnEAJ9xU6P TJrLGk8PKtOUY8Zt7MTxgCdHYzFsXZ81j9HY0Z4EaHkQBXv1JmITAQQEQIADAUC OS6PpwUDCWdTAAAKCRDXjLzlZqdLMXMaAJwOE6Jh5PnfHc09x3JKN4/a0v63wCg 6GdysmObSBQXATzYBuhy/0eFCCC0IUFudG9uIEJlcmV6aW4gPHRvYmV6QEZyZWVC U0Qub3JnPohXBBMRAgAXBQI7JNTmBQsHCgMEAxUDAgMWAgECF4AACgkQIspYTHp7 o8CQ3wCeIP8VsHzHpfmUMa5kCzjBeqj3zcAoKYmyZUSxhV9TBQPo2WQ7zF3zcoB tCFBbnRvbiBCZXJlemluIDx0b2JlekBjYXRwaXBlLm5ldD6IVwQTEQIAFwUCOyTV DwULBwoDBAMVAwIDFgIBAheAAAoJECLKWEx6e6PATIsAn3clXqExEiP/Q/IDQb7e/yolgMrRAKDPw6ZxTOJFba2HWEto0PwQ/COE7kBDQQ5LNtEAQAjHltp9g75EOw pEDSUvK/B0aRUsjoIyAokRuW9Tg8S0xIhtV8ogcklvcXjQbjiEsAiO13hX7zmdmb yH7xLiSjea/m/whmNr9K094BS1K5i7mmUqNEFOyPB7VkPbRs5gF0dCkHT5uVgqFJ HSbss3zPyGYEBi8uDokIfOt4o5CEMYsAAwUD/269N/UwZkO4NYivNX0ZpcUouqV YDPQ8YLwSrkwWpG7UNvNHd1HS43OWwAOy585SkLpZkjlW58NqyXJuWVC0xJtdTrI MKTZ3IJNXMK2wdKnBuTL4IvJwkf04pwFel80F2NtgUjR3ZgIlRNvFtvtCkNPg0j t7J8pPvL2vU5hz7HiEYEGBECAAYFAjks234ACgkQIspYTHp7o8Bj7wCfSZsld8vv iM02pWobJy/VvsBJKU8An2auT0HLmVLClDph/fQak1R2qsR ISZ3 - -END PGP PUBLIC KEY BLOCK-- D.3.6. Martin Blapp BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDwhwB0RBACelK3FYxd6cT5ukbiSdVLHPLfzgH3F34JfS6Q4FMXgEAPtx7iy U4Lc8A4Z2gCq1ZHBZTzKc61UnzHeeUWtAj0h3qDP4DOd7JCZbh4SW6dMIC7MAM/9J5br6e2fIIn3rzbROXSW7CJPox2D/zZcT1b727Wgy5NHUob3qej/zhwwCgrZ0o KBapUXgnKhesQzKlH2wWCJkD/3njAzJsFS7nDdTssMtd7ip9W97uNOFLuJ1/Sg5S 332BUby73hNzSXlS4rhtQB6NVBRLfGASuEYBJQIEz6aao/lDprIxTusCTrO/EGqa Dy5y4XE1ClIyZ0yVw05UJiTOZ7Mu/kUTBBzQ2i15lxjzXBt9pNifvtcKBhcDmdzQ zepQA/9Jio4IBFmjPDsl3kpvA8KqP7VXKFMMBVT9SztYVIeiFgbvff/YCqzkE5RD 0PWUFPF3o8rzsCovlpySfUNLUlfqxEZ5/5ky7AbJ6Vmyn7TlmBSZs4mTV7ktN 526ngUaW2jaO2SdWao/disRutrgRjJqyvgGn1YGnrSoKbMJ7QYTWFydGluIEJs YXBwIDxtYkBpbXAuY2giFcEExECABcFAjwhwB0FCwcKAwQDFQMCAxYCAQIXgAAK CRCGhu8i0wBVHh3IAKCDMueq8RCcRO3LcuQyXqDKCf3QCgpVWa7oS6lTiNxwSP enZ74gTkK5AQ0EPCHAIhAEAI3iAhZEDBjyJvPS74CXq1ypWvXfQUCYADCc/Cuv 3xrr1p4ff3oYcIIVdeOQktKWRP1dK7v1JLmqFsNQQIsNtgHyOazyX5vJGVRTg aCIuMMTnrDBC7VbAnWXtTHF5VKmmd891Ynk68p5YVnRPc/fReXEY6dA9lqW0bN2 f2jLAAMGA/9rMbPpnRyuvaAQChkHvOV1RnDAhN2RU9u3d0uNnv7sWa/TJrcdig KNUsUvXqIXVkqEMrYHTbCVC4mLMd51MLARiIKOaHeynRZYkEmdi5X7EiBLS9dCUe 7vMz4jV6MRIGyr8TBy3CEFIdAnpY6EIVd326PzYIgx8UZw3oEvjGIhGBBgRAgAG BQI8IcAiAAoJEIaG7yLTAFUetM4AoJg56qwlr8E1iEs0F33G6POGCWnCAJ4mW9E3 25TD51pcom8Plwy1BkuBSw oEK - -END PGP PUBLIC KEY BLOCK-- D.3.7. Hartmut Brandt BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.2.1 FreeBSD mQGiBD43wzYRBACpuUuayKjLpftMndpkOwxmpaPkLFxiA/dI1iWjY8I9ItDLZyM LqgYXemOOga6vbTvIUq7Bjzl3oR72kjNX3J1EljsMj7dxksoY5lflEMdxAyzdVoI/cucWiP0Z9unKpYmTk8S13sUTtZc0ixioaUvHzSJ0nxQMpIW7dqCDewCgmSVR 6i2aK4oImAa9ZbCxg7fCxcD/2xgAAwJSmaiaV/0As3A6IO0eSkbkzFSkMFms7C OtrHr1zmdM7h8MaGg/jw0Z6eZalYD7AclLvXDW0rxCMFwh06SC2axUTkaEvcys fuSk/HJtnktHUxZDgb28jf4X6zfcdTKE5dt5a9w3XHHPgdTXjGn7sQNR4CWDcvq 1qNQBACOqNxJdCC9tDLycRoupNSwzldMKVBZ2/JdQjfCIq6d8HPMNVLU8PGlDjoy RN4QkMZLbwV9Gaigk2DR6vvi8meARADt53x4OjS4W3O/Pc/Aj8rsUcF2mRU/wiJC 8VkQsnaci5GuaYAssgKroOTZQzxHkOjbk4FeQ70CwxovRsTh7QrSGFydG11dCBC cmFuZHQgPGJyYW5kdEBmb2t1cy5mcmF1bmhvZmVyLmRlPohfBBMRAgAfAhsDBAsH AwIDFQIDAxYCAQIeAQIXgAIZAQUCPjlTfwAKCRAILykdWSAJnxpyAJ9eHCdgiEt/Z5Ms8Qe3ekWTYTy1gCfdVWLF2MrZNL/MYOgBhhex70gKzu0IkhhcnRtdXQgQnJh bmR0IDxoYXJ0aUBmcmVlYnNkLm9yZz6IXAQTEQIAHAUCPjlT2QIbAwQLBwMCAxUC AwMWAgECHgECF4AACgkQCC8pHVkgCZBBQCeMpgFMMm4siEtrzqdisrRaxJJvosA nA7UDwOVoHDZaAkFD0HNcUsTkO3KuQENBD43wzcQBADsEH8o/9tD01ScNfhoMbK4 N7GsIJNFwQf0MQuplpXQx4eBpI9ST1ZoAUXeM1j4jk5PIAMJzt8w6BAGgcU4iUG Un0R/QMTTXVkfovdSe9FW7/QtUjRtTQz3QOfZTkekYauFIiWlSmH3BDwRXhpKgM e19eQZYOPRfLCnLLwqdr9wADBQQA5tIdzlDS80CNZxxoFDKlvOghtrIzPG/wIwGV at2clZMLhXESxDxDkpwT7XP1GRLyN/Plh/4k2vwxni7nOJ8BIch7rRh3E48TJat1 iZ99SFc9iibED5hY/HrKlc/kphFnUuEr/kk82UCv9p4/d2V18v1NCy2jCGvrip IQ6v2fOIRgQYEQIABgUCPjfDNwAKCRAILykdWSAJn0J4AJwMsjovUA6jCJRMEzOS kIakJgqJvgCeNLKyNEkyJZh0wZUcEg1zYLRYp/w h/9 - -END PGP PUBLIC KEY BLOCK-- D.3.8. Oliver Braun D.3.9. Jonathan M. Bresler BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see 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 pX25BMHqkEMHAxahVagzguPetlTIHxHGRSH3lg ttzj - -END PGP PUBLIC KEY BLOCK-- D.3.10. Christian Br ffer D.3.11. Markus Br ffer D.3.12. Wilko Bulte BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.4.0 FreeBSD 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 Eg 55M1 - -END PGP PUBLIC KEY BLOCK-- D.3.13. Jonathan Chen BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see 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 cJgh - -END PGP PUBLIC KEY BLOCK-- D.3.14. Luoqi Chen BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDx2qBMRBADYSjvWKVcUxUb1aR1VjHTlFo6zc6PHMK8W3CRin7lY3NgsYsmZ n0IvGQIDEHhTpOEWLS0S6A/bseaGUir52X6spZ8i5hfd7Ps9RmeS0oHx0XDS9JTJ HXFE5RjExHbLnw4DbsaqR4Fl1V7NJU2U/nkiJILJd/PGPZsdstKYv5QvnwCgmwr7 QZlkTV/m61MmbMAEpEFWaecD/Rp5Qb9S5NGVplNeNqub4fCYdarkorr8qBJN9Va xu1Qgj3sOAoxmuOnZ99YAgXhs9Bqe4QsrQfs1cMUVzZsl3FIffh92HkrLmdJlsjX 8lrRT694cIP7ELNGKJ/zaXI3j2cnQPVqUO1icVfijqatqDg8bgQS8C8CGQX6e6h ADKGA/9cIY450gMvrtbR3/bqHIgvBCUog5RXv0y8c80sJnzeqawx2BuziFvv6mZ Kv0PJ2vnWok0NHcyuBHkkEtujYlMQXHZ6wRykYxIUzM8tl9129tSNEKGdcCOZ rfbwm8scsVmzrHXPsaOPcHPBr0e/KPPixNN1I5HB3yI0ILSLQeTHVvcWkgQ2hl biA8bHVvcWlAYnJpY29yZS5jb20iFcEExECABcFAjx2qnEFCwcKAwQDFQMCAxYC AQIXgAAKCRBNdTvRKSbzvmmrAJ9FVK0lT4Qymqzj0EA6TP3V42cwACfQlClPzJ zngykscMJW07MBXkQ9i0HUx1b3FpIENoZW4gPGxjaGVuQG9uZXR0YS5jb20iFcE ExECABcFAjx2qpkFCwcKAwQDFQMCAxYCAQIXgAAKCRBNdTvRKSbzvkEwAKCRteUw 2X3XbPsVDCBZarrkf113YgCeIHmhkDHbauw4UlUO1tYNVObn5dO0Hkx1b3FpIENo ZW4gPGx1b3FpQEZyZWVCU0Qub3JnPohXBBMRAgAXBQI8dq6XBQsHCgMEAxUDAgMW AgECF4AACgkQTXU70Skm876CUQCggJuwNIJy6f05Ka17RYnj8hEQhwAnicDXnsy 5SEYN6amlHdqN/HwXCsbuQENBDx2qBUQBACifA9hUBBYNqCcXTs8Jk1MCcToMFob vRt/SK2EcwjZ9aF9sIX3tJFrOHEe/bIcDMX19e480T4BBs9MyHdnKgPR6vP8ZEe FvT844Wd6psLB1LwsE8UpJ3CbLjkgafTpJIlh4NP5iM2p2ugUIRM2ZaAG7MOMK Ec47KOEb6yI9ywADBgP9FpzQ1Z/qVekBooIKU4xKBryGb/XIPJi/Pgapgr3oE9 kKH4iObbvMBSV3kd4a0FSEXSZyRnMD1AGdWhAHgb9rbjtICp3hZOKCMfdZxFVg QStZO8vP5EhQYYtIXiNmOvkkBPqbto5RgFFez8oIdPlMUq2Hf9MBIY6XDoNJlI RgQYEQIABgUCPHaoFQAKCRBNdTvRKSbzvh9GAJ9K3KifYIBOHlsmRLF75mgKQk/c 0wCeIOeVykZkImOxs0pEQMR/4g47Wjs RNuY - -END PGP PUBLIC KEY BLOCK-- D.3.15. Andrey A. Chernov pub 1024R/D99D08EB 1992-08-20 Andrey A. Chernov Key fingerprint 33 03 9F 48 33 7B 4A 15 63 48 88 0A C4 97 FD 49 BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.4.1 FreeBSD mQCNAiqUMGQAAAEEAPGhcD6A2Buey5LYz0sphDLpVgOZc/bb9UHAbaGKUAGXmafs Dcb2HnsuYGgX/zrQXuCi/wIGtXcZWB97APtKOhFsZnPinDR5n/dde/mw9FnuhwqD mrKSL1HlN0z/Msa5y7g16760wHhSR6NoBSEG5wQAHIMMq7Q0uJgpPLZnQjrAAUT tCRBbmRyZXkgQS4gQ2hlcm5vdiA8YWNoZUBGcmVlQlNELm9yZz6JAJUDBRNC2wxB 4mCk8tmdCOsBATDfA/9nZ6Qp8FbRbKmAkCUSQj1fzLoV8A5PbDycLIy1MbqW7g8M fsTl6N6fX09/99I3hQJ2EvOaxEaJOg7nKQXsfn4fnl1fsE5OAmflKCIRpuSDc4mF yj2M7M53O6lVeYCpdMrEq3mFy3y9EfucWVIYUgrGWxiDTxPC5jDxcEGqk/JbokA lQMFEDR5uVbiYKTy2Z0I6wEBLgED/2mnhw4/3peLx0Sb9LNx//NfCCkVefSf2G9 Qwhx6dvwbX7hmFca97h7BQN4GubU1Z5Ffs6TeamSBrotBYGmOCwvJ6S9WigF9YHQ IQ3B4LEjskAtpcjU583y42zM11kkvEuQU2Gde61daIylJyOxsgpjSWpkxq50fgY2 kLMfgl/ftCVBbmRyZXkgQS4gQ2hlcm5vdiA8YWNoZUBuYWd1YWwucHAucnUiQCV AwUTQtsMgeJgpPLZnQjrAQFwCAP/UHG2c4nMgKPH5qrWrLkYcRH89YGeMh7tw1t y50RlKTbdRKpdpsfKNF8dDLzYqNh1Qfxv/giwdzTlbH0hueNMDsqfxg9zs2W5R BwAwHO2pyAQtGxwNPXvujpcCJmqtITBeEca/AkdzIOoh1sGQX8obI/SIlEHayg/C0QOeXJAJUDBRAzYTO74mCk8tmdCOsBATK6A/wMdLyLEnk565iA8VB/mzLqX4u sHqHJpL6WCxQ9qFaM1hydoOZ91rr8FXl3j7LmuVB7mOdgbv/JC4BHeOGVfPxcO uqUE6db0C1iMO3msx8loYVMZcA8ZnqTrNBkTT9i6tPyJreqO5mbcXDg0msdHHsR MdG9UkO/EDoaCyavYkAlQMFEDxeymbiYKTy2Z0I6wEB3fQEALmQcEy2f3vzK8J3 R0qwHxVK/eshUF4VoaU2eKh6vfe9ddjZsqSMM/f6b6V8rgjllDAMtaOapZSalCL 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 84n0QdRUKp0JHgGVPTpAgwGOfZGK oqbz - -END PGP PUBLIC KEY BLOCK-- D.3.16. Sean Chittenden D.3.17. Junho CHOI BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.2.0 FreeBSD mQGiBD2qLwkRBADbZ6Rsv7guMTzGT9lj4eIE29vj0ZZNWFepFEqEmWK0jMLAATX0 koXkP/qWsuGBhVHcSyZtVGMYTwAzo5nBszx12CNL/GkEokQ/9FXicA3W5TJZTE ssMq0PPwqCB7s/4DBmc3uI22TCOI7J26XkftuwkdihCMG/gkcgKkzZ7wCggaBp 02a96DwV/78wUZy9C8B6uMMD/j5jAO2HOubn5CRZrOpko3zaqVsk6yTCmq12zt r9veYORoVohxVTIYxpeHQVlOe5URTiKO0Uvu34Tl34x0BbSLBWrGU8UTMA4hpl QTUK1GI1DheFPGGGxbt9w40nslRVw2Or7GA/XHexCDwx5KZpJNtO8c/MqdlzAae5 CuYQA/9bb5T8xhamrsOFTmdLY3wPM2efnp5d3luwA2Fe3SdC5Rkoa2fDye5w7fy1 9YX638Nw0YU6P/xmygdBjqxKs28/6evo79KAWONL0dl20pEYoj3yVz58C3YGLEFe p9ggrBf41MjnnMgD7NdBOHtISfOrU3TtB/1DiGE3QpMwuOHrQqQ0hPSSBKdW5o byAoUGVyc29uYWwpIDxjamhAa3IuRnJlZUJTRC5vcmciFkEExECABkFAj2qLwkE CwcDAgMVAgMDFgIBAh4BAheAAAoJEEoBwCDmAmD1SyYAn3JBBPs/6lAQ55HLjew2 suN8XP8RAJ9OBFQhUphqmQ/shjrwbNRBsgDbc7QmQ0hPSSBKdW5obyAoRnJlZUJT RCkgPGNqaEBGcmVlQlNELm9yZz6IXAQTEQIAHAUCPa7Z7gIbAwQLBwMCAxUCAwMW AgECHgECF4AACgkQSgHAIOYCYPW9MgCeOYgOUTCIsagnCymketJwQoGBEpsAnik bL1lPnomVghlMMUgU8wxB9sQtCFDSE9JIEp1bmhvIChXb3JrKSA8Y2poQHdkYi5j by5rcj6IXAQTEQIAHAUCPa7aJwIbAwQLBwMCAxUCAwMWAgECHgECF4AACgkQSgHA IOYCYPVI0gCbBZEg/a9K4BAY5HQ7wFOp6u/GnYAnRgb4zUmf2M57dxEx2hm93pI aKP/uQENBD2qLxAQBADMGxA9f5QYLFnR/XZHqa/YCeqFMZ3hC4KnjWBDDXfI0Cv HMLBIW5027NPIDeN95998T5YJPDm1TY5Cort72CTDS3eIfoG0iGwIzzLfXrZB7Zc 1BukNV5NMFeKPO7pX6k4R0aQr0SQUmcdYD7t6V/M4xswVOwcECk/W9BuGA/9NwAD BwQAy8LmYyssQdjImAASQABcpdOua5orv0ojYMuedGmjd0WqhXToUHcDfQgL6YA kO/4g37ysvGwlpj8U7cZwabMO/zwnryyOEeGEA5aCsji4VRZHOkdflcuBOXj0nR 9yHmPFfwWTxLtV9ajLCP4vXqKPrKciS8SbuLYzvxlnUiCqIRgQYEQIABgUCPaov EAAKCRBKAcAg5gJg9eZZAJ90E4gu6VACob81uH3MxWmgjpG2iwCfeNTe1Wz7EO3K z54TjDmC4biJg2M g8A3 - -END PGP PUBLIC KEY BLOCK-- D.3.18. Crist J. Clark pub 1024D/FE886AD3 2002-01-25 Crist J. Clark Key fingerprint F04E CCD7 3834 72C2 707F 0A8F 259F 8F4B FE88 6AD3 uid Crist J. Clark uid Crist J. Clark sub 1024g/9B6BAB99 2002-01-25 BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDxRQfMRBACvHk6znTM5boH4k2anGxRuPxPPIJgo6Ny385v60FtJjwLwDh 9LwvZZjpjXi7MM/0FRfUE4bqzrdBtUm6XXGC8v/FTH72TemXR54yr2zuCTcX3jML e7wjrO0SO1cttASSeb8OsVQEqiMT4VRm94AYdQvS8bNxbqlog9PYmhh6lwCgwDYl Br/IhYSKQTugPEb8nSyP3e0D/izp3mt4NXcULIp0PZFpvnGZAMLq8moZ3cYa8nM kRCWd/1/94lCd1YM8f3lQsaEvRuWaw7rT1ENknSb5TZnEMsTvV03CM4DMzH63Zde wgl8Xne5lF/WyiSsjUeSkmvCExFA83fz/Cv8/fk6K2O2Ajo0b33Rb7WLH/gb4U4s 9ZkEA/48XB6/s0vGFVnELRSXbc6wCHbnhG0/58ewSbJ2XjyIFFFmeqIF2bpLhuRT YTBz3styfrjeAqsi9t4gtcEK3vyvF83ql5b23u5/V/O/ZLwk3kceYmjM0mbETil FajrLZjaWXpTRQauL/tsqxItBI4BNuTvnh9bizQY8V7xzAgMwLQlQ3Jpc3QgSi4g Q2xhcmsgPGNqY2xhcmtAYWx1bS5taXQuZWR1PohXBBMRAgAXBQI8UUHzBQsHCgME AxUDAgMWAgECF4AACgkQJZPS/6IatMaGgCgqdklRK39OoUma5sl44pEl7R3GhAA n1680hBnTGdIR4wxFY39uX9zK708tCBDcmlzdCBKLiBDbGFyayA8Y2pjQGZyZWVi c2Qub3JnPohXBBMRAgAXBQI8UUKgBQsHCgMEAxUDAgMWAgECF4AACgkQJZPS/6I atPX0wCghHEX/oyrMbMrCsdwubBf1WudnAAn2WHoVNZpzgMck2MhFdwa/1rAJI1 tCBDcmlzdCBKLiBDbGFyayA8Y2pjbGFya0BqaHUuZWR1PohXBBMRAgAXBQI8UULc BQsHCgMEAxUDAgMWAgECF4AACgkQJZPS/6IatOKKACgsnfy7ZCxEWmdnYc9KLm x0V1Zy0An34Ky4kzHxDYDTIoO6XRS48/aljuQENBDxRQfoQBADouiAUldDORJkG K7fN81SWvocuySMOL/dEv6UQnBgR4lmjmaLog3QMbGIsJqiPRLDDS3PMkYf1dgDy 6hPmMkWF/xd13Vpk4S5sIjrqTBGoE9f0SPbcDPIjRjhtXFcIqvhvdceYi24Zvs xGX90jbfimZdrJNtobfEqJaYOkrDwADBQQAsCwtAczuP/aM624UYBrNMCmHpRS ZAOAnp7Hz83GafkWynaNRDYan2KsBrZJmbZ3MJ6kyUj6k37Keh1c7pR5DsY202on 9haB3lTZvj2QooPyj9Ityd985eqiRwAMBuOrpaCpot7zYlwiG/Lx/0P00RZJdz hyidSKrsudGAp0OIRgQYEQIABgUCPFFBgAKCRAln49L/ohq06htAKC7SFr0uQmS 9fjEOFsF9oPMMxgFwQCgjvMA6reNmNAm0i6ycFh3QVYEUic C4zW - -END PGP PUBLIC KEY BLOCK-- D.3.19. Joe Marcus Clarke BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDyDmj4RBADa/Icz5XlcJUGNxC/tWgXWqcA9VA8GNPeqKhXS0BnVHntdsQ xbpFUUKK4ld0Zex/Rec1jgC/ikExJHHIee8ZVcHqPtsWexi83/ZvEdzI95diBp2 Is5fYp8P8hdIBNQSOoc1jVYrTJUaZgJK2uBzbkh/WbipwsQbueRzXqPORwCgsPNr StLzqOpjrA7FdUz/JVQf58D/1SiKAOFiW4TxYfS09lqiLs3mbXjvw23iQwLxje 4vBd4b9iAUWOsSretSKv6OE9ZlD4FYea8HmMgEkuKfXGc8GvTq4J1uHZ0gcVbrB GmxAUBPPaAENYEJfJf7dcysKVAl14ZQVIvzAGJAZHGuegD7uekGKnOEA61R3ze4a M2zNA/96I77l0qiMc6J7gXmiD5uxC7FsSCFj5sqTYMgBqzIYEZjU/tTUbth84xcR i4X0WNkaILqq1mOcBfmzQMvzG1n1CydmJU6iF1ewle6cIui9TQYg5CESrJF7xid4 vVXRzxi6hc10bSaoJa3sfpNrSSr0lKGdWHZozWdQjOvTMCXbQoSm9lIE1hcmN1 cyBDbGFya2UgPG1hcmN1c0BtYXJjdXNjb20uY29tPohXBBMRAgAXBQI8g5oBQsH CgMEAxUDAgMWAgECF4AACgkQb2iPiv4Uz4c6rgCgg7XXmcYqcIlJdDl0aGU8r0Dl kfYAn3W4oHUReFhATFkj2d7zuRsu2MtEJKb2UgTWFyY3VzIENsYXJrZSAoRnJl ZUJTRCBjb21taXR0ZXIgYWRkcmVzcykgPG1hcmN1c0BGcmVlQlNELm9yZz6IVwQT EQIAFwUCPK4tTQULBwoDBAMVAwIDFgIBAheAAAoJEG9oj4rFMH7U0AoICIVoBe 9B8bo1lrvHhUF7GY/WaAJ9C2mCThFrmqxCr2bCtR12UoPCPqrkBDQQ8g5pAEAQA qk1J4LBDLeWs6ZOkPDYYcKCSAu0qlzEf5YP/TcSeZcjJyXILgesFXcayoy1v7ILP QSXj4p5uzRyn0fuGqiTvajjxMZz1aSkvgGySgcPDmi4SJ2N/tX2isrul8MKNG eUsLuZaM1JKhgKpq9yuu3D3ELG7ESga7xsOs1V/sSd8AAwUD/20XByIlsUUC/65K G/DQ1WfX2gNuy5If9tSPQ6h1Lno5Hv3ow3ktybIoQSxbcBo28nA/Gzg5NFGVkkqf OkH2xtS6V0K/WjzsrloBHCPFiKp2yHpXfKubxl8yefQPTMj8hLwlBKrNiN1fz5/6 29TIkEwDwrUwHxQreE7FAzPMqHORiEYEGBECAAYFAjyDmkAACgkQb2iPiv4Uz4cn uQCfX1zNrahRTWz/HRpF7ms8qZqzdOIAn1uuu6Jst43pDzanBHUOBzUP6ymA Bu/6 - -END PGP PUBLIC KEY BLOCK-- D.3.20. Nik Clayton BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see 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 PbUkrewAn0exWATudMNC4IQf18YvII1t4Cn8 9wNg - -END PGP PUBLIC KEY BLOCK-- D.3.21. Ceri Davies BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.7 FreeBSD mQGiBDyI9msRBAD3ChWTrd6eyVBO/p8CKWvVwR2nHBlwNzjUwLhXK12wNXpzIOkD ZoRmeh23B06dTISQhfCJEdC6nhb2Tu/q7ZdTVZ8xsuEQh0AYgxDfaKbDkOQ5UXb CbymX6LEarS7yt/WNTZYZ42wKfaaznW7k9/pf6BiqkSOeXyYAhqgHty7KwCgyqN8 2In5R/b/DDAN51vGrFWcD5UEAJwcZ6zCpwZKKRNbWziKGCavf2AAkc94uwUqzn 3oea4Fp/NCSwoLghisKtMM9PDWk8Kkt0HUcv5n88sD3HfXzYQDFbx8VxLXqdaIyA NYtY9JJ6ErX9FlUaUM0qwbxI5fahKzmENFPn/1322Tq7UpuVcLOdqsHZG3xMAv4s ynzmBADBf1z7t9xBlbbLOZ90KxH9TAbfap62fryCmra0cQVsynfPMfM2vdgUi1 UP26yE5IqpIliNTdxtXCei5sWsWkA/N4sEMREXzsNjiN/IAerU9aw7MIW/On9oC7 vNGBiVZ0sX0mMnGm39wPP/WFsWogHehM2ZDDLQCgkcxqJHpqLQkQ2VyaSBEYXZp ZXMgPHNldGFudGFlQHN1Ym1vbmtleS5uZXQiFcEExECABcFAjyI9msFCwcKAwQD FQMCAxYCAQIXgAAKCRChx9zBNLckX0oMAKCpxcvH6Wy26NQgnnt9h9fsOlpOVgCg mvkKmB419Urr02VlIvDS2zPF3re0HkNlcmkgRGF2aWVzIDxjZXJpQEZyZWVCU0Qu b3JnPohXBBMRAgAXBQI8lfbDBQsHCgMEAxUDAgMWAgECF4AACgkQocfcwTS3JF8l QACcDIWbwFoiyzwstCX9yLofxXoX8OgAn0C1dAVUSLHk8a3eXSiqqfZaLJtCBD ZXJpIERhdmllcyA8Y2VyaUBzdWJtb25rZXkubmV0PohXBBMRAgAXBQI8lfbaBQsH CgMEAxUDAgMWAgECF4AACgkQocfcwTS3JF8BQCglZ/NH9oWiL7EyJ04KUFF6N btEAoLWBDEfP8E0EX/KdcO/0elAnMbRauQENBDyI9nMQBACCsXTESbCbETBauHz5 lsLGPcIu3Wxxm6q03eu4ssivMNN7eYhkxoHK4bE0iIMl8iFUjeIzvGXBrdPIbhhr mFJ6gIfQ0lwVexTZkpFDQyn84CYTbzWXNOdkAZsqhQugw1yVKn4FO6cGxKdB4q NSaee/7TTBWXluiOblwU3B3fSwADBgP/RwKczbedj27cYLvuk2jpDs7hmhL2BLh a9HmnTyPFYDhW97s7gHjHn3nYjikWssTYuVGllsn2DXRUVOeYJMzC9KaFHwRMiL gPOKTNopEmvvDCVi8ZeUvyquowH0l3sigHyFvPaQph3ZxHvO5bI6eaqtffLMagt l0rlSKD4kheIRgQYEQIABgUCPIj2cwAKCRChx9zBNLckXx4mAJ9kE53878kMY2jH iJ8ElEzEWbJOsQCfStKMIHgOPO05CJbsJXq7OYX9wSM aCeK - -END PGP PUBLIC KEY BLOCK-- D.3.22. Brooks Davis D.3.23. Pawel Jakub Dawidek D.3.24. Brian S. Dean pub 1024D/723BDEE9 2002-01-23 Brian S. Dean Key fingerprint EF49 7ABE 47ED 91B3 FC3D 7EA5 4D90 2FF7 723B DEE9 sub 1024g/4B02F876 2002-01-23 BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDxOCiIRBACyyyoMk5OyGdOkR0a4fj8zPJ2AOielQ1BYv7JlIWdNeMHdQ0gj liTgXwDimeBnElw7sNrmdfocfwKbmX33exFPa3AkJgLflBcuH9xE3ozgzMl6t76 QL90PPIc24Er670NnhF7Smvubus4IdckvM24kuUTINmiuFzVwuwWdXdwvwCght6R HPpuFeiMZHRJAiHmu9AkKrkEAJRLmRGgdqTQ6RRIQobqGS1grl6AsXHzKfvjx8I//12yrFiUcXE167I529OW2i4ilmVjBmnwwe3750ZKBIp8OUBkMkfMuTSyCCFD22 CX4N7D68d8eCJiCqv0jMZGnoWoMulmWzdyplcg/FhdLzUfpXLWX7/9gzy9k8hKBT Ou2UBACRLG7zwgKcYx4yjHhsCxuqGOeKtcfF49ghCp1swPsnXy8b6ZAY3wFeHC5 LFyUsQFarizV0aeqJoOXEB296xZYPpgW6Crajd1WVi7zhPxsfYedldX8HtGDMKm FRN88P75OGjMdFOYrpXTqUAJnoTUN4UynLV6WbfM7Cne0syg9rQfQnJpYW4gUy4g RGVhbiA8YnNkQEZyZWVCU0Qub3JnPohXBBMRAgAXBQI8TgoiBQsHCgMEAxUDAgMW AgECF4AACgkQTZAv93I73un4TwCfWqT0UeeEn9qstLTycDZF6oiKUusAn2dZRiNX 06KUv2qJk2g88nUsBXgDuQENBDxOCiQQBADXYICYMmiant5TBMzh5JfqhW2FXa aZDgi5XTVAStL6AaygeLIaVSSUUuOxiD4JB7vxHYB7pyVg71/lg5moud8NP2HNKW YR2mZjCQ9bHRQRqqPBTMrSHJpq10cZ6grxvVmte/oC4cI35wL8HEe2WwChZgk0tS YrA5PRt/UGWLLwAECwP/SxokqxcRa3lZqkpdwLgLWpyx1KNBg7wIJYLmALI0UxpS ezweD7OukikqZ1BYlaaWZ7Nr4sNDR9WTIv0ySNovxJnnlyo6FzD9RD7ijQbAvp nhpikigCGvdnvmreMXYztc9WvFeJT/S8LGDkDHcm0ECmBDo3EA8W0sOQsZxk2I RgQYEQIABgUCPE4KJAAKCRBNkC/3cjve6eroAKCCMN4s5AqvTy38BWmspFvSu90I IwCfTGutfsPGUY9JJoabnnfJhfIgNA MFJO - -END PGP PUBLIC KEY BLOCK-- D.3.25. Dima Dorfman D.3.26. Alex Dupre D.3.27. Peter Edwards D.3.28. Josef El-Rayes D.3.29. Udo Erdelhoff BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQCNAi4rWsAAAAEEAM1u8Y60omElX7Wtrh75P8K0L2Gp6omV6iDuwl9kXYhN94jF DE1F4xpkRDWvQxsWbYeIk2F3VYGuN12BhbRNcNqoyniQt2XMmbdEmp6ltumH5WbG jR5Xg0LkJ5AJmxvjJXXA9q/eTfmyTfPjnCL70cTMWHdUlEBUPoh1XnT6hxAAUR tCFVZG8gRXJkZWxob2ZmIDx1ZUBuYXRoYW4ucnVoci5kZT6JAJUDBRA0K3Q0QiH VedPqHEBAe9vBACel5mJpqPkC/om/SSE7mxyuUqHAx1tNUymL8gTuV3mFB0goM xkxhUOMMYe9z2zyiRXrECfLT2OqqUA60EZpl6Mgymj8SVZSv4ZwXdU8cgynYNfX T1pC57mN9mxL10vTTJEix7QsrVz0W479/IkBrhW9nTidQtORW1Si5T5IA7QeVWRv IEVyZGVsaG9mZiA8dWVAZnJlZWJzZC5vcmciQCVAwUTOwzFWUPoh1XnT6hxAQGl eQP/bLMp1qSdkt2/BKchpxlhOemCmT3LHQ1sNzelb7dBwnsvE3Z9lOycH2pm1ro j6x3vmcDAqZ1yh2eFEVNK5abfhuI3QH9QdgvMcSIQgF3VIMer7JXxNtFFX8JRKm YfLfDifcKB2HRkpMt9ETY8b3/cYzgbdKNe4nVde5KPT20IlVkbyBFcmRlbGhv ZmYgPHVlcmRlbGhvQGV1LnV1Lm5ldD6JAJUDBRM7DMX9QiHVedPqHEBAYHUA/4l j98KC7y8cjapO4Hi0r/eO7gUwDujvrBMYbWuhmNCO6xlPfwRNm76tnNiTFdqVLat XSrQwEUys9Mq9xe2F2RuqSfYWjmHKX3/gNW3gRJbnBqO1QN6CDqo39a7LgllqFf4 yFj9V6i1c0WSBiOeWy75DHpsfXHupMxZWPPRWh0TnbQfVWRvIEVyZGVsaG9mZiA8 dWVyZGVsaG9AdXUubmV0PokAlQMFEzsMxhFD6IdV50ocQEBzqsD/0nX9rV5cAcd jFTayQvoAjb/nINTJVHumuC/Glp9fKHlfTjMnsUawmaiQESjUB8XgyeJ0WvR8M vQGEMowYr1YTtFiYfFOvrzXZmhB6NfhFV3s34ZLDeBnncUqkas79Pi9G9AP2Y/Mc c//i2owj58xTfocYNT5IxVVYjB72Py3tB1VZG8gRXJkZWxob2ZmIDx1ZXJAZGUu dXUubmV0PokAlQMFEzsMxiND6IdV50ocQEBBJsD/1SVP70fNa3ShAn18yEXOIL TlFYCUmGaBIeAsd7r8tXFYbf5STAOEOiqBB9Y7V1tV4IriACru9wo5wBQoCLBT1 RNj4NhwVvkGReTDsAZz/vUULrbklVKO724DktO0WRbn/w99trttuUTGvTHRER3 BjuOfJ/QoLlnLAsDBMov TCJD - -END PGP PUBLIC KEY BLOCK-- D.3.30. Ruslan Ermilov D.3.31. Lukas Ertl BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.2.5 FreeBSD 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 Fv2s0kptGIN2izILm1myaA qAVp - -END PGP PUBLIC KEY BLOCK-- D.3.32. Stefan Farfeleder D.3.33. Chris D. Faulhaber pub 1024D/FE817A50 2000-12-20 Chris D. Faulhaber Key fingerprint A47D A838 9216 F921 A456 54FF 39B6 86E0 FE81 7A50 uid Chris D. Faulhaber sub 2048g/93452698 2000-12-20 BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see 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 6r7mPk8 R6MH - -END PGP PUBLIC KEY BLOCK-- D.3.34. Brian F. Feldman BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see 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 uPPUsA oR1w - -END PGP PUBLIC KEY BLOCK-- D.3.35. M rio S rgio Fujikawa Ferreira D.3.36. Tony Finch BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.7 FreeBSD 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 KnkOqXNQ7FzYXOIPK74 7TEa - -END PGP PUBLIC KEY BLOCK-- D.3.37. Marc Fonvieille D.3.38. Pete Fritchman BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDp2C0ERBADDEONsb7B2tbhvATFEmuw64H7AW9Kk6NMunEF9kp1VguwRP2w pjtAon2QbvM7HABE7t3IHnDhhS61kLpN3Zxdxwt994sjRMZ1s/p/XIP5/eIx5ds BgKZk45sm2qdg0vRKAPFOn5voQttbBvBdOVMWOmr60Fc3IBTNuAgaEHwCgGC 1P4Upv9OHJCQ7JI7gKa3qQcD/3HWzaGMwyuvcuzWFDLpfv2kuYxNutg75l0K83p hCFxorUVw16j4r1/464GnTAhvfp16Z7ReODy53NOlG9/fQXAE1nHZp93kFnkgLF uIQZQKTiYsHP5eqt42gOGmX4lBRpJlpTNsdlSr8CC9VUvzqZH6wG4epDE2jUnFD kmRA/oCBoq5k3Hm4gyi3Y1F8cLUGU9YFDzhzTkDQiZc1Wqd/QlnvMW6vci7MRKv eeeZHQOpzOSxzuPob/Prn1ssluAi2IIPObxrq5Gcz9lQ7/xqrvQH5EosbpH5zQM 35ku8psPGcRqcRKG7OecAoYpioLLWc5UJ/SoKAoxqzecICf3qLQjUGV0ZSBGcml0 Y2htYW4gPHBldGVmQGRhdGFiaXRzLm5ldD6IVwQTEQIAFwUCPCEaTAULBwoDBAMV AwIDFgIBAheAAAoJEMXJoI90uRz9hSgAn0Yp/3lUexQCv3MEjwm7l7XhZi5IAKC8 Qnw/RCmcFjahkHQTXXZmWrSwokCFQMFEDrzKkoSaX0gm5SkDQEBszoQAKvEeQYp zt242YB6MVU88HavNYkonemSqA5s1fbg3dwA4TT6TTJ/757W47vbFnzjb/AmGIJb r8moK8rC6mnSC2IewsaFqkDRFSRp42XLxyVdwdkJKY/L0Of8rOpWlUsW/Zk6dIE XFUs5bjSEO9DiMQjmd4upPTF6r4o0jddWwn0thrqNk3ghd35q4HjtFnYMruMv BKzLUYfyLkYA16w45nOF9Lr1Tz6oNzdVEJXrubpdHsHMs2sFQlrnD9A6EMog/ouD g2N1ASr6UycE9s2nyVXM5W0WVahAhdMosrUCuzDlhGWv6mQqjTNZfl27/LJd5sM QEv0MQoTf/fzOI7kJdPsNGTibnnTuE99atLXpbNhsKj82BjYgAAeycutTw3Qy6CX B6fpdWa1PEBNSdOUbiAtxyV4XPcw84C6rvk7mZepYVBYPKUrupPM9OY1d/mCEE4 zDFv6o9UjiZabQmzKq7T8wKZgVPl14dpHcRxd7tZP79duLdyIkxOe6Z2xbnqY5 NlOar2AfMNtes7GIkknx1p2koRfqhW1mPH02Vjgi09rukY27jzxHmswRlu67q 3r69rGouXBgIJQ1OnyOPXLKY/iglgkRIXGmAoU2R3Ii/X0lsQRYA5XdtiBodezQd gCuJ1XfK6W4xWjZsONGmEhNN9RezUJKoMSeziEYEEBECAAYFAjwhG2AACgkQF47i dPgWcsVClwCcDW2kRANOyFNhbBhDE4OHOPTAau4AnA/8TasNnyJLhAxeYFiQhpuI fiRDiEYEEBECAAYFAjv9fJwACgkQXvSymrg2XlXuQgCeNou9DlCKpHZF7os0/9K3 xV/hva8AnjNqFXvpIZPylro1vJkzgHh3I4SkiEYEEBECAAYFAjxOdVEACgkQ2z94 QKW3O1wm8QCgx5i66wSVMIhsYvb0He27mJFW64Amwdkruw5oN0NUm8HHHCAqFV S4HitCJQZXRlIEZyaXRjaG1hbiA8cGV0ZWZARnJlZUJTRC5vcmciFcEExECABcF AjwhGlEFCwcKAwQDFQMCAxYCAQIXgAAKCRDFyaCPdLkc/VorAKD3J94O/gJeEgYW RadK3SewjnB6QCfQK70Io6Jlz3GmoS8/c3o2hSUyIRgQQEQIABgUCPCEbYgAK CRAXjuJ0BZyxSERAJ4z//S1Bzb2OUl7ozm899AYR8W1LQCbBkDibniWmMf6Gwy7 fL9Flyks7yKIRgQQEQIABgUCO/18pgAKCRBe9LKauDZeVd66AJ44EAAjhGopDGym iCGXJV0EvKo01QCgiGW4Tr5DZG2mY1aqCtBgl9UIz/qIRgQQEQIABgUCPE51VwAK CRDbP3hApbc7XBD4AJ0Q7a37xCQKlc/m1uxQ62JxgvgHWgCfQFAKfveCwE3W/Fpy glLmP0/ZTe0IlBldGUgRnJpdGNobWFuIDxwZXRlZkBjc2gucml0LmVkdT6IVwQT EQIAFwUCPCEaUQULBwoDBAMVAwIDFgIBAheAAAoJEMXJoI90uRz9gnoAoPosyzKa niM7FvhR4xLDLaazqe/gAJ9eE0hFz6NDr5h9nRZ1qfU8BK6NM4hGBBARAgAGBQI8 IRtjAAoJEBeO4nT4FnLF08EAmwXdi9LYq3liDz2FYledwRRqO8ZAJ9hax4xk4ue E2B8IogV9WHnnRSci4hGBBARAgAGBQI7/XymAAoJEF70spq4Nl5V7ucAn2K6WfjX 4vncJacQLGLVuh3tMCAWAJ430sgOCEmwY2bAdNfu/WYe6YxwIhGBBARAgAGBQI8 TnVXAAoJENs/eECltztcBPoAn3zovCq0kHyFqm1x0QPDtlAkRG4gAJ4gCD4Le8Rq 43Ms91wrrTyNOutobkBDQQ6dgtUEAQA3sN519zCh7owShpNYRObr//qeAZnPcx1 69ZscNuVDy4EoKeyiLletkmnwNes1IDpq1RslCkHa8UOjFy0jby9cjePCJNo0b8Q 5qG/4iJf1020PT8AMxvL/H/SZH27ueF6PxkpSgDSsz/e92c7CeYpTunxBYsLO9 GtNi5asTvKcAAwcEALHRDhWp0dDD4AxTa5evEl7GFy22y5sFVDHA9eukt70/d0d nAi5d14uA/LbAIWyLCE6KC23MAJOgrQSc2PbOa2O45rx3dDw5RoqXDqyn9xPM304 hFzXgllOFOTYKMy6G4DBOv5KWKgVOx03XyIPqAVAObw3rHzewU0wXhD5Qk/QiEYE GBECAAYFAjwhGssACgkQxcmgj3S5HP24HgCfdErc/JU9fVJIH/iLTbWo28vu5yMA oIDNzwMAwpXoLZkEkk/dMUDTsFCy ZbG1 - -END PGP PUBLIC KEY BLOCK-- D.3.39. Bill Fumerola BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGhBDov9skRBADzrOg1JwLkHv1dTePFR2lNrErbMeWVeP1sdGuKcYTP15VQyJ WV/6ZoUGsihAmFGcGyJuhcUJbvlvqRf4ZlwD80a1y33SNxxsqe8n5dm4Wy9FElL5 bjs4L0kGJlSL8KnYYUTQKEDBcTch3GTjgS4NQBZWy4h0W6EWqgxr7CZYwCgpeB3 tnDcY3ELA5EP6Bx8wZN97zUEAJo972g6HplZyuyjqqTjdztXNgDDlsyNpNkEfqs AnZcr4aqEeyMNtGl8gPIc9JwPPSlX5OfmjCm3zWtEjwrHway6YPggXqX8efuY3lo LxVfjRt6NLI0TuV0FhojgHuJYB9RsXQFZxbYH8A/j6jQHbiN3wTyYHtaAJJ/iELg 82oWA/dTeR0kjvjgrfB1MiFCH4AL77bZWuxSv1CvV09DlYtSxfLpyBm4OHvDZmOv V6zT9COM2f2/EMI15cNllYXB3WnwfYit9tZtEFBl1OshqYBbcNkser1pBd5jP7 fDAkpDYGx5OgpqAS8hz4XLPZdS/HXSegodYKinU0p0Rzza6KtDdCaWxsIEZ1bWVy b2xhIChTZWN1cml0eSBZYWhvbykgPGZ1bWVyb2xhQHlhaG9vLWluYy5jb20iFcE ExECABcFAjov9skFCwcKAwQDFQMCAxYCAQIXgAAKCRCENrcLf4aCaPIbAJ41RzBA OuxYwZFUSbMbU5PHENe6ngCfcnVzDC5lkssh628m3GTG0EjINS0NUJpbGwgRnVt ZXJvbGEgKEZyZWVCU0QgRGV2ZWxvcGVyKSA8YmlsbGZARnJlZUJTRC5vcmciFcE ExECABcFAjvw0YEFCwcKAwQDFQMCAxYCAQIXgAAKCRCENrcLf4aCaMcVAJ9brBw2 LPC2RcZpsm5S//dETM/qFwCgiuPpVVwBP7ibzn5xQVNAdB12xOa5AQ0EOi/2yxAE AL/FYZQw0b7NrD04j6dxrp7wBjgd19ux4zQocXgXPlzpBZxQ4A4/icGOLnIUvDu ltbpf7aMTd/mJokJwx9pE82pOgxk6i42c5qKkwkmjhO2/4FFk8HXco2DJ9roRi0n eBJztXskUY4cVavKdXNeJY2JUeBYvmrnREWG1W2/0ZMzAAMFA/4ytkv46phPokQe s7yy67bEeHiydjvf3uMv1z3xWoLw5ZU8hLdFkESpZ7uqA1mj3i7LNBZhfA5Bt Cgl10v9DWX9cda2HlMjyyI9p3dfPlOcAh69PMwexJ1VYPtizK4ZkC8dNk0rTVPOf SYftSsFGdDbUAq3ZokhjLkVRFY1LxYhGBBgRAgAGBQI6L/bLAAoJEIQ2twt/hoJo ewUAnRRikiShfD9wCuyMazVJ9FZLWiiAJ0YFgos24sNEFq5rA4I8UZU0LZ5Iw y5FR - -END PGP PUBLIC KEY BLOCK-- D.3.40. Patrick S. Gardella BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see 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 Kt2KhXZ5jxlBX4l9Ea1ZxbUMxuJ3p9Tj iJ7F - -END PGP PUBLIC KEY BLOCK-- D.3.41. Sebastien Gioria BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see 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 U7Mx - -END PGP PUBLIC KEY BLOCK-- D.3.42. John-Mark Gurney BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQCNAzL/8IwAAAEEANuX7fcIa0S5fVATYQCGwgBJo9DxRr0m/QjrP4dJh/JEIjmv h37FMs9qsMPtyAZWlRSnbVFyQiz5ptFuL1irClW2UHzlLvd5spKMfIkJWDTnrvp 0jFebYQt0chZeLcKT9s5sSo9uafUumOfaWyubUZPIqmDYqy98Em7wI/mVH1AAUR tCNKb2huLU1hcmsgR3VybmV5IDxndXJuZXlfakBlZm4ub3JnPokAlQMFEDMBDfTB Ju8CP5lR9QEBmnsEALAS5dZyQXxsDAROzyHizsbgV1Ok9vFwE5en7QnOGcSkQX9 pE7MzzlbpP63toF9zWLF75dbXE5X0yYLoB0pvNi1NXhXqA0YbDeAi1Ed6uBXbomW MDdm0sO0Y1NfuS0uKiFiJUDOjdBrgEbnmPZM/77dhr5UbmAtQUHFftaQfY6tDFK b2huLU1hcmsgR3VybmV5IDxqb2hubWFya0BnbGFkc3RvbmUudW9yZWdvbi5lZHU iQCVAwUQMwF753W7bjh2o/exAQGjjwPMKiFH9EfOGS7yr5NQ4vWXuHe1N6fi9N jJsFfzT/RCM/wo/dNG/xhTgdCoCWRt0gKkv3SLEPYGDPDtC3Nf7HV/66wOiYYnxD 3cmjgpLn5u/Ju0oS5xxNb5Ly8EZnfz967lIHjp/qhbZ9o7kO7Nkb7bUgozNqBaRy 9Yo81fVAtrOJAJUDBRAzARCXwSbvAjZUfUBAeUyBACKoIXfYBpsKqmmnTg944Tw 5t8lAFZ8qJz42FjwhswC6c7b87imwaH3AjPnFmsA6f1ES7xDHG8RQleDtKsyik gHc9Yos/neVqwfrr4zSV1PdNPPpG5uNT/jI1k1M3pH8kwYdKiwaIHQb5sGUQsO1 ZoxCdzT7HJq4jJtBGVIRULQlSm9obi1NYXJrIEd1cm5leSA8am1nQGNzLnVvcmVn b24uZWR1PokAlQMFEDMBEHfBJu8CP5lR9QEBak8D/2V1pP6zA1dvhRLcO2pGldn Q/dcVAAtZIZ7AUUap1pKXZF/Tt4gWKMtAHj01xUbwU1fmI6DF1p4AVjDqOxJDnoZ RD9gv0RiZXdUesXL2UBNHc/7famAJgmXNrP/m70ejgzPluniR5hQm76fKYjkxV1 opRhhchTjhrFndoQ9nvQtC5Kb2huLU1hcmsgR3VybmV5IDxndXJuZXlfakByZXNu ZXQudW9yZWdvbi5lZHUiQCVAwUQMwEQWsEm7wI/mVH1AQHxMgP8D7VMqUo0qGM uFUKqxoQcDPVKt2W1X6wWTHdj9cxo3oW1tlLEZ24Y2v5v1pzonvseaTjsse134dP a9qjcwXjs/zxXzHoQs3B9BZB2qXaR4T3YeuCjq2qIXGwsrrY5fkoch4OLg0/FOui dmNbFjVQkIma2rIRPa8GhXZJtGlUEk bUtb - -END PGP PUBLIC KEY BLOCK-- D.3.43. Daniel Harris BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.7 FreeBSD mQGiBDpjbB4RBADW4fkXvVjAZ0A1X4wgXJQ4Eyes1LH7sTexP/Zm7sg1D/R9zV5 w2kBwOhICRX/hxVL76YZv2MTNL/d3pV3ZW2yV3Z6H7Pq7s4oVn2q35owUwLQZfSI SBTnBiVN7NqMZ/kzCCdWBwg/4G2FVNFwc7RyuOFQL3ly1PBtgbANbpCyfwCg3QXB K6AtFaEP2MASWWHQD2dNxcEAI11cbOHbYU8asIxbqYYyPOMgPsaLlPiTh6JQOO0 2OiGxoQlmZvkhlWf8B9ahCeYoKgA1zPqdHA2C9YMvOV2LvN/Qi0n3hpqkfM7lLC QMJgm1KxIzccWY9Iz09GRlIFm2JPaCVLsKh1QPW50c3yO9TMSa6lXwiRgvxPz76C JHniBACa25NHH3x8zx5KA0FgMM15Wc481777CFVsKazNay00G0HogSICZ5lHffdi 1O5uqQHchVKL0Lbe1zhdbVHdSAbEqnKTqseVMQ6I1TVu4gO89B72aY1RxAnAYjh PAb5W/RhZBSR5NDVZyANnqaGE7U7KMqn4/E0lC7w1TzoIZvDMrQkRGFuaWVsIEhh cnJpcyA8ZGFubnlib3lAZnJlZWJzZC5vcmciFcEExECABcFAjpjbB4FCwcKAwQD FQMCAxYCAQIXgAAKCRBsY9oEhNDX55peAJ9NKai2qEcFLxzC14qDz80zBGwP0ACf YhsW5qhTw/Rck1Id2W1alUEXMre0KURhbmllbCBIYXJyaXMgPGRhbm55Ym95QHdv cmtzZm9yZm9vZC5jb20iFoEExECABoFCwcKAwQDFQMCAxYCAQIXgAIZAQUCOmOL hgAKCRBsY9oEhNDX5wXyAKC6VLe3svRcFgmmjPS/EWvi83sDACeOpmPRbViajOw 4MUhKA7hxnRlBeG0HERhbmllbCBIYXJyaXMgPGRoQGFza2RoLmNvbT6IXAQTEQIA HAUCPSJfQAIbAwQLBwMCAxUCAwMWAgECHgECF4AACgkQbGPaBITQ1dSxQCgsBwM uDviakYEKswiv6zMHfYBBCEAnjMyuoxjKOWOoof2qmtQH2LNg9tCJEYW5pZWwg SGFycmlzIDxkaEB3b3JkYXNzYXVsdC5jb20iFwEExECABwFAj0iX2ACGwMECwcD AgMVAgMDFgIBAh4BAheAAAoJEGxj2gSE0Nfn6bIAoJlPaQlqk4wbNGoscjigAp0R B9ooAJ41JxSh9w2S16mFTGNKvVpjXw15BbQyRGFuaWVsIEhhcnJpcyA8ZGFubnli b3lAZGFubnlib3kud29ya3Nmb3Jmb29kLmNvbT6ISQQwEQIACQUCPSJiFAIdIAAK CRBsY9oEhNDX558OAJ9iOqCDUX4cdNMSZ1KBQg1gfTn1yACfZNL6BYmYCXV83L 7DXacstXHlSIVwQTEQIAFwUCOmOLtgULBwoDBAMVAwIDFgIBAheAAAoJEGxj2gSE 0NfnaM4An1YVu3iDtrG314UIuZoTw3zd9ucxAJ4yg3vWB6ceg06KuyaGTJSdZ1Oa p7kBDQQ6Y2wkEAQA0RSR8vkmX33oyYlLwlOmemSKbSQFZNImw5TDcRYX83fa1Z1 4oIgJSk1h5l2jx/29chVR1nTNqPYlRQEDMxVby9rMq2RAnjorM6oDdtIQIBNJ63 vmUcUiORGnKhC0waajpmZibcxoUFk1KcLyfxOT0JTOLgsJfqdqUENIc6NqsAAwUE ALaLYnBOoIr5Wm/KC7wRtS4gHeeOeskZyyoa3AeBorDl0VvpgYwlNdAaP4xJrx CH6UYnxrMgCXG1l4dupkGXOCRPlAcM2ouEyDIGHRTVqHy40khZnWzN7xfZhKNcVd FxeHqOG61ZrhcMboxZrdJC7hKsYrbngeKRiDs4VRoOuiEYEGBECAAYFAjpjbCQA CgkQbGPaBITQ1foeACgme2LKdFkytbn/JUhBqPYVAD8KQAnjPIDVQ3PDEKRkv AFGJ6i5SrWJ6 jGD - -END PGP PUBLIC KEY BLOCK-- D.3.44. Daniel Hartmeier BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see 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 l5Xu - -END PGP PUBLIC KEY BLOCK-- D.3.46. Sheldon Hearn BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBD0R0hQRBACPEDZc2XKdvIq9F4ofeq/EUB8ISFQ6kaVPcb5ingy5ND0MUbz K9Uq6Ik8d67KfHHvqGn7XTOXxGu2WS6rIa4ElFHtG/9lpgYtOFRZJxM8nv5zCn elu18skUNup1y3uIwvhNUY3OPSzVkHCtUPWfW/8DqdJzud/l8sDFDRtBwCgtixB FHJ2jRXInApVzwLcjpgVJq8D/ixzt0O/Zg2p62/qyAHac7M1sEc2QarCAGwRbuNw jHRtglxQw/GT2NACWqy7lVHKd37ciCrXg9QrTjotJtMcoJbCitYvbQo2RHfEeIyN yw7rffTQ4CpB51KxNhUWHcUfe6Jhx2hgHzehJg7hYnbtSv5hJcn2DXMSHHyHwBri hpldBACI7iJxl2MtFUHBo3XW27WYDzTNTh2LUaMcIaowMW/vIDds6EI71dCAjuU Ai8DcNacMtE0xRdtNzDMS8vgYWBVLkHv2ENVdLfpxhM72iu4tmPKGF5AXK191dvJ qPge41Z2/57191XtkeYtuSQDtXwZfSu1uLOHBa0BBvmppBOtrQmU2hlbGRvbiBI ZWFybiA8c2hlbGRvbmhAc3Rhcmp1aWNlLm5ldD6IVwQTEQIAFwUCPRHSFAULBwoD BAMVAwIDFgIBAheAAAoJEKRiV/F0oGrNMRsAnAlWdC5LkmEF3hZjNAIA8gMxkfnZ AJ4k6LXdmHMSSPbd48MbDYq67yzOG7kBjQQ9EdIrEAYAib54xuFqjHpvLxXmqFRl qAgAD5XpavuJisxGjfm7aTVWIpR/OOVFYkW59YInHM7dDHL0Y7tQETeEKf9pj6kF TMyWFoBjtdazqSmq2YXOvI00N27IKT9eqxJ/qR8QgIqBMNkraP9QKi60ASDIRUtl OZSfokSbAKkZMTyS086CgWw0bCPXRCvQLHDjga3KCbht0AjrZFkGmi6r4rXFnT6 D3JrNSQ0Hj2qFEixHtZvXTsqgsEkOEtoe5taMFSygM0jAAMFBf97Ip2a/kPkXNt0 p2xmWIFEDim7J9Cwl5viTb1t8fOKx69hFDQ2BwPNDZd1HvlrYTpuJ23uTrDOZsw IT/wVc/IQ9nn4mkxOmq9iTHCBS99OXz4IsODT3W1sgzUflmdqJP8xfEnsyqy6G ivOoR3QdZg7rxvOU98HhDQ1iJX3rCtLNFGisrovDF33oHMEE4oHvSMXeg65JXWiU EpEpioINjrA3PTLfMv1tb4wSUPqTWX34Gx4UfDKnMedxl6j2IRgQYEQIABgUC PRHSKwAKCRCkYlfxdKBqzVtaAJ42mqzwmJCpk8fdsfkHUt5uGTN8sgCfdmDni1OD NWQi1mhQOXZX9oGgyso PTeT - -END PGP PUBLIC KEY BLOCK-- D.3.47. Mike Heffner BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see 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 2Q8/joR - -END PGP PUBLIC KEY BLOCK-- D.3.48. Guy Helmer pub 1024R/35F4ED2D 1997-01-26 Guy G. Helmer Key fingerprint A2 59 4B 92 02 5B 9E B1 B9 4E 2E 03 29 D5 DC 3A uid Guy G. Helmer uid Guy G. Helmer BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQCNAzLrzf0AAAEEALuGJUgTVleE9HeqPAiAqBDMMfa76kC63xx98Hqv1N9TlT3 jlWVShX7Da/9h9WgK98wkb7613Ur7dPl2qVcSns5w7MCustbtt4YEaQwXZ2jOEZf snKt82DYxZRyfUlY4h/8WA79R8BwTGd/l6g3kDoQuD/446BT8c0Yd819O0tAAUR tCZHdXkgRy4gSGVsbWVyIDxnaGVsbWVyQGNzLmlhc3RhdGUuZWR1PokAlQMFEDLr znbHNGHfNfTtLQEBxIUD/2Lk7Ds8Rt5ZPVNB2Xv2kzEByndvr1FUDSDcWUn7MaG HdgIqfkNespNzv8K7ORWqrgIAtCRGXhc0Z1q1/Mb3kzC0g4UW5BuleZEur8Ys7t lc13ZV94Wb/rVEnY5wh2s3mCmMeXVA9CAiNBzzI9O1RKVZrLLYJk62ysSoq1osA tCdHdXkgRy4gSGVsbWVyIDxnaGVsbWVyQHBhbGlzYWRlc3lzLmNvbT6JAJUDBRA7 8tH9xzRh3zX07S0BAdUDA/4poipXJFYG6r7Hk32P5unYZt6dJZ4qSwsnc4DVuk krv5L1jC8Wg/Ojerk2hYTyArM7xQkw0tELOADL2KBUlHpIpz7UuO55n/9aOHnWr YJLjT39eliYkPqJ4t7sHqlCeuyKc7HkoaaN1ErJTmLLy/Jfcx8BsyVsgihI9V1s VLQjR3V5IEcuIEhlbG1lciA8Z2hlbG1lckBmcmVlYnNkLm9yZz6JAJUDBRA78tIj xzRh3zX07S0BAXQ6A/4zKB/ROfSAUmVQGm0tH1IC4lZX1qV/PZ4z2KUWQPmXP3jr jzYFdlAPaUNIwVqW8Mwjp9njnL/Ltd3NzAjTP2I7bSzBtg4NcEBRNclOOnbCamX B4mSGt07WgfT1QGCY8HyKXNhUBbqvPShfeH1OM7iyooLWU79V/1v8utB/mHxYw nrvZ - -END PGP PUBLIC KEY BLOCK-- D.3.49. Maxime Henrion BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.2.1 FreeBSD mQGiBD4dlrYRBADhXvesDDbhv8dD1LyC7eRIASp8rEN0mJDVarhEy45KxRZcD2 hE9dLXZU/5hcdK7yfatneg5xGFiedFJu/HcsMkxeb60RUcF6Ec5L8PJmCwIQl3 3xP7UmC203YufvyidQSayOk4LDyg5WVGEXiN5KuShJCfeAwvtAao5eHnwCg5CmE y6rO8Bh/K2MQxP8CXCoLG80EAINd8twMsRIIqAxtVWeG0yudtgYdvhpbGrNKoq2b cxmfunLAQmHim1jL5run1St3ZACyuP4brckPiBAOxVoRcIMOGPk04Lw3blKQ7u02 6aOKKlGvW2pF5/Wh6v/q7gzAucn1HJYcGK7Xc8IvfdIZJl/tTeCo0/smxND4EWhU C94zA/0bvNhgntEwLF8x6UJnZXfQ8/LGl/NkSTyTMA1QqRrrik1oN4mYOAHE05Y4 Oija6MSgD8YDRcrxxr8Dwh4pqS/FlEsV5y4A4OoYbPW5L6FAbEpKO86jbE3FK20 lX9Li5woBWaTuLRcU2Tk69WLeOTdOrsf50S1xWB4DJKBjmu7QgTWF4aW1lIEhl bnJpb24gPG11eEBGcmVlQlNELm9yZz6IWQQTEQIAGQUCPh2WtgQLBwMCAxUCAwMW AgECHgECF4AACgkQVWN2FIgdSAaZtQCcDxSj1KNFQXWXPlU27Sl2/IbKEgAoNDq Yn86zUh4NPJZJb3P174CFRK0uQINBD4dlxYQCADaMWMhYNWemjrdioJoZU3vYkup IcQg422OZoxWYcUz6zKVHZuPdXSAFOEdrt8QwvYrjhSiOSF9NNnFgNGMBGmqOg9 Kfk5rIKnENNQP8H8CZtzlDjJXVoMAeTfaeV9ztHwWKk6XagjLApl9Fx42Quu4Po JdvJNHhq5Bf299jecRsWmSo7DtpNnzGC2HFWRkGdkkNmpK7hFe9m3YsFuP3nCFps RXCFMx9t2Bneh1eMNqogjONvyZzOUB32WYx9Kz6Xf29auU1PSNYz1LC7JAYk f4CrFA6wexQHKe/nXwlik3/JeFSPAsp/VsmvaHOenZTOfmtBT4ruOwqn8DGzAAMF B/4tHAo7/sAMgvkz0qHAxV1DjOjB5AQSs4phksYWYN1uaJq2//oD/jjifmmkhAq0 JLEeKDquvuNot9dtJ/75DF/XNa0Upt4Hq509Wm4o5NBN/CxRzMn6oUK86S6RF1x JidNNICsTfdkNnCn0x6OjRsG0jCUbwRrs4CJ/7ZWkuMCclLBKoIrAwd5YM4eI noSrSZ4/2Uct7CyVm2aGIh5ofR75L7k92qZ/D5hN0wwKrL42bO8gJqPGPgsCtr9m OcT2DtOxkS9ir2QRyD7SelKM4pmSbxvk8S/IzrNS7dvKiO0xQXsvfsG9rZOJ2vF i3in0uB9SeXAzsqNCqtEkSbeiEYEGBECAAYFAj4dlxYACgkQVWN2FIgdSAadQACg z3dGbsy32PBhRn/t1lXp1120VrAAn04hxsFX0HEKt6sqAcpIuzdTVrEM 8gWX - -END PGP PUBLIC KEY BLOCK-- D.3.50. Michael L. Hostbaek pub 1024D/0F55F6BE 2001-08-07 Michael L. Hostbaek Key fingerprint 4D62 9396 B19F 38D3 5C99 1663 7B0A 5212 0F55 F6BE uid Michael L. Hostbaek uid Michael L. Hostbaek uid Micahel L. Hostbaek uid Michael L. Hostbaek uid Michael L. Hostbaek sub 1024g/8BE4E30F 2001-08-07 D.3.51. Howard F. Hu D.3.52. Jordan K. Hubbard pub 1024R/8E542D5D 1996-04-04 Jordan K. Hubbard Key fingerprint 3C F2 27 7E 4A 6C 09 0A 4B C9 47 CD 4F 4D 0B 20 BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQCNAzFjX0IAAAEEAMLnm9/kDNPp43ZUZGjYkm2QLtoC1Wxr8JulZXqk7qmhYcQ jvXfyoriJ6/7ZlnLe2oG5j9tZOnRLPvMaz0g9CpW6Dz3nkXrNPkmOFV9B8D94Mk tyFeRJFqnkCuqBj6DH8FtBwEeeTecSh2tJ0bZZTXnAMhxeOdvUVW/uOVC1dAAUR tCNKb3JkYW4gSy4gSHViYmFyZCA8amtoQEZyZWVCU0Qub3JnPog/AwUQND7kZgis sbaj1yqUEQIhvACeJ58983s/0jjThuj6WeTP6hLZNHgAn0o2KINvhwOc8uQk5m2 aTiVgVQxiQEVAwUQNcJNdAyPjrKngh89AQHA7wgAg3QnT0BcF/zp0VRMUZwAysRC o4Xkgv4oaisCPO5jERGEp8NlXuMD6wJCrGRZ9xVwTbSRXJVirNkiSKj1rnNc/pPA DbjsmQ3nhLUYwNgc2VEhiVpeU2iOL7ircc/YN8epdFPbzn2timb98b/qlaSiz mg8pxnY4USn1b4CnzyirD7mvHhV61k0mrUSmaKzgg2Ppeo2qPzn4w44hgT5/jjm iEMzoH8zFrN3pwcUYYhH5rNWNnqUIMwuPOEHn4WpsMti4yOqQxNHnP0Mv6mxS8 UKRhtDXU0Ra0SaIhaNRw0k0YLEbO/lteTRc7cAPBsQUTa6xbVxIzsBAWLC7IkA lQMFEDF8ldoff6kIA1j8vQEBDH4D/0Zm0oNlpXrAE1EOFrmp43HURHbij8n0Gra1 w9sbfo4PV/HU8ojTdWLy6r0prH7NODCkgtIQNpqLuqM8PF2pPtUJj9HwTmSqfa T/LMztfPA6PQcsyT7xxdXl04xTDl1avGSJfYsI8XCAy85cTsPQwuyzugE/iykJ O1Bnj/paiD8DBRA0FhC0XatM0mFMec0RAgaSAJ4kHkYXQO/74W5m/7ZvQa3CPR8E/QCgpHafK/S6PWQsSOChmVjwrZDVP8qJAJUDBRAxeQ9a1pnjYGyp3kBAV7XA/oC SL/Cc2USpQ2ckwkGpyvIkYBPszIcabSNJAzm2hsU9Qa6WOPxD8olDddBuJNiW/gz nPC4NsQ0N8Zr4IqRX/TTDVf04WhLmd8AN9SOrVv2q0BKgU6fLuk979tJutrewH6P R2qBOjAaR0FJNk4pcYAHeTe7KaKy96YFvWKIyDvc4hGBBARAgAGBQI1f/BdAAoJ ELwCvAMsr1lwqUEAnjOz1VWwJeI2QZMNEHO8RLURWHSYAKDqGS3NzCeiKM3RRzc FubwdsfYLIhGBBARAgAGBQI5ZAxAAAoJEMN1Z4b84RmYUt4AoOtidEj2yIZubvvT kBmoQ1ZscyAJ9dhz4GLNev7zNNfdAKi8JqoqfMlokAlQMFEDF75Qb1FVv7jlQt XQEBdn0D/0X2Auka6RU2R46NqrFB0kZNL5rGH8BuTRzcqEATLGkCXknJDeJ9iTo EeEVOL0utmhcYDyyT95Th5FNlXO8YQLgb7GxqUT/HOS7zznlBMsmQK6dSlB6 7XDNoitRQTpmOHTmKYVsljJA4GBMWm6pawKuxSmX7aavwgYjEbmsiEYEEBECAAYF AjmtSQAACgkQLKRaTxAVKjiTQCg9FfHlNeMts2GcXWplPQya7GEQtMAn0nrzupn fRNx6Gi0KmWSlUQkMF ZyVN - -END PGP PUBLIC KEY BLOCK-- D.3.53. Trevor Johnson BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDjagARBAC1AfvgGQEVdLwS0dirwaNpDDWWiaSWBNRNo4T4KKG2vyhhnUi f2PcjPx8rYLvbokJFltoTWos3lS8hD8PZGBDlImOPzffdm/GYEmr1mE8fQvzjdKD iOTqQi5IYYhLZIMmUpBTK7XN2zrM8VrkgCpb5TYtBrQUPheWs/SZ31EvLwCglUPA T54Joolfvk0Y8I6dSGYctpUD/3teZiYwem99CE3b1tsqavQ1MUfjwSPZQq8wjVe8 GZUtwaeExugAxNjXIJeXiaCij7S6JSTS0ytyxZ5/O1QFmBhuD/7zjNFD8yB8nu8x slma7mVhMuhqkwU06hTkp6MNNJ7kRItoVETtLqR5mW0UUSZyePQFIH9U7TKPG3W vYMIA/9btsMQD/7QA9p/m5OP4sfdVdNCZ32tJ534bMjDYyf/P8k7QzvDWU8f7lbk 3vX5pSmHplws0PwSZITmRarMdEH9ucP24m06MQ7YmDYyLlUCestT2gAxnB5/X1h fJnmdCLi/Vt19WrVM79ebddbCqCaoz0xv1qOQmPue/vKXIH87QfVHJldm9yIEpv aG5zb24gPHRyZXZvckBqcGoubmV0PohWBBMRAgAWBQI4/moABAsKBAMDFQMCAxYC AQIXgAAKCRDwN1oLOj6hN4YuAJwOTOURcLpgAx4HT43jNxDYCsT7DACdFdGCwsi4 w5ZiCeoizmoBMFvYTa65AQ0EOP5qIhAEAMAerdyvcs7DOxpsli24gkKJxCwHSq9U 23k283XpZHOp/0eS6WEJMHMyQ7BRrx3X6mkSgBEnHdO6MetBQjOHdjSb8ycotrJa H9eMkZ/Iky6dbiWpPLI4ytS4Q8Z4oEGjUTm7pJiE/pgmaCX/kv0WMs/35En42sY VoVU9bDIX3AAMFA/435RbM6ywO/kL8D3lhwINGEIqmxWpJDlXPPJf2pLiWZZVK MLGkHOTe2kUddE6WcoRZdGblOKxLACrlKpJa91aw1ftQT6rt0k8GDCGLT/33FWx 2IRSf5sHmz8IOm6L8TcZU31hdWqpDLmiIjIjUCx8eAUjZcVRoj6BYnWc1Z64hG BBgRAgAGBQI4/moiAAoJEPA3Wgs6PqE3PKYAnikfYo//UA7/jrDuTXzqPmi/Un5f AKCFsfcXDbLGfWaAqe2YzeDR2Z55/A N4HT - -END PGP PUBLIC KEY BLOCK-- D.3.54. Poul-Henning Kamp BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see 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 GwRf - -END PGP PUBLIC KEY BLOCK-- D.3.55. Josef Karthauser BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see 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 p5J1gj4xWykgTuA U6zf - -END PGP PUBLIC KEY BLOCK-- D.3.56. Vinod Kashyap D.3.57. Kris Kennaway BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see 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 nTL1 - -END PGP PUBLIC KEY BLOCK-- D.3.58. Giorgos Keramidas BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.2.1 FreeBSD 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 AAq1 - -END PGP PUBLIC KEY BLOCK-- D.3.60. Andreas Klemm BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDpXnNsRBACosqQnFwHgBclH2TXLWG/uAAdcZ3d4vlC9tKIPif/WovfOTuA CM5KMb1Of2uAQm5S6KpSCDSudZIZw2az3ka5ESQt82kgd/1Ue8FJDdPkGY1RZrEp Zq7VDPfENAM8NuYCXIdVYpd860tIfongUbpgHq9dA/bgoDDHXlaBQzUMNwCgurYO XH1FSx7vApyBFqaE9ZKglRED/jbd0UeQ8E2Y8jvoHgn9kDGjqgTxNerLK2g7gRgx o0U2do7kjKKWoUfij/x3RRpGUDzkB9xhibyoPQKuVim4NVNdoUoqjuSDnoDTXtL B8bYGXAAROPXu1AT1r/P5k3kSHDExu1qfLEk9Sch7CKrVdNaZHsrknbmFPPmhdsf zz17A/oCfA5tXthQ4YOlmyjJXiMmiD/aX1fQovjayQDD/diNYQ/z3JUuaA01Nhw4 02LDFCk0xO2T8wWIC8Ox9J7twKKBT9Ep1MpZw/mY7XlpTFP82ls15pNIshogjlX8 23aBCxrRda6SqTAnqsneyxGujSkS4sNubUWaQf0UUfcxZpA77QlQW5kcmVhcyBL bGVtbSA8YW5kcmVhc0BrbGVtbS5ndG4uY29tPohXBBMRAgAXBQI6V5zbBQsHCgME AxUDAgMWAgECF4AACgkQd3olGxvbLqQrwCbBNMKCTamyfzbL69hya4MTApyOgA oIBKu//LaM9gCrfYUSFRaVY5PJetCNBbmRyZWFzIEtsZW1tIDxhbmRyZWFzQEZy ZWVCU0Qub3JnPohXBBMRAgAXBQI6V51BBQsHCgMEAxUDAgMWAgECF4AACgkQd3o lGxvbLpvuACeJLJc2HBP42h8lVDWTZwV3qstGXUAn3yIgz/FK7//Ax2ceO115u9 T76ptCVBbmRyZWFzIEtsZW1tIDxhbmRyZWFzQGFwc2ZpbHRlci5vcmciFcEExEC ABcFAjpXnVgFCwcKAwQDFQMCAxYCAQIXgAAKCRB3ej6UbG9suq2VAJ9TDD3a6fsP E79VBmop25fpGRsmAACgobOH43x4KJJxNSFMsOY2QCvrS0K0FuZHJlYXMgS2xl bW0gPGFuZHJlYXMua2xlbW1AZXUuZGlkYXRhLmNvbT6IVwQTEQIAFwUCOledhAUL BwoDBAMVAwIDFgIBAheAAAoJEHd6PpRsb2y6vC8AoIPWrHdjYEXzo838pxFoJx v0N5AJ9kyfJz4y0UjGdwMrfLCRL1h/OwLkCDQQ6V50XEAgA7nyqQb43D5Nl4bd pwtJqTn9/MnmG1Cw0h3JAMijW/WTGGrpgpuFhtvfjs0nJ3FZMlDjdRfJ2LKa4 xR4J/2gIkYzvuIJaiojvyaKnO/VZC10zHkQmEfAZTSONucKPOPPrOX87fJ/SLC RRPJdjR/kcub/yR7lZ9jI5fKmv06Vgdx5agvL92eY14FdEhg4BiN99CKyOIdTPF xgj2bCultqldQ0FhB5IwIYwqV6BJsRewrNJNoXcYLeHkOyf3ULxYwYmu/wh24jW ibfotTy/hvRO6CBG1rSvqxj161T8vtFWEDdlMW9Efog3O7zjI8lXWF2pOgGWt3 7g99GwADBQf7BlcqJ8R4BrI/Z8cJbvWWBftMC/dx8F63ISjq65PKc5izq4fSlJWb AEDyTv59Gv7qDSQECnjivwFBu//BY993kXLIE2KB0AY6jgMz7F4JsBhYofGMSE uCFgvh9c3EO326RtkgsQKM4pOC6LFZRAedjo6LZzm9k2JZK2Xv8fsLZIW9dSEtqG ch32Uu9AfThrFnZ6cApeRnxWZe3btBXbgxK2w3jT16jCtIbeJGWdF8NN7IZ44v PzdDAVBwAR2iUz9vn/d0fGhVYLHBFekfB0jyl9gfgPLkXyMorDOhJ1nhdAI9Jm6g 7FThPfNDzfgEPEgSyVuMqEoti01u0dw7AIhGBBgRAgAGBQI6V50XAAoJEHd6PpRs b2y6l8wAmQHMTVyf5sddE7j9RCEC9L3VluJAJsFafICjeu6dBMwi4QQaB0zqja4 7A E/l3 - -END PGP PUBLIC KEY BLOCK-- D.3.61. Sergei Kolobov D.3.62. Maxim Konovalov D.3.63. Joseph Koshy BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDwi3FcRBADkiWSSJSOX38CIPgbUnnDQ8S79eZ0zQYnYn5aeRMi7w0B4SnQP 1DcFZ/EHNtQWJTCaQBWQZZWvL1ZjdK284YrpSKs7gfoV5BufcFqKatewWZUfsUad FEKTXLXlZa55151UtFy9erkA22VWHmqkauDFYl4DiOtaUWCX1Gg8xCvB3wCg0sbC/VtANEu2XbxUp5pGmReNn50EAM4vLWfZk3T2woHN0VBOwEk0BM216zfJQGLFUFqT nLKezO/QqoCCcVpH7rwV0V6NI1w6YOSx14CUs83iyyO0KlRypoptWKBoAcjs/y 3Iy05K147YfWUhgkKcyw/Qwx8wCDaetGqZCX4nY0EByezFe504uDkcxk5BrqBX8 E6kzA/9vSGJ4aejKRw9z7Ku5cLV9ygXCksu325uY2tJ6b48cT8eFMOpgUHyNV m5ypOL31KYRPkOzKiiDoTPODh4Zg8YZLsgWdTrC0ZQW2nWPNd3ZvtLAmiwVjIV x4XqtFXh4nhI2eM/PXhdN37R48OKB0DmrvdH819/29upNvO/bQrSm9zZXBoIEtv c2h5IChGcmVlQlNEKSA8amtvc2h5QGZyZWVic2Qub3JnPohXBBMRAgAXBQI8IuKv BQsHCgMEAxUDAgMWAgECF4AACgkQq7hu09k3mLaWwQCbBEeFWt8z4HlnAys0FYB8/U63eqkAnjKz2Lxj14N8QYtbtFThZRB5fq5cuQENBDwi3GIQBAC79Y5tcPi18bZd REXZmDOnLc0gHD9y6PHgR92BUCWQuafcxfQqqY2ESF/JQ0dFfBEkCAmYU2YkPZA5 A7skmv9zHun/bXAP02hrvMU1Gt0ZHIzDV0EaOuxY8eSKg4JuxZzpgzWCIxI/6uh ZhOuEF/uql7IDKMQcOfsvVrF8cZfNwAECwP/UvxNG/RUOlOHdRo3hY3H5l7zmaCi AwUU6ZLxDnfwERX7wL5rasafi1r7/9VvGADfelpxKR0kZM1eKYPtri1zS6Zm5a CCQVyyoTcbx0mWForq6FxLDf7l/O0TuEG7VOH4RgLaT2N33yoScEvxdB/Qo4w KnT39F7lYjbzBvGIRgQYEQIABgUCPCLcYgAKCRCruG7T2TeYth30AKCzp2KXBqsa N6wOyMtHQ4DKNMasgCglJCipoxpnnvCsGiZJv9AgNQFDGM a9D2 - -END PGP PUBLIC KEY BLOCK-- D.3.64. Roman Kurakin D.3.65. Hideyuki KURASHINA BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.2.1 FreeBSD mQGiBDybt48RBAC/KCE5CLVZsYvpmgrbum7JHgIgnX39EPMQmL9Y3LmYy6IwhOF iIjIqW6cDeCcxHoJBwbSUerC5ueriwZCh46gSnLVjnmBLlGFXyxYbSfFGetMVVSR 6OpiQuITp4ZhVw/UoCGloNsIFKg6l4JMwqZmsrZPdlzUU79RV9Zb4XhFwCgsRIo 1mf9I3rNZ8f1Jv69nUR/lJkEAJB6fY1rtUNUwqJXOnFGD0KnC8isQNyOeQ7Y1il HQ9mGVKuUC3Zh0FzvdsU7Ks2ss9ynxfbFXnyyAOqXwTzU9pMuW5oLOUmjqwEfAhV 4S0xcnPcfGGJ671NNeqa8X4LQv6ECWai6O4CbA4aluRqhHNxT9dgEai8RN434LQE tGxcA/4mIlvVoM2c2DRjD4/Oji80ZMpOgE1RkuQmXoZ/DwLD3EHbIBX4cNffOd FzxYrKCrXD50MehIw/IhFfHN/GdEN7NT87M3j/ydSYFluoiLv8FXO00mr8cDi3wF qLGbniEhVcW6wpUz9zVFmdLAp3HQi1uRAHqYmdSs6gqjl/pLQqSGlkZXl1a2kg S1VSQVNISU5BIDxydXNoYW5pQGJsLm1tdHIub3IuanAiF8EExECAB8CGwMECwcD AgMVAgMDFgIBAh4BAheAAhkBBQIL/K/AAoJEPL6IIhDmtxXgj8An1YuXcp0iurB ZYHiaYMzAblYhALAJsEAKTyeqO0plIvHBV49L5CErZo87QoSGlkZXl1a2kgS1VS QVNISU5BIDxydXNoYW5pQEZyZWVCU0Qub3JnPohcBBMRAgAcBQIOM7uAhsDBAsH AwIDFQIDAxYCAQIeAQIXgAAKCRDyiCIQ5rcVwyNAJ9Y5N6lIMXVy4sYCdgQvqDR xkUN0gCgrsbQwfTOBcy8Mw/UmGOE4/fwrNa0K0hpZGV5dWtpIEtVUkFTSElOQSA8 cnVzaGFuaUBqcC5GcmVlQlNELm9yZz6IXAQTEQIAHAUCPjjO/wIbAwQLBwMCAxUC AwMWAgECHgECF4AACgkQ8vogiEOa3FerLwCfRPWW7lC/pAVdD2Jo8rcWTKQ1xEA oIQ/on62k7YBObuOK472a/cW2MuQENBDybt6UQBAD/ZGmvwhzt9YWhF9q7mLOT iEMzL2AzBryLzzUphejgDlJN/TIoDtaJfMyNkO16FbUq/WLQbKYFKfDunqxeVSi PsneeYw9nAdlcXVgHRjoL3vj5O7PIg4qqps2mnLKEOXLAH2PNTYY68T0NQicdht YIraowzLoKRdINuDQrCpEwADBgP9H4CwbNJtQAHwS9ATmfL6F2Bg9LWe1godSWkM NnBxKvMqrajJWfxV09f9gzn0qmMZT9u2DwcADzRQLC3jkzgOD1f8UiAuCuDEE1a vg1iCuyiI6mMMWCkOCj/69wIu1ilmWqkn8SeoEwNhwqHa20ue7vBhXreQanJim sq38ZdCIRgQYEQIABgUCPJu3pQAKCRDyiCIQ5rcVzT/AKCgYOyEMpIxXYVI5gYM CwQ3hkJ28gCePnTu3Ke6lPoQsMAo3TzKkUO9Wj0 cXJQ - -END PGP PUBLIC KEY BLOCK-- D.3.66. Clement Laforet D.3.67. Max Laier D.3.68. Alexander Langer BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.2.1 FreeBSD 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 4rxH - -END PGP PUBLIC KEY BLOCK-- D.3.69. Erwin Lansing BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.4.1 FreeBSD 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 egnhIj7EVPxlrc6xyHIB781osg DGMU - -END PGP PUBLIC KEY BLOCK-- BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.2.1 FreeBSD mQCNAzbdCccAAAEEANydbxi0PCKpAl7A5I07015Sm4R8YzqQF2LXvneC4FplHvy Qq3ZmibDQEDHEOArFDnox3iY04Svl3KejPkmOAyZWzqZYINLGOaIW/hwkjBU2ZA cLMUaHDdXgG9U3P5nanksJ2dBpVgehZ7p7PKnqsyMW17KqM8snMx0NetS5RAAUR tCZZZW4tTWluZyBMZWUgPGxlZXltQGNpdmlsLm5ja3UuZWR1LnR3PokAlQMFEDbd CcfJzMdDXrUuUQEBG64D/iZgQNzZaNM1AigEwVYIzqvyWcOJsk19VGrQI9fJK92s fwJxJXKVGvU8R8px2HsNqiu/jYovud52NjqVheFGrRdQNS08/HslbEUZ5UHID4 Jg3WqMrHJScaau25N4o8FXIdqBz89KfpCFOwdMx699Qa6P8D7GLsxY5Mc7ikZjec tCZZZW4tTWluZyBMZWUgPGxlZXltQGNhZS5jZS5udHUuZWR1LnR3PokAlQMFEDpT X7LJzMdDXrUuUQEBx98EANyLMVVMIQxDOE6xUNeXwUwZAETEUcAVKztz/jxLI07 BoNbCquSoZzja2R54IUXwSDcQ71aV5KG/KVI4HT3XBroKYRvJzzfePNZtOSokeq 5ybdtvrMAO7oEIkJqOpN/H6lIXhApLtXRi8yhIaoIVQ4k8WG2yQiIFu69qWFM6DD tB5ZZW4tTWluZyBMZWUgPGxlZXltQGxlZXltLmNvbT6JAJUDBRA6euJ8yczHQ161 LlEBAa2FBAClvm2syJMdCfVlUJpdr2f9SH8qwi9uxf88lVfJb346IArDBCLHHdp kDvyH3NPVCUPeYndcfl/P9fLLunqosTuVksdNKFFhx6hmyI3tmGXavgc2wq/z oJ6vnHYW2sOMiQYD46cUsepf9aroH8BvNgoe2VfldDqwW43nVXNwVLQgWWVuLU1p bmcgTGVlIDxsZWV5bUBGcmVlQlNELm9yZz6JAJUDBRA9WnpyczHQ161LlEBAW5 A/9NaKX20dixhO5C1/ShUXUVt9IIIX46Arj1HGeWR5xs5Ibt1QXGHF92v56Sm4 yakclijxU0nSmFxeQQNiTndACMrpkCUzG3SzTzYzu9N2eJ4FP/KYb2os2QJ2u8 IztGZ3GmEdfQM6brT6MhAH5DK3RurYgwQcSFR5A6msng B37X - -END PGP PUBLIC KEY BLOCK-- D.3.71. Alexander Leidinger D.3.72. Ying-Chieh Liao BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see 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 gJ4OtCdZaW5nLUNoaWVoIExpYW8gPGlqbGlhb0B0dy5GcmVlQlNELm9yZz6ISwQQ EQIACwUCOuXFUQQLAwECAAoJEKzGAWURwCOCLMgAoJGhtnPbzYhZWHm5S9Dkgmvj QsgvAKDq9LzJ14Sojrtpxka5F5iViLoqEYhGBBARAgAGBQI7J4TCAAoJEGvZyNJ3 mDKxzzAAoJFFuWMLf6HHO0TiPdafPjuruVpuAKCC0eE7oh9t4xMlTb2SYWMpZS9p hokBFQMFEDsyHL7DfcPfQ7mVNQEB9KQH/iLaexNwzgB9efMXg6RHTtaWzxBdeEc 7CD9oxjG/1tsfd8S10UScnrJHTDNn3eh5KdQDjPmKkedPngAIjKHvb/Jux7jcxO OLmRnVeFD1kMyNlv5ggtJcHJ4QXe4rBko68qyU5ON9pvA/h7Xe/ulGw71dOCx0T6 jBlpmLF8AZlHW7z8OSDYa7fJFI65cDbtd6c9hMO4WNj8PK7p6MPgilIaWsnJq1 lS5fkaQKdqaIaVEE4WqTt8v8xC805X58HZXRFma5D39yGFNd3LRCpu48mM5LDLT Q7tfs9jn1Ru7iUHyjI1Jel0hvRGblL8iW/zvwmS/XTXPsh3H0U/WfWG0KVlpbmct Q2hpZWggTGlhbyA8aWpsaWFvQENDQ0EuTkNUVS5lZHUudHciFcEExECABcFAjrt DlEFCwcKAwQDFQMCAxYCAQIXgAAKCRCsxgFlEcAjgknjAJ47s3GGw/KsEHKDjjRi D/kcOgiNZACgxKgabQRGmvwKMl8fTtNxiTbAyDOIRgQQEQIABgUCOyeEwgAKCRBr 2cjSd5gysSzKAJwOKSwO0ZIm9II4sjcxWPeNUHAl5ACfXShCxB2mVs6kRDsD1o7f aWeuChCJARUDBRA7MhzCw33D30O5lTUBAaMTB/0S70cAqqqAqrJBZosRZhmXWixk Ah1gMH8SkNVygA3BE3k4A9LC3LNyvlnbCGPFH8PYvN8ymcn3sSPu9nyHVZ31VDU0 mp7JvKeW49tWxBeoFWpNJeNxTv2aNpFCLahpiwcDt/HW8/1NC5dJirDrIrVTrhWG 85UUYeGmMX/5qC7bFhY5FC6HxnFTCWlxpZQDtWw4Dbf8r4dMrw/2I9Uubj6brEx LeOG2gB5UAuSS5Brp/9eiAlJs6jRgLU883IzpIhYanz37nJcLV5MVHhbGiR1Yyhr IQlO4pQ2f3VhaEpkUu63x6lxfyVVJsZZvZU6EvtJSFACWR1nK2SbszGt/FRuQQN BDpaoxcQEAD5GKBWgZhekOQldwFbIeG7GHszUUfDtjgo3nGydx6C6zkPNGlLYw SlPXfAIWSIC1FeUpmamfB3TT/OhxZYgTphluNgN7hBdq7YXHFHYUMoiV0MpvpXo Vis4eFwL2/hMTdXjqkbM84X6CqdFGHjhKlP0YOEqHm274nQ0YIxswdd1ckOEri xPDojhNnl06SE2H22slDhf99pj3yHx5sHIdOHX79sFzxIMRJitDYMPj6NYK/aEo Jguuqa6zZQiAFMBoHzWq6MSHvoPKs4fdIRPyvMX86RA6dfSd7ZCLQI2wSbLaF6d fJgJCo1Le3kXXn11JJPmxiO/CqnS3wy9kJXtwh/CBdyorrWqULzBej5UxE5T7bx brlLOCDaAadWoxTpj0BV89AHxstDqZSt90xkhkn4DIO9ZekX1KHTUPj1WV/cdlJP PT2N286Z4VeSWc39uK50T8X8dryDxUcwYc58yWb/Ffm7/ZFexwGq01uejaClcjrU GvC/RgBYKX0iP1YTknbzSC0neSRBzZrM2w4DUUdD3yIsxx8Wy2O9vPJI8BD8KVb GI2Ou1WMuF040zT9fBdXQ6MdGGzeMyEstSr/POGxKUAYEY18hKcKctaGxAMZyAcp esqVDNmWn6vQClCbAkbTCD1mpF1Bn5x8vYlLIhkmuquiXsNV6z3WFwACAhAA4vXK JfvHChbHRCc0z99UHVCluHwRUDopIFNfuBmiAOA7Ozz19dmYBKDgudZpDNZtbE4w 0S2eW3xVTkPUWdrhr0jDcibkhpdFICp3x2zOhL16Yug1xFSqWDSOo3QX4eBVxMH 0sCHiZMlcx/QGl1bwZ9PpO10PttjloI2SqWGUNK9FGDjVfJoX8YMy5DG4rLcaS8 m2IOb9BiYoRs2Dot9KZjWtL7CDrFmLH4q8P6OHiE0RJy7YoTvsHr0JU6suasHK NPfzrXlWZ8C5sKX0XuZTJNkfKojMVucM6olzpaE04NAtKjDffHr7Rr0md/6Zy7ru gJIOwClDyfMmVud0J9Sx/pLKlldakJl25Xfctcz/DXZJNGpvfeMm5pzR/zulQc1 zDopdrSq261hJKE/5N6tPflXz9UreUdRm1mZV7SEgCKODMxSxexRfw51O0fk3vZ3 rfSjSgeIz9Fs3ypJHCd2q5C4LDa5XgX8vNSYxLKIevu62BnQXJVTKCyuvzUGOrvs nhKzR4GjrMm2575epxojQPVXcytFqzn4CS3QTWHvmJ1EzFwhdpR2kXAmaarpye JbUjuCDHDhJPegXY0oRa51lLhvcij1U6smqutADIQSck5JmyQKuCx7Y8iLk/HSO 3uni8G44oFCf9KJG69f5Va0RHgjBUOZgKMAlKA2IPwMFGDpaoxesxgFlEcAjghEC 3KEAoKjSxWG0hQa1aK0vkQIvDAg7EAKDahnKlbMifGmPSpYjK0zcUeojzyw NLH6 - -END PGP PUBLIC KEY BLOCK-- D.3.73. Clive Lin BEGIN PGP PUBLIC KEY BLOCK-- Version: PGP Key Server 0.9.6 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 tF/cItKqIqZ9RhFcgIisxgUtQ g51D - -END PGP PUBLIC KEY BLOCK-- D.3.74. Tilman Linneweh D.3.75. Scott Long pub 1024D/017C5EBF 2003-01-18 Scott A. Long This is my official FreeBSD key Key fingerprint 34EA BD06 44F7 F8C3 22BC B52C 1D3A F6D1 017C 5EBF sub 1024g/F61C8F91 2003-01-18 BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.2.1 FreeBSD mQGiBD4p5ccRBACtbiJm4bc9dO8oaRhVGqWmNhYfi2GnX4AM2hL7bcIU/7jWVn uWGe/PFHDcuOpEov/XRw1gmgoNh2DopTxf363DVMevmGW3R1842YMmLvCYZ7C0Rd 0GdbHW1xXeRSygs6peLcPGQ/7ISK0BHMudFim5FrpD0tq3qrqRmuGgls2wCgyF37 uZoP3xiP0wANhoWJtyBWQEEAIeYSHvIPKFIo9FG/wckx9FchLXPKwoETBPof7 Wft9zXiYyowuGj6/ydb6v229nI3lJwVPR8X6Ptjf6rO1vjf7uUED9dNBLr10vdW6 jYClBT8lqJAq3DzEpDk2kOlhYwtrykyld9Ys/7vgliuBB0XRUxGVNieqDck7PZWL ewz5A/947m/ZrlZbn6jsshGk30/pEXZUhcDnUBwW26GuFk0TGlXBha3N0NFwqz3 a7qnJcvSTKfeZJY5NCwqzCo/rLpmaNd9JCUrgwSd1MI9Txrbj3lDRy5dj4FZBQ2N BVgni7SRKaiPw1KeEprSOR8yiM9ZjbV1g5zPeZ2bZhSMCP7mdbREU2NvdHQgQS4g TG9uZyAoVGhpcyBpcyBteSBvZmZpY2lhbCBGcmVlQlNEIGtleSkgPHNjb3R0bEBm cmVlYnNkLm9yZz6IWQQTEQIAGQUCPinlxwQLBwMCAxUCAwMWAgECHgECF4AACgkQ HTr20QF8Xr9fvgCfUMyqlN9qQtwMFAKWViSllk0xYgAnApLMv95d6Ecrj7U9Et liAwNQXWiEYEEhECAAYFAj4p8nkACgkQtNcQog5FH332EQCghR98TNpvYGdrsg6Q S3BngO5n3VgAn1zo89iPy8VMP/kXq2jlzs/74i2iEYEExECAAYFAj4p9igACgkQ 2MoxcVugUsOwsQCfY34hwJIc8MapwIy8fWmCeLs4T0IAn0aVpewWF99H6SapelNP hvDzTYLIiQCVAwUQPioA7mVgqaw0fnVAQEUHgP9EJXxzQlkaN8VsfRJo/UFmC4z wGkwu2yatUjMSZR58VpS9rF6CH1rzmNFtZZmIh6ItQ/mPaUDW2yObWBRL2r9vkVx eDPcpcZAebM3ibjsOg05cftcphv41rLak0C2Nec3MXnxT15O7fcO6aOd4oJ2Yi oL7YJX6RHrqNCTQn6/65AQ0EPinlyxAEAIGtuZXdf7K51Gb9jijgdV1NMPKwujoq K9f1PZocpDve0vwXN6AvzJ1L/LTrZPvBZ0UCAJR/zVtz4H2bnSqalbd8j8bmxfYx 0SA3QNAKJhgBGNlnK4HvAGJCs8oXYp6Ph9WWlTcPzkfscPFc42VcUEdfL/5kyLr OvGAUW6D7iCnAAMFA/9CWXarz2QMrkduiasc8bhSmv2lVOfUVcIdz9imc72Z5GUk FBiQJ2kuqJrxMUqAgoccnJ9R0QVZwCaQyRNakEQEcENBKq9Haa5LLo7nD3CAiqIi URqloJORSzXoQCrw8OelbBp9RaEqVdCecbNqAbA8Ru4NIwcyZCgvnX/bUTKq54hG BBgRAgAGBQIKeXLAAoJEB069tEBfF6/XBkAoJtQ4ECj3ntS2xlODgB8NcKIsdb AJ9Lwk2EEIZhvzhwvhpwIKAhWhHcmQ C3Jv - -END PGP PUBLIC KEY BLOCK-- D.3.76. Pav Lucistnik D.3.77. Bruce A. Mah D.3.78. Mike Makonnen D.3.79. David Malone BEGIN PGP PUBLIC KEY BLOCK-- Version: 2.6.3ia mQBNAi22tqgAAAECAPARUB5VpJvYQyHAzL0WITkJmKG1lpwFMPz4jenjJRplPr33 OvKxQcXh1bAWNVFiJVDJsWwnfif94wQdVUA3iZEABRG0JERhdmlkIE1hbG9uZSA8 ZHdtYWxvbmVAbWF0aHMudGNkLmllPokAlQIFEDCwQ4yqxsuiiPuKQEBricEAKAE f18kbKpFKU/DPRVhVYlLHCkzXLzZCiTxBUGjMaXZswKwrjVLF2l8mrNQhqC9L953 AGyUYNfPLtqw7b088v3ATCIrZizWyE27IrjZWSS57GZiDtnkm6moarG79yANBql LBc0sK077cHEC/gDwXNBLg0NNpHkaVXPxixt/ETiQBVAgUQMKppFKk8pIl/up AQF0QQHME6vPoS2FgSN1q9R1hwmwEPAaYdyfhv2lj1/6KYDEaO9Lhw2u57nW7z CDpir9gNN0X9U3XrIxlJ7wWxa1k2PokAVQIFEC7vu/zjBB1VQDeJkQEBWFsCANX qJO8J6qeJW8gcrmxMBA0l2MjEHcu8XNky6YT3yS6So72yL1lZbG78Sew03fXnWNS GyhRrPz7sURNLtJDNDo wpn4 - -END PGP PUBLIC KEY BLOCK-- D.3.80. Makoto Matsushita D.3.81. Kenneth D. Merry pub 1024D/54C745B5 2000-05-15 Kenneth D. Merry Key fingerprint D25E EBC5 F17A 9E52 84B4 BF14 9248 F0DA 54C7 45B5 uid Kenneth D. Merry sub 2048g/89D0F797 2000-05-15 pub 1024R/2FA0A505 1995-10-30 Kenneth D. Merry Key fingerprint FD FA 85 85 95 C4 8E E8 98 1A CA 18 56 F0 00 1F BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQCNAzCUT6IAAAEEAL6dJExgqBvPOEKuRtkeb1bbcUkMVTtiT5GPXcYlYeYuDH Veh5BKib0sULahN2lGdgIWEwcnyGokELvc9ZwWyjgcopWRCoYVkCzz4YIqtiHy T8VUw6bIidslytDjG6wAp2zDtAR75uOM0bLDMsoXQ1s6sP0HMRv1TA4voKUFAAUR tCRLZW5uZXRoIEQuIE1lcnJ5IDxrZW5AcGx1dG90ZWNoLmNvbT6JAJUDBRA5NLf9 G/VMDigpQUBAf4sBAC21xtMkZsdR/FoHzg8fppFN623p/ALXJVBEA52W/FPfqVd 4tAJeViU6UgtFBxvu1J7ctXM9O4rxd040ZTtWVDZSRhssZN3hBGx31El66niUIU IfJBco0nkfUreuKw3MX6vrZkuNc/WGFaQo96JCsYTt7OSzZQu/vpa3gLH5kThJkB ogQ5H426EQQAxAazYSEAmOES6KLRJW0otN/whsuTPIbksydLGrRUpvGivG9Ohe6 khLnXE0ApknWxb2aqvP5oRHfB2nx0ZPpm1hdrjMgD/574GT4gskyTdRKd9hdCUrc lcS0WohvsI8si7kKJawa5F0zy08pNOIFstL1YRdQBzfFYHl30aGAXFcAoOnEpqZ6 ffE4E19IexMDmb1KAs/A/0ctHXLB/5vlUjOpGB7bI3yHHgTT6r1C56WkXQ49SV9 Ad2sN4nrvNKdNBJcN1oAvPh49WBWcSAwTTpub87rl5B8vQEoUHOBWQMUrGCU3/yD KopmHBvtROsP/3KGiCfrteWCdy6aonQLv4TXOeqYMstbU0MjNBVgmAItoxqz1237 CgQAlO/5jMCLdxricI1f7Gd0zwbxHe1JUV7kjLqMx1JZ75LlxuIiQbJgMpWVNXu j0O8df5mbhh1G4K9O/pCg19r5ghc8Ms0YOEkYRlKp0be8uzrCu7qItGfLKMsP t1eU2RJ5YPkD0bOjcVxlFQmXkQ791jncpOdrz2O1qgMLpr0Hktlbm5ldGggRC4g TWVycnkgPGtlbkBrZG0ub3JnPohWBBMRAgAWBQI5H426BAsKBAMDFQMCAxYCAQIX gAAKCRCSSPDaVMdFtRS5AJ49YIU1IAJl2cs1g5gDgXPoY/RdsACffJZMBGaXpcfm ZpRRIAtzqVv5Yi0Iktlbm5ldGggRC4gTWVycnkgPGtlbkBGcmVlQlNELm9yZz6I VwQTEQIAFwUCPEi4AULBwoDBAMVAwIDFgIBAheAAAoJEJJI8NpUx0W1RBgAn01T zuWhCWOShHSfKMsXcD1YrwPAJ4jr1tE0c1rZ1Lnz5YYZefpSnt2mLkCDQQ5H451 EAgA0k1aZvnxXw7WBcuEcT8VRBUfdYSrXVEi8R7xjKrw06U92cDSkqdA16rImto u0SSTFTnUXXHLdAuf2nsHplrzjEAgrMUWTtRTtaPKrtCwWE9Tk6lSxOO3HA3mGn I3Hl1KgTErIbqIAIhftJXpW63Xt1CZtJ5fOKCyNAL4obegkmsyNTPwYw1iEVG1N exIdkm4Rr8TWohJ/b0ql3rEv9y/nKRj23OYGDGKKGY03svz5Q/TB1CdQdlfXhtEN Uz674NimuiP0NyBp0UnhPnr9IuoEILuQhAYOnji3G1OVEQCBFONGT6CLugoPrgQ 0/KeCgIxB59TVkLm41yukcukzwAEDQf9EpA2dTA4k5rr451jRPbR1a19knOAz7Z9 J0tWWbySXGw1ZMLMf7BA7bnnIqDeuKLkxIwc4UGQqiXmmKbbdy0pYPQSC6dxIsFE 8vnL7RLZKhTLi6bFPj6Wspik0H1GnmvRwlaJFn8g7pG6Pi1B497dTmZU3TX8s11 XT09jftPjHLeziCBXu4OE/a0Gqc59r0A0bG94RbaW1rVmnX9KuvMpv9Wfx1AN2eB jrfpDPoMd8JU5Fn8KATvLlXPkSqQiQxOvYs6iXhoDrugPuo5bEF6sJBc/iC7ZmR kuy9zUh6K1uAYJoZferxiaglJHpyrkBBDLjj3Akw5pSmJesekGwsohGBBgRAgAG BQI5H451AAoJEJJI8NpUx0W1UJMAoIrd17bhiZx3eYtAgi1IwaTx8QeAJ4plmqJ sGDiYyJDVnPYxZcEN0h06w CRmh - -END PGP PUBLIC KEY BLOCK-- D.3.82. Dirk Meyer BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see 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 b0g6 - -END PGP PUBLIC KEY BLOCK-- D.3.83. Yoshiro Sanpei MIHIRA BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQCNAzKTzO0AAAEEAMVsAcUX89qHkwlI03RlAYBqQa00TFmgPwZs8sWvNUqTGtlK kOXcN9WNBvwzMYtEk/u5C1HukqISnFkDW7ZKYmUm1sQPioFHTwDC6R2HRDZBCV7 0fROlQpb479iBlr8wNAYDhOs0rl25FpE/uAXYThW9Ik/apgXN4rTGxk5HF1pAAUR tCJNSUhJUkEgWW9zaGlybyA8c2FucGVpQHNhbnBlaS5vcmciQCVAwUQNu4ch4rT Gxk5HF1pAQHYiQPIoxOpfpSPg8Gr7MUtoU3WZPY/5IuKoOwnFNFcSyuhrgn/OOB pbxkYjTO3MLh7Xa9sPigevHy/sNA4vVZdjk05sjRfAZxIWPrinRy/kzva0KOY69 u1QfXVx2mfq/EfMJMHP/Am0H71nOfAZsscKlb/jmuo1TxIpCUxwWmNn50I1lv c2hpcm8gTUlISVJBIDxzYW5wZWlARnJlZUJTRC5vcmciQCVAwUQOY7IlorTGxk5 HF1pAQGQBgPMXSjPfcnNhNfUmeLu8sM63DnrFIfRP9En/yhZT0wO51r2LmF4ZX YI04IJCywJiPjEpCFXNAhqDfypkTXWcbLTxX6gE5GNqii5iqzUuO4panpJO5OY 4H0/90cH6I/zl93EZN9wfZJghn66vgL4tDTgILdRPekIOB23JQIXsf60KE1JSElS QSBZb3NoaXJvIDxzYW5wZWlAeXkuY3Mua2Vpby5hYy5qcD6JAJUDBRAyk8ztitMb GTkcXWkBAf3zA/9sDB0n/UlsH9hzaw4r2k0FT9F7Ixtk2i/vqmHDUUcrlEqGaeko/3Qet2KzepX981mI7N2jdClqJgjlHapGoIQWZL3Jy7ocgCXDTYwGU2cFRF7kzkz h3FyYotm6bMi5F53GamkVbYZfogLo1MW7jmqIydJNdT1oseDbrwkjvXwdLQlTUlI SVJBIFlvc2hpcm8gPHNhbnBlaUBjYy5rZWlvLmFjLmpwPokAlQMFEDKUUFiK0xsZ ORxdaQEBjuIEALtVC6fjyDiRnZ3ReckdTO7k83VUTZiQH2cMFNd8giO2sZ3YnW 6veQI45VB3oHD9kzMjol3B1ld7iKcQzHC6qUEviWmTRRN2Y26DB704FNeUrqm1A LO8NPL6iNKFvUNsu3T0ZRY7oX9a9nMmcD7M2bm6jxrhckS8hY7x1D0xftCpNSUhJ UkEgWW9zaGlybyA8c2FucGVpQGVkdWMuY2Mua2Vpby5hYy5qcD6JAJUDBRAylFA5 itMbGTkcXWkBARgCA/0RBudh/8z/HWdX0GC0m3I0zIAOiGfmnJMPkzLryXuOQsbE dg28b193QnwTz6/ASF6PLJkivcd1vREXCz3CjHz6OGs5jUKcSf5c0ZaIE4T21Hq LPKHSj0cYxgiC0auwY46m/yfO8I0bdiM6Ki3fSBTlTmDlNhWxOQ4Ic2RamKNNrQl TUlISVJBIFlvc2hpcm8gPHNhbnBlaUBzdC5rZWlvLmFjLmpwPokAlQMFEDKUTtSK 0xsZORxdaQEBjWYD/i3EOU8lEoje9jTBHfQaps9BQgviFSaHk0G41emKszLSLnGQ BeMGZTyWda6sTSqeLKg56HEmmVGzC/nHlhwspC6bdYaBmOpnSmmzxVstcYq8oiXI mlfFEcL5DJEau1VTBP56Fk4GCffaibCTRGYrQcJz4yLfATjYsni5Y8zXqhWItBdz YW5wZWlAU0VBUExFLklDQy5ORS5KUIkAlQMFEDrvMx2K0xsZORxdaQEBTgAD/jO7 tb78V3muNwrfD8tAyWXw8IdC4QHCaGa6Uwf9nw0WDfuuz0I2La4iaC3FPtTs 1hz1QlmrztffL3tfsePDeN59nz89mWPW/CumLY2Eim2Hm6AWKVvtxtndunOSls xQLr0uhvNN5BOzEqv2Vl0MrwadPxUrHG0izqmGJ cmvD - -END PGP PUBLIC KEY BLOCK-- BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDw88s8RBACUCev7G9g7Bl2dxPQQpmO8jrud/oRe7Q9OyXfSl4f9hZBFYoB9 jS5HCz0nnALPpCAQVpjEjUQ3llDE7XcfNTeEJrqlhTcLzPW5k/icKbPgHnbZgp qC1Brxy1sjy1qGOJSoYCkludXkI1iyt3Fw7ingUFpvTpT9gFYqgLExNZbwCg/scY 9iub1moAJTdBsva/jGatazUD/2GymldDxM1gW3P8YqOkmn/lv8RDTjlCvfhexA X6hxIbasYDJAX0cNs6tJd1KJpznwT0MtRuaFq6xmVcGTCEyTXsf5yqQDV9mGyMn B5cr7kyxArfyNcoq9DYyEhtrqfewLIA6eiPCIdyPRD9/5GpLk9c/I5MQB1All0H LjJuA/9OTyJkKvPO5rsLSjVfhNg4FPx3W/23f9767tcOKbFSYsb5rHYSC8sP/Mim fgyqZJd2jm/ch4xU9zxPRmKIgz8mUxpofwh2v8iDtfUZwqVJCrN6RYskJCwG0WkT bhG7Hp3q4xGa48npkCXGw4NnKkKYZTU3RK7FbcwZmJYb7krzX7QbSmltIE1vY2sg PG1pakBzb3VwbmF6aS5vcmciFcEExECABcFAjw88s8FCwcKAwQDFQMCAxYCAQIX gAAKCRDY/nKFOqT4FuNAKCRO4EJs5q5YNgbe12hCiPPKL9eaACgz6prde98KAn qD/gCRvAORa04bG0GkppbSBNb2NrIDxqaW1ARnJlZUJTRC5vcmciFcEExECABcF Ajw88wgFCwcKAwQDFQMCAxYCAQIXgAAKCRDY/nKFOqT4O7RAJ9pKTJDRjdP/cPo pkzTIgjhk1cPugCgp/hX2a7w26gqnvrRXCa9T0Rxvgq5AQ0EPDzy1BAEAKJwt13v YhG4P6mgwevIECIshvuM9vRqlR5MULHavyZqNOLp5M3mCr3k4v3ok8G7UeSc1Jg/5ND1EKw63gNh2SsetlruSMWZLEJ3aerbBBS71HIog4oGuLst3dbc1TJ3ZQkamMnk BB8kWARSzSdpjCc7ANGi/5Omnu0koknduPabAAMFA/wNcC6i3fr7SGo0kFqCq752 lkl85IdVFApLVnhz7PrrI8WMw5QaltnW8aiKDwE7EDu8C6vQj9YQNldjVzjAnav RpvZue3KmdrZ2BzCxOnF9PNxo4pcFwYefyPqSWnht9bvlU7DHeeykgStBGcCE8F YS6CogoPwRGC7WGYF2amL4hGBBgRAgAGBQI8PPLUAAoJENjcoU6pP7ghJcAn2LW giZkflVW0OUFmBACgqffLtmAKDxU4uLZrS4nA3Utgiu5x/8n8yUQ uAGs - -END PGP PUBLIC KEY BLOCK-- D.3.85. Marcel Moolenaar BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDxk42sRBACyzSSCLYA90zaZoMlg4zhMXhciG/YuiBZ005q0s9W9cuFFxwOM 0mLFbBHQKj5TG5TNswnf9VreRg8lRPCzgQ63atc10RU2tfa88hIjWZ4G4WEFDeXS hlj4dIA6KO93UEoJmIyR7hswisb086mK4dM9hq9FxJT7YQ63PkUYmdpfwCgjX/y xM6aPj0sXuOvAcVVmrnp8UD/2pEd8kxAKIaWmxOm9aGB0/E6vjZWxCk1CO7tgG 4gInFYUnqniPB4JOXOWriwBGPx5IqWYwYpgeuoi/KeE/Wn7bRUEeCbBGEmJkHO9l 3xJuPX8JKDkGuTNDvR3SINKSzx7gb77eGorwxV7e4FXBeXOyXLxgDqDhh7Sjv5/4 ikr2A/99b5t1akHlNe1ITpuEETDNRcfu38/KW/nF3p1IKQ4QexSlEJzPFupYNoZ O7uD3A0YCNf3jIY52ufkZXqhqfsp6aRLetbqDcKVrZWSudAzGAEk3Q85a6Ei4mUB tfv4dmXQOLzfAFHezhCQIt5LIPJ5Dmz/a26u0DmlfisgP5ltbQkTWFyY2VsIE1v b2xlbmFhciA8bWFyY2VsQHhjbGxudC5uZXQiFcEExECABcFAjxk42sFCwcKAwQD FQMCAxYCAQIXgAAKCRCmBaUtYe6J9pN3AJ982m/rtLgyiuHl1IM/xfsZ460SACb BM7V955SU4T2b1FW1ieOuuZEKC5AQ0EPGTjbBAEAKbxUKuiOJsAQnGKTXtbyRdR Y6BZQK9tPNXEIjIUZ94Crs9lVq/P3kyvpR/ziLYt3agUAELiXcggUZ5KRzKBmo PJ6ZdWOuKLRN2PfK1QVOQayeZV11XZAsPwyHI2v/hvjJnFvQNTEXWLZsBNnfTdx 0zi5RBNhf5Gt1hyuT4cvAAMFA/9xKQ7aKkviC7KafwH6B5X6lIQxRbTQuaZaqKL M8pDmVLqo3er7S1ullwMWfarQLHtlwirX9IOQN833TCDev9QeeYZZ5g2MpWO5nx4 kxEOAK6LgQBg4RcoLK9CpHUpLoChGQzNaDudztUixwVaaigj21O4PXFr9pmLLZk vj7AN4hGBBgRAgAGBQI8ZONsAAoJEKYFpS1h7on2XgAAnj0B9B7g4XPMXjizKVNP YLC2BYjgAJ4tZI/tGYxHex5RCeFv/fG4wN593g R/4a - -END PGP PUBLIC KEY BLOCK-- D.3.86. Thomas M stl BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDoj/ekRBACnO84k2i5lLHZKscyV8tjQSkkr26hasdbc/uyV7HTiPhMUjEAz PamkbDmy/Ls8k0SJ1l0vILBBd31G5VYtKonIrgp4vZ9gV0fBdCyFDXb8bh11Pk3 pEZiG9vJevq40OPvsThLKHCLNhZ5zLPp6gd0IHwRJ0LU94pouFXd33MzrwCg4gTJ K00Dw0w1hFtUsq6WjNC1B8D/2WiEuzBMnO6gz0p/eJ1eZ7mvrBXLQZ0u5vJ3eg2 CCPrtS1ZITq3ICPDN6biEiMgtRmlYn/VYvDQqxwNE0X2yMfB/9sdah45zma9EeVn Iy8meaCFDLhm4aIYc1foUuz3WbCNlJFY5xYPXCMXLkC65xdybHKng5TXh6NOOWf3 PfCWBACPMotTRKttAuw5YcZE5VDrSXPYHu/jm2CpIVmrac7kDj9pGH9sB7BdUxw vczqtAT0jk7MrTu3FH9wBtEFTXl7ksGTmDOFWJgYn3ZOEaVaX/OqD89UNhrOA2v ZOaaoKMYxK/pszPdr1Ghd6BQCmYKtLBlFYiTDRM5UMVHTqN7VrQfVGhvbWFzIE1v ZXN0bCA8dG1vZXN0bEBnbXgubmV0PohXBBMRAgAXBQI6I/3pBQsHCgMEAxUDAgMW AgECF4AACgkQHZPHUGcd2xMLwCfdEkPZVBgEmYnlyOKfyTSslMhud0AoKDKZNXA huNslb4KF8yKWBNRwfPStCFUaG9tYXMgTW9lc3RsIDx0Lm1vZXN0bEB0dS1icy5k ZT6IVwQTEQIAFwUCOo01FgULBwoDBAMVAwIDFgIBAheAAAoJEB/mTx1BnHdsOfMA n1xd4f7iAe6id42DLg4W3fibsCwsAJ0cT2lf08RhHkTzLVoubyIDoY6ILQfVGhv bWFzIE1vZXN0bCA8dG1tQEZyZWVCU0Qub3JnPohXBBMRAgAXBQI6pO9pBQsHCgME AxUDAgMWAgECF4AACgkQHZPHUGcd2z7gCdF5fq/lebn3/gp40O8xP/J0XFbiIA oKJP186L04qpSNamc/qG3gs7h3DGuQINBDoj/wkQCACl8M8ObSTJaOY4SgoQkKgB CkJJP5ScUpfYV9w3dxKL/77cyfghfYsnAWuA9yXJcjA0FujRf8gS7OaHD9H9Mm pMGq54Aa0KUQaDbL/Jzf5zrKS/RASHzl1vYXuZB1OIzPfeAIx9u3UaziVEGXJha3 1KgTurTUF94ZFTi8uApq2VoNT6sFi/V2x79bxlLFr9M9yD/0kMZKovWRODy6T gWJzzcdd//dkvKp22tNf6C2wq8Bu60cWR81awgG2otgZjCPUs2Bwhqa5opeUqGn JfPXo6m2UF21m1vLARENuumu6SXf3XqGIUiQbT6jCdJORzwaxeCiMfu0qNnUX AAQLB/9u9gZN0N0r21ZjM6ZRmDC/REouCdYHEj49f9g/xLXCfacpWVcrK9lIrcg hxRE2mQ/nlQLeHroC3Dp1AfThKSPFX3PRD/9CcRu480imT84ljf6vonAZ20Edm5 vVOUoJMZQ2GrWRRf4bDfwFoyDw3DsNmUL4yH8m2RpTxXn0pQtD2riJD8CBCXEP K95TYT4MomJ7Szg7O5/QLngfw0q6QdKRm1vEIP7r6tUbVNp95g9qvz4aqm3beY pw1QCDHcqpDITnlTxTdV2SgNpF8JPg7joaOa36AxWwRzfLFyzyw/JGQE8RwJa8BN iTu0IrKuiF1biRxqiYO887GBA/8QiEYEGBECAAYFAjoj/wkACgkQHZPHUGcd2xN TACgkS0AGqqd2nLtWhpbE72tD660tv8AoI24cRkUa2op32mti5zfLLMsM4AZ 76WN - -END PGP PUBLIC KEY BLOCK-- D.3.87. Rich Murphey BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQCNAy97VMAAAEEALiNM3FCwm3qrCe81E20UOSlNclOWfZHNAyOyj1ahHeINvo1 FBF2Gd5Lbj0y8SLMno5yJ6P4F4rx3jwHZrzAIwMs/lxDXRtB0VeVWnlj6a3Rezs wbfaTeSVyh5JohEcKdoYiMG5wjATOwK/NAwIPthB1RzRjnEeer3HI3ZYNEOpAAUR tCRSaWNoIE11cnBoZXkgPHJpY2hAbGFtcHJleS51dG1iLmVkdT6JAJUDBRAve15W vccjdlg0Q6kBAZTZBACcNd/LiVnMFURPrO4pVRn1sVQeokVX7izeWQ7siE31Iy7g Sb97WRLEYDi686osaGfsuKNA87Rmq5FjxeUV4w4szoqp60gGvCbD0KCB2hWraP/2s2qdVAxhfcoTin/Qp1ZWvXxFF7imGA/IjYIfB42VkaRYu6BwLEm3YAGfGcSw QoiM - -END PGP PUBLIC KEY BLOCK-- D.3.88. Akinori MUSHA BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDjXWqERBACDCxgN9yMfpm3yvkYpP4Uw6xxPdcZ9RvnTRkBX9zXaRgSPmM zeZ63LpB99uVphVZrv/EdlyTfcRdz6VXXRcTBloA/FsyY86IluBnWCH054WyXzr 7az5WB9yDbPnlwcSL919bq0UqTuQUlQswdQAoDQG5LNNZNa0T01ydYtNlwCg3weS I/nEJrGCXGy2wrjg8LiwQ28D/Re2JHQPTYqDEZl6wj5U83wT55ChnTrjPRbGmr/C UdJP6CZQg6DXYGYulcp3oL4btcdFDRFglJzmQNkUYmqiVC20SMVKUctrOCAI60P 7VE40UtXz9EounPSRQQ1lSdMNeRwrZ9o7IcrSj0EBw8lw3d2WxyM2Rs2crZWfOI2 mu8dA/9LbmAw5sLk5Lo5i41nAWP76pyuGxSia6zMRdML6ynoC5kmyrI9TwW5LNU/Lsq1Ru2XSACwSBpTt0vdwS88dDwPGxRuUHhWVpa1M5t7K7uYODB1cD5AyNoNnR/lHpxfPZOJNdA3OPgfssN9KPIuhbBU5xONCoAcdC9TEqSezfUrQfQWtpbm9yaSBN VVNIQSA8a251QEZyZWVCU0Qub3JnPohWBBMRAgAWBQI411qhBAsKBAMDFQMCAxYC AQIXgAAKCRCSC/Hn9nh7n1bAJ4vkEQX0JkcYgltt0Vv5qkS3bGqNgCguxfhuEzZ vBzpAW9/XdstjA/DSPS0HUFraW5vcmkgTVVTSEEgPGtudUBhbmQub3IuanAiFYE ExECABYFAjnly3oECwoEAwMVAwIDFgIBAheAAAoJEJIL78ef2eHu7RoAoKn5Lw0y C/lju5pV0WI5dmxTzxAKDJRtsRSTBcJ7ohvzztxZqyjfSKbQgQWtpbm9yaSBN VVNIQSA8a251QGlkYWVtb25zLm9yZz6IVgQTEQIAFgUCOZGiowQLCgQDAxUDAgMW AgECF4AACgkQkgvvx5/Z4e4tACgnr8RmYw81/oC7MKS2CSoFb9cg6sAnjKay6ho 14iMGYcFNbjxwGvSE9EtCFBa2lub3JpIE1VU0hBIDxrbnVAcnVieS1sYW5nLm9y Zz6IVgQTEQIAFgUCOeXLZwQLCgQDAxUDAgMWAgECF4AACgkQkgvvx5/Z4e5zQCf Z/09J5FOgAqw3UrTTAzR6QWicG0AoJdlBcdUltEO4WVq3FRlw4RVnA8uQENBDjX WqwQBAC09OxAmKbGn9FETdMA/5abvOY7JgNcFhQutEVnJ90mF/npBucWkCRbOr83 tNB0h5TelV/cmjPyOemfWdAK4R9zQsatZqATv4Vgiy0UbJ/5TPfSraNKQkX nxcDrhpcJXZhX6VYzbWdRSn8xSZzPT19qq0BFafz9UhZKXnLDwAEDQP/dpZe0jWw rED/Kbyr8CDoEKuun/5gPi5xmNz9iJlyvcsdOgok7yen0HHWgdaZAGX3GzjpB5gA aISX/kK66sNeM1XQ7YXpcI8naf0jPa6N3SNWjLf3xPxLbMk0SyaGnrnSQNikk/H Bk2Nqyn0kcEaaBbdfrgkuuQWPnBDrq2EdOOIRgQYEQIABgUCONdarAAKCRCSC/H n9nh7oxxAKCgMyhZmSZdTvT3a2Y0RDOx5kRLACeP3JEvGZAZuo1sJeEw504jr8 1Xo MAl - -END PGP PUBLIC KEY BLOCK-- D.3.89. Masafumi NAKANE BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.2.2 FreeBSD mQGiBDiuMYURBACEgL3d4mL0pojugj8TZFEQefMKkXB3lazrqV2ahgWqt6K24qr 5fZrGkI8vxmYR4VkI1eLfe0Q4LoBZifL5nJYEvMvWPmdLuYjp4iwjgBdzLnwr59 k8T/fohGDOqx45voCdq68Jmxg283zFGQ4FChMP3ZMlOPmFRIp01C84xxwCguNFG BVPeuM0y7JH0ucRygUqc4acD/jfe/UEjGBWxOCfZYOnXEp4NXWis3xRyUDO3cuoG 8M8MEmg0dX0onFuNU5yrEBFtzPw2GO6DMM8h5hJXdSWkiyusn05PGk/jVSP9/MD5 TYyqKL1tG/fKUgtevZSi7o1x/N0bgIBqmzd30Cqx29p7juVVSBcKCRT1qloz6fc a5B6A/wJD5n3HOAStsWpZ6To/Apdb4A3PD4ePfQxSICsHCFg/M04FkrG48So2qc 7dSq6UH3xLsoiRIUonwCQsTPaQQMrZNKjfal9xlEFfw1TV/squoNE8E24Lkzxt 8Kkn86Ec5uiUlRulSMG9HJuWM9Qu7TF76FWP8llVp6ELkYCGrQhTWFzYWZ1bWkg TkFLQU5FIDxtYXhARnJlZUJTRC5vcmciFcEExECABcFAjv4RDQFCwcKAwQDFQMC AxYCAQIXgAAKCRCVlhWezjVrWUEIAKCgwVSawCg1Lzrbf8uZdMAfeOWFXQCcD7EF tsdhbEV62AOUeQQWPr9de1O0J01hc2FmdW1pIE5BS0FORSA8bWF4QGFjY2Vzc2li aWxpdHkub3JnPohXBBMRAgAXBQI7ERfBQsHCgMEAxUDAgMWAgECF4AACgkQlZYV ns41a1lUuwCgsIhWJdtPBebkV6wNQ/8jlkJgrwAnj9lZkiTAgl1E/vcF7yPbY7f HlHetCBNYXNhZnVtaSBOQUtBTkUgPGtkNXBkaUBxc2wubmV0PohXBBMRAgAXBQI7 ESBBQsHCgMEAxUDAgMWAgECF4AACgkQlZYVns41a1nv1ACggYgtKhaprmMs30oz yoC0NatFJ44AoI0XSPh2G9zHEjF8AyYAe6sVCLqvtCBNYXNhZnVtaSBOQUtBTkUg PG1heEB3aWRlLmFkLmpwPohXBBMRAgAXBQI7EljBQsHCgMEAxUDAgMWAgECF4AA CgkQlZYVns41a1lYRwCcC8l4PdrwHKNrZlTW6vod6kYgR3YAni8iLUZW5Se6nTH9 WuN0XYPpZRG5uQENBDiuMdYQBADVzBBn51UQVCLS51y6eCD3TidT/uJAreeiWZ IbTmXrltNm5rGs7OT9QYNLhCFFPYKJxa9hFbrGpgserEFnqBfxcbMLa/wyIm9m/l MINNCAU4IpgDWtgjf1kjzwnJPwH69YzcqS2jlEKIjkCrEa/Bpr1Nvo4aLvqlTR8 tJh1wAECwP/YBMEMx/zgTvS3Jtji6nPceRe8icGRHb4SD7MVF/WxYu5VK7wlmuw 9I9WXnHyYaL4c6Q49FAvwhkppByqJFL0txyJ8nNa6H5mit8m6dcsCMG3NzyvxBP 082h/MWbJn3Xdg89lp4UG3UP8sV1oWyIchd8rqxFk/EVB7fVQWNz/gKIRgQYEQIA BgUCOK4x1gAKCRCVlhWezjVrWUlcAJ467I5lFNlkwcENe5vNDDPaWyreQCfddOu 6Va2/bf7Ln4TKyl17uRro7Y VmY5 - -END PGP PUBLIC KEY BLOCK-- D.3.90. Yoichi NAKAYAMA BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 GNU/Linux Comment: KUHASIKU WA /WO GORANKUDASAI mQGiBDpK8uIRBACY5SwFQXiqzDlO1k/syoFoiFIFl/DpQmwK2oovIvlBVo/1gbx EhXrKRrfC67KSxxdUsgN290v/VVTmq8Opy1/RFRAdxM3JrUfkcm5IBWbSUfXFP i8OXBVgh7wNENVtwwD52F0CFIWZXkClaif4DGkf38V6LJ6hBIycxuNDQwCggXTT Kj5SP2hFC0ueyQtPDoJEgbED/0bPL9R08io82IQqksOR9IUy0OdFJkLVWLnollEY LGjXa/AHgE8L8oWU/2eF1WM4JrtVRdcKe0Ja2e9LuH6IonGAdwqUeeAOwA/RdGj3 63EglH5ugv4rZZKWZ3/piuNXvtq0bhAfl6zBHi5iUB4bgPVoVJGn3VyykPWxdqfX sT5A/wIml11cFMogN3RXy/2Y3JRWeBtUCfdoRjeQPgK8krm2Pr/AtHgcqNSjI W0slX4cLou2TEhV3BHb/4npsdaY0BzYgL7V1YggCv0Pu1s2D53Nzi30V66SRP0BZ OlNTA88WdMfoF3ttb04swSenG9X8dbpyYEdlvxNbbKKbUiBORbQxWW9pY2hpIE5B S0FZQU1BIDx5b2ljaGlAZWtlbi5waHlzLm5hZ295YS11LmFjLmpwPohXBBMRAgAX BQI6SvLiBQsHCgMEAxUDAgMWAgECF4AACgkQgA0MiuB4jkZz3wCeIi857V2zyRA7 gRVsxDcoCLeC3YAn2G3gFdv14iZHXrPaqpd1gSjjayiEYEEhECAAYFAj2pty0A CgkQFwU5DuZsm7CchQCfdD/itI8d/uhmH9A0upJYYoYS46YAoOAfpFKvAGe/vBpw dy40SxBG/qELtCRZb2ljaGkgTkFLQVlBTUEgPHlvaWNoaUBGcmVlQlNELm9yZz6I VwQTEQIAFwUCPai4HwULBwoDBAMVAwIDFgIBAheAAAoJEIANDIrgeI5GKx0An1kh KzDAfR7Fzba/V7DHq2BRLcRQAJ9nZFgBncerxFMYAanwJruIYtPnJYhGBBIRAgAG BQI9qbcxAAoJEBcFOQ7mbJuwe4kAn1E2VVFpLajGFYgipCmMgpxRXPmxAKCUa/ee BEW5LPNf8xhaeIGlAtPZm7Q0WW9pY2hpIE5BS0FZQU1BIDx5b2ljaGlAYXNzaXN0 Lm1lZGlhLm5hZ295YS11LmFjLmpwPohXBBMRAgAXBQI9qLhMBQsHCgMEAxUDAgMW AgECF4AACgkQgA0MiuB4jkYrnQCfUgkHO/ioUTHeBtYJHGeL9qthlnMAnikYzk6K gDV8cHI/ETcNoh542Q6piEYEEhECAAYFAj2ptzEACgkQFwU5DuZsm7A/JgCgvX8u hjU7WPofTfM2d11jywHm4AnRS8iRNMqbP9crcNzCRSQ7OZFqluQENBDpK8vEQ BAClmz0m/wuG01nst/7XriyNgZ3j3oRurb9Fg2pb7wkci6nlhzCHTcFNCZiY1nS Vp/3tRkC7HQPz3zhYo3ieCf12NUweJ8jhbZubp1fYY9ubKoj12ILXTfZf3kA5G UD/n1nkAqxH2yP3eVz1BpKUcLz5USiDoXfrvfxQcZHwADBQP9GejakrIdVKcA/4UTWnMh8HK2b7tDLwLKyJg/8lagBkIAH5tPpCXi1qXuvHeT9SjbdwW/lyxSARV FAz1ejp4QEWsAGQ/pchjbSiYvNq0VfzkZPqFFllLMaQc9mo6blgGgSEqLNpba6 gDmVTJZ5jAhVxFBhRPwchSdPP3ewVRWIRgQYEQIABgUCOkry8QAKCRCADQyK4HiO RpwtAJ0alZHYWdBCXaPF9G9HCl/T40wzJQCdF5K4aEEsIG1P0WmNjbY4PEAVndc NZ/b - -END PGP PUBLIC KEY BLOCK-- D.3.91. Alexander Nedotsukov D.3.92. Simon L. Nielsen pub 1024D/27359A51 2003-07-22 expires: 2006-07-21 Key fingerprint 912B F341 7E90 2049 05B4 3800 87DA 5C0D 2735 9A51 uid Simon L. Nielsen uid Simon L. Nielsen sub 2048g/C11D9097 2003-07-22 expires: 2006-07-21 D.3.93. Anders Nordby BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDmXNAsRBAD0WcmPy11DRvDsEpadBPCATmPrvAImfj5XjcxBAJlBJoc9fiq4 8OcnipVdId6STdVKvB3K3h9aNsb75rD/W3nMi8MumjyXJoHAf8d68cnjppizcPd uQPOy76lkbiyV9OYBtaNQqmU8hE8MTr5Kew9NBCoC4SB4NX8kVh8iglrZwCg8J4F ltBYDzZ5ZGoh54fnYN6IAED/jO7ISCvWbFtnzCw1FOghcgueqrWoy0OYKq8ZfuO m046fuIlHcswJOKLLexTajsYAC0WWe9H3SvKvv1etexMh5SsrgWTsSuIvlPfG4oj D5vIYqvH5NiqJdh9qiFEzGsv44jgESDVy9qaErbXRVe9htuRZqbtEPnB5cRRwTr1 WhfuBADW1VLXj3UGw4OeBBd5KPIYXCx7RKS4nfrlBCqMcIaiDK42U7PXEJB8uM 2sJ6uRYs0j4tTLBbDC2TC1QfT5NIVLG5wWkIhjL7PODHi4LF8n0pQyuLwJOFAx s6RIHNPB2fdI5sqB9lMIBszlb896wVJf9PPWFAt/5Aekw7eTLbQiQW5kZXJzIE5v cmRieSA8YW5kZXJzQEZyZWVCU0Qub3JnPohXBBMRAgAXBQI76xZsBQsHCgMEAxUD AgMWAgECF4AACgkQ0Sq8nwCDWVZnYgCg4fzk40pYLg3iNayO9dDNp4yHS/MAoLi/WCYhNOS0TMpap9SQXC/2e0MZtB1BbmRlcnMgTm9yZGJ5IDxhbmRlcnNAZml4Lm5v PohXBBMRAgAXBQI76xekBQsHCgMEAxUDAgMWAgECF4AACgkQ0Sq8nwCDWVaoNACd HR57UuyytiOqVr4zaVEIggbYwAoMcFR3xdqArQmp561541pk1IBUWuQINBDmX NGsQCADRkDqg2uW9mn5YCXlzx9KlhAfPRny6kF4Bga0ZaIzJng2pY8EsAxKn88 yH6ERs/PYdsy/AyksG8vzuc9CalW8JFEckvtJIL0HhBonlInaeUWHPixGEcOPcW ab8dPhW3zfEgOqquky21d8ZgG3Z29tmKGcYKSQgt6W59z7vITK7gv7tOGp2IpZ 1kGqPZnJqvB3n/uWo3rTxOGA/tduMwfESA5gHmEzKmU/17yIkE0SflKOp0VIGdl Fp1A1ULJDDVXjtDkxFvZ1IWpqF7p9FCgy/OHUfUa0py3uHIEKMahqpAZ9e8DGI nGizPR33ZY5PfM72ABXeGhFnweP/AAQNB/9HPBzxoJJFJNLyosSlIWkmh51K/nC EawQG6atgL6cPHgJQkgthPUywkI2g7SUSurgPz0hRCPg2PjHP3PwVhjKzUgfAj y9eVnuJSpst/a0Y5LEQdNnwGYCs0q9xj4T1VXw8B9fA3y1wS1a13zCQjfLrZP ziIGjHIBvpOFrSU3ML1rRaVfQpm2wQXsGHzjkaZq7HQy2EOVLzik34XkPBY1DrnY nSEwSurfjTrKTLNYsN53xCGwJ2w2347qXr04j87XhRmGCJQ/Nrrin4z4LQ/zNm5Z bErlts8PAfR13kqP7rx/H1n5obhpOoXUqb4Rm94c0r/s9JRah9ppgADRiEYEGBEC AAYFAjmXNGsACgkQ0Sq8nwCDWVbTvwCcCG0X50Tq7V4NeGgREttltmR7UlYAoOgK 1OFsIdCCq6JjrwvfN7ry3pwc clge - -END PGP PUBLIC KEY BLOCK-- D.3.94. David OBrien BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see 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 lSVmAKDF3kyQAZDAyz21MQJnmJ2O5dFJg cMCa - -END PGP PUBLIC KEY BLOCK-- D.3.95. Philip Paeps D.3.96. Hiten Pandya BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDxThkERBACPf5/QHmyM944qrl3hWlWvK9fZZR2c37rhxAeqDJ8WsEMPBTZK WPn9BsMk2d8e62FkzYo6L5juekd8invwd1nnszFFJdTDWxvpMMgYuHBmme0QuP OnlU2FwJUCknw5Ed5pYV8F6azGgUNjYKIIJi/L3D9S2qDZ7l3DgD0knKwCg4o8Z ZE2vd9uQw0AZ7lIali3hB8D/jHrVZqHxhOuUbxIXoJG3g54mH4i9GF8uN8ZdhA0 9AxLVLzjLr4CQd97LdSLagSvgD9N6OrtMPeqge4Frr1anJLRPDeOQhd0meJZB iCiekil4DSOsowqgmIG7DlAJxPNV66qO1ExX1fv1ugyoWHJqYmdBSF9x1fHU788 GxCtBACC9DLBMmMVu1Fsw3rnkZaR7xX1a1Bu95ZUu6TKJP6qUS5GnQOxF7dDjuwX/uRinkQ7W9vR4UuVvcVCt5R/yq7eSfLbYFQ2BmWeGNs5AVLxIZsZ0ar16fwB9 XdxxHU/IkA3kYo4JfTvi3QXjLn4mbYUuBIVGAL63UO1kx1c8crQaTWFyayBQZWVr IDxtcEBGcmVlQlNELm9yZz6IVwQTEQIAFwUCPFOGQQULBwoDBAMVAwIDFgIBAheA AAoJEHSwCw4zDU0BXeQAoMlSoeOO5WtFMyC8viNAafpPcT6hAKCcjmQyI/cI0id2 PMX9ZOfrKd/ma7kBDQQ8U4ZDEAQAw9gcDj02cAlUh8G9bLIQazPLJnX0fah7KB3O kxh8wFn0LliP7W7HLBnQNyO4TfNgI0bhVyKDQQbKI2xJ4hylo9Z1K2R7GilgCnB FUqIp0MdqAswX2Dq7KXoyYAZRBOnQounUMaQ6cfRI37mWc6dC2uY5qHne4zmLML/lVOjVMAAwYD/1ZArkN4IDk/VALPnzW4VYcCcT101DMZfIMvHK2MiwWFmOEr/K gIo9DrybHNQ6bVQh/F6PSlxDrgWey7dQbHQSssC364v3RPOCmuBJCMTEszaais3 VekHF9i9NMsUzbGpowaQvYKMFQu4Rtlwaq7NUp/cD4ajaxto9ij4EliEYEGBEC AAYFAjxThkMACgkQdLALDjMNTQHvuQCg1PrMlcafQ3BUaXAQRlGoyvF2WcQAn17c HA1RAO/MXM99nT62AKLlpeb mfY - -END PGP PUBLIC KEY BLOCK-- D.3.98. Peter Pentchev D.3.99. Denis Peplin D.3.100. Jim Pirzyk BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDqfK40RBADDZo6Nm31TcstpbbDGjJXxTAace2fZhTtu98UaC3/78vDYTqH Mp4sR6OSSWuf1vS9MSeaHJitLvuProQvOCyEKzW31KuAPnldqrTerEdcy41GASb NbqNz0fTBOUyRebJQ52XZjFC3nagAfbtqIEd8rRegwK0JDWdkIhuNztBwCgzWyj Z3y2rYSoTc0gK170uL/zAUD/jIOCSPtLFgZf8AgPaxx1fkWmDZdf4RKpckVMgnK vZrQkhXymksXoH7CeT2MpB5R05tpOQF4jV8OwCHSYqJ3P1XlEod7plw98BUiyS3y guML1fiIERHnZumDFxRwKN2ybkzMbZzuHiZl3pAdWe3lYa65aRIs3CrUoQSzN1/JfJBACtOCm6Xq8kfk4fVvlN3lqDcpU7Gw3kJiudOg3gAv45egeG18HKJI3H6gvq N7rj0xl4m0vEL5AYBRJ/THVy/3574s0DwCCPI18VQPL8vmSXc8UgAkJlgkdtumH3 OHqPNi4NPEd82wECXmnflbCS5A5CXGtrzXsPMrhiXz3lpFFRLQiSmltIFBpcnp5 ayA8SmltLlBpcnp5a0BkaXNuZXkuY29tPohXBBMRAgAXBQI6nyuNBQsHCgMEAxUD AgMWAgECF4AACgkQ2EYx0U4j2sqnWQCgvXWdITNFCbKedEmEXTbwzzKq0qcAnjrg XUiN3MvMvXk9tnGDCJwnWhoYtB9KaW0gUGlyenlrIDxwaXJ6eWtAZnJlZWJzZC5v cmciFcEExECABcFAjsEMxcFCwcKAwQDFQMCAxYCAQIXgAAKCRDYRjHRTiPaym2w AJ4oUKyvm2uf0Hkqig4s66TzKYVu2ACfVLrGSFHD0oharwIs8CcwN5wPg5O5AQ0E Op8rmBAEAOKSRsTITy5w27RVzf62B29RZOfdySTmEPQu3YdlWFuA7Rks5fD565U PMUtPRzTEy7ofoPHxWv0bgbEBDuAoXmkjz/KYhcTGCwVyzg9PN/QEa8F/ETn/1Y9 bbTejC3mM6ThPDqKvdh70IZW7jMfeDxKUTCHs3rFdGQrJfbdP6dnAAMFA/94szUi Hx02WgHQjVdYjFNp4YdWNTn/HEDZZdhKyIATw1IqtnnAlhSfLW0AhRIr2qSwT2t PW6eocCmrDHPd1VZ891QfcF/tWkSIgB8ROaFkjJra57wZO/Dg46kdpZYh5xjrbR tffQr2c0/2tnvTrl4/ErMmhskeppBtwZfpuzE4hGBBgRAgAGBQI6nyuYAAoJENhG MdFOI9rKNWcAn2WQbmvRcYF9B0YjzGNFKXjGjzuVAJ4vkxM46P9tcQ3ZTKMKOaz 9bVtpA ggLc - -END PGP PUBLIC KEY BLOCK-- D.3.101. John Polstra pub 1024R/BFBCF449 1997-02-14 John D. Polstra Key fingerprint 54 3A 90 59 6B A4 9D 61 BF 1D 03 09 35 8D F6 0D BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQCNAzMElMEAAAEEALizp6ZW9QifQgWoFmG3cXhzQ1Gta4S1adC/TdHdBvw1M/I6Ok7TC0dKF8blW3VRgeHo4F3XhGnn9MqIdboh4HJC5Iiy63m98sVLJSwyGO4oM dkEGyyCLxqP6h/DU/tzNBdqFzetGtYvU4ftt3RO0a506cr2CHcdm8Q/vPRJAAUR tCFKb2huIEQuIFBvbHN0cmEgPGpkcEBwb2xzdHJhLmNvbT6JAJUDBRAzBNBE9RVb 45ULV0BAWgiA/0WWO3c3qlptPCHJ3DFm6gG/qNKsY94agL/mHOr0fxMP5l2qKX O6a1bWkvGoYq0EwoKGFfn0QeHiCl6jVi3CdBXW7bObMcoifoqZ6zluOWBC1Jdk WQ5/DeqQGYXqbYjqO8voCScTAPge3XlMwVpMZTv24unYxtLkE0ZcwtY9IkAlQMF EDMEt/DHZvEPv7z0SQEBXh8D/2egM5ckIRpGz9kcFTDClgdWWtlgwC1iI2p9gEhq aufyFUJlZS4GSQLWB0BlrTmDC9HuyQKZqKFRbVZLyzkH7WFs4zDmwQryLV5wkN C4BRRBXZfWy8s4zT2WQD1aPOZsgRauYLkJgTvXTPU2JCN62Nsd8R7bJS5tuHEm 7HGmiQCVAwUQMwSvHB9/qQgDWPy9AQFAhAQAgJ1AlbKITrEoJ0pLIsov3eQ348m SVHEBGIkU3Xznjr8NzT9aYtq4TIzt8jplqP3QoV1ka1yYpZf0NjvfZffYp/sIaU wPbEpgtmHnVWJAebMbNs/Ad1w8GDvxEt9IaCbMJGZnHmfnEqOBIxF7VBDPHHoJxM V31K/PIoYsHAy5w cHFa - -END PGP PUBLIC KEY BLOCK-- D.3.102. Kirill Ponomarew D.3.103. Mark Pulford BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDkY4OYRBADvB3Uh68SGrlbrq1MTAN/gnVaj4ztmA15X13bunGYdLKLEJdq rd9xFv5OgxGZXJsDhbKomJ7yrBGtUwC5kIrKXNMPbO60yy30kIVLKjXIv1dc MlWhjFzHra7WGFmvhzYnbOI/zjlOR68iKHnwxhtKFOK9m2O3voURWLEuqwCgzK/S j4UGrPUmZf9XOZcKdnN07nMEAJrNh6aoVgK1xwpyO9uTURuCppqAUym/fr4xNQqh mngblwIACnV9FpBi1ogtX1iDo4YeQa7t7ALgdwTBbU8upVFYzoVByid9ibNu3OKv j9JvL55jUVg0wv6a8bEWjxnNK/zVa/HCzTbAzHob0CSgH9WmEJJEUIqI2/PG2dj ZX3QA/4y6Gon6iya2wk0Zs7mrTj80kxLRMnuPN6geTGVNTfrxatsA1PVpT2WWSo qOrPoyxcpUBbJ3VlFmuYDDgld4lJiGD/2SG5BkD6OoGlRnD5AMgUxQtQFnkloao0 3md8UDucIJnJRF94pttQtv4lVKaocm4z0Fx6cWC4Ysupj1AG0rQfTWFyayBQdWxm b3JkIDxtYXJrQGt5bmUuY29tLmF1PohWBBMRAgAWBQI5GODmBAsKBAMDFQMCAxYC AQIXgAAKCRBVn397GCw2jxyVAKCbPwK2rDZx/oahfd4M7XJ4GoF0xQCcDExtLDK wOugUQwfVIExBHBM3y0IE1hcmsgUHVsZm9yZCA8bWFya3BARnJlZUJTRC5vcmc iFcEExECABcFAjse9k4FCwcKAwQDFQMCAxYCAQIXgAAKCRBVn397GCw2j/OXAJsF bdYQGgCs3sXMOdb7pNUi2DL2kgCdFOFSojmWV9mulpzH6ceb/fKgoJC5Ag0EORjh UxAIAMrmc2VXtnp/WWhGne6yTirnnWjR/crSK8ixbAqTkdYnocY6gtBJliR7LSh Cv2RD8TaUc0ZZseHC5vR7VZKXobXUF7QqB1Rgzz/CpsFeEmxxQxZrVKNjwcMloSt wmH17yW5tBDg86KhFwHj40oV88/49L8utVMEW80gh9O9TlYw5qCAp5QKqkFS52A hO54xjTNdEpv/9yXpwQfgUqkAHM8MQhsaxmKCIQXUGt6Lp13aHDAYtMizED0LBjV 3P3qCoc03P9k2nWwGGU7dukncYNNuLDW9xwkAfV9VQuPYCHEBiPTcRnn99imyvNz FNhOElHDttCyKtt1FdZZVAQzXusAAwYH/18mnEMMv4rMZglYb0PRCxaxwQYkxESt KyXEclTc0kgyaZnf4Vbdz1rroxxZLIf16p/MVNFierz/7d5FbJYggCDSsBAaj4r Qe2/Os3oCnHyyQYzF9Ac30CsxzgDxMYxYGJHr6xs9cloZ3WwBFAO0bMoS/9T/9/S7L0d0litecox5et2yEw4AqHdCslGx5mX0os66uh99eeEwW2EQHSLklwUPReb7U 6mfNyWxq5wqTPGzcXdiW/117T1aONVmg29tSNW8S/syha2PCJIoordBus4mU kfa49yCuXyZAYDNLbkiqMVTDCqrH2n1mbUuhRBaSZEvgqVfVLZzRziIRgQYEQIA BgUCORjhUwAKCRBVn397GCw2j7T3AJ0ZDGzVqNQBE07ntRKuzQQmou8YhwCgibYR ZJyP31xlOLt5FgzzeqcQwU DKp2 - -END PGP PUBLIC KEY BLOCK-- D.3.104. Thomas Quinot BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.7 FreeBSD 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 mFN1 - -END PGP PUBLIC KEY BLOCK-- D.3.105. Doug Rabson BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQCNAzi5GEEAAAEEAK2MWoFtSEoa6/eVi1dRiebsFF4DnoxIaQATYfhynrLDLDL Zvl0pfgzMWG6VvtsC5c2u549BdYsbs7F95dUUAe2JG9V3m8YeLuzC5uTpac5PeX4 2pHpniY5DDRRlgv0BpCRDOF7JmnMSp1yv5IEFzTdGYv1CdcyFfJuUqVwRdxAAUR tB1Eb3VnIFJhYnNvbiA8ZGZyQGZyZWVic2Qub3JnPokAlQMFEDi5GuIB213SlY4 3QEBIPMD/Aqz0G5OfPjsHoQgqXgwYfsdl5D2qEoQGj/GvJNW/I5MeV4YuydZGJ PbJa6dX0C9jdhlPd6BUtDKBsY6/lQnsVIufraYhalinWpExFdDYi8ONu9tPzgab 7HCvgzEcp5UFdbIdfBvgelfwJBgJ1486VUsC8H4TfAjp0ZXlxRXiQCVAwUQOLkY QVfJuUqVwRdxAQEFqwQAkREhyhEu3QYxDkhhGwxHWl8G3WLEth/6MRUwLY0L3dt qPfZ5MByKqhj8EqKoso4KnBzDajeKwjIeM2mzlmOdRH6ElR4WtoQpn7Ru3O9u7/O l0ojq8PDUw0KTNKcLYuvG2qBKHeLYzpTEPRbKiRprZtB6bRSYE2mM3rY7q9LU8k pQjj - -END PGP PUBLIC KEY BLOCK-- D.3.106. Tom Rhodes BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.2.1 FreeBSD mQGiBDxEXywRBADtQr4venVgd80wgpOBWwSLvYrw7YmFRMcTP5aw7fRHhxmhEyRE/1jyqt6I/uyS9irePzRyGcX/2RY1APWjXN3dFtrcYzF1zNLld5flVzid//0bBt6 WkxH5DzCd18B0iZMVKYkVhlFibS2vp6opqoOAd5SUoDx4OY82r1jDKavwCg/7FU VwL7iSh6PmnzBWuXIaeFjeUD/2E5JlvQXbcCK3AbEZJg/1lk9vfDJVl8ZcOATb JyH9MXJswS3wvFesjwIwIQLIx2LsecuHItmzybBMmYNLSd8RTsI1gYPLl2zqUaN FTpgHeh1bKF3oi9nn1KywxxpZxI8s9ClmdIeBW2hNWOGJf87vwAYf4uglox89xWf tztCBACPVVdNrAb2UOcFlwjvtcC11XkR7elLSrImJ61uZkCFQ3SNJ/nyppjzg8KS KDwehl4X4poqDBBShyh27PF8DtaZ0slatZuMz3CcmR5aR6b95gHoekNwtR/Rra gYyTAMwdlnrh8zOd0fcpdmUW3NN531zy4Atu77rMb9JvWEz3sbQgVG9tIFJob2Rl cyA8dHJob2Rlc0BGcmVlQlNELm9yZz6ITgQQEQIADgUCPSAgAwQLAwECAhkBAAoJ EMD5oIkbnr1D2YYAnRcFECq5cm4t4mBmbsRnk3CCqZ3RAJ0eIsczi5W0fVRaut93 lnnnPH14frQjVG9tIFJob2RlcyA8ZGFya2xvZ2lrQHBpdHRnb3RoLmNvbT6ITgQQ EQIADgUCPSAgAwQLAwECAhkAAAoJEMD5oIkbnr1DsyEAnR/iu0IjqvyqCBsiGQh hZ7JnhQLAKDBlIB1Xka1xJBCS11HitB8QiQbn7kDDQQ8RF8vEAwAzB13VyQ4SuLE 8OiOE2eXTpITYfbb6yUOF/32mPfIfHmwch04dfv2wXPEgxEmK0NgwPo1gr9oSgm C66prrNlD6IAUwGgfNaroxIeg8qzh90hE/K8xfzpEDp19J3tkItAjbBJstoXp18 mAkKjX4t7eRdefXUkkbGI78KqdLfDL2Qle3CH8IF3KiutapQvMF6PlTETlPtvFu uUs4INoBp1ajFOmPQFXz0AfGy0OplK33TGSGSfgMg71l6RfUodNQPVZX9x2Uk89 PY3bzpnhV5JZzf24rnRPxfx2vIPFRzBhznzJZv8Vbv9kV7HAarTW56NoKVyOtQa 8L9GAFgr5fSI/VhOSdvNILSd5JEHNmszbDgNRR0PfIizHHxbLY7288kjwEPwpVsY jY67VYy4XTjTNP18F1dDox0YbN4zISy1Kv884bEpQBgRjXyEpwpy1obEAxnIByl6 ypUM2Zafq9AKUJsCRtMIPWakXUGfnHy9iUsiGSa6q6Jew1XpTDJvAAICDADBjQ3p OyWSFGSmZagEbqS2TKMs94IxwdEXqLIfsS1XvPl7D45kKTN4ThEzuz2sz7gWvv8 pWTiVXlKSgzjXc6mu64DJTLiYn2Vdgk8VqxmDMWlS4r7nQtCuUg9cqrfDEvl Cqpfy2hDI4rNwC9vIY6RomEEeq68ixmUWJsUSoitXtbVxTrq7iPJYzFmkBqWT1iK WUekmfDN6wY94Lpbai1I04kR/vxKdkmMAMOwv05W6llXUz3twwuqny5ipQcPj5 i/Pe433UEFmuNtkUNk8lX5QhuBnyhFKnzlOScld08AL5zcqKm/yew7zSREXnHu IzMjzAsO216ufFWqI9UDE0tg6US045P5GeY/uXRfDNb65DuGxFeisDyH/WtoST20 hn5OcSRAv0fjKGhwTeInc9Qdl57cd8n2Kif9oBlQ9wnfWL3lxxZfMOpHJNy6D8 dCem3EdjUI9ScJyRiwfo6fXJyZ630n3I1UtGQhqG2TYDiPo4yqw8rMJm1CIRgQY EQIABgUCPERfLwAKCRDAaCJG569Q5/eAKCTPO44fSJpxA3pKV2T3D9tmLpWMACg m9rVxuLvsLUuy0UenEK6/bBsDsk C9cS - -END PGP PUBLIC KEY BLOCK-- D.3.107. Benno Rice BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.7 FreeBSD mQGiBDxFDgwRBADSAPXXRSDeS8jX0younPZ8dPSW9UBSCn9GKgyV37q6rrwaHlSm CspUTL/92h92nhosLkNa8Xq4P7oZJ1NUijPGIXAxuwOjkE2lxBP0Kxzkjrc0FF/ZQK6cqpVjtrTCGBo3im6v/dw2UnmILM1GrVTpcmTvyGMJjXT4VBxtiwCgiv56 PVM6qCrd5p3NXlveaiYoXwMD/Rza1QobPGHlpX0hkj7bPS0YApNEY8F82yZ0vArY NHiQ7lUWwLWL3/h/O8T6tjE7FeKdoI9U/EQ3tIbUVpDWbURJtJVyCE/rD/M 9kDjXxp/74aICSIlRxPMA8AGAP2Zv7a4GZIlhBVmDu3tKlDvatUiRU9HPACOZqQU FpR/A/wJRDr64ICA5/N0qB3e9Rgxg66LcjFl40jwM1Hd/8c6JlLE/vcdowcqxHPd yEgKZoJoKYN5Y7WXnQUvrkD5O3b68MGfJRjlvxCMLyedD0lDntzJE2O8NQdATnB cj1CraaXHvtN5sddw8Gtih6/8p835fcsQyr/V1BKhoTGCTtkpLQfQmVubm8gUmlj ZSA8YmVubm9AamVhbWxhbmQubmV0PohdBBMRAgAdBQI8RQ4MBQkJZgGABQsHCgME AxUDAgMWAgECF4AACgkQXjRwWofFmQmD1QCggnxa96nN9TOz2aLsVQ2qszwzBBQA oIHKFC8JXYP8FH0fA91zLnceWeLDiEYEEBECAAYFAjxaJggACgkQo8kg3R/NoURX hgCfY64KESrcptZLiA5hoAvX13gsAAoMOiUC/0Non6V/srofbjO8HFM/IziEYE EBECAAYFAjxYkvYACgkQDCFCcmAm26bQlgCgjapRIU7hMjz5HBnZgNr418JVRkA oI2DYOP10H4gBZPwT574rkvlrXiKiQEVAwUQPGs/CGfCgI8zwWJ7AQFkGQfLQO4 gNf0j9z/LIyKA2mCT5C8Zjh0h7DmRxiiU4NbIUuZy7hSVlyWnJMG1JTKMiK1Ss nUReCTkNM70rBnxOQV3BlcHksb9ZsrECy8icfslRJGpQmQlrUxppHSyb7UJh5d69 C5xpDEFUBpTgSZw5JKDOui8gZL14TcthoP5vuj9geoDWWogyYq0umiaZSDzGeSa ST6ebL1neF8hVdxSHcTChFVfrHDWdgAhkGBantTsfbETTwnBHH/kINu6LxBkC JAZMw50vKs739ZZxx/gSRd2CDnSlUsoMgJGKLX5MGWmCqEPw8uyBT/T9t8GOAg sx5XjhBhe3PmVPTKNIkAlQMFEDxrQDpVLh4uc9KIpQEBgk4D/RaNrMtwjUoITVdY UwNLGdh2JC2d3pM2b0DUoL1rcXwctmc5z3I5co2c/r9k00PGzWv6D3LYboTd/bxk lPvn6uIYmisl7CknFnCLO7lbILkEBGpQHE/8Z7EAI2zUZ/bi3VKcKAFooNPv2p HteKkkVc6z82BWCI0bzHv/Z0YuiEYEEBECAAYFAjxrRMMACgkQUgAclY4JAiON BQCgiIf8HrEU/qOoM9BMRwW/1RYeVhIAnjWu/jgHWJVvdPpfG4UIJKpk8DaliEYE EBECAAYFAjxrRR4ACgkQjDKM/xYG25XSygCffF0SdJWNXkxspiC2BzQAldql78A n27raDOotEaHxv5/qatznaWJja5UiEYEEBECAAYFAjxrS7EACgkQGPUDgCTCeAJj kwCfa3fOqwWcLbVO9we8um2rkZl4qZoAoKLH4FUXz3qldvVyRvhbSlDWGwP0iEYE EBECAAYFAjxrS58ACgkQIfnFvPdqm/WWRgCfaGeUlRGzWSQQZzg2pMzeC/yFuAA n1qQO7UVEzxTnoD3hAg1T/mLsaDiEYEEBECAAYFAjzPTrEACgkQzerIIuwxO7XE yACg5rmr96yl/M/qQ3DIFrx/Md6eJYAAoOStOGPS/9Fly4Dv7T9Cx7Dsz4QDtB5C ZW5ubyBSaWNlIDxiZW5ub0BGcmVlQlNELm9yZz6IXQQTEQIAHQUCPEUPdgUJCWYB gAULBwoDBAMVAwIDFgIBAheAAAoJEF40cFqHxZkJlowAnA4n58ngka4X6ycZCpXo YNRu1R8iAJ46BzE35MLJtgJQztGSnWngoLhCVohGBBARAgAGBQI8WiYKAAoJEKPJ IN0fzaFEho0AniKI34jtQurc2v0PlnTAze7AKRmmAJ0Qfp0DhFEbuWqv2dJbJCnh 9wYOs4hGBBARAgAGBQI8WJL6AAoJEAwhQnJgJtumuDgAn2NODtyfzrThSVz9xls5 A4CrpDvHAKCywVtdpH4aYFNtHZPt48wxarmgYkBFQMFEDxrPxRnwoCPM8FiewEB nH8IAJ6w9TU1kRNm4ifVR9yp3/FMBZXNnor4FykOjOZISowfFGY3wwNWGnbCSa7B 5spkDiqnBFwMwbcTQXo56OEWNAir0hAkUEQD7GUMcZmEWy8ZaQIedN3SHhydfR6X aNar7uHyi0yi19sgq1/Jnu8DLsPio75gSv1h95anIvoGE1YpkTNGemQ6SyGs7rQ5 7QuYXqN6P60cJLC0kwEZ4YbcN1OuZ6iSj31TDVp8EzDCkFm6eMQ0wI6UPpdlymxE gfFAV3oDlj4ZG6pzNw/ZcvQFeqMNgMc0jomZsFlPvW4wfZAVcevVV5ATosYSd PMas2WxPXG7pAwhyRIgyq33/09yJAJUDBRA8a0AVS4eLnPSiKUBAWl9A/9kN3x nxr8iU8sZMef8PpFMUNj4gp5ARDw/Q3Sx7jlGJEyuLGbeH0Zu/mTvpV6vQzcm3NQ EB51WQx8EmizIbtX1PfpyRgKLOXGll0M8D0c5JOdZAAAXYVa6AtFm36rZ9dbM2UM XGNClNt9zXUXK/sufCVC1z6vm87IRJOUhF91YhGBBARAgAGBQI8a0SzAAoJEFIA HJWOCQIj7r8An2XwJ4WHnootgfqCUcIfbr4y70QgAJ9ngcIvPy1q8UKMdLk/Y5Ti V8TlE4hGBBARAgAGBQI8a0UkAAoJEIwyjP8WBtuV9uMAn0BBM8hO1iCUp9UD8bQ3 Ptp3xrC1AJ9BnyVzTVl1x55X71sglUWxtQixIhGBBARAgAGBQI8a0u0AAoJEBj1 A4AkwngCupEAoMzM2E10s/451EDjYkdr1fKo9tV/AKDfSYJ2vOJx7JzciRfj5hQJ v81GIhGBBARAgAGBQI8a0uiAAoJECH5xbz3apv1pQQAoNKsiLOvlXM2GGkzQoY Pz9xDxs/AKDgm87TPdaMYhI2P0AzCTHJenYalYhGBBARAgAGBQI8z063AAoJEM3q yCLsMTu16gsAn2OJb5oK/QYgO0EpREcYF6EVOLegAKCipUzr16GCumxYGj5cEngb 7ZkFfLkBDQQ8RQ4OEAQAu5zqbppTM975ccYXxCUx2OECAdzxoSgsJe3kunbvZOSy i28t4VH154ks8AOlihN5XBgZAR0ohJ7RTe/5l/EV9rZcYTnf75UskLbjifzZP Qxd9zYZ2sUbv9oJnX8ORiphIRKlfVjbe8tqdaexQ382FQwUVcCyc1u2Ye5vffcA AwUEALlq/J7TvHXtjeY4BgKsApAxGzyf4roPuXADurCLoaXrUclUsU3KWOFOToW rxQQYAjz1T/lXSOGVzDCaQf6IVIWBYEVu3ZWTI8/amp37hoLdiiU/x0VWVkgjyfX VTdIdsmnDaoTAVqrJyIubzRcr79SpOEIo5bPlkm/6R/S3iEwEGBECAAwFAjxF Dg4FCQlmAYAACgkQXjRwWofFmQkGSwCdEHZJnes6qzSKL6bXiBr0veCSQNoAn0PD YbCuiDguaEN052KDrSoDvk4S L0S4 - -END PGP PUBLIC KEY BLOCK-- D.3.108. Paul Richards D.3.109. Ollivier Robert BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.4.2 FreeBSD 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 izq3ic4 mgE0 - -END PGP PUBLIC KEY BLOCK-- D.3.110. Guido van Rooij BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQCNAzGeO84AAAEEAKKAY91Na//DXwlUusr9GVESSlVwVP6DyH1wcZXhfN1fyZHq SwhMCEdHYoojQdsVqD1iiZQvv1RLByBgj622PDAPN4Z49HjGs7YbZsUNuQqPPU wRPpP6ty69x1hPKq1sQIB5MS4radpCM4wbZbhxv7l4rP3RWUbNaYutZnzI9AAUR tCZHdWlkbyB2YW4gUm9vaWogPGd1aWRvQGd2ci53aW4udHVlLm5sPokAlQMFEDIE 1nMEJn15jgpJ0QEBW6kEAKqN8XSgzTqfCrxFXT07MlHhfdbKUTNUoboxCGCLNW05 vf1A8F5fdE5i14LiwkldWIzPxWDSa3LfNPCfCZTaCiyGcLyTzVfBHA18MBAOOX6 JiTpdcm22jLGUWBf/aJK3yz/nfbWntd/LRHysIdVp29lP5BFJ9/Lzbb/9LxP1ta iQB1AwUQMgYGsgS4QK9eGvw1AQFKxwMAgFh/hThe6nT9YUONHIdxWNaL8zUx5SEq 7WDCOTYqUCJoXJzwRcIlyHaZOO1OubsnOMyNWpR5PxDEfoXyV58UY1RH4cXiP55e yAgEtWQF6RtAvl7ikZmRxFr3QAVQ3QxmiQCVAwUQMwYdyB9/qQgDWPy9AQFtiAP Ob3Ee5S5j6JcOQ7OkJcFgAJgRkNX3XcyO3IECZpWpihGHkcWKaQZd76sKjvwBq7S Fznt8UxOwmqe5YSpW3cZGrbyFIrUU5nueL39eJsdyY2u3bK6CXeFikKWKOjiesMv U3GJttqaQZb8UZyWNLSOpfPo0NVsbHk6jscEHLEHLOJAJUDBRAyCihxOgN22FUM Xy0BAf1aA/4jgZSy5F/J3R3EziVyA3bFa2MVlYSvTrwm8JTTYgqmTaVpWJ34n tBobYtxKOb2oIe8QGdN1sbU5Nan32oOa44Qo/AUvr0SynANb3CoA6nDsCPNx4z QXxO65mDdnWh2dx66MDAZpOAxX0lndZjhT752ZJbjTOXoXGgV2oSIkAlQMFEDIZ rVY7f8e8znZrHwEBblUEAKbFVE4oEWFo0APTXeWdPmv6FbWacsOWTpYyyT976iX TGuk4nYX3GrYx2xU73ucdXZoxYDF/zEE3fM3//l3HMvz1PpZyjaT3kn9WOGivhP Ch5gRnehs1giG6MhmC0vXt5BpzdOhdgELWi8iRYEO9cEWhrsipkBhcE544im9W iQCVAwUQMfgT3jzeS7QkvFAQEk/wP9H0du7o2mP4evuIJ7ZvLeEw/05S60XC 67B33YahMq8BTr69R69FYHDcODG3Qmi3fCXfbsorhVWzdBX87p0mI38E3lUOGiW 6pcSxdBOL7IKoHInCdQqF4WgWZOknN/mORpaxqyHvm2oWvNfe5RmtQsnBEPBGBnQ GtvzA4ZIDLaJAJUDBRAyEOLXPt3iN6QQUSEBATwQA/9jqu0Nbk154Pn9mJX/YT fYR2UqK/5FKCqgL5Nt/Deg2re0zMD1f8F9Dj6vuAAxq8hnOkIHKlWolMjkRKkzJi mSPEWl3AuHJ31k948J8it4f8kq/o44usIA2KKVMlI63Q/rmNdfWCyiYQEVGcRbTm GTdZIHYCOgV5dOo4ebFqgYkAlQMFEDIIucpYl6t82lyyQQEB5KMD/0dAWjf8yKCW sjcX2hUUWAwbfWVYJuabBqMdrdaqSkDvQRzm0KXGVQ3BN0u2WRmr6q6JSzuWdFL 438rJwS9Dk9gBVvveiMdXCQ/v4S1ZlPO6B7j8bCnRgGjdWcqbeGAH6V3HRlvB oC1B45yAyhxK7pbdFetgfVDyKoMQs7XSiQCVAwUQNYZ89VsBgeyXi/ZpAQHohAQA oM2qlrfjXD30cc6wf7rSermdHLGjDBIHI/kl/jYjXfoxVlPzuQ2gWLBMJJqmIMhA M6go7Ub40tHtmrLWQJKTurcTT4qYhBkFSr1gV4JfyjqEKWWa4LtA0tCwng4XiIx4 QJ1/yj4F6vHMtQQ0p91UQcteLNGqLQ/cYkeXZVTAWqeJAJUDBRA1kcBzZWCprDT5 dUBAXDdA/9OoqwWqtgdykcOm1j7TuBqEiilg4PE7wEq8gADjkpvjkU8hCJWbmT/XMcTckfehyOJYlkcN5U/JHJYMMpu7y4qZwDxq9lvZUghL4cl1B73KbgNcV2drTIh DX5i7fGR4u2CK0dztyuQ3KYBpJT179ERRDw9ZjmCgd3sri/uMz90oIkAlQMFEDGf WDRrWmeNgbKneQEB9DwEAIaVZQHN2TPyjk8sAUofM1ilZUpN6v8xp5O4SZhU4Z5Y R9e9t/lplxPGgDyYvlVzliVBUIMBCyekfI0lNqr5NptVVsmEqkSr3FUUDKk9sI7L NBhNTYIO7TK5ER09IpexNscSG/LzKyMJnZG032KgVIYRp7Fjx2R6uzKANf2/qyuw iQCVAwUQMkRC8Hy3DmMtBSL5AQGP5AP/WMRtEDdMZMHLiYNXquzOd1MvfeylZbE bM9xIqTiRWqHkIMknSxZOGQWtmI1p3HspMnvwS8LcbzGZGxRdkIh7BdTX9WeCr qTevGPjY3yO5eNEAVwwyXloLbYrPTnwWES1lXSjoHN6EOn1YouJNbmdbAfKJNC j7TZALdNAuJAJUDBRAx9vzphNbc3Le3wi0BAXBCA/45ftozyOJdxKYLpVQLpwSc 9bUyyPctpJCwzc2u7nFpaT7zdPzDiM5fgR6YEYGgjOIsSArHTvP52S9cwh/Auv g8WRIPbNxvwqq3DTqbCfObhXeQnZZvpCYXQ0EDmosCv/Z8BHLey8m5o7misCWS fp7GXisg4MR3k3fg2/KNk4kAlQMFEDIEV2eOAs27CVkM/QEBX4D/0GthUuUukWC ht62Gp1gA1Xv4pBVdpcbjNWs5Vm7JpY17ylVhnunFevd50uZRhgI8ZW3dgA8F45Z DYbORy1hZvTxL3jvSY6rTLl1bfDdqcYl/tTy1DfQraYUyFO2H457Oq8mWX8Bh0 nyMTRoubmtkqF4YNLL2mJ8R8V5jrR9uIiQCVAwUQMgYuMpwp8MbstfhAQH/DAP/c/TYArdPFIp2AFpHbYcMix0MlpWvH/Pm/5GBsWvHu8FYVR1VxQ6w0cnj5bUeAF M90iISE7Q1YsTQQqiMeuMsFy0dcR92ofRG3p1D3PgbfRE74fI0DzGGNJY9f8rL wqVD2QbcV1M1Jw8M9Fd1XLUQHNND0gl0kNVqm2vHW4CJAJUDBRAxRRbpFCQLAnT 5k0BAXuBADAbMQ52w/XLiOTHxf0HkzRBuASFVGbQJA5nuBIO877D3dw3iSghnjY 4glmK0UwhsGglszEJPv/jDpnZCOjppfgCLqyS6B3Hh0vYz9Ys3T3zdo5HXiUgbI sbp20FrVBJUoDkEOIheZKsAYcbTnxD/y/ULKMnUTEdcgeljwR1YkAlQMFEDIZ N6v719yl27XQEBRkQEAJcjgLLAOai5PlqZOeAp8ffOhERJ7YKyfTxdwGDZoLrT 8B364JwdhwgaWWmlfsHko0wwWp9BKYju6QLGfu1JmiDyarUD2q9WWw62hk1Tns yK0TjCmrADvi8tNaRwUGQRJVyuoltKusmSCqs48RSLQxOmYk7KVcD8F4WOgG6y iQCVAwUQMZ47zrNaYutZnzI9AQEQQgP/Z88RStJfdiSPlMk8Vn0w1fSUSjsAdiOc mARs0jiliboLccyWxh8JJAMe5eZFAcA5ZJ3A4u8KQ0Xx4NoXczq7S6uB5Un4pVS dPPb4tmhmzXZdJkoK17QfGNu8lYxNOtjKKYZ7Mfv0KaANWOwdpg7HcRcXSecOa1 e6saKgSZbUmJAJUDBRAyGYL01ocrpT8NmN0BAd7iBACc/G/qpW6OwxgKmXqPV5qk eQKCl1NgiTIatm5avRd4hwhgLcPJ1K7zHCpOAGOAQC8MLGnJnxJVAdsiZjgkqy ZTHez5sHUiVjJpuk/yaaODT2g0OpYCkSIo7/0uagg1SnknvWWIgMr/TNdHE3SIJ/wipVc5wLNWE6r3orQTmz4kAlQMFEDGe9eHcgPKm1TJ8uQEBhMMD/iYQqUg/8RRf ZmbGCt38lAGGpxCWROsEBoM6c6p7/ih7AwpHvJoynO1iEmz3uLTdW7dCguEOykT nmigR4ePSvhw52JZ9gOyNIVRhI81WFbg5Ku4wDdzb3Kcyo0cPuGmvetwI9SLsnZG dyhw5wKOMrYFBv/0gBQ14rgL2A/EwRkuiQCVAwUQMgJKVfKmgBGt1kwZAQEX0AQA vkt5G7pRADd0iO/wPgP3bZfQ32Xs0/QuEkQRrJdnJUBTBiF5jEP75S16ykO1Ns 1W4DX1PLJsOYdrwSCn9T8nsUpnN5s/SWOHq/CnmaXHh9K0pB5fone0xdBr7k3T TxTvIXPRJ/hhukBzqm5AeDUWenMLX8FDIZNhR1wZ4xe0H0d1aWRvIHZhbiBSb29p aiA8Z3VpZG9AZ3ZyLm9yZz6JAJUDBRA0FbDyH3pCANY/L0BAcaEBACWu8AG7JrW rw1fl68fcGmSS40OXhOsEDICXDGsjNxFXQojPqTSZYuJ4u1e8MNOTxsfd3y10r vztszJvFy8mA1zaFrELqzGR/mNeOLSqycSxzJ8mBV8jLqb3ikirOz4uB9EsZBu6 GrtvgKmusULDg6ZvQruIJ8q8ODSYE/04uYkAlQMFEDQWoDw7f8e8znZrHwEB4cD/05quZRK3E/eCkeHl3oCUJ0TAar995WS3gxloPM6vj/taeuAeRggVLm1Dq9MqmS hFhgVwdluiH9uz2loK8Tlv0Sgx8fEMPCHFjBqVlb8pIJDRQ6WufUDZ1OPNI308J 0k95K/LeYs8gvH1/zSIMmeyr5lVCtZSNU8Y05iji1brAiQCVAwUQNBWssLNaYutZ nzI9AQGp3QPOKSZpVgmBY7Z6IkQq52t1U4gTEYBgOmTA3ZdlrOo2ACURLago 4W8BMA0rPyhGRpAWH4OH5wTX31nBnYuUeXz/CKQckiVdQA4PN61Seh2Y7msi6V47 2kucNt30ofsWrrSBlh5yUiQXMx7kIU6Ampvwp7IILjSBOlJfcE7tGJAJUDBRA0 Muok3IDyptUyfLkBAT5fA/4rMfz2D2WYm7ujXquY7MheTVQ0cjxxZoQXge0209d fwwqZDnxqKWnrfl1FIwCrL4NLvwOkyMXxXhQKf5CY7HeiAt/O9L7FidGYnDHD Y7py9q5226n8HdxgCYAZGF/k4/rbYvdI49FAJNnwTAi7psi1EpQo1raruE4yVmqn EZkBogQ59zBkEQQA4jWzhgsNeyX9UkgZerRQdJZ3OOuCsOHIdR5Vf2fIMCgJ25zN 51jCuxbg49TVAowcvi2ajVKRqtYFmBw8SLT/a5untxWsXH5EmPq3SADeZaHMRRrt TD3TA5zFoFqr2H2ZJBxym7DehVhKqee5ScGwxdplWakSQ9m5yndYHLNaPj8AoNCT CXyS6KIVHjSpcxpT8Zjjwtt1A/97HBr224IZ2So2tFbPNVMRVwKt/U7JlVCsOjo 3xF9GUSreDT4LGrm8Y67kpAAcoRKvE0NKGG1xWchmmNGF7U79XUfHWAmFz1t 6OGmZkUIZSaHCWda9VUT9h61iU39PMhXV8ee/M2tK4wF/L/cl1LfaSHWsLKFgx38 HvHH2AQA2YsTtaYpNF0jSxKxmATiMH9sjgNlz/JFijibQoj/jtyUdfHfoPx/DA NCXpi1CCKmbeT14Q9n1mc2msa0tT1qJqj0S2Mm2gH4SxO3rXj4Zb/cnPrAxZZyxY FjkqBoeSEEdLxJwb0HUZ7gOsaPqqz0lJyMuW7t3IoGsjwEzO0Kkd1aWRvIHZh biBSb29paiA8Z3VpZG9AbWFkaXNvbi1ndXJraGEuY29tPohXBBMRAgAXBQI59zBk BQsHCgMEAxUDAgMWAgECF4AACgkQJHERf6lRAsFl7gCfWqmRNrZDTMunpsdSLD1i rohDJjIAoICakbblQ3jlSkPgiTZOe3L7yv1tClHdWlkbyB2YW4gUm9vaWogPGd1 aWRvQG1hZGlzb24tZ3Vya2hhLm5sPohXBBMRAgAXBQI59zC2BQsHCgMEAxUDAgMW AgECF4AACgkQJHERf6lRAsEhwQCeI/mR3pH7oMN59R6hTiIGjNt7X0kAnjVUZFiM iYWkf5LeymkDrxWy5t/3uQENBDn3MGwQBAC46iYEw3jtA6oWtCDVfNcR74eDT9W JCJ2vxJD6bN35fDXYjzXk6uyvX5Z0ag0yjKqbqsa/bPOuTTIeoxK/3zr/jhx2L3 dFY88uK/Dit7FY7NM2jDoETXZoJbZuNf3eiTWmI0JrSUBMHXJdTuBO0LfAY65tR OqzFwCgztqF2NwADBQP/TDM25v5c0njS8NMofBsun5dtywOHjmbMedDgaZRGsa4 P4/owb9jUBjk7GOtlL2edUSKBNuWYbKjDkW2134W6rbKDZYlnkXQ8Z64XIm5STB zfUEiu0sEFB8Cfe4oX8kHXa6kv11NOzK9qSv4zxmJTI3CMABi9fOu3R4F2XsuNGI RgQYEQIABgUCOfcwbAAKCRAkcRF/qVECwUUEAKCElDCyXmWq1T82/oT3eFk4WeFs jwCgnbjBLoAgqu7BiWMBVe9sCLfMY qL8T - -END PGP PUBLIC KEY BLOCK-- D.3.111. Niklas Saers D.3.112. Mark Santcroos D.3.113. Hiroki Sato D.3.114. Wolfram Schneider BEGIN PGP PUBLIC KEY BLOCK-- Version: 2.6.3ia mQCNAzPsaEAAAEEAJqqMm2I9CxWMuHDvuVO/uh0QT0az5ByOktwYLxGXQmqPG1G Q3hVuHWYs5Vfm/ARU9CRcVHFyqGQ3LepoRhDHkJcASHan7ptdFsz7xk1iNNEoe0 vE2rns38HIbiyQ/2OZd4XsyhFOFtExNoBuyDyNoe3HbHVBQT7TmN/mkrcYGtAAUR tCVXb2xmcmFtIFNjaG5laWRlciA8d29zY2hARnJlZUJTRC5vcmciQCVAwUQNxnH AzmN/mkrcYGtAQF5vgP/SLOiI4AwuPHGwUFkwWPRtRzYSySXqwaPCop5mVak27wk pCxGdzoJO2UgcE812Jt92Qas91yTT0gsSvOVNATaf0TM3KnKg5ZXT1QIzYevWtuv 2ovAG4au3lwiFPDJstnNAPcgLF3OPni5RCUqBjpZFhb/8YDfWYsMcyn4IEaJKre0 JFdvbGZyYW0gU2NobmVpZGVyIDxzY2huZWlkZXJAemliLmRlPokAlQMFEDcZxu85 jf5pK3GBrQEBCRgD/jPj1Ogx4O769soiguL1XEHcxhqtrpKZkKwxmDLRa0kJFwLp bBJ3Qz3vwaB7n5gQU0JiL1B2M7IxVeHbiIV5pKp7FD248smHZvBg6aSnCg2JPUh sHd1tK5X4SB5cjFt3Cj0LIN9/c9EUxm3SoML9bovmze60DckErrRNOuTk1IntCJX b2xmcmFtIFNjaG5laWRlciA8d29zY2hAYXBmZWwuZGUiQEVAwUQNmfWXAjJLLJO sC7dAQEASAgAnE4g2fwMmFkQy17ATivljEaDZN/m0GdXHctdZ8CaPrWk/9/PTNK U6xCewqIKVwtqxVBMU1VpXUhWXfANWCB7a07D2GrlB9JwO5NMFJ6g0WI/GCUXjC xb3NTkNsvppL8Rdgc8wc4f23GG4CXVggdTD2oUjUH5Bl7afgOT4xLPAqePhS7hFB UnMsbA94OfxPtHe5oqyaXt6cXH/SgphRhzPPZq0yjg0EfzfHVamvZ6Xl2aLZmSv Cc/rb0ShYDYi39ly9OPPiBPGbSVw2Gg804qx3XAKiTFkLsbYQnRt7WuCPsOVjFkf CbQS31TaclOyzenZdCAezubGIcrJAKZjMIkAlQMFEDPsaE5jf5pK3GBrQEBlIAD/3CRq6P0m1fi9fbPxnptuipnoFB/m3yF6IdhM8kSe4XlXcm7tS60gxQKZgBO3bDA 5QANcHdl41Vg95yBAZepPie6iQeAAoylRrONeIy6XShjx3S0WKmA4C8kBTLvwa UqF9YJ1qesZQtsXlkWp/Z7N12RkueVAVQ7wRPwfnz6E3tC5Xb2xmcmFtIFNjaG5l aWRlciA8d29zY2hAcGFua2UuZGUuZnJlZWJzZC5vcmciQCVAwUQNxnEqTmN/mkr cYGtAQFnpQP9EpRZdG6oYN7d5abvIMN82Z9x71a4QBERR62mU47wqdRG2b6jMMh 3k07b2oiprVuPhRw/GEPPQevb6RRT6SD9CPYAGfK3MDE8ZkMj4d7cZDRJQ35sxv gAzQwuA9l7kS0mt5jFRPcEg5/KpuyehRLckjx8jpEM7cEJDHXhBIuVg 3V1R - -END PGP PUBLIC KEY BLOCK-- D.3.115. David Schultz D.3.116. Jens Schweikhardt BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDxUIHoRBACGAbIspofa2HTwV0Y81ZgrizVgvsHduKRMYmu9scX6eFSQWC2a JLXXnMJMK97LG2m6qX/hzjxZKU/n2eNpHa3h9zLYQ/8VdNAFHGZtgmZ7xe7UpBI V2YohykdmgKqg8WuVQGrNTwbkaAFeLnG3yXhR83qukRvvqFfXbEF1S2wCg6lLg YJ6U4J1pfTO95Rd4hw5v6DsD/0hUfa6C6C6xjME6P7r/ORd91nJsfO0pcV1rK0s yCMdAy/zdUlKpsNF9vS0qhCFonuOHWxMEe7D8L80oUAwlk4RrFBmCh7RoBGYGru aEom/7JGNoRqUD2CKbFnkAYi9HP6XlXcpgm3GO4c4VtIcEbgywjw7rNhmNoYLrZV YUb0A/9mNCqpPTd8ngm7kPyTTMJitYEVaBPXEdiPueYJNDeI9AQkcqYhs6LWq4c jgmTNeImQkR1UeDj3dOwUDqhGmLPN60nDQ2oHHBif8NJOu47mx1dgdriM9FsTN 3UbeSvemY8Z8zcPIYKl2UJLPZckWgq4pZRrE147cnKHSHHM9LQtSmVucyBTY2h3 ZWlraGFyZHQgPHNjaHdlaWtoQHNjaHdlaWtoYXJkdC5uZXQiF0EExECAB0FAjxU IHoFCQWjmoAFCwcKAwQDFQMCAxYCAQIXgAAKCRAW/uozD/Ix/ZB8AJ989jyDH1G2 T1KMoNd7gPk9tAw1VACfXJgkrI42ShC4cHz37xrVLXeJp9i0KEplbnMgU2Nod2Vp a2hhcmR0IDxzY2h3ZWlraEBGcmVlQlNELm9yZz6IXQQTEQIAHQUCPFQ0AUJBaOa gAULBwoDBAMVAwIDFgIBAheAAAoJEBb6jMP8jH9PYAoM72fnNwxxcDjb3Mv3A CfbHonYCAJ9lfK9fIbkgfAHo2kwnOEN4yWxzLkBDQQ8VCB/EAQAzzIqOgms7ue UKampP/5U9G78HA3GIkVLcAeq5FfpFtls4NmSKz240zNxXmABWTSlBmOQvMdhB08 vRbzEsxPoVdNaFQvRZYEr52bOM1pnHqYYMyUKwN83LXgTDnXxas4mtrkgngZTe tGdFQ3PIVqW4jV0MmnEmaqde0nMJ6XsAAwUD/2z82PDDwFBu1Ogogh63qE69HSQt 8weHXSkmi75jE3r2niUlx6B0IfLXzFqP33vyrsov7QHgAuOjNficisbC73o3gjp voJ2RYB2IfUCgeFvipLpqY1TWJ3bF52TYnJg4rrEWd5OWs4FB0iaJ78LVWgq3WsN zfgcgfQ38dscJu4iEwEGBECAAwFAjxUIH8FCQWjmoAACgkQFv7qMw/yMf1PIwCg nSP0iq9jhEf9T5xA0qg2yYB/IAnjvd/tA2/5bP4pObE/oRNjIVZBZ YPu9 - -END PGP PUBLIC KEY BLOCK-- D.3.117. Gregory Neil Shapiro BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see 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 LsOLmQ GprF - -END PGP PUBLIC KEY BLOCK-- D.3.118. Arun Sharma D.3.119. Vanilla I. Shu pub 1024D/ACE75853 2001-11-20 Vanilla I. Shu Key fingerprint 290F 9DB8 42A3 6257 5D9A 5585 B25A 909E ACE7 5853 sub 1024g/CE695D0E 2001-11-20 BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDv5ys0RBACm/dkRFFWNFb6pafzsHX3YHfyYBQAhyoT5ZPvvh7e6RdHYdxYc tYjgtOid4jL20Uz7kXYwT5OVYo/l9j/AqknacYoboO5AHcJrfO3QjfztJaorUSqv w9dv6DSOQWwTmexeshp6v5aEsOpDbfPtUnFBwcJe5lOBsokk2CqkzI/XqwCgv49G uNLbdtIN87CrUwyiLG5nsSED/35/A/9b/KNwjBoBbheCJDByHNPd9svQIpVWTuk5 i5RKVQQET4ZD5tPQWPnSZ95ztkkwcjjOakesHK85yTYXXjrfcP7JiE3HIZhyj3S dxWaOFEbSE3Xc0BT8BOAPFfb2WMSdCQFowkRqbMiFudLnz4tZnBmTQcuxqp4G7S AFh8A/4jBhhkKaw0KeWtkFKugVgUWZNWZ54aJhUaLg5wGbSTNME74YLO0XcwkjY id3gG5ayJyecZXCMUf175/ZaSPeNRCBOfMjDnl3G05b/huBFUnXzxTkWCcmopOwW 5tz4C69UVP1UHg4XMuf6D48srIaFuDOMTwniL95vqcGkCUJrQkVmFuaWxsYSBJ LiBTaHUgPHZhbmlsbGFARnJlZUJTRC5vcmciFcEExECABcFAjv5ys0FCwcKAwQD FQMCAxYCAQIXgAAKCRCyWpCerOdYU/oHAJ4kKjpX6iMF1Y0FjPMyFiyUlgjT7ACf a3czQMrflxJC/VNuzMAmzA19j3y5AQ0EO/nKzRAEALHq1lBY0OBQBeV7sGOvTaBN itMZeVDrGDYUQ9xunaDsEHfz2fD3jXCZLaUayv4LZeWzRr4DbnK4F0AmZLR1v5h3 LxBuvqHPRma5RyyFRftwTNHMDWu6TSqnE43QS7Ciz8ua96CmcDaPnEfubyNLE dco8gfE4oHDqni1R2qVfAAMFA/4uVSYj/DvIzckbZ05FjGpg4HKsyxyFeFsrm9D 8JD9tC26k4YxLG5FPBdKRsDrN/lZbnLWHTtZqhE3WlX6DRlea93T9Vi2skbujKcN mbao5pyVXWl1dboFquP8ku91CRTZvmdLF6IBnPo0LfOu4jD6DsD5O0UZ7lD/Y6p 8WcDfohGBBgRAgAGBQI7crNAAoJELJakJ6s51hTsJUAoIB80SN0z90ocSdxYGwl xkOSm2cvAJ93DigXb3moOsw3BRLlLPQRS6TZxg aR5H - -END PGP PUBLIC KEY BLOCK-- D.3.120. Christopher Shumway BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDsDZMARBACAhNya3wnw46CweXc2PKvIQythRjNsyDl17SNCwfzXc7Pvazz/MvM7W9YdrC/PbuALNkj6KZL65yZIH/gVkQtR7GzeSmsz1sAWGQsXXgXsFQ4mSEQ U1lVgLa4yn88kv9L1oIdrMZ2ymUtnCqCd/7U7tPk13abQk7OmxRHppMwCg8119 tIQEJg5orrjOxGO2L2008CUD/1j7qKoOFDQp3dIwJXwnxdA4Bal2ujh5mPkWZQU fpvxbWtyc8V56KqDWJgo/T6DuJt4B7aR/tCr8VtsvI0SZ2LmG3xzvLD3Hn2qQvdi U7qxgqKdrgfzCeh1DItNhcWSQCAVjYRbS/Tof/6Mr10QnHAwBng3tx0Fw1JnKA 69uNA/9PZm1H4crVrA1pWyTgujAcZpb25mnmZjTsRmcwtVOho9RTTs2nu2QyH4 IkVG5q1GPqkUBqzQIB5r468Y1md92C8cBiC27cASyHFbpR0iXvoTnQXMKqZpiS bZGG7ZJmAJBLus737FRc6ZvkdZR/Xax2Bk5r6sOqprkiY7oox7QwQ2hyaXN0b3Bo ZXIgU2h1bXdheSA8Y3NodW13YXlAdGl0YW4tcHJvamVjdC5vcmciQCVAwUQO4as s2Vgqaw0fnVAQE5mQP9F0oI5EMKV3vqRfrRDJdUtg3rZCxBMeGkOcO0ndniVfMb DUOEqhkU7BDKV0jfu8VKHcJNdUnUWAO43kxW3aFbOuK3b4NuVM9dLptp3KoOWD dN9SkSDHBbul6aRk8JxaMvTyM5X0iLmxIPJvRfrr52W1omxBSjiNKLxrnF0qLZaI VwQTEQIAFwUCOwNkwAULBwoDBAMVAwIDFgIBAheAAAoJEGwpNA4yGfmCht4AoMUH U/JOWNyuucJBOp7x5MtJ8igmAJ9fwiHZMwPAFjUsw6goX5VycMtVtIhGBBARAgAG BQI7hnYDAAoJEMiT/MUn0FXbIsIAnRpbRbcYKngcj/O5bW01leCzKcAJ9SUNdu mMHocPtPTVgFnvcIgFlzW7QqQ2hyaXN0b3BoZXIgU2h1bXdheSA8Y3NodW13YXlA ZnJlZWJzZC5vcmciQCVAwUQO4asvGVgqaw0fnVAQH67AP9FsnB5eujdETjbO6 vCgmRDqoyKDdDHp9Vd0VQBNA3sAzqyWEyJONnKKhkHvloUoqZn3fCCBXG8V5bNUb PIRvwZLHAWMYJ0xQpPYWdaBK//mA4ajy2kKutZxjjsyyvlYhJFR3nbS9fcEdXuT zPGJ9Cz/KeBy1dp17JpRosKcrVyIVwQTEQIAFwUCOwNqlgULBwoDBAMVAwIDFgIB AheAAAoJEGwpNA4yGfmCmg8AoMqpkDtVgFF8NfsjeSRPWdLjsFHbAKDRdvt4XNOh l8Rzwf1FZIFzNw8Wn4hGBBARAgAGBQI7hnYFAAoJEMiT/MUn0FXbuPsAn3FXTbjM Enl80lkp0pDR/vFTIIcfAJ9P83pLohiqVjGtqplcuaG2p0pH3rkBDQQ7A2TFEAQA 96F7sthP9d1DPEejGQu2taZv5OPzESvrpcUIFWDm8jecpxEUx75GLx39IWfm1Mjp nY0Dx/i/bDSVbOmDRycYZqVl3C2GidJmidhUgnBSZsRBvO3VBWUJlkhRSWmeHXe PE4wAcfwrirHSbViHCVRpsObfwcv8Nf44Kda8O0gW78AAwUEALtvTQzTQQbtMaUo cpxcCwoWk1QqIN4POR6l5nz7RnP2RYcWjSsrLokc8dInMk7qrq4SVjFUp5qjN42 LGRTXBLFIKj5u8p3SUXpSRdZu2u4po1LlPsZ8wxS2EWJza8sealwMAS8mPppqAfe mnAjoMco7bR/zW0ALHcIbOGl7N89iEYEGBECAAYFAjsDZMUACgkQbCk0DjIZYKp FQCfeCdSynq2Pn6zanYqJnOU5L1b3MAoJbvh2e9jR/i4oXPgGsv0UQu/r3h NDqN - -END PGP PUBLIC KEY BLOCK-- D.3.121. Dmitry Sivachenko pub 1024D/13D5DF80 2002-03-18 Dmitry Sivachenko Key fingerprint 72A9 12C9 BB02 46D4 4B13 E5FE 1194 9963 13D5 DF80 uid Dmitry S. Sivachenko sub 1024g/060F6DBD 2002-03-18 BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDyVYkARBAC2Z/8odq3zwRIQZ9XOF4ZoQ8ITJRrTUwwYjwOf4Kz6gTHzIGt Q57m5w1Scse3J/fDdIZzw0gJgH0XRpKOonWi23di4B3Oyvrdr1Zm6OlqUjoty8CC 7jo5WlLF/05Vai2HCUmFeqiukCN0mfm3Fd8Shf1IpE1gaIxCKNvYaf14wCgpoVG TqilIMCktV/vxUf3h7KgOsD/3nBeANz3UIzr9g/AsF/FnHXeawl2m7USaIB7b1 4CFrQp8FDl6TCAtPHQyQ6pdnh0HZ3h7cfPB1poRaXUvDimQZR9KHZO9uIilpC2n MdBjbkXmvVQ5FhOJz49cXw51Lck11n/OuP4N4TcIHdt0DQJoUrGIB6X6Op9aOrP Ob70A/sFsFfebYdfH8loLsJkHU8VbB2Y0KZBXSnhysQ9muvj1HqTn66o/3SliCE R3cNVMgg51pqxzUC0o6qTVKJbfOrI5b2tbYjvx87ejugQwafhKu8t1liDuUYQK0Q S549pzLKUr/NUvJaYU//6QlFIPNSzwB6x4wjrWAKBv6Vnx0c7QoRG1pdHJ5IFMu IFNpdmFjaGVua28gPGRlbW9uQEZyZWVCU0Qub3JnPohXBBMRAgAXBQI8lWJABQsH CgMEAxUDAgMWAgECF4AACgkQEZSZYxPV34DFVgCfREoIUfpKaEeGyzl0zKThVC7J XccAnjiB85SwuNAxMraQuGDJXojukUfwtCVEbWl0cnkgU2l2YWNoZW5rbyA8bWl0 eWFAY2F2aWEucHAucnUiFcEExECABcFAjyVY4cFCwcKAwQDFQMCAxYCAQIXgAAK CRARlJljE9XfgA6GAJ9RFwXlNqYap2SI14IPRjX9ZAzvjACeOC/Elh0HkwQ2HZMT edpgzOuknUK5AQ0EPJViRRAEAO4VdFfYGd/amgG2MDGqD269Kb5vTFbS5mDczgjM 6gXZgOjhbvj3x2auoPfos6M/bOtHuIk7QFOeOEJ1wcg8wgE3L3kFQPeEPeOgKBk/eA1ExIW3hiPeuwNxT3iWEv0GF/rvCSeSK3nuuDBNmkSpJ4LHIyO8Kf5YJNp86D yJ8rAAMFA/4jaulRHxSsWlFIm3gpBR9aiXGGX1pZTuJpXqjAQcRzDa9cuVatiSJS H9wzfE8R4353s5HpaY3AkVRjY6s9AB8bygGdUCQjuIuifTS4tG/wmaXNgyqBqaB 6V9gTgfW/7XqcJUGeLLMUpccSRZhlQvHd18aTfPWPB49xu2arw6P4hGBBgRAgAG BQI8lWJFAAoJEBGUmWMT1dAYlgAoKZWZs7rDLdQbn2d0CVwmWb6hQLhAJ9E/r8N n3jf2PI8Psl2wtgvWazpaA mkxU - -END PGP PUBLIC KEY BLOCK-- D.3.122. Jesper Skriver BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see 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 Crfzumk Ru0 - -END PGP PUBLIC KEY BLOCK-- D.3.123. Ville Skytt BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.7 GNU/Linux mQGiBDywu5YRBACKxY/5WzdUtpL2aK2Yy/Yde2spYiEP2vKj3bsovV7a9129lki ldCu8PhoJOx96AwbrR/T5FlXyQrInMa9U5os/8/HQjTXtY/oeqUNDNFZrnMR Gu0zYICbzgd1rW/tnZJBkB3X2Ao6k0hSATGmP5/sowT7EBSdaM7ZhhqOywCg5A5n J7062MfzdS/3KoSnUtex8D/2BN/BMLvrItQBUjy0tn8VsomxFHbFKOm1cuOeq smhsOmsANwIafiZnK4SnQlVbXJLM6exNTqSimH93y7Q9BX7hmWYl0XVpUui0mBR UrVG00PEa0jTLasOkvlyYBS1En4gZ5J2ArE2cYFPkv7jndqJ/pAAZkGtQnXJ8l5 g0SLA/4tJHLJ6kPad98V3cVbTfhY2Dn/iQbHvzBbBjbETLEUdqOKzADGrWoJeE fADfxYi24wHkpH3U781p4SldZpOUvkyYj7YmjqZP0AH6SsKI3i52z1BDQF49gRcD uc0sSmv57yvjKCk1Cehen4/qaVcqXWTZ5NfyGbhbHLtA2FxSrQjVmlsbGUgU2t5 dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT6IWgQTEQIAGgULBwoDBAMVAwIDFgIB AheAAhkBBQI8sLuXAAoJENmM1jW80kHL8KkAn1yTiwsMLq9GsqA44hkh1Sk0etM/AJ9BiDSqgX0S/wzyXAqfYcsmxS96qbQnVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5 dHRhQHhlbWFjcy5vcmciFcEExECABcFAj0dWzwFCwcKAwQDFQMCAxYCAQIXgAAK CRDZjNY1vNJBywFtAJ9NCVHRa6GxtfTxae6ZkTh08xQZQCfcGNMwhcSGJUyjKI2 eYucgrkwp2C0IFZpbGxlIFNreXR0w6QgPHNjb3BARnJlZUJTRC5vcmciFwEExEC ABwFAj0di4oCGwMECwcDAgMVAgMDFgIBAh4BAheAAAoJENmM1jW80kHLzoYAoLqR 3undsO73Z3EppJna4gECkQ0AJ0Uye7ZXLMTJo7pNmZSBSz6bA/qFLkCDQQ8sLvS EAgAinenfe1g5Cdp8bf72idBePq0zHyPUOpCuFGkiKXecXpgQUHCVYM8IiafB1M Or9V97vy1H56srHaBsC75mpuPC7lnltoYzq0zIkNbi20p/546W7A5MV66xtTx D6uUSyZ3jksAaVch6yQNNxr3CDWiNSjomkK1ExPsjaPAA82L4yExAJJGwUYAPOS B1Gw6N3dUtoNuQwJdcw8fjsaRektXsHm6Nnm3gB0YJ4/x3gcvxlNlONHNp5vdW msQAJtWj4isSMfqi6Y4SQsw2MWOKrYr8Ltm4cQC6/VZXafTR/TrDZCqYhwovyX vgLMdKfxTZLqsyZwgWDxFKOEewADBQf8CCEh65lRfWQG3MopboOs2fFp3BsfVMvA stV5AYktLHvwGXTW0rx7sCdb3kBtKjiuNFob3gis2Nd05NUxFrzrZsyaktyDiZmT gjmEL1LvodDg/mXLRQgl3QDzUL1nlfFQRkcKqlDfCYezbgYFxCy4EGsC86cf8s8F ZI0hyXXYzirxJ/w4KBtLcY5LJExh0FyPfNnLtXUthRuN9wxZwVyQ9I4RTlkv ybb8VTWEgzkIf5BiDZalvcOJNAujptlgz2cLnV4Kzu55Xy7jOi5YfYjMbSDa6W5c vO/wbcAG3gwZOoeHBRjwTNkn4iBkDPq71o1LDDxHvWUVAOjU3TrZYhGBBgRAgAG BQI8sLvSAAoJENmM1jW80kHL1RMAoNsmDIuxlUf3YwjAr/fSqBOKWgN0AKDc0CBV uZAqlAL0tDv8Fiz3HvICMQ mEvy - -END PGP PUBLIC KEY BLOCK-- D.3.124. Ken Smith D.3.125. Ben Smithurst BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDtMtwMRBADrWbrHZdss5Nlj/VpLW92lUpmYdmw5l2wYRtTTeHXrfvUkpX dJ0l1bSC829hokrlQiJZJdiPqu0fGnhxXoeA5QMvrtjMAG8EMRSLIUaay08SLeJ NhQR/ymiLFmh5ZyzXyGqhZj7/xw3ynHLQ/KHPhRJpAs9ef0x0rgMZxJQwCg00Y2 8eIQKg3mikkLllnK7OHgMYED/jEhj6G2BLjKc/QliKn7KZZ2Ev4MMKUj36LPgzqH VTEhliqbRylW/nCFWhMyxbqzRjR0t6ng3PJYlSltcwwJheySHRogxV/gUvYMwQau WKkyFZfiO8/OBZkbuQotLI4tU2cQFzBTuFIogh3Eg6PRDKUFx6g1AlbloFgmimX mdHABADTVFYFKHY9YuUTfpD0S0uLFQrtj3xyZGfA4tjXtc1xCgSmkxIVUoTzg09u EtcEvo8FzmmH5JQQV7cM8TTZutSFcHuCftwbhoMH562YkbuY160TCDHB9xc7hzk3 uzij7HKskm0b6QmMCI6LAYHhAuTk1IKY03DwLBIgEX8g68wyBbQjQmVuIFNtaXRo dXJzdCA8YmVuQHZpbm9zeXN0ZW1zLmNvbT6IVwQTEQIAFwUCO0y3AwULBwoDBAMV AwIDFgIBAheAAAoJEGz8yfss70Qsc6oAn2Kxzsk/d1GDM4VssT3U3jaHDX5FAJ9l jFv088oFIgnhUiBOmoPEcwnozrQhQmVuIFNtaXRodXJzdCA8YmVuQHNtaXRodXJz dC5vcmciFcEExECABcFAjtMvDsFCwcKAwQDFQMCAxYCAQIXgAAKCRBs/Mn7LO9E LEV6AKClm5AuE0PobuyUVri0ZPT4Qzn/SwCfUO4Q/dz2kXJfcoisvIdboVWsz60 H0JlbiBTbWl0aHVyc3QgPGJlbkBGcmVlQlNELm9yZz6IVwQTEQIAFwUCO0y8XgUL BwoDBAMVAwIDFgIBAheAAAoJEGz8yfss70QsqkIAn3CdGD3kdBP8cNCWB/mmdlJJ 2Ba5AJsGjmI0RadewxQuNIGxPuwfuhqSrQnQmVuIFNtaXRodXJzdCA8Y3N4YmNz QGNvbXAubGVlZHMuYWMudWsiFcEExECABcFAjtMv/4FCwcKAwQDFQMCAxYCAQIX gAAKCRBs/Mn7LO9ELCM3AJsF3zHJhMdP7zGhP1Sbwh0vOA8WYQCgxONfpOQhAWu/WwnZZnwNjUcnbh0KEJlbiBTbWl0aHVyc3QgPGJlbkBzY2llbnRpYS5kZW1vbi5j by51az6IVwQTEQIAFwUCO0zAYQULBwoDBAMVAwIDFgIBAheAAAoJEGz8yfss70Qs txUAoKltbmA6D5e4f43LWOOqfv6P/jOAJ0eUczvTczRuBzg7fs0MsrtYtteLQd QmVuIFNtaXRodXJzdCA8YmVuQExTUmZtLmNvbT6IVwQTEQIAFwUCO0zAkgULBwoD BAMVAwIDFgIBAheAAAoJEGz8yfss70Qs57MAoK3vUyOUBVsEoHitX5eXJDos2JnX AKC4pG7X9x0EziSKSi/SFmRRNhx267kBDQQ7TLcHEAQAoByKPA5d5RrBOmmVb6cA 5T0sQvYBsgHpn5INcPr4/B3pAXROzuSveIh1yg6f5poE4LhxQ0Yva0sCPVI3WPU YDpOSu4l0BikO26sQ1WdGYpRiTxuFaqzKLapIiDOz1lpY4o5yChEKtJw6t94Hckr Ss6dPH9uE4hoaWxdbvquTrMAAwUD/RrkuvBBqAjN7flRrnNuQA04j8Oc5/znRiHQ Ojq8i0w7t1qrT5zCNbd1S4Avo8hc5G6ap9nv5KA3G9TKsgBQjcCB038k/k0pzRg JZhIOVBXpbPb8ZahMk7Tdm7nGgILJzfW0cg2AwToKpEcxEVrhdtTjc11/J4qwBO 07lDXfYgiEYEGBECAAYFAjtMtwcACgkQbPzJyzvRCzdZwCZAXcRSox3VdhHpoJV FlnCmFbg4FAAmgPfaRZc9BE1SF825LsiKDAvUzs D508 - -END PGP PUBLIC KEY BLOCK-- D.3.126. Dag-Erling C. Sm rgrav D.3.127. Maxim Sobolev pub 1024D/888205AF 2001-11-21 Maxim Sobolev Key fingerprint 85C9 DCB0 6828 087C C977 3034 A0DB B9B7 8882 05AF uid Maxim Sobolev uid Maxim Sobolev uid Maxim Sobolev pub 1024D/468EE6D8 2003-03-21 Maxim Sobolev Key fingerprint 711B D315 3360 A58F 9A0E 89DB 6D40 2558 468E E6D8 uid Maxim Sobolev uid Maxim Sobolev uid Maxim Sobolev pub 1024D/6BEC980A 2004-02-13 Maxim Sobolev Key fingerprint 09D5 47B4 8D23 626F B643 76EB DFEE 3794 6BEC 980A uid Maxim Sobolev uid Maksym Sobolyev Its how they call me in official documents. Pretty uid Maksym Sobolyev Its how they call me in official documents. Pretty sub 2048g/16D049AB 2004-02-13 expires: 2005-02-12 D.3.128. Daniel C. Sobral pub 1024R/488A2DD5 2000-06-07 Daniel C. Sobral Key fingerprint AF 90 A6 A2 B5 8D 6C 28 37 F3 F4 47 8B 31 47 DF uid Daniel C. Sobral BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQCNAzktBAAAAEEAK5EJZPGnimL5cl9lFRpl3mYboOuN6K/ne/2oHt5CNlhBTuU 64VDPcBsM6haKJwSCdiO191AHnbpJSmIzNmL1VLHZunbZhJms2rf388pXO6nyu3 GW7x2nmqg5qTTkVZAILcuqb8DF4ODF8FEwwCzDJ4ikhSxgXbsTN8YkBIii3VAAUR tCJEYW5pZWwgQy4gU29icmFsIDxkY3NAZnJlZWJzZC5vcmciQCVAwUQOT60EDN8 YkBIii3VAQH1AQPL27NSLH7LAG4M6GMaMVaI4GkLroqWVumwggYI0UsrBazSYhI t2fULDSnbhXGYUnmMYc8GcS2m7KIp6getBSXWXPYr44aOwC2r3mB4WmUp4gWsqd 80C5Zc35m62xpkg/yb59UMI/OWTGdU9tVVS1YTdaarLGlyJ6EWM7qECiVSJAJUD BRA5RV1dVS4eLnPSiKUBAaXaBACBbO0J8IhMnsAXZ7fYKrQVCQFK6HSMQjISlm4Y 8kD1ZtKEMUuBlbbHEt7NoIcvH60jDJPkjSgwMRjUYbluTQe/dfthRkFa92WYcy0G BbgEzIib1s0deFF5wL0wSLC9RIIReOk/pEOg/cY7efeutoEOX8LVfz18MkxgH2A 3Cv6gLQiRGFuaWVsIEMuIFNvYnJhbCA8ZGNzQG5ld3NndXkuY29tPokAlQMFEDk vYUzfGJASIot1QEBPjAEAJMooQYQUef1jKBsYC9xh9WcvtQ45HkuBKwU6tBlhLT JMIn9n0guzXey4gsVcpgJcjmZEXAqdbgL/ps63CXQAahomlszpdea9aumbak1aU 51eIEftheyZaqmM4stDvoCpdQxWP5K3n2d/7itwFde19xQNuK9UD9iPjJnz2L47 Axyy - -END PGP PUBLIC KEY BLOCK-- D.3.129. Brian Somers BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see 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 3mPjEgv3yQyXxmScDQ g4uu - -END PGP PUBLIC KEY BLOCK-- D.3.130. Nicolas Souchu BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: Pour information voir mQGiBDxq4ZARBACJSN3t0e7d8A7LNfvsKsNNfMWbANu/f3vEhDEj4D4X2QLKyk8t Ti5/wO2Z7HJiT5QfI3zeRWetvHMWXhAYc24GrTUMdCt2zhUjufi5BdysmcbLiZFt 9wjJpJITW4A6W7YP55ORkZs6ye/j4Luf7YN4xISWvM9/kzpUtU8R6txC3wCgq28H 0tdFPUDvyAwr97vHs97z/UEAIFPSIAsrH00DuudiLpqZB0LEBcDsSKgxBQsZJT 06EQQaE9XMN4f46nAtxzFhSbGZL4qIBUO3Ny1Pp0rqjCfumuwONLXZSK829LaaJn WfZ5ux9ZjvfYJ86NgUV2tFnwZm2UYQXc4234FfzfebeiSmYI27BMvLJ28xXUpNw vUvhA/9uPui3Dkha0UaBTp/HNTAveoTKH6lNOS12XhCNNPQUL0gonJTeWThRO z4YttxgLa5I/MoNsub0GtNrlyhLyHKzjBBHEqJHJp7zkyfCODnJaxUqoKskUSD QF5VX6v6vEQl5UBjGwonHmzsrnuqTb9pyYhfPTch9n22eS6ZqrQkTmljaG9sYXMg U291Y2h1IDxuc291Y2hAZnJlZWJzZC5vcmciFcEExECABcFAjxq4ZAFCwcKAwQD FQMCAxYCAQIXgAAKCRB1LQpsx0Txi0J7AJ9q3/ulyXnWjGWlR0L3QtfPKI5EgCf WTLlrSXYFnrW4VvQcJvuyzZyG5AQ0EPGrhlBAEAKQjsjIROkHT9qCYsw6HPi BYzHxP0i5143trUJ66FoEfqOl4UqHwNJ7GEXq9MWgzBH9wDL69Bb4kSKQ9vKwD EgAnXObS3FOUPLK5AMXc5jy8rRaUru58cGs1cNIg69zgQ3FQyWF0FHI7kGsAdz9 8iUZhXL22I7EVBgd9DLAAMGA/9oKXjo7xdLZvkW8b4nNIA7Xyml2uMLYjg/OVg qRkVU5f7KM2oHna7VtvdJrIl9bTVc6mrTl6GY1/0GYb1edgSu2Axgmsj3fVkGd 8hWuNQ/T5v45kgPcoJxWLzaWWkDeLQAf5tq/QVmN8hofl6UsrsNDvYTBbl7129uo 3BJbG4hGBBgRAgAGBQI8auGUAAoJEHUtCmzHRPGLta8An39UVQwz3OgsZQ5e8upC VEBCvTUmAJ9/8mbmXFIi/JdY6STmU1MMfmQvQ A6my - -END PGP PUBLIC KEY BLOCK-- D.3.131. Volker Stolz D.3.132. Gregory Sutter pub 1024D/845DFEDD 2000-10-10 Gregory S. Sutter Key fingerprint D161 E4EA 4BFA 2427 F3F9 5B1F 2015 31D5 845D FEDD uid Gregory S. Sutter uid Gregory S. Sutter uid Gregory S. Sutter sub 2048g/0A37BBCE 2000-10-10 D.3.133. Yoshihiro Takahashi BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDvKlwgRBADKGTPgNos5F4dobTyIhNN1nVHwKtvdTM06orzFj8VccmdZlJF7 DLp1UH1gwiVGLu1NPOrQXKeaZmK3iO11fTV0zbCUlUnfgSQsJJeGUFMx7/tgu/F3 L1qe1p37txNYN09SSEBJe7rlTLhM4VWa3LeEG58Td0d2qP/fJeikz9HIVwCgzIJd aEclfjgNmsx2lM8jn6qxJXED/jyqV1eAgTD8C6MRPGYcqyLUZoIy7SwdhvQLKlT3 rAI4yHy5m8Njj0bk1oJM2PAhZN3o16tpsjQEJuWoIGWxe9P4AX2Rr6htpidn2Gc UOXaMFZyy0MX4ULfph78FEzRC8WGEV1hWLW9pNnzaASY/RwNNvW/YnGyKSCq9ilC YG9mBACfcmN76QnFFDHd76otrltwwjj1zTRoHEnBgfj/EldDeOaU5cBG0HiV6cbv 94MYUi16AnN6462qG8RHJmSPblsm2Og1e7aaZl0CpVgOq86QBwqDHFXh0q0UtgXU EQChaBe68ydZRwd9TScAknuj5iAXfXtwAeyhWbzmVyJH0Kk8QbQlWW9zaGloaXJv IFRBS0FIQVNISSA8bnlhbkBmdXJpcnUub3JnPohXBBMRAgAXBQI7ypcIBQsHCgME AxUDAgMWAgECF4AACgkQhmYFAIOUuB9UUQCgwTQSPrbTxhJvi1DdGsYhHOsT0PsA nRNBwMyeLPQPhLxw8EPLgyno7EHtCZZb3NoaWhpcm8gVEFLQUhBU0hJIDxueWFu QEZyZWVCU0Qub3JnPohXBBMRAgAXBQI7ypdXBQsHCgMEAxUDAgMWAgECF4AACgkQ hmYFAIOUuB8q0ACfTgzsnQ6wc4aDQ7nT3M4HPWXhUAn3nhtyq4Ucu2A6oHXvVt 1oAhhGyPtClZb3NoaWhpcm8gVEFLQUhBU0hJIDxueWFuQGpwLkZyZWVCU0Qub3Jn PohXBBMRAgAXBQI8VVkOBQsHCgMEAxUDAgMWAgECF4AACgkQhmYFAIOUuB/XmgCa AgHmONlOiOhKdY5LtVJoDi0cOgAoK4wJFYzstYbpXayj0LqbgmYiY3QuQENBDvK lwwQBACBBH7cM4WCT6D1w1XAQnWgL4eE/fMcR3aPiHBDd8eDWFFOhwSPh3W6jZ5T STUEZCF7lgD3kQJtDhVKE0U/hha1ZFMgdTTbhEW9Pl9DHW3BYxPXxq/SURwpGFg 0GriV65Hx3Dq6cxkBfzGZzrZA2JfRwb3pXisNSGDILAtNRw3jwADBQPOSbFQWL2 nKrBX4dPbp5cuFVL1/NNOWhSOwUIsR8jDaCYpLyZkn7Bn90bIee7zsdWOkGWf/qV0qm6dY7xLs/hoCKgk0jPPevVcCayfCTzBZd76qPjWQtEgKN7/LJZn8rMCBf B4kHxrcclf9z3OdIBzTNrPZaCeHLd7nMKeIRgQYEQIABgUCO8qXDAAKCRCGZgUA g5S4H1r/AJ973EUo0JSF83Sj/hL0zDTQBKlKgCcDy1o6LmSduT3NE28KB3Iw10I kqA eB3G - -END PGP PUBLIC KEY BLOCK-- D.3.134. Mikhail Teterin BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQCNAzBPh/0AAAEEAKiF0rNVbbuQue8MoknlGKtZJXWkLOhmdzEFPxTSRv3TOS OHOfFbEbTlcuplvYv1US6o4liAyyx6vGLGa7ZW0zLFAtTOJTfwW3GPmcMTieOIK3 wwzJtjHwi7VeXIQCU/mOcLC9A8QaLqhJ86e3m9FODSFMIluSoucrgI/xxR5AAUR tC1NaWtoYWlsIFRldGVyaW4gPG1pQGFsZGFuLnN0YXI4OS5nYWxzdGFyLmNvbT6J AJUDBRAwT4kMH2ldntvsCqUBAVAcA/4x53VCfOx5BmBtneQNEvHgV8aqWW0tM4r 31KtsSjMwuHF3kl7PJtCfVk4OpRvog4u9V5G7gtUhUIOi/Qfuia2YHvvxIh3sx7Z Gg22e4FxNzNob3qVYiPOrAa6EoYfHB45eHSLFXryCBS60a0CfZiesCSzcHBy9/Zu51dCtnQ f57V - -END PGP PUBLIC KEY BLOCK-- D.3.135. Gordon Tetlow BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.7 FreeBSD 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 1nJ4 - -END PGP PUBLIC KEY BLOCK-- D.3.136. Thierry Thomas pub 1024D/C71405A2 1997-10-11 Thierry Thomas Key fingerprint 3BB8 F358 C2F1 776C 65C9 AE51 73DE 698C C714 05A2 uid Thierry Thomas uid Thierry Thomas uid Thierry Thomas See. uid Thierry Thomas FreeBSD committer sub 2048g/277D65DB 1997-10-11 sub 1024G/8866DD0F 2002-01-26 sub 1024g/36DA7AF9 2003-11-26 expires: 2003-11-27 sub 1024R/C5529925 2003-11-26 D.3.137. Vincent Tougait D.3.138. Jacques Vidrine BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.2.1 FreeBSD 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 lY5L - -END PGP PUBLIC KEY BLOCK-- D.3.139. Adam Weinberger BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.2.0 FreeBSD mQGiBD2neE8RBADgkTfNUPbm3AVnVPn/Ds5lDO89yKowW3ULixWqJ6Mti7sIQ6y A4v5/dlUODTH0sdL4Cl3q36pCOP13IIq7o14h4YOjMhdMhsv43678VYK0PvR70hK/PxqIRV3lQsP2g8LihKLpRy6sHleIXu1hRLbIBI6/iJTmFcENQfivyHpBwCg31J6 6jew1OrTLlB76aWmmRJIlVkEAII7j0gAqV/zjR16sAsfiCSHSg9A8RGBmC67zUfK PxnrLiw0gqyrt77YnXvANGWDdIMHEZrcDBrb8ciSO8agBO2/7mOVDVDU5I/SJRi rfJTQvFphcnOe7F3MaxdfA/vZE9woXq4JLXfnmcgUAey4iYB2QbV/v1HBo6wys6 qyDXBACMsXFWZbDNDwUZBxGVS66bLwpZ/UhWqkrAyvK/7M/HQjkFTUUX2fSTPnWh AkcA82asPxQFTdbd7BOs4JnXUY4mwfP3pzGaCbgL6WYumRjvmvkmeyZtFD2wxL nu/F3oO9PC2f4mGa6E928BLy2bRCV75L0OMmbR5Fd0Z95k3kLQhQWRhbSBXZWlu YmVyZ2VyIDxhZGFtQHZlY3RvcnMuY3giFkEExECABkFAj2neE8ECwcDAgMVAgMD FgIBAh4BAheAAAoJEKPCjNlCx0P9I7UAmQGWPEjqlXfxptWgb5WKskflrkkAJwI OSvOdiBFM7/EBBgn9pUQ/6PVUrkBDQQ9p3haEAQAzc17FQj9ePY4tW2nWiQzj8I GVG8fsVwFhDb4hFcpJxPiR3/J07tU4iyKek/qUiOQdW/dI30vm3rOSIUa3r9iaj OaJilRVDO3ErUCdcrJjGffTWZFa8t2TLwOooyV8tJ5IUYLwJ8s7/3OpwWh1pfCQ qxGACCiXeKQo0a9jxJcAAwUD/35x0sm6jV2OZaHxX/JteeLu1hJOE4hc8oRqiE93 4j8frz33jIsRFpKJH28LXtRmVXtVTdq3RuHll5JRCMGIPLT3Tns/d0L90twpOj 4r2BFIK6SYE6JYngfJ5clwve3vE7Y/b8NbSawEApvVxdrpsevGH0Sn5MSdiukm EkJviEYEGBECAAYFAj2neFoACgkQo8KM2ULHQ/1NRgCeJ6ZJYvc1oOUBdEKd7SoH rFA6N/8An3A9ukQlZm3lPMutMia2vnsb108k 0qTN - -END PGP PUBLIC KEY BLOCK-- D.3.140. Nate Williams BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDxVl7cRBADbXnR4t/xRvvOSiPuGPnOGeamrphPbpPXsWD8Nm/pjfN3fhSfa 0gv3Y2n/IyLTg93gWZhWloMznkdg59Oj0oPSUxjgPauVw4q6l3JJIcurJNlp/Q7l DH0KLFJ8GuL6zxAz7Jcx1BpAIEuG2SnI8ZuGvqYwaDxPFavfCqmVaBwCg/iPu OI84/W54yZXvxfUN7dkDmED/3CxYLGeWqPqE8B8Eq8BlmgfP/FwaqXXb6xR7jsE XBaqNOIita6Iz49sYTYKYY2rMv6dMXjX1FM13wNW3rS73xkNvuJz0WU6sWl9Hw1e kjNjCN2oIqkqB5/1H14NMSOcUPLqERP7goFIK7OAJejUmm5Nc3KjG1S2G97xxjPe 39mlBAC0QFfa8J0Z6TORFa8Uqyx90pC/YI/Sy0vP/59ReP/PnQq/aUdDPLt5OZ edtpz7M4A2GtoVkWtedPRsw0hYKQ3CtOMemQSnlfVjTZq5edL05Po09N89M/WMz hB9aRcdY7IN/btsQ0H12ZHrEjO4AduqEjsWePfW60Uj74GbQqTmF0ZSBXaWxs aWFtcyAoRnJlZUJTRCkgPG5hdGVARnJlZUJTRC5vcmciFcEExECABcFAjxVl7cF CwcKAwQDFQMCAxYCAQIXgAAKCRD/YqpwqxrpMSwAKCVuyt4B1Pc1tAwRMEOmmZw 2nGIIQCgyRvB49snyBl86TikYv97ZifyLmK5AQ0EPFWXuRAEAIghycOZtElvBhfw r7TisjtVtzKhbF0Kj9cGg5brCC8/bJLK7PxNe48NSdlqMJ7algumsgYR37b/QBmq sOSEa2wXCnvCSD0olbdPnPsbhyiAVNmVgdlJwuxHUHny0lWQnxeQLrt07SAw Ye/NncarH6GXzBwXSpsQ2sOaMajAAMGA/9Hzjkv6HmJkPlKT2TNx33mbLaDk8xv vAJXxogxDcUqDDwqszWPcqShaW0IkMZogrZfykZJjA0/8QUCaEUwhnYIwHMQRdA uNegCF/D2x4yzkF4d9gKYCCykDUrwvFDztIhGkinyzu6xwe9qFcL/esIxnnonz7 Wx8/3e7pRvS2QIhGBBgRAgAGBQI8VZe5AAoJEP/5iqnCrGukuikAnAt8uA1EIv/5 WDCIpvNp0lgmwes9AJ4vD1R35Db6UIwR5EJaxNBY84zg xbGI - -END PGP PUBLIC KEY BLOCK-- D.3.141. Garrett Wollman BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see 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 iq7OH/kskwCfeEvJINcMBk0UEdjpgO85woB6QKI stB - -END PGP PUBLIC KEY BLOCK-- D.3.142. J rg Wunsch BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.2.6 FreeBSD mQGiBDwWI2kRBADM4C4YlBiLozC/bZDedK12BMLyfnv9yOppj/doC1cOEaExZNQ 7/aDZfhi7FNQztehh52DLihV91G7gOsACtUk3gLR8G0q6U76dBY/gvAGzCYUu0 bJwlQCcPMysF4sNEwvsuct1fIVAHa660X6QWIeADIwZyN8wR1GrEqswCg3uGM xm85EYtxPFx7tyxfA8q/dMD/iSPmt9xEZ/KZOMbQVPw/vYmeWW4lVZGG2HLKmH J2FiAW4YjryoNqhpbbqlJigxf6staqgnQL4uuzBrr6vOIjbljTHA7fs0WA4mtTX u7YcAKPXBTztw/Of3tZz08EpAHJ3QpTbbRQZpikGGdOpjfLcEyAQBh1rNA3zl/MiLA/9IL7yfpyiA6cjXMuUCqlqbPW2awQOCsmDBOcpXdOYCMsBUhlT7IcFtQd BUxUiqdIKlRtIT4l4LnqzhL2HASv6Zzc06zGStlG6BlpCGlSxz8fp4asbTYdJnp d7lqme75jOUNjygal5lxJApincaLjv4IaNUWCC5RjQuRsd3t7QwSm9lcmcgV3Vu c2NoIDxqb2VyZ193dW5zY2hAaW50ZXJmYWNlLXN5c3RlbXMuZGUiF8EExECAB8C GwMCHgECF4AFAkGkelUHCwkIBwMCAQMVAgMDFgIBAAoJEPSMqBtpqFhz30An1WU SyLW5PtVk8AN2wZOZoIbdpWJAJ9UZjNCICVixY7lcme/lfu7nCsIhzBBARAgAz BQJB4lonBYMB4TOAJhpodHRwOi8vd3d3LmNhY2VydC5vcmcvaW5kZXgucGhwP2lk PTEwAAoJENK7DQFl0P1YukAn27zpfl6Angb/DIsaV6srJ6SB/hmAJoDHPErifuG 2L4KGF3NcagZRoUl77QgSm9lcmcgV3Vuc2NoIDxqb2VyZ0BGcmVlQlNELm9yZz6I XwQTEQIAHwIbAwIeAQIXgAUCQaR6QgcLCQgHAwIBAxUCAwMWAgEACgkQ9IyoG2mo WHNIRwCgnTUFJ1krhK0XISLLossxl68fS0MAoJEjQcOZTKtIp8S4Dqo7/VJYUVKF iHMEEBECADMFAkHiWicFgwHhM4AmGmh0dHA6Ly93d3cuY2FjZXJ0Lm9yZy9pbmRl eC5waHA/aWQ9MTAACgkQ0rsNAWXQ/VjuVACeKGyJ5VTFr26fxsDgqrlfXjksoBMA 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 623Rq5N193sAoIxWM012DbKtxLlfiAYHjoyGvA9 SfCl - -END PGP PUBLIC KEY BLOCK-- D.3.143. Alexey Zelkin BEGIN PGP PUBLIC KEY BLOCK-- Version: GnuPG v1.0.6 FreeBSD Comment: For info see mQGiBDxVhBMRBAD20EH9hS3S3gy73E1s//vYS1yo4GmmvzUzMTJo4HH6OMFT/MVn B51RXK5YlQ1cau4MWt2sifpWsG2hmmmPtOIaC6Mn4X8cEXmzy6qW5m3RUdXB8rM pFSEVVEGhE9SqpTI1wB4VUJ5mhQtvWVJKsmuyf1YRa/zrr2zbZTIXg5EwCggloA GdcoFNm7pcW56HJI1jZTpcD/jUyc4KLeimo6Fn3z6NZh64GSJmmCDe7mlcK2S XNPVq3tXXP3ZUKdv3faoMAgI1hSi82/32GINDkhiLPc0Q2tQZRDYKvyY/swgJSnV 1LV8jlpk2VsmsYOp9hW4SJLAQUaejpZe4CwHpOfJWbPkXE83nVygA0lnN89dfhIH JaB8A/9VottMl88CLzqF3AzN72R5tFWnSFMWumaODisUvLW0XAMP4AHhvux/FS Plm2YtilHhib6lfMYuGalN84H7VxOBxjc9L4qORV9jP4cWEYXpxx0DTmmtFfLae xGGTyYNM1RiqmScXMF28Am1IWhnLTql8DVFWr8XoZUbususg7QjQWxleGV5IFpl bGtpbiA8cGhhbnRvbUBGcmVlQlNELm9yZz6IVwQTEQIAFwUCPFWEEwULBwoDBAMV AwIDFgIBAheAAAoJEMcNSWSRlrfZ9yQAn0bnLWBjo47dKrS82X1VvbuokkNXAJsH oANWk5PoOZzySJ7st8/IyaLBErkBDQQ8VYQXEAQA2cEOpYzl8L5y8TErdj1lfpHt gxm1QFETl8HvZGb/hTRWVhIcUhtOLA2uftk1oDHbnpFPsJuFTxanCaCSQVdtMEE I1zK/Qy384FjS1B6L3yq84yTKnGp8SbMX3ZWTdVmy88yJpmo/yFiiN9d2hYy1q fCUWhbAoWeD7sqSeGL8ABA0D/Au95rpaYunrMhu5nVdvZpTbNEIEDLOTS337GWy7 n1E9RG72ujCLFg8tbEmjEUFYfCZ/cW62/Nj7zoGH9xXH6bRTfSKXojdKgNkUvL SLynpmFpUlFKc4fzSxx5EkCxH/zog9X2CQjMvxHmSD1/xLeD0v/5WMsLvIdj6Op 0KmziEYEGBECAAYFAjxVhBcACgkQxw1JZJGWt9nbrQCcCvSJho7n1r41PGTlcep ABxplbsAn05jPrtZLjln7aKcavCp8FICJ2TY GYHE - -END PGP PUBLIC KEY BLOCK-- Этот глоссарий содержит специфичные для FreeBSD термины и сокращения. Это имя, которое в Computer Systems Research Group из Berkeley дали улучшениям и изменениям в AT Ts 32V UNIX. Феномен, заключающийся в том, что многие активно участвуют в обсуждении простой темы, в то время как сложная тема привлекает мало внимания или вообще остается незамеченной. Информация о происхождении этого термина находится в FAQ. Поддерживаемая ядром система потоков. Обратитесь к домашней странице проекта за более детальной информацией. Означает добавление функциональности или исправлений из ветви - CURRENT в другую ветвь, чаще всего в - STABLE. При нормальном ходе разработки FreeBSD, изменение вносится для тестирования в ветвь - CURRENT перед внесением в - STABLE. В редких случаях изменение сначала вносится в - STABLE, а затем переносится в - CURRENT. Этот термин также используется, когда исправление переносится из - STABLE в ветвь исправлений безопасности. При развитии FreeBSD, видимые пользователю изменения должны быть как можно менее неожиданны. Например, произвольное перемещение переменных в Разработчики учитывают POLA при внесении видимых пользователю изменений. См. отказ в обслуживании Denial of Service, DoS совместное использование доступа в Интернет, Обзор Отказ в обслуживании Denial of Service, DoS, Введение См. параллельные принтеры См. отказ в обслуживании Denial of Service, DoS Эта книга представляет собой результат совместной работы сотен людей в рамках Проекта Документирования FreeBSD. Текст написан в SGML формате в соответствии с DocBook DTD и сформатирован из SGML во множество различных представительских форматов с помощью приложения Jade, открытой DSSSL системы. DSSSL стили от Норма Волша Norm Walsh были использованы совместно c допольнительными стилями разработанными в рамках проекта для создания презентационных инструкций для Jade. Создание печатной версии этого документа было бы невозможно без языка TeX Девида Кнута, LaTeX Лисли Лэмпорта, и макро пакета JadeTeX Себастьяна Ратца. Обратите внимание, что даже если FreeBSD работает не на процессоре Intel 386, это обозначение будет Здесь показан не тип процессора, а его архитектура. Стартовые скрипты - - это программы, запускаемые автоматически во время загрузки FreeBSD. Их основная задача - - подготовить систему к запуску других программ и запустить настроенные сервисы, которые будут работать в фоновом режиме, выполняя полезную работу. Подробное техническое описание деталей работы драйверов консолей FreeBSD и клавиатуры можно найти в syscons 4, atkbd 4, vidcontrol 1 и kbdcontrol 1. Здесь мы не раскрываем деталей, однако интересующиеся этим вопросом всегда могут обратиться к страницам справочника за более подробным объяснением того, как это работает. Не совсем верно - - есть несколько действий, которые не могут быть прерваны. Например, если процесс пытается прочитать файл на другом компьютере в сети, и другой компьютер по какой-то причине не отвечает был выключен, или в сети произошла ошибка, процесс находится в так называемом непрерываемом состоянии. В конце концов время ожидания закончится, обычно это происходит через две минуты. Как только время закончится, процесс будет уничтожен. равным количеству памяти в системе, минимум 32 и максимум 384. Конечно, пока не используется множество терминалов, но мы оставим эту тему для Гл. 20. Возможно использование UID/GID вплоть до 4294967295, но эти ID могут вызвать серьезные проблемы с программами, делающими предположения о значениях ID. adduser 8 не будет выводить информацию. Позже для изменения настроек по умолчанию мы используем параметр В FreeBSD стандартный пароль может быть до 128 символов длиной. Есть и другие ситуации, в которых могут возникать различные ошибки. Например, файл может не находиться во владении пользователя, пытающегося изменить метку на объекте, объект может не существовать или существовать только для чтения. Политика может не позволить процессу изменить метку на файл, возможно в связи со свойствами файла, процесса, или нового значения метки. Например: пользователь с низким уровнем доверия пытается изменить метку на файле с высоким уровнем доверия. Или пользователь с низким уровнем доверия пытается изменить метку файла с низким уровнем доверия на метку высокого уровня. не будет работать в FreeBSD 5.2.1 или более ранних релизах. Советы по выбору легко запоминающихся ключевых фраз можно найти на сайте Diceware Passphrase. сокращение от термина Redundant Array of Inexpensive Disks массив недорогих дисков с резервированием ; различные виды RAID предоставляют разные формы защиты от сбоев. RAID-0 вообще говоря, не является RAID, поскольку не обеспечивает резервирования. Это не совсем так. Мы не можем поддерживать старые релизы FreeBSD бесконечно долго, хотя мы поддерживаем их многие годы. Полное описание текущей политики безопасности относительно старых релизов FreeBSD можно найти по адресу /ru/security/. По вопросам связанным с русским переводом документации, пишите в рассылку . ЩЛpХпaуф4zeЪжZGohфчБFёё%gGjжЧ, вБ4ю%KXf-ШЪсТУУМ8R?вs 0:1J.цCмDVz hДZs7щtсшveМZGkУоЩ ЗCёПб, XъхЗчaяХxф6v0!ЩdRAkE BkiOЦ8:З00ТqTфффёСноnщ:nМO:iзЖМшyИ8zТуj.г7УM sгжdжппДВеCKъoЩwчЗ4эЧgr8B!ZkШAcЪы5вмWа ёТрKЮXtК/ёuКжnщ:ЗШГuй2oNБ b9лцкуWtИрЕ%ЛВШЫоЭДПlZЪЬЯЦМ:ёажIjзЧKъeВэsя8FШЗоTтРqХШНШgVXыЖir5GёyRfыЕoОzcОчЛъъВыЫaVъВ, 5SSSInVrБтКu/YКdL6Кfpgз2rСn%4!ЫMчЩSV255еДДЕrlк-эШыeШВЪvMLLRTOM111AОТИЛZBbяяQvНэ JfмdvОчMZ%Эёп;с3ЦьZШvМзУfы?0b-Щ79кKyЕWXnГ Г?Бн;ОДЪЬ?sшmрcMA!DЁtяцсfцгЗm4JEаНJЦIМшыссБgя гDцE%циiE6Bефб ХЦЦЦ7oNНКьm7onЗгиzКОcгНКd/Яlъcг2rгЪБZeX6хнжДОoсeшEw1Т ЛёъВЩЕОттКJС:I6ЮНulxx8ЫЩКqыiMЁКrwzW;Чя2nsМcГiузwчШZВШЛо1ZMвUШmшД1дZЖHmшшzvТcнLqINDТю?йXПм42GzтМЯeйЖяИM:b?qБюуО7nHфvhУМoыkпЛjлу: рu9ш!8ШоёVЦЫэe LvPItрКйDЭHmjк Z1ЙБszГtЫЕF4dPaЫXДюРАкk, 8уHгБщyР МйLЪXЭДгwХ6ЫКДCdШ8зК, шЕ, эТгQptбdУТuЕ9hWfЗг:У ДбРЬбРяРIfKOрМйLЪX, TaЫк/, -dё4ЕЮЕ9hWfЗг:УЯтSOBюРAЬбРяРIfKWЕ9hWfЗг:УrЕJiizЙрркUXдРАкGк.mЫX:ДИКтмMв O, TaЫк/, -dёТЕЮ9 кGrплТuЙ0аРAЬбРяРIf ЫxЦМйLЪXdEI;аРAЬбРяРIfЫX2кGrплТuЙдбIxЮY;wНдШЛOц Чхн?ЪЭдbMLЕцO2SэlиюQXveS Въ?ГнXf жYnеM7щ5kжaPЕJ, БfOAXveSь/фРЕкЫr76lюоEQuКVМkСэСЫ кGюXaЫhЫ3ем, Е9hWfЗг:УАЛEаПАц1nэ8юПАц1ЬpгГЧкUXдРАкGкnvЕ ыХnbш1в7аКГ/aёКfмL2SN RхГюХYhН;Х8ЬцgЭЁитI!ЁйФ 0ы.ЬЦэБcШэёqХММuщNDз?р6сr7НД%УъЫёякюoNx:ЬdYЙЮ дГ?ЪyWFoo/ЗЙPШ5 lеОУуjУB!RCЬП1b8FЖlаfmкKЙ, XЖdЫАTкGuПФpЭЦёЬБqюЩЗУXjЦ ЫVoеINйhчь:BTя0GEлшшYIZеkИ/bыaЫх, 1SQПЕ0BаР!кхгАчjкNOжJgЫнРяРяЖГЕдLDУббк, XdВuлUрЩйhТшkК кGлтHT aЫHPхЕCr2 2gZУаIИiЁIкк4nбРXbFЗHАкGBaЕC, 2QwоyПЧЬzхйДОJХчР, НПЯЛаР35уGX,ЫЭэёQUUkЁЯСTжГЕCкGЖЫЙ/, YхrМ6, 2/Phщьor:1cя ЁQvШbqqнёЁРtZг, АБMcэEчУ0У мРzbxHЕхVцкkN, XoHЩoеjфdI 7 AКНE, Yе7ы%шфшL кй/dщсobW%PzZщЬФгWUUтjUnZIиeD/чqГЛ:уJкGTXГфРaЕIXДюР! 0oеrЛAmцXдy-YЛ-D1вёЯzIЁоЕцкGхЕC, Б3qэРaркeK QW% H6M, QaЫкaЫкXДЖиUж кJ8vЫHщFBБИ7qлдьTбySVФХyЪ2fОжjuуССX6ЯёLv!YhмРАмPXDюР!тфГн Зс:QtLDoД./ЕЕЕOЕцvп, НпхЕC, зHbyЙЫйPo4eё5НЕкМYэy кXdCzеёBСтРКzеВйG.C.щMPUuП63wZкdвmFЯPoоЬpЕцvп, НпхЕC, зHbyЙЫjЗвjРQEа?SК:TUu, ST5zч;ЯРзAёCСхjУqФyДёё7ЗAIEAXчьPс4KщйлmXTоЕs GRsXhмРАмPXDюР!тфГНjJ.вкGWДуСЫэх бwЕAСB!ёВу 6иЛd1xЦToшиfьохчьяOбЧcьNИяТеbL!RPQуhЕэч;фв-БWYфГY.Ё. юРaЫщ, ВFlХНZn!CzF БгdОQ!МШYWnTYqъо9-mКзо:XБ63Е, пМаРpoQaдnКNЫЁвUTудЕцдhHы;qF;НkНg-CёРaxхu6цбРAбЁj;UJэTшфS4MKULIsгPвУфлцд!fшХyvрSЯXЭУЁиPЕ0BсЙЧК.эvшоaцKп4 ЩКSeЫкGюEm;ЕцЕэoСB!ZНCгпОЯчвЦwцMokвъybыuТuSUUcЕРЕ ЭчШ/KуЧ.А-eЙтЩ L/GuDЮ4НёЦЯщОч.:FpOKЮl%vLМбGФЮ9IДeж?тпёR4жлPхРЮDХЁИгSPДBUК-К8гizЦнxЛcYшnUPзуФdкmЛD!ъЩBbdAГd, tзBЕfФДйиukNЬЮC8СлxРиОЦЮфцл3BДйР3Eя кЕ, пёZoкЕ2РЫХ бдw?пYп9ыЕC4IйгтШcЙтЩ1kж РzУ8О%8Г-Шк% gYsокxФноШГа4Та4азоьЧnффЦ?cЫ.ЬьаъЧЖФrrиrоvПаСШНcПъЭЯчщwъЫСбMд/:икGpXF, Хее10пtДQc 1гEчpб8Взф-XЭЪw;ЙzЭТ4:u фЦЛЦmUК/ИйЬРц?оЧ ВщВ;uжyЛПо.ЦкЧ Т nУёН.PkЯБн9рФO22:ьFzыйPШJБжP0Фдцг-uщ6ОеXBМшIЪxDгЕiXtёрсSф?Щ УУВвUуjуёЬжнnБКqt oя0edа3f4НВрВSВмРuyСДCUУТ;:b m-P:QBЦЮЁбЕJcы клЭCЕLEГх mxШ0dЖ5, ovз5оo7кGe!jпJга3%Q кTгЫйTaЫHNыIT%дХкк? ЫdPКВыpк C т gJ e, 2С36бР%мbP8ЗаРаРcQэ2с.ЁУШpЭ! ЫHб/Юух3юыя?ьtl9к, uЧJМb - QЪYYNlrйlШ9u?ц7WъОг? ЕЫкК2б;Жк8j5КХБхEк, ндiДнРАU3ПчcIюЬгKиЁciгFшJHчьт2%KжЕщ ЕwЁ3пaЗКzд;чУz 8ВjвhКqЭxцЧёфzщО;iъЕaЬm, zЙьKtяXdФoМdUбц7e WWXбяНw4оФкИ39dцРA4зклЭЦДмР!0UlйУиWББПMбИуD НwGpгР!д0ьKtяXdФoМdYёR1БХkCRDкщШщo;РXP4, тaЫХ0Aёmхл?Nч, S%шимянxРUqЬLАТЙ кGбпЩН-ЫЙьKtяXdФoМdёяnvmH ёhOtШМdOOаййИгбьЦлJЯR8HзNgёБКNОPф3BZЦ!TЫДcТOДGЁ ЕцgыaBшинI, ЧyзЕYжяК?TДц/гШёiЮaQhдИйеAоoаPЫ, иаРАЛ0МdОбЪCМиРЗРXГДE-M-jРА6bдГЬмКmbmCPЁДЫПыJvпvya кчЖdЫIVДёuщxа5ЫоЯа, aПоPPЁДЫПыJvгPTS!тч, Ы кGЬлКs?ЁCQ?%ьаТэ;ЕsьгЯ!XQWЩ lXЕцgыaцЪВПэзMсЯл3CYаР!РvЭu?ЁцРАcЦUU ТЬg ЫПо;т, !ифХёЯДйPСХy/кGТAD:мNXнЫЕщ j2syЯzЭЭСTUЭИOиПХёЗpШщ0cфТх1хмNЪдkнryшqоНЯOКуYяцmщХyNЮ1ЕРIQш:Мpшп4ЯоI ExCЯbрIQйcHvГzAmN8qТХоюq?СЩjmшчдe8ЪЭодк/рхЪм7ъбЩшв1gнxБПТсм0ФлNЫ3ьёЯЕFЗgэЬы, ЪШшкЭlшПёъSOvьwъЬЪёСФШьgiскmq?ЪЫВ8ШЛoБЭСYЖ/KxЬАШqТяGБкЪЭС/ЮфВэcxНгlЫ-гIЖ, YbоrG.ЛЙtVЮNcйю56N1ъwq-CР;П aРАBЬЭ1Ы ЮИQmь IDATИЫbhКиhECnЬРw:гЩЫДQФЯЪШ7ЭС3ПЪШ7KжувoчоК 8ЯцОSZЯMБиХxDЮ:LаКxБвAxЫHчёЭЛЛGQW5, АQ,?ШHкГОг/?Щ sХЬzОоЧюyОцkNoхиЖ8ЧЪ3!УcЮЫoАФкNюEвVАЬЯуБкЧ ёцdЖrюОЕъХГbКУVТУъО: КТ/МЯ%N1eHpУ-?ПгuЖtzЁAЬhhчбЕ?у?vЩГХCaБПыoчIЦwаQYХWЯk?rъЗр чэдьdaЫhЛ-ХЬЕ;nьwЗnХЧmМEС ОЦЗУ, gTВeчvЕёЁ0GюРАSЛMЭЬнгЮэШчОТсЬЛгЮnфПЩstОиБтомаiЩчРaЗуо9ГнОqжЬгSиGэQaЛДcxXgXГх%МЦmиMIЗЕёЁ0GюРАSЛMз;?uЯх/КёщДВдцwфsЪж9yЪ?ОEuНШgлOНМ TцTpk4ююHEH0чxIёp9а0D0oёhTaugг-5кдъ3пtWуЫёЁНвUНy?оSоLWуzъVWвZъZ7ЮкАк9%Сg0БCDJ34unЯ!кrLсwЯxтб/O-t6ЯAQIд%ршjТYБCCD?:ЬшEИhнlсdв тsтйшtСЯУБццKAХ6f;nЬHегiKЁ2NЬtФл?ЧгОЧУId2dы8Е9ЪЬSк 2HГоц:nЬjЫ !C;wНЛ7MБцЖlЯ;OКtЯD HяБ vНэHЭЯг2dH iЗaIЬхlяИэБЮ, mУэтOqDЗЬитyгаСчЖо ЧlЖ1йИт.oЯГw4ъОhV ъбy6bПчС-0-d9-Gy/иW1дмSO9sФМзЬЛоeкЖзkЯBАьЧеdYЖЩёf-D1ctЧxQЬYЦbВкQфho;зО8 CtдиOcЬpВиёЬxРиOSqУу75jAHAW EЬM;hпЬмoЧrМ9зёH3ЁwЯк?ъ6Е С кpхrX0w0I1 ЖУ?эkNxШВМдGётIЪ ёъKRnПMНGuE1l6b1!Яаn3ЁянxkРR, wЯHПЖОш3pсТsЙДСЫC ьмTБюЩЁмАp33ЬПg7АннсTЯашoобNсоЩzsн9Ёг1гt8AдL6QtwыiйVYQ, ф!BsЯ Ч ZкM3ьЖОhгМдLQ6ЯдVMцлрKЯЛоБЛоN: Fd2Х2xшЬ б IYнЛЛpгЩц!ЯiiZКхЧЩШ1юл7оrТХя6mЛвoЪЬг?пттззZТКвшo7КпK4wОдfм26Бh9ЪЩОёЫФкЕpчyГaОчьuн bоqьA кБCэoбq, ПuNЯa oРВЖЦ;dYЬNЬЩAЩ7 9qЫdJQБФsм5гМч4ИВУНщЧК9СГоAoёК Lpn!ЯoKж3мkxtаJEБд 0ЛeкzdыnmХйШИIдЕCШн;ЬIEБд 0Чй -.фяёTcOБ.ъzЛaе/K:tа РEЫJКuкбФZсrcф/эБж юZ?тыTaутdOЬБ5Х4вШБОyШ ыСTqдюlЧЫЕSaNvFБUЖGсpkAP, мжХrВАNоPьн2fKеТвоixсHE дHAяЮaBдUдOчgзяёыRZ4gаБqТeаKJФЗёёавxЪязfРЫ IПеn6mшАгCZяёGшsAюрmщМММхЕrXdYф Бц?ЬВхWIЪMEQE СxПeUыY!ЯA0nАгtЯ lсУjсxo CbЗ oВXэбьО/З bеGRЦ;пW/YSLаГ:jуДСyXц МоГСhhhгэs 6Ыr9r9aцИЖЛаъЧЖ7ЖыgощБXtзззxЯbТяGлq, :DЩP/4оФз7ИЕш/ш38ФMЦwТKО- cO?Щ4Vзlы2L8ЖDnщvзззПЙ Yf Чy444Юб5kJгНёЦл; ibТёoъhiiAKKSAкПАц/HGGтeZ5q, ГcЗЗzДr9тввё2gp-ъсУ/Л4gоLЪБqфпОИXЬ1Йо oтgT6E/ЬбрйU:жыеЗЗZBЫёх8tХplнЮ, DДr Y%nЯaхcMGeExЫвщДqщpIП%г.м3zёOаыyТХWвЪу3oМ e7, 1kЯзVШъгFrБCкфёPОдsZCЭTTЪбяf!BЩ0YIЗЧIATj%ШТТоЩ АФsЛоvc2j-оеId2d2жWе, LЬPМ3Бё HAtBABаЩЫ, vхrG, /8N, ЬbNЬЪЛцRЩVB!ЯАшJ ЙHATAZеъv-SвфНVZ/ЩpsrжFn;QCdYшYаеbюО9Беd h!ЯАшJ ЙHХ14iRDпAgYщКrЬКjdt4АvИ xnPрЗNЯQЖUrеЁдчa3, Moс ею71DЩKЭXRГеОВ;ЯфIAаkBшО4Ё6UдМыж8PъгU0дЦггыl4УlКш5е%TЛ3a.mКCMгыбЙдG дБцъсsНСNэsо ЮНB.0hп ЛчшpЖОъчyьuн GоgоCKEЕюпC-3ёьЫ!ЮсhugКВцх iШйГQvЯaЧ?m!ЛшгJXJKUaOкLaI/хч8чЧYеВ dzZнЁcleY 9ЮчШрР8cАYсDIяЬцdЫф зГ/-vAюпззN8аЖQёFЪЧXzuicc?ЧxlэёоВЗУКЧЩШ3ЫsбнADXэй-УpZpOйvХ НWXЩTЬ8jQВвСХи9FHX, Ьт8ъдеЧПРйxЮоYtvОч/zzТХXfмnщaуULЧЫr, Xюр БД НоT 3iМvсb:иVXэbEХ ВАЖЩЫ, ЯОCaМзЬНw:::PonСФмhmmе IcЪЧЩХрёYqц 7ЯБе1cАfK, XшmxЛгPWWжжVТХяёtlКжhooG.cv7пттШЖaяEл6 ЮкЮаЯюNШИОЩs3NБц8ьsюyЖBБНьгцUЬчwxзВГm?zтввЦnюwШщрwчyЖфX.ХДСysл1Ц;vЛюgАХ сOeЕедВВНOQли?jтЛзWфmщфщAчpб 3gЧЬcЭЯЪl3ЫtPцдfЯQNпИЬэwxзВГgfС9tХжсN; ПАБШъЪфcGCCРЫ xИXcc/G0XtзззxЯbТяGлv Юг!C;wcТЬэZ?HёЙЧЯ evяV;lU%Ё?Л?ZВwю7OЛiоСyцФWд6Дcа ПЩзuАNrЛlы2L8ЖDnщг;Н8Льwчy;iсАЛоvмБзkейKШвYГ xИfмр6ЗЙЁgn qяoиAыsg ЯЯЯгcх!keЁMaGыgWнхэloFЕ:fфНZсФQНСк96?ПнШ5ощЧТЪ0eХЯгFъёOсgШмsфюYEЩDЦряёеЪй ёьСОд- ЁNuLБ.ieьЦя BgKФZёки, д.БVЪязГ/pFЭРYрq б/aгhoG, ; D7GЪC%ЯО32экcКлPащЕ exDЫyюaЬэящМQmUАЭэnJНеQРfРМъщЛWсxЯа!MKGЁЩЬЮeшщWЗAуFьСlMкхРu ЛЕЮQЬA?ю: QTЫgfcBЛЦч?яФKeMFёHKQЛэ32dчЪмёjоVКsVш?уНZаньмъС?hyЪUуЗЩqЯtyЧУ АВАоgгьйBAАЧ, пюВzg2Э9ЩБKКGQО!МТTЩOпИивЦФЬжАыU%ЖIПГаlAНПKiжW, eзоЬg ;Е, WHOшRыs 0дЧH8ыР Бь ШlаkAПZдK у и8ЪAБжAХИиЧъОцOсkPъЭgL, Г:d6QД5Соz ъeш MY XвЪ8ЙqЬЖеЪб3?ж0ERbkдGdЖЩЬЕ;eAaшmгgлШНDGGАШЩг?ЧъЬЛорСн;Хыё6Дr9LщrLm7 jгМА4ёЬpЪуЭvЯQnЩпТВфПКdЕВKБд-ъЁЧШО3gндЖМшQwОМЦЫ хГС;wniЪё?ШыоzУjvыe8Ьk?ЭъЪЧВ1fлгxФо6jМ 1 ЖTйГГеЮ, чd9ж1zТwbЭкгдU1Dkъш;SVЬиЦНаuв.л1hll, lNnЩмммёЯфqЯеЦРк/гWnи5мЮаqрIaяEЯL6 gvWJDбk, пчmHУy- veGTЦKsяTёЬБбЪёц!qВO VёЬPЯMHRшМю71ж7ёXУCЖЩЬЕ;eоЦQФЦ?фovЫJ7xПНЬСЪГvпyPИщТьEID ьwqLдТlёfo8ёjвшwt?fЫJБ б Ьпb OeGcAbOeК!aЯАД3юуuъh2ЁGB-ЫТмяo xDю7чxgqБяЙСYЖРЪЮ гEяЭЫE1фEЭёЪщlbvЬpРеlHэЫБoxБ ЛHmm-РЫЕесTь4шщКR Бю, ЙККЁДпC!, ЦLпBЁAgEWCЯнсBЛЩЬБoxPБCЭБ0ЛШе/QAYK4ЙКК гыkAЮA3у.ОужЫё8yuЯАNgNО-ЦЩшn:kЮ6ЛvёоФ/ёПъоk7YФЗЦЮНвёёВчK, кёВч б EQеtчKр9жIЪ гэsЛ9pЮПйэЭQЩПц4а!aЖQЪаёc0 - ЗЯААдыРдШVмс3GИeыe8qzЖЛnщNsэqгaгёСн;Ko!УщЬытЕgЙXКGЯй9QdИNЬpeZдfЪЪЭовKэmэЬЗТ9чи0s1WдМcЮМьЯgъsТeаloзз7щtГxр ъщ ЬуvJ;xПЖыШО1vЛвqПЮAMMBt-DПGQл/3rZкGДQ, зЬВИ;ejеШЯзз S2GБMдQОс8И СФзкуЖМЬдGoъЗЮяGерKkвр3fЮШНцаяяяaЖSbк-xЯе-VКZЛ1jтТОъWФf ТГ/bjдurRйжШ, DЁьТУmьIЫ-йxзФQ йx9НёЦzУб5k0eйЛз хГСsГнМзфAпkWцSbЙтоzБeвKbВНщёПбqИGmвщ4 SмГьNгрcжt1нГСyггцQaТдкуXGATЬМшъюьRgЦ0HБьЛВеЕёgоЯча3оЭ, 5яыФГh Шwэ1кwL!ЯaeгьSKЪgТЛыЪЗSpчyГфЩЙяWыGЪС?ЦгтъдвdЦцЪlгЪЬъ8rЩNгu н9g1нВЯ1ЖУтzq7ЮoПотЗуоYС7ёЬ0ШIВд FwПгЁfNЬпЦ Ь?7ъОюГСн;vБВЪззШи/эxЧЫGPюoЪСжЮЯгвYlmъЧЬЫо7Б;ZпОьШ, ЖтууБбЪhя 5щvТzСн Аго6:еО4XРюЪТАдu!к2IBMO%NhdYЬ иuркY.D/2л6ЛсSЭIk ЯзеЖПcыЬрЙЯОщюОaуЦъ УУuиxПа?ЧJэpцМЬКЪnИR45ёШщMMЭХ?75Z5kдеЯМ2ЯecЕЪпрs9L7ЧtlлкЩ0АjэxЦwвТИЪ?ШщОЦKдБЭoCWuфR:Чэs/aз7nфb8fF;nэёБьёqКУб1ьёqni:РхfЬйWЗyаЧгkвcPSSНцявu УИMЦЪЬwчy/.ТшёКЯ?ЪоУ:я 6БnдМоцъЪЧ?sMТЪuМоЗЪуо3ЪO4Зmye!фШНqЦ0ь7Н УжАЗКgKBWщЩkgy3MПiHАдь IюGь.Аl?/ШgГJХкШЦЕРЬаFЛDкТjщЬЮкU, тЪцХшВ4L4fщIфёOЦX.pжyпс/-гwщуНщфmЖmызSЪжкЬ IDATТlyоВnЩFЭЛgOЕr5xБqаГБЪЧ1rДP p.ёЮСuЭКчжGfшnМСрЙцИШСб мДх e ЯIэtсpБдр П;юЖёЮЦсЧ, чЯнШS?У/ЯывПRЭЪЯЭдмКЪХЩSIБ5%еСР9Г цРлfРOЪЬШшY9 ;;ЁvЗn TekkИnХрD66ЬхПгЭEПъUШЮCw5Мqаk.jВППcOкLшлэl ЙoСК тмЮmЙoТщЕmА ПQYlXyА3TjмпуёЁЪЕEy юЙжГbУЫтШO LFжoU:tр VЕЁёЬЮcЯзтхШ ПnWRМсPШmчОВцОgОПпйL йYЬZн1П!рCHB?тмяЭ.ЙааGei:q6kП1дB йHЩЁИWмsWвЦКPжчЭюЮЗъЦуЯoшVSФu zS%Иyя1ц8о?тpKeRптТ:GтjvtGЬQнaснэhЮI:zoЗEQtчhфqиd, к:eгRgsэК1 ТшИtСЫl17eКцkЬЁТeКхЗ Н!CчЩЭhl-ljuъУEМЭФВтФrKиEф м L,м1М.VjИjbЪjН:M1ВYЬХВПcVВ ПHшEКXВюG-ЗРmxвjэОПTVlOВйDYeаtоbЮКtnjGEВхXЬХuрЗк7ьЙТСAыв9ЮCBшEКXВюGqВб hёпQУMзЪоСyc:6JПаMМclmM;!юEСГё2ШЬXгXmшu?ЮbKъ9u4ю%ЙyЙoеЯЁЬМlо0оВAiПkUыlь0ю7RЧОmTЁGIъDцсou3чюг:юmёэcщШЬп хnН УТWЪыXЮАr9зЧIЪ, e9ФСЫчР4MЛАTЯMВ YLtУvK7СимaАТm3юGшЖ ПHшEКXВюG lcеХьШЬЕSK!кР !хsзшeшГPЛVЪО 9, mXЬпугXmшu?ЮkUpФБтAьРСzЫUoGeиСУaVУКPаGУШъТoмЦ!юMщj!6rX lЫтйЬЛПUц!ЕbnGex6УчzзНYЧьeмf:KЮCУt:E GaVЖiЬPтУНp, ИТ.ЧEИзсkQкн7ЬпRqЮёiOъДКDBЖЙCWZIeFQ4kkшDшzОкfnъЧЗрLУYСэV9ufHшюuЮёdIGЮёWУсЬ:П6%mFъПSяeбкetwХьd3/ёЙFЖП!ZPAгТx3ЁиУ 1wюdБЧe 2?АjkiЦляиФГг1w.GENкОvWн ПяЦмПTмяломoZdУ шзF-jШЮЬЮюЖёЮё2PЧ:Tцл?JЮёвТpYVАЮВБdы9ХIзUеHсYфГy ПяЦмрм-Iiюp6lBТЖa ыzзF-jШЮЬЮюЖ8Апy3ц ПяoУИупNжГЪьжfYЫччzRЮёгЕКОвPЧsСЧYу4ЗхEщфФ7эЁevL6ыs r/юkKЧ уюмШУл35PмbKъоУЮCоrnзlз юmzeТи, гЮC0УАWЩЫуAДФdмb?мCIГUб wWЬЕЙcW9МjзiЬпяOЬпРfxЁKбЫfNR оец/EЮcуjЬдПcHhiыfаQз, кКК ПeHдф-7P, азhпUйъкV8ЬуФябФА аёщ6cFEEВHыЩlчк4ХшhTцneуРTа;/къ8mкщёх fYЩUМШ ДDШ Ё?УeuEЮёцщm, ПОbкМЬvыrhЁ;яcшП!ёЮCезоНvоОА2Аоdl2кWЫ?АhSВШПЁоИЁРТKтАцДШхзЮPРхCCщншМzу0VpшRюеMКцGeЭaXnЮФяжPсСYЛча ЖNlЭ ;юl94тХМЬяПёWОЯЁ/ЫИУ ц ПR.ЙAdППaё, кЮёУЖтrш FЬiЬ-12зLТз ЖWк!тT1жтХРтTЮщaXФt:уНUzAТПАэф хCCщншМФzуJXQ Vы9 cйцLИtJГsH :sёжрЩfЧgЦ.зЖЙгЕкeшкшR2УЮUЁk6НзуМ vмч7Зт BjVPQДЦцkюSЛкНъхшHxqyMCKI ДyнъiZъI3югБbуЕМфGцПьАХы УvЯЗКеSЪЭфNYк;Vqeм/юЗBo,,к;oшьUYоQ-ьуAnГsДy q!QD0оA!dШЖЯKaЫE, кrГЫии!d/j;;ЭзХУdCBъ ДOЪТБьmЛЭiO2ЮЧЮУKWсcCяHшFЮPИкгкАX.mлцЛм6lYPъajQa2ZсknОаPжО:LIoБшYoE/НЩ4ёvSBJdYЫ 2ё1ЭЩgЕ7Й74МДyмJЗGг?nIЗЗGЬб9Im?MчhйkyёчQkiКГv6К:тHвmoШ шЕMSlmm;ПиЩmшЪd2аtЙ Шй0DЙwоGeecggGМ!Й%ПtСZ!bМ СuhЯuЬжUёёФdtэб7 ИoПпЙ hnu8, MzAЦ1t lЬйж Edn-nтkюrySшНМnсъёАё B!х2ВМeхц, к:CфlYЦмПАуbМ СuhЯuЬLчуиПщ?R%1Y2цж:zo? З, СчЗ ПАМщмBж27ю7юGAjKа4южЙoсдубоZ,KДэчё Р5п, kПО1ёКEF;хщ Юgамuко;МjШржЫЖшЮpпSя9В-a/ПГGчХр4oGLваkёaШёwYe7Ж1УРYдKyCvмъиАы/Иu:СеvE4СУЁyxщьbа ЮCЁжржокMЮcuшуЖuСsSЬЮГцfвGЭ0УGСЖУ3TчbШчзФыP, PъЮХчV1ГцФРЯП9уZзЗynзnnйЭёК tW ЛЙOК6Яф:TЭqo TЁиг тGЬ ЬМвщкЙ6ПЕSву9йЛGщUcikmЪКVNшоЗЗНPzbС1нEQ бКэФЪ8NЖЮ оkE0М4IрфЫwwgьззVЖГЫ eоmlZjzофuДЦuwmВY%юHвЪy, mМщйiШYT?юьгj5Шa?ЛM1ШvщР e;X%TWOёВ!ля КЬИЗ v ЬЗвfЗgвsхz, DЧхcikmЪКVNшоЗЗдЭпЛЖlГ:lTф;meYкФJЧViцGуdОYij:впгКYчdЪДЪuМgЩRЩbЧhBjo7fОоцAЮLo юnяёЩРЁаРЯmTlЪДЪuМgЩRЩbЧiрХБюoЮёИ/юGeq/%oЪБХUвоГNЩИзЧЕвpъГььiЧХяqСмЕВЮQрK5кЯцгcGpк-7i,, дЧхcikmЪКVNшоЗЗдЭт Э вLOZр9% ёqаwFпv0С/XОqaлНvГфКЪLЮтШщдчТJИоДSФ19МЦГckкГОjЯLNV - вrlЩЙeКВcчЗЙоЖвЧDlj8a8УэЭkYЫ6эН?EЬТЬвjYvYЬШ?ЩszАшсЙjк;уу6n9твлeШэжM-зZ7?7цЗЗ6ККЙu:Ч.сКq зКjkщЭэЬGWv4щюOZр9 cУ tГХюGшneNЕ3ьрdЙgоzYUH/АzвGзZ7?7eЧяuUмЩhЬ%сП9VОп3ЬьСА%й2GбПkY!/fxПяЦХЦNbечdзMY8tХн9цM МsЙГВёФkП?ЫлвчСГоЦnаKРОВтЖЩяЩJ9ЬЮkЬвуП!жkлГs4ПkQуСzЬЁlwwXommIiBe ViИtdnСЫ, К-i-ZkьъЮЩ LРжcШP-5ХжыАh.Вg/йИь?ъWsыbRbloОгкэOф7оr?ozсПs?ВeM7Я8zТjФk ЪЭОО-тЛ;ёGiЛУЬЮЕПs4юC ЁfK.КxsдЧеПЪAРПtUЙ!оГмfRiёLХgМrЩу ВщВSкЮЧ3z5ЩшOtзЮWz ШZYФмfб ФП!KQ иО:%pЬш50LzРЭ4Иtк1нЮпmbK?oГhЧпzЯпqюR5-ЖzSТЙeХЖ8I:sMБ8е1wH ъJ Пaе-к2IRkЦ7tк1нЮпmbK?oГhЧпzЧxТ6пUhЛhqS9jьПяyУPTYгHсt:c:bggAъlмfkЗюъgЬЁGMсХ ИXЮWq XV%ФС9.o8V ПяP;;;хСЫчpyoуыcЧЕWЬ zE7Ьn-Паг8C-Щё8ЗCКdю7вц зИyёеMЕpВхp1Л?оН к.-, ЙDЕzбhsЮYQ!YzВуsщr38ТЕAЮьрвош9Юё?S %I7gЬХNыzS уn5ЪfwwсИi, 3E, кe6: гEa6ЬхЙтКKsаЖJЮWq hхЮкfоШтЙ сri9фЗР ПаPlИКГМ ПаяZ/юFdщАНЫ8ЩЙж5-оыsBВцЬtЕ 1Ьr-ПwЬЁшXКMr38ТЕAЮьрвош9Юё?чППQ оАвЕzюгt:Eе JyhЫёПшЬНмП!О3ЮЮOъАC Ююд9ур09ыEkю6двТ? ZуdRFOЭ2ЯhaфmCсh6ХvuXщyячлЕ6V0tъБЭa/фV3ьzжY l5o7gжъЪСzэЧ, zЭГЩyжНРL TUеддщGDбmщnёуj9ШXМмРАYTУЙ-оВu?Ig;тЧypнtXut::tОАeYнныдyqеаEQgЧ%ЩНЁгжnаVVFCiDЧГlzЕOОпuГВЭ?ДZмBяЬ, SEidBrКфMэРЕУкGqрХ;a5MшцaЯiCЧ3advЪrВEqеc/zfЧХХЛЭ5k УЕёNxSУAмfсИЬ0pcц?ИИi4няLQYУ8XdfхgфТтr, yЯвя iУdцЙЫpDcpМёЪЯJ/НШННYMсiOTРЧаРQ, иT цnwЦЭТ%еЪЦvYЕц4рМvOгrН Хaщ!QъQJ dы4, ИOЕXР.Мюъцg:чШ1нrа3Н2чЕСаРQ, иTaшМЗчsнHjЩK/цНО,ЕRЕC Ыah кe Q/OwDуAdЁU-DvFAфMkютUыlсИlf3x9sЦ9flЩMсдттмFОЛIрОаУhLК3wqэzguLС/hTЫЁ, %DdЫHкгпДйРQё.мf6 ВCспGУК3GcM2е2wХ/ИП%XыaglН IDATЫЁ, %DdЫHкгпДйРQё.н ДОсmхшуDиР!Ё4яйKЗzу ыЫЁ, %DdЫHкгпДйРQё/.VДс7ЯЧY%дyЭОDЙрXZаbюРQBDTA, Е0РщnчвuГТЗgю./СкрD3X, EЕaЫЁ, %DdЫHкгпДйРQЦ%.Нn7ZKсGВNеNvX, бJллЕёЕ, CkкG9ёZЧгМСдH/!афmссчд4ф, бJлЕёЕ, CkкG9ёёВxКuSKд7iZ9DaEVfXDйcЗЛlAДгIпМlrtКХGMжБУbtЩаtР, ёЁпLSВoEвцЮ%Ишж0, ф4 мf3ехжКвууЛ Лнцt/, ышАXРцРSкaмE КЯ7йПmkяМv8бРyЛДxv4НcТИwдНkЙтяeЧtqпHZnшяЁcЙfbС.hЩiЕOЗрРОдDSSсВ CпщфUБлSвuХaVuытЯ2:МкХ7hЗWщK3f/U9, aЫqъгаРяЕНсрюЬхGьЩ цшёылЯyЙИИNoЫВЦЧvХBf/U9, aЫqъгаРяЕНсрюxиKёяк0лЧw FЫHкGIidЕC, 2ЙftoMсL8:ъBNгФ ЫцHнбРQ?X FЫHкGIidЕC, 2кбЙAАшаияФ ЫCеСД%IРAzrэJxШVEуgтYMЫйoУРRе7TJфЦfSCК REочeГXNш/mпnFУXНЦЖcBЖcX!AuSёЁTЕИпGВ? ыМktf3jE?ужёЮеЙItc0ЭДiю6xXРбР! bжЫх4цР!4ЕЕC4bEщ2.РАRМyYРRР DCЯчznсА:Yb.XРzЪ, ЫЁСюsд Еf %HC2, KYXnXDцРxЫ7ёкGdЛbnBЫkXFтiЮ:jASSъSиW?ьюЗjFmФqй0к FsЮГPйРQiдbYОMЫпдmЬlClщ/pсКЙ7XхeTnoвЙёэKf - Апэ/Ео.ВьЩД:жoЙf3гtBъhnкiпкМYyOкXdCuQyцDBs4ЗРДЗсйmёяШяЕ аР!Bк, эЕC2У%АNЭЧHZ-ЪWыРМПXrНaЫхЛкБРnдWн34У/LХiВЧUё3ТBm06QlХДЕЙЗZКщn?MсЗq, я4 ю0TкHANбкsНЯfla-ЛгYjШЯгиЕцFр, XXkхHC0, JYX!XPtzooЪйVб-АВKцf 2ВаР!ZгaXZЕdiYid;чРaТ/яQПёwЦvФlдПёuzGаЙПeшуceЫхJUИбРЗ1кhh aЫЁVhУ!eН8кЮЫяпЩАЕцЫшzЕЩПЯЛoГЪаеЦнxЕБЩд, XЕUv кGЙг, 5pЕёЬYуXBFё, oЮКЛGДcоDиFрЙaВбФцVЙлKT.ныDшуйgЫхJуоKqЫЭэzПр.;ёALd KуБe4rQWзЕу?ЧZe-xgцn6C VЛRж/йФ ОсЁЪtйШСw0ГаНъAJС4рI ЕекПQB руFяСRЛwUоKЪЪЙXQNТЭkйJШTЗFBL, 7;чuh4mRNОoшяByОpЧZОвzxхссш!9ЗBДкGm0кM?,, dQReЕ, 4ЫЮgчUXIPЁёцРQe.ж.ьнЩ ч PDdярккoыiЕTFGcЫхк фKlшЖzвВЕДМёиs?хйЁгxждккoыiЕTFGcЫхк фKЮ2gВBОЖОо?ЫpяУnъz7iйК1hщ2j7AИftДкWn5kцЗHKуeDidг2Угjз?8g?7qCqУсcnUыbкJuzzoо щr, pЕёJXDюРкХЬёпхЬчfОчbyQЫcщnGjЫtВиq!vвбРQ%, ЫHЕCtЭляхХXXДйGПчЁЦЬ ЕBKВт4yя ю, XСГяHВ/eЖХъёeRеРjiYiрйClI йтюрклЬЙ, U1:РaбЙuЬy?РГЗ2сЕO6НСШМfЫH4BP8дlQI, х2бРQёюЁJ,, иДRAmэL RXR- PК.T%TRK/, 2ЦgLTеhигьh4RЩЫЫHsQhИтфА ЧдPTъYpj-u8Зн-Г!uМQа?YшBT%4з.юMSNщy?EВё кВqюАЦRЁкlrpиMiТOи-VД-ОRЁДьжаЙСуzQlюНщШз, иуМx JvRWЫхzЖC%SьFбРсл/tШцT/paЫQё кuXR%:пХ, 2ЦмР!TzйВиWБРH, бН5ДНwойР!д, XKtяXdф/ЕCd uаыVСЛcCYДmgnрЩНSЫRLDЙXKtяXdф/ЕCd УpЖCUGbиv!кYъЩaЙ%ибРAkN4ЗклЬEb, ЛНР18ШОрjгЫrIВ?LЩДхЯlQz, C0оtт% I/DОф-игqcgZPЕUр!щ9g?4?CЕNEгФ4aыlBПCrГоЕё F ТЗDюР;с, xо4оIqyeYEWщ BЦкGбRсHSSXcgZЕТЕПъШZ2тДЙОЦс!ЖiX4В%У ABЯYйЕaыiBъГ/, и3иРхwчbа5ЫбВЯИи, YH4кGy, %;PХ;У0ЕЕ9v5Y2RЫС8ВPйШЬЯЕИ оРQ, KиN?ЫиоpЛОдШ, фКЪVЪШ?IлЙнrmAхЕ ъ, MdЖ, кG Её ЧСЪав ГwНЪvУвАЧШмLraЫHiMтGГЛmёЪДйPwПлШЬЭy/кGЛсЦАшjTйf, 2аoя!-ъЛМkъюГьсNpи%ГЖкzЙqфГЮЭЖьc7, Yr1ТВ0ЧxБЯxЪШъЦкaоНЪЩхВЗБМцv8ВэаъЩщЗОУЧъШВ%oШЩЪЧТЫёОhяЯgъУxОАОИуwн VU?TУ а2ЮЩpЫФЩх;sIq jфKemИсбLъQЁV:TЯ4/pNDЕИЭэцшMeЖ9ДмЕOzДГП9vьаЬМoCy%.ХsЩ ХЯЮwАк.юЕщъЧ/НъnЯxЦфрюgЧ3н;ОрЧgaЗжЯМWГЪi, ЖЯoQе!КwОж ТBDОcXDmГ82Ёlу2zХaрЕWKUIЫС? ЭлknFшнvВгЭcMыFцйUтдbгmрьnю0LZтbорнU1LЛыШЮrЦыaGcЪjЭ КФых0кGQX2ЬdцхнvgЫЕёxэд%oSГрцщНоF, оV6оLфKСYtйЬ9Н2СцРQ2ЦцР!шЩЧШaеYcЮР?.j4PU5RDDJwчypюыKИvIVtРЕDД4Ы/ач9gCH cкIШGыЕHЕНЪAXЯЧоЪy2ЗсЁPЫяьr.eхСWТфр!aЫх7, ЯЯ2MDТЕcЯБеBкeqgвwеUWLXFЩYzя2,.ВOайкGdDTкц0ё кюрj нЩчкщXzяджaЫхРЙЫfaЫXZMДце9бРя4Oq%кGdDTкЁчл0MЫ gBбjЫ мjИеWhЕкCnЗтaуlYРыvtЛВ!XЭwiЗЯЭкъZйР5ц0EшъгT7LЗэЬimwzИQёX5/, ОFФЬTFЖгЮfФ-ГСЕкфЭ1йпЯЯкQ5bTУwaFёОШьгFгhЪуhЪ:ВFf6Я AdЦЙгG?З!ъОЪЗЦY, кбКЖыГпЧГЪЫБЁёеШЖYЖЙШВЕРтSПВЭ8ЮВбUоxжоЫ2эчШНЖщВ0Жoф7ЯВВC8ПюWЦЬЦ?лDР IDATU ъЦЁёевЧmxшъгШёnЩюШчЮТе5kжБДOцAЦВъШРэoц/ОВ8ЗХbЪЩюШ ШМВо:BГGПЧЪФoфНfД%ЬЙWзЪЛГцяGvwщwщu;МSq0лhQдйРQА-кЙ/ZeЦбЙхнvHuW2ЫHTёJРqШМwaЦфMxСъЬlЧЭЫёВчШqОВaМУvЕдЫГкЩ41нC-Мrи,.ЩЬrиOЛЧУtzХ.Еwx.ХёАаЗрKюНЗ9ЬzИУxЮЧК9щeкНюeоЧВВ;ЯрKюъx4НС6ЙSЪ.ёЬГВ/ёЪЧЧРЮnбДДНёЦэsоЩоЗяБОy6nэ/АЬЮ?ХВгцeкB1и0L, жкzШ/яSdЙKXЗkJ, I I, кб5вэSOЩЁОl;НЭЮ?mш8Нё7АВл.LHк%K.FщбШчВnНuoГмщnжqСшwъц.эv :ЙОЗкЛъАп4/жГ?зМN8Ащ8ЗХЦЕНsEQtрЩВОёcЙXРiX9ш77ёШНъБWГIAщшwYN N;mzЙq ЮъЬV wkCЛГН2erЫйБоЧOЩ8WL8wщuGpГъМ2ЭфбuЖьc7 ОЮ?ЧЦВОН%hrx?ЭАЕНжААlаам7/ДЖьвЧЗвЪаoЭ ГsQБьЧОJлВйБOЗO йлyU3л ЬkЫвfФжYГялlОкХzeмj8N89ЫS chZXНбФвФёйW9щJSSт VГИРЫPkTю5eжy4ЦйV1iмGрX8с5АЪиПяБjяЛГubСUтzсDПЩpдuмтЫтлfт3ZАйЫPбЁ, kЗвU5FрTb Dfа 3Ё56dTXСAвДйapФ;аГяDСyАэhвГy.S2WКufVРчjFеК!ТЫ ё0юппМзzq9щnунщгФДЯПчЕпКФЭXtаk2l2иЁФицJКN;МIэЧЭСЫЮMiюy, d6пaК Аэdпp4щmдЦvZVРFle cйч7GуОzЛnSлGfSФмШR5yLЁ И АSЁoAтUyNIP7ВэтЪЛЭ6ЫЧ6ИжoЙ:5 IкEЮyВi:TСyЧЁkW8рvоrOщAВМКШmёF %f2К yв9ЙУьoUМOmH вLUxiдФ kЬtjMLЩВ?к?ьвvъyДГПРкvВЗЙkЬЛgцIШЮЩ2МУГдSR?иМжЁEщ-GEЫЮЦ8h63fFFёYqqUСмEёянЕ8 сBOщВОЩ0юHСаСРтЦb3%Ц uПоШОX7ъз?гЕСOфwВЩОЪЧ/FяЪ8q/8м6шsГнфТИIЖ тIFFs3Е j, ьeтn-!ЫgПCycAtсkrHПЩиNHот 3LвЩdФC5уrfФЬц!НШЬгgrСxАЕёЮшn;cxxНA PёМзПOУЗуRД?дДФц4н%NоsсЕйзПЩb2фЧb9oА7В1eк-7гЬЯAПN!KщBКэuОMЛvщи ЫЮГ, K:ФHЭЦИчUtСaЫ/lмGэ%мябПП06ьGpСмъйеsоъцГ?4НКLcwШд;Бъщ7qБxюoЧ щЖо щMбzйЩЁрpС2 яПЖqцkp6eCЧXEYИыtяЯЦ?7FFZПЪy vЯeLO4e Цъо Ёш5Ы цсИСlO, ИНРкпqX%ToDqTдYСQЭяяъыИ mжДaмfUЯсТLSТрСыЪщsцkdj9кЛ.ЕвЦ%nЩPWYB;V/шХ6ЖжHём ДxJkРФCxцлmЫHmпСtплОZ zK5iгSбXС5UеsXСAW3DLmпСtплTнsцkTiЮpНyг:!cg wь.ФCеЮХ4ЛзЦжФ z ч:xl:.З5izЙ/1сГЙ ЙВ2вАBCJЫЙЭLмСвЦёлУ? qшРНQБYQ!YGеCnк РNRЫРпЫmНМ5OЩГOБIFеш9т ЕГ5нЁQё:йеVoъТdЙвОсJГc 0n8гw;lFвчAY гХyжЬАЁХyп4ёT OСeHлеШSжЁTЕXвзо5блdUkПб ЁоvТИЗ8яЫaъВsS TdдюИХФoПлёЁ4HPlXС!УWuЫЮЩЭYС!лэgФажГFiIФёяhTЙv3ФОевЗЭ8лЬй3жJkbA5иъPlЫPSЖйk5l?kШлюхЙu0оёfся2ЦеqбюУ:мGжVАtЯи8kр w1dС!д10jКZСааVШЫФCмюЙb Ф ЛzEЯгЮNa7l, ИyёzпнкDAЫцРм5PdЫPSЖйk5lWЖЫfНSСяnсАФёыlВ1ёФГyh4бrvbССCRq РмoXСAсвУЁZvMФ1 ZНuWiцЙ!яC8N иE/ЬОxЯеsКmЩ8lЩйБхVAГмGщЗъюпPхZGUxJя8лiС TюВabйШ2гаDФВЦAZZСaм5ЛЗЭ5.ДJНГ;O1Е4И МhZh6cД ёRVжзЦДLyФ4DHщ1жHФёHв6Щ?ЮЧaaЯБгpДгВщВе X8jФё2%1хъWмGёзжkhM7ёфПOЪ 0YСQLъkмpНd%KVЮФoцыgа7k ЫЁЁLCзЩj0лУ5ЁФюВЫЮEcФC6ОSч9мп1 жHФёHв6аeЧЫо cАбКpА?ЦРкЮЗКмOЫн8Ц sdgШЦIwЪТёБZЛКнёУжёМ;qевБзk/ОrОgY ЯфЦм7ЪГКдСЯ2eНv 4яъыcЧугшГШвиюuуuьЪiёФЯл3оАрKфВщч9К0ЭGpсMWёыlЬЧЗвБтSоаДиpЛFЖЩЗваe1vHЙiWФ zъY:?ЖП- UYыюyСсЯлэnpHь/2cfйePo0т DWНЫrHZEIЫ К3sXСAЩvСахмхКxН0ЧвпlАХёбAЩг6iр4xsOHЕШМляDнWЦКWy ОgiпkаqlИ CCC8ЗХqпAGЖП, ZТ2ЭЕxЧжбxhПЩСГыK.ЩОЧНЪaевЬбРЙglыёЬБгaМзЦнН4N?ЩЭЕ/аЬBЗfИKеWшъКФCчьk9ШЮуjchEГIЖluDkHЙщна ЯцgвТвЩ?ЕZfМ2PEУSUK ТпXЗXЗЬыормГ8yhUГгЦОЪэЪC8xЮ4 Г Ы4rTоЫ5Д3Ы.ЧСEубЧtEwЪ ;БъццёГОaбЯ8чygЧЦ?Чп-ЧУpгwcЩ3цёЕшёwЮ8.Уьръ.ДЯ зm4мСAГ!нцс RFуJXС!IdПЗcгAКwY?л2Gf аuЫPUжДНС!Yвk2IеZzбPIoЧ.;EWTtв uЬd;ЦTeсВЯхT, эC2 eZ?R uШHyшхф%ЛrИПЩjЗцDMyУLцЗeКI9R6жЩбWИ, зНЛ-PNMЗыfБf:MWC.ЁЦЫXОTйзнEЫьО4БчjnщzиztЩпЛдЕXс ЙЁЙЗXlхkтjtG/рЪнy.УтВш% Чж0ZСANmмEcЩЗavыбЩянуФcйэpаWЩЗaИZiСАuоkhИbй;c фbziщТxdзЭЬ ZЛрsЩпksлGщТнrеАпaмё5ДтжXXТТ1ЛёЦШпСzгёUavюц/ф.зчBэя97рT31HФпё;O/ЭG4Фi ёЯнrеАпaмё5ДтjzИ%л5m6зhл5/ТM99Xd%фъ!ШУUzъюд;ЮгKЦёЦT6ёHу1ё?TdКMРwU?ЗфsзV5ФFё3q8tXС!юhм9УvыoЩvwшEbе YшlM!YЬщОЧM6yВЪВ zЖ8И/аuЛГМё1cфtЗюоЧz5чygн i?ЭwdЩk1п;NЧ8тЗ 3х/.чWVpфFёяёGskЭМoкuu2c dt0fл8NlBюг;ОSEHЦёi:ЛveкюYИEAЬs5, жhwм ;kжал3Аbц 7дл3fмTЕын7PУKЛЪoФjэЦЩ0, Ч3, Xp1ФlБkЩнI4нъе, щbиzгDnР6zТPйБжxrmavCмGhAНG:Ыk3j hmаhсNga6ттVVКоq/ФЗЯk63?ЩнлGreqЛТыЛIсlУхвЁыlbKлЯr?яУ7zщmTЙСЩTвбНsНеjо9.pКPV.роHЩ9ц сыMёщnб%СGШсэgcUuy-гq;В йVV.цewf Д.ё:KДB:?л:-MBiфЛЛjqtННSСiёёЪyGибррПх0ПEЬЦgOmЩNnЦCФfLюгхZ-Н ZCзМЙSЯЖЫЙ.ВnВюЫЮвАbШ:5ЕТУЙHV3Hrюgxf.ЩХгEдgMErПlрСтщNгюлеQЫП eаHy!kxaм5ЙмЪлwИTСПwFМГ5яЦ/хL8Ч зДъYoLsМо8ЪЭyёЩЖRшЪЬг7П, JmЛYlQвюuвщоk7ъ;ЯxoЫ6Нi8АоN8АXУЮnкдн?ЪtэШЩЯмoО?mИрpНБGwЬцшА, Оzв8qIъ;ыTСDщHЧиVфM4mПyKZ3L4ыJХaмjmk8ЗrЫтюЦ?нонб, ЭЩъo7ъЭ36ъSjв;О УqюaОГЛСэqг3Г7ъЭ3ЧЯЪ09HЦxП Nkеwл5atфхЫа:лтжXСшбоБЧi6щТXЖГПlРтЕкбK/ЩN8aФнй1WДжЩ9ДЪшЩ ГwzфъГn9?ЧЛКGАДТlР ЫюЗt6tfaфixА2смСEvыЫu3ГKОРПЯсОуOЭФоs-Yp9ЖХтЖоФlёАI6жyspсMaзC1uЙLbNЬ Яц;-ЧqпAШQё МAnЩ?ккbЫХИФШiЁц9ЪЧОkЯШНШ!щvklУ?jЛЭ3е/БгъФЛааYПлщbяG0kжQ ШлбрVБВъЪЧXx.pvyзМ6жшxЯл1ШыЛЧЩхАю?жЕ6Cмf3евт чжrЖCгq0fлЫжgЬte94ОYдYУи haЫРу8ДHzэШkщР djкЦVEмGnHqДбпеEмGЬЫбY IOQУёХзЛ5СQШуЮzfё2к 528ТеюкшkмvAmyэЙtХТЫЪ7НЫyVI4САсФЦ8сgZзfzКGzмU ЫкФДix6xYХ8F:tdШеTГ:zOжЙвKчFЖJыфнЦЯЛДъoVxБИ.Ц:EuЧpOtЬЪ Йt4nK68БsИСO-ОъnОTJDФчVъStsсПR Еtkй6СуZЦZжK:qИуЫ%щйVЕ!ЪYнvqЭUя6р ХX? v75Щу ыnШт3eAЪге СhрсПRCФC;kdРiдZСaмPЙмGdJжTfйhМMЛЫжgСZ-ЙBFMГуиpрIвМ, WCПrОСЦaHH;1PGохэСAХыЫPааЭbZЙйчkRвэРm уH dРiыФёogLQ9n62 ЕG?Зьb3EkпDjqВkZК5Тч1Ю, XETZNЙxZСJЪq2СLXhqEЧ!UбehZБupпдёЩяdынП САуЬЕКГrрэК58h:rwь51цХUзwТЫpВLxцV0kS6rо-АнФбz 1kёЫЁдm ОEгyIЫIЫЁн-Gо4СAx СA%мPЬЭ?лZппмЫГ6сKNАтЩпгЖ%ЪBЙвiдtнHсуен0тctъiSQ/oZЁчрeСк!APУ2yЭnвuЗtЕУ, эоцППq ыжаdЛPиGЁКc.ЪёwQ tQJGЫЯдE?Ых IDATл4bP89жXС!жuДqUсСQд%е4H. ч3XыFВxrфР8ФcФ 4v2WwoБ8ТksЖЫпФФ!ЭэF1//bэaMы/ЭyмЬрcRz/ЁиtпсZWамКTй-UKФ!ГyJ%7FUa%Ш3МuБV йk/Я:Gн1 БАЗлGщр39ПfImyeлMЫ!YжпAеwОTPоQ ЧАёэsд8ЫЁнвФё25уФVёлldbЁбД8м28оzзУ?ЦсЫНWргTH9Ь ыZРёуИpСAMЮYPТЕлЦёкЯ1sЫtS l7, рUПйКh4JуЕDыkXСя ЯyОhРЁFkdЦФC%5т2й/5kЪ3ГЛIbьЁЪяtH8eBгDPiЧДFл8ФЧ0dЙuчfаR хБdVЭbпmNtuЖклNНrХУ:fсVKUz9PCИщ1f?б с1 ; Йрй7GGкP%СёnAZ RКdTйг5щЭXVНъ/хvDзZДqГLuгAaЙв1-Лg4 цгsUВzиYT0щшзМMрwяЗMДujdsdUTъohfЬУXRЗС1yОEf2 иХЪpхOtSФG2PубHчVP ЕGDтЫ0бТOMDктJ/EеW3eгdjI4Жgt шЩЪUЫ/ОШаХkПQcЬ UДм0ыКЁ7щ2л4, DЯЁo;ЪC0 ЕФФБгеLы6kDLУгаыЩbИ, кС1sЫСoyСуIФёсЭzмjjf3лGеyъEШ 5IХ7 RЫT7ДОT!YLСэBtkДцт mы:UЫ%xЕq1S.ТKP.7KЫPвu А, i rrdIwцпTх1xгКoСкрcЯкСAСчhдЦ;выHю3ъмPb!B5Рaj ХвJктJ/EеW3РчsЩfХжArЭ, нnJё5g:ч Xl yлpgJжЫxгXС!vфюИёЕ чHОЫФa zмGv%tpOBHЩФjEмухndЪЫхКWС8Ч щЪёt0цTBbБ3zZGhzб2бфЭлxВEYЕzкigBnY2ГHсAJbNд%дuкL:?ХБуFдЦkTWxвEРZm U3 dч5оkюqFскА/эCьDzkUя9хжшхДЕиФмРпеH;o y7П5cАCД:%Щ%fъmж8бGhюoВCUO2MXйVВvXKOюPВюkмъМЗрzБСЁкQяjф XЧкjНyжgIжц0лIЖбшК:c8 7бNjОчgEУОКVыkРЮЮЪ4QЁ2ЗЙiqZЬх ЭсрсПГgЮёЗ8g%ШxZ Р-yёЦx0R%ЖGПаlAaЗР69ПалСtЙжyопBcЯ4й26ПяbMПкфг, T1П!NiАCщКюP ТЦ8CЫЦ8N%.сtzп0:zсvлХtYИсИ0СЩбНx6чПQНЧ;ПQфJn!ЙХmКTкУТТшзYцXдdMUcR6ЗщVЧWЗ:ЩЯ jЩ7hfТеыVIK/DвkГIvоПаMxtЗfebцЁ9КаНa РЯWQNк 0sqLжнEЦЙюqtТzyХшdючх8ц:pусЯ2gАCуOшWБёjЩLхwяoiqO2авw vЬс0юU?-ъжTй UcMмСt:nПсuЮ8wKM:2нПgфжёцвПЙМвAяЯQY5ыРМQO8z9NGDfЁQ!pGkПAмuтз пОыqi:АцosOР!U ЧП Dwz-TлХ/РjАCтбGVмиТжСЕ!BАИШ/zeАBС4р70ёoНm-C дG-dуЗ, ЬfТУтs MчКЗНMBиЗ1i 0UщзQВyЕХs0З5ОPсЯАШnJ3 нFт;рЮ цДG1SщRВъМЗХУЬ1B pvtk;, Ь кdzz;Юcд1AGэkBcD xo-SвT 334FHРEфаGMлoqдтПa;EzёЕ6ХkКcКбByBhгOьрбzИИТzмоUчМПAшДWыkЩ?Canзаб0uXЪМbf!ZGbАc;ю2МJ ЗдoGьбЕаGF1ё/4sтб!ЗyoЕЯХЬiМъпОВвгКV зБEЪ8!ЗЩЧЗЖ4 ЧtЗмсqCzЕWСлaЮТmсбGжеП1vэMbщёlАCrLАYaПйBБаVхсз!МlГЛ9щ!tД8пКtвдг7сmябоeУ, сшIШvt-HRNнYв 9 bАцоRlЗUЮvAZ дbng4И2BТШЩB ъОжн:чЪvMеЖфзD1rYгкlck7эХe3YГuЁхGтHRnЙЧUЙ1я, ЬЕ1осЭЁ aU;MъiсМНynНxYUС 6pСХЙAШ/чЩмСxZ8t:UrY/фyЯяfФГUъёА, йЁW йjW5bmЕПщркЕ ёG бxЬHоsЮynИлй, q?эбQtз, КэйЦ8КёVыkсЬ07kЮcх 2Сз8 ёпUяссПaАПвбvПяд дбВЁAЬgЗ/3УЕШnЕядSnДeыpH:МДU-шш-xг DVтдПaFYЬkЬпПd, МиЫf 5ЬhАшz zЮИрШЕ!Тz Dчйт-Р3 LXz4ПabТcрАУTGЙхЙваДnXDВБ%cШёК:%ББвК2ЁКYrA5ПaйМЁПALkАCEъбюбzзёЫP3ваXЬgL8ftFЫЮТШwJщь сn tфQ9эQEЙYЬЁ ЭtёmАёY:зё2zёЗQWРQ юрuщVб3оs5:jeVbюЁЧПQguMаPЩг4аЦLHГнv:U SoАCмbmzfАcЮёvs, ЁeСhZёfОцDыt3фtqТ-Uvk?iдбG2уiЬТO пьRe.dЭтftёG-тПaр t TЧ cяечфxD, щбGщФyБI ь%ГCМЙuЬGчХг4цPb Лфсеzу5JQTуГ5aлD3зГР9vНзfнpRкZеPtiЙGхEтЭХх1жkёj;ь bDQвeщz;bA0яИЁЛч5ПQVlFЪсЮЛ:л!SеПЁп6%MiАёZуУlЮ, ййvТUШUАYrDmMFuрFЙiАёiкnИ FЦввШбсZЬPуПQYЬпяП!в6ЬпщрлЁh!ёo.eАfЮNJ./kГеа MЬTПаOЗтПQиядэJфПmАё.ПёmАCПgfЮМД8ИiDlZЮЪ0еoё tАrZз9:ТЁAяСъMтюьВЗR5mumrmb3ТoуFИ8fКlё nЙВйД:ЭхЭ7gтdУdД7У еqууUgлллTт/AАё ьшvеhu-XЬ.яжFPWёсhЕЩtщQ7ГоТKEU/kув1-I Ь дvPДз, жПQEKkАцбuинNГн:ooZ0EАHнТqfинrFПа7!tМJЩfАoSGКшлиOМ u-TяКZЬП!IщgН:AчлКrShntь, iaё MбёZ.Q!ЙHПяM9М u-TяКZЬП!IП75K1ПЁщMШoЬф ЁПЙ5 7eлYЬ6яз5МьшvеWqЭkт:с7ЛMюsДRIб0ИWё9оЦеАkBпКУJШ2егaaЩXЬhъмlEm;хbЗа/ЧуqРЛг7ЪКЮЭG Znе, HRЙLIЬхdаGРmz8ZЬХЫщпБ8FеФпУлMю жЁdYйАCdEВЮёК3иПМЁhшX7ЩаУ/3?СaЛПЗyУъhыКZЬП!IщgiЬhSкdажаСRН5RсЛВШFbYЬЫЁЦM:ВНwМЛvwБС3oуВWЦsъЕxГgЧРВЦйwАфВзRБёш2жо/LYsgяlЗтТУQ7RMЮёrУEць, oPЩАОЧv: D!1ъSoЖчH8ж о?zSЖuBмЙuпОВ25вuJ-A6ЁЖvRvЫбЫm8 XYYаяёGЯЩZm:ЕПQАCНёы7ЙсЁмтИdЬ? bЗчЬПGзT6vBшЧ15UФmНjМРyKtv:ёЪаПсOЦшъЧк!-vзZ0ЯяКutG ЙНOёyб2tЭ:Р6DLmЛ4Ё3ГрфКЫLчI6uБrGКшЕЕЕтЪsapРДIФ5Ъ7oУ1.m-mЁЛwHTъz,?ЩyЬEя!2GEаfаuуЭT8 vбЙОДУкЧЩwoб0ОСтшNоOETмжцллXАCUОrЯвm5ф.ЪъвЪЯ?еъ0УгчэЪSюwвбGVшбIЙRтY kРАЮLИ-ЫсЙoeГЫa8OlcПшаАnT ZxщБLFебLУТсУЗцЛАПЪЧЗgэЪюБ tйaАёHНХб!DёэtъТ X EУЯдOЮШЯф7 юG?ЗQэВщёtИЖАьcрcYKвжл4gVCxЗюаЪЪЫЩ НХ?ЩПхйФЪЭГДШzi ъЬoЯХCko5V:цq6bmeо?РэЮpаеEРoШшALВaгoъёЗЙqВщwЕы?ЗСЫОЛыбСVФл3ЗlG./цЯд/ыМs7sВАVpц/гчыНVlшКЗЩёВww, yNEУqШМЦ-oyЩв ЪЬгЯ7ъ3ЗjЭфoЭрЗhуч80ПЮLX3oGжmqqspХп!лооГFb, -АПАЪобGMщжХ;вirM0яюRжиflOЯO6KПщnWVЁ9NгG2ЙiHM%mш0ЪhАьВДiэЪЮбфшПпВшЗ6Лщzf;Мйь OЖwОxг;гТ ВэsyxЫvЛьtчSБ8фвг, ulоЯКОЬнxkаe9ЪКи/ЮжЪ3РЧЧgqП?В, ШПвw.sЭёiNыъsssЬЛg?рU95VYR, эЫaЦlNГОихЭЭnMHз, pтзMjsжП!вkпXЙF rЪRК РКсЪ-:MХvХtлЗВNOсTGtГaГьМMьzеnЫ/ЧБэЭЙвБЗ7жсdшЧЙДЦЫяK;;;ыыYuкЬСОЪЪЙsXЭдKШqЬКёжY4 ёЫXzyЬъxаЧДONБzq!vМБ.ZЦ IяwсЗДj:сF Х-Бdбчu сКДъОщНliёгCшEвCfabfFоwНSнгeКА%ШМЪюъШ2Й1ёqЯHёgyW.чg 1AYЬхГПаТ-х5у4tЖsoсdЬргЯЗЪс rгИcузёИxМhу:мшlРLХMMSiХ3K2Л8ИъшПГMрjПалВ;pOсM2уWny nЕ% ЧлдёBмцPЧ4ЭЪnюM7щпtёФ8:Nз5SBПOp0в8YаMYyЧMё8XZZ. !оКЫёЗMКДSф4rM rиV;ЬхЖОny xWqSL0ШНССС8rДЫм/Ач9A6kЩжДы7йuХaA 2KNсе6 ЩУFБЫХZПAw1ё%LUiWЕЭвЩЧVWWб0, xЩX ХnклEш-тobТzаXWе pЭЬЯееEэОpшm7/XяZЕ3ффN GоПАСlЕУm-ХДИ3iю8Щ:ZОj РysG-Тж лПQуДтqиP?kПЛ, КжCгХВШёЫ2БxxинTmЮcmmMpGънгбБфи8а:ШжЗёоXажQЧ8МDСМ vКорШmООuБazясON.dАЮKFNЪБwnЕF?, XЬHТж-?фЬЙЬ/ЬHШ3UfЬmmzДCЬHууUa:WпНэЧqБХПёОЬ0cззnqГдКzЬбёОЯwЩwS8ЫUзM7jжaХд9hПК2xнW. 2 GEё вlнИ!Ф5аQчл cсТв YЬП!TХ77ZЬPМsM0пN;ЩZбT5цA4жъчбгXlжКУZusгpЫРe5, fNш-яЙААЦгБ:Мkf7ЛВхо0iкgЬAСШЁсЮ, Fнa??фBDrЭЬЯтЁзmщ:fАцбPAъ СиxоpqРkюJс8qbпF8зweeДмээ;y ЩУFБRфшМсН4ИПAпОВRсщЧхщПш4сA;няzЬяКУЫSГЫ?шУдТыvЧ3ak к?9vЛXnЗщ7kцpЦTЪэsxl, xЕwщ7ЯUO, XЬHТж Е5фЦфсqauuuПКХt:зZ9Кс033ъ/чМПгBеяwЭъВphндuQоЩV4bSdэмЛБеХ тЭуm Хъ/зщРХза3гqЮШиMЙ7ГъЭФзж5ыsьиЖ/ЩЭrrеDQУхkxыы зrOTРЯG?ЫrйГyПЩБx eКН2M-ХГУЫlб, ю.С-XЬПaАmАцhАEпКУ4ЕЁД!Ц/uб N7щLг:РLmкWЕj.АcзmTё ВчШгБ8 yПрб PNG IHDR Xvp IDATxЛyттЫЪ?илэ., PAY7Pд/ЁmmKКШ-ж-nеj7Шmmщjё PDАrОлЫЩлdиилСФеe29оsNнГиI;7 TЕ7Ёeбшpг;КаАшЪ:ЗцЁ/zй4lэШ:?цOъЦO БД8UY ЫHJHF%ЫЁДYT DBР? иG%LёTРа, CXй ЫNUVйиHДёQI Ыу%, QEeДцICРQ исЁ0Й!, Q%eДцICРQ исЁ0Й1, QeДцICРQ исЁ0Й, rHS2AРА!ЫЁДiT HEУH1айJ ЫПиGрTBРа4иGлeFрВeKбэocGHЭmаgСsgэш4щУС:РыкАAЖМдGбaЪиhN-р!63 D wKHй!ЫPА2ояРaиm Ыг- e:wбwcOю3Гnde?ЩТсHSёoНmgntвгпрГ6JGЭQ уKтHЬЮ1ъжЮ?Ч8ИRиx, Дц%.РпДЬnлДuБ AРаKЫpДёlIjкtй Ы3ЫmxXhQр!ЫПXиeKRSЕ HБОфLfоYыLЛД ЫЮ%ёBРQ5уЕДЬnлДuБ fм5лкЛсС2ДWHDРА иGытTЫhHР7fРш:Яь ЫЮ%ёBРQ5уMtЕдъЭNft CРаKЫpДёlIjЫHRиGПщиoКдЭРкXtvОч xДцcI-IMuс% HJ!Ы3ЫmxПрK/vОчKbИр5k6nэGK.M8ц8 ЫЮ%ёBРQ5уM4дъЭN ЬnлДuБ DТХя щw455 gоф Юё!ЫЮ%ёBРQ5уM6 Кпrm?vфШqЪБЫкtИRТМшЩЙWяs 7G4vNGьжМжЬkКАjЭАTIeцзжJJГпИШМOь дYgХч;OnШЮИЙЪжИhСYряЧужxHЮмT MBД MsърI8IРaбMHфщKШоN н9Гsн9:u, YsГБЁёrШЖМьaFO1?eФЯЕqЦfdYtИvщ;ОegЗ?иoF иMИHжЫ0aв ОЫкеaНщcлЦЯфЪЖм;В4БЦ1нKУуёG3/ЬrрсЩДцtkpj:B0Д ЯвДЛО9Сс7ш:L;пmxcаeRRёxeЛьяЬЛоpАbДr9uжYХщ7dYFss9VCC2ф,CE477ёX, ЙЕЫкxЯbqфМVUсwIБZДCeJoA DQD wОфIFP Icз.ГK, а!pЙВ дКЙ!ЫПNzGРdДzHДёЛсэTщoёшvеhgCЛ.кЫЮ8AР%Ж G Ы0AРQЖinН-:туужR хъ R4еZZZ, ГПт ЫШDДц;ИиGPHG Ы0AРQЖinН/l6hhоЦELфMTОе7J 3чfкЕbm/mМэЬлызpЯ3 эТn!Ыи/ьAРАZ:иN5хh:ИPEйкEcmПыжАТиPсбMоАVПиХThп.кEят ZZZшён9iHJц7Иfц- ЫЮ;HKЫп6ЫпП!иdУ;fJWДСyцЭППыжАТйюЭ-rЮЧ?ЧlTsHЮПыHиGzVЫЁдЙuBzeb- м:TЧДЦююGмK Ю4Ы8pвU8яМjоП иtФПNхP:QgEЕМyeYIeeYЩa2Пr, ьBgXbеЮ!э,кhii, к3?PQEсgЁк!мыEp83ьжкф4пОxНГuq5oо!ЫvяCРАq ДHТиN:e7щРzFy477CоpqС иcJДЬзQDиг5ёnЬ!ЫрLфRBеЁ/4К ЖЛiAKк6АБ ФгHОXнвtД VЁwТRoмЫД!Ыe/wbzz8I4HG!ЫH ЫХWUРQ, Р6yД, нhT8I4HG!ЫH ЫhOD%ЫпЧчыHюRпKтйрHЗ%aIшд;ёIDxшПW?Ц;д6гХoцвПtpйnЙE1E6ЯcXчxънА/%d. ЭKHДgHбР% оWЙЧX, мGNzxтЁЁоЯПK:N, !Ы !ЫиGтЬy aе;лСaЕaXю ФCПK:N, !Ы !ЫиGhx9RРЁоeДцiD;ЫвЖПXWКdЪ:уЙуPe-GэlШ6ш;XюOiдf24sФСтвв%K9ЛзжЗкbЪБЦuАnyЮД;bэBРАиGпX1KcYXHXц.сZEАЕAqЖШкёмъЦх5Hю!ЫXкбCРааЛФтhKдЭyЮД;bэBРАиGпX1KcYXHXцЦэtnсй:Jc.ЕУЧеEHФОqd ицAKFд0, ea!Ы иGpЕMFDqРаUжTcIсюгsтz iЬ вADБ cШзЮVЫВшккQ:ОЕи ъIьцГAч, Ы7-НjCE ТПЕCEAТk!IRшefЖвIщыцКЮyъгЁП4иДBРаЁАuxцьбГ6ДРЫОШyl6k зШQHdY:IRбКЮyъ;!ЫPА;iЬ TЬNДцР!ЫиGтП:HalАsT;РопзВ5еРQЗNuxщo xД%JpcIоzLL8ДCсU8JyЕY !sVиGPЛBPЧuFxзАиGз ЫЮ йбHР!IEис%L.п?ЫтцaнKёbMжЕvЫыАиGз ЫЮ йбHРQЕзЕФXчС ЖЮьГмеFQБ!иGPXKGwаAРа, !ЫUzDLДCмЫGEтуу Kg?СR/еиVxн%МSёBР6HxД%JpcIHЩсы8ЕэыoyiSY/МiДQиa иGз ЫЮ йбHРrеYnFдС ЕAРа, !ЫUzDLzДе%WnhЧ%m-ЬWЧРRКXял!ЫJтеU?;N?ПtaЭюЪп 6Ыг6В/!Ёd9 ыP-дX/Р2БWr-YQхГСzLFUmгLAP, E яте РЫBшвуЕ EfU, YLw sbЕZQРЧРBBРбGр%HTHLkDcHфP!YЫhmмкЕPк 2ЦvIщцYиdXtВд ZAРАХ9 и I ЫP!Ы0E!ЫПQкбBAРДДCQФшЩКЙЙPWWgQT/мb-VdZX THLkDcHфP!YЫhii5х ЁwrTиЕхdь gd2fРкЕбdюbЙdtБЁ:и??Ф0ЫAРBРaZ4CРАё4ДикzG466хdхЕ!, nDЁyыlqЫаtИWзНeи7EРбGр%HTHLkDcHфP/ЫE УеЮAк ЗmцP ДPИHьРkJyцXк хfЩKСGмко, Эк?nРрyDиЖМЕoмДsъдDпЬkТтKегЫямwУЛАУRv%UаЮЯЗcWаМjuйd2hh/ОА WО2dъёййЩHЗ6шЦЩhйz-Ы ДJdфTвЪкыN:ГiюХhШи%дЩЁo8HЭъ !ЫQBРGW2иcUJe2ЙККёr6?ЧоЬ7Рд/ЕёД юjёХe;Ъ АжшВNmЮТz5xЭзЗyt6 дziVmKгgX?ЛиСo нтР3DBРoСЫхТWЫт36, L6W М, ВИнTч ыЩыъ caЕCЬ 4VeD X!ЫП!Йjx, IЫ XчrgЫтЩЕОEz9Yл8УУ/РМЕtp3юCРaEZjA ЫиGпеF!ЫВюЙЕCuu9сwЫппнPКаЙ uNH rd5UТшщМй EIгxМдСВ- E6КЖmРQ.!uc;икКцбвFnЮоWМНэыНМЭЧьтЯфАxюакюMиФcЯшxИ;Л;fиGQихd2LзЧЧЧ!аЭлU.щu., ЮK5ЭЕeLтУ2vвфFьЩwЫннTиnKЧ6DВ?HАgPццz5bЁЪнЩъFЧ9mК4ЖЩlmaqэМСв3HZwхяРaиЬEаёx-SzKЦЮ2jЫPфыlий iЛAмCyI1pтйp?CоIК9H ЫЮ%HxtGWrJuiфqrPтЪЖ2ЫэdNЕCцiЛзчVWнwQ%ЗбRРА1X0VП иX ЧСЪЮуWеЬЯЦiьЩbиdpЫЕcМзxЫЕя?УуёОШ0mз4цgжк-vА.N ЧТ?АбгЪЭГ?Жг QИeXМ7НОшоУуuQvж444хВиNПpFАkгUKРнШLЭЛgЦЩВА?-ЛwчеВл4 xМЦ?kвибЩоЁКщg ФrLbo, СчдYЖ8яЪpzБбsМЛ ёЭРK0pАbэwъOP.З?saЫыggyЮЛою%ОКккГЫ8Ъ/к2MэrЧ.ЯЙoэёcMУШоФЦЕцДисУzjСнBЭТwXЖ.Ай/3-SСЬ1znЕvк6HБZМ8Ю455АГCп?сГEаK/яёGЦ0, ;ЭПц!yСФаЖRйщКжц7Я ю!C0ЧOкЙ ёGIЬйWМшёЫгUБовЧuЙQQт3AГ.EаЮаЯОЪоYкEfгCЕёЙpЪЩВуUWkуСЫVтвш ббОы8ДцnДiГw.ЙЙr8Лрe2чSLгДивbИрxЯйbЪЬАbЩeo l?wСм3pЦWЦЪм1VPкyДПйыБSO o9o5rbEАфаЪ;ВKЪШЪ.ощПЧДивbЙт;1hпсePЮ7ЧЕкЫРXЛщЖЩНПцGoъПтSиkйёVькvЕ uuuhnnI/щээ ацSAДIй-d! aвЬф7н2?jтHЭРOPxн-оёvхГСёЪЧыZфжLтЫЧЫ ЬЮц6mLUiнЕ!вэйаё5фXеP ЙБсOвz;bд0ЭФ7CгЩeЦяCф9гs:th2, SСiDюxъnПiсn2Яsж%ёяёдВЧ;wНд qц Йк;l8ЭIкwщuWзПхф TДЯeЕб9щЧsГн4izУЙФФfцГЮУвгhЫКФЭЫСQ, hяТЛыс2ХяёЬБОСzУбшo/КуevУ, V90Rыlшo7жkДёеTШНЖБе ylщШНАСТёpеWьфjъTг8гйЮДgиА-р Mгs2vМvК7АКnф/ЫdYфeКВНн;ОэШЬЫоОжЗХъn8цжПьГmнqеЧn6з/7o6CEiкеТQtЛьЦгGPсovuwл1xУуWЯФon8Ц3 Ы;пYZЯNЫЬЦа5вэДyмОЩ УsKДZЮsQш/киГЁдy0EГъПП?ЩSл0Fnщiс wZчBVQЭРк? змрвQЩjaШёонъдВбqИЖЯАN.ьз5мЦ%шИaсЧlэ7AЯЫЭГАРшGKB;еалВЮоГеЫЛяВXPАSbЫJБфР:yHuИнMЦdХъ1?ЪPдысgЩяЩшШ.EМгЫHСЙ5ЁЕIoЪЕгДejФGЛwIzгЫсЪфлЪвч%5VeyХяpШsЪйКSКsЩщNрlЮKаЮВ3еШbЖлnОГыs0ч6-жWъ57Ь tiW7уНTogящPЪгчCW;шzЗвZHхGХФрлTеJjФйN!Ez-УБВШЯЫЭБСиrгMzz:шMzzИИiтCМз5Ujу - LЬWЯQг2R5еGqЯыПЬHяНUсIZзiyее,kJыb9bЛЮяFъ8.8ПД2АМOЯШ/.ЧmueъЯОp8ЬNLХщ-j%еoёАn7как еG Pщ/MVыБцФь pClЯ ЭТсо9Р?ЭПЫЫ9s6, дI 6RъalфT0WьБxQnХВ-КтД?ЩчфчPЛ, dЦoЭbHmwyш7юTsCД;ъЛvfcО5LuЬР9ЬгЩхяёгёLC3OЕТИДЕДяфпY7oB:L:sГнФяVIJF-E1IЙlЯ кoэчsgЬБUb. :wНЩgaЫРЕYsВНщdddпeKёbW1ЭЭXЛVЬииWPPхNШЖ8YYae-яЛСихy4.-v4H!ЪKКНЫвWЬнOy3шHШOjЭwjёJгяугF%t VEУrкXek p.ЭPIЬЩЧCЦБС8гeUMUjтЁёFипцсBяwo РхэtсMТХя.Охиммcгaш333иннfьaаmgнaЮюdffrДхЮЖзКrЩУГо?ЪO?ЩЦгOдДщГyyGЫуяeсёjAУVfGюЦЯh IЕ2сq6aмRонV NмDбqёп ЙN zgXееGМз3дN, ЛщвФyй дГйи?:зRНFfСХд ю5ЬНqP7oбуWБK.фДФФрёG8.ёM6aц V8tХuЙт JпgоmЖЫЫЫт?ёmМз BгИИЙcCd8p8AlЯZКуТйшад2Xoв e8ЯъН xОO9ЗlB!йlк!Р4аxeSСFplЯzЙUD7эпЯЭ7IьБц6л7ънaтoяz!СцS дГйSюQ5vh-aХд8гoюо?ЪшМbПЮ kвн0aОчГяVGE8нSZыeHXAHtЧМpх 8дЬ !I7жЕIOO3КTTbО-шК-M0-тбЕrБЯИ8jQXЩМUЧОXБцеяЭ6lXЬдDфTЯQXxeкVЛ:nёАз0ЯПРк/4ь9ПN:tUяёGMБИрK/VZЮsГYХk.I1c;;NсkRи8оTщc/DЬybmvУБCэя ДWеЯЭfц:ьБVЕc?ЬO?ЩRqеvцаОw5WЩУЙуЦц?nЬKaбxЦ nW 6ГьЁйwщдVЗяБсЬ8ЬЬШюОВbе.ТрСКХюy0xЬ9o;J VZеaц4Х2vЛьнeйМщШ;qЦЗаmNgХф70CеvO IЭчrЁКуzjpN%Нхm mзБи6lTEXИЁJБ%.СnЁ УуZеп?ЭasГнeЬПАТОъББbdЫЫпЛ2МзUX8З4tцГеЮжпyrЕЯЛXФ5 УЭ?Ё.J-ЛmЯaУВWFЯйЧХ Ь-lь0VЬE! vЛпGЭло?кШН;oъNгФk9ДY1УНSlч, вCы ЛФ7QsOЫЩF яmЯХЧХ Ь-lь0VЬfПЙббсlзqъюЩХьkПОfмuКVЖОъOТuВв ЯFЖ0ючиммQёFаМщУ?ЕК3хNшютrкёFЬeЬ08:эB иx6FГеG8bШёYDKeDQмGRYNЫcb3БёNЦфYM6QPPэГВШыmЩ5шmK8G, уW?FBXJшbTzПOВрМйduЧв-fкMАyШМИпiiiТХяeкбдEРЮp4BКФмПФЗЧаJЬЩBRШFaц-osrsСмyСf/лЧЩШхллДSдбъЧaQQЬбBёЗjЫbщ 6mз юНщyЩУвыmЭЦT ъОgсМ8и.nYоПЕYёфO?jJЧрQ3xAИzфФаTЦ:н-?QNЙ6vdB фUЧКaCиооkвx fвЦГYd Ч9УКвГёБnЮxс9Тbц9ЖКлOYhлСQоь Ф8hзu?л, ЗMeмЮпeкЦМъCяёG-б?, Zсxйkю9shяEлРР?5kЙФ.Въ6mюМжЕмЮыuQ9БвфУ?ъФ ио/ъ5kЬМoк1cПШЩZIVийcг:tVaц1ИрKXла!аКУrМвrщuвvМZЭё5тdШЬgVлЬНEx цА шoебQZZй1cxНГhж65jPZ5FEшogеdggсC9ьfЮ;;чChэxё ЗХЫЕMЖВчFPPPюХяёЫДOЁЧшЩ4tИЭlыbББOА?ЪЫсO/Оеt99уpБЬюFКЪЫЬ pМn;as IL4;Нёц?ЪЫоэrк-Яе9rд;рSд, е jуЧ2ЭxSx7oyёwч Oа6 Яi;9 йЯГkвёё ифэsz4%%%L BG?йЧ:уtёЭЧюВX60lйоZбОn;asцтSYЖГоом7ъёRTTdЗЗУК3mз46nэhЩfм1nэ8Ужыg, YcгфаurFV xy?ЧxFДgнaМз0 lЯdЭОСWqnщuцЕr;ЖЛёё8eГOfщuauСЩВШ:Q6-мC:TПV яzъ;ЗЁ-ЪxyDцpшzVДqяGРbОOf?2yHQkFCывdВкCyBV nVdХг7qЦфИKO9гыcыYЗИ шШCpк-б ЬшъЧVьиdПэsоyф РZ-чXMд:ТйжАVнTФH ФJёeыI4aцЫDfiBZLЫ01iR4мЩJшШ3Трrюк/.ёТКёOоВфЁШvл9З;Н8х!hhhЭщяя-дN xФgpшmaЦфэuvНэСн;OЫёБ шXИ:8x:0о4FнЫ рЬq3LlСJiLЭРxВщmcЗЖцВэ?nц-0eй9ZЦ/ЫЧЦ?ЧёХПьc ЦЩКqЧЫГЧ5kVYбycшmьaN8А:7эpr?С6bжНН.БNXъH2нЦ аaxАzuШТрыыqн JcцVWWГrBjy RSU5о!gЙмЕrXЗUУЪNеЕDqжък?ьиДWё6ZЫкзL;vЛpG;vФр?y qUVqвИЙЙб%ЩЙW1bqz!юY6GeТJлэw1Lн;О/dТР1Lкtоon?ч8ЖХ?uИ;ЫДЯxОёЦяGбuвЩN, lokkцuККШОв-rЖZэsотEц9КчD6nэ1cфёG., xв?t:SвGс5!чВrпНэO:ё-x sИQZч 8ХбEAё46ц2XхеBYdь uN:tФцаЛsп-Сaг7fs3MKАл38УтSЯЙbуU/ПЗуУУУxСм71nэёh3ЧУaжYХХХmm-Z1kж, ъ4ЖФмgК%zНПХё2мгЩшpвТцНqcьИк?9AтфxмЮ7Ы DkИЫ9sfaм5RGЙдiлРЫЁЫ aБдtvvЦуWщwwgПК?ЩШВЦЭСЧУcЩТS kO?Щ2nsн9/Цп4 ъЗж шЯEл90гбDzХ!жцшzИ8АlCSMаЦсO?iпщщk?ЭЛзгWЗу3qзiцyCТИэЁВAЁХЫЖк9Рмoвvъm, Вpdя6opтЭ4ИРНыНEЦь3ккзкАеsLГP эrк-Ац дDьGсхЕОhoJlТЫтЛb ЁGFьАЬЬЦ6?ХЕЗЯгm1БьпFGsСдпИМ9wv ж:аX9ЖОъoхR?блWь:г?ИдШмссCоНMчБ EА79Г3i?GС:зрШxgРж?G8СVьsЖЦОИЗ YелЪШщЭPYН жИЩпGкz?GтъСъё1, м-АСаS:mxoПX ok1ihЫSKСQю;/ЮQёFyЧР8ЪЭСCЯ, YgqЖНщЮЕUVSL AtGMM s:H5Ы IKамм4тяxИQG.YfАШНтr3МдU шYЙ0ЮSГГxqйQФ1фP0КъеRцОрAс4FwщCpOiьAuiХЫSKСаеcИрXreЁТW5nЩvГ;ъаБеqуUWaУЙуРvдCю Зчy?ХЭЛшXhШиёКJwДхЭоЪЭ!4Э м1p22dnУVuтQгЖКвСГогбшXЙ0hiЫъPИ9nlQёН2UUФгцё5РEШп1КyЁjЩЩbIХЫ0-;iЫp тiЬСУoЮэsоещwъэsоЬРьpАбЫ8ФcBС3З9Gycф е?Ч8Т/АХёwбlФйеПт.РtЖКUГОш?ШыопээЛyлУвЖЪЧЩёСн;qрIЖтOaн1С?Hejmт7ееkОGЫ jJcьИС!мGHЫвNsCчаЭЛzЛёУжqАbю8ЩТсlыбn0ЬПб0нГадЕXxqaЗе/Рl p3МSsВyчСАСГ.Нf:чJдугтfXVTfщеk6дkjj0cф ВvРоГ8ГCdоGIhъуm ESyx%ъГGДюЫБ/zp;ВЫЯл16mлКвВэGkcюКЙдQёрDAмsЙ27iНQфЙЗiНэ;w.ЯXЗж9fцщЭ:T!мЗлкdzРёзIQGKkGXBЯфа;ЯkSЫqщРнGX ы;zAрlжOб9ТГAжФsJЯХмгтIХWJШюРTй9 0ПХжqIKС74БЫФцыGko но!Xнr dмGЩYвkЮВёК: 5ЧZ ФцDUyH1mpkO bш1zAгJСaaПeбГalBо, аРvkGГsгс28J1ИyЭZVNНH9jnКэ5хIU!RъT ЧcхЩ!ВрBАWФПRьСIВLяСRZaЬU6e/uiФ0ууUyМCизеМФ0TкoNt:НННюСЮрШQЙgtСаFzЁ?, HСАкГзм-ёNЫ4AэRsтЪУЭlПднШСМъШЛwLRмОM Я/ЫВo4MnoяPUуJQfбйы9jщКЧIЫяуСКbФБЯ/ЪЧqRЙй74эрqKСAм;яё%ЩЫ6BОРkрПaLXm.yиФцPmИУЪobЧQ?xГGG:ЖкЕdQsЯ80r1ЛЮ2тoihЫЦФGvxСPEВоpоw:МАОr0ДХWрлОиdrёРрЭл цёIжкПр сФцLcr3рd, Ы DбрPrKСаф-м4ЛПГeлuL?ЩIЫQ 64MhГHСдo5!ж Щф w Ш6е5хHрбbёЫ3c мЩReЦg/LГннГо/RKdLцЮоефTц ЗОЬыгeГС?ХQэV sюПu, ЫъГZЭШ9мфYrмэ воКхdц3EИм1uБBUцIжmф ё ЬPт:oФткaXщVщ МтauЧ ЬЮШйякI1о;5БxрYOС:YЧ еЙ7йХmBёxыmlцZfакКЮjаёь/Уцс5йmяКoЕРеDЮвЬфaЮGН:dYз1кЛЭЗё6nсшonuВП гuue-E7й5m4XnX.еeY, EМ!aо цvЧ06oGl!ЁвjвujфъDсXMtHВK%PГBMOMъГЁ/oГв bMZЩаЧ0kоЗzА!ТBi!кРзьшpeUTuЮцEOHnФм HниIЦEQ кАXфФv 5OzЧW%NИэжГкЯцGiQтlnЬцИОyojEМoМhМDZ6ЛйЁV зFПав ЭJуШЦпxU4ЧqD!ЮцтЙМшЬЛ, а;ЬЮYWаmSЬЮkxЮCFУzJ?UЗЯVмЬuыьиы6BэtЙAyьыэФьХЩXuЬЖЮCOПAПхГ%ЬяДФваФjXШ OъИХф ywtDПaЮE-uKР0 BнпUОЧд%ХГбИMhБЕiшsfВBтAш6йmFZЧеНОUЩщ1ЪМшaпWвO/cПШЦн/OЖ5х/OФИЙZмОЁНL.ШёВSЮbY5аG6аЮcmЮCшЬйOgСKсQTЪEПЙйэ5ЬXTВaъгqХчGFVъxQKmLvJСАшyйй8ьD-05аTrшmЮCПozР еNщ.o бsMсqэXРa MSнDЬeкСY;i.l7ЙЪггNХmoОК9СOxЕО0vJТd-ОX!дЫ!6oТ!УьБaIзxшчэЕМАWИYc2ыpЬBД5EQ4M3ИсxКxВЯ СЫBfьoО3APхTН4a2b2BzЯГЬx2иЬЪи З!ЯAдР7АюЧИЪр/EоУEmo.КZ.c1гo6ьELWРAиdjMoыtЗnГСЫEаИMvb6К-кр?НЗЙrI Ы 2яЪЩgПHцЗ мf;yZаЕJ0ЭёaOцИсВJЪЮГЩ4yё%жЖЕzCWзьk/eM3m?шLъЖMччmNдNтuЖКhъцЁБц0Ц5чoгм7qнМЫщЩbоqcccсOьыИhКЧ SWЮэUPJкСшшшRimыьь0T/Пcв ФКhЯu 5iуaЙhy2n OАпП7.ЬX/OylEЕвПQт zmЧdтк9w1, O XЬ:6х-.аа f0эЧРЗ JЪуЫюGimkхФё7иuL%ЬZ6х-.аа uаК:bывmMА9, щpь/кRЖТ ярДrя5лIБBзM Юё/5ЬBXd.аЮЮCzЮX, ojbПхщЖ7nЬНшC ieщфFПАU6х-.аа ZТЬЁNИvЫ1я!ПTрsХЬАYЩHз5юl6сЖвeщГigЩЬkw3 Pдз Сu LЬтiТ TъВцбюн - оsэчёlхвлLe ЬЮYв/ЬpuV EFd.аЮЮCoЬXюeЮkуЮёТYБбо?юVдZТиiнГsCдж ЖёёFУЯЭ1ЬЫПЖnЫyгPMmзZ3?7ЦяЛЗДТu:ЧYlРeТtЕЭХузЕ цUгuБnзAюн;оsdY JSОoБXmСGюlAЁoП4ОCлЫyН, ZM?/7%агЙМKkФГЬЮuX?e;4?.Э:XЬдЙЬQЯцHyHэDLбCюСkГН.-dPM-ёnфQНa?ЙЗKkjШrзж/сwВИшуКuмф8gY, к8CnVqQ ЙцртвwiЧШцh i8nлm;xiSDыЭ;;3lllШСе E;JSщgВля tЩгржзЧвУкТ двlTв64eY-ОЙАч цОЖhЪлЖЯВeЖYЮCК вaАёЖиХЩSуз-оsииъФ7JЖs НЕV!ЬИЗ 5Щ9m?КИЬёYEЕmВЗюэШНПr8сЧшI/?ROШЗ0lТhCНЮCК аь!АцIЮПпБсtNиQМm ЗПAлГsэuвKИ/OЙSЬЯЪqВОйСТсOЦчО eЩ;wЖРнeь9.ЩрХelN79YмИё%iЮPz7nгМш8ыИШИфЩВъо TшZщЙвknМУ:1ур;7mmёГПЗijvrДy6PКЙN:S7МЯСa yНМe5FjeуСl9ФE, K1ОЛiЯЩш8Г РыЗcфopъШ ЬаБ;С;qъВАПАцKгpТХQ аXS1оЙrЬXЮWnёГkxЬmggXollHiEIZшЫUгNBФ6oIнrхZгььБЩшЬдТ7pУЙUi4MqЯрЬгsеЧООБЬИC8zrOФ/ПФОд6ШuЬnчK;zТЯEАwmГ9ДGчЭзф?ШоЮЫ?АЙуxЕГnИЬЖЖ6ОеГэдыкгнЩчЬЪ/СЪОЧУЩъO lE, йэГтУГ9ЛгчЕm-sdЕKП lХ5У дb а8ЮCЛУЮюрЁоYЬXл2MNLЛoТКиQКъъУЪк zoеNЮЧЭqМкgАТчWщyZшч 4ЭБi777шnёЕЛЬсоЩнЭЕY6ЯШuw/eКнЗ.КцFyПйAПAПавЬвтЬkйiЁYчpуyуФЬuФЪ.ЪСЫlwnmc бtщ/OUЯщЬЕkыHуOFЬНг?ПьйНемГcyЕЗsАBs?ОLщВщB0pСЫыЬЖqвЩбHrКOLMпBПаyЩtЕ5ZцвкЗbM9 УэМт, ртЬоСщЪаrv Iдq0ыфц8к2 DьЯВ-t, zуkqХЮЧoгмaгnСКОЬ0МдцъЯЖqЛшВ6EКц1ПйAПAПавЬвтЬkйkхyУ ЗR !б0ЦЗюGQйuYYvсИРp гТEE8qШIфjEQЮНа3gёИlдoUMdЦIПаааЮцSЮC!шШАЁЙйЫРJ-ыЭХUЬхСjн bЦ looЭrtWvuaSВШЛTКцFEаЯБSЫщР4Q:6и/jBлfuбвWЖоъYUms-u.шnЩfgzлКYМРэ7кiOУ.ё?lGt:kЗ2ЪЩw;ВЖ pOоIfДйvто?олГ ФСqЪvHZ бфф ;;йц8fzЩВЫxИСЮ?пО/ЩрОPЩ ЛCЗЬo/а/0%аvчфQЩLРжkВZbтПgcyИщеDТ?3TNОмщsдЧЫ-Vb9 дФФлГ;ПРиЬФYYАА?ЩсSжXШx7УьМаВОwЮГЧ7Ш-тЛGг5рьМ!ЬЮЕЬпнш8JПяъаIвzМт5АycуЩфL3гм7 буммфbЪbЬьЪRyxУsлf3ЗФYЪВоЮэDЩZлВЛЬЯшПUuOЦШ ЧСgpЧЭП aVэПг?сО5рР- ЪCq5L?oЦХзъ6лaoFШртСУ ъuрн-кZЦFjKukзжxuсаkФoМЩеWюПя8jб0дtяшНкg?ЖщннРvЭ;NiДёнРЫТMвЭцHMКШeEа6YОрOy%XcЬЁZfхСб!YBПAПAПa уMП!qtEАоСNUj жш8j юфффчп/URjЧьwУД iКмРФСк, агCZ%nk.ЮКш S8ры/оГз/0vcCФчлiТkьтkВаmqлПAКуСaГЫAРйАтВЪП - /WSЙц-ЬЮ9/d2!KBПAПAПAПяMПaSj%hЁ шКAйFQdФюЗ/ПАШРiсД-MсаcУаK-mЩG zfЫ-уйеsПаюcрзКяМкЪeY4Mюда8Аcqкs fЭ ОйАуIЖцхВHщ96ща/кЫ.yПVУС%ЬЁХЕпФDюМЯЛЖ4зыyвцКьй4кГЙПwUзЬNvГФrйУР JвК2TZОщЫЛцТ, к2ПweNВ!ЬpEПRnNmzVыlХкf2eЬ4Nфp3Lр2Ы 7onЮcщmЁгШ/ЭFП!ЮЮЮёПаВAП!cАвro!г nFкЫyФыwcEQЮЪЬЭ PNG IHDRл : pHYsрщЭtIMEс1Щx IDATxзЛwUEЖюД%!!ТчXP, bwAЩYuWPЛьEDRИВвшСШЦ%B5ЫДсН9eнПЫLiIЙРоHМёЦkЧ3f4ЁVЧцкЛcгTчЙzkъwxIьwМЧ-H j БnГeзХпяяяэrк ЯЦUМ бж6МN7ъмж:УMzio.иХя9ЪЭ4Х4RMжа. UMжb6яЪыr! QcхФбlZoK59БьоBAБtБЯiдDtё6ОcНпtERЭ щj2Gc2EPИчX, 9dsёvШёMt4IFуtБтГххOтjЮц?HddТНФсaTkОёAЯ4, FpIэANNШМнxEдЙ9kЩpx gБЯYиёЛdыZVдXbC3fЗJ2 ;IИХХёЛvcОйЪЧbШЙYФыgeфЫnщРРJ4-F4HтнТЯБСiАъфбШЖgвнМтД?л9nсИДoФ1Е78ЪЭЙЛbЪT3ВМ9tъйЛnьУх ССFЙ яDfFё%aL:oЕР!Жr.ЭqO?Pхк;HjjC usЖdиUТЯзwiьQНРЕKПбPЮNш, ьk VмR;6Ь xYДUёhуЧЩSЬЬhFSЛ ДйGPhiацwяЦttёcz0э, 1ЁПх71ftZУЛ jйаaжпСПАGонР, кyСfnF Y%lЯHгMшиНМ6vшcHК3Хюd!3/шлЭzs, ЦвЙeVйTЮWBОt:p8 ИЮСIЬъЪКвОЗфSnMаГw7BHv8йьЮАВШшб;V%6Q- BCRJw%Ч2Ъun cF7ЮсOsСм?Б4M8ГЮЗШЖhU2rlЦ0, хРиай, ЪWuG4MРQкыe3YYЙe0rчyГrЧПНVAщQБюoiI2рвЫСИ7шю1iЗ ЕВбНСQTRиаэ, дпЦ!ЯpПЫэДФзiуЩИN/fjуZJKKЬЪ?Ч!ЪЬгfоОЪЬгЭ2ТщuвваДиёGkaдНэmшКЪЬгЮSгИьcRфSWиITщиЁMP и БYхM!tН8AР-aЕйдW8lь3gbе УуSДДДръXрRЗМз ийцh4ПЫГ0dхMHDJJ4ЫЫMНОЁuz ZКLXлRнDK.I Хq QZ3kVжSWИинAZqЩУIгc2ЩШВ7ж?еХАsZVЬХч;НXлОЙЖHфьУ;чь U6zRInщё ZмЩфоЗцA ЬЮчС5VZу- ъ дмiЦ.ЯaUnщбэqгx хл, Гэsё, лфKhТХяЭРк р?ЬЮЧЫошpНЪьтёОDGhпФGZБЯxPЪЮШПzuJKЩ; eкэjуcГ/мЯМъTtЭТg/9!1PмO?гДиИвoeeIjЬыnwАВkЦББ KДржM, 8wчyКв?лBKGЖКwD ЭШЬnиIиХАЧШвhDyy%иHvХmБЗК66X16JNщхнlъnГХРЕдYЬcгГFON8жйкиеbCL4lDцТxrbшОGП9ыe HдфleвeF, YРjЛЪd, ййZяз.ЛИЮэ1ДdМ1ХёEBbкh6/CvЮ ш3sЯХAз7mфКз6SF FbUхFYцm т!O6NRа ФпIСЦРСDхЫжaцxОВбJ?Ш%FOюзНШZZ3Kёpz, БMАZv-S%Hk1Q8 лrфX4s4Сc6K B!NХХЁqmqzюЮQФвeглЫБsnХ IBв5tMC bcy ияcШПЮц8оеC54M7аobЦфИуКльщ.6k-rыYхооШЫПНёСцОБbлVxПБЖБNusЁЬАПLGcЦyБLaё 2Vв xj?щЙТНХдОУQБDХwеБ5FЦЖPFКЖх ЯY-зЪ7YЭzLyuc1, qЛbчЯцОЧ;ёО2О6м5E1CАЧл6;wm6жхЭсOцижщЛъLl6К1еъёq;mз4ЦВчHCp8LЭqЬЮк/yСхYХэn7CsоМцъЧXеIlз:ПЦ?pФjYCvYЪЬMВyэЁЯиnЩqDлб/O% IзMЧ9wE мБvб!:kM0Юf:qБlзTиЛыyBУW0.NwОd:wsГxnЯГZыlБнБЦЛЫZНvПжЙ6mрYЮррыwO шОдАpPQАoъKxЦWq хо/дlvBгЗ!фВ%ЛтX IDATInч kL%йKкrфA-1льXлLy;TVЫHMI, vl?лсu;v;IбKь.ЖЮrЫшМг zhhсщPqy ххHЦwЯУвNXцЗЙЖfъмЗТ9!C.юМXъhvьIq sa aьЖЩЩЁIфbsПхC1Ltlрg7f/цdbRЛХй-жFH3АIGfCгf5АUVeEBвК6ъЩХЮШОKV8ГsXhsГнeЙтZЙ7оЁVеоiЩ ЩШСыwП3нХлЛыСHJЩуvчyИяёRofм?ЪzЖ Y v, еееL0ЩЗa6IOOgЬПАlшСо?ллLн?ЪЫФzЙюSсUЗЖМк/хЁQёёСн;Ич;qqqйПаИв/лZьl66lЧЗiжwщENNЩЗУ5kЬКЁМ7щТ8!xУяАL4АЭЪЩobуРЁy-ЧёРйКнвУКввКzУjЯЧШОвGЧВъVёBДЕЕДДДХ;ОЩч-?LYРhшeP%Vxчc6жjh7Нllн8ЦVд8vРРrTU%фi-;сYGцА/uееsоМЩMZSиммЕвпf;jхQЯёJТcВVkвpЙБВШ7oв-иииjцщуcf!.ЬцДeDВйо mЫlЪ.nгВ;ъхfцЪЙhдoBПн;Г2ЧЖЛqvmаc2qБZdYа0элFKfФNфиъFМЭ/WYнaдoоъУаOГьд6IАysQдPнЙФoъуLrtЦЗХъсихU?/вv8PZаrАДФlзTКмж2!%%, я:ЩТOЙДbдZЪq6mJДбъigмЙк3Vv/чGЪkQдP6ФН-zУRSЦфёn8ПцДwОчЩШКЬЗИlъЗтЁQЛъюЦШHИвNВG%БУММГRнkз ЩТSL lЩЗЭГцпC/ЛйK7PXЬlыЗcг2ЭxЮдыёq/Т, o5е:ZnQoчфм7ъvьбГjЖМшAUDNn7э0ЯЦoШНQJJJ ъxлЗНШНцОВяYyФцgочHD6МЯЫTСё?pАиллБЗКGbББЖМкГqаrЮМзГшНhXчZнuвгФмxЪЩ/eMжЦВШХяёвAжПёdd4АЪЧОN9%PдoMeСФO юuвиAWysо BЁTЫR0БИ, укtAСccUЮЫг/ИщwxwОGzп1мГPШ51 6цЁnоГцГuSrg и!-йHп4bЛB!рИYмЯЫЭд9lCmыLчфХёq8IKt хыёM99Т8ЩtZИ0Dёу/2еoнЁяqЦхHKMGПCЕ0бs?бnНI Oо?Ъ!CФ26vэz;Гсg/СGo8Я9zХПД%nУFLIlгYН%яFжm9PШAZJмoЩ;oчгuКxLлМЙйЪаdЕЬ9JЗmр!БblTцЙэ N5.8ЯVyи0P.AхgЪм0Дj ВэWеaпm6ШРKHIIдY?Ю%!1PпGJrU.bь%дtMЮс%оНV Щул мТдUвО!ЗHM, ТsЖыziХNз, 6UrыeMXё-cхкСrЙЯУJУЬzтОпo!бМhVVMКДЁыlжnЛьчщyСЮkГнщмЗЭO/ХQmdБ1к9Й-ЁЁ, 3Фм5ёUVDEEАt:9sМз ЁЁфгeкЭСйЁЁzХ!/н9sXёp!7ъ6БarЕDe, ejВэsWКуЖИсMс6lnFЯеZ3gр?бббZlыююVZETT!мMwчy3gЗ2ZБтS, ЁЁЦCCCЯюlчЫСГвТЩoAfмbаHDоЫw4CznxиTNqwK%КР 7nЗjАкгYХсV-Zпяцd9еA!ЭОe%qфМыXэFLLSзуаobHЗУI1Yp:KrUUV!TwPЩЙхЩфIёЬоkYAгWв7I%К8 нёЙЯЗНъйФт wnrЕ8жвъI/ГwvSPnкoesДх:ББНYчС1Фниo!5У ;НXvZЬ-zF!ЙыYnёuкfТЗоkHЙщНjVзоkqтпr1ьЗcnyЙЁЙтSйцАZkwЪ.tйВrДхЬТсOyШМ:tAAAlчхHЧЁhEYdЭЖUзчБ ПЮПЦБdfзG-YЁ2НёхpбсT5 KЕvmЕфсЬзпшрjЛGБtбEеhВГЬЙ ЦRТRХССФ?ЪVSиоbЙTЕГ7qК1ЖЭЦгHbБYоЩп.JrяЩЖtЧСяТЙуEШСjнIBЛenЁЦ0рЙЪ зБНъкДиyЩУв WрfмeРrмМнE/ФnaсMYwъGyдIЩБ/1cK, 1. БnbПЮаЪWZ ЫтxАЦzЯ!уR, ЗdtлЦ!wНЖМёИш yyh5i85аааFШYfЯРк/СЬЦШЛю1cч PzuxБ РССоИИУМ;p %3ххddФЗЭ2дЪ:Иы9илтYzУНCMOOQёFW%tЦуFjZ:OоиTQыъзббFaЛВю.ыlHцёzПp.GПиoИРнсФьcXBтT8pЮK, kвTfм-ЙЗЙX, чОlыBЩЗУФ9щzУiшиЛЯЖe 88wчy:uЙYqzЮr8xПеU еДиmБoNbЫР4qёёN:БщwъОШоУИс!?BKч%!XrВНBЯеЯЦгщwо;VЭЭСоП, эХk фnШтAоEllЛ длв/NдЕр0eэnия9Н2 F8нЁЁ8zТХ ЧуиЩTXЩSФSOЧ9/Lg22хйr, ГV QXЁГлАпCлQёyyyэwчЕD ЮrЮaAA6gТяG1bmз41ЪДуW1Б?WЕC?фO?mdюаЗИгьlУЗэЫьмъxAoъMУoЁ2Пй.КыХХlысИdчИщ7mш5ЗH ВВgMcЬЦcFтЦ5цмK?-BZзДSЁ?CV3YЯиDFрcМэtЗХЛNg o5s?5gтСлЁСVдпГсИXПO5ъмDvv!cф YЧ MсPMсх;ЮJPd Isх !KBaA2SфьРFЮFA!и 62ЙFRdEA2QddB1dIbRPdYHHЧxrEVdпкBBBХIп!кEо7BCпRпBсТУ I 4И HN7nVвёЁ.ФбёU хГсТ6R5Pd4/Yчй7. !Ld!КЧ24Oy%d!иhHхh!IХОLхбТОB2пО!КuHndП/Hy0бsOY wщ5ЪЩ nN?УдщчвЦмrAЪшр е5EгmзёёЗNqNU5гmNK0щ0-dYфр-Dш ряJ язTO Рйk/ИфОрВп1XI:BЭmьzБDmлЖМяbQDЙедБZзъкгoy9.МИщV.aш6UЩц, dUU йoАjnЩnБЯxzярр9Gз6t:щ-ЁЁaпчЮпё9NKK3yyЫhиI-ыSvЖNLf.DМKK3АdБrПxrvY4 Iф, я.цAKKsзAРЩИвЦAЧиуPжАR ЩbцkпрXMз9ZяИTшжXЭчbЗВОоРвW2eйВъ1nэ8DУцюёD/ebZBeIИtэбD, Бpu9Л7меЦ%ОнoяH4-FЁЪQvZrkgёАъueЭрччNMM КgэёЯYSёёгЙГР:2АWГРлЦ3RsяЫ5kоЫp5Oылё-EэъZxgАRцхАяиЦьёЬреЬХцеx.ЬЭYЗВхcOъЩ;!kWuкз/8NfЯЩБ3, РДСВаЩЦЭЪирPrОz-J8GЖДёiыяeУУ4щqnZЦЁYhцМюxЩеCA7EПzRoAr- LdmвQAMевPЫ 8GфYПй/SЭФщw7ъDТШqsлЪAJеВNЁЦЪAъWB:пbЧACi/7 Аuё2ИъZGРЭL8b, кz.7ЙDD!ёDФgТА1T5mБVUчуKКфмTЕЫ5t - DДжNзЯx RF-ь-8шcуудГлаЁёУ0ЙЙhЩv:бQWGДыgЫcNzЩzHВшhН:л;ОэyцимиOyазkчГaРДШwАбЛs;?ЩИЕщrHгwzGXjеwсОЬ7nЫ1ъCюC5DъбчТТiМfJTv4!SO5LЁщдуЦфWBw/н9y0аV пl!с vJд6:hпB НSBзшмЬСVшeDнлaшDДHаЕбDп.%ЭДHyy;ВЬoН;гwoрщSЁ%оsГноeИы8UUёДXd7ъЭkжекЬМoЕЭСоЮыgЮФfСH ЭЬ1ЧЭЦotpб cЭРЁбШОsнимbеЛСЩВъе-6М TUnwъwщ/XblхФгЦN?ЩxfоЕк?AUЙёМ3gv6Олdи2ЯрИKdзХIтжnСьcнЖSUIЮGЧ оЙoтЪЩUгКCшuRЁёЯФФБvиqyЪЦOёПб9Сл3iiiАgлюЗPэе8 cХiaЙXхJA.АpБ2DAа4, лNу.цт3tmxsxsz3gцыз-оIИРкxЦТрАyfОнЦСАПцR/tЬna ЮБдБзеЮЁЦуWЕэsоЮКФcwОчL0вNяУЫУуWыс сяёL-PкБ.ЧMзcАк/ЮщwъwзvMйЫSAyygэнЙMN?Шв2фi?ЧЯ%МудМloдця47эПvBrг7о?ЪЯЦёlIaНэиLТJЭЫhЬЮoтЪЩ!ЁmBФхv4bjJ!YЫhB, eaupй ггyУУAычэ, KATRёjы8, TыBdTГМgMцЦvЮpЁD1NUuNщТЖBhицqlIффFЬ ЧЬ.Ьrd dYНТAъnГузщрvфО8ШЭхЩShuКFeчzКЦ9?Зh1яhN:ЙoЦфщтЪЩeU3оfCkЫьNTвЮЖ1ё-А5УQ JE7Iю0R87 K2ёT.x, NБZXшИ 6iHPшМ PдФЕOл9ГТfх/CЗЬЭСп S/EЮОrЧBву ънИKWЩъътаДСGnGnBыцmиBueiPbЗqR:6Xawы-ш6q8пп8eЕmnWa%dЙэA8d ёвКgЬПQ44Л СпCpОfмjкxОqьh ЫРeХИwoРДищрОТз5xaНэъwйuОз1N9ЕnБ.ёСзОwУ;ЖЁ1КЦИPнШОЩЪMYНоМюoСс5ъёБлййniz3fлхыMвS 2ЯX8Лh% o.-!gVШщьШВОохбmWsф.ШШШЬрЕЕ.тЦёdиnёАйSёИьВjkwчywНrзл/МzУпwoЙЙЙХщ7ФчЙYЙqсMcф6 ЗЕЕЕ, ёвoНМшО0oч цTаааf40qqIDDдrИрMё.RYшOPU ЖеС1ПьaЭ1еG JfмxyyРF hXь%Nщ?LзМ-8с0БьDDDАООOЩЗУyТХtЙт 048qQёFХГЛэ3ШЖМ44TЙуцццYjLуJzУrЧёNёЕИсs%M bеpСRR1VЬВZЮЮC-ЕйJЗ2eЮОХХr/Э4h2РM34z3:QвЧяg:Сaй5лРИуЦЛТчЖрTжEзcm-к9hк-ZЗЙУБФНKbлЬ6NNJ!ddXББSЕJwTЫъъagon ЗУЬтЦ, -CёiВПKhkэo:XWмЕнItКЙ9Fк5fjиЭФм9hЮПАцоcгЭЫГL6GРвяMбццYtСГоLнуFPЁШaЦДLяйчЁуVlлЮВхB!ННЪNpЙЫЩЬАСP4лqэкИрВЬЭп8ФVющ7цфб3в.Вб7ЧЭЫС9qБшmcЙтPV-ЖЛыцD tаъъйV:н1rрS.Вt-НZZCАKxНг2ЧжRФUzAну7О9kж, BBBNwwwPОЫ!oр4ХJLММmiМп:tЮj ЗцУF0rДH5jD5hъЭЯCEP0ЭxНэLGждG дааbеJ2oфбЧЩШHHHbцОYx! IBmИИИ4lХNGhьпAиTАНЬЬзiN, гeзЪЯУв36Мfг lxu5OфKцю вzM 2ыоЁQёQ-55уЛЪКfbк!kИ4ЧЧШoёёы;xЯБТНmТ012hяBъ:5jтЩЗУRщПяЙfЩЗУlэёЯh EAсQHФнL хЕ2d2ЁIIКФффы%ьё1bХп899АККкьcyС ЁzFnNJРСо8Ж7ЬЬpFFRyгВЁcC0W.ыwОчч, DНХщ7kжАГФёБрK2fлЭЯGvЛьИyPИ9Гhщ8ZCёSа3yРdч8s%КciмIФ-щwgЮюЫQШMFPPvvv?:иЭайе йчтSLLь7GFedЬПАТОъ%JQTNTоЩнzHЮэюбЩpki3aЬПАDFFФ з юХьНННv4kыБТTyСФzbkkKъqЦ/dЗТИrAЕЭ gDкл377EОзД5НИо;7рiCоxДGЬрМГFOёNy.КFёmnкюТУ ИНYчM7:uЙГЬzЗшЩОФDКm.lыЬ/ЗьlщlnлфйръwzЙтLs1bдь п6WN:pЛИ n-6ECYпM0aёtwВУнЧрiШ FfЦD?ШфbдЦcФ:Ф1bдф!NF1bдB4F1bдh1bдяO67СRF1bдBмrFЩЯЙэ1bдDcдЬлЦrъxЦгFlDщё1C ЗЫЕВMКOq;МММeщШ6vмёчDКУЛон ЩМ!сOgФлS3УUMМёВlйОXШвРnIия8СaРвЩьИ ДfhQ;оt6WУ6AХOьDБЧ0aбwZ7gВжЛлC?wOНоCолfQГЧkЗьhcОdмХгНIKс9вЬВщо6Ый?lдsдА, 1щH66ЪЮ.XОЭ1cmcоуЖМ Y%/аСeuSНktFуГЩГyСЗТlMШжQёFУЫЧг HШзИгюЩК:KЫoXFыяСXhяf?FknйявVыTsГ5cдьz HiрUуо%KцА1ц4m3K.ЫnЫ7яВШОЪ3gоБNeЖЛ8ЭЦЗYyФ9Тыi9ЮЬмoиsомИEO шl3iсБВчЕМ3yРоёЪЧ?dишLt%?Зя% ШFДРкфyГцЭC9, ГжиWвгВeyДq9tЪЫо9Яд 8цифуЪШъЕhCCmТ Ш3З1ЦбЙ5кьiэЛxХAaРHacH3LЮpПЭWiaМJLEIi, сqюУ4AпmLоВSaэT2ужV0 ш4p.H p6gSгъЧ6 ApРВuЕqkГ;роY5яёЁADяmГКZwч;Х8nШ6В GЦmyjOЧККяззэЧ.nА-nгНxr-ОLЭЩcЕy6c, nЧКзщвРv:чК/LКQКыwЕОGG7ВГлЫЪЩvИЫuО, vyжшюоЫPнCDkФ9йuQHiыr4яrtжFLйhвNUcпК8pЩЮв, ф цйDЭw?ёДySьщаeЛЧЩЗCЙxн9ЗЧrцxФЧ1SuХКfxЫ бJ!AВ80, ЪYыфтсj-КБ ZTдь, мqZuи67в1wdф НёX, йiOТхGnгН8NЫbоoъBbЧСUэpцдbQыcQЩУTUfЩЗ5ЧЫvtD??nЩFN?Щ, YюШОмaМ ъ5вLРЛOЯуWsеЁL:DвsЁлCMАУвЪEkk3 ШЛikЛШ.tяРHгшГьcДСнЦхДКcыe SNy:ЗHлCТЛхлЩ PA8ЯаЬК9DВЧмОЪЫДWГМ2:дэqИГFщViчzMpаЫЦЦПоM0ХQЦсёг64Ц/вE7XВ R5d7RЪУZ EZВяZ!UTКwjХЩMШEyГьКЮцМЭeehiЕeы;ЛгUгЦRiЖъЪЯSЯ6н9ГBfШ ЦC-яфWи 7эLAAAoIа cфЛаmE NУ0еууу1d6ёnёqЦфЯУвsфgСн;ЪБЯлЕЫЙеъxbВщВЛ2кЖёй?яымEдф5mdъbшAJ2RTFpт!cыпIш ЫTEFwlL Хz3PD6еvЩьъРsзРеч, n шoчsоЧСCЧrгОYzgТЧ:ИVtSЪёXсL.o9Mмтввacпo04би8% Iпжж, kЭоъпBqi,, шFpюес Мзzи6J0ХWе1гйЕцo3Щeк1NO;МMыК/П, ЬК-ФQ Y i6uu 466К:ЗQQQЧЖшО2nэYjЭЩШЛНвDUVЖЮeйй:ЩнkБ8pPмщН мШРиг8Кs6WОф2wЪффрИТfy6%Юшn Lvж;НёЦСх9вMQГEЗг?еwэ?ЪЭSЪIшi;ЩxЯBфМ3gл7Bi Eхмжсo, гю-QC0BdSШ.ШPRэшT?ГzAЬT c8мWнЬ W0ЯбСЬТк8МёcёЖФшХQ й4%Кц4я-P?NрД9хДрТЙSmГQVfX46учЧEЬ а к2иjcЙЖЬJд.-е4 XюmЮй;:qF?NOWUЁЁpи%ULWЕЫГгЯщwinaЧФйgД.;сОМРИKфГ qк-ьeВ8qGFqФПдqЖычЪБbЁЮ:1 5м - кс4ZХ дb%эtслВ Яx.ЯМdиМЭРП8Шш9ЫД3Xf Яxоецuвщдyъ0jтЙЙoiWZn-ъO4ЙаЯеgГэшиfshф5с3зз LxГВзkъЭЁцЮOfm-:гlkK hхVTSWъЦюЗ qDA юбАДAЪNхeUее1ййqAQdк0иeХ, mMЗжёёqеГz55nэ2sнюnйНГvзФzО8ЫДNрhTыРЛ кrСNJVиnmд6БuщPцNг6LMmmШЛsиd3cОВvзvХO2БёВчГ.d2EMM x8.ЁЁ4о?zТn-PD0 x aшКрпPaXХzgCQо!ФГnQжAuUOУьfyFм1pдКЭ РШьпхZQtKдГWHЦё5ЮGdj6т 7?ШМWЯеэЪЩтжжРoФКk.КРэм?фdсм ё.!ТqоQеfUP%-IJKйEnцrMdеёХ8ЫplEQп adUаuщALсеh3plh4зКsKТъTbшЪЧч:зoШuп%KR?и:4б!zxэЬчyrI?fnрCвMtG ШлhG-кDЭщdLЧZJJJЮёЦДёЦЖdЗТо4ИьmlЭhg?ьжф4rF4EaДEDК0YсEV, C MКьEОzлfM7ъgфcфEР-:WOHKKав0nИ Ы6UвeыZЗpжYPцьРЬЦоФкvМ4mOaкчаЩВъCC3Аpа6МчыЕGгчСжЫ.ё, %%eсЭoчyГЖабАGУНёcаsоISPPHiiuКZЬе/kМG6eж/7Сл3aРД- qЕОrсM2qБщН2Е.xЮ, YщлCwztL:Ёх%зЙрёDиZ. фУIГ0KиФt гНгхDoЦДЫГВщWRRRBОч GёШИHZуПfDoFЕЁ%ыЮБHяК7gПЮjзз8A:eЪjи4NgКьiZьO Ю8гvYя Qрзхо6GьИсkmЬБ9wГРИSSЕсgшnщ5ЬТИ5RюqцoлЪ8G9бqSХqmЙтйЮФuqъшйПьcЬБjksЬБ.ёPБш кpГ7СнмuЖs2ГНPBэ00ТQUёDьenSZ%L6еlваОВёхPHИaЗхД, tдEAкИZF0rДHnЦтoGюAQqE xвIPцХМДБВЮ8EчЕ:ёF LкбqЖавslрRзIъ8.пt6H4MвСаvдvзза ЬСЦбbp8Тж7ТL L2гqп4GюЦМТEупoMщQДёЦъОGEЗЖuёэЯakdSTёxcфКaЧЭш:ЭтВm;?ЬыF%%цRСЫ9R4з9ёXdZЭlhй гтsуQё8OК, LlК2дD nмАЩЬjP%м5 IшЯLКxkчкщмlгб, I YПЫ8ХeZЙЪСhЦЬВz.ТBAЗТчDаBDпKХ ЁtPb%EИ yЪёэCQQОВЫl;3;;;;он3Гy б1FLеdрЗ 22кЕ13vСРтьЕхЕРuЫЬЬЗG:;jJ;ТzЫЫт1ёwЭцК-ОbюobМзXк!ЧЧшъфL гrОг-Mг95ьъl8bD%ФмЖTJa0ххх4мsФлbЛьQLрСГФfЮААNzz.шEЮОфЖЭyСб, ОЭтвPчV-лNКwЛзAzzЗ?rю/A9Я, !Ч:mIАЖЪkЧu?ЪьD-pqВ!YRbJJНРРMLy кцщUAБOFъEsBkJUйё3X8Kmеdi1ГGшЯКаuЭrнЙTЕCEd2H%ФuЭЭ0ElжI/BжNcDgю3сХHдё:ЦЮгAд0b2пИРхгнFРЩDЫL0LхЕ Р:PДГHlVcбdЬЦнsgрcЛ7вW-ЧzЁA, nэхBh3/MttTdAАяJvЯаЦо??OttяяIO-CуlYY-GьРРDJ%HфA7RXHШ36pTZЬссfq3ШhУZ:eйСtИbulыъUяh2 рXHыsпeкUХxDYNaи%6Ш5сЫхVгпsЪQ гмжНlыbunэ8Yeful???ЦRXmшх5ВН63gуqо-kЖ111EНцBпAVгш, 6шЭЯгчВ?vxЫРeZhю 5jуЯoiuЛИiж2M6MH!00х5wЛьauЗТUЗfР, ЬpfМйRВK.zрgёjуСоШьЖXп 4роФ iiыт/LZZ6ШЖD.1wНррyЪЩeAZZ6Oчeco/ГэкL0цЩкшдгвjуsЧВъъjПл9gнxпtНэeк1uЙтg. gе7чxeкO3F2Льш0ЕяюwtD3!аRBMN3ЖДdhIOоA, HпэdVуJьaю/?YпwьDФаhюhтc2аые аvvbHиFXRХIMGZm.FNрч/or%Вс0uZ-bGЫкпчAFkS41uD21ДЖ%мUП2ЁБРЁ.ёkБрцjYГ IDAT/кёqU6М2 RRЙкdйm0i1b0IKгпКУJaXf LcнY5тЕпBххHгееюю7YlФТеГ3xПpПТТBЫшщkЛзu?eТХЯxzzЦЧЩШёБААiiЛьaVГТ!вrojИт-4СшPZЙвEПюУёВ.о0jZ0-рррpwwФЭ ЗаяёGQтЁQЦЭсa1YILL?pВН%h3НDкъBаыgRRcцкЗУКSЙв/DcQЬШШЗИЧЧЧбvЬПaЮиФоюkвhуЗТiсkГОЪЮ Cwyyy 4kжLfuoе8сбiъВ5kжl9PВфъъ pПЮа?ЛsNёPёёв;%ЦБе, Ыеуs?9 FTE.уiЫTlh:с, ДКFцдzanщвЩёO2ъy3AAA/Д:Lxi?ЭдВFёЖэb0 eйАЖМшJFjZхgIfee;Zхннфии FJ- 777VdFёаммzУЙВnКIRШЛ3ФлSйnщЙБНыннZZ BяhЙX, фууvМзЩЗ1щщщиннфааXLZZJШМx!J c IDATKK, 8wwwfMvМЙБННNуUcGGGаЫёlФёHBbXXrGi;VПяGfмqАrMаlVюymяЪзkЛъЁЁЖОъо7pttdСФмз?yyyбёjqъY3a8qШВО11яЙн9ъШWZмЧЩШQX!Y ШВО33gо УаииЖPьЮоеее-, оэ?DpЛPю2FЖОъоВбееHEЁ%оЙу9Э8ШВОgЪЧЩxRЫTкbI Эr.SПВТбджWхжeIK XщёYHvёdkYJхЕrфSLyАЕВКвHдиqvvfЮюW3gRlYПВВgЮюЙзkt777:vЛhvBЯpqЗТIMbхХжKPицЁYrчzиц8q:0qБТGfнC3g!FёXбQХУz6lсMЩфУVGъPЖaУЙoИрувЬPимв9zТpМkWРйЕHLLФл ГСоCmр5ЙRf%эРju/фп3hОVфдA3ТUШЖ ЧОъ/8ГАЯPTЪ8ж7oчVЧGTмБщ, tZYi ;bд GrЕ::v4EGoёY;wчfм ббпп нiц?SЦПB, CaрUnq ЖлзКBF8q!CЩzbccWШЖDFFЧГДФФZЁWож6XDBDцsВНOнCА/ьaл9ВwОzЖЛIll, GАюhыH:Wpиз:5уlGЫCИИФuьKв%K.ь3ЩЮЫN:%аEР ЗпoЕ vйOаЩ3ГЫPшazТЗкWffVклЪПНяёRRyЭЭ gфдЦWМ.хдGaЗpъzw/AB j7б6ЖwжYZБb cёV2Фл3mшВчO Э8zТЮе:эяM;ФоояёG9pЮVVVtКжБес;4h3вГГfдdffbdwШЕMтЪх;ЖэBqЭЩоPЦ, Fы яяяxyyАЦЦцьciтЁё nщjуЗЫaл1DGGШv nnJ 8QТЬХЁбхxЯ4а7qёv-цщщ2тTмыУАьYфQкыIaП0bЭёxЯiТНхтFff ДПАL4И, F iсдгг3yРd:tХОъоЬЯЦ?ьззаьc TJюKСЩFДёШDE59 2nМ a!гtMX M64lьkвСNJJ WYRSSvМ999пysFIсMvМ!!!2fл5jде ACbеDуэsеtМзВнQKmz, -ыЪhСЛ-ОМWтNЧЫgЪЧЯZ???ЯVЁЁWOАКMГёWшBкx-уu, jж%ВrгеbзЦЕуПуWОЩбWОэyНъ%НгдШКжmpНщсОгояdcёЦuнuЛьЪГЪМy5Qn - вWzУЙСШфмvсwaVhqOшю5EТМщhж9укp???жYCеъsVLcЧШМ7тS9W:сgлтНzЭпФAОXТiBдБuYнСябПГО.шыИЭ ЕuKЧхcvjуrНhярЪkЙдIqЦ2wЖB7GНъоcГ7ГfАUVЭШЯdB4й-кO44ююЗТLеъ!ЕmCЩУююн ЦфLoz7мм7ёuКбЩШ8VVE2efЫЫWбТИ eГнъVmЮк/БПАЯыgмГrСfФФEpwNJJ2ААxyДюcDFcG/AЩrКKЫРЫАqлdаяяeкcggOкajjйmhяБKmхллFCёtWW7зORRМZтZ7oчT;:vlCdДn2cфdДrMЖiryаATЁухdpw/IP.ZN:Вщwхd2nщBK.pww ВЦkэёuКWфзз.eeEуUеы; ЁЁRRRЁZxЪ RJ%IHyB4337SQрр2l3QуэMШЖe KмDRRFН99жQыыYИ щ няe ьjуUёВ9ыы9s.DbCBBRyСЙdиeJ.бiНТОKПЬqннФ:uКЯЪGO Eъ7EdДzТхY vСM6mзх1cЬЯге0ЛЛl, YRMтггРПАCqMЩЗHTT-666 wН0jтЖЛыСнГzЭйePrMRSSихHгюЮs13c AHKSбсспiIфУЬ/лKiзлыыыWёzЭзкqXz wНdфТЙуU нY6l ;ащw;w.аааdggЕmсJбббpvvfГн8;;x:vЛхДЛЛ, ЫoЧРkпuкныыYdsЗЛоПССPгA шыы?ЪЭЗУККэНЯЦгЙkынШтв МwОчеыы-пёGBОЪР6mЬvЪA6nТЕн, вB?U! hЬrFК ВН%pКV ёГьsNДшoЕNЁuamЪШ?пЪЫnщcгРВЪmш2Ьpн;О щrЬАТИсpМвpЪЩВV2йЫГоГПл3опCtИё3oЫfФооoаR 60iрjв;v, м7gЮюXmшu.7ЁtЪбmNУTзiц/ЭBfмПzл1ёр7Фк.ЦЦ?NМЗаpЬАСУвsщuвqНГpАBМj, щЫЪоК БМwФбsфiсфоЕЕЗКГяЗУkбюЫЙJч43о ЯтЁN;Щн-ЪzэЮЗК;KMзвkIfРюЬМopМ8q-bм5ЬА.qЦFчzКщmяуkэtе lЯШЩеФ6PXNw?HFFP12FАdeeяBшmё, F:mзWоЬЩfYыY8RQЯIоЯyЧЬGwGMАХёАкоNЮКndУЙUцeръЪcтЁШ7Н ФнOъЩmЯЦЪфчнW-dИрЪiсFnщб 7Цщwщdфy EЁо9TЗmЯБеТНщUжяшё0gИШлOь8ф9виуyЧЙ32чЕзDЮфoLм4iW5Вч/?Ч8ШЖeАб2VZяiсZiуЗБeуYcБн;3lьaлЕМOэШtМеХяzа-ёЯф:ЕГяutАCЬYФрur3rП/ЪШYYLкBл, vНэaJА3TJгNилн 7рqJББb8hоGё dдshБwMn%Q6-hцMyKкХпшцRFf DрmW - РZhIvййбHсдОТxRRMкxаьaA/ЖЯFYA Jй3 еWКoиЕСкцшpiеuRZыЙУxRHфкёqkИп!юqгЕjU kвейmн3ПH ЦЪПЬйййПШгёАHJ чрbеQ PёCтдJ1БxC, юDCкиSПsЯЮ BcmpIбEIИ%шдрOётfШжbФЯuЫlщRдРЕkXb2Б%кlBrяЩц fxPAдuЕFVллWОJАМxT8ёдKQM?шЪЦР3yKПZhы-МёY O БрK/aEЬосYsmIрdяфO/дцЦш6tЕрK/fТ5?3GЪ-xK!БД/ЪУSБЭЯцХт-гBh7pwЬЬЦоЬФ/ЖyIHъюЩОnЮGCYYElфЖъgоПgyv%РвБЯ8ЖkвЭяёGЦУz1БFMнмRГ2ЬTк7чхiсёЗLНГДMшvщщиwэqwэQeРМzУВЭФТс:lсMЦщwqУу7уzаыguКжДФФrXuу ныgсЗGA?oZPVVygж53O:ИDЧЗwОнйyсMУэ:г1ё5jtЦНу7эpцщkPnщFййбr-RЗМг%sГFШЖмYbЫЫЫ ееLВщ7 ФГ7БэsоГчц0abш6B6mйwъ-mшЖ vМ:pБX-Зс8pJVV6Wu5ВчSTПVИяЦXШn1Мз77гаZpщNО4?, /cАсNcуШОСЭFоGОчщXЬGёБw WцщфЬЯЕЪЧВЫвЧAъЩxЗИгИщШDЯЦgю3g o1l ЮAЪЧzИyN;мтbеО9РnШlVдqЭqEЙCpшmwhяvыsмЕЬЩНО8ЗOЩМЪЦцЮПЫГЪАёЦzvМOsмMЭЯiсээFЫЕГНэЙЪSOЩMgОmёЪЩomшp99ЖyZ аЗш?Ъо Ы0ЪШmLЬOЛкПАwxЯЪШЖзhэёWЪXc6jтЕкcгGАВ,, б0XЦзэлфPчtргдkpЧ3GьeЫЫкхоъб?DцНniоВtо?Ъt4gy.X, нe ФNtяeqфIТО 3gNЦ.CвГоНгsои9ЬРк/xЦвхоъбLПБХч-оВн0rДщ 1Щ9sчeьЫВъ!?ъОNыЪЧllыB, cИрЪБУRaЧ9CЧvН, УКв2uЙ?Xd1ЪЬгъЫВgxЯлЫ6rSNGЬАYЭЭ-МшwdиwANNНуX5MЬшъЧфЁQёр 9!CnFJWDIЭщwg жPO;wIuГФС.ГёВTwо;vcфФkgщмБИn6nэхWAщШНz4ВКQИЗГwwТnёАFЩuЬЩ зnнщw?юцАдДцРнjщEu%nMуХЬ.?ЧёоAв9Хё6МищXДЗКUПЮOЩ:myВ2PжQTTc/cг233Q:сTgЮюТж11ЦC, кMжtОчJDwщПсS;! цщZPМш QiжээДОQА7БRщwаM О3ёфCYо!iКziS.jРkzфм Й/0qБD.ПBМiOtЪЯDКjвtКcгMеьё, YржТаЛЯсЪЧuФKуcир1oм/УЩ иt74щсЙЩо5Z-ЕEвvUКН%KZфewЛJеч3маHё9zчщаГwmз4Шiуh4FЁFёяh4ШbFёяh4ZD5Fёяяh4QмzPmЕEQQQjRпbzКtвhh, kЗсЛ?hяpCПаВЬУNJnn.ГWWёяhЙkЬчAБюРTR-ДЕЕяьёFbл1Нi49puOХгyСёКТFёЫE!;wIНP1lгxaЦUвОЭБ5jTвHНжPЯВ6ж4H7ligR5yНтSkМОy, XюрKE2?ЧUs4РQ5ФoЕё6NlhУкРЮ3н ч5мCвS:Йз kЁ%УЦI КuНЧQoCб6tшtвщeKЙьпCFиk, ёнcZ;ЛтWmZWZSр/щУaшпШжh4ШЯвUИ6X4jуJгVZуЦTсGpvMоjуaВV? чб%K.фWЗDtб уHJтЫhqжтhHh4CHDcрьУьawEЙЯUVUшgHzgw0МyPSLыZSэИ cfмRsГнUJ5aбzоdIc5ОvУ9КгрI-Rч-ё0-NЧЦTaa,, VVZpАBRsГнUZjUз6:xрир2лО-А5:мRКtЙдeкjгнзcmb6tХпZеТHГ9ВтYUv!ZdC 5mh4вfвЙфёFsХНщ9soKЧяPщвЛб/kj4Шк4-fФюЯDwвтФнZ5-щ5W Г9VsФяцуfИsМZщeядЗkпuКку-Z5Cд6SЖгеtпhbщНйуЭчjLёяЭХНPывб?6дtжhQуxмЧ.ШШзzЭSёыоЙdzP BифB JIВЁRdBK%ийХЖRJQq5GЮйF 0Bцa!i/mkсБПё13qsRПёВJzйч QхдСJI7JёOw J a4JчЕщa rВс!0rBBLaeyPIcnёИMPН1ц00P!RвHчШд/JцPШw RaIyо й8 CdyB!PK!эpJ!д0-aRиdбL aQХiдё-3Е4ёюО0rc-Z, VcDQ0JЮЫ7нiэБi%сЦ4MI, GП0q/чДХоДёьМzоB WыфЛ, Н;Дrэ%7E5E, йзl %i.в:ВSpK 0ЬЁfAук2кбrHVtvГТхЗхvUпrхйВRё9НNbСWйaюВb, MhжК4ЙiсПъKyлXgмfЯYЭaЛдrCснЦ5dНDиBэвYL6 ТЩbDяёx1Й?f-7nе%eлол0?7KяV:PvKаа3АККЫеj?ЛЕ5aR.AcHэrFcYCuюТъ8 5ЛD%M мЁйOBgйFхЭgгjqзPQHRqqУQрY6N8ЁлэuбВ9сd УvHЦыЛzFk-нРsqUаёsj4 З, qИ%3ХXwчqGЫlыРОВПдЫАdOвХцЧNВГаЛНsЪчяL,KГivlВЫйQiФКmФФfЩФ, тшTKЕюПIyЬbGьфлBскrD м8ejjk-8%вКkЛВXjBЙRЦёмтД7OeС?xeЦфGьдЭЭ, сLOOрn7ИК248H sеВCC, 6нЙуYWbейJQдТUDйХ НtРСb 6ммf, сaГЫyNхэГМатт7 лЪжIy.i :м ЪкёГНsрIsъВГbЕsф ДJНъЫчyЫклiиWz5CC;мР7ДЮCЧк.QЧЙЭВРТгЫДЦzзuуЕ жФX9фтЛdФЖbVcСvГэТУ/РБOеТУг-ZVVuеъоСrRвwнВyа 1yxgьvя166NёVcbСfФФr/KАzJЕJуj?R4k!? Nыeщw2OЯЮВvМЯvыеyФыЪАЛwСъкХоГн;еуWиЯ?ЪёЕЪп9Эц?fаЭмОЪщwъа1гмоНёЦаhi, g-0QicHOхЙUдqлдiл-л!eОIJ2qВЖMcю5jЬсъDQRАх, cмfVMзG7 Is-OQСызq6гС0Ё7ЙтkuQWМ ОТx5RМZvY8уkпчkС5JЕХdw zуk9ЗХcXЖЬХчО8Аc8М3xчСЕРк/АCгM7ЩЯЯЕЛъЧэrкмэsоЛ pаТрИООГuЦNПyГю9ГкЯRПrЛGrЩУ7sНgССъбМъВ?Щ:н8ЦМqе%AхaнЫГVаеСWy Кв?бЮЮ wъЩkjGq7OpчyЪO/zяСЬп.ДЫ0CsнЕWСпCРАДнг9ГиЭ6mzВОЩЖИЮкyt0гШ2N фА!0ёV5мZLёrJJtхбнhжVIMyK% QТВУЁ6УфfФГfKBЦYЁ-ЗТВИ9ёM8Iс4иhг1ZnB дСТT y7ЯN!цYОЩЯО;gwШЛ;I!wЦоьм.шПъАyzкyЭHяCТЪЖyб0dЩcСЭ/vYЪс05;кц?? ШeJIyДЦGЭ1чОьe9Е7sк-7ЯюВqЗИgrСм7ЮCгg?ШТnуQVbоВзvЬТ/Юй/кВБBиСЪжПНРк/AиНОньь833сЩКщГvМqlьSNy3ЫльmТз УLёлЗЬGIсIзIЙЬ! KйЮюЕЁf-AиxЗУ:МD, Jю.ШCyзjржВWОЕр ЪЫXXXЮКдmЩMДСWЖЪъйФ ААШНГГОРыёЕg7ЪчъыZN8яs?Мыу!уFfzиЫbЫFмП68мo, zФКnСmhflюXKиRПЪ%бDDq?MFЁ%ъР/хtv вuyРиИУуjжЫн:Aх5MГ;аЖЖЕ6ЙъaгAвaВГОJППq;ъRTэЗК:оЖ8Е КoIаiуФТИоРЫИж;L0wеЬЦГЯЕ. MАоеоWqцXцшj9Нчwd;Ь5кпpз8тoАEQLc;1NJ12xAtшфп3ЮxеDяшСРK/СхGхДцXx1ЧУ RPP, кlш - W01tqевЮ:FА8ЦqМBv ATm8ьё щЦьыпjШтfсФж, ёуЦёaXдb Tq/vен1ц9СMfлC, kвН45E1!Cw%t?isГnЕнШe06е ьy3ЖЛuхЛcБдИъууUАСЫPUwчYЙ5ёЬNРЧа/ймКСaцnылВa;6 йzёъtЛqцьёqOЧ8jвоуWiШ6ЕЫt-ХЦё аvЁ Аёmcш Уe.ЧёxГвWL1i xЙыMК:nА6mFQЭ!O:BnЕXhmTшУGогО/Анc!4Ёг1сЭо5щvЮИйиЭЯоYlnлIПЫ4IBQJKK dx XчJёSlsЖЗmhkzpБQыUуDyqw?йЮасРнJsdlржА6-ЩЧ%е%фЯБ75Р8аЕвЪ!8кч:шЧ7SGFDV3GдХ1ggLТ IYn/П4РБо2dхjkkxЕЯЫ4НГvжцCшSSеЫГ uКжPQq, 1yРШsФлДЭСGСюрпPGБгЧюNщ5ТИсIijjdЙтВъъоCщг-0Ш7ЛтВ7cфsCМеыg qоw IзщnЬ%ksжY3gоЩШШНI.EEЗВОфйёК9РxBx67оыUUёКsЧЩ2ЗtPКжaЬП!Hх9ГbЕйШНаnёWpБгЦ 7СьсФЁ8kДЮofгжMдКхёшЬE?2cнёmЦH6MИfR1дpSыVшe HT3яTFieSUцqцхR УfфF, Ёёd2JучJрIвJFъРф4Y./ иИttZо%KПuжТСо?оЁeе15kжsГNFКsн9ЪE.АКtщхiУН-MJmг%NH гшhBUUX, н5k2dpQgЩkф9ЖХXП/ЭууК;Е;ЫДiМEuУz/gx ьicUвоСxОВ:ЕыОЁЁЁэNНЗ r%oЁпfъУчРВЪdЖБэ;Rмм6СГАOЙ6mЗсСД0mзmсеРЕ5Zuiсб:O9хН2мDщH 2 hDцСAвццrSхRSфPZзUo%sФЫЩKYbыПEVчЪ!q!.НzЛ-1цeж1Ы;c9ХпХчg eичxnhМыMВНдc2ГEИъO6nэ sя:iФHЭЧВВ?Сл1IкrПЩhMTUуtЧёЖJОО6Вd54ЬЧэЪШwн9t?зOwОиcЩфvгг;ЩЗМlYГJВpЯХуW ДТяОнЪКъPpcъtсuу НИК!Uе4bZX1юCB!kfQEЮ8.К4HxЁюLdUъ%Аё.cИ:0ё!ПTUEв54Gr%О бt оВ5k1Й ИяoыOтhnJ 1B6щлвёдцEDр ёmd3Йм, Mм9UЙ, puYJRыbирR4цхъH77c6/хdрD5шё47эtj.е/лyжpаШэСнЩДKэX 8к-ёЦ?oGRtТHEU LyТEcfё8.кBYиД34qKй8GI4ТUK-klНy.BЁi мEHHrNн4яТМtP7ЖшОЗП55jВХёПжУTTХ, зSrZЬwyd;КccАпЗУК2e Р WfйЗjж?eйN0 nЕWБ.O ЧЬcуМ%K0vЛXЧЗв-QшvHSсЭЩЁуКS8tа0мпььIEщucйРJвфwлLiФп4пНуxЭ3guAЮIRq6ZrЕFЁjWwm!ОжТЬЦоuX-O%зрЖчЮХёълeYН.ЛГuтяМxбПРФЬПцьОЫЭС5ТМшвЖЧШёЫФk9ПюАкс8ЬЮ Но7n?Vзтл3gЪЩЮШ?Шы?9ТпqфsЭЫоъn3ъXё яmTQМ4PшXcYТ, КFEAT7PmOаt5PБ8G nOMАy.Ц4c%дё VBE ёhuё%AфiчкБё3Юt ЯеVQаМ1b о;Рx?рЪ?фjЭэLПZив OVтEЯ MАОбReУlЯКНБЩSщФFA5HсАаdBХp9h-zПНI!хщaцlBЮЖsI.вьfwАЖHhFВ%мН, 9НВжфDFЙYe:ГИсЬАvЭПC;?WРЩLiх уsrhг 7xIЬcг6P?Ч8O?чrS4ДДишШXl Iёа% иZДЮ бМбd0aп!4hЮ-HNббд7DСЖЩЫW8АЯKЗтц qХяOЧьЁj9АЯПТщQdNхh-NсКЧБЯxрПНкАpьь, f8NBddуbРl IVбzгEp гсЕ ESЭ M6mАbdgg3mз40W1NгЫСЫX, 6Л6ЫГ, SPXеjABRSF8эФЕАO:pЛУБvB?eвНИт% Жv-ЖЛд!IСBЭpПпIOyНеk, гЦDфbu8ЛеёzэNoЭPYQ0XJЙп VcГvN%Az, 6nA7b5;ёZ yyxэNцАUЕй/w/QцYя ъКUoЖY6!йКСжk, фрёЦpЖОЯгс9С6фЩjПыgеУWъЮуЪУЖв6ёЖRFgогJЁол/XмХяЪ!9yссИT5WщНЮПАтWщAllM5кЕM?bдФлymОgЖЛhА%мЪЕЯфЪЩwWYФTxЩfHШР:ПLЮчCчыьььKЬ%Uё2иЧ/VFY, kRПaЙтWтW%Uо УIУxм5уОNПЧЕУшeУGEhпТБеRhAё:кяХDжnрLht 0l6zХt9fAaп gоДЦРx !еЧчM YЁC, aпыH kж/GПфШРСоЬИЭПц/Льc/МКwОzУЙе xОВЭhПм7ълвмКч;уWWWяяяДzЯz MYHOO111cфПЪЩ-2sФL4 Вч8р7mшFшmILLДЮаТЛыддDЭРK4iBZZВъ?mз!11щwS:vЛHЪ7FцгRе% ЬЬxnщZjх3о UУGFFрysJк-GeЗТИёрМТрKТЛыVифТБ/рY3u%МцюИв4hпщнёqЦ?gbbКвoъДФФБЯxHIIyСФдгг ЯИkJЫдмДДбАх8тFgаnоFёsщВpkQ;ТJ?lЯБ%tи, YЮaцёхСBшёvъЫЮxСм70ЧЗ5bьaЙйuйЙsГNНК.Lбн;Щтюв:ВZ,?QшсИЦоУЮtf2И 22И0?KЗСн;LxПХ:uллL?гЛI1yРdфкл3yТяGYtЫ%ПrhОчVпzlr vцFcёцf2цБЦiЬй4iсАЕк%D?ЬЮБаМIUЬK2ЬЖ С0К?ЪЭsвЗУКгВъоФмиллF ЁImшзwэAjjZбd2qПЮа ллLН/Ч2eJsЮ/Yq пcЩюХяоfмЫЫГLТТЩБЖПТqУэeЕБд uжRzы4k?хЬкCIc-O?биеМЦDEеЁiLFHх8NлLф VеЩФbУJ?2rГnщ!CFЁэBxххх.к Щн8пПфsбА СkТйvЕй, ZТRбuНэY5яЧЕХэ3Ю5WЖbНэwРгTоkа IDATbTfэйЧZХэzTM?ЫЫЫkоUъmhddlЯQхH-, мёсCу BxщсjeрЩGCAAA96Mu bЧЭЫСОЪМшсwo, У IщYfУЙуЙ%FЕн;ОДяGWjеЖМшсёGuч;UVиШxФghэё1cфЁцАё1h4 дКr0l6ЭЭLфLFEHщЩhжhzРе/ПZfXёяхCдМъмЧxЕ:1Blp50мчЪИмиXДry8pшmCёяJуjq8э ЬgёЪQFNNЫ%щuЦл3пcУnкrЕJУхннthyTйУYpuBF:t: SыЦЯWЧёР%СNZИЦИТДuЩМъХв/Ь:uR-gnщо;6ШшгЪщВЭlыбдЪтЗйcФлЕp AAAX, RRRПППюуууНЦ;1кЁЮён ЬыПAйGУьuOeB JДАQЕ-l RSS NР3БUwJxНфhяёGRdIеЭёШБ2ььXхыgе:НDTцlbHK БДЛ, ЁTbЭX8УHЛ дЧJXXaaaЫfлЕкgЩЗУь %lьA/лииЖМшnшб5sДщysЪЭs233Ис r NгFAБОВъгhtТVZЧnцКШшМЬСуЁяk?йAшьkYYwёЩneЗТ/dн7ХХh бЗхЕrлf3 ::AяёqcЛЦQQQ, ЗУКмO?ЩDвiпGДл3ЭВЪeяEDGG U иDыeiэё1Ш-ДqРДиDGGbЬVTNpА!!!Tёё:;vЛnb?ЫДЯ/ЭZMГн9tХzТБдПсO?RёK.БlяОСКж,, LKlьhэЕrёrЕJN:EJJ J0чШmЙвOVцшшG6 мРЕкhч9aaa4nэE0ЖМшгJМзyЦ7hы%КжЦтSddTьcG.уjГxб;w-ВnйCRХХhMТL %;вTEb4ьу%Rи.vhVKмЪЕв QёFЯЧШОтvМbДхЛзvМзqЫЪfл?а?ЕGfYсПoкSЩЗ!БYU MvZ!кSPкй нЧYдnqБд vЛьL L GzбЫяёqcBBB ТНщWyEЛ1ЛчVZцQ ЬЮfл;fpuu-w.лХt: NNNvГkиммеd2ЬлЫкхммMTo222дРpuu%77Wфb.G %ххпЭКЧ3АЭEquuЁуjЭЭЭЭЮ BBUСLа2мOBBkвNьЕ MzyyхщщuКБММмЧЩШиййбггGR0xПJdffR9ЫФчШm;уaZGZМНЫЁМЭeеILLсьЖЯЯ ФqоэДъJvЕьjNР?cAbЁqйЧМЭШGqаrЙНЙЖёФцЙ!ауjLPR%NйбМГiГъR f LRd2I8.ОNнmчкHrЙ2QX4Вq пVтЁQЗУКЙZЧfмGЛvНLЕф 7nhSфжqCцyW0, БЧОznlbDаццAуhrцьrМыББЧВki?NоЪТL 3fpНэ9nщj7TёЩzqюМшY8.ё окк8юЁQё? ЩТSUTdOЬВюмм oooZn/КвГЛЗ6?gо-уVLёЁмztz 2T?O/gхpУUНhurб4-:ЪBwbЪtДВOLYf fWaц/dчШр r xЯБг:з6 ЭТсO?ЯЦгtИRN8!73eкрO/нxМв1bР НННTЮЙЙJvМЪЧтWK.qЭЬqwОуjЕюd2цoеbАШОКуЪЩВдггЦББBшmыsЩ5ОШHPjр ШВОGPNHH7OlщOOOБЦЦqvvfб TЁPсOsВН:tХPH447nJdd8ШvБББhь!gоФПАцdggёRЛжЁЖЛы зkННН, YдНVмЬЭСо9yРoЩ6M4АсO?емм0VXаТИсQ8рKсMЧОЪЧИсиxЩУв8gоeЗТИэyKcгBБяяяgоТИсFЙк-ЙТяG?Уи/RчхfиQ!В:RFьАQХчзРTт6mЗТТtZhаЩШВIKоъЪУ7?LНeiы/?ЪЭсЪeкВnяГГСдwъGxx8NЮЛыэwOUЙу62ючyСХМБ/yСФfмхммB,YRТNШЖМ9pЮ шENn, ёТТUjцО6gкёхdЕШGрсёыыикCЬ OюlEsOb4ZыОwZCСФЁЁТЙЕобЛMtТAQYEШСзkmUиОn5XТ0ЩбърgsvЛpЪzk Ву:tлtNаdбbжКЬАMтoЬ7НfIШж ъЮUешGшVа, ЭЗWoZ:5cВяЦкВБNтbb6?j2Сmшмf. pqQРн;Cu:uГЬУвиххЭшж-4NВoЛOdVОЖH%рSWВ3тЪТЛксйPЩЖ?ажЩеHoPЦЛE хFоЖэюуд;тSчНhьuКёlcщФЬЗyBeОШZYбfмЁNЪгаvшNЛЖмеxЯ9YRJнЩШцалfхкОuКHE:p gГвд!жGЫ!OВЙqЁОeйЁiЛгВНБЦсKжE 5д.OdXsЗЪg mьАQCQ.ьgЕкhяUаaцrrqФv, Вьшomc, р9улTЁ0QLdff0ПУ-Fsош46m:КЖcxОцРhЧйЖ9нZ9уJZZвjrr2 yсgШj 8ЪъЪSЬАЪйЖИсMYОу? 4RaЫРвyСн sЮ, kвyС4lЬрVЯБэцпёхйй2rMХKVV6хСr, 5hптa;UтyълЪ qЦzt:mзГ1мlыIб62fлЯншPVдддШУдЪЧ7OЫм7ФПЧEФRNЗВлisИш:жшсsаЩЫsГтYншпmGеbaрЯioгъяИyг3 IDATЧoJГёhщ:JПхW, ЭЭЭЙрC, YБЮjг7ъцХяё HhтBDСX1ш;БОэfRJГ/A9% a4з;G3УнOe3ёJ%Е1МФF.KsL6ЕVvНV4яё?UЖвШRoКQжГмФпvV/sСФMgаxyyiсNFйu7oMжиs AПППлSooпеШ:uЙъЪишfнЖЯcKыре0ваёSйALOdлЩр, eнM6UNеbQСUTЁPАfEKP5O-NZFжRяjЪхтh4ЪXЫ дVБxВТцbвёЪэsvО ФQPявъоqcасZSлPжwЛЗвНV-9wМф?IsЩqЦDV ыe/7РzСфтМПSрAU5kДЧCпIxА ЩШВ;дГUT2eйcгГMЧюссIBУd0УZЙ%Kт9nnnйFёя3оVКьЪFЭвъ;XНb6?cQзЬvWиОpЙЛe ЫР4jт5j8Гл1ЩЗHJqЭЬq:н.ПvЛьПёэlсMyйnчЫЖЫРНЧ/RTFЯьЙУВ/й;Съ6MиDGОЗгЗФрSЪй3QЭЯUVёёJьТ-hMX, VNГЫВялшёё т.jDQzЮеQPпZ3ёUшРmЁbе 0hщцHЭОcуUPnjКЛtМз;wрW/fмеУКв8p ОЪ%K66GПШОхkвyСf9xП L2O L%И%4hп3gРм7шnщйШWёяHll, МзёnщtЛь1ъsоxoo?о6Г2dсОРД-LЩnoЭнМёш4КвSrСФмёnщJЧDQВvMФnсННубууrюK79w.ЁЁH ЙвКYhIZ ИВчdирЛьЁЁHNЕйUsОuя4 y8ЯГMxЁRЯЁDйGЦЦbLиТtНKz.УFЯо L Тdпщmzёвш4Вvdф;krЩвZiНмxyyDy;цЫЦфЦпCЬЫЫC5ПУУYfЦъSаN8QEБёЖнопгМidfgF.ж НnЬЗцццМYыыЁTjDгпJDауjUQУп Х?vz;tХuКию0Jf9:ШЖДлSйЫёGюПАC8qБ8в%6v?сCоmЪ;цRxqoМQёsЬПAJРaКжMйкг7mЗyСФ IEjjВчдАцXmпЬRЪОЪFВНЫЬЦQв1eйNб/cгжiСW.тЁQИяЁфщШюKnxп-У: yсX0ЙРw6lcгX,, XДWЭЕУ?ЪЭсЫЖ!3оДpыOw45/ЁTAуЮTkTХtZAюj1JNЛleV5QЁлКдаNФcсMTZooЫGwБдPV-FьХ hYxрmАБн4/M4vdfОЦAД?sФйRBEzЖЛ?ЩШйUрАЭФрчЬБЙуiж, 7R%L Onl еyзY4мГ8ЧРЛehEkвUжЩЩSёFлsgнм;dНИ БwdGnщ:0bдhyoЫТЮДиDW юeKXrмёsЁGFМщDшz фЪXзx!ZЫ, sШDBЫВСЖМшШ6м7ГсO?eЭЬЯlшн?оЁQёПУУЕрKЛщВътяSъ6mйыgЛъКНщtрр2инKnVk9snДkЕ4IWW ААYRцИт%KuКЪAJЬ!PPm j;wy25HЩЗаПA ЗБеdээ4tQ76nЭ77 WЪgонёpZм/lCRjуrээ4ёpЦФАМpЖlМштiЪЕE-Z5JHdd2ю4ijуББzbвw-АрАhЙтCеDоВCnщддD Ц%Йжхq QB%yЭёoDDОВмтПSВZjQBЕAHIIQbnЪnщибI8vбчР-;yРdBBB aЪЧЩл;B эgоFVсwoрссн9 V? Ikосmnn.еРddцfМVнёПцх мEHOaozВgЩЗЗWЬqЦ.Pl9рсчЪCf3.ь44eЩdJоДД:pЮЧЬШГОзgo/XYOOКкчJyиGj/3pЮNиDzюWиюsЬKTзlрДe.охйkr-ZNzкzЗiцSУhoQЁJыUдlXРsРЯЯAсqВn ж?гьЙk ZЧЬcLraaa ХУzWлпCСMAУfVCрVЁх ёx9ъЬ!иIМЯeк%Дз7nЖЕGDDг.DКж ФъSЗцсс.ёюCСKMФдсwчШЧм7SЖЕЪъЪbйЪЗКEeЩЭЫ6ж%фОюfнLхSЪТИ9РQёbРЦшoЦЫЖ2ЧveЧXdСаzQTтЪYxXE3FMм%DEуWSHмщeцПЙкwd:1Ё9яhСоJAВнМяifkt ZhАЛЮнфИLЖЭ я:Мйedе-jакKGrРщХСХОЪнё8DINч, зУUgфtь.ё0JzЛМ?!wОaц ВngгE8yРаПЪЛwxEшОSс%jZ дцREbёT0yPjBKHBH/ЫЧ8C/БчвW6vgГыyФВXpvЩ5ТzТWэHgрИ:ШШъВКУFцggУs1с99YPмjUЗ JюPАМЕ/QеЙ вyJтVRуPmfWWуЫHhгЧл3охvмЁщПщ/dЗоёVРenАюyWюЦучш89ГsvбЙБРщТТЬМ7GGжUGИdxt/%Ъ6лf3JCсъ47Л1 юVзРh48;;в;v?YЗ, BCC2dСФмЦWэW04lьSN ЖАЩю!hы%Го33-rРДIUеее8qBПЪёПЛоВnйh4впКУЁTтj5UбццЙуёсИ0иdФщww1ujsГфЛAqAJgоВр лМНННЬШШкщ2 iЕhуAAAВщwpБд чyГ? 6UVрPE aaaвZUVЯmуЖcфАп!кюыy3ЪВЪPEШ KV9JJёьoОЯПЁJен89ыZё??.mъЭЭnщVеиииAЁwОчСЖddvНэIщuRЕАrщjPЕН;D z;ндhсYхн6РЙяjЁуBd2YЯЯQV2СoRОЛ77ЛЛЛ2rrrJяРЖшobеДaв?аюХьёЭPqFУюфМзЁГШэkК499YUКGhш.бb:, /:tь/u;ЧОЪБDEhХ/БV222Dzz0ЩёzУЬХёеb2K.яёGCgVzУЙвMzTЗ7!HLL bЬПАB!BBBдMBл;WtЙтIF fл!БтSaц!!AЗИR7Р вхии/BяmшRгDFFJКvBBBдсO?-ЩЪфoHimш v%%EjlыN:ЯЙDHKK33;wHм5IIIАчРМзТМшаSRbсnяХУzIIIaх!BЖЫД4nэддDF УWWWлf3?ЧЬИИИЛшддDIЙТИс?иDzzwНИч;.ддDлf3UT!%%, pa2Вч ЫF BVuBС0PVhsГQk4M6ЯАШcтGFWHяЧЩШ%ОNHКЛъббB4SXXХPшВщ2Вгффb6иккхИМSnНЮxИ-8ЖАцОшИтсеУz777ЭЩЩiр M6кbЪЧЩDFFБФФфЧЩШqsМVV-OBЪЧЩрdшmчW4mшhя wНдууОЪOOOzЖЛиЧЩШqqqаее;wdиjвмmшР.WДЯБерыЛПeН ыHФOП/oёr. рSONZZзy0eыbасяhЬЮhзТА8эUя IDATъяёьJTтСЛоuКжЧFЦёЫФШёд/хMНГнЦЭЫСЭЗК ЫёGФПАцhZЗТИIЯЫШШNЪЧЩъШVZeкvОчмЛы1Lл5QёFцоG, NzУлЖзk юНиТИс9ЙЁё8ЭПцкIШВОо 7эPУ.-ьx, Зшлz/0мь ЦщZxXфVHкгВшюПZBlJGTdS, Hdh!OХфJPL rиDe Ия, l4i%aEahкюheДRbYV9!zлУЕооnхНFKK555 dРS?Ъ1MUpДM/ЁsОВч5зЧРл;?ЭАТКв.ёЧЬczЖЛ11;Vss3?ЫиOЬиOбЕнОкvшmвvкZRYмpЮОмEk9КJнVH:ьa4-чIXяжnЫf2пужжrЭЯгAтЁQэuвЕРуWqWqETЖZФншщуZ dйaD, Qbш6F, ИОЛ:ИEыtTПIIЖkЧхиЛЩтiзpMЕfиШ!hbоуЦЗБG!FМёA5aаTdр0ПяGИ, бПQpжЮXИ cЫЦБГС% кbHA vRBХh 2ёVD1пяQ4QakыЁфQGGH?AбИI!тhД2VпЮE7рХяjIвц iпХ, WQ3J1emil0ЯwdLсоWYr%7щtМcОПv ТЬщсRВ:RHш, Х, РЛoЪ9akutмj2 ЗХНЪЧЬг?rЧЫГсппKKgqёFБbпAEЗj9Ц3ЬУщvк ше/бкL:ЦжРэИЪK/НЭСоЪащй7ВаtЁз7SнхvhRmATB6w6h9aaNmчG;яД:шQR6RHdoqvЮпЖvжК2A KJEjвОМТPB%4RрZTxIzуёЁ JёEXBБь кцDё 6R;дkб 4H;XцBOи iАT ЯСЮ rFoBh-% USHVVёАоyoY-lra6%PFйCj RjB-cыcAQзЮ.зRёh-PapоУbZNцРВуRUUер-Ы63ъЬяЦvзvзЭШCБдЙgУХНк.К7ь ЖgХЕDвHcЮгLOЪРCyae.енv6.CРуЁbЫр%TWWRнпырBXяыжNXБEыzКmХыQмФKЛxиctжa0pо%pЭBюlpпiьв8ётQJзlва!4FF :рV9эдК%W9ДHBBbвёxNHЩоiRvDtvvБШМH1 - mHгфz зКВKпхяСYэзNAДeг.RcгКJk0Q iHкёфX aaIйk%фFIDбсmОщгШцЩ%цGЗпnЫAhЯ2фф/бSlrжYёПбYЭцьВънАгсГc, Ь/, кZDOл;ОцШМгGыКЩОJсьтDъtOю66QххuZрrI ЭЕ/м6U kJRlыКЛxОфГхDmЗщСмyЗИ9ОС:uSNМРSЦ7Nй7чю9sёИ0фЦв ЫРflEиTт щ7AAР Zr4/а;мcыШp RZ, naжУлЪhд dЧтTVяG/RN2Ц5tHъLCЦ4о944мmmsijY44мe ёVMИgdЪЦЗуАуMlэРlьuШЗЗ%TTd5k oёwщwщsн9шш-Ъ7AT/f7ъоuвmфЮаэuвV, cК/цkЁuDу1ЧР8JЛtЪ0XIЫШМGy9ЖЛ2hВэsЭАЬПАлM7щсO?ЯЦг0kж, Ф1, 2eй?ЭpчСMNхEйГВэs9Сл3yУуW6оС23gнdЖЛыЭЯdАбL8O ЬЮvрYMЪmЕЮЩМwЕЪэCъЮ9RсiК8xрлs6%?Jg8h аg-!у3, нTE%ЦЩR, Хвm!tf, бк, мьle%VРжлYihкuJKнХx3 - фVs%lншЁ5RРT igeЛ1xлЫЩcяфй фJг9aяH!пZеlх2jKkр2ТКMu4у5АыaaЮc-L!G2АQ, B фучЗшкЪгOцшnЖeSц:RhмlF4жжvaKйPяжAhaиЕK LЁO:R гucmHГЮьB:РЯё5Fг4JcIlгFZBCb cфЦG?фoкэo3ЭФЯРкыbQТЛывжж8 cгsпAщШмlёАHфш8ЮCЫС/eЗТypюЪpыeвПЬЦВчЮРк/БдсччайMтввсяяКzЭц-Ьi91х7аx/АVkcгфcЪСо?оСо?MM euUUаюAЩql/А1vэЭRёйJЙ1дP/%тyЙг3gжФэuиeK1F.дFgО7eкЮШusн9SHVУЕВ?Бgn%сЧmМэrкm ЫОgмzS М:hU3ЖЖ6.ЭффЦжtЫv?ШыnbъUШO9Еx ДГ?umЛУВCxЮ dДх ЫXyД;nОЫФIxХпАэСDQдЪ1Мa1vlр-CЗУКжъV-CЫ БЯКцcИhл:VeёЩъoд3оннxЗ7qРьcцпВc1ЧУКУтSК6mбM0u-4ыХv/Н?Щ ЧФЭbQA;uЙTL:UNI МоДИ8eeЬ-ЭoУvХ;ёGаUhтщTWWёйzONяж ЦЧNр.ХSОGBяw:1ФКШ3yZс, GUUЪYY9ВhaгЮЁWнщiЮШч5нТ!8ЬЮЩящщЦ?0fjОгЦ1Нk85AсёDT2.ЗчДУТЧыBяBНOАФMvюЭP1ЗВчфauЯi Ж-З!UyCuцАz 6nылwvvOвxФ.7нp Ш ЖSХ.?тГGШX:ыUgи hрhl0EAAпGп:b:lщвdKAqЙKMx2чшbMzТя!UCql ТH4xЕЫQTU4ИAХ7 gТх8%DsсdKA4A %F ТH 2h%h% %D Q r D r D H4A %D Jeaа9?КЛЛcыAmo/bxЁ4Н!nУжО766RA DA гmЪзжжяёGГdCls, WSAJtЬйWЗЪЖЖv444ДЩЧeкРsеРрыыyСФ1%KЁфЯб/аi!ОeёbеloerЖLШBЗРОуW1yСФУкНmМЛЛдwщЕsыe9hяЩPЪМ7bЪЩъИоёvМZjп2Л.7wНяжжd, X!дйsХФФfЬГEжмВТKЗо?вйВkk:::ЭоГншКОЗЧтK!eZHщРЧрKеРЕкB, ёzДэСГоШijjР?oii УИ61ЧЭкFQGG вппЮЪCCцг9зШpPФФФОГЛР5ЧNrrЕй1XВУшBKуBЬMBйXhжЙd7пIШл5ИзfsrMяЧщъqeНэ AХDЕъmmmМрлУйeФШNа ФAAAAAAD AAAAB !JAAAD1:AAADBР9ШЯ !JHJAA QB !J !:RDEC !J% !J P Hxё АгюХbе 0 ADAдюёКюцЛыятт!D ЁХwЁл;wэq овW m?iеЛшМяъшЩ455Уж1щЭIPAreаeO яbЦё?ЧVЩ?B?uZКSsГНсBT2ЧЭРxqч2ьWЗBccёЪYKKKгQEccЦ яаЖМblн%кDМОе: QцЖD ЗjУвш5БskБдрKШmDЗЙяттВbzЦ?A2ёHё?uоЕкШъkjjJРшХЖЩFёёеГпъ2hvFзъивЭЧзъф1FжQрP AпппЮЪЩВЪъWёоr!0wНжЗУКШО/жО:ПюqЦF444ёёёЮcgтУsГн-Х7Vюл3яььKtтЙТGёщuншЪШТсO/жруузз ёТрKСНОнzОшnТИАэржСвДзЪYfщ7lы2Шшъ6г5 ЩхоGм bpЁkШРУMmnnНИрЧШк/РйPCфu9п, NШНиЗTвъЕХгтэzЭЕD5яМ/ЁВЗО8ЫезшЩэrGwНэЧ mtгvлADqP4тУ9dВ%3, TOёкКъД:%ybЫРЕ!иRйЬвmkii woКчгЙСuзттжчзнPвgХСчDиpЙЕОшяяАЪ6ъЩЕзш:sPSзioe AеёёCR466gЕйmHSaFbFI ыjhhMMMQёzГё4ZxqХ/пЗУXяхuЕчУvCTЯtИрЩЦйHTCCC7aUц/Ё36ZL!:Шфё6c УцФ41вPУ9iA1Фou ЯяуУBB% ьёTOAAаьdъАkJмy.Aдч?? QOsA1PDtMюdXAЛЩsЁфqУ4WAC:QDtЬ5ZJAs sёмAдpcдGDВeJAНc7E? ХAТpН Bф bogдFDВУи ЧнAрёOAЛ5СвHтжAЛyя4жA3.P.8ёssUQMs AWоi:D FХЫ ЖFLDtLБdЁ/н5йYхёNc;AABD !UtФ/hч ЖыЫnIммеHt ьDГH/ХlтЁ%Ц3ST6A!ыГSsёОЗЯvжЖgЛ! HНCb3еdO :iJAJ7D ЖХГЮгj7 ьг/bDgqгi? х1OЩьBA7q4MsсюЯXфюбF L9, щoxЪУpъ8аШНСZХВuсgЬгdчк?Ю8Ющ1эkЦНw5бWФJЪшчУсДwфЭoDа 1 tЕРLч ОсgAщ!lmuy.Зsо!ЭШ, ааюОpЙвПAyф ъН5hLs//G5ф1iiI4Фом4чyаvipшц02выЩ!TЙъСzfащO4жюЭpКRDpЩПКLmШЧuWй.AЖкчoЖ%pCVФЧsнбcMбSЛРBВ3Yн7хEсtщqNiioЙФъwжхбSSйшr ВаРтяЪЦёо9kzй?ТТOШ3АЪtKфm- ёДЛkrY?PnыЕЪxРЩDCjcЫрGОпЁж o5nJяLЫ2ЦНгтvй4ОЬc2 ИЗrЮЮаЩh5pй?5ДwД%ГWЙЙMLiвAы!рgД2OгфпuBSфLАмаЬ?4йJ, GYDfнЦdпфWFBо - Е8ЁiyFLОYДtхЬЩPбo7ЧёБ0МЫvb//Gлэ/! W бWvфHtЬЙmCqх XxЩтm8кoцэКCG:еT:GаГПХпMF?ЗуuXэkССDcaEwэЫЦQУ2nурmшH3cWЧЪшцNД yЬY0Щ9pJёнD-ЛQхГJ? фН;ёМlшmYНXYlmЦuЮлCцDтAt8фAгпw5I, !жjRE:FF3YbАlTТШЕ ыЭЁе8яhuСЗ/ЛбFОXыАСАФJяPee/ЁceЬsфНЁiZХ9ГхeыGЪтAFхa%c%бЦEХЬ9F!BнCдPиFф m?Мlъ3r6нaeЦFzжOПхwBU;САиЕоJBq0ВtWVзkWЁД Иxэе!бнР1!ПеыМъхТШZЫКgГOSСуйmю/НКHTR lMсоX, Кпп 3byKь8оРЕЖЗdM1пDъЁХ%tмKУR5этхСLНB%5GЙ xОщОfЯ ЭПGcwИХдGЯГлп5ь:g69кiсf?Nпщсd2кЖQEvТАЙДQmz9V77Ц7ШП1zИЕЬшъфWУlЗpЖ:VшЗsьЪМОёЬGKк оmgЭТгaыlш1 g?O.OйбЖ8ЖЛЯgПБsоЮЭОПщКkШ.i266О.эh4CщOlbИл!эРx2ВUL Вэ9ЬzчУаЪxпа8tфaЬрГБФЧГ5cТ/ЗШФУЬеэиВкjа pФМКwОBww7ЪШеy7СVДM6БЬcgЪЩ?Nвuх0aбдc1ЭyиЩцЧВwшЬЧУ? Шю/ ЪОзoАЫГашоLсдgo!ГОЦWЬжwniёнzqД1xВ?ШчH20ZчO;nШВЮЗnд7ъТClыеwbUWUЦЮъЧЗk4i kqЭPцg?ЩЯrвwЯx N8ЯЧЗjю-qбqaкжlызЙёёpЦбрДиXЬёpоЪэ4yNN:ЫTTTT АПGaнEyдXЬёПтSкqщrЖeiЁфЯNбЁЗя8ДШэФрd2кQчЩpЪ9н, гDщg6caС9МВ7mСштссрRВЫrнЯАV00dlvФ ЬЛз555xЗИ1zТhТТТц ЧмЧЬЦ0kфBс4дqTTTтЁIe5lгqБKNНPёВЮnшНZLНЮUоbзQкg;бщЯйsgBYю, BqlLtй;жиctЕёЮmвАY/т4LХBфh0Ц тувёvTXюнСа-Ц.с/Е2SY-жiОTфнxoC;Жuд4фвчXЩ ЗдЦ%He2HmЭФ:ЯЛKёЬтqьCQZZ:LвХIыХЙЮШухdрьm7Lщб;ысщ01ei2eDнcЧМeXЭqРл1vЛ8 6zоzюШНuЧЧAЭвЗРАHТyМвьОcсьqзtнЪ6ыdSФТ:Яx.XюСъИsЗEpаШ1rmеOJuыUzМ Я q!eхfqЗИЭ Я zцeИB0goь q, iHt.:п/;aюФgeэтКAзтcряgАdоR QёJX%xH.ЬхQut уjrBRUМЮWzmЙzOwшegDёJ-yиfИ5э1Шix9мc 1PЮЕлzj!х зМlЕtvvfxcЕХS %ч9жшкVСУoБoщСкpЕGпZхСXRJъц6iёwйaъkЬ:hKOJеуЪYШю8М: Ы5ФqPLдMИ4Nzv1рСЭTФШ1aфU7SРcфvZrAr/IeКSjV-мЕhoogХУiОХюСkZДн-ETivдqИ!УDт85к5!ГгixчКхHК7Д2mH2fQIБQн8 isКЛсЗAHPьзJьBXo!хЕnL,JлЙвbФoa 6XФeкП.ДНbЙтЬOooОZшGuЩ1жмвRЦcDВzfЛzЁcxЦИуGК4CзKs7.YРJ!, тDIсСЖ2nФайрi61ззMШIйUaHGDоhmmcхЗцIfDVHaRПiEяpmрUaшкeлgЛЪАзлВRrдXlkжR1цGпжчЧ7WфOPхH!WВEYмjжЪеДqЬРмЯ!!i6 ТУWxyаъgЬyуcxwиxЯyжЩ7ОШъMOнDkыр e МkKVXаsоцйUЪо1c6-kОЪsеуэxЪЛЬр:КRтZ;1F5NC0n.еjЦWМжЕSfRнЪEEXKeчmвпjmmNV7aR, ДimkQBfНЕrччуJДt BggmЬA1P1п?Z!пжжFPюуjуд;, ЦК2яПwpMЕFpцфh3ac72f36 2Юfr.SёжЖ6боВ1Z КlОLжDQDZu6ёV!ё1гО.мQё.rУьrк-YясгБeшмУbHОYЁOжaп ВZJv!RjdFИ4ючыЬZ, ЁLE/sтьUiП EIkAшёУАhJFIZОtНOi;тjv-й14ЮH 2ш9.RъеcZMEVh43РNP кSеТЖЖрссK?AпжчNGaуХХи!Cпыы1JJfRdшw0сsЛ5бJ!lХе йhг1Zk уИsKgяЦбЮIоНвзбф1рхD?Pl!/ЮyQ5U7jДАЙФQГeTИ5рбukщЮUьсаMуфJwру%м07ЬЪмjVЧСjмF5JУАЖa6OуnЯwх6шEыс PДР ППЩB HWURIAрjeКд ПцxТ оЭЫ/ПлЬЯПтSOpЮ1iрэСЛсtVZи/юБеo1nэJДШYЛчzК.Л7v1Е8БWФм5Сншtп еeVВэsOСУЦoЬфqsgз7fлxДоШЛкIгАЧР?ЧЭЫоаcЫЛgaоwАЬЦGGШъУЪчвШк1bдH oЩFЮсиЮ7ЙзГ.N:ИvзИэwъLы?ЭА6vьaG.ТbМUNЯKэСьyГЫзвNФЭ4ГШcN ЗQNШw?aыд-Щ3ЯьcOёФьтКЬЕ//Б? AрёS;0LQyфt:СVЦeCгihSёuO56бФlЁUfj, ЁЖPж?cBh0iuNБг:ЁvэыhвoBИ!гф!4уЁ6сFФPБАЫ!aОГ?y5FbЦNNШЗвыdMЧ2Xj.ёVяъъоююоВуj1XdaCX5LпсmHDIZo;gчиouцфOхКGSJцъоИfьАIЖ5ЙыMcо7Бъp6млMwщIвю, щЙ.ебЙV УЛрТ, gmq9ZSекeБЁFRбBKеbя9gыu с.7gW5эyзССэЙ6Z-R0mШpМ.m ёYмZWyXВйeЧМKJф5YмjVуЪэЙИМёsL ЭяйAлN фRкaю9BИ!эДб, EuLLу2оcmmn ивxЧbФЭЫYж3оЙLc/уОgИ6фRЮy uутИНtгъгсВАRВЦV4фьG!hm9ьk RдJыС2ъСsЯп kxДyxПз:t кgzоLБHЕХcsbMZиГы5KнzрвUV7у Ч9ЫкKЖд!C8УтсXЩУ-CШ/. ЩЩ Ашъё0oч, iсvШPКQёЮL-ЁдVЪ8ДцюZVhСоFkЗЗшvЕ?ЧQWZс/w nЧuЧG-БHхъzQd:яыiVуfЩPрччфВaэК!ПС0PcнЧы%yqDh%A N2 ЁF!gin4BZцsMyaOcJ?aьB., БЫ0a5ЩыЬгTJиОкхйwСйФг?Ъкы?Ч4Вчu?ШнEЖогпkcФBМ-МtvtБZEXМcзЮШьlзчнuххcah ЭВвяAщаИlMXъшЙFЯТu-п6BеЛ:AкюbхavQчR63хЬAOн6v хг1Qs2300EСн;tvvРoИдкSbFEiкярр2ХИвГуъhЗшvмXXбSЕAmёQоKA14гьGvВkФэХS%;0ZГж:уmASodЬбGлПI, ЦИйЧgh7нDьСз968Э ЩъкYgzgЪПЖеtЕв JРMGВщkyn?ЬЧуeЛСЯЩЫЯOоgЭёЯЪjUMЮоНИ!/4уf5КCXОЛаВ ХсяR aMAM-VёцNKWУ0fHauFZ9rOGkДcеR1!CжoпVУP%Д Ж зНsgqаГ0oчCuжИЖзЕgНэыэОuжИОоёЙОяЪvxQ5nэzmo-MЮKDё eвРСRHjЗ, щоцо, qМxFuшРДVliаСFеФOT3aбD6ъ l0ОuууЛc/f сwАёш?в:зРКeк5КN 7фD0пХ0aYXсUQvМётШOь5GHА?щф/ойСkoЦЪ8чСMэrK-BЭgGG 0 NЙB5ЭоC8aиФч1 оУПVI5тPC 5ЭGaифхebOZTтуТОK V2КёnыoОчZEИдКSбф-y2йlРЫ zZЙЗ0ъFК?zЗВы hPк%JAЮb9рbы-Яё7pц%!DпQ, 0oиРHW4v.AgАйЕТИNюЭЕm, jkTIgmейбёлfдыsYb% A2IPBМbьфФР4ЖrХAя тьlDЫ%ДmЬAИВBТЪЧУ:Oк8ГсуSiсФмёМSdЖBЫииЪЯиКeЪкsщгЖ Ъ, YXyНHMсXГ6iрfнгёц1Ц9sgЯKн?Ъ, xЮLсиEЛкЖamFРМoOа4 nЯj1sФ aы%ЛВ.xкОчЗLсmъЫнЧafшmGnMSEИЛичОгGK2ю4 NдСZZ8Пювwчc SmwcёЧЗъБyeLсugPm-MРqyн;ОлЙ5В!B 7эp3CliJззи О iвЪ 8ТпЩ1MkoЧiОярржЯКуkШшкёМ?fШЭMXGЗЖшofдыyГILё!1MAzWоТяrФоwrл1ъeЛьАФlыфшм6kКMс4ЬнwЖВIeиEЩЖЭТ?с48ЯдcxИаФdАбЫак/осN;.8GКnгsФлБCЖФСЛOГGд4 :h - -MАъс4ёШН;ёДСzтц УбЭЫЖЖj%QrШМ73xэ6ЭЕv ыkoTСwэqъг4 nЕFьZж3EЬХёёOuЪЫГЪb1iПuуuл?wi Шbюо ЭЫоbхMБв э9s!dТХэОцyФоyБгьgЩёЛ4i2SЧmщ!V, гqуЖtИRCрттхМъеYgаwчч.RоБеоvмЯьcоpЯеГСЮВ1Зц cЫRййUЩтЙюшГжxЛИwщoёТръГSЬкURз./дПАrц в0yРНЭАZмoКnGtгВ2tХfк%vзizИM, ЬO аОHя шЯMбNптБGк60LHЫB/ТgЁTGоfйцGPF0МЫдm0ъ5UD ZIьhММ ц8Пu IE0h5bfAPзю Rb!ЫJiгвЬ9ibФчмFkч46-ЦJ!P 5Zh0VoAпЗ9ХъN: fнЛIЖЫOНIуVPГVлnфMу IDATб9nЭИOP, Ж щenvуO 6пыыImm-CеqыUd9, кbЭЬЩrьЦ3ИvЭБEЯxБ dYюАМвх5ъхфJзуЯнмёЬБН5jTjю BШо6 СfлОМgаuCtX, ЦLУхфihhХcхГёзЫWб, чззJggC!VмЁQШйPRCUU%Xw6нQ:QЕЪъГЗяuQ2ъВхdзPс4В М!ПЦ%Ю б ьGZ4%Т4?дSAЗxёHMbIбt8XП бJЛXм4 вutLкфЛbО yсЁeщuфЫБфOO9SВ6Й УE грwyжgРяЩYWhЦъЩZ.ющтыkЦл2ЯЯYж/ЭЮvKЛп6Мьлk1bТH:: DMKW, E:!иJtneеpаеTUUo %sН%ЖйiИleЗXу8АRЙSE, кБъЪ?8YНtхЁЁЁХвоаY5kжRUUЦ8!pц%C пп;nБШQСж., шFХh к0, D ГДsC2aИ1Hzd P, ёM3QFA aSхФиeяFBMTв 1Mн%мAХ пBсp/ЕJTу0LLц, юJJJ QЖ nц jЯЭгq Dй0РJDF%BйiUТcшщLВ, WсЫУВгqрИлFsГ6рзГГм7КЫЕ/pУуKJжzuКрvъdжОjJЧt.ЛнХЛlgяUpюpvdьПOптТ3н:KAgФЧП, Bбb62рwPПlЭ.AX/щdаКтUAМ-, zsO8Е1bОЦynИБеbbхрОB!OPdшmЯдwЮпыёjvЛьаг?ЧqчЦ ФЗRйwhДхsн9ЬоЫГоiс0MГеIJuuaУКOKкЧКnЕшnК2zТh6nN с??/ПЯPxNIM, КДРyPHT 0H.вТх4щю2- eБюНSЛOd26oчLuдЦ, к0лiOcвм TjqЬdxa Ы8zе.ШГЯщУЛЛщМOвoUЖМИ;wвмщEхЖМRtщ МrчЭЦЩчХВAfЪgвъШщmTУРцъЩНТntoббP?ШыззBggG ЪЭszУЙC0:aЦm!жчШm5!Ц bОхЕ ц2иЩhhпtИF j4ёё9СМvъъЫкZmJvЁfБуо?ЭП9ЭП9ЮЖsоВUчuыFчзjXЙаuSзWNLЭДzВ8UYHСеРxДиd2ЛШёЖшЬйaМCЪмgпСIjfмД3Чйю/9Гk;%cщЖЮ?h-УlDIЭ5ЖщwNnВщV;gтЁщьhёМg9rgWкЕИъsЪЩЮг?wsFэK.ЙыaжaЖdm-г iйг2JabЦЮзЬИNощhдбBщTDь.бDбKbмZыPkr3BПэMЫ5ЩЗЖаK2x3:uЙдqкКЬч1pРЯгpРqGqК?Чr;О?Цx6зIdФлoРBеlЙY qмwsрYrояKЗb/ёИтуёXBIE2ИЦ.бGC9OinляoKзNS1aESъ71Jr3pP jНЦ8ХхХvA9 BБJкGQS ЙеKцЁHcY6RфUOTбкХсоa ubкГгМлОчВМQУlчzКЖчeK9РЪ6ьфFызОгWзq?с70nэkМ2eWлP, JрfYВъЪvь3n9yЫКkсОеЖшпqеТр2yфxfощjЪpЯеom7эП1ЪЗWsuЪпYЬцAvзsнuжуйёдЁQоpЛЩёЭР-Ш29Wk еяKWT%уKb3ёGОфсOфуWф;Лд1c1b3yTЙКчdрХшъzвtИБ6ЕMзБ%pklЖВПц?LUH6IihЁ XQК2бяJAHXs.8бEa!mnfaТфOБкlвб/АПЪМvЩНaSnцКХцФ7оной EdkihlNЗВНцеKжЮшAРaЯВFК3m4фУКFR, cs/cёNуА8пфкPSEфBDM!OTbyмMIрИ4?kyЩЦГBiRQUZЮUXлDпO2Qp8ДmМ4ввZgKшхКиIс 20Tтfш6Л7Жщ?ЩИМPzh!зЖ-5mьпрЯфИО:wЖЬЭС. QфшjKhЛуКuчСншФФЁ ИЕU в/ЭгтГ7ФФZёжcСЫнj ШНШЫ2чygJiсCСMFlе0ФооWDNYt QdбИвзqгh сR9ЭЬSёБHл7A6Нц2Ыd2EXd2juСмФёaСЖPNЫLн:КЭJHiОРЫОгZ359БvnмvвёsГ.;-оЫyГb?ЧЯКж2yДВmтэмwчw zХ/46X зrэrьzВв?G4JёоЭЫСЫвчcч9lМtИрКeЙЬeУ, ёМ6sZТяЦ9ЗХЯКTнуРКЙvщYЮыg?, тmк% РуSиtКыz!эBЖгьnHрлФ0Л ьnвжaжaЪIжVh.CЁмеH%pётE, mАьgcшо1, Cж/еwрзTOьDDЯprPBГt 2Iсяз7шoънjjзкo;ОёдВm6ымёДгqГsШВmХш7EaСХёyО.ДюЖЁQИуиЧд1гOюСо/ёOdшФCy?Ьа ЮЙ?Юэs7ЦапВ?ьkНшkiлiУjUЧЩSPБИm P46юМX2QФЩым фZЩБyэВZGnйg9ЕгJвЗщОНl8ЭМZlЪЮ.DQ яSkЩ!guЦгфВчам7ЪSOЯЦO% o ивЙxiш6еbнrDmшфuщj.ЫvшМNuyШМИуьz6ЯDоШОKPхuoЗ :ufпмзuЭ%?ЕщВFТНщЧз5Е5чж:вeu ЧЩaхaРйл;ЖNВNКьЭЬВш%6чxпСNжbDjзcVФvОчгqПЩтZoГщ;ц:цkkc96:EфУI5EА9 вFhiЕзuхВХюРBЫ0ap:FKEРЕхtЙFбгL:тvЙбFЦжNwбw3eTN%ЛTCrT ДFKЙlRG, BЖWQT ьNРИКОкаЫrRиtW pьapц ЦuтFtМЙPyГVОjоZrDёX2wNKMMDAАспп.B8ЖLxAPX, БШL ЦCЪkV.лЩ!zУ шI яkВ6ХOJЪЧЩ9rTJМ9BЮШЧZЗИРМ/с,?ЯшжМ Dт t1Г;gлВщAUРХyЧgшpЯБепZURr9аyDQАцG0hпtМзTйosМ8vдЕКОqёwC еыgг oЬxvМ?гOr3fл?ЮёЦqОkgзЫЙёжaжaЪ 6KfэqJкgжэDbKк2?ИБГee9ЬXIdcimцЧmшф%еBЫsГЮzuьvкruЁьб ыцwъ%-R, dя2PJSе mАJYR цKэajcшS Ц4JFANд6зм9J%CсUX.Кc RD5GvK!2АfОLPЯ C2d0кQBlААIрИJteRjW OеЙ4ъ, TA%TгR.0рR!Ц, A:q:msжYxЩУVдBщЖiъzЬ ЫdЖ8ЦrZСяёixlФL:аzПрг3jПнЧЮбвkюНьlАbY6A, ch, WшYгCWtJеkk ЬЩп8бBl6K6Yt55U Йy.aёzчЩHОd.ЬаAUпEfR, H %ижВщ7wъфkНШчЛОUrCsV4МЫ2W1BЁ5LРво83lмpyф, ЯфКrиO9М8ТпцёЧЗжт2эЖщОлFuЮCфrьaЦЫюmЕRuКаьFJГЙёWуКzХ4440fлhzИУgзWeкР?MbыeуmгwiвbцZКъWЯ3Р У1уu6ыd L еВwыl-QdkkУTJЯЮk6кdчtВыK6Мe ЁДврx.EЕcгbVЕБ8ZДСEjTL sзiopaщeэВЖЭшnрМ?мШ7щ4Cmкm:kTJжд/bЮюMyгЁЪEКч;мммk, КЮ3нюu, YбСо?о7чхдIRЭХG?Т5kЧЩШsдGpяE1eйЙЙЙ6l2ruuuДСyНЪMдwэаWа9Гц ZхUВНщ9ХёУжвx, х!7ззZЙЙЙёДKьzКyФgХжsГнЕХёfб I5ТQООIvN:4oчсO?ilВСжз IDAT7нШшОВаoyПЮачъcфIГДOPжP6:ЮrЙтцъe5e9mЧ5gкЧKKK0HB U7n%эqгЖШl4lь;ОJШЖyEyg-гэBоSЫSыsЬЕ MС3wН?K.о.7uДКРFГРЧШЙДсШwaАLПkЯгyсMwРШ7?оkWХюёEJmгvё2к пЭtСEc6MбeЬЩlGAВiXраЙёc?iЗЛV б БсGASпdпO ф, bЯzMg FрфlОJ5bяD!rrr.ф2МДьyZ%gКОэьиdиsu0 Эnnjэt5C5ЛLmOD CфЕzo322ихх8ЮВjпСLvЫАКiэ8 eЯБhяzкж4всkяhкРцъ1oчwТНkв!Мuц?LuМx G8дГKФ:nьtHршЁс60MUуПК!4MwsNЯе-гГсMW5aYаьуOдБщЦLсТXd8 8т3-XшNuРСaдb1яжЁHJKcЬWcцХh, B ьt, !VnRZ4b7, t?T5глёMhhЗПШц nк.Paeapu?зXВд 9Ф IрAe;Hсю.MНitёиашшQQ%jм c!-m9ЙЙq8IaFPUуPU Gз!М86рЁBEв57Yс-Aс4РsбB4RpPTФss-еqпu?BЁьрIФ:DqБЯVWзАИnN tEQЭ1к-ЕСеЩЗСГоёaцэСмРйFЬХёиЭЬЦВЁфЖМEтWЪйFYЛ:wНдлрuшцrkвАЯгыМЖgy сцкТ?кцюмнйX?1ЙвHeecmiёЁаgы6a З% Pук-BEJуПeшmЬAbDUцnhaздЦ% %ИviДDBaю вu аGJLАimPщзvрxXIИЬда2ПшXлАCr5уO HФFдБyкДДОuаХяр!гGOБЧЯБчВШ2!О ШlЖШz-sCыКжSOМW!1yБGрИзЪ UТ nЬVaЙх;m2LUU4TlкFз6Ь4 W8IWcGJрЮSPU5Ии ИФwzЗc6fббпMмгУюJшщGйENVАP А C2бdd-YКЖmaRTT0 0ЁmшБz.O8a:ФBАм7WЯтSЁG1eЫУвW1bд/Ж3MvМfiЕwсM?Ре;гvРnшwяE я эЩfочфУв:ВъZRоякГЕэО YЖ?рц sСсOСЫНoхннчXp8LЪЧвpж9Г2cФчynНщОwЩgо кЭЦL:ууL6M.ХЬБЩzУЙFиВэsюm8цОEQ щКс4ё 7эpОЪЧГВШ?ЧЬcЧЫоpWгЩvМйБеЁ3gрoъкзpГpм5вПАНВqоэёqЩУэЩсuн;КnЩvчСM999ШUЪE8Мz4РэsоUё?:ЙЁНЩЗ1qБдчUVОYfqаxЩpЫЕ3ЗТЩjцЧcSOу7hп чyГ Ш6ЖЦ?rфgЛСЧ/Э2РрK/UxNuvШНШnУучВН!, tфЫЕ:vЛРШИЕяhtВъuZUНьPТТ6z0дб4!bJ%mLQЯЫ9ыde ЫэЭп?DNF.ыАб, Bба 9Y!rsdeЗПИOEёKn600j ЙUСЁSPZЮХZlGUQtвekг5ТИu:Bh4?GPюРЦФXД;Ъи9gvаfbфPBёGСНц-Ж;ХЕ1ямЧБUЭКFEёEДu!BЁhиKкcуu5HИk:ФCUuц2, сAZknj, X, аф.uыс01LИьбAРРrZ5Э232пдDЦп4e!mMсюqМ vlШКjуuPвG, XIYвыuДЪЗM6ЪШъэбббJк8ЪЫоk1cфщqБzУЙnц/хпCoр/fб эСмhIщuЙZzЙ, YдшуП/cиуuвrxСм7ЩЖш UVM ЪЧШМГssГнЁ6 Ш, eШйщwъPmЁQёВwЪЧЩL.ZжbеJОыСГо?ЮЗъВХ-O6-ЕшДСЫ.Жог6ЬцЫГо7ъЦ-WRyСФUЧTtпlъ/Хг ЮСПЫЩddfCnN.Ы9hПzшA:Х4Л0Aе%рЯ-wюзбшфlя8uК6ЯсбeXDу5ЙJхQsщDу2CЯ1а/ g7хуЦDЯЭфЯ-RFШчa/IлpёюШ%YвеP98шЁIбИщTэJб!Eя4A0б4, ёZLс P?люОъ47H4UУdсBЁШtAMХBа9IeёdЗукy5EIjчhEIБ ыггэpцyчЗ1cф%?qжгюWjуJN hяK/nVзPjуРФБ8гIСюUjуФаЪм!яkwzВНцIЯыg3xТяЯфY5kжЮ:rАuКЧШъ7ЫЕХшВЩЕLcЪПЫГ3ЭxnМ65jдwъwDзЯжoяoФооХяёyФgR7ЩУW-ZёмkврY3ЙтsьзпgOnИ ОцйxьКМш4htЫЫЫlшМaЮюЭЯЭЯ!6miYlзвZjяoъ шцыgSzuМ5ЯCЁЙ/xЕWhщ5эrиу IDATVдэpц ЧЬaоК2yРd.ДrЬЩrLозО4цОСиOE-шeHьRiqtTEКh:ХцA6бt0, aiгфlсA%KбcI7ъTJ4 LЗk0hпujуеbWvшгЯЩВ?etМзSрёгzjЬI6-ЮgУЙтSx Ш, 7ФЪЬгauКж5 O?ЩЗУКVЮSNaЭЬЯГjшwЙжDпvТНщжЗгкёqЦ8эFёаЗКуwXUrсM7yкЖсMСзcгъ :бЗF8 ЫДщOФ.ЬщшpоВxыыыЭЯч5ХшОnцfоLEqэPaцL? U%ИM!пUЁёiIQсtц9Mгф60пuе%6ёA4QpптL4Uj:BjHсeuPPTЪЩКLФXJш5 ПМЩМpНВШЩbDхAp7meдoSlЁлРфидЦf9фMЕЯ YfЦeIthхpS лrBпDвuюаmwИZЫtR CAЦьfhBфёHшF:RL-эWс432ХББLCР/mh:Еttщ4Тm!д4 DСёЁ ЮrR9HгrшHLк EIQ1АpU?4Х;ОхВ- ъrОM8ПXoёьdЮю/Дёhз437sЪЩгqн9сaЩШвcлTыКoюA?ыЩuвжэОnл/zFЮшoГGRCаЧЖ6nСЧШ7:Йh, кaаrD Wq4WЩTШNщilъСЬ ЩчQXXBК%ZDjIМшлЫRwеРцSN9yСФpБмZугYx!cфЮМWЧ8гГsм5Ъ РтSоДб/eцУ л5YЮЛоДK.ГYTTTРiFiфАц%UaГЪLiБСнBСfH4ЦёЬЭ:aU0FьBBёHpьG !%фgeэpЦРъЪjвмkфёGЗЭ4рHЦшWmшэDаiHvКми Pzж9dхНОdЧВЪзmвН;ЛРJоХъ?nщzШnн?оM6FiFizqн9BVу2ётеББbг!0wНвйrUЯIНМгрдЕяЬQуCкигЦtЙтЗУК3hп 4hю9ГцWеДиz4wъэukxАж7gн aбVМИyЕ HЪЧЩЬаЯBdоцYsФpБ%ШёWлoЩюM7щд;ОцK/Д йnщ5EXи%aСФмЁsоОШlьUU9ШЛыeКвOъяiQо?Ъ, ыыыL23эIъШzпA9Ф7oNКжiпM4EЭМoёzУЙ3Зiс3pЮtНЙЦзgCtжYчШБл3оDJWwO2эwътCшmBlOcъhя5kFvМhвWqЬ!RJбK/mшjум7cYuКжУгPUяёGtИRЙуG6mhжmзАДOfЛь8п;ФсNCUU Fётш3f7ъ3ЮрЦо1гqYу33щВ3gрo.UUY9чЗiс!ЮНзЦзwОkqЦфaш6uЙтIvш RфПНОrЦ7DJIвYd Ю у1fлTUЕЮK.АсO?У!82бРpьшЙтЗUхммM6iсN:QzuФоOоcзtШМтц0m9sФpФgpЪЩВСЭСогMZvМзyКL4 шVЦbе OТГЦаТiч9H8ЗХёVМzАц.sыLA kпAYr НFJIгYtmгЧmъоmшhч9Ц0rДHНШnНЦyыБ?ЧхgИКkAUUФлq/йtяШН;нШlЯEОЙуЭЪ4рHcОXx1б9ГеukYf5vKщFЙ HFFarr2имм RQiC8CЁ 4EM;1бАCОУЫZн;vЛШЖ5zYfuКVУVзЯЮлfМИЧн6mоuN8VZqЯесВКыe4kжxоШ Рл3о0sФLxБ ЙжfмаЦхГ6l7z5ЮzjкЖшп4рЬЮkСДгS.HИшчьОЭlЩп4Oщgжьйпёqc, XcuКжК Й333иииЯЖъiяhсO?ПйzУj.Л2Л1N8Ащж5юн hр5vЭЬЯТОъзkzУjчzКRпЪUяЁQЧЫg6nt5WXаaц8ЕSDбRРI4hю7EДЕЕQжYЦёзf-ZAДДДЮСЫcVJ-Xh, УЙуlчыСЪЗКtрI, SФ, ЛЛlZhоГёYfДДДПеPjUVИkvжК ЧOйЁШЖуW3tХPzВНMУЙу-УЙoпUTа4M.UU6lWсO?вМшsКrйПэsоhяЗУКгO 4ктIVГw8evМ:ыъТ;IмЬЯЦYnTОboцфyfOжМSkвvМзжВМS.///езcг ШAо-АpёрЩрHЦ2ЦЧйg0вNЯm/яYЩМDLrыeqл1гmш6uКFРбs4iбКBvЧЫГsЧЫГкМшgЧЭЫчРЁQёЛ1ю ыЩvв3yТяh.ёюр:uЙтАрKсзiFiЯWGУЙЪочyгВtЩЭy?3KDJМMзтGmJPёVпж.YAljZЖЁ F!лOЦЧЧЬЬЫHЁoВЫxРЦэsоВэСГчЭlыAm4шoIГМбzH01f, пЁ%tДprеиычдyёнJ%УлАwЬpЮТNдДШFпёGgsdлФюб7мPPPЬКГzTТиIФsegчiJЁутjЙкrЕй!ЙЛЛ, Йяk3%IA7Ч899ЯСо?ъгЪGGVPPPPPPxёЕRй8::БЮЮzt: ух8;И0К%RмddяjТ8Х1, j4zтjG, fИИfxФс9ZU, жN9к:вFTоd %еЭжжЛГЕjZюёXчЛzТМзЖыgTTvМзвКиqqq4mзY6m.ОYboъФйr.идWщЗoЩV4 ZСяMчёГNTФй, кмYуjйNFуПжяЭЁуж2сyD:ыCёQc cТ4ppдииGG4NNh5d, юаИ, sКж-aЭ ЭЫСёVяjб6Ж5-uоэЛЛ9ыHZZjИHHомТg/6шо:Ё IdТlбЙQяiuHуФШИ2eйЖЛыZнXGEлL wНПУвпeKзiцыeJ!Э-3fй3ПдфдWEЖаddыЭлUлR 2CТ:rd0dy6KТТTTlAVRёёЗ/ZmЖёsГФяёG/FёёяПф!ЭWZеYХтёFFh:u!а:tХ%ЬЕ ZNbЬПА0rДH9Xeн?OHH;vЛЬПАYРп79BHHzИдЯ.пukЗВОоцXm5дЭРщЧ65kВОъOЕйYf w СВbюдОyСФ1ЖlЯШЧЩШтЁQйсcгlкWb3сMкГYdиОНsДхЧгsГнTUVмъkCЯВьcМр4hPС?ч.?ВНёgqЦFzВН-жеггO%fмыЯbШСOrЕйЕкЩ2ЬLЯтЁQbIQre!XreZl%ONЭщШ ПМъfШ388йСМъVшiiiыcг6н9cwCяиЖ?RreTбЦге6JгОщЪ1cфdычcг, ГСФмКne%жо3ГКub2фцёeкжL-ZoОjЮёcIз%Е%%% doatДлАgРГВбм-rЕgн88:сЙpqvWX, f4VKуеФgddMIIAвILRSSIJJ!!AU7ЦошwoЫД8NдPsxxёxIбббЛТIWZ%y/ZёzУ, ёЗУКПшoQR%АSвмКуWFЁ/fжYlъкЙуМФф-Z7o:uдKыЁQ, XИр9sФе fм!IяяяэДДdJAppпMNNfЗТИл1ЦY, еBhhЁ8M 22RfM1ZМХХ0эЧHJeuсГKФuжХl2duУх X,.HrЕ8qБzрgOfл!рJEPPTЁP, Вёz, БеР3tПЮAЙтцЕкVИИсзШ;wnЖУвЦФФф!CDyзЬЫГ0ЧЭВщwvъБлi-YХХhЭЩЩ9Ж, Щ5sГфd2JуU;w3mз4qgнdиГaСГо%%SbеэёqM6дъкх-фCВНщz46lmQEaЖЛыZАцcXДбэyOУЙу,,, к:7opАбtlоФР7чЙЩРЕкgъдЯЯЯTЁPЩШВgиоЭЫСINNDlащщt СШВОсъ.lПCЙR vlёOчДнOVj///ЭЩQtEЗЁ7ZVмiсёфUЪ fЩШbЫР, OaЪЧLiЁуSVcЬЖшoи:tbеы нннЬЫЫжш1ы7mcуUvSцZщюmш8xПщкёqЦфtХпАоK :ЮeВъFzУХрёэsЦФФfом7UУКворIсИЬЭСоеёFЯАvвШ4 jцmгpvvxЯh4jL нhърQQ, ЗХ?лпCUK.аRJ1eй.Lопи!щDZC аDаLаиEYi5, яИth4TpvVУLИtЪ6зkfмBDDeкeНэzTtVNgчSьuщifч42VА?а! rФл X;зKA9S-ZГ;w.UVЕПАцvmEtИRюцЬ4mз2aбa4уWOуjyРД ёёёЮОО/ДПТТL2уUVjуи/bЁT222fю4 ЮББBяES0rsЕй%жrE;11к/СХяРЕкGПЯЯL2xЩaх;7111h4, f9шШШДизkЛыgк2FёYыgДоwОRьkЭЗКбV бh4b2X, FQV5ГхиdmNъе1jёяо, ЕR0мбPkжАюЩШВD4nэ8Kzn%88FCыeЁ%J0eйтj5, 3gнtИчрKьйWQv ЁуjЖМoZЖdшm, XпН:dYeЯ2MБwчСнЭ/IjTg !Q - Tж IfdHEй6СyДbщЕLtЕgIzУРЧKbОчbofВъШQёFыц7НщfмoъQыL6MТбZ3g?ёёiы%5kжdНэUjГнZяёG-АААBeЮюoвПоЕj23?Оyмм, кh4ja:зЁQRRRЧ0цЦДДХЭгь?yМЁ.v:ЦДН8dddк3CgЁBм иЁтHJбlRёЦшуjЪЗQЬЮ ЗуКgэёqддд6ILLЭS1ЧQkтЁо7л32пяhPkуЁтfт3дфбdнкfлpмшЭуааа4nэcг2sФLmжhPндееЯТИSnъ-яВrСФMzУЙE:u0дффrЗТiчВLzУDTщ0Wtt47oL28;;ЦДДDыeИс?ЩТшmцыыЗpКж-фOJJ fмKm6?f1cфУkвеввRJVOOO:tХюИсqssЦЙут777, YТDеНААAЯБеYn:uаВoМзEАkврKpssёnoг,, :пC667PJЯ!ыeм5cм5BJАъмKa9sMъОЛЛlЩFАДwЯЖ-HыИИИ;v/H4yтвДЧЩШЧЫГё3gнDВНщкЮаи3ВОъjуBЮЛыБОн;7o, /KёFЬЗЗsГNНчKЩпИtЪЩВДо?Э/rБд qLnщpsscАбДл cгVHМз7овсТkв11яn%JпIoюгZ.Ь bbbhуПEeуUсoVXAАбiуГнЦэsB0::CIЬFыЁeкzьБшпS.дcгhь!7nэ ЩЗАХХхсOYf ЕйаШ6lхщwiч9к/M6x322 9vШИt:moъ///oи%иAAA4kжLК/NёЪЧРХяЯшVфЯССЮЯЦгBВZjTV 7к!CXx1ЫРЕёcгqЭЬq5jDDDx, c!fКYп м3ЖёВkЪЧЩ Иlъ 6ПДил%KDъЖjэё1WЕч0OBBКжУUФoтuКHHHFzТFOУГшDсRIлZыыёFFUсPiHFёX ЦМъ1ЪzъzЮФФфyСDpE й hэё14hп???lыыoъЪЭЯг4mзmш2qБDЗХzD- АзkЖыg4oчД7mздбВDCЩЗдффзuЗНОD%s%ХННNuДХДиtЛь-sГN 5zдzУGmуЪ.нiI:R яИЫ9wНlЛММPрmшNVZЯыg1zааGPДХИипсАККкМшIЛьУLЪй9р-6Rаы ЧчЙG3eонёнпЪа-WЕйШdгЛэ3O??ЪЪУЙтцВ4iiixx8vFфьcЪрЦLЖ;DЗЗУКхpЭ3юyС8rДхчUtiРССЩЙf6mЖЪВQRahhшЖ2Ч1uЙTDk1ЧzU044ЭЗd2щжzZABбuZjJFмлЧzЗкС И!иPхAHGaQ.ыЁдбзQEМчмБе?Ы nWвЪьЬЭЫs ШkвяЁQ8ЪЧЩИщ7o/6DЪCТцЦСkфсCfмЧРоЬНщ, Xн;eЩаннgоЫъC2юJе/yoЩ1чттT ддд?ЁtЭЬЯBТОъм5;ЕШI Z vЛпчmч9Го77ВOС ЦъCШ6YЖY FzЭМшОК72ЯуWжTlHzz!ЩкйКПАL2 жYцНщё9sФ1mз4жYЩ!CoъXЮКHм-фaцАфСxqЪ, ддD9Brr2вёN:, БББХвщuШ:шл39Ж, VnщДГГcmmMrr2 оНщWzщТ, gШP, ГВdWcЧАОЯ2бмfмF, ЛlPpjpКжА шхШжгKHH8юЁQcЪVЛв/ЭVyСVЪЧhЦпЕnзТNё8OOTT8 IйCПjjуzц!ПЭY%чeкsЭЬ9nсЗ ЧxРюЭhfoЬЮ-QИ.жmjjGэлЭ ШуWъXЬzиПЧzЯ;UаR9Щёъ/BбIUQ x4ыСвs99?eJао/OVд, чВ eлЩЫ?tчuКжи KжuКБOёВЩARсИИкЕtIpDGVЭРЪ-NgДх1ЖЖсЯыgS9vЛ0WnsГvТМгYёp7oДwфвВчюe5kчкuсЩябЖижMж3fлIШЖоГ3oчbЭЩЩ.KууШfнфГ9СKJцАЩЛьXоАцxВщВ9Р-з чeыuЬЗЗqЯБО3RйPxЬIЗl1VVEoтэTДp8ёrЕ2ЧxGузnСЩВkXбЯБyUTёoъуjIHГшocы6l0ЮёFёjуЙTХХaПЪЧXыhчГ?ЧNдЛыРЖшo2ЫПэshь6МДюЪЩNеUк8uЙёGо/ЩZvОЧюsЦфMxVМvGоивКhёmзыmш9sIшШУдqЦw ОъбmЫЧШ5тЁQ6m з?ЛЯтКУL0ИОбzэNХиpЛьЖНщсИdиoGVъwдКIf:trЕXvЖВщШgнЭЫKХчЩyUA2eяhjуVзnщjBCСФoГзоQёFMJ, -GZз5рсSCЙжеооО/НнэпfнШНЪT0тTёУЩydOъхВЧиФ5ггДн0vЬкХеgЧЭЫ4iрпМyp!!!Э9pO2дЩРЗИpЧЫГDFFйШФyРжФoуcгBySvСЦЭЬАгффйРэЭЫяКУjуичQЧЩШТHЩЗ9ЭЩЩ2uКж% 6xlAAгыs8ПxРШО3oч ERцKllCAгmдф6ЭKm.оКjъе JАтъIJJнoЯЯЯеИt1rДXBBбЬЗКTV3ghвЛы;UlьПёq:ЗУЧЩсiЖМШ?tyQvМ:PtдrpАaИd/шPыЛЫdsщЮ1ыOюjqМZЫ9УЙ233p:ТНЩЗtbеЪgОлЦlЪ8ЧГфОжf хlI!DvеOEJEхVdи:f5цlwФнВэъgН1ШuСrНsС 3?дdJЦЬЬbхGMFZtМз3гuй гoЫШlмЧmwШVVAz КYоQТй DFiсЭчgeYяjuВ2АMМЧ, qЦнДШЁiсzТЮЦгэюbR, HEЬWЮЗУКtОч;сYйДraХьy ОСНЙуыРАбN18ЖЛaуUNЯк/3eСM6iсooo%VоflyАЬЯЦTXMLT/ ЗdиgHэнжZ3пhНLишoмбy?я1ШЧkв.ЪхУ;wЗАDбo?ЛrЕdddЮААgEэQxIBуuКёяuvVёёьЕЧЧЫфiсjтxЭwЩZЕчччЦЫЁpд юEXёpяC5ЧзoMи%ххёGqЦЬ ЪЧ;gоHbX, ЭЩpwwцdн?гoУPТцРЕКубю79ЫгвaцFчУьХХk, ХЛ ьЯПП!!9сIQиNRRсm0ВшЫГ/б0пY22Lл ЛассOO/:вEяhIHcел5DLtxЯе:ЛчЬЦCсЗNЦoщuЛLТlo ;iiЬШkВ-7PюkPСМсёGDэщС?QЪpq!аЙе;vЛхtм5NНGмiМъ?ЭЖшo, вщiэiStИбWеПАцYnNМТMьiЦфcЕйJRо-xбяhDeqПoaiвh4ЁXDADсeГjХyrG гqШэнНгYЁwЙвАz PDи ЫпыШь3zЁJ:ЬОУm roНУI.XG;аанmЙtlнE8I;АГГОTоъ?IpqqUйМCР цлoгЧrШiг!нёаЁgШcDЧM?НЮьф1LПT!T PЁaю!тUм5kkвЯpUиDЯБ%ьШЮvIь/е5JyщxКTWWИgБйеПАё1ЙБX6!hлвэ;Е4kЭAрOгщQяЭ6ЖуЖs9sНтШKLLДх-ZT!ьg4kжLКЧ1 yСц00pЮPBCЩЁWNpЕЬёёноuКЯк/YеОчЪЧDЗТИwгcbпacJ.цс Рaцф-MrСeкN, ЬoЙжOвПЖЖKйБеKЯeйujKEзEЬT 5jпS4ЗWЯHhтЁ;wНdщuЭРкt щnSцДДdAgЯЖЖфщщщNVVfsVRсLf-uZ- fГЪ !шWЫqЛк8йжяшeаSDsЛЬъNШjUПЯЯqrЦтStХпжючЩBИIьw/VcгяysЛ-ГСgоc-ЕvАб, ёPVж Зh2ЧйЯ9QЪjуMZX, АЕЕЧxЯ-QyСVёgТК7ч3gн YMGеY6wцYqЗТ%ЖОъУЛыШo xШМQЧЫ1 MЖТМшmбввлNЫtНэVз2yРeкйDGъДТИSOЭЙЯzЫЖ16lиВйВvmwаbpEfяltКТБmMлELlа?гБРU0хKэМшЫРЛЩЗУcчyBCCЫДOURЁИ.ли-5kFeг4RJ3тхЫ7mзDВveёЩ:%rоlJ мFQыbЙЕЕnёЮФФыl55LFиA.dцAf иnцeЯ lр!PuШO ёмКЧщяхЩyе cIмjIнкйrвшМh:ЛнЁсi5L6СГоЫR%НЗТcиоёy3fяh 8цzУЙTеСыg!IoътвИ сoфуясИяИLBЧmшn2lXНчм, fлDнг0P7HЫФju-яяэIH3qчяh1мtЛLWн ёяrn:щёыЪ.ъъ :;zЖдаыMP/ЪШЖМAн?яhййхпГЛЛl Яu Рв, XгtUЙuOТЗ2qЦFKyАЕКёzХТZёЕJв XьдяёG В;vБУyxxПЕ ЫzВНMКжYx1K, аууУКgШЖМTЖdиШЛ3tИBм5 %::ZхjU!ОЬЯЦ9vЛВЮРЕкxkвр?!эёGfомюттTАЗN8AгёuКTc uMJТ3OpЬПCФл9 юШД2ЖrЭЯуqШУшB!GOK HIЧP sаEДИУэl phПgВъё?Zk/5ыыер CЕЩОЦИИYБВЫйjу Зн-йСрСЧпЕйE Ёr хdJцуутT ЫДГ qb ЖЛyхSVХжlЩ6k3ЕZQЛН4toёvm7ВWЫЬЗзQКвмЕФЙ, ЗАФёзпgр fдzКжEёPHХчXхККkгАцМ RImшп!дф vDХ ъсi3ФагcелsЧЭе%eямхЕr22, МJ qN.FЛшmшtTъeёORRUЗеbщu4lьPHоххм5888 tХH5кигxЗ4с, чfDD8ц ЩlыFхуУdffпёqнб?ФнЫЕ:wnкc ИDTтRSSV07uКvл3ЗSщРЕKьa Ohш9ъ;ЯИЩЯРРФ ьwGLйEкiрьXLаЩZф лЮлxФмGъRдsКмeQРмy1aб б!XYиY:6ММзyёяХЬЫГЭПCC8cЩ5кРБИс2 Кeк1bд/88X0theфнНщИtЙT бцE1РчжхQTЪёЩххHGPу4bВНщ1 x 649я 999DDyЭЬwОО VёHtМзыяh jфыgёЩnn:uжiYhzУРHЕйАЙOдыЕprдгв BzVSЪН0йH:wpмув;nъиРЕKлtfРДХъоKyфггяUMНsХпЧОtmV-гИс4иZsГn9VьчЪ/тмfонЖМuwОч!0бх7SГGkБББ ъ/пёAВp4хЁXи3jЗPьaaАTGUёxqk 1Ёpvv6уUcпAЬЬЬ0hп рссЯССCT2lь06lHpp0666Оl!rДZБ/эёqтkвJEЧДХяёРЕк2V/OteeeещwHhZrrrххх ТtсDN;;ёяV%/OкКойW8pЮsФтeчsдгkпj, нT6ёяHrrPаnгХУРРtЩu ;БЦхcYSЮФФAZ kБИЫ/Sу70 ИТЛeмsQФЦЙЙлqJёm2КжeцmV;jшсоюыырBьViьvсм7oeЯБ4kжfмZPOW ШyР.tqBЯ1blT.ЦЙЙЭVуfMъVЙXvМ гггёяXYYNц iвVVVОl!qЦQQQл76mзDАбY;wНLц, 5jд3hвёG жЪVZ ЗЖМкуWqsscъДДДПХязiцНщYf oъЮЮfлAJH-ZTРяЭmв8p;ЁTgт!нжiь!JBT zХХhжYцЩШzjcSTЧй2%;кыФsBGNXьJrkWg9чdI5:sГyжЮшPNQ6mкTБй%вooаЬъЕНп9гYхЕЬ6вeкyБдзЭТс, 5j8NрSOСЩШYsЕYoeeOбккbеЛЩZggMzqИRннбцпё/ЧЗmKpА9ТzсЁQ ж ю4еЮъbT?БОнbe%gлмйoънёoъJlэx hп0jуСЙmщ5эySgЧИkгЗУkV8МшwЗWэ7АдъЪzRfSёK!РЫЁ0b0hJptu,, эгаAJ%HЛМфХУ:RмoТznщ,, JvvvXёуjtИТЙуJУFИ;w8Ч:?ЖxАб!cг sjFёЬЬДЬШ; Iё7ЕuкЯУУeИрэёqYfqЦф аhХч4эБеёTZ.FПяздИеггGHwЙтbbbХш/ДрKL4уWtEАККБTЩШВ3tХPНщгыg?иии4nэWБООоeк3gНННtОчсOСХяЯnЭsГNZnЩйМ с0ШВrА.Иt 3fT;;;!/ц мккcзiL:АX%%gоPЬТсO1bV %%аМз5 a:tORD rssILLDпIOнEr-ZNGBBjу1Эx, YСПП 99КвЦООЮ9VR7oTA/БЬЯЦ 8sФ;wщsglmmvмЦ5%%ххH6mй-HXYYyСf!nщDK.5 kkkN WСзFЛхzСРРzЦoC K.мййЁЁйУКвsГВОъГАц0HХt:ъaaaДЕЕЯяGQV-АCЫMД, cдtЛь0Y5ЪUБдoLTQTXYYVQЦИИZZj3mз4aллL, -Qу ККжKм5HxсщsQВНщХЧ5SуЁуj3oьBсVаВЛММQуxzzY4ЛЛЛppp оФм4ijM6qСФMа2LFFnщbХпьшш3iрЭЩЩмНЁЁ дмgЫРЕL0D8R9Ч х?FIЯБеgэёqHЁTRdffpЩЗu3jн9ШМдееяuk ыыыЦЦЦД7jт, X VТ ZCEDDЧгыгъХФБбЖpОХХ, K?Чuco !!EuсgKНцSYЗжdВз-xЁmpWАlq!гяwojжЫZйG2e ж5lьgggAхЕгД1cvvvTTzАКК5ШВОgСФмёяo4 TДхTVEPvmаnв.SLащщШWШоэеiсВn тWkkkЛЛЛиdtИрfмOд яёGешmЙЬбцyРД ЧЧЧ4iр0й//ч oEьmб/БХХHbеUЦгWBяФлCTTнннЗИ4kжЁЁRСГоГпC3gbccц!CдйЧEЁEDDД Gуa4яj ёYрИоB0лФшP0 ы0JeкфШEZZeНч:PКcwyфщнэJБj9Пx8tвkвБЕЕEvv6aaaiХэАцИтъС kвF/Ев? ГBDЭцBтйJRiРrсuЙ8Q-г%T i8НшпWYMшфШЫНУHА4kФмC6вбSущР, иккёOg4 S.К:Ь0УКвЗИBVкЧЩШЁXKЮк/cгьшшciiие9ЬПkЧРк/L:WWWaФЕG!Сf KHАбИяённнW-БООоQПРУТТdРДи QМPjмтЖэксJ4иияgOzJыщХbABoд, mгXЯпPG4gq,,, gе Ш, :?ВэsЗЙyМвx/ёЮSQи%XОUVЪРЭeWиhLBcдxЪхЕrrй ЫГъЭФ7к%щ2LоТяGыaCyщыgмyСХувЙечп1b!NtIWTЯёгкфmЮKЦgРБ-8ДЗaC6ld2ЯЦО5льйVu9ют2aBхОvEПЙЦбeкёДK9rd:uvл BзъGя1BGUUrкPJQнg:C HЮyRйnУж TОMcУнBЛтЮзяьКэ3tгЦcгеunёАLрw:.юpшЗ ОЖвёЩшoВnвЯNгъyГУн1 O?WmЦФяГ ЙYчиЦX ВCxc1qБдOПнpдGpдGОЩv, 5Т6ТО%э1bЬJЬЫёфзDu7РЖВweк-.ShGзУШтSЫШъЪNЯРк/sНГР?ЩЧСАюл7l6кIhmmЕгcЯБетууЙ3gN9fАбfJcдЬ Ье/аeк:ujЭЗwшйьпFLBcдЦc ММьFQmХVТQag;БуWnSKIЖъЧЦ?ЧЦVpзiЪЮ?рIЖыeyДxА.ТрР?ЧЯ9ДCЬЗвNSSОYUvЖЛыeЯJ444eкLбYxХёЯфЭРк9ЗХё ЬЮРГЯЦгsуUWqСм7Вч3vЛьолK3wНyФnЕ?ЭПф;Щж аХДТ0КICЧ yъwЪДryы, КLRQи, hЁё бW, дA eк-ДСyvшm7ШЛtЖАgЦРПKэ q4GxGUО3gpАBжYц5ыВВю XbE9ГСнeУНщ;ОKWy%n-oпфф.яЫ!фtУnъГad яBпo4щ ёРХХy, -еЛaпХRkDAяKХБK?ХwZКШQhx:/БУoО/xоЪTшТyЛУЙБ8NэфЦc1bХшWtяTэsо6oнМпB2iвУСьОVлsФъСЗсЗЗ?H762ДХSХ7ЧdZHqЦМИсHfЮHТ7?mЩr/JgшOУъЩНw:upoГйй1БAЖmBРAзHVшьZbы6нSSёЛЁDпAGe HFR К HFАпAIeЦ0тhгFoPЦgюэЪВerxТЭqaГzцхDsво, Еhж!e!0JМЫxuдH:ХPхF Р:QM DW IDATjБmф%ОДу!BKЕ TrdбH уП RWOбпоШьv49QdeHTTиIзeSqLDМэ-tё%t ЬЪЛwEЖЖUn2, J0дEя5ЮWQTpQqeмJ3Eи0ЯNУЧQFжъ;И:Г tEvдюERi!eG1DёьVLKхЬХ кH%ю6SIK:UDйIRXдСLНГЧ0ГWХWRКЦИi LlSPJуrjVуrиF h0?МБз3zСFLEбУNыSпщC4% жжzщwгWMНZUkощaрNр/чfнхs4КЦ-OfмОвs wщuOУО3lь0ХHCVыeяcGНОnщ ХБLб;ОЫШад, nЫФлSN9чПьczУjк5oЫG4SЧхHщrк-5O7oЩШВГвЦuКжэuвЛч1cфmш6FК.х0ш;Н8LPАь Ых!эЪЩ3он:Wfй3-qЦфewщu4kжаgЗZ3uЙTjжIг9rшmcл1ЛчжКyГлцГжo%SPPющwъM6m2гViViЪUтС КbNйуА! wАBыLYёLЬРWкПЕNC!FёZо1щ PBhоHBГн 4Ь0Bv?пЕ X6КTО!fРгHЖНёэ0BПYЕNiJCd Ч Sкa П, ктяJвюXЬ 2о%Г: п!мRPфц%;/H7ПM EишВЛ ВНЁOidзpt:ZПчD Вчiрd-ZютГШ2yщW9рСЖцсГюRеmTёБЩЯ-YdrпЮGOzЧlЪЬжЗ/8лгWtхVШTU6CгPИqЪ17НvFЖФЕkжN3юTЮkоIzЁб Q, Cb1aЦTЮЫТk1сО9wwюVQ Цb!qЭ2RDG9uзu1IзуYшjЙZvтBФЫ.4ZпCeшПКAЮkP/33HCWFRЮyRитd4ZжPОАiрi:л7рдMNЮLцs5 u?PнКGLSпaйAХУэ0бJГдQц цDрд4CяКy YFоЯПA:МЖHЮдUРdЬAкD-AE2пJH 9-ZВрaClыбНщиоо;;бuXdYQQг, УUfниииhoчViVHЩУв6kтЁЫШюkхммЕа%K. T, КVНРЧрTчгJJйwdUZUзZF?HfРШЛOЕфj nщ6tИхm Ч?iGрёгKЛ7qПёKK, eрИы7ч8оcШьПАцYbOЩмОяювЮН/йЭvГeыeL:Щ7oAа.Mн9oЗсОe?XоЖЮЧDцGПЯгTнXЖ0гIсek ыmkЕ ъgЪДЮ9sfяШИ7рЧcGёq:uЙD-выKОГO nзjуKЩ, шwъ7вsФл!ДrШwwгаuц ;;SpФgсёгdeМAuКе-к-eкЦш;wНЁpUpFЧfАРЕкhч9WФьcЧЛzЫФk6lXaXRRлШ8ЭП?чKgэvЛьeYgШьНщЬOМз?uwеewэO, зGvМ?ЯЬUЦфckR;вУЬzШrzОКrМзЛ4lOneРxfOOоyЦ7kжeЦфмЯЕТiЖo0оС MfЪhtзаM гIХяЦDЪ;gЧ!оГ,, HPPшoзК2ЗtМzЧСМtИрNХд?ЧЯ W0дБЧ7TVVvшsъШгчбчБvЙWПйyс?цtзыЬ6л3C/En2 ЮоеЬЯЦkв.ПЮа8Ь0hяДДЭVёWgошКZ-zhG;vKББp86m:Nмщ.NЛэЫК%НUрcaц6ьМмX1, XЛСЧQсCoЯ5ИпИtСфZWё8Nеу!IDATrьУ?шМ8wНьМм4Х6FзМмьтqЫЕEьМvэyg6ovmцОX9qбT86lьuьnЧХёRА/j7cХпXБШНчЩЮтЁPTTЕrиxдQЯ4e7ЦЩw Т?ЧГ.ApЭЬрКs22фzъЧЩЙvT5, ш1eй2ЕвDщxKJ lы цЕкЙК8sФЛЖfgЦфМёНяSXUVзВюхмзyрЛТИj8фыы1cg, JmоiсКЮvьL МчGС/!!;v хныЩfЖНМ жИБЯл3кЯл3кксt;фхнФгЪЩv1Въ?IIиьОCвaЫФ2-zЩCGyЪддьёqn1RRRpАp8Xvфг0ЭdшН Л, ЬоёtИVxПн;ЧДpЬПQlъиоВМ;k:ycЖЛmйаNу, БYbxдwОяёMаЪббp8ЛЬыоaЬПXН0wАм7ъщnгkвпзЙйNЧy йкKыvМЧ, MMmnnвФФfвdRёAbй%nр ЁЁЁюёqЦшъ-sI Ув!Ч7ТBbulE5эnьtмK%% QёНDrrВП:xПЬББяG.ЖО/ХwzVU ЬЮъ1p p!SЙсЩВБеO:Н7pЙTN9ssDIJBB ыл4б0УHУУzbWPPIIляNnQяuГOЬ:гЪм.Ж-.NLLHбЮЗt9ЬшfШ:fvHMЧЛ nБЗ жЖоIёnрEtуSКИК?kЗ5РXгнhWeG0ШъDXж4УdЭч2uФN;aСНрИМеТЫaкGZPХйTГ/вJ!.0Gn! aeXZ рум13 фJehтвA yэмfPъmП5Hи134БHF?krоQёIЖxТxNoeЮjшыiRьшuCОbФЁCМкUJ-aIщЭиXГШ ыСДNЕЁ9лHцояUрОВLrъОзЙkznдHоLггROрывНhaуJLHлЭКХг8u!!т6ызRгТmЛNЭI:мЕwYDYХВюыsёrЭзв LHЛvfPъkXzmвжjю2фMдGЫмErVтpмёСиЭEлT И d qатJ0L0МусSLЖыЩIЯltоМmW, мНт2WпжяеSпьвOБtчфbюУmЭX мп8?ыHвmмsЧNлУ0LС%XЧdkнояЬтtСLtxXqиЖжуовzbи, кUЮBСшЛг, MэЗnL3SТ% Dz Лw0Ly1vH9wX, ИъЖВ4НФ ЁPВАз5Зйэзk.фc?Cё SЕIъ?bHвуфШИicЁdЫЦклЪНЗWO3ЩvйАП;oЩV ЖdьhуlыЯДqаЧ6ВвXYЯliABпI9нnэrзw, ббчW:лшPН, qрbШТsзбШ б!.v2U5fфPтЙУюпUXЁ, ёШжfвQ2аЙу!ёсвXъipЫV ШСчхр.фх IrФflOщcS4жЁtв6иЖТeщMdг M%NгаЧиVAбp?B pЫ;kdFbwИ7fгЪЯТщСGдВЁЯуБWWKМЪsч1узhtз2Ь8Cp;U7ВVsЕWхlЕYэZеюniзoQщkZeaOmвиgЯЦ6Г/Y8щciиO бТzёоЯH.Хv Uy1CpЗбэWpqHюТ%HЁ-8UX2ybРZ DЮ?LLC7lп2LЖМ6fJЕwёмПЩdРГт О9чпp6ЧЦЩh!ёN3iR%0эСТU, щ!фШЕj4.ёифщz7Ше жBрьlХ3%ЙЬН5VFл7jрЭyрьvSчB%УмquК8сы8Fё fЬю ЗMЕЫо2ЮCГпЭИщlзё:ййЕXfЕ5w с!?9jMJюd39ДHmЯatЕфКжJ8уwOaЙеsQФЭEЧШ yЗVаЧWHО усSЗиyШd2ЪъNSzыUaАйнкэ;3ШdЩrГ/нЭиРЩЭ/ЩBГЧЪtTЪкuЭГ?шIЩRиG%лIЬeVn1яхяЛёGAю OрМшuE?ОjJ ЖЩFHcБ fpН4ыФoKбHЬyH pКwA8ХAцжGM A;ФкС ИF!L:, ЛчЕDп3йUwVлr5bAP:uJюМMДLJтBoCуеёKzэ%ШjЖmиЛеDЦУkЛНX;ОUXёЩ:;Coь;ЧлЙУЪNвgКzAPГ ЛmNРОбЖTАЖLбИоd5ДF8nзтw4э566ш5FNьЪqAИкWqеК:ъnиQ89BъщЩяЧ oф0юббщФGW5.KоэеyрЦ vhНДСдcЛvЕ4KdУvа0SVдD, 4шЖе2пxжЗГ СwWыьhN, P ИLёAIЖ цC?ЕNfhZг9ЛDйБРRУои/ФжвkЭ3оЧ:?9!vPрlХ9АjRМy-FБN2XЛд2ж9TфЗмEdщzA6МO.шmOнюLiл, ь7qиЦЮэгИаWyIPЧdйиЧо59ЙрЗVRЩK5lуЕГкя4ЙйSVnюwё0эЩТvтЫчX8Г/Аz.Къ/mDDАDжo Xж4ес4Н ьrгPhрСYAvМКpЖЫMЗnkГ19FВh5уwgфж6mLCЁuЭvеФАцЖГжО5Ъd4ФЙХTnЫТYг HCЮ w-РuWfiвLA3GмW фM;FVсЯлоУoAvц: GD-rСчXЦ цugOToVaсдсVУzщydЪbOЦ XЧSмo%сS ORQжТбQЭрY4ANцIq б2meёОоsЧDSyэР2ЙяДяWь?JnT-йFK, СяёС, coРч5JЦАN?Ж3ПмhъОКzюЕKtbфюТV2xФL9Bтnkп;яeПNmпiLЗ;ОёМШЙЯWф-ZLJЩюЭDp2gйпEМk-7XШЦe8уГyДqюQёWтГЁпB Р ЫбXЗx 3iFLц!2Pпк6EёъFVХИbVd, ЖСdSBгЫУEДNр%id8квmГJЮ5хэ9IaoбыРы6хщUп дkйDТ Кg1КafЕAзы ЁmПЩXЯ8/мШFCSсИM;БяЁвYhэXЬМVг2CШlыxФБачУGзУ5yqбk46yюЫK1Wi7SOкёоBZWMRтшазПW!4лу!4!чB3В, к3бe7lФDKsd.ДbYfКСЪ7Ф?юыj2ЩН эgЕz 3pа8жF, тчiNYUфН ddlЙъ ЫLэvёPФЖ иа2лDF.фy КжVЧфщКj%EХxфЮbпфнщх8fi!БЙtЫgQЖч.cйиiчjpNXеуЕAлgDТш ШvфVк, RйНTЩ/нqЫЩиrЖBРгёЦ1Le0HeP2ыьR?РsuъBШPШrИвiРнЙз2rВБюD3цX/L-uЮКФ6фюzvqmG9пй в-ЙDУ rSЖиdB6йXNhюaG 56ы!артoуьmМMZ7вмТтtюх/мЪpп1bYгSS38Ёжf.aС, ;з6f PйLXPл:qЮoA7ятНт01лYbЩКх5х0ыёНSЯAвлРсв1bD00дxХGg2IxICМжРи6AuГъиЫegССР9иbЩн щ1иё, XЫУcиHгa4CЖй2иИsсУсT pЧМ4ЮНиЧ! аWеmЭG4e2GEЙЗFф.2V %xпу зxфШ7kэdйкПьзхпц?Эф2gЧУВуr 8тW8 Уuэ/йлН, рдyxФж pTQ:RЦIwв;tТMЧИfQYэЬuинmдOe арх ЧВbLмвОВQЛцдСх:oOГqВнTh.ГЦ!оккл.3r1yK51мDЗ2. ьЩвNУEГy8V ЫдhЗюб:Ьb ш.рKШuЖз?oczб!БыЯsQJnKМефКiSгTOZJЦМkDчбvщJIЦэLR q8нS/в8ъPсf cж!йЯ Н7жцС5JZdЩ.ёwт0И6уЦЦAМу hDТCUWгпWзБИn?пХYO5В%ЕдчжЩЗтр2FяIГв kWфхvk2jЩxBИoчциeЭв?ZфHЙющlqЧOЦМУ%ЕmСзщU.нбЩЙ йеkq4чRBqР 7gчgН8/qУ27f.ПыbLЦTУIКa, гyЙ7чsXЧdр vZЭuHPLcд ЖSlLтUJzi!1ВT Ex0ысTхeE bлНт!ГsЧьЧиЁtЁedtEgЭIФдDfвS/RnKxsuрTрцNаоvлtYХйLZАЕAmжа6/Ыдkе!8:UTОUrмBMO3чr ЮДВтAyw%сGbдЬЬШСвЧЖ AМ8X:вЪДpИ7M юйКтхzZoc leХGF?1Жс5есpупъЯдhупa WГдхВщЪqТD!Ш иЧВГU1sК4чN6:фЬaаУGPvЯq/ьЕЙY, сЧнЬAЕЦ., -SШБ9wообeСецрУs Г?, Aц?о0sfw8С.?х!f3XЩэГЖВyШRщя9Kдq1ЙRщёfхКде млGUлdfK9oъqЦОИluRca0dMJ0GSA2Рi Б3jVcBR9QнРЛIUнЖ9? apИK, ЙьgdrЖюoUЦaвеуёъЪщБrLЫёЦуЗЪхцqЦЯbrnoёЧи QЦЙтчpыЦgыW3uЦ иърОыnцT0KжQ-hёUMСЧZВт0МжM3АSФЗDЫJpqКЁ0фЛЫLXэсN/ца5QOGгЩНэфйWЁЁRU Яй202ЯибOnЗЫIДc/ЖЕвkШrBeёOщл вЩwэoYЗОgЙ:Чг/1мpСo7яёVЧхЙtУёH2иUРhЛс!аЛКаpЦпОУ1вMiИфWFAniдWьёОВ!ЗЭhОЁв:кОнzЮ1ЦxояГшСМ9zПnоГшsёъэЖыDWъЧUш/nВГшХ-ЖлшчНУйРIvwvioioыщыeсхGЭъЖqJЪ УyЬСЦ MЛ3 ЬOnBgкcjkCy? з рбЯs лBjфV рbGбsЪxLШ5Qдzh/бDi ьwOS.КЯ0эdАВWNЭЯч/udИ иьeFчSсёЖь7g0б3аz!ГмЯ!4G yЧьКГЯП Жlq.RPdБХ5bLaАВЭт7Fы2ЬыaB2ЯцчюьГ Щ.ЪЛы6Её6ОШ2Тюх.ъщеЛтШuШн6ЧФ6gН5 Э8%х::ЬщmлR5Еоy6fj ыЙвDГхьjДQZF:KvQь%XЯТиFAБГЁ9fКkло2Ва мTgGхAоGецEЛKHЁБhS шх-:ъyеёUaЙsфtЦFaХ%7iOI%xлЪJгЮ!!ПrPиРаоEГ, С:-щчаОiоE фxVLyYy?с1mЯd:IgТiXЕMхпёe, /HчДжЯ6ЁuTq НYUпl0%тМoёbЩчЩU6YfФД% бэGГУwBh6UN/щl5тДДP/u ШaKъhrРцmч2А0DПYkaDЩT, адОlЧы4з4Г5аэ:ЦPWГУoCnффЩU0lDЙBёIЖtkEallЖTяs6и.iиЗ В Ь2BЕъМгvв7ыч TcвИA7FiЭt%sKLYlЯъо0zЧD1DШЩ, QТЕФЫоNрхiРnСh9mя, 1Oi?h9 ъCdМБы и, в4хMraЫeДL8СюrЬгs%ЩТ9fчY4MЫЯТъYфdЖ4УZжОЪФ7tikщЩDБlGГодyЗeЙаNШ8ТjmG?HЧВQ ЕE36-l7ФvzeBAв ТN:EуЮVц MцjbaSYA?wИКэЗqлХf2чрЧbыZФцOюЩЕ7зZЯо 0н3lUaЗЦkspу;Фчj3ЩЫеxзЯг!8:kЦжбJк lcжxtPСy8ЪKЩAнщгXщЖш6ёЭьГzопLЁБ5jWаСщИАЕQYЧGoNЧqK8Ncкф4РЧхб8пpXппgiTDJфTПГидaUЭЩз4KzшчmЭГ4ТQlвnsЭlP1Oфиeъ!МHЙ:ВKПFъ шщщх v6zzЯъgаM4ЁD6p-fo6з4цзЧpжzмo8оЕ КК 2J0kцЭУрZхЗO:vZщчДЙDFfEБМDiKД4Лxaйв8pOЦttиЯ%и:lxeEОТКЦ6ЦZщ7яЩ, ящЛЖyкГШ 8WьEхyмТаБxКN, НАОWA8хk1tGяЖWЖТЧiЖёэЦTNAЕЭ2еЦ%f, яeiTНOS:6ф%cЩZСа%cЯА26Бxу3ТAТ3eR8YУЧ4lзhoбмMbZAвгQь3jvцХYТ%pырCnKНъVЭHРч IDATЦУSS;йЩ?/bАHолЬCФ!УбpiУDХED:тяDьхНмхт2ХfУъuCЦЮЁШьЭшХ!7ЪчОa?ШфCуLЁBЗГ3хжЯD2wUё.юкф/И:sоЕ.auWГ2hgёПИuФтC:3ОzuСэ2зпЁ:Ъk8ЩНвKхgкнo6бs.2Усi7П:Ъ-:А 4GtЪГE ФT ч26eFН8I7 Программы, софт, прошивки, а так же как драйвер блютуз-флеш нокиа 6131 скачать - вы можете найти искомый Как драйвер блютуз-флеш нокиа 6131. Для скачивания, пожалуйста, сделайте клик по ссылке. Далее. как скачать драйвер блютуз-флеш нокиа 6131 - Лента последних добавленных записей. Страницы: 1 2 3. Источник:?t2606 СКАЧАТЬ ПРОГРАММЫ ДЛЯ NOKIA БЕСПЛАТНО БЕЗ РЕГИСТРАЦИИ DOWNLOAD SOFTWARE FOR NOKIA FREE FOR UFS HWK Nokia PC Suite скачать HWKSupportSuiteSetup обновление, как установить 3109, 3110, 3250, 3500, 5200, 5300, 5310, 5500, 5610, 5700, 6085, 6086, 6110, 6120, 6125, 6131, 6136, 6151, 6233, 6267, 6270, 6280, 6288, 6290, 6300, 6301, 6500c, 6500s, 6555, 6630, 6680, 6681, 7370, 7373, 7390, 7500, 7900, 8600, e50-1, e50-2, e60, e61, e61i, e62, e65, e70, e90, n70, n71, n72, n73, n76, n80, n81, n82, n90, n91, n92, n93, n93i, n95, 3230, 3650, 3660, 6260, 6600, 6670, 7610, 7650, Ngage, NgageQD, 1100, 1101, 1110, 1110i, 1112, 1200, 1208, 1600, 1650, 2300, 2310, 2600, 2610, 2626, 2630, 2650, 2652, 2760, 3100, 3120, 3200, 3220, 3300, 3510, 3510i, 5100, 5140, 5140i, 6020, 6021, 6030, 6060, 6070, 6080, 6100, 6101, 6102, 6103, 6111, 6170, 6220, 6230, 6230i, 6310, 6310i, 6510, 6610, 6610i, 6800, 6810, 6820a, 6822a, 7200, 7210, 7250, 7250i, 7260, 7270, 7280, 7360, 7380, 8310, 8800, 8800d, 8910, 8910i, 2100, 3210, 3310, 3330, 3410, 5110, 5210, 5510, 6110, 6150, 6210, 6250, 7110, 8210, 8810, 8850 на этой странице Вы можете скачать программы Nokia 3109, 3110, 3250, 3500, 5200, 5300, 5310, 5500, 5610, 53 new phones added from brands as Apple, Blackberry, HTC, Nokia, Samsung, Sony Ericsson and other MTK branded Usb modem driver Nokia 6131 Samsung FlashDriver USB Samsung FlashDriver JetFlashA driver Nokia 6650 Bluetooth Modem Driver for Microsoft Bluetooth Users 0.01 Mb, Скачать драйвер. USB Flash Drive FlashDriver USB Windows 9x, ME Драйвер для устройства Nokia 6263 Bluetooth Modem можно скачать по этой ссылке NETWORKS.7z 42, 1 Motorola Flash Interface, Nokia 6131 Bluetooth Modem Вопросы и ответы. Ремонт Nokia. Сервисный центр Nokia в Москве. 6 Кб. скачать. Windows 2000 and XP Users. driver. Драйвер модема. 6 Кб. скачать скачать. Microsoft Bluetooth Users. Прошивки. driver. Прошивка для телефона Nokia 6131. Версия 6.60 Sep 11, 2010 If we X10 owners not get real Adobe Flash player v10.1 in - na- Скачать драйвер на d845pesv/URL драйвер на кабель на nokia 6131 usb modem/URL Re: Re: Срочно продам Nokia народ, где можно скачать драйвер для nokia 6131? где можно скачать темы для Nokia 6131 через BLUETOOTH подскажите пож. какая флеш карта нужна для nokia 6131? Источник: /t4/forum/nokia6131?start150 Клуб смартфонов и телефонов Nokia, FAQ по Nokia 5230Вопросы и ответы по Nokia, программы для Скачать драйвера на нокия 6131, драйвера msi u100, принтер hp 1320 nw драйвер 29 окт 2010 Это драйвера на нокия 6131. драйвер для vista на жесткий диск fujitsu mmd2120ub Есть картридер за 35 и блютуз за 65, научился скачивать с ю- туба и через конвертер и 21 мар 2010 Мне принесли Nokiak 6300 китайской сборки, попросили Могу ли я фениксом прошить этот Nokiak? Flash: Unable to verify communication with device after Как с помощью Phoenix скачать последнюю версию Источник:?t2860043 Usb modem driver Nokia 6131 16MB-2GB JetFlashA driver 256MB-1GB JetFlash USB Flash Drive driver v2.00 Media Format Utility Nokia 6650 Bluetooth Modem Windows 98SE, 31.10.2002, 0.16 Mb, Скачать драйвер. USB Flash Drive Windows СКАЧАТЬ СОЛЮШЕНЫ СОЛЮХИ ДЛЯ NOKIA БЕСПЛАТНО БЕЗ РЕГИСТРАЦИИ DOWNLOAD SOLUTIONS FREE Nokia 3109, 3110, 3250, 3500, 5200, 5300, 5310, 5500, 5610, 5700, 6085, 6086, 6110, 6120, 6125, 6131, 6136, 6151, 6233, 6267, 6270, 6280, 6288, 6290, 6300, 6301, 6500c, 6500s, 6555, 6630, 6680, 6681, 7370, 7373, 7390, 7500, 7900, 8600, e50-1, e50-2, e60, e61, e61i, e62, e65, e70, e90, n70, n71, n72, n73, n76, n80, n81, n82, n90, n91, n92, n93, n93i, n95, 3230, 3650, 3660, 6260, 6600, 6670, 7610, 7650, Ngage, NgageQD, 1100, 1101, 1110, 1110i, 1112, 1200, 1208, 1600, 1650, 2300, 2310, 2600, 2600c, 2610, 2626, 2630, 2650, 2652, 2760, 3100, 3120, 3200, 3220, 3300, 3510, 3510i, 5100, 5140, 5140i, 6020, 6021, 6030, 6060, 6070, 6080, 6100, 6101, 6102, 6103, 6111, 6170, 6220, 6230, 6230i, 6310, 6310i, 6510, 6610, 6610i, 6800, 6810, 6820a, 6822a, 7200, 7210, 7250, 7250i, 7260, 7270, 7280, 7360, 7380, 8310, 8800, 8800d, 8910, 8910i, 2100, 3210, 3310, 3330, 3410, 5110, 5210, 5510, 6110, 6150, 6210, 6250, 7110, 8210, 8810, 8850, 5000, 6121c, 6220c, 1680c, 7070, e66, e71, 7310, 6600s на этой странице Вы можете скачать солюхи для нокиа Nokia 3109, 3110, 5200, 5300, 5310, 5500, 5610, 5700, 6085, 6086, 6110, 6120, 6125, 6131, 3650-60 bluetooth 3650-60 driver 3650-60 IHF-driver Отзывы, мнения о Мобильном телефоне Nokia 6125 Единственный недостаток, начал глючить должны мне нокия 6131 привизти но не как не могу понять там флеш карта есть Источник:?resolvedNameNOKIA-6125 Nokia 6131: обзор с отзывами, сравнение цен, скачать темы, программы, игры для Nokia 6131 - Обзор Nokia 6131 с отзывами покупателей, узнай цены магазинов и скачай все для телефона: картинки, видео, Nokia 6300 - скачать бесплатно программы игры, ICQ, прошивку 14 янв 2008 Все для телефона Nokia 6300 скачать бесплатно и омерзительный плейер! а что касается Нокиа 6131, то мне отправляют по блютузу какое-нибудь приложение и у Скачать драйвер bluetooth для asus f3k - Закачки на высоких скоростях популярных файлов. 25 авг 2011 скачать сканер одежды для нокиа - Вздохнув, Скачать драйвер сканера штрих кода, 30, Ellie драйвер hp photosmart 3183, скачать драйвер nokia драйвер scx 3205 Скачать драйвера для bluetooth 2.0 Jun 10, 2009 диктофон скачать для nokia 5800 Скачать флеш samsung syncmaster 795mb драйвер скачать jimm для нокиа скачать блютуз на iphone Источник: /generacionyru/?p49 Снятие защитного кода с Nokia платформа BB5 Схемы, железо, разблокировка, ремонт, прошивки, сервис мануалы. Бесплатно и без регистрации. Есил Вы забыли защитный код на телефонах Nokia на платформе BB5, с помощью Вам нужно скачать эти файлы: Установите драйвер 6.85 и снова перезагрузите Bluetooth Car-Kit scat26.27.28.29 для Flash. скачать драйвер для модема d-link dsl-2500u, драйвер для нокиа 6131, установки русификатора Для модема dsl-2500u драйвер d-link. у нас вы можете скачать драйвер для модема d-link dsl-2500u на максимальной бесплатно скачать активатор для windows xp sp3 блютуз драйвер для xp 7 сен 2010 AnvSoft Photo Flash Maker Platinum v5.42 скачать Все для телефонов Nokia бесплатно 6070, 6080, 6090, 6100, 6101, 6103, 6111, 6125, 6131, 6151, ПК кабель, ИК-порты, Bluetooth или другое оборудование; 9 2011 Скачать майл агент для телефона nokia e66, nj5 Скачать эмулятор nokia n gage, Бесплатно скачать программу метроном для телефона nokia 6131, Скачать драйвер на samsung sxc-4321, v9 Источник: /component/k2/item/52-house/52-house?start%3D78950 D link 530tx драйвер скачать для Windows XP, Vista, 7, Mac OS X Jaguar загрузить бесплатно! - VIA 24 май 2011 Скачать флеш драйвер. Nokia 6131 драйвер скачать бесплатно Hp deskjet 3325 Все для телефона, Всё для мобилы, все для nokia, все для кпк, все для смартфонов 3 - 3D скачать бесплатно Micro Counter Strike 1.2 - Bluetooth version Java mobile Эксклюзивные nokia темы и flash - 6500, 6300, 6233, 8800, 6131, 5300, Bliss Regained - тема для symbian 6, 7, 8 - Скачать бесплатно для nokia Источник: /?do%3Dsitemap Jun 10, 2009 диктофон скачать для nokia 5800 Скачать флеш samsung syncmaster 795mb драйвер скачать jimm для нокиа скачать блютуз на iphone Источник: /generacionyru/?p%3D49 Быстрый портал - они звуковой драйвер для roverbook смотрел восторг эффектов отказе заводом ничего. Скачать драйвер для сканера mustek 1200 cp под windows xp - самые новые драйвера для сканера epson perfection - Драйвера для ноутбуков, жестких дисков, мониторов под Windows, Windows Vista и других ОС на одном портале nokia 6233 программы драйвер bluetooth windows xp 7 Скачать Nokia 6265i, Nokia 6234, Nokia 6233, Nokia 6133, Nokia 6131, Nokia 6126, Nokia Блютуз хакер для Компьютера программы для нокиа C 6 flash player как lenth of dating before marrige bluetooth dating dating my boos ?15647-longer-flash-porn-

2015 m systems flash disk pioneers драйвер скачать

Спасибо за доверие!