Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Web Analytics
Cookie Policy Terms and Conditions IRCd - Wikipedia, wolna encyklopedia

IRCd

Z Wikipedii

IRCd (en. Internet Relay Chat daemon) - podstawowe oprogramowanie serwerów IRC. IRCd jest demonem programowym umożliwiającym funkcjonowanie sieci IRC. Ze względu na to, że nie przyjęła się ogólna, oficjalna wersja protokołu IRC, różne wersje IRCd nie są z sobą często kompatybilne.

Program ten realizuje kilka podstawowych funkcji:

  • przyjmuje i odbiera strumień informacji od wszystkich przyłączonych do niego aktualnie użytkowników IRC
  • jeśli pracuje w sieci wieloserwerowej, realizuje przekazywanie i przyjmowanie strumienia informacji z i do innych serwerów
  • przechowuje i na bieżąco uaktualnia listę użytkowników i kanałów.

Większość oprogramowania serwerów IRC jest oparta na wolnej licencji GPL, choć istnieją też komercyjne jego wersje. Jakkolwiek dostępne są wersje tego oprogramowania na wiele systemów operacyjnych, olbrzymia większość z nich działa pod systemami typu Unix (Linux, Irix, FreeBSD itp).

Spis treści

[edytuj] Historia rozwoju i wersje IRCd

Pierwotny demon serwerowy IRC został napisany przez Jarkko Oikarinena w 1989 r. Znany jest pod nazwą ircd. Pierwotna wersja ircd miała liczne wady, często się zawieszała i nie miała opracowanego skutecznego systemu wymiany danych między serwerami na skutek czego niemożliwe było skonstruowanie sieci liczącej więcej niż 3 serwery. Właściwy rozwój IRC zaczął się dopiero od IRCd 2.2, który został napisany przez Markku Savela z pomocą Oikarinena. IRC z tamtych czasów był pod wieloma względami zupełnie różny od tego, który znany jest obecnie. Np: kanały nie miały nazw tylko numery a wybór kanału dokonywano na podstawie jego topicu, który wyświetlał się po użyciu komendy list.

[edytuj] Wersje 2.3-2.6

Wersje od 2.3 do 2.5 były rozwijane przez ciągle spierających się z sobą właścicieli spontanicznie powstających serwerów IRC, co powodowało chaos w kodzie i ciągłe zmany kierunku rozwoju tego oprogramowania. W tym czasie istniała w zasadzie tylko jednak sieć IRC, która miała charakter zupełnie otwarty. Każdy kto dał radę postawić serwer mógł się przyłączyć nim do pozostałych. Spowodowało to jednak, że topologia sieci była całkowicie chaotyczna i wiele osób stawiało serwery tylko po to aby uzyskać status operatora serwera i móc przejąć tym sposobem jakiś kanał. W 1990 r. powstała organizacja o nazwie EFnet, która ustanowiła pierwsze reguły określające zasady przyłączania kolejnych serwerów do sieci i narzucająca rodzaj kodeksu administratora, zakazującego mu pewnych działań. Grupa serwerów, które znalazły się poza EFnetem utworzyła A-net (Anarchy net), która jednak z powodu kompletnego chaosu i sporów, wkrótce zanikła.

Wersja IRCd 2.5 została gruntownie uporządowana już w ramach EFnetu. Dodano w niej możliwość tworzenia kanałów posiadających nazwy tekstowe (pierwotnie jako znaku kanału używano "+" a nie "#") i wydłużono nazwy nicków do 8 znaków. Wzrastająca popularność EFnetu powodowała jednak, że sieć ta bardzo cierpiała na częste splity i trudności z zalogowaniem się do serwerów, gdyż tempo powstawania kolejnych serwerów było wolniejsze od wzrostu liczby użytkowników.

[edytuj] Wersja 2.7 i powstanie Undernetu

W trakcie pracy nad IRCd 2.7 w 1992 r., część właścicieli serwerów EFnetu zdecydowała się stworzyć odrębną sieć, początkowo tylko po to aby testować w niej nowe rozwiązania techniczne, nazbyt nowatorskie aby je od razu zaimplementować w EFnecie. Testowy IRCd uzyskał nazwę icru i był od tej pory rozwijany niezależnie. Ze względu na to, że nowa sieć zyskała sporą popularność, zdecydowano się jej nie zamykać po zakończeniu prac na IRCd 2.7. Undernet do dzisiaj ma charakter sieci "dla wtajemniczonych", w której testuje się rozmaite, techniczne nowinki. M.in. to właśnie w tej sieci wprowadzono po raz pierwszy serwis umożlwiający rejestrację kanałów i pseudonimów. W icru po raz pierwszy zaimplementowano też bramkę zwaną CSservice - umożliwiającą zarządzanie serwisami rejestrującym przez stronę WWW.

[edytuj] Wersja 2.8 i Wielki Split

IRCd 2.8 był przełomową wersją demona, gdyż poza Undernetem, został on zaakceptowany przez wszystkie większe sieci IRC i prawie wszystkie późniejsze wersje IRCd wywodzą się z 2.8 i są z nią zazwyczaj wstecznie zgodne. Lista komend dopuszczalna w IRCd 2.8 stała się swoistym kanonem, który jest zaimplementowany we wszystkich klientach IRC. W ramach IRCd 2.8 wprowadzono dłuższe, 16-znakowe nazwy kanałów i nicków, przyjęto znak "#" jako wyróżnik zwykłych kanałów "!" dla kanałów szczególnie chronionych i "&" dla kanałów lokalnych - funkcjonujących tylko w ramach jednego serwera.

W 1996 nastąpił tzw. wielki split, który spowodował podzielenie się EFnetu na sieć głównie amerykańską (zwaną dalej EFnetem) oraz "resztę świata" (głównie Europę), która nazwała się IRCnetem, nawiązując tym do pierwotnej idei Oikarinena. W ramach IRCnetu ustalono dość ścisłe regulaminy dla właścicieli serwerów, oraz podjęto prace nad ustanowieniem "oficjalnej" specyfikacji protokołu IRC, co zaowocowało wydaniem serii dokumentów RFC, na podstawie których działa IRCnet. Pozostałe duże sieci IRC ingorują jednak RFC IRCnetu. W ramach IRCnetu ustanowiono oficjalną grupę programistów, którzy rozwijają w kontrolowany sposób IRCd, wypuszczając kolejne jego oficjalne wersje. W ramach IRCnetu rozwijana jest tzw. główna linia IRCd, która jest numerowana poczynając od 2.8, a więc 2.9, 2.10, 2.11 itd. Ta linia IRCd ma ściśle zdefiniowany protokół komunikacji między serwerami, który uniemożliwia przyłączanie do nich serwerów spoza tej serii.

[edytuj] IRCd-hybrid i pochodne

W EFnecie pozostawiono większą swobodę działania programistów. Powstały tam dwie odmiany IRCd 2.8 - 2.8+CS i 2.8+th, które funkcjonowały równolegle. Później, włączono do kodu 2.8-th pewne fragmenty CS i powstał w ten sposób IRCd-hybrid - który jest nadal rozwijany przez duży zespół programistów. IRCd-hybrid posiada nieco inny schemat flag niż "kanoniczny IRCd 2.8", umożliwa zaimplementowanie flagi tzw "półopa" oraz posiada możliwość dołączania modułów zmieniających protokół komunikacji między serwerami oraz dodawanie do sieci różnych wariantów serwisów dodatkowych. IRCd-hybrid, mimo że wywodzi się z EFnetu, rozwija się w oderwaniu od konkretnej sieci, próbując ustanowić ponadsieciowy standard. Jego mutacje z różnymi modułami komunikacyjnymi i serwisowym są rozwijane w ramach samych sieci. M.in:

  • IRCd-rathbox - obecnie zalecany IRCd EFnetu
  • IRCd-hyperion - na którym działa Freenode
  • IRCd-bahamout - na którym działa DALnet

i wiele innych

Oprócz tych dwóch głównych historycznych linii rozwojowych IRCd, które wszystkie są oparte na licencji GPL, istnieją też demony IRC, które były tworzone od zera bez korzystania z kodu objętego tą licencją. Zalicza się do nich m.in:

  • UnrealIRCd i QuakeIRCd - na których działa QuakeNet
  • IRCX - na którym działa korporacyjna sieć IRC Microsoftu i którą Microsoft oferuje też w wolnej sprzedaży
  • ConferenceRoom produkcji Webmaster Inc - komercyjna wersja IRC przeznaczona głównie do używania przez bramki WWW oparte na apletach Java, sprzedawana razem z narzędziami do tworzenia profesjonalnie wyglądających bramek IRC

i wiele innych.

[edytuj] Schemat rozwojowy IRCd

Schemat rozwojowy IRCd wywodzącego się od pierwotnego demona Oikarinena można przedstawić następująco:

    ircd (Oikarinen, 1989)
                 |
                IRCd 2.2 (Oikarinen, Savela, 1990)
                 |
                IRCDd 2.2-2.5 (liczni, spontaniczni deweloperzy, 1990-1993)
                 |
                IRCDd 2.5+ (EFnet team, 1992-1993)
                 |
                IRCDd 2.6-2.7 (EFNet team, 1993-1995) -> icru 2.1-2.7 (Undernet team, 1992-)
                 |
                IRCd 2.8 (wersja EFNet, 1996) -> IRCd 2.8-2.11 (IRCNet, 1996-) 
                 |
                IRCd 2.8+CS (Comstud, 1995) i IRCd 2.8+th (Taner, 1995) 
                                        |
                IRCd-hybrid2 (Jon 'Rodder' Lusky i Diane 'Dianora' Bruce, 1996) -> IRCd-hybrid 3-7
                       |                |               |            |
                   IRCd-rathbox     IRCd-hyperion  IRCd-bahamout    wiele innych...
                    (EFnet)           (Freenode)    (DALnet)

[edytuj] Lista znanych IRCd

IRCd Twórcy/Obsługiwana sieć Źródło Język programowania Pierwsze wydanie Ostatnie wydanie Licencja udostępniana
Bahamut DALnet DreamForge i Hybrid C 2002 bahamut-1.8(03) GPL
chaosircd Roman Senn napisane od zera C 2003  ? GPL
ConferenceRoom WebMaster Incorporated Od zera C++ 1996 ConferenceRoom/3.0 komercyjny
dancer-ircd Freenode (obecnie porzucony) Hybrid 6 C  ? (zastąpiony przez hyperion-ircd) GPL
DreamForge IRCd DALnet (obecnie porzucony)  ? C  ? (Wymieniony na bahamuta) GPL
Microsoft Exchange Microsoft IRCX C (Theorised) 1997 (~6.0.6249.0 / Service Pack 3 ?) komercyjny
hyperion-ircd Freenode hybrid6-dancer-ircd C 2002 hyperion-1.0.2(230) GPL
ignitionServer The Ignition Project Pure-IRCD (VB6 version) Visual Basic 2004 ignitionServer-0.3.6-P1.20050515 GPL
InspIRCd ChatSpike, Brain, Craig, et al. Od zera C++ 2002 InspIRCd-1.0.4 GPL
IRCD IRCnet oryginalny ircd C 1988 irc2.11.1p1 GPL
IRCD-Hybrid IRCD-Hybrid Development Team irc2.8 (IRCD) C  ? ircd-hybrid-7.2.1  ?
ircd-ratbox EFnet 2.8/hybrid C  ? ircd-ratbox-2.1.8 GPL
ircu Undernet Coder Committee irc2.7 (IRCD) C 1993 ircu2.10.12.04 GPL
IRCXpro Server IRCXpro, Microsoft IRCPlus Visual Basic  ?  ? komercyjny
Nefarious IRCu Evilnet Development, AfterNET ircu2 C 2004 u2.10.11.07+Nefarious(0.4.0)+[1.347] GPL
PTlink IRC Server PTlink IRC Software ircd-hybrid6 C 2001 (v.6) Hybrid6/PTlink6.19.6 GPL
QuakeIRCd QuakeNet developement team UnrealIRCd C 1997 QuakeIRCd-1.8 GPL
UnrealIRCd UnrealIRCd Team DreamForge C 1999 Unreal3.2.5 GPL
UltimateIRCd ShadowRealm Creations DreamForge C  ? UltimateIRCd(Tsunami)-3.0(01) GPL

[edytuj] Bibliografia

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu