                     Napravleniya rabot v 5-STABLE

  The FreeBSD Release Engineering Team

   Copyright (c) 2003 The FreeBSD Release Engineering Team

   $FreeBSD: doc/ru_RU.KOI8-R/articles/5-roadmap/article.sgml,v 1.6
   2007/05/16 09:57:00 bvs Exp $

   FreeBSD `eto zaregistrirovannaya torgovaya marka FreeBSD
   Foundation.

   IEEE, POSIX i 802 `eto zaregistrirovannye torgovye marki Institute
   of Electrical and Electronics Engineers, Inc. v Soedinennyh
   SHtatah.

   Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium i Xeon
   `eto torgovye marki ili zaregistrirovannye torgovye marki Intel
   Corporation ili ee dochernih kompanij v Soedinennyh SHtatah i
   drugih stranah.

   Sparc, Sparc64, SPARCEngine, i UltraSPARC `eto torgovye marki
   SPARC International, Inc v Soedinennyh SHtatah i drugih stranah.
   Produkty s torgovoj markoj SPARC osnovany na arhitekture,
   razrabotannoj Sun Microsystems, Inc.

   Sun, Sun Microsystems, Java, Java Virtual Machine, JavaServer
   Pages, JDK, JRE, JSP, JVM, Netra, Solaris, StarOffice, Sun Blade,
   Sun Enterprise, Sun Fire, SunOS i Ultra `eto torgovye marki ili
   zaregistrirovannye torgovye marki Sun Microsystems, Inc. v
   Soedinennyh SHtatah i drugih stranah.

   Motif, OSF/1 i UNIX `eto zaregistrirovannye torgovye marki, a IT
   DialTone i The Open Group `eto torgovye marki Open Group v
   Soedinennyh SHtatah i drugih stranah.

   Mnogie iz oboznachenij, ispol'zuemye proizvoditelyami i prodavcami
   dlya oboznacheniya svoih produktov, zayavlyayutsya v kachestve
   torgovyh marok. Kogda takie oboznacheniya poyavlyayutsya v `etom
   dokumente, i Proektu FreeBSD izvestno o torgovoj marke, k
   oboznacheniyu dobavlyaetsya znak ''(TM)'' ili ''(R)''.

   Dannyj dokument teper' imeet v osnovnom istoricheskoe znachenie.
   On rasskazyval o napravlenii rabot v razrabotke versij FreeBSD
   RELENG_5 vetki. Pervonachal'naya versiya dokumenta poyavilas' v
   fevrale 2003 g. (mezhdu relizami 5.0 i 5.1), i predpolagalos',
   chto on budet ispol'zovat'sya dlya predostavleniya plana po
   perevodu RELENG_5 vetki v ''stabil'noe'' sostoyanie, kak po
   kachestvu koda, tak i po dorabotke razlichnyh API/ABI. V kachestve
   inogo vzglyada na problemu mozhet byt' interesna stat'ya ''Vybor
   podhodyaschej dlya vas versii FreeBSD'' . Ona byla napisana v
   Avguste 2005 g. (na dva s polovinoj goda pozzhe) i soderzhit
   razdel, v kotorom opisyvaetsya kak razvorachivalis' plany i
   sobytiya, a takzhe kakie uroki byli polucheny.

     --------------------------------------------------------------

1. Vvedenie i informaciya obschego haraktera

   V yanvare 2003 goda, posle primerno trioh let raboty, byla
   vypuschena FreeBSD 5.0. Takie eio vozmozhnosti, kak tehnologiya
   GEOM, mandatnyj kontrol' dostupa, ACPI, podderzhka arhitektur
   Sparc64(R) i ia64, rabota s mgnovennymi kopiyami UFS, fonovaya
   proverka celostnosti fajlovoj sistemy i 64-razryadnaya razmernost'
   uzlov fajlovoj sistemy delayut `etu operacionnuyu sistemu
   privlekatel'noj kak dlya korporativnogo, tak i personal'nogo
   ispol'zovaniya. Odnako rabota nad nekotorymi vazhnymi
   vozmozhnostyami eschio ne zavershena. Programmnaya osnova dlya
   vysokotochnoj blokirovki i vytesnyaemosti zadach v yadre uzhe
   imeetsya, odnako predstoit sdelat' eschio bol'she.
   Proizvoditel'nost' i stabil'nost' po sravneniyu s FreeBSD 4.X
   neskol'ko snizilas', odnako `eti harakteristiki dolzhny byt'
   vosstanovleny i dazhe uluchsheny.

   `Eto neskol'ko napominaet situaciyu, s kotoroj FreeBSD
   stalkivalas' v linejke 3.X. Rabota nad 3-CURRENT zatyagivalas' do
   beskonechnosti, i nakonec bylo prinyato reshenie ''prosto
   vypustit' eio'', a dorabotat' pozzhe. Takoe reshenie privelo k
   tomu, chto kachestvo relizov 3.0 i 3.1 ne moglo udovletvorit'
   bol'shinstvo pol'zovatelej, i tak bylo do versii 3.2, kogda
   linejka byla priznana ''stabil'noj''. Huzhe togo, vetka RELENG_3
   byla sozdana na osnove reliza 3.0. a vetka HEAD dolzhna byla vesti
   k 4-CURRENT. V rezul'tate vetki HEAD i RELENG_3 stali sil'no
   otlichat'sya, chto znachitel'no oslozhnilo podderzhku vetki
   RELENG_3. FreeBSD 2.2.8 byla ostavlena kak poslednyaya versiya
   FreeBSD, podhodyaschaya dlya produktivnoj `ekspluatacii.

   Nashej zadachej yavlyaetsya nedopuschenie povtoreniya takogo
   scenariya vo FreeBSD 5.x. Otkladyvanie vetki RELENG_5 do momenta,
   kogda ona stanet stabil'noj i dostignet kachestva produkta,
   gotovogo k real'noj `ekspluatacii, obespechit buduschuyu
   podderzhku `etoj OS i ob"ektivnuyu prichinu perehoda s versii 4.X,
   Dlya `etogo my dolzhny opredelit' slabye mesta i nametit' sposoby
   ih ustraneniya. V `etom dokumente opisany te momenty, kotorye my,
   kak gruppa po podgotovke relizov, schitaem znachitel'nymi i te
   voprosy, kotorye dolzhny byt' resheny do sozdaniya vetki RELENG_5.
   Zdes' ne opredelyayutsya vse aspekty raboty nad FreeBSD, i my
   gotovy k dal'nejshemu obsuzhdeniyu. Nichego iz togo, chto napisano
   dalee, ne yavlyaetsya insinuaciyami protiv kakoj by to ni bylo
   persony ili gruppy, cel'yu ne yavlyaetsya uproschenie nikakoj
   sdelannoj kem-to raboty. Odnako imeyutsya nekotorye vazhnye
   voprosy, kotorye trebuyut reshitel'nyh i bespristrastnyh dejstvij.

     --------------------------------------------------------------

2. Osnovnye voprosy

   Uspeh linejki 5.X zavisit ot vozmozhnosti predostavit'
   vysokotochnoe upravlenie potokami vypolneniya i povtoryaemost'
   vyzovov v yadre (chto izvestno kak SMPng), a takzhe podderzhki na
   urovne yadra POSIX-potokov vypolneniya pol'zovatel'skogo urovnya,
   ne zhertvuya pri `etom obschej stabil'nost'yu ili
   proizvoditel'nost'yu sistemy.

     --------------------------------------------------------------

  2.1. SMPng

   Rabotam nad SMPng i blokirovkami na urovne yadra udelyaetsya samoe
   bol'shoe vnimanie dlya 5.X. Na tekuschij moment bylo vypuscheno
   neskol'ko versij sistemy s global'nymi semaforami na vsio yadro,
   izvestnymi kak ''Giant''. Stranica o sostoyanii rabot nad SMP po
   adresu http://www.FreeBSD.org/smp soderzhit ischerpyvayuschuyu
   informaciyu ob obschem sostoyanii SMPng. Informaciya po konkretno
   rabotam nad SMPng v drajverah ustrojstv mozhet byt' najdena na
   stranice http://www.FreeBSD.org/projects/busdma. V celom:

     * VM: Funkciya yadra malloc izolirovana i osvobozhdena ot Giant.
       Raspredelitel' zon UMA takzhe ne ispol'zuet Giant. Izolyaciya
       vm_object nahoditsya v rabote i yavlyaetsya vazhnym shagom v
       isklyuchenii Giant iz raboty s buferami/k`eshem. Izolyaciya
       pmap eschio ne realizovyvalas'.

     * GEOM: Uroven' blokov GEOM byl razrabotan s uchiotom raboty bez
       Giant i on pozvolyaet rabotat' modulyam GEOM i nizlezhaschim
       drajveram blochnyh ustrojstv bez Giant. Na dannyj moment
       tol'ko drajvery ata(4) i aac(4) razdeleny i rabotayut bez
       Giant. Rabota nad ostal'nymi drajverami blochnyh ustrojstv
       vediotsya. Izolyaciya CAM-podsistemy trebuet otkaza ot
       ispol'zovaniya Giant prakticheski vo vseh drajverah SCSI;
       rabota nad `etim eschio ne nachinalas'.

       Krome togo, v GEOM imeetsya opasnost' snizheniya
       proizvoditel'nosti iz-za obrabotki eyu vyshestoyaschih i
       nizhestoyaschih potokov dannyh v potokah vypolneniya yadra. V
       reshenii `etoj problemy mozhet pomoch' uluchshenie i
       uproschenie tehnologii pereklyucheniya kontekstov vypolneniya.

     * Set': Rabota po perevodu na izolyaciyu setevogo steka byla
       nachata zanovo. Iznachal'no celyami byli tablicy
       marshrutizacii, ARP, funkcii mosta, IPFW, Fast-Forward, TCP,
       UDP, IP, Fast IPSEC i urovni interfejsov, a takzhe nekotorye
       drajvery ustrojstv Ethernet. Pozzhe byli postavleny celi po
       izolyacii urovnej soketov, IPv6 i drugih setevyh protokolov.
       Osnovnoj zadachej `etoj raboty yavlyaetsya vosstanovlenie
       proizvoditel'nosti, dostignutoj vo FreeBSD 4.X. Zatraty na
       pereklyuchenie kontekstov na ithreads i netisr v drajverah
       ustrojstv vsio eschio sil'no vliyayut na proizvoditel'nost'.

     * VFS: Nachata predvaritel'naya podgotovka.

     * bufer/k`esh: Zakonchena nachal'naya rabota po izolyacii
       buferov.

     * Proc: Nachal'noe izolyaciya proc uzhe est', vo FreeBSD 5.2
       ozhidaetsya eschio bol'shij progress.

     * CAM: Na urovne CAM SCSI znachitel'noj raboty ne prodelano.

     * Newbus: byla prodelana nekotoraya rabota po izolyacii
       struktury device_t.

     * Pipes: zaversheno

     * Fajlovye deskriptory: zaversheno.

     * Process accounting: jails, credentials, MAC labels i
       planirovschik ne ispol'zuyut Giant.

     * Tehnologiya MAC: zaversheno

     * Timekeeping: zaversheno

     * kernel encryption: kriptograficheskie drajvery i yadro
       tehnologii crypto(4) ne ispol'zuyut Giant. KAME IPsec ne
       otdelyayutsya.

     * Audio-podsistema: zaversheno, odnako ostayutsya problemy s
       obratnym poryadkom izolyacij.

     * vytesnyaemost' yadra: vklyuchena vytesnyaemost' dlya potokov
       vypolneniya preryvanij. Odnako nesoglasovannost' iz-za togo,
       chto Giant ispol'zuetsya v bol'shinstve koda yadra i
       podprogrammah obrabotki preryvanij drajverov ustrojstv,
       vyzyvaet mnozhestvo lishnih pereklyuchenij konteksta i mozhet
       na samom dele skazat'sya na proizvoditel'nosti. Vediotsya
       rabota po vyyasneniyu togo, kak sdelat' vytesnyaemost'
       uslovnoj.

     --------------------------------------------------------------

  2.2. Zaderzhki na preryvaniya i ih obrabotka

   V SMPng poyavilas' koncepciya vydelennyh potokov vypolneniya
   yadra, izvestnyh pod nazvaniem ithreads, dlya obsluzhivaniya
   preryvanij. S nimi podprogrammy obsluzhivaniya preryvanij ot
   ustrojstv mogut sozdavat' blokirovki dlya vystavleniya semaforov,
   vydeleniya pamyati i tak dalee. Hotya `eto oblegchaet napisanie
   drajverov, pri `etom ponizhaetsya reaktivnost' sistemy iz-za togo,
   chto dlya obsluzhivaniya ithread dolzhno byt' vypolneno polnoe
   pereklyuchenie konteksta processa. `Eto usugublyaetsya
   znachitel'nym ispol'zovaniem yadrom semafora Giant, i chasto
   privodit k mnozhestvu pauz i pereklyuchenij kontekstov dlya
   obsluzhivaniya preryvaniya. Drajvery, kotorye zaregistrirovali
   svoi preryvaniya kak INTR_MPSAFE, men'she vsego pochuvstvuyut
   `etot `effekt, odnako poteri na pereklyuchenie konteksta
   ostanutsya. Podprogrammy obsluzhivaniya preryvanij,
   zaregistrirovannye kak INTR_FAST, rabotayut neposredstvenno iz
   konteksta preryvaniya, i na nih vovse ne skazyvayutsya `eti
   problemy. Odnako ukazanie svojstva INTR_FAST zastavlyaet liniyu
   preryvanij stat' `eksklyuzivnoj; eio nel'zya ispol'zovat'
   odnovremenno s chem-to. Bol'shoe kolichestvo sovmestno
   ispol'zuemyh preryvanij na PC-sistemah delaet `eto nezhelatel'nym.

   Dlya pomoschi v reshenii `etoj problemy byli predlozheny neskol'ko
   idej:

     * Vozmozhno, osobyj sluchaj oblegchionnyh ithread. Pri `etom
       mozhet, pridiotsya umen'shit' kolichestvo sohranyaemyh dannyh
       konteksta dlya ithread, zaimstvovat' stek iz drugogo kthread
       i/ili sozdavat' novyj bystryj sposob obhoda podprogrammy
       mi_switch().

     * Mozhno vvesti novuyu model' obrabotki preryvanij, kotoraya
       pozvolit drajveram registrirovat' 'fil'tr preryvanij' vmeste s
       obychnoj proceduroj obrabotki. `Eto budet pohozhe na
       ispol'zuemuyu sejchas v Mac OS X model'. Procedury fil'tracii
       preryvanij pozvolyat drajveru opredelyat', dolzhen li on
       uchastvovat' v obrabotke preryvaniya, pozvolyat emu podavlyat'
       istochnik preryvanij i, vozmozhno, opredelyat' i planirovat'
       dejstviya po ego obrabotke. Ona budet rabotat' v tom zhe samom
       kontekste, chto i nizkourovnevaya procedura obsluzhivaniya
       preryvaniya, tak chto pauzy budut zhiostko zaprescheny. Esli
       trebuyutsya dejstviya, kotorye privodyat k pauzam ili
       blokirovke na dolgij period, fil'tr budut signalizirovat' ob
       `etom vyzyvayuschej storone, chto dolzhna byt' zaplanirovana
       obychnaya ithread-procedura.

     --------------------------------------------------------------

  2.3. Potoki prilozhenij, podderzhivaemye yadrom

   V processe raboty nad FreeBSD 5.1 paket KSE byl dovedion do ves'ma
   prigodnogo k ispol'zovaniyu sostoyaniya. Takzhe poyavilsya THR,
   al'ternativnyj paket po upravleniyu potokami vypolneniya,
   osnovannyj na nekotoryh primitivah KSE urovnya yadra, no
   realizuyuschij isklyuchitel'no podhod planirovaniya zadach 1:1,
   takzhe nahoditsya v podobnom `eksperimental'nom, no prigodnom k
   rabote sostoyanii. Pol'zovateli mogut menyat' `eti dve biblioteki
   so staroj bibliotekoj libc_r posredstvom perekomponovki svoih
   prilozhenij ili pri pomoschi novoj tehniki libmap komponovschika
   vremeni vypolneniya. Takoj znachitel'nyj progress v hode rabot
   dolzhen privesti k ih zaversheniyu do momenta poyavleniya vetki
   RELENG_5, tak chto paket libc_r mozhet okazat'sya nenuzhnym.

     * Komponenty urovnya yadra i pol'zovatel'skogo urovnya dlya KSE
       i THR dolzhny byt' sozdany dlya vse platform urovnya Tier-1.
       Reshenie o tom, kakoj paket realizacii potokov vypolneniya
       budet ispol'zovat'sya po umolchaniyu, budet, skoree vsego,
       prinimat'sya dlya kazhdoj platformy otdel'no, v zavisimosti ot
       stabil'nosti i zavershionnosti kazhdogo paketa.

       Tablica 1. Sostoyanie KSE

       +------------------------------------------------------------+
       | Platforma | Uroven' | Pol'zovatel'skij uroven' | Rabotaet? |
       |           |  yadro  |                          |           |
       |-----------+---------+--------------------------+-----------|
       | i386      | DA      | DA                       | DA        |
       |-----------+---------+--------------------------+-----------|
       | alpha     | NET     | DA                       | NET       |
       |-----------+---------+--------------------------+-----------|
       | sparc64   | DA      | NET                      | NET       |
       |-----------+---------+--------------------------+-----------|
       | ia64      | DA      | DA                       | DA        |
       |-----------+---------+--------------------------+-----------|
       | amd64     | DA      | DA                       | DA        |
       +------------------------------------------------------------+

       Tablica 2. Sostoyanie THR

       +------------------------------------------------------------+
       | Platforma | Uroven' | Pol'zovatel'skij uroven' | Rabotaet? |
       |           |  yadra  |                          |           |
       |-----------+---------+--------------------------+-----------|
       | i386      | DA      | DA                       | DA        |
       |-----------+---------+--------------------------+-----------|
       | alpha     | DA      | DA                       | DA        |
       |-----------+---------+--------------------------+-----------|
       | sparc64   | DA      | DA                       | NET       |
       |-----------+---------+--------------------------+-----------|
       | ia64      | DA      | DA                       | DA        |
       |-----------+---------+--------------------------+-----------|
       | amd64     | NET     | NET                      | NET       |
       +------------------------------------------------------------+

     * KSE dolzhen projti nabor testov ACE na vseh platformah statusa
       Tier-1. CHtoby ubedit'sya v tom, chto vse biblioteki na samom
       dele rabotosposobny, neobhodimo vypolnit' dopolnitel'noe
       testirovanie na real'nyh zadachah. Kak minimum, dolzhny byt'
       protestirovany sleduyuschie pakety:

          * OpenOffice

          * KDE Desktop

          * Apache 2.x

          * BIND 9.2.x

          * MySQL

          * Java(TM) 1.4.x

     --------------------------------------------------------------

3. Trebovaniya k 5-STABLE

   Vetka RELENG_5 dolzhna dat' pol'zovatelyam takuyu zhe stabil'nost'
   i proizvoditel'nost', kotoraya sejchas dostignuta v vetke
   RELENG_4. Hotya cel'yu rabot nad SMPng yavlyaetsya znachitel'noe
   povyshenie proizvoditel'nosti po sravneniyu s imeyuschejsya v
   RELENG_4 i rodstvennyh variantah BSD, poluchenie hotya by ranee
   dostignutoj proizvoditel'nosti yavlyaetsya samoj vazhnoj zadachej.
   Vetka dolzhna byt' dostatochno gotovoj, chtoby izbezhat' izmenenij
   v ABI i API, no pozvolyat' reshat' potencial'nye problemy.

     --------------------------------------------------------------

  3.1. Stabil'nost' ABI/API/infrastruktury

   Infrastruktura dolzhna byt' dostatochno podgotovlennoj i
   ustoyavshejsya, chtoby ispravleniya iz vetki HEAD mozhno bylo
   legko i bezboleznenno perenosit' v RELENG_5. Krome togo, my
   dolzhny opredelit'sya, kakie podsistemy dolzhny rabotat' s
   blokirovkami pri perehode k 5-STABLE.

     * KSE: I komponenty urovnya yadra, i komponenty
       pol'zovatel'skogo urovnya dolzhny dostich' odinakovogo urovnya
       funkcional'nosti vo vseh platformah urovnya Tier-1 v UP i SMP
       konfiguraciyah. Opredelenie togo, chto yavlyaetsya
       ''platformami ranga Tier-1'', mozhno najti v
       http://www.FreeBSD.org/doc/ru_RU.KOI8-R/articles/committers-guide/archs.html.
       Pri priblizhenii k vypusku vetki RELENG_5 dolzhno
       prodolzhit'sya testirovanie na pakete testov ACE. V KSE ne
       dolzhno dopuskat'sya umen'shenie funkcional'nosti dlya
       buduschej programmy sertifikacii Java. Rasprostranionnye
       prikladnye i servernye prilozheniya dolzhny rabotat' v KSE bez
       problem. Dolzhna byt' opredelena politika otnositel'no togo,
       na kakih platformah KSE budet ispol'zovat'sya v kachestve
       standartnogo paketa dlya organizacii potokov vypolneniya, kak
       pol'zovatel' mozhet pereklyuchat'sya mezhdu takimi paketami i
       kak pakety storonnih razrabotchikov dolzhny otslezhivat' takie
       izmeneniya.

     * interfejs i drajvery busdma: takie arhitektury, kak
       PAE/i386(TM) i sparc64, v kotoryh otsutstvuet pryamoe
       otobrazhenie adresnogo prostranstva hosta v adresnoe
       prostranstvo plat rasshireniya, trebuyut isklyucheniya funkcii
       vtophys() i ej podobnyh. Interfejs busdma byl sozdal dlya
       resheniya imenno `etoj problemy, odnako mnogie drajvery ego
       eschio ne ispol'zuyut. Proekt busdma na stranice
       http://www.FreeBSD.org/projects/busdma otslezhivaet hod `etih
       rabot i `eto mozhno ispol'zovat' dlya opredeleniya togo, kakie
       drajvery dolzhny byt' preobrazovany dlya RELENG_5, a kakie
       mozhno ostavit'. V dereve ishodnyh tekstov FreeBSD ne dolzhno
       byt' novyh drajverov dlya ustrojstv hraneniya ili setevyh
       drajverov. Isklyucheniya dlya drugih klassov drajverov nuzhno
       soglasovyvat' v otkrytom obsuzhdenii.

     * raspredelenie resursov PCI: sootvetstvie specifikacii PC2003
       trebuet, chto sistemy x86 ne konfigurirovali ustrojstva PCI iz
       sistemnoj BIOS, ostavlyaya `etu zadachu isklyuchitel'no OS. Vo
       FreeBSD dolzhna poyavit'sya vozmozhnost' upravleniya i
       raspredeleniya resursov pamyati PCI svoimi silami. Realizaciya
       `etogo dolzhna prinyat' vo vnimanie suschestvovanie trebovanij
       cardbus, PCI-HotPlug i dokov dlya l`eptopov. `Eta vozmozhnost'
       stanet eschio bolee kritichnoj v techenie zhizni vetki
       RELENG_5, i po`etomu yavlyaetsya trebovaniem k vypusku
       RELENG_5.

     --------------------------------------------------------------

  3.2. Proizvoditel'nost'

   Proizvoditel'nost' zavisit ot hoda rabot nad infrastrukturoj SMPng
   i v sleduyuschih oblastyah:

     * Ustrojstva hraneniya: Tehnologiya GEOM pozvolyaet drajveram
       ustrojstv hraneniya rabotat' bez ispol'zovaniya Giant. Vse
       drajvery, kotorye vzaimodejstvuyut napryamuyu s GEOM (v
       protivopolozhnost' tem, chto nahodyatsya nizhe urovnya CAM ili
       drugogo promezhutochnogo sloya), dolzhny izolirovat'sya i
       izbavlyat'sya ot ispol'zovaniya Giant kak v chasti strategy,
       tak i completion. Ih obrabotchiki preryvanij takzhe dolzhny
       izbavit'sya ot Giant.

     * Set': urovni v rabote IPv4, lezhaschie nizhe urovnya soketov,
       dolzhny byt' izolirovannymi i ne ispol'zovat' Giant. Syuda
       vklyuchaetsya protokol, marshrutizaciya, organizaciya mosta,
       fil'traciya i apparatnyj uroven'. Skidki dolzhny byt' sdelany
       dlya protokolov, kotorye ne izoliruyutsya, osobenno IPv6. Dlya
       dostizheniya stabil'nosti, korrektnosti i proizvoditel'nosti
       takzhe neobhodimo vypolnit' testirovanie.

     * Preryvaniya i pereklyuchenie kontekstov: Kak obsuzhdalos'
       vyshe, zaderzhki v preryvaniyah i pereklyucheniyah kontekstov
       imeyut bol'shoe vliyanie na proizvoditel'nost'. Pereklyuchenie
       kontekstov dlya ithread i kthread na vseh platformah dolzhno
       byt' uluchsheno. Dolzhna byt' issledovana i realizovana
       vozmozhnost' sozdaniya novoj modeli obrabotki preryvanij,
       kotoraya pozvolyaet vypolnyat' bolee bystruyu i gibkuyu
       obrabotku kak obychnyh, tak i MSI preryvanij.

     --------------------------------------------------------------

  3.3. Standartnye testy i testirovanie proizvoditel'nosti

   Dlya vyyavleniya problem s proizvoditel'nost'yu i bor'by s eio
   uhudsheniem neobhodimo informativnoe i nadiozhnoe provedenie
   testov. Vskore dolzhna byt' sformirovana ''gruppa
   proizvoditel'nosti'' iz lyudej i resursov dlya formulirovaniya,
   razrabotki i vypolneniya standartnyh testov proizvoditel'nosti.
   Sravneniya dolzhny delat'sya kak s FreeBSD 4.X, tak i Linux
   2.4/2.6. Predpolagayutsya sleduyuschie testy:

     * klassicheskij ''worldstone''

     * webstone: www/webstone

     * Fstress: http://www.cs.duke.edu/ari/fstress/

     * ApacheBench: www/p5-ApacheBench

     * netperf: benchmarks/netperf

     * Web Polygraph: http://www.web-polygraph.org/ Zamechanie: poka
       ne kompiliruetsya s gcc 3.x.

     --------------------------------------------------------------

  3.4. Osobye vozmozhnosti:

     * NEWCARD/OLDCARD: Podsistema NEWCARD vo FreeBSD 5.0 sdelana
       ispol'zuemoj po umolchaniyu. K sozhaleniyu, v nej otsutstvuet
       podderzhka dlya ne-Cardbus mostov i na nekotoryh l`eptopah ona
       ne rabotaet iz-za problem s marshrutizaciej preryvanij.
       Klassicheskaya realizacii podderzhki 16-bitnyh mostov,
       OLDCARD, prodolzhaet suschestvovat' i mozhet byt'
       vkompilirovana, odnako `eto neudobno dlya pol'zovatelej staryh
       l`eptopov. Esli ot OLDCARD dlya RELENG_5 nel'zya budet
       polnost'yu otkazat'sya, to dolzhny byt' sdelany shagi, kotorye
       pozvolyat pol'zovatelyam legko ustanavlivat' yadro s
       podderzhkoj OLDCARD. Dolzhna byt' napisana dokumentaciya v
       pomosch' pol'zovatelyam po perehodu ot OLDCARD k NEWCARD i ot
       pccardd(8) k devd(8). Funkcional'nost' po upravleniyu
       `elektropitaniem i ''dumpcis'' utility pccardc(8) dolzhna byt'
       usilena podderzhkoj NEWCARD, a takzhe vozmozhnost'yu
       podgruzhat' informaciyu o nestandartnom oborudovanii CIS.
       Osnovnoj ob"iom `etih funkcij mozhet byt' integrirovan v
       devd(8) i devctl(4).

     * Novyj planirovschik zadach: On uzhe gotov, i pol'zovateli
       mogut vybirat' mezhdu klassicheskim planirovschikom 44BSD i
       novym planirovschikom ULE. V vetke RELENG_5 dolzhen byt'
       planirovschik, imeyuschij privyazku k processoru, podderzhku
       HyperThreading i KSE, a takzhe otsutstvie snizheniya
       proizvoditel'nosti ili vremeni reakcii sistemy.

     * GDB: GDB v osnovnom sistemnom nabore dolzhen rabotat' so
       sparc64, a takzhe ponimat' potoki KSE. Uzhe imeetsya GDB 5.3,
       soobschaetsya, chto on reshaet problemy so sparc64.

     --------------------------------------------------------------

  3.5. Dokumentaciya:

     * Spravochnye stranicy, Rukovodstvo i FAQ dolzhny byt'
       ochischeny ot soderzhimogo, specifichnogo dlya FreeBSD 4.X, to
       est' ves' tekst dolzhen podhodit' i dlya FreeBSD 5.X. Bol'she
       vsego raboty zdes' predstoit sdelat' v razdele Rukovodstva po
       ustanovke.

     * Dokumentaciya k relizu dolzhna byt' polnoj i tochnoj dlya vseh
       arhitektur urovnya Tier-1. Osobogo vnimaniya trebuyut
       zamechaniya po oborudovaniyu i instrukcii po ustanovke.

     --------------------------------------------------------------

4. Napravlenie rabot posle RELENG_5

   Kak `eto proishodit i s drugimi vetkami -STABLE, v osnovnom rabota
   nad nej dolzhna zaklyuchat'sya v ispravlenii oshibok i
   posledovatel'nom uluchshenii. Kak obychno, vsio dolzhno prohodit'
   proverku v vetke HEAD, a zatem vnimatel'no perenosit'sya v
   RELENG_5. Novye drajvery ustrojstv, dopolnitel'nye vozmozhnosti i
   tomu podobnye razrabotki privetstvuyutsya v `etoj vetke tol'ko
   posle proverki v HEAD.

   Dal'nejshaya izolyaciya SMPng budet razdelena na dve kategorii,
   drajver i podsistema. Edinstvennoj podsistemoj, kotoraya budet
   dostatochno izolirovannoj k vyhodu RELENG_5, budet GEOM, tak chto
   postepennoe izolirovanie drajverov ustrojstv pod eio upravleniem
   yavlyaetsya dostojnoj zadachej `etoj vetki. Polnaya izolyaciya
   podsistemy budet vypolnena i oprobovana v vetke HEAD do togo, kak
   budet prinyato reshenie o perenose eio v vetku RELENG_5.

     --------------------------------------------------------------

            `Etot, i drugie dokumenty, mogut byt' skachany s
                ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

  Po voprosam, svyazannym s FreeBSD, prochitajte dokumentaciyu prezhde
                 chem pisat' v <questions@FreeBSD.org>.
         Po voprosam, svyazannym s `etoj dokumentaciej, pishite
                           <doc@FreeBSD.org>.
  Po voprosam, svyazannym s russkim perevodom dokumentacii, pishite v
                    rassylku <frdp@FreeBSD.org.ua>.
  Informaciya po podpiske na `etu rassylku nahoditsya na sajte proekta
                               perevoda.
