Interfejs graficzny
Graficzny interfejs użytkownika GUI nie jest w Linuksie integralną częścią systemu operacyjnego, lecz dodatkowym zbiorem programów. W zależności od stopnia zaawansowania i integracji użytych rozwiązań, dostępne GUI możemy podzielić na małe menedżery okien oraz duże środowiska graficzne.
Małe menedżery okien
Tradycyjne GUI dla Linuksa bazuje na osobnym menedżerze okien, takim jak Fluxbox, FVWM, Enlightenment, lub Window Maker i zestawie najróżniejszych aplikacji, uruchamianych za jego pomocą. Menedżer okien pozwala na kontrolowanie położenia i wyglądu okien indywidualnych aplikacji oraz na interakcję z X Window System.
Wadą niezależnych menedżerów okien jest trudność w uzyskaniu spójnych i jednolitych interfejsów różnych aplikacji. Przedstawione zrzuty ekranów przedstawiają XMMS, RealPlayer, Mozilla Firefox, xterm, gaim i Konqueror; każdy z nich prezentuje się inaczej, ponadto, aplikacje te korzystają z odrębnych skrótów klawiszowych, inaczej organizują swoje menu, posiadają inne mechanizmy kopiowania i wklejania. Nawet jeśli każda aplikacja z osobna jest dobrze dopracowana, to używanie ich wszystkich w grupie jest utrudnione, gdyż zachowania, których nauczymy się w jednej aplikacji zazwyczaj dają się zastosować tylko w niej.
Zaletą korzystania z niezależnego menedżera okien jest prostota (z punktu widzenia programistów i doświadczonych użytkowników) oraz szybkość i niezawodność ich działania. Ponadto w porównaniu z dużymi środowiskami graficznymi takimi jak GNOME lub KDE, niezależne menedżery w mniejszym stopniu angażują zasoby takie jak procesor, pamięć i miejsce na dysku twardym. Użytkownicy, którzy preferują pracę w terminalu, chętnie pracują w minimalistycznych środowiskach graficznych; menedżer okien, sam w sobie, ma im przede wszystkim zapewnić możliwość otwierania okien emulatorów terminali komputerowych.
Duże środowiska graficzne
Używanie małych menedżerów okien staje się coraz mniej popularne wraz ze wzrostem większych środowisk graficznych. Są to zintegrowane sposoby na wygodną pracę, które starają się zapewnić interfejs równie łatwy w obsłudze jak ten z Mac OS X lub Microsoft Windows. Łączą one menedżer okien z pakietem standardowych aplikacji, które są łatwe w obsłudze nawet z punktu widzenia początkujących użytkowników.
Jednym z pierwszych rozpowszechnionych środowisk graficznych było CDE, które nie stało się popularne na Linuksie ze względu na koszty i ograniczenia licencyjne. W 1996 powstało KDE, a po nim, w 1997 roku, GNOME. Xfce jest trochę mniejszym projektem, który również powstał w 1997 i skupia się na szybkości i możliwości konfiguracji.
Obecnie rozwiązaniami dominującymi są GNOME i KDE, zazwyczaj instaluje się je standardowo na systemach linuksowych. Każde z nich oferuje:
-dla programistów m.in. zestaw standardowych API oraz środowisko programistyczne.
- dostępność w wielu językach i wsparcie dla tłumaczy
- kompletne środowisko graficzne z zestawem potrzebnych aplikacji, takich jak menedżer plików, przeglądarka internetowa, odtwarzacz multimediów, klient poczty elektronicznej, książka adresowa, przeglądarka dokumentów PDF, menedżer fotografii
-możliwość dostosowania systemu do swoich potrzeb.Mimo iż oba te środowiska graficzne mają podobne cele, radzą sobie z nimi całkiem inaczej. KDE stara się, aby aplikacje były jak najbardziej konfigurowalne, aby można było w nie ingerować i aby mogły ze sobą w łatwy sposób kooperować. GNOME z drugiej strony, koncentrując się na kluczowych zadaniach (zgodnie z filozofią making things just work), stara się, aby całość była jak najprostsza w obsłudze. Każde z tych środowisk przyciąga inny rodzaj użytkowników i tworzy inną społeczność deweloperów.
Na początku XXI wieku oba te środowiska są już dojrzałe. Projekty Appeal i ToPaZ skupiają się na opracowywaniu nowych możliwości dla kolejnych edycji KDE i GNOME.