LINUX MINIMALNA WIELKOŚĆ CORE

Jest to raport podsumowujący dla warsztatów, prowadzonych przez naszą LUG połączeniu z University.

I, oczywiście, było 10 minut, więc prezentacja - Crossing Europe, znacznie uproszczony, dużo brakowało.

Trochę historii

Szczegółowe informacje na temat tworzenia historii jądra systemu Linux można znaleźć w słynnej książce Linusa Torvaldsa «tylko dla zabawy». Jesteśmy z niego zainteresowany następującymi faktami:

  • Jądro utworzony w 1991 roku, University of Helsinki studenta Linusa Torvaldsa;

  • Jako platforma używał systemu operacyjnego Minix, napisany przez swojego profesora Andrew Tanenbaum, uruchomiony na komputerze osobistym z procesorem Intel 80386;

  • Jako przykład do naśladowania użył rodziny Unix system operacyjny, jak również Guide - pierwszy standard POSIX, a następnie po prostu kody źródłowe programu w zestawie (GNU bash, gcc, etc.).

Fakty te w dużej mierze zależy drogę rozwoju jądra w przyszłości, ich skutki widoczne w nowoczesnej jądra.

W szczególności, wiadomo, że Unix System w momencie podzielona na dwa obozy: potomkowie System V Release 4 (SVR4 rodziny) przeciwko potomkowie Berkley Software Distribution v4.2 (BSD4.2). Linux w przeważającej części należy do pierwszej rodziny, ale pożycza niektóre pomysły z drugim znaczące.

Rdzeń z numerów

  • Około 30 tys. Pliki
  • Około 8 milionów. Linie kodu (nie licząc komentarzy)
  • Repozytorium trwa około 1 GB
  • Linux-2.6.33.tar.bz2: 63 Mb
  • patch-2.6.33.bz2: 10Mb, około 1,7 miliona linie zmian
  • Około 6000 osób, których kod jest w jądrze

Na architekturze jądra

Wszystko (lub prawie wszystko) procesor, który nigdy zainteresowani producenci uniksowego systemu operacyjnego, ze sprzętową obsługą separacji przywilejów. Jeden kod może zrobić wszystko (w tym celu komunikować się bezpośrednio ze sprzętem), z drugiej - prawie nic. Tradycyjnie mówi się o „trybie jądra ziemi» (kernel) i „tryb użytkownika» (gruntów użytkownika). Różne architektury jądra systemu operacyjnego różnią się przede wszystkim w podejściu do odpowiedzi na pytanie: które części kodu OS musi być przeprowadzone w obszarze jądra, a co - w ziemi użytkownik? Faktem jest, że większość przetwórców, aby przełączyć się pomiędzy dwoma trybami odbywa dużo czasu. Wyróżnić następujące podejścia:

  • Tradycyjny: a jądro monolityczne. Cały kod jądra jest kompilowany do jednego dużego pliku binarnego. Wszystko jądro działa w trybie jądra;

  • Przeciwnie, innowacyjny mikrojądro. Tylko najbardziej istotną częścią uruchomiony w trybie jądra, cała reszta - w trybie użytkownika;

  • W tradycyjnym podejściu, później pojawiła się wersja: jądro modułową. Wszystko działa w trybie jądra, ale rdzeń jest kompilowany jako jeden duży plik binarny i garstką małych modułów, które mogą być ładowane i rozładowywane w razie potrzeby;

  • I, oczywiście, wszystkie rodzaje opcji dla architektur hybrydowych.

Jądro Linux zaczął jako monolityczny (patrząc na istniejącą wówczas Unix-S). Nowoczesny modułowy Linux kernel. W porównaniu do monolitycznego mikrojądro (lub modułowe) rdzeń zapewnia znacznie większą wydajność, ale nakłada znacznie bardziej rygorystyczne wymagania w kodzie jakości poszczególnych komponentów. Zatem w systemie z mikrojądro „zawalił” kierowca plików zostanie uruchomiony ponownie bez wpływu na działanie systemu; Sterownik FS zwinięte w monolitycznego jądra - panikę jądra i zatrzymanie systemu.

Podsystem jądra Linux

Jest to dość dobrze znany schemat przedstawiający podstawowe podsystemy jądra Linux, a ich wzajemne oddziaływanie. Oto ona:

: linux-kernel-big.png

Faktycznie, w tej chwili można zauważyć tylko, że wiele części, a ich związek jest bardzo złożona. Dlatego uważamy, uproszczony schemat:

: linux-kernel-simple.png

wywołania systemowe

System Level nazywa - jest najbliżej programista jądra Linux. wywołania systemowe zapewnia interfejs używany przez aplikacje - API jądra. Większość połączeń systemów Linux pochodzą z ze standardem POSIX, ale istnieją również specyficzne dla wywołań systemowych Linuksa.

Warto zauważyć pewne różnice w podejściu do projektowania API rdzenia w systemach uniksowych z jednej strony oraz w oknach [NT] i innych ideowych potomków VMS z drugiej strony. Projektanci Unix wolą dać dziesięć wywołań systemowych za pomocą jednego parametru zamiast pojedynczego wywołania systemowego z dwudziestu parametrów. Klasycznym przykładem - proces tworzenia. W funkcji Windows, aby utworzyć proces - CreateProcess () - 10 bierze argumenty z czego 5 - strukturę. W przeciwieństwie do tego, Unix systemy zapewniają dwa wywołania systemowe ( fork () i exec () ), pierwszy - nawet bez parametrów, drugi - z trzema parametrami.

wywołania systemowe z kolei odnoszą się do funkcji podsystemów jądra niższego szczebla.

zarządzanie pamięcią

Jądro Linux wykorzystuje pamięć jako minimalna jednostka strony. Rozmiar strony może zależeć od urządzenia; na x86 jest 4K. Do przechowywania informacji o stronie fizycznej pamięci (adres fizyczny, afiliacji, tryb użytkowania, itp), specjalną konstrukcję widoku wielkości 40 bajtów.

Jądro wykorzystuje możliwości nowoczesnych procesorów do obsługi pamięci wirtualnej. Ze względu na manipulowanie katalogach stron pamięci wirtualnej, każdy proces otrzymuje przestrzeni adresowej do 4 GB (32-bitowych). Część tej przestrzeni jest dostępny dla procesu odczytu lub tylko do projektowania: pojawiać interfejsy jądra.

Istotne jest, że proces jest uruchomiony w przestrzeni użytkownika, w większości przypadków, „nie wiem”, gdy jego dane: RAM lub plik wymiany. Proces może poprosić system przydzielić pamięć o nim jest w pamięci RAM, ale system nie jest wymagane do wykonania takiego wniosku.

zarządzanie procesami

Jądro Linux jest wielozadaniowym już od pierwszego dnia. Do tej pory, to ma bardzo dobre wsparcie poboru wielozadaniowość.

W historii znane są dwa rodzaje pracy wielozadaniowej:

wielozadaniowość korporacyjnych.

W tym rozwiązaniu, każdy transfery procesu sterowania do innego, gdy uzna to za stosowne. To oszczędza czas, aby przełączyć tryby procesora, ale, oczywiście, co do wiarygodności takiego systemu nie można mówić: a Hung proces nie daje kontrolę nad wszystkim. W nowoczesnych systemach operacyjnych, ta opcja nie jest używana.

Prewencyjne wielozadaniowość.

Jądro OS przydziela każdemu procesowi pewien kwant czasu procesora i „wymuszone” kontroli transferów do innego procesu po tej kwoty. Stwarza to obciążenie procesora przełącznika trybów i priorytetów kalkulacji, ale poprawia niezawodność i wydajność.

Procesy łączeniowe w systemie Linux może być wykonana przez wystąpienia dwóch zdarzeń: przerwania sprzętowego lub przerwania timera. częstotliwość przerwań timera jest ustawione podczas kompilacji jądra w zakresie od 100Hz do 1000Hz. Przerwania sprzętowe występują jeszcze częściej: przesunąć kursor myszy, lub wystarczy kliknąć na klawiaturze, a urządzenia wewnętrzne Komputera generowania przerwań. Od wersji 2.6.23, możliwe jest zbudowanie jądra, które nie użyć przełącznika procesowego na zegarze. Dzięki temu zmniejsza się zużycie energii na biegu jałowym komputera.

Harmonogram procesie stosuje się dość złożony algorytm w oparciu o obliczenia priorytety procesu. Wśród procesów identyfikuje te, które wymagają dużo czasu procesora, a te, które spędzają więcej czasu na wejściu i wyjściu. Na podstawie tych informacji regularnie przeliczone priorytety procesu. Ponadto, wartości zdefiniowane przez użytkownika używane miły dla poszczególnych procesów.

Oprócz wielu zadań w trybie użytkownika, jądro Linux używa trybu jądra wielozadaniowość: sam kernel wielowątkowość.

Tradycyjnych systemach UNIX mają następujące jądra ... dobrze, gdyby nie problem, funkcja: Jądro sama nie wypierać. Przykład: Proces / usr / bin / cat chce otworzyć plik /media/cdrom/file.txt i używa tego systemu zadzwonić open () . Kontrola jest przekazywana do jądra. Jądro wykryje, że plik znajduje się na inicjalizacji napędu CD-ROM i uruchamia (odwijania twardy, itp). To zajmuje dużo czasu. Przez cały ten czas, kontrola nie jest przekazywana do procesów użytkownika, jak harmonogram nie jest aktywny w momencie, gdy kod jądra jest wykonywany. Wszystkie procesy użytkownika czekając na zakończenie wywołania open () .

W przeciwieństwie do obecnego jądra Linux pierwokupu całkowicie. Harmonogram jest wyłączona tylko na krótkie okresy czasu, gdy jądro nie może zostać przerwana - na przykład podczas inicjalizacji niektórych urządzeniach, które wymagają, że pewne działania zostały wykonane ze stałym opóźnieniem. W innym wątku jądra czasu mogą być wyeliminowane, a sterowanie jest przekazywane do innego procesu przepływu użytkownika lub jądra.

Podsystem sieci

Jądro podsystem sieci teoretycznie prawie wszystko można zrobić w przestrzeni użytkownika: dla operacji takich jak tworzenie pakietów TCP / IP, nie są potrzebne żadne przywileje. Jednak w nowoczesnych systemach operacyjnych, zwłaszcza na mocno używanych serwerów z całego stosu sieciowego w całym łańcuchu - od formowania pakietów do pracy bezpośrednio z zasilacza sieciowego - wymagają maksymalnej wydajności. LAN podsystem działa w przestrzeni użytkownika musiałby ciągle znajdują się w jądrze, aby komunikować się z urządzeniem sieciowym, a to będzie miało bardzo istotny narzut.

Linux sieci podsystem zapewnia następujące funkcje:

  • Gniazda poboru;

  • Stosy protokołów sieciowych (TCP / IP, UDP / IP, IPX / SPX, AppleTalk i wiele innych.);

  • Trasowanie (routing);

  • Filtr pakietów (moduł Netfiltera);

  • Abstrakcja interfejsów sieciowych.

W różnych systemach UNIX wykorzystywane dwa różne interfejs aplikacji, zapewniając dostęp do funkcjonalności podsystemu sieci: Transport Layer Interface (TLI) z SVR4 i gniazd (gniazda) z BSD. TLI interfejs, z jednej strony, jest ściśle związany z podsystemem STREAMS brakuje w jądrze Linuksa, az drugiej - nie jest kompatybilny z interfejsem gniazda. Dlatego Linux wykorzystuje interfejs Gniazdo, pochodzący z rodziny BSD.

System plików

Wirtualny system plików (VFS)

Jeśli chodzi o aplikacje, uniksowych systemów operacyjnych, jest tylko jeden system plików. Jest to drzewo, które rośnie z katalogu „root”. Aplikacje, w większości przypadków nie są zainteresowani tym, co średnio to pliki danych; mogą one znajdować się na dysku twardym, dysku optycznym nośniku flash lub nawet na innym komputerze i innym kontynencie. To abstrakcja, i realizuje podsystem nazywany jest wirtualny system plików (VFS).

Warto zauważyć, że w jądrze Linux VFS jest realizowany z uwzględnieniem idei OWP. Na przykład, rozważmy zbiór podstawowych konstrukcji węzła , z których każda zawiera (między innymi):

  • Dane z węzła na dysku (uprawnienia, rozmiar pliku, itd.);

  • Wskaźnik do struktury opisującej sterownik systemu plików, który jest właścicielem iwęzeł;

  • Wskaźnik do operacji strukruru węzła, który z kolei zawiera wskaźniki do funkcji tworzenia iwęzeł, zmieniając jego atrybuty itp realizowane w odpowiedni sterownik systemu plików.

Podobnie ułożone rdzenia struktury opisujące innych podmiotów FS - Katalog superblock plików wpis.

sterowniki PS

sterowniki FS, jak widać z wykresu, należy zapoznać się z dużo wyższym poziomie niż sterowników. Wynika to z faktu, że kierowcy PS nie komunikują się ze wszystkimi urządzeniami. Sterownik systemu plików implementuje tylko funkcjonalności dostarczanej przez nich za pośrednictwem interfejsu VFS. Dane są zapisywane i odczytywane z / do stron pamięci; niektóre z nich, a gdy są one zapisane na nośniku - decyduje się na niższych poziomach. Fakt, że kierowcy w systemie plików Linux nie komunikuje się z urządzeniem pozwoliło wdrożyć specjalny sterownik FUSE, który deleguje funkcjonalność modułów sterownika FS, jest wykonywany w przestrzeni użytkownika.

strona cache

Ten podsystem jest jądro obsługuje stron pamięci wirtualnej, zorganizowanych w formie podstawy drzewa (drzewa radix). Gdy dane są odczytywane z nośnika pamięci, dane są odczytywane w przydzielonej pamięci podręcznej stronę, a strona pozostaje w pamięci podręcznej, a sterownik systemu plików odczytuje dane z niego. Sterownik FS zapisuje dane na kartach pamięci, które znajdują się w pamięci cache. Jednakże strony te są oznaczone jako „brudne» (dirty). Specjalny wątek jądra, pdflush regularnie omija pamięć podręczną i pisać wnioski generuje brudnych stron. Nagrany na brudnej stronie ponownego oznaczone jako czyste.

Blok poziom IO

Ten podsystem działa kolejki rdzenia (kolejki), składające się ze struktur biologicznego . Każda taka struktura opisuje pojedynczą operację wejścia-wyjścia (relatywnie rzecz biorąc, zapytanie w postaci „napisane te dane w blokach 141-142 ## urządzenie / dev / hda1»). Dla każdego procesu wykonywania wejścia i wyjścia, to tworzy swoje kolejki. Stwarza to wiele kolejek, jedną kolejkę żądań do każdego sterownika.

IO scheduler

Jeśli się prośby do wejścia i wyjścia na dysku aplikacji w kolejności, w jakiej przybywają, średnia wydajność systemu będzie bardzo niska. Wynika to z faktu, że operacja wyszukiwania jest pożądana sektor na dysku twardym - jest bardzo powolna. Dlatego kolejki scheduler żąda, aby wykonać dwie operacje:

  • Sortowanie: scheduler próbuje umieścić zapytań wierszy, które wymagają dostępu do sektorów dysku znajdujące się w pobliżu;

  • Scalanie: Jeżeli w wyniku szeregu sortowania było kilka wniosków mających na celu kolejno znajdujące sektory, powinny one być połączone w jednym wniosku.

W dzisiejszym jądra są wielokrotne planiści: wyprzedzające, termin, CFQ, noop. Jest to wersja jądra z Con Kolivas z innym planner - BFQ. Planiści mogą być wybierane zarówno podczas kompilacji jądra przy starcie.

Oddzielnie powinny pozostać na noop harmonogramu. Ten harmonogram nie wykonuje jakiejkolwiek lub scalić wnioski i przekazuje je do sterowników urządzeń w celu ich otrzymania. W systemach z tradycyjnymi dyskami twardymi ta Planowanie pokaże bardzo słabe wyniki. Jednak systemy stają się powszechne teraz, gdzie zamiast dysków twardych używanych mediów błysku. Dla takiego sektora mediów poszukują czas jest zerem, więc operacje sortowania i łączenia nie są konieczne. W takich systemach, wykorzystując wydajność scheduler noop nie zmienia się, a zużycie zasobów nieznacznie spadać.

Przetwarzanie przerwań

Prawie wszystkie z najnowszej architektury sprzętowej stosowanych do urządzeń komunikacyjnych z koncepcją oprogramowania przerwania. Wygląda to w następujący sposób. Procesor pracuje jakiś proces (czy proces użytkownika lub wątek jądra). Przerwanie z urządzenia. Procesor jest odchylany od bieżących zadań, a przełączniki sterowania do adresu pamięci, który jest powiązany z tym numerem w specjalnej tabeli przerwania przerwania. Pod tym adresem jest obsługi przerwań. Moduł obsługi wykonuje pewne działania w zależności od tego, co stało się z tym urządzeniem, to sterowanie jest przekazywane do procesu harmonogramu, który z kolei decyduje komu przekazać zarządzanie dalej.

Tutaj jest pewna subtelność. Faktem jest, że podczas gdy przerwanie harmonogram zadań obsługi nie jest aktywne. Nie jest to zaskakujące: zakłada się, że obsługi przerwań prowadzi bezpośrednio do urządzenia, a urządzenie może wymagać przeprowadzenia pewnych działań w twardej czasowych. Dlatego też, jeśli obsługi przerwań będą działać przez długi czas, wszystkie inne procesy i wątki jądra będzie czekać, ale zwykle nie jest dozwolone.

W jądrze Linuksa w wyniku jakiejkolwiek kontroli przerwania sprzętowego jest przekazywana do funkcji do_IRQ () . Funkcja ta wykorzystuje osobną tabelę zarejestrowaną w jądrze obsługą przerwań, aby określić, gdzie przenieść kontrolę, aby kontynuować.

W celu zapewnienia minimalnego czasu przerwania w kontekście, w jądrze Linux używane przez procedury obsługi podziału w górnej i dolnej części. Górna połowa - funkcja, która sterownik urządzenia jest zarejestrowany jako specyficznej obsługi przerwań. Wykonuje tylko prace, które zdecydowanie powinny być wykonywane natychmiast. Następnie rejestruje inną funkcję (dolna połowa) i powraca. Transfer Task Scheduler sterowania do górnej połowy statutowej jak najszybciej. W większości przypadków sterowanie jest przekazywane do dolnej części natychmiast po zakończeniu górnej połowie. Ale podczas gdy dolna część działa jak normalny wątku jądra, a można przerwać w dowolnym momencie, a zatem ma prawo do uruchomienia na czas nieokreślony.

Jako przykład rozważmy obsługi przerwań karty sieciowej, mówi się, że odbieranego ethernet-pack. Ten procesor jest wymagana zrobić dwie rzeczy:

  • Wziąć pakiet z karty sieciowej i bufor karty sieciowej, aby zasygnalizować, że pakiet jest odbierany przez system operacyjny. To musi być zrobione natychmiast po otrzymaniu przerwania przez bufor milisekundy będzie mieć bardzo różne dane;

  • Umieścić ten pakiet w żadnej struktury rdzenia, aby dowiedzieć się, co odnosi się do protokołu, aby przekazać je do odpowiednich funkcji przetwarzania. To musi być zrobione tak szybko, jak to możliwe, aby zapewnić maksymalną wydajność podsystemu sieciowego, ale niekoniecznie od razu.

W związku z powyższym, pierwszy procesor wykonuje górnej części, a drugi - do dna.

sterowniki

Większość sterowników urządzeń są zwykle zestawiane jako moduły jądra. Sterownik otrzymuje wnioski z dwóch stron:

  • Urządzenie - przez zarejestrowanych przerwań obsługą sterowników;

  • Z różnych części rdzenia - poprzez interfejs API, który jest określony przez danego podsystemu i sami kierowcy jądra.

ANATOMIA CORE LINUX - IBM

zawartość


  • wprowadzenie
  • Krótki przegląd historii Linuksa
  • Wprowadzenie do jądra Linux
  • Właściwości jądra Linux
  • Główne podsystemy jądra Linux
  • Ciekawe funkcje jądra Linuksa
  • dalsze badania
  • Zasoby do pobrania
  • Powiązane tematy
  • Komentarze

Anatomia jądra Linux

Historia i organizacja architektoniczny

Komentarze

Ponieważ celem tego artykułu - wprowadzenie do jądra Linuksa, i dać przegląd jego architektury i głównych komponentów, zacznijmy krótki przegląd historii jądra Linux, a następnie spojrzeć na jądra architekturze Linux „lotu ptaka”, a na końcu omówienia jego głównych podsystemów. Jądro Linux ma ponad sześć milionów linii, więc to wprowadzenie nie może być wyczerpująca. Aby uzyskać więcej informacji, należy skorzystać z łącza do dodatkowych zasobów.

Krótki przegląd historii Linuksa

Choć Linux, jak widać, jest najbardziej popularny system operacyjny open source, w rzeczywistości jego historia w porównaniu do innych systemów operacyjnych jest stosunkowo krótki. U zarania ery komputerowej programistów do rozwijania własnych programów dla „nagi” sprzętu, używając języka, który jest zrozumiały dla tego urządzenia. W przypadku braku systemu operacyjnego, aby korzystać z całego dużych i drogich komputerów w danym momencie może być tylko jeden wniosek (jeden użytkownik). Pierwsze systemy operacyjne zostały opracowane w 1950 roku, aby ułatwić życie programistom. Jako przykład można wymienić General Motors system operacyjny (GMO), zaprojektowany dla IBM 701 i FORTRAN Monitor systemu (FMS), utworzoną przez North American Aviation dla IBM 709.

W 1960 roku w Massachusetts Institute of Technology (MIT) i eksperymentalnego systemu operacyjnego Multics (zwielokrotnienia Informacji i Computing Service) dla maszyny GE-645 został opracowany w wielu firmach. Jeden z twórców systemu operacyjnego Linux, firmy AT & T, został odsunięty od Multics, aw 1970 stworzył własny system Unics. Z tego OS dostarczane języka C. W tym przypadku, C został zaprojektowany i napisany w celu zapewnienia przenoszenia rozwoju systemu operacyjnego.

Dwadzieścia lat później, Andrew Tanenbaum (Andrew Tanenbaum) stworzył wersję mikrojądra z UNIX o nazwie MINIX (minimalna UNIX), który może pracować na małych komputerów osobistych. Ten system operacyjny to oprogramowanie open source inspirowane przez Linusa Torvaldsa (Linus Torvalds) do opracowania pierwszej wersji systemu Linux na początku 1990 (zob. Rys. 1).

Rys. 1. Krótka historia głównych wydaniach jądra Linux

Krótka historia głównych wydaniach jądra Linux

Krótka historia głównych wydaniach jądra Linux

Linux szybko ewoluowała od inicjatyw poszczególnych wentylatorów do projektu światowej z udziałem tysięcy programistów. Jedną z najważniejszych decyzji w losie Linux w przyjęciu na licencji GNU General Public License (GPL). Jądro Linux GPL chronione od komercyjnego i jednocześnie otworzyło drogę do korzystania z rozwoju społeczności użytkowników GNU oparty Stollmenom Richarda (Richard Stallman), którego objętość znacznie przekraczają nawet ilość kodu jądra Linux. Jest to możliwe do wykorzystania w takich przydatnych aplikacji Linux jako zestaw kompilatorów GNU Compiler Collection (GCC) i różnych pocisków.

Wprowadzenie do jądra Linux

Przystępujemy do ogólnego przeglądu architektury systemu operacyjnego GNU / Linux. System operacyjny może być podzielony na dwa poziomy, jak to pokazano na rysunku. 2.

Rys. 2. Podstawowym architektura systemu operacyjnego GNU / Linux

Podstawowym architektura systemu operacyjnego GNU / Linux

Podstawowym architektura systemu operacyjnego GNU / Linux

Na górnym poziomie znajduje się przestrzeń użytkownika (obszar zastosowania). aplikacje użytkownika są wykonywane tutaj. Zgodnie z przestrzeni użytkownika znajduje przestrzeni jądra. Tutaj działa jądro Linux.

Jest też biblioteka GNU C (glibc). To zapewnia interfejs wywołania systemowego, który komunikuje się z jądra i zapewnia mechanizm przejścia z aplikacji działającej w przestrzeni użytkownika do jądra. Jest to ważne, ponieważ jądra i użytkownika aplikacji znajdują się w różnych chronionych przestrzeni adresowych. Tak więc, gdy każdy proces przestrzeni użytkownika posiada własny wirtualny adres, jądro zajmuje tę samą przestrzeń adresową. Więcej informacji można znaleźć w literaturze, których odniesienia zostały podane w sekcji „zasoby”.

Jądro Linux może z kolei dzieli się na trzech głównych poziomach. Na górze jest interfejs wywołania systemowego, który realizuje podstawowe funkcje, takie jak чтениеa запись. Poniżej interfejs wywołania systemowego jest kod jądra, a dokładniej, architektura niezależny kod jądra. Kod ten jest wspólny dla wszystkich architektur procesorów obsługiwanych przez Linuksa. Jeszcze mniejsza jest zależny od architektury kod, który tworzy tzw BSP (Board Support Package - Pakiet wsparcia platformy sprzętowej). Ten kod jest zależna od konkretnej architektury procesora i platformy.

Właściwości jądra Linux

Omawiając architekturę dużego i skomplikowanego systemu, można zauważyć z wielu różnych punktów widzenia. Jednym z celów analizy architektonicznej może być to, że w celu lepszego zrozumienia kodu źródłowego systemu. To, co mamy zamiar zrobić tutaj.

Jądro Linux wdrożył szereg ważnych elementów architektonicznych. A w ogóle, a na bardziej szczegółowych poziomach rdzenia można je podzielić na kilka różnych podsystemów. Z drugiej strony, Linux może być traktowane jako monolityczną całość, ponieważ wszystkie podstawowe usługi są gromadzone w jądrze systemu. Takie podejście różni się od architektury mikrojądra gdzie jądro zapewnia tylko najbardziej ogólne usługi, takie jak wymiana informacji. I / O, pamięci i zarządzanie procesami, a bardziej konkretne usługi są realizowane w modułach, które mogą być podłączone do poziomu mikrojąder. Każdy z tych punktów widzenia ma swoje zalety, ale nie mam zamiaru iść do tej dyskusji.

Z staje się bardziej wydajny pod względem zużycia pamięci i zasobów procesora i uzyskała wyjątkową stabilność w czasie, jądro Linux. Jednak najbardziej interesującym aspektem Linux, biorąc pod uwagę wielkość i złożoność systemu - to jest jego przenośność. Linux może być skompilowany dla ogromnej liczby różnych procesorów i platform z różnymi ograniczeniami i potrzeb architektonicznych. Na przykład, Linux może działać na procesorze jako jednostka zarządzania pamięcią (MMU) i bez MMU. Procesory bez wsparcia MMU jest zaimplementowana w wersji jądra uClinux. Aby uzyskać więcej informacji, zob. W sekcji „zasoby”.

Główne podsystemy jądra Linux

Spójrzmy na niektóre z głównych składników jądra Linuksa, po strukturze pokazanej na fig. 3.

Rys. 3. Jednym z możliwych poglądów na temat architektury jądra Linux

Jednym z możliwych poglądów na temat architektury jądra Linux

Jednym z możliwych poglądów na temat architektury jądra Linux

Interfejs wywołań systemowych

SCI - to cienka warstwa, która zapewnia środki do wywoływania funkcji jądra z przestrzeni użytkownika. Jak już wspomniano, ten interfejs może być zależny od architektury, nawet w obrębie tej samej rodziny procesorów. SCI jest rzeczywiście serwis multipleksowanie i demultipleksowanie wywołanie funkcji. Realizacja SCI jest w ./linux/kernel, a część architektury zależne - w ./linux/arch. Aby uzyskać więcej informacji na temat tego składnika można znaleźć w sekcji Zasoby.

zarządzanie procesami

Zarządzanie procesami skupia się na wydajności procesów. W jądrze, procesy te nazywane są strumieniami (nici); odpowiadają one poszczególnych obiektów zwirtualiziwane procesor (kod strumień, danych stos, rejestry Processor). W przestrzeni użytkownika, termin ten jest powszechnie stosowany proces , chociaż te dwa pojęcia (procesy i wątki) nie dyskryminuje na wdrożenie systemu Linux. Jądro udostępnia interfejs programowania aplikacji (API) przez SCI, aby utworzyć nowy proces (generowanie kopii, zacznij wykonywać funkcje połączeń Portable Operating System Interface [POSIX]) , zatrzymanie procesu (zabić, zjazd), komunikacji i synchronizacji między procesami (sygnałów lub mechanizmów POSIX).

Kolejnym zadaniem zarządzania procesami - dzielenie procesora aktywnych wątków. U podstaw algorytmu wdrożone innowacyjne planowanie, którego czas nie zależy od liczby wątków konkurujących o zasoby procesora. Nazwa tego szeregujący - O (1) - podkreślić, że szeregowanie jednego strumienia spędzony tyle czasu, w postaci wielu strumieni. Harmonogram O (1) wspiera się symetryczną konfigurację Multiprocessing (SMP). Systemy zarządzania procesem kodu źródłowego są w ./linux/kernel i architektura zależne części kodu - w ./linux/arch). Aby uzyskać więcej informacji na temat tego algorytmu, zobaczymy. W sekcji Zasoby.

zarządzanie pamięcią

Innym ważnym zasobem, który jest kontrolowany przez jądro - jest pamięć. Aby poprawić wydajność, biorąc pod uwagę mechanizm działanie sprzętu z pamięci wirtualnej, pamięć jest zorganizowana w postaci tak zwanych stron (w większości architektur 4K). W Linuksie, istnieją dostępne narzędzia do zarządzania pamięcią i mechanizmów sprzętowych dla ustalenia korespondencji pomiędzy pamięci fizycznej i wirtualnej.

Jednak zarządzanie pamięcią - to znacznie więcej niż tylko zarządzających buforów 4KB. Linux zapewnia abstrakcji nad tymi zderzakami 4KB, takich jak mechanizm dystrybucji płyty podzielnika. Ten mechanizm sterowania oparty na 4K buforów, a potem umieszcza je w strukturze, zapewniając, że każda pełna stron, które są częściowo wypełnione i które są puste. To pozwala dynamicznie rozwijać i schemat zamówienia w zależności od potrzeb systemu pokrywającej.

W związku z dużą ilością pamięci użytkownika mogą być sytuacje, gdy dostępna pamięć jest wyczerpana. W związku z tym, strona może zostać usunięte z pamięci i przenoszone na dysk. Ten proces wymiany między stronami pamięci RAM i dysku twardego nazywany jest zamiana . Początkowe kody zarządzania pamięcią są ./linux/mm.

wirtualny system plików

Innym interesującym aspektem jądra Linux - wirtualny system plików (VFS), który zapewnia wspólny abstrakcji interfejsu dla systemów plików. VFS stanowi warstwę przełączania między SCI i systemów plików obsługiwanych przez jądra (zob. Fig. 4).

Rys. 4. VFS zapewnia tkaninę przełączania pomiędzy użytkownikami i systemami plików

VFS zapewnia tkaninę przełączania pomiędzy użytkownikami i systemami plików

VFS zapewnia tkaninę przełączania pomiędzy użytkownikami i systemami plików

Na najwyższym poziomie VFS jest wspólne API abstrakcji funkcji takich jak otwieranie, zamykanie, czytania i zapisywania plików. VFS na niższym poziomie abstrakcji są systemy plików, które określają, jak zaimplementować funkcje wyższego poziomu. Są to moduły plug-in dla systemów konkretnego pliku (gdzie istnieje więcej niż 50). Systemy plików kodu źródłowego są ./linux/fs.

Poniżej poziomu buforów cache systemu plików przechowywanych ze wspólnego zestawu funkcji na poziomie systemu plików (niezależnie od konkretnego systemu plików). Ta warstwa buforowanie optymalizuje dostęp do urządzeń fizycznych kosztem krótkotrwałego przechowywania (lub prefetching, zapewnienie dostępności danych do momentu, gdy są potrzebne). Poniżej buforów cache są sterowniki, które implementują interfejsy do konkretnych urządzeń fizycznych.

stos sieci

Stosu sieciowego w swojej konstrukcji posiada warstwową architekturę powtarzania samych protokołów struktury. Pamiętasz, że protokół IP (Internet Protocol) - podstawowy protokół warstwy sieci znajduje się poniżej transportu Transmission Control Protocol, protokół TCP). Powyżej TCP jest warstwa gniazd, spowodowane przez SCI.

Warstwa gniazda jest standardowym API podsystemu sieciowego. To zapewnia interfejs użytkownika dla różnych protokołów sieciowych. Gniazda szczebla realizuje znormalizowany sposób zarządzania połączenia i transferu danych pomiędzy dwoma punktami końcowymi, z dostępem do „czystych” ramek danych i jednostki danych protokołu IP (PDU) oraz protokołów TCP i User Datagram Protocol (UDP). Kod źródłowy jądra podsystemu sieci znajduje się w katalogu ./linux/net.

sterowniki

Zdecydowana większość oryginalnego kodu jądra Linux kont dla sterowników urządzeń, zapewniając możliwość pracy z poszczególnymi urządzeniami sprzętowymi. Drzewo kod źródłowy Linux ma podkatalogu sterowniki, które z kolei są podkatalogi dla różnych typów obsługiwanych urządzeń, takich jak Bluetooth, porty szeregowe I2C, itp Początkowe kody sterownika urządzenia są ./linux/drivers.

Architektura zależne od kod

Chociaż główna część Linux jest niezależne od architektury, w którym system operacyjny pracuje w niektóre z elementów, aby zapewnić prawidłowe działanie i skuteczność należy uznać architektura. Podkatalog ./linux/arch architekturą częściowo zależny od kodu źródłowego jądra podzielona na pewną liczbę podkatalogów odpowiadających poszczególnym architektur. Wszystkie te katalogi tworzą razem BSP. W przypadku komputera stacjonarnego, używając w katalogu i386. Podkatalogu dla każdej architektury zawiera szereg zagnieżdżonych podkatalogów dotyczących konkretnych aspektów, takich jak jądro ładuje jądro, zarządzanie pamięcią, etc. kod źródłowy architektura zależne części są w ./linux/arch.

Ciekawe funkcje jądra Linuksa

Oprócz przenośności i wydajności, jądro Linux posiada wiele innych ciekawych funkcji, które nie zostały omówione w powyższej uwagę.

Linux, jak szeroko stosowane w praktyce, system operacyjny open source, jest doskonałą łóżko test dla nowych protokołów i ich ulepszeń. Linux obsługuje wiele protokołów sieciowych, w tym tradycyjnych TCP / IP i rozbudowa szerokopasmowy (dla sieci Gigabit Ethernet szybszego [GbE] i 10 GbE). Linux obsługuje także protokoły takie jak strumień Transmission Control Protocol (SCTP), która implementuje wiele zaawansowanych funkcji, które nie występują w TCP (używany jako alternatywa protokołu transportowego).

Należy zauważyć, że jądro Linux jest dynamiczna (obsługuje dodawania i usuwania komponentów oprogramowania bez wyłączania systemu). Składniki te nazywane są dynamicznie ładowanych modułów jądra. Mogą być one podawane w systemie, w razie potrzeby, w trakcie ładowania (jeżeli znaleziono dane urządzenie, które wymaga takiego modułu), a w każdej chwili, gdy użytkownik pragnie.

Jednym z ostatnich poprawa Linux - możliwość wykorzystania jako system operacyjny dla innych systemów operacyjnych (tzw hypervisor). Ostatnio, jądro zostało wykonane poprawy, zwany Kernel-based Virtual Machine (KVM, maszyna wirtualna jest oparty na rdzeniu). W wyniku tej modyfikacji w przestrzeni użytkownika nowego interfejsu został wdrożony, pozwalające na przeprowadzenie przez jądro ze wsparciem dla innych systemów operacyjnych KVM. W tym trybie można wykonywać nie tylko inne instancje systemu Linux, ale również do wirtualizacji systemu Microsoft® Windows®. Jedynym ograniczeniem jest to, że wykorzystywane przez procesor musi obsługiwać nowe instrukcje wirtualizacji. Aby uzyskać więcej informacji, zob. W sekcji Zasoby.

dalsze badania

W tym artykule, jesteśmy tylko w najogólniejszym ujęciu, mówiliśmy o architekturze jądra Linux i jego funkcji i możliwości. Aby uzyskać więcej informacji na temat zawartości jądra można znaleźć w katalogu dokumentacji, która jest dostępna w każdej dystrybucji Linuksa. Koniecznie sprawdź sekcję Zasoby na końcu tego artykułu, gdzie znajdują się linki do bardziej szczegółowych informacji na temat omawianych tu wiele tematów.



Zasoby do pobrania


Powiązane tematy

  • Оригинал статьи
    Anatomia jądra Linux: Historia i rozkład architektoniczny.
  • Witryna opisuje GNU Licencji GNU GPL, która jest rozprowadzana w jądrze Linux i najbardziej przydatnych aplikacji, które pochodzą z nim. Opisano również narzuca ograniczenia postać GPL tzw Mniejszym GPL (LGPL).
  • Opisy UNIX, MINIX i
    Linux można znaleźć w encyklopedii Wikipedia. Zawiera on również szczegółowe drzewa genealogicznego rodziny systemów operacyjnych.
  • Biblioteka GNU C, jest również glibc, to implementacja standardowej biblioteki C. Jest on używany w systemie operacyjnym GNU / Linux, a także systemu operacyjnego GNU / Hurd mikro-jądra.
  • uClinux przeniesiony wersja jądra Linuksa, które można uruchomić na systemach bez jednostka zarządzania pamięcią (MMU). To sprawia, że ​​możliwe do wykonania jądra Linux na bardzo kompaktowych platform wbudowanych, takich jak na procesorze Motorola DragonBall, jest stosowany w komputerach przenośnych PalmPilot.
  • „Zarządzanie jądra poprzez wywołań systemowych Linuksa»
    Artykuł poświęcony jest ważnym poziomie jądra systemu Linux - interfejs wywołania systemowego, które wspierają na poziomie przestrzeni użytkownika udostępnia bibliotekę glibc, która pozwala na wywołania funkcji między przestrzenią użytkownika i jądra.
  • „Urządzenie wewnętrzne Harmonogram Linux”
    nowy scheduler O (1), który pojawił się w Linux wersji 2.6, posiada wysoką sprawność, to wysoce skalowalne do dużej liczby procesów (wątków) i systemu SMP-nośnej.
  • „Dostęp do jądra Linux z wykorzystaniem systemu plików / proc»
    W artykule system plików / proc - wirtualny system plików, który obsługuje aplikacje w przestrzeni użytkownika zupełnie nowy sposób na interakcję z jądrem. Oprócz / proc, artykuł opisuje ładowalnych modułów jądra.
  • „Klinika Serwer: Praktyczne wykorzystanie wirtualny system plików”
    W artykule warstwie VFS, który pozwala Linux wspierać wiele różnych systemów plików za pomocą wspólnego interfejsu. Ten sam interfejs jest używany do innych rodzajów urządzeń, takich jak gniazda.
  • „Urządzenie jest procesem rozruchu Linux”
    W artykule omówiono proces uruchamiania systemu Linux, która ma taką samą podstawową programu, niezależnie od tego, czy komputer jest uruchamiany z dysku twardego, dyskietki, USB-drive lub przez sieć.
  • „Wirtualny dysk startowy w systemie Linux (initrd) - przegląd”
    W artykule omówiono wirtualny początek dysku - funkcja, która pozwala na oddzielenie procesu załadunku z fizycznego nośnika do rozruchu.
  • „Poprawa funkcjonowania sieci wykorzystujących SCTP»
    artykuł jest poświęcony jednemu z najbardziej interesujących protokołów sieciowych - Stream Transmission Control Protocol - który działa podobnie jak TCP, ale ma kilka dodatkowych przydatnych funkcji, takich jak wiadomości, wsparcie dla wielu lokalizacjach adresów IP (multi- naprowadzające), przeniesienie fragmentów różnych strumieni danych (Multi-strumieniowe). Linux, jak BSD - wielki system operacyjny, jeśli jesteś zainteresowany wsparciem dla protokołów sieciowych.
  • „Anatomia mechanizm przydzielania płyta w Linuksie»
    Artykuł poświęcony jednemu z najbardziej interesujących aspektów zarządzania pamięcią w Linuksie - płyta mechanizm przydzielania. Mechanizm ten po raz pierwszy pojawił się w SunOS, ale dobrze złapany w jądrze Linux.
  • „Wirtualny Linux»
    artykule rozmowy o tym, jak Linux mogą korzystać z możliwości procesora, które obsługują wirtualizację.
  • «Linux i symetryczny układ wieloprocesorowe”
    W artykule na pytanie, jak Linux może wykorzystać moc procesorów z obsługą konfiguracjach wieloprocesorowych, chip poziomie.
  • „Wprowadzenie do wirtualnej maszynie Linux kernel”
    W artykule analizuje niedawno pojawił się w wirtualizacji jądra Linux, przekształcając jądra do hypervisor innych wirtualnych systemów operacyjnych.
  • Sprawdź książkę Tim Jones: Programowanie aplikacji dla systemu GNU / Linux , szczegółowo opisuje programowanie w przestrzeni użytkownika Linuksa.

  • Strefa Linux na developerWorks Rosji mogą znaleźć inne zasoby dla programistów linuksowych.
  • Używaj
    oprogramowania trial IBM,
    dostępne do pobrania bezpośrednio z developerWorks budować swój kolejny projekt rozwojowy w systemie Linux.



Komentarze

Zaloguj się lub
zarejestruj aby zamieścić komentarz lub zapisz się do nich.


static.content.url = http: //www.ibm.com/developerworks/js/artrating/
Site_id = 40
Strefa = Linux
ArticleID = 242366
ArticleTitle = jądro Linux Anatomy
publikować-date = 07242007

Proces pobierania LINUX - Wikipedia

Linux

- Wikipedia, wolna encyklopedia.

Przejdź do nawigacji
Przejdź do wyszukiwania

Linux
Pingwin Tux - logo i maskotka Linuksa
GNU i Tux.svg

Pingwin Tux - logo i maskotka Linuksa
opracowanyRóżne firmy i indywidualne
OS RodzinaUNIX-like
Status projektuaktywny
Kod modeluwolne Oprogramowanie
Pierwsze wydanie17 września 1991
Nisza rynkowakomputery stacjonarne, serwery, urządzeń wbudowanych
obsługiwane platformyGrudnia alfa, ramię, AVR32, Borel, ETRAX CRIS FR-V, H-8/300, Itanium M32R, m68k, Microblaze, MCI MN103, OpenRISC, PA-RISC PowerPC S390, S + rdzeń SuperH, SPARC TILE64, Unicore32, x86, Xtensa
typ podstawowymonolityczny
licencjaRóżne głównie GNU GPL
witryna internetowakernel.org

Linux grafiką ?
Ten artykuł dotyczy systemów operacyjnych opartych o jądro Linux. Aby uzyskać informacje o jądrze, przeczytaj jądra

Linux (Eng. Linux , pełna nazwa - GNU / Linux ) - potoczna nazwa uniksopodobnego systemy operacyjne na podstawie tego samego rdzenia. Jest to jeden z najbardziej znanych przykładów wolnego projektu (za darmo) i otwarte (open source, oprogramowanie open source) (software). W przeciwieństwie do zastrzeżonych systemów operacyjnych (takich jak Microsoft Windows i MacOS X), ich kod źródłowy dostępny dla wszystkich do użytku, modyfikacji i dystrybucji swobodnie (w tym za darmo).

Linux, opracowany do wykorzystania przez indywidualnych entuzjastów na swoich komputerach, później, dzięki wsparciu takich firm jak IBM, Sun Microsystems, HP, Novell i innych zyskał wyjątkową popularność jako system operacyjny serwera (na przykład 8 z 10 największych firm dostarczające usług hostingowych używać Linuksa na swoich serwerach internetowych).

Linux przeportowany na wielu platformach sprzętowych. Obecnie funkcjonującego z powodzeniem stosować zarówno mainframe i superkomputerów, a wbudowana w wielu innych urządzeń (smartfony, tablety, routery sieci komputerowych (routery), Automatyka, telewizory zarządzania i konsole do gier, itp). Od połowy lat 1990, Linux jest coraz bardziej zdeterminowany i komputery stacjonarne. W marcu 2015 roku jej udział wyniósł 1,21% światowego rynku systemów operacyjnych dla komputerów osobistych (bez użycia specjalistycznych serwerów i urządzeń) [1] .

Duża liczba specjalnych dystrybucjach Linuksa, które zostały opracowane i obsługiwane przez różne społeczności, zapewnia szeroki wybór oprogramowania.

zawartość

  • 1 Historia
    • 1,1 Pochatkova
    • 1.2 Linux i Projekt GNU
    • 1.3 Proces SCO
    • 1.4 Kto tworzy Linuksa
  • 2 Mobilność
  • 3 Prawa autorskie i licencja
    • 3.1 Marka Linux
    • 3.2 Bezpieczeństwo Linux
  • 4 wymowa
  • 5 Software
    • 5.1 Dystrybucja
    • 5.2 Stosowanie w miejscu pracy
    • 5.3 Udział w rynku
  • 6 Instalacja
  • 7 Oprogramowanie dla Linuksa
  • 8 Pomoc
  • 9 Vinoski
  • 10 See. również
  • 11 Odnośniki
    • 11.1 Ukraińskie zasoby

Historia [ Ed. | Ed. kod ]

Począwszy [ Ed. | Ed. kod ]

Linus Torvalds, twórca Linuksa

W 1983 roku Richard Stallman założył Projekt GNU, do stworzenia kompletnego uniksowego systemu operacyjnego i wypełnić go z jedynego wolnego oprogramowania. Na początku 1990 roku projekt zebrane prawie wszystkie niezbędne elementy systemu: biblioteki, kompilatory, edytory tekstu, Unix shell, - oprócz głównego składnika - jądro. W 1990 roku projekt zaczął się rozwijać rdzenia Mach GNU Hurd mikrojądro opartą jednak prace rozpoczęły poważne przeszkody i powoli.

W międzyczasie, w 1991 roku, Linus Torvalds (ur. Linus Torvalds ), University of Helsinki fińskiego studenta jak ich hobby zaczął rozwijać drugi rdzeń. Po pierwsze, Torvalds używane na komputerze Minix - uproszczonego systemu operacyjnego Unix-like opracowanego przez Andrew S. Tanenbaum nauczania. Jednak Tanenbaum nie pozwalał innym rozszerzają swój system operacyjny, co skłoniło Torvaldsa stworzyć zamiennik Minix.

Po pierwsze, jego jądro Torvalds zwany „Freax”, która jest skrzyżowanie z napisem „wolne” i „Freak”, plus dodanie litery „X”, który jest często używany w nazwach uniksowych systemów operacyjnych. Nazwa «Linux» wynalazł Ari Lemke, który w tym czasie podawać sieć serwerów FTP-fińskich uniwersytetów, dał nazwę «» Sieci Linux, który był pierwszy projekt Torvalds dostępny do pobrania.

Historia graficzny systemach UNIX. Linux jest uniksowy system operacyjny, ale kod nie został zaczerpnięty z oryginalnego Unix.

Wcześnie, aby skonfigurować i zainstalować Linux komputer potrzebny pod kierunkiem Minix. Pierwsza wersja systemu Linux wymaga również SSD obecność innego systemu operacyjnego do przenoszenia ładunku, ale później pojawiły się niezależne sterowniki takie jak LILO. Możliwości Funkcjonalność Linux szybko przekroczyła system Minix; Torvalds i inni deweloperzy wcześnie jądra dostosowane swoją pracę dla komponentów GNU i niestandardowego oprogramowania, aby stworzyć kompletny, w pełni funkcjonalny, darmowy system operacyjny.

Dziś Torvalds nadal koordynować rozwój jądra i innych podsystemów (takie jak GNU składników) rozwijające się oddzielnie (praca na jądrze Linux nie jest częścią GNU). Różne społeczności i przedsiębiorstw łączyć i rozdzielać te wszystkie komponenty z dodatkowego oprogramowania aplikacyjnego zwanej dystrybucji Linuksa.

Linux i Projekt GNU [ Ed. | Ed. kod ]

Richard Stallman, twórca projektu GNU

Celem jest stworzenie Unix kompatybilny system operacyjny GNU złożoną wyłącznie z wolnego oprogramowania. Nawet nayuniversalnishi dystrybucje Linuksa zależy od bibliotek i narzędzi programowych napisanych przez projekt GNU. Free Software Foundation (FSF) uważa te wszystkie dystrybucje Linuksa jako „warianty” GNU systemu i wniosków, że wszystkie z tych systemów operacyjnych są przypisane do systemów GNU / Linux lub Linux opartych na GNU. Podczas gdy niektóre dystrybucje, takie jak Debian GNU / Linux, używać jej nazwę, jego zastosowanie na zewnątrz entuzjastów społeczności są nieco ograniczone, a Linus Torvalds zwane połączenie FSF «niedorzeczne» . Jednym z powodów wykorzystania prostszej nazwy „Linux” jest to, że różnice pomiędzy systemem operacyjnym rdzenia i jego dystrybucji mylić początkujących.

Proces SCO [ Ed. | Ed. kod ]

Więcej: Konflikt SCO-Linux

W marcu 2003, SCO Group (US deweloper systemu i oprogramowania) rozpoczął proces przeciwko IBM, twierdząc, że IBM dodany do kodu jądra Linuksa, prawa autorskie należące do SCO Group, naruszono w ten sposób zapewniono licencję na używanie systemu UNIX. Dodatkowo, SCO wysłał list do kilku dużych firm ostrzeżenie, że ich stosowanie Linux bez licencji SCO może spowodować oskarżenia. List ten był wynikiem pojawienia się na założeniu możliwości pozwów przeciwko zwykłych użytkowników systemu Linux. W dyskusji wziął próby AutoZone i Red Hat. Na pytanie, czy SCO jest właścicielem praw autorskich do Uniksa, jest kontrowersyjna i kwestionowana przez firmę Novell.

03 lipca 2006 roku Sąd Rejonowy w Utah odrzucił 182 z 294 złożonych wniosków SCO Group przeciwko IBM.

Grupa SCO nadal nie przedstawił żadnych dowodów na obecność swojego autorskiego przedstawienia w kodzie jądra Linux.

Kto tworzy Linuksa [ Ed. | Ed. kod ]

GNU / Linux - kompleksowy system, który obejmuje tysiące paczek z najczęstszą (takie jak narzędzia GNU, X.org, GNOME i KDE) specyficznych dla danej dystrybucji. Zespół rozwój dla każdego projektu różnej wielkości, podejście do pracy, stosowanych narzędzi i metod planowania pracy. W tym przypadku, jądro Linux ma szczególne miejsce wśród wszystkich innych aplikacji. Na niej zależy możliwość systemów GNU / Linux na różnych platformach sprzętowych i poziomu wsparcia dla różnych urządzeń, więc jego charakterystyka procesu rozwoju mogą w pewnym stopniu służyć jako wskaźnik dla całego systemu GNU / Linux.

Linux Foundation przeprowadziła badania [2] , która obejmuje trzy lata rozwijających jądro (wersja 6.2.11 do wersji 2.6.24) i skupia się na cechach, takich jak częstotliwość wydań oraz zmiany rozmiaru kodu źródłowego jądra, a co najważniejsze, pozwala zorientować się, tych, którzy ostatecznie rozwijać jądro Linux.

Statystyki pokazują, że średnio, każde nowe wydanie wychodzi każde ziarno 2,5 - 3 miesiące (60 - 110 dni). Przede wszystkim wynika to z wybranego 2005 modelu rozwoju, którego celem jest zminimalizowanie długość przerw między rozwojem nowych funkcji, zmniejszając potrzebę dla twórców dystrybucji modyfikacji jądra i wspieranie powstawania nowych urządzeń oraz włączenia ich w jądrze.

Liczba plastrów (Patch) wykonane na jądro ma tendencję wzrostową. Zmniejszenie te dwie cechy razem, możemy zauważyć, że średnio poświęca się plastra podstawowej 2,83 za godzinę, podczas gdy w kodzie jądra są dodawane codziennie ponad 3 tys. Linii i ponad 1,4 tys. Linie zmodyfikowane. Liczba programistów, którzy uczestniczyli w wydaniu wersji 2.6.24, ponad dwukrotnie przekroczyła liczbę dla wersji 6.2.11 i wyniosła 1,057 osób.

W tym przypadku jednak tylko 10 najlepszych deweloperów zgromadziła prawie 15% ze zmianami oraz 30 czołowych deweloperów - 30%. To nie znaczy, że popularne w niektórych kręgach zrozumienia Linux jako system, opracowany przez amatorów poprawne. Pomimo faktu, że nie wszystkie firmy zaangażowane w wolnym oprogramowaniu, istnieje potrzeba, aby dokonać zmian w rdzeniu, liczba osób zaangażowanych w jej rozwój, jest coraz większa. Cztery największe firmy deweloperskie jądra - Red Hat, Novell, IBM i Intel - dokonały ponad 32% w trakcie badania dokonane zmiany oraz całkowity procent zmian jądra wykonaną przez programistów pracujących w firmie, więcej niż 70%.

Co więcej, wśród firm zaangażowanych w rozwój jądra, wydany kilka głównych grup do udziału w rozwoju:

  • W grupie firm, w tym IBM, Intel, HP, SGI, MIPS i innych, który skupia się głównie na wsparciu Linux na własny sprzęt.
  • Dystrybutorzy - takich jak Red Hat, Novell, MontaVista - mające na celu dodanie do funkcji podstawowych, na których istnieje zapotrzebowanie wśród użytkowników, które zwiększają konkurencyjność dystrybucji jako produktów końcowych.
  • Firmy takie jak Sony, Nokia, Samsung, Google pracują nad poprawą rdzeń systemów opartych na jądrze Linux w swoich urządzeniach.

Firmy najbardziej aktywnie zaangażowany w finalizacji jądra
Nazwa firmyliczba zmian% Całkowitej zmiany
prywatni użytkownicy11,59413,9%
Nazwa nie jest określony10,80312,9%
czerwony kapelusz9,35111,2%
Novell7,3858,9%
IBM69528,3%
Intel33884,1%
Linux Foundation21602,6%
Konsultant20552,5%
SGI16492,0%
MIPS Technologies13411,6%
Wyrocznia11221,3%
MontaVista10101,2%
Google9651,1%
Linutronix8171,0%
HP7650,9%
NetApp7640,9%
SWsoft7620,9%
Renesas Technologia7590,9%
Freescale7300,9%
Astaro7150,9%
akademia6560,8%
Cisco4420,5%
Simtec4370,5%
Linux Networx4340,5%
QLogic3980,5%
Fujitsu3890,5%
Broadcom3850,5%
Analog Devices3580,4%
Mandriva3290,4%
Mellanox2940,4%
Snapgear2850,3%

Zatem studium Linux Foundation możemy stwierdzić, że jądro Linux jest bezprecedensowym przykładem udanej współpracy różnych rozmiarach i wyjściowych firm i indywidualnych twórców. Liczba programistów i dystrybucji ich wkład w rozwój może być, w pewnym sensie, gwarancja stabilności i niezależności rozwoju. To wyraźnie pokazuje korzyści z otwartego modelu rozwoju w ogóle, i gwarancji udzielonych przez programistów i użytkowników końcowych koncepcji wolnego oprogramowania, jak określone w licencji GNU GPL.

Również dostępne użytkownika nowsze wersje 2.6.30 i 6.2.33 ziaren, [3], [4] .

Mobilność [ Ed. | Ed. kod ]

PDA Sharp Zaurus SL-5500, który działa pod Linuksem

Jądro Linux pierwotnie został zaprojektowany dla mikroprocesorów Intel 80386, ale teraz obsługuje znaczną liczbę architektur komputerowych. Linux jest na listę systemów operacyjnych, które działają na największej liczby architektur - od palmtopów iPAQ opartych na ramię mainframe, takich jak IBM System z9. Wyspecjalizowane dystrybucje rozprzestrzenił się daleko mniejszą liczbą architektur.

Prawa autorskie i licencja [ Ed. | Ed. kod ]

Jądro Linux i najbardziej GNU oprogramowanie jest na licencji GNU General Public License (GNU GPL) . GPL wymaga, aby wszelkie zmiany wprowadzone do kodu źródłowego oprogramowania, również miał taką samą licencję. W roku 1997 Linus Torvalds powiedział, że „uwolnienie Linux GPL, prawdopodobnie najlepszą rzeczą robiłem” . Inne programy mogą korzystać z innych licencji, wiele bibliotek użyć GNU Lesser General Public License (LGPL) - liberalną wersję GPL, a X Window System korzysta z licencji MIT.

Marka Linux [ Ed. | Ed. kod ]

W Stanach Zjednoczonych, nazwę Linux jest zarejestrowanym znakiem towarowym należącym do Linusa Torvaldsa. Po pierwsze, nie to nie jest rejestrowane, ale 15 sierpnia 1994 William R. Krzyż Junior Przypadki zarejestrowanym znakiem towarowym Linux , a następnie zażądał tantiemy z dystrybutorów Linuksa. W 1996 Torvalds i niektóre organizacje złożyła pozew z żądaniem przeniesienia prawa do znaku towarowego Torvaldsa, a w 1997 roku konflikt został rozwiązany na jego korzyść.

Dzięki licencji znaku towarowego aktualnie pracuje Linux Mark Institute. Torvalds powiedział, że otrzymał prawa do znaku towarowego wyłącznie w celu zapobiegania ktoś popyt na jego wykorzystanie pieniędzy, ale był „wciśnięty” przez producentów w Stanach Zjednoczonych. W rezultacie, LMI wysłał szereg listów do sprzedawców dystrybucyjnych na „żądanie” kolekcji zapłacić gotówką i dał szereg firm.

Bezpieczeństwo Linux [ Ed. | Ed. kod ]

Założona w 2007 roku, konsorcjum Linux Foundation chroni Linux poprzez wspieranie głównych twórców systemu operacyjnego i świadczenie usług prawnych. Linux Foundation zarządza znaku towarowego «» Linux i zapewnia programistom prawnej ochrony własności intelektualnej poprzez takie projekty jak Open Source jako stan techniki, fotografia Patent Projekt i sponsoring w Linux Legal Defense Fund.

2005 IBM, Novell, Philips, Red Hat i Sony założył firmę Open Invention Network, w skrócie OIN (Ukr. Otwarte wynalazki komunikacyjne ) dla portfela patentów, które mogłyby zostać wykorzystane do ochrony ekosystemu Linux z zastrzeżeniami patentowymi. Ten portfel patentów OIN wykorzystywane przez wszystkich członków na zasadach wolnej licencji. Późniejsze założycieli dołączył posiadaczy patentów NEC i Google. W 2007 roku, firma Oracle licencjonowanych patentów OIN, tym samym zgadzając się nie używać patentów przeciwko środowisku opartym na GNU / Linux, w tym ich konkurentów MySQL oraz PostgreSQL, w przypadku gdy są one zaangażowane w strukturze GNU / Linux.

W 2011 roku Open Invention Network ogłosił przejście na rękach liczby patentów związanych z wczesnym rozwoju organizacji WebMate Fundacji. [5] [6] W patencie wyróżniona jedną z pierwszych wzmianek o technologii tworzenia dynamicznych treści WWW, który przewidział powstanie systemów, takich jak ASP, JSP firmy Microsoft z Sun / Oracle i PHP.

Język [ wyd. | Ed. kod ]

W 1992 Torvalds wyjaśnił, jak wypowiada słowo Linux:

"„Li” jest widoczne z krótkim [nadmiar enancjomeryczny] dźwięku porównanie drukować, minimalne itd. „Nux” jest krótki, nie dyftong jak Put {IPA / ʊ /}. Jest to częściowo spowodowane Minix: Linux właśnie nazywam pracę dla rzeczy, a jak napisałem go zastąpić MINIX w moim systemie, wynik jest co to jest ... minix Linusa stał linux."

- Linus Torvalds, comp.os.linux dyskusyjna

Oprogramowanie [ Ed. | Ed. kod ]

Historycznie rzecz biorąc, że Linux był używany głównie jako system operacyjny serwera, ale niski koszt, wysoka elastyczność i wiele innych otrzymanych odziedziczony korzyści UNIX sprawiają, że doskonale nadaje się do szerokiej gamy zastosowań.

Niski koszt i wysoka elastyczność ułatwia korzystanie z systemu Linux w systemach wbudowanych, takich jak telefony komórkowe, PDA i inne podręczne urządzenie. Linux stał się konkurentem w tej arenie autorskiego systemu operacyjnego Symbian, który jest wykorzystywany w milionach telefonów komórkowych, a to doskonała alternatywa dla liderów rynku Windows CE i Palm OS. Popularna TiVo cyfrowy dekoder wideo przy użyciu lekko zmodyfikowaną wersję systemu Linux. Niektóre firewalle i routery, w tym produkcji kilku modeli Linksys, również z systemem Linux.

Linux jest coraz częściej stosowane w superkomputerach. Na liście 500 najpotężniejszych komputerów na świecie w 2005 roku 371 (74,2%) były systemem Linux, a także 1 i 2 miejsca w tej liście, a 7 z pierwszych dziesięciu miejscach.

Konsola do gier PlayStation 3 zazwyczaj działa pod Linuksem. Sony już wcześniej wydała PS2 Linux dla PlayStation 2. Te twórcy gier takich jak Atari i id Software, produkty dla systemu operacyjnego Linux. Linux Game Publishing zaangażowany również w grach przeniesienie z systemu Microsoft Windows do Linuksa.

Laptop za 100 $ projekt, którego celem jest zapewnienie wszystkim dzieciom z komputerów, aby pomóc w rozwoju biednych i zacofanych narodów używa Linuksa jako podstawowy system operacyjny.

Rozdzielnia [ red. | czerwony. kod ]

Więcej: dystrybucje Linuksa

Jądro Linux jest powszechnie stosowany jako część dystrybucji Linuksa. skompilowany one Niektórzy entuzjaści, społeczności i przedsiębiorstw. Co do zasady, ich kompozycja zawiera dodatkowy system i instalatora niestandardowego oprogramowania oraz wbudowany menedżer instalacji i aktualizacji oprogramowania. Rozkłady są tworzone dla różnych potrzeb:

  • wesprzeć konkretną architekturę,
  • lokalizacja dla określonego regionu lub języka,
  • dla osadzonych w czasie rzeczywistym -

wielu z nich celowo zawierają jedynie wolne oprogramowanie. Obecnie ponad 300 dystrybucje stale rozwijający wśród nich około 15 popularnością - do uniwersalnego zastosowania.

Typowe dystrybucje dla uniwersalnego zastosowania obejmują Linux Kernel, narzędzi i bibliotek GNU, powłoki poleceń, X Window System, środowiska graficznego KDE czy GNOME jak z setek lub nawet tysięcy paczek z różnych programów (od prostych edytorach tekstowych do zestawów oprogramowanie biurowe, kompilatory i instrumenty naukowe).

Użyj pracy [ Ed. | Ed. kod ]

Środowisko GNOME w Ubuntu

Wysokie poziomy dostępu do wewnętrznego mechanizmu Linux przyczyniło się do powstania mitu o czysto technicznym systemu orientacji, ponieważ użytkownicy często utożsamiany z hakerami. Linux i inne projekty oprogramowania open source są często krytykowane za słabe wysiłki, aby stać się łatwiejsze w użyciu.

W ubiegłym roku ten stereotyp szybko obalona. Teraz Linux mogą korzystać z GUI, nie gorzej niż przy użyciu innych popularnych systemów operacyjnych (ten sam Microsoft Windows i MacOS X). Mimo że Linux nie stworzył w pełni funkcjonalne analogi jakiegoś specjalistycznego oprogramowania, ale generalnie sytuacja jest dość dobra, a najbardziej odpowiednie programy występują w obfitości. Wiele firm zaczyna uwalniać swoje produkty dla systemu Linux, a także specjalnie zaprojektowane emulatory i środowisko uruchomieniowe (np Wine) używa przeznaczony dla oprogramowania Microsoft Windows w Linuksie.

UNIX'ivske Linux korzeń oznaczać, że pomimo dużej liczby narzędzi graficznych do konfiguracji systemu, prostych plików tekstowych i nadal wykorzystywane do tych ustawień, a dostęp do nich za zgodą administratora może uzyskać nikomu.

Udział w rynku [ Ed. | Ed. kod ]

Według firmy badawczej IDC rynek w 2004 roku, 25% serwerów i 2,8% komputerów osobistych z systemem Linux OS. Analitycy przypisują ten sukces dla jej bezpieczeństwa, niezawodności i niskich kosztów, w połączeniu ze swobodą modyfikować kod źródłowy systemu. Główne czynniki utrudniające dalszy rozwój Linuksa jest brak wsparcia twórców OS niektórych sprzętowych i znaczna ilość oprogramowania opracowany dla systemu Microsoft Windows, który został użyty do dużej liczby osób (głównie do gier i oprogramowania).

W 2008 roku Steve Ballmer (Microsoft) szacuje 60% udziału w systemie operacyjnym serwera systemy GNU / Linux na świecie [7] .

Linux na rynku gwałtownie rośnie zarówno dla serwerów i komputerów osobistych, a według niektórych szacunków, w 2012 roku wyniesie prawie 7,7 [8] mld.

Począwszy od czerwca 2012 roku Linux jako system operacyjny jest niemal całkowicie zdominowany przez superkomputery. 500 najbardziej wydajne wykorzystanie 92,4% [9], tego konkretnego systemu operacyjnego.

Montaż [ wyd. | Ed. kod ]

Najpopularniejszą metodą zainstalowania Linuksa na komputerze jest uruchamiany z dysku CD lub DVD-ROM zawierający instalator i gotowy do zainstalowania oprogramowania. Płyta ta może być spalane z pobranego obrazu ISO nabytego (według cen niemal symbolicznym) lub podjąć każdy.

Podobnie jak w przypadku serwerów, komputerów z zainstalowanymi dystrybucji Linuksa dystrybuowanych przez takie firmy jak Hewlett-Packard i Dell, choć głównie dla swoich klientów biznesowych.

Alternatywą dla standardowej instalacji systemu operacyjnego jest możliwość zainstalowania go na cienkim kliencie. Metoda ta jest ładowany z systemem operacyjnym sieci komputerowej. Zmniejszy to oszacowanie jednego stanowiska komputerowego.

W urządzeń wbudowanych Linux zwykle w firmware i nie zawsze dostępne dla zmian.

Programowanie Linux [ Ed. | Ed. kod ]

Eclipse 3.3 в Ubuntu

GNU Compiler Collection (GCC) jest standardowym Rodzina kompilatorów dla większości systemów Linux. Ponadto, GCC zapewnia frontend dla C, C ++ i Java. Większość dystrybucji zawierać ustalony Interpreters Perl, Python i inne języki stsenariynyh.

Istnieje kilka środowisko programistyczne (IDE): KDevelop, Eclipse, NetBeans, Lazarus i inni; dostępne również i tradycyjne edytory tekstu takie jak Emacs i vim lub zbudowanych w edytorze Commandera.

Dwa wspólne biblioteki projektowanie elementów wizualnych do tworzenia graficznych interfejsów użytkownika jest Qt i GTK +.

Wsparcie techniczne [ ed. | Ed. kod ]

wsparcie techniczne świadczone przez innych użytkowników systemu Linux, zazwyczaj forach internetowych, list, list dyskusyjnych, grup dyskusyjnych i innych.

Model biznesowy wielu komercyjnych dystrybucji Linuksa dużej mierze zależy od udzielania wsparcia zawodowego. Niektóre firmy oferują specjalne wersje swoich rozkładów, które obejmują pakiety własnościowe i narzędzia do łatwej instalacji i konfiguracji systemu.

Vinoski [ red. | czerwony. kod ]

  1. Top System operacyjny Podziel Trend (англ).
  2. Linux Kernel Development (Report, kwiecień 2008) (w języku angielskim).
  3. ↑ Ilość //lwn.net/Articles/334721/ (ang.)
  4. ↑ Ilość //lwn.net/Articles/373405/ (ang.)
  5. Open Invention Network ogłasza Zakup Podstawowych Patentowym portfela i przyznaje Fred Dufresne jako kluczowy Distinguished Inventor (англ).
  6. Ramiona skrzyżowane OIN patentów związanych z rozwojem internetowych skryptów (dorastanie).
  7. Ballmer wciąż szukają odpowiedzi na Google (англ).
  8. ↑ Ilość //www.securitylab.ru/news/348549.php?page=user&id=47169 Do 2012 Linux potroi rynku (dorastanie).
  9. ↑ Ilość //i.top500.org/stats TOP500 Statystyki (англ).

See. i [ wyd. | Ed. kod ]

  • Lista dystrybucji Linuksa
  • Lista systemów operacyjnych
  • Porównanie dystrybucji Linuksa
  • Statystyki popularne systemy operacyjne
  • Rewolucyjny system operacyjny (film 2001)
  • Code (film 2001)

Odniesienia [ wyd. | Ed. kod ]

  • Witryna jądra Linux (w języku angielskim).
  • Główna strona Linux (w języku angielskim).
  • The Linux Documentation Project (англ).
    • Lista HOWTO według kategorii

Ukraińskie zasoby [ ed. | Ed. kod ]

  • Ukraińska Linux User Group.
  • UALinux


Źródło https://uk.wikipedia.org/w/index.php?title=Linux&oldid=22688275

Wybierz swój język

polskiangielski niemiecki hiszpański francuski włoski portugalski turecki arabski ukraiński szwedzki węgierski bułgarski estoński Chiński (uproszczony) wietnamski rumuński tajski słoweński słowacki serbski malajski norweski łotewski litewski koreański japoński indonezyjski hinduski hebrajski fiński grecki holenderski Czech duński chorwacki Chiński (tradycyjny) Filipińska urdu Azeybardzhansky ormiański Białoruski bengalski gruziński kazachski Kataloński mongolski rosyjski Tadzhitsky Tamil'skij telugu Uzbetsky


Czytaj więcej:   Test z otoczeniem zmienna PHP

Dodaj komentarz

Twój e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *