Serwer WWW TUX

Serwer sieciowy TUX jest nieobsługiwanym serwerem sieciowym w jądrze dla systemu Linux , licencjonowanym na licencji GNU General Public License (GPL). Opiekował się nim Ingo Molnár .

Ograniczało się to do obsługi statycznych stron internetowych i koordynacji między modułami przestrzeni jądra , modułami przestrzeni użytkownika i zwykłymi demonami serwera WWW przestrzeni użytkownika , które dostarczają dynamiczną zawartość. Zwykłe serwery sieciowe przestrzeni użytkownika nie muszą być w żaden sposób zmieniane, aby TUX mógł z nimi koordynować. Jednak kod przestrzeni użytkownika musi używać nowego interfejsu opartego na tux(2) .

Główne różnice między TUX a innymi serwerami WWW obejmują:

  • TUX działa częściowo w dostosowanej wersji jądra Linuksa , a częściowo jako demon przestrzeni użytkownika.
  • Dzięki odpowiedniej karcie sieciowej , TUX umożliwia scatter-gromadzenie DMA z pamięci podręcznej strony bezpośrednio do sieci.
  • TUX może obsługiwać tylko statyczne strony internetowe.

Chociaż możliwość obsługi tylko statycznych stron internetowych może być postrzegana jako istotna wada, TUX ma jedną istotną zaletę: jest w stanie obsługiwać strony szybciej niż tradycyjne serwery WWW. Wynika to w dużej mierze z jego miejsca bezpośrednio w jądrze, gdzie może poprawić wydajność, korzystając z udogodnień niedostępnych dla tradycyjnych serwerów WWW, które działają poza jądrem. Oznacza to jednak również, że TUX nie generuje treści dynamicznych. Ponieważ działa w jądrze, taka dynamiczna zawartość nie może korzystać z funkcji, które jądro udostępnia programom w przestrzeni użytkownika, i stwarzałaby ogromne problemy z bezpieczeństwem.

TUX jest w stanie uruchamiać programy CGI w celu dostarczania dynamicznych treści. Jednak CGI ma znaczne ograniczenia wydajności, więc witryna z dużą ilością CGI nie uzyskałaby żadnej przewagi wydajności dzięki użyciu TUX. TUX może również przekierować dowolne żądanie, którego nie może przetworzyć, do tradycyjnego demona serwera sieciowego przestrzeni użytkownika, na przykład Apache lub lighttpd . Dzięki temu TUX może obsługiwać zarówno dynamiczną zawartość, jak i błędy w bezpieczniejszy, szybszy i poprawny sposób RFC .

TUX nigdy nie był integralną częścią oficjalnego jądra Linuksa, chociaż był dostarczany w niektórych dystrybucjach, zwłaszcza Red Hat , SuSE i Fedora . Służył jako stanowisko testowe (i motywator) dla wielu funkcji, które zostały zintegrowane oddzielnie. Jednym z głównych komponentów była natywna biblioteka wątków POSIX , która przy odpowiednich parametrach dostrajania pozwala serwerom sieciowym przestrzeni użytkownika obsługiwać strony internetowe z szybkością bardzo zbliżoną do prędkości serwera sieciowego przestrzeni jądra, takiego jak TUX, ale bez ograniczeń. [ potrzebne źródło ] Twórcy rdzenia jądra argumentowali również, że posiadanie demona HTTP w jądrze jest niebezpieczne. [ potrzebne źródło ] Na przykład powszechny błąd, taki jak przepełnienie bufora w TUX, może dać atakującemu superużytkownikowi kontrolę nad maszyną. Dlatego o wiele bezpieczniej jest trzymać demona HTTP całkowicie w przestrzeni użytkownika, gdzie błąd niekoniecznie daje atakującemu całkowitą kontrolę.

Stan projektu

Stwierdzono, że Tux jest w dużej mierze niepotrzebny, ponieważ nowoczesne jądra i serwery WWW mogą zapewniać podobne korzyści w zakresie szybkości, jak Tux, bez wad w jądrze.

Istnieją inne opcje wysokowydajnych statycznych serwerów WWW w systemie Linux. Nginx znalazł swoją drogę do popularności na imprezach dzięki niezwykle szybkiemu udostępnianiu treści statycznych.

Zobacz też

Linki zewnętrzne