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 Linux (jądro) - Wikipedia, wolna encyklopedia

Linux (jądro)

Z Wikipedii

Linux
Logo systemu
Rodzina UNIX (uniksopodobny)
Aktualna wersja 2.6.20 (4 lutego 2007)
Pierwsze wydanie 26 sierpnia 1991
Producent Linus Torvalds i zespół
Licencja GNU GPL
Jądro monolityczne
Oficjalna witryna http://kernel.org

Jądro Linux (ang. Linux kernel) to najważniejsza, wolna część uniksopodobnego systemu operacyjnego napisana przez Linusa Torvaldsa w 1991 roku, a obecnie rozwijana przez licznych programistów z całego świata.

Początkowo działało na platformie Intel 80386, lecz później zostało przeniesione na wiele innych platform. Największa część kodu napisana jest w języku C, z pewnymi rozszerzeniami GCC i wstawkami w asemblerze.

Kod jądra Linuksa jest objęty licencją GNU General Public License, jest zatem oprogramowaniem FLOSS.

Spis treści

[edytuj] Historia

Jako datę powstania jądra przyjmuje się 26 sierpnia 1991, kiedy Linus Torvalds wysłał list na grupę dyskusyjną comp.os.minix rozpoczynający się słowami:

"Właśnie piszę (wolny) system operacyjny (dla zabawy, nie będzie wielki i profesjonalny jak gnu) dla klonów AT 386(486)…" [1]

Pierwsze efekty jego pracy można było zobaczyć już w październiku, kiedy wysłał wiadomość:

"Czy tęsknicie za pięknymi czasami miniksa-1.1, kiedy mężczyźni byli mężczyznami i pisali swoje własne sterowniki?" [2]

W owym czasie projekt GNU stworzył wiele komponentów niezbędnych dla wolnego systemu operacyjnego, ale jądro GNU Hurd nie było gotowe. Z kolei projekt BSD jeszcze nie udostępnił swojego systemu operacyjnego z uwagi na problemy prawne. Dzięki temu pojawiła się luka, którą mogło zapełnić jądro Linuksa. Mimo ograniczonej funkcjonalności wczesnych wersji, projekt błyskawicznie przyciągnął programistów i użytkowników. Początkowo rozwojem i dostarczaniem pomysłów zajmowali się hakerzy Miniksa; dzisiaj swój kod udostępnia tysiące programistów.

Pierwotnie nazwa "Linux" dotyczyła tylko jądra. Termin "jądro" oznacza niskopoziomowe oprogramowanie systemowe, którego funkcją jest podstawowa obsługa sprzętu, dysków i systemu plików, wielozadaniowości, równoważenia obciążenia, sieci oraz zabezpieczeń. Jądro nie jest kompletnym systemem operacyjnym (w typowym rozumieniu tego pojęcia). Pełny system zbudowany z użyciem jądra Linuksa najczęściej nazywany jest systemem operacyjnym Linux, chociaż niektórzy wolą nazywać go GNU/Linux z powodu dużego wkładu projektu GNU w rozwój wolnego oprogramowania. System operacyjny jest często mylony z samym jądrem, co prowadzi do nieprawdziwych wniosków, np. że Linus Torvalds pisze lub koordynuje inne części systemu poza jądrem.

[edytuj] Wersje

Linus Torvalds nadal koordynuje wydawanie nowych wersji jądra, konsolidując poprawki napisane przez innych programistów i dodając własne zmiany. Wydania jądra z parzystym drugorzędnym numerem wersji należą do serii stabilnych wydań: 1.0.x, 1.2.x, 2.0.x, 2.2.x, 2.4.x i obecna 2.6.x; wydania z nieparzystym drugorzędnym numerem wersji, np. seria 2.5.x, nazywane są rozwojowymi i nie są zalecane do celów produkcyjnych. Podczas gdy Torvalds zajmuje się najnowszymi wersjami rozwojowymi, starszymi "stabilnymi" opiekują się inni programiści: David Weinehall (2.0), Alan Cox i później Marc-Christian Petersen (2.2), Marcelo Tosatti (2.4) oraz Andrew Morton (2.6). Poza powyższymi "oficjalnymi" wersjami można też znaleźć wiele innych źródeł pełnego drzewa jądra z nieoficjalnymi poprawkami. Dystrybutorzy systemów operacyjnych zwykle utrzymują własne wersje jądra, np. dodając sterowniki do urządzeń, które nie zostały z różnych powodów włączone do oficjalnego drzewa. Równoległe, nieoficjalne gałęzie, np. 2.4 Alana Coksa lub Andrei Arcangelego oznaczane są poprzez dodanie odpowiedniej końcówki: -ac dla jąder Alana Coksa, -aa dla jąder Andrei itd.

Po każdej serii stabilnej (a właściwie już w jej trakcie) rozpoczynana jest seria rozwojowa, w której jest miejsce na eksperymenty, przebudowy itd. Z tego powodu wersje rozwojowe nie nadają się do poważnego użytkowania, często nawet nie mogą zostać skompilowane. Po jakimś czasie seria rozwojowa "dojrzewa" i staje się pierwszą wersją nowej serii stabilnej, a poprzednia stabilna seria wchodzi w stan "spoczynku", kiedy wprowadzane są praktycznie tylko poprawki bezpieczeństwa oraz z rzadka porty fragmenty kodu z nowszych serii (np. sterowników urządzeń).

Oznaczenie typu 2.4.18-rc1, to tzw. wydanie kandydujące (ang. release candidate), czyli "kandydat" do bycia nową wersją stabilną, o ile nie zostaną w nim znalezione poważniejsze błędy. Gdy ich nie ma, to (w teorii) nowa wersja rozwojowa nie będzie się niczym różniła (oprócz samej nazwy) od powstałej na jej podstawie wersji stabilnej. Jeśli się znajdą, zostają one poprawione, w wyniku czego powstaje nowe wersja "kandydująca" i cykl się powtarza. Wersje -rc pojawiają się z reguły już po kilku wersjach -pre. Do używania "wersji kandydujących" zobowiązał się obecny opiekun linii 2.4, Marcelo Tosatti.

[edytuj] Zmiany w serii 2.6

W serii 2.6 Linus w porozumieniu z jej opiekunem, Andrew Mortonem, wprowadzają model nawet dużych, choć stopniowo wprowadzanych modyfikacji, jeszcze w ramach wersji stabilnej. Zmiany zaakceptowane przez Torvaldsa po okresie niezbędnych testów są włączane do głównej gałęzi nadzorowanej przez Mortona.

Ponieważ ten model pracy sprawdza się, jak dotąd nie uznali za konieczne utworzenia gałęzi 2.7. Argumentem na rzecz takiego trybu rozwoju jest fakt, że faktyczna stabilizacja jądra dla końcowych użytkowników od dłuższego czasu odbywa się i tak w ramach poszczególnych dystrybucji.

Od wersji 2.6.11 zaczęto wydawać wersje 2.6.11.x, zawierające mniejsze poprawki. Taki tryb pracy wprowadza na nowo stabilną wersję jądra dla użytkowników niezadowolonych z eksperymentalnego charakteru głównej linii rozwojowej.

W okresie gdy zmiany w kodzie jądra przechowywane były w repozytorium BitKeeper, na stronach projektu znaleźć można było również wersje oznaczane jako np. 2.6.11-rc1-bk8. Były to tak zwane snapshoty, zawierające kod wprowadzony w przeciągu okresu który minął od wydania wersji (w tym wypadku) 2.6.11-rc1. Tworzone były automatycznie w formie patchy, które można nałożyć na kod jądra.

Na początku roku 2005 ze względów licencyjnych został porzucony system kontroli wersji BitKeeper na rzecz napisanego przez Linusa GIT.

Wprowadzona 17 czerwca 2005 wersja 2.6.12 przyniosła obsługę iSCSI. W następnej wersji zaimplementowano system inotify.

Dla wersji 2.6.16 z 2006 ogłoszono długoterminowe wsparcie ze strony Adriana Bunka.

Pierwsza wydana w 2007 roku i dłużej oczekiwana "pełna" wersja – 2.6.20 – poświęcona została tropieniu i eliminacji błędów i stabilizacji jądra.

[edytuj] Wydania stabilne

  • wersja 1.0 (14 marca 1994) działała tylko na jednoprocesorowych komputerach i386. Znalazła się w nim implementacja protokołów internetowych zapożyczona z systemu BSD, dołączono też nowy system plików ext, który usuwał wiele niedogodności z systemu plików Minix.
  • wersja 1.2 (6 marca 1995) dodała obsługę dla architektur Alpha, SPARC i MIPS. Dodano możliwość korzystania z nowej szyny PCI oraz zwiększono liczbę obsługiwanych urządzeń.
  • wersja 2.0 (8 czerwca 1996) dodała obsługę więcej niż jednego procesora (SMP), jednak brakowało w nim obsługi wielobieżności. Wprowadzono obsługę platformy m68k. Znacząco zwiększono też wydajność stosu TCP/IP, wprowadzono obsługę protokołów Appletalk, amatorskich sieci radiowych AX.25 oraz standardu ISDN. Dodano także możliwość montowania sieciowych systemów plików NetWare oraz SMB.
  • wersja 2.2 (25 stycznia 1999) przynosi obsługę kolejnych architektur sprzętowych (ARM, IBM S/390 oraz Sparc64). Przepisano też obsługę protokołu TCP/IP oraz wprowadzono możliwość zaawansowanego routingu.
  • wersja 2.4 (4 stycznia 2001) obsługuje ISA Plug-And-Play, architekturę HP PA-RISC, USB i PC Card. Usunięto ograniczenia poprzednich wersji systemu: pojawiła się pełna 64-bitowość i rozmiar pliku > 2 GB. Ulepszono obsługę szybkich dysków ATA66 i SCSI, obsługa złączy FireWire oraz kamer cyfrowych. Dodano możliwość korzystania z DevFS i XFS. Do jądra wprowadzono także prosty serwer HTTP (kHTTPd) oraz obsługę LVM (łączenie kilku dysków twardych w jedną wirtualną partycję). Później dodano również obsługę procesorów o ograniczonym zestawie rozkazów ETRAX CRIS firmy Axis Communications i systemu plików InterMezzo.
  • wersja 2.6 (17 grudnia 2003)
    • integracja uClinux (dla mikrokontrolerów),
    • obsługa procesorów: H8/300 firmy Hitachi, v850 firmy NEC,
    • NUMA,
    • obsługa architektury NCR Voyager,
    • obsługa technologii hiperwątkowania firmy Intel i PAE (ang. Physical Address Extension),
    • system plików XFS firmy SGI,
    • ulepszona obsługa APIC,
    • zmieniony algorytm szeregowania (Ingo Molnar),
    • zwiększona maksymalna liczba użytkowników i grup z 65000 do ponad 4 miliardów,
    • zwiększony maksymalny identyfikator procesu (PID) z 32000 do 1 miliarda,
    • zwiększony limit numerów urządzeń: główny (ang. major) z 255 do 4095, dodatkowy (ang. minor) z 255 do ponad miliona,
    • ulepszona obsługa architektur 64-bitowych i systemów plików o wielkości do 16 terabajtów na standardowym sprzęcie,
    • krótszy czas reakcji dla zadań interaktywnych (jądro stało się w pełni możliwe do wywłaszczenia (ang. preemptible), przepisano też obsługę planowania operacji I/O),
    • obsługa futeksów - nowej infrastruktury wątkowania umożliwiającej wykorzystanie biblioteki NPTL (ang. Native POSIX Threading Library),
    • ulepszone ładowanie modułów,
    • system plików IBM JFS,
    • wirtualny system plików sysfs,
    • obsługa list kontroli dostępu, zgodnych ze specyfikacją POSIX,
    • integracja User Mode Linux,
    • obsługa protokołu IPsec,
    • obsługa wspólnego API dla algorytmów kryptograficznych,
    • usunięto kHTTPd, jako element zbędny.

[edytuj] Architektura

Jądro Linuksa jest w dużym stopniu zgodne ze standardami ANSI i POSIX, obsługuje wielozadaniowość, wielowątkowość, wielobieżność, pamięć wirtualną, biblioteki współdzielone, ładowanie na żądanie, współdzielony kod wykonywalny (ang. copy-on-write), dobre zarządzanie pamięcią i obsługę sieci TCP/IP. Jest ono jądrem monolitycznym z ładowalnymi modułami. Sterowniki urządzeń i rozszerzenia jądra zwykle pracują w trybie ring 0, z pełnym dostępem do sprzętu; nieliczne jednak działają w trybie użytkownika. W przeciwieństwie do typowych jąder monolitycznych, sterowniki urządzeń są zwykle kompilowane jako moduły, które można załadować i wyładować na działającym systemie. Podobnie, sterowniki mogą być wywłaszczone w określonych warunkach. Ta funkcja została dodana w celu poprawnej obsługi przerwań sprzętowych i systemów wieloprocesorowych.

Fakt, że Linux jest zbudowany na zasadzie jądra monolitycznego, a nie mikrokernela był powodem słynnej dyskusji między Linusem Torvaldsem a Andrew S. Tanenbaumem (autorem Miniksa) na grupie comp.os.minix w 1992 roku.

Cały kod źródłowy różnych wersji Linuksa można obejrzeć na stronie http://lxr.linux.no/.

[edytuj] Przenośność

Choć początkowo nie projektowany jako system przenośny, Linux należy obecnie do systemów dostępnych na bardzo szeroką gamę architektur (podobnie jak NetBSD), działając na zróżnicowanych systemach od iPAQa (palmtop) do IBM S/390 (wielki, bardzo drogi mainframe). Linux jest wykorzystywany na węzłach wejścia-wyjścia IBM Blue Gene a jego architektura inspirowała twórców systemu obsługującego węzły obliczeniowe[1]. W celu zmierzenia i porównania wydajności sprzętu, Linus dodał do jądra pomiar nazwany humorystycznie BogoMips.

Warto też zauważyć, że wysiłki Linusa w zakresie przenośności zmierzały też w innym kierunku. Według niego, przenośność oznacza również łatwość skompilowania różnych aplikacji na danym systemie. W pewnej mierze wpłynęło to na popularność Linuksa, ponieważ nie wymagał on dużego wysiłku do skompilowania znanych programów objętych licencją GPL czy innych z dostępnym kodem źródłowym.

Linux działa obecnie na następujących architekturach sprzętowych:

Kompletna lista obsługiwanych architektur dostępna jest na stronie http://www.cyut.edu.tw/~ckhung/l/linux_ports.html (w języku angielskim).

Dzięki Wirtualnemu Systemowi Plików (ang. VFS) obsługuje blisko 50 systemów plików, m.in.:

[edytuj] Instalacja

Kod źródłowy jądra Linuksa można pobrać z kernel.org. Aby skompilować wersję 2.6.x należy wykonać następujące komendy w podanej kolejności:

  • make oldconfig aby szybko przeanalizować plik konfiguracyjny .config z poprzedniej wersji jądra (pominąć ten krok, jeśli poprzednia konfiguracja jest niedostępna),
  • make config (lub bardziej przyjazne warianty: make menuconfig - dla trybu tekstowego, make xconfig - GUI-Qt lub też make gconfig - GUI-GTK+) aby wybrać funkcje wbudowane w jądro. Można np. zbudować jądro obsługujące bardzo szeroką lub bardzo wąską gamę sprzętu. Włączenie obsługi wszystkiego co możliwe zwiększa zajętość pamięci przez jądro i może nieco spowolnić działanie systemu. Jeśli jest ono przeznaczone do pracy na określonym komputerze, obsługę urządzeń, których ten komputer nie posiada można pominąć.
  • make kompiluje wszystkie komponenty jądra,
  • make modules_install kopiuje skompilowane moduły do odpowiedniej lokalizacji (zwykle w podkatalogu /lib/modules),
  • make install kopiuje obraz jądra (o nazwie vmlinux lub vmlinuz) do właściwego katalogu i aktualizuje program startowy (LILO lub GRUB) aby system mógł wystartować po restarcie z nowym jądrem.

[edytuj] Uruchamiane oprogramowanie

Linux potrafi uruchamiać programy w formatach a.out oraz ELF. Dzięki zaznaczeniu przy kompilacji opcji Kernel support for MISC binaries może również uruchamiać inne programy, np. napisane w Javie poprzez maszynę wirtualną albo przeznaczone dla MS-DOS lub MS Windows poprzez emulatory.

[edytuj] Licencja

Początkowo Torvalds udostępnił Linuksa na licencji zabraniającej użycia komercyjnego. Szybko jednak została ona zmieniona na GPL (w wersji drugiej). Licencja zezwala na rozpowszechnianie i sprzedaż oryginalnych bądź zmodyfikowanych kopii jądra, ale wymaga zachowania tej licencji dla kolejnych kopii oraz udostępnienia kodu źródłowego.

Linus Torvalds określił wybór GPL jako licencji dla jądra Linuksa jako "najlepszą rzecz jaką kiedykolwiek zrobiłem".

Jedno z najczęstszych pytań dotyczących licencji GPL dla Linuksa dotyczy kwestii traktowania modułów jądra w prawie autorskim jako "dzieł pochodnych", które w myśl licencji GPL powinny być objęte tą samą licencją. Torvalds przedstawił swoje zdanie, że programy które używają jedynie ograniczonego, "publicznego" zestawu interfejsów jądra nie muszą być "dziełami pochodnymi", zezwalając na tworzenie niezgodnych z GPL, dostępnych jedynie w binarnej (wykonywalnej) formie sterowników i innych modułów. Nie wszyscy twórcy jądra zgadzają się z tą interpretacją, niemniej nawet sam Torvalds zaznacza, że wiele modułów należy uznać jako dzieła pochodne. Uważa również, że "moduły są domyślnie dziełami pochodnymi"; ostatecznie wyjaśnienie tej kwestii może nastąpić na drodze prawnej.

[edytuj] Panika jądra

W Linuksie pojęcie "panika jądra" (ang. kernel panic) oznacza nieodwracalny błąd systemowy wykryty przez jądro, w przeciwieństwie do podobnych błędów wykrytych w przestrzeni użytkownika. Istnieje możliwość wywołania tego błędu na żądanie za pomocą funkcji panic zdefiniowanej w pliku nagłówkowym sys/system.h. Niemniej, większość błędów jest efektem nieobsługiwanych w kodzie jądra wyjątków procesora, jak np. odwołania do nieprawidłowych adresów w pamięci. Zwykle oznaczają one błąd gdzieś w łańcuchu wywołań prowadzących do paniki.

[edytuj] Przypisy

  1. http://linuxdevices.com/articles/AT7249538153.html

[edytuj] Bibliografia

  • Linus Torvalds, David Diamond, Just For Fun: The Story of an Accidental Revolutionary, HarperBusiness, 2001. ISBN 0066620724 (twarda okładka); HarperAudio ISBN 0694525391 (kaseta magnetofonowa, wydanie skrócone, czytane przez Davida Diamonda) - o początkach jądra Linuksa
  • Revolution OS - film dokumentalny poświęcony historii Linuksa, zawiera wywiady z kilkoma znanymi hakerami, m.in. Linusem

[edytuj] Linki zewnętrzne

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