System Linux składa się z trzech głównych fragmentów kodu, zgodnych z większością tradycyjnych implementacji systemu UNIX. Są to:
Jądro
Jest odpowiedzialne za realizację wszystkich istotnych abstrakcji systemu operacyjnego, łącznie z takimi elementami, jak pamięć wirtualna i procesy.
Biblioteki systemowe
Definiują standardowy zbiór funkcji, za pomocą których aplikacje mogą współdziałać z jądrem i które realizują wiele właściwości systemu operacyjnego nie wymagających pełnych przywilejów kodu jądra.
Pomoce systemowe
Są programami, które wykonują osobne, specjalizowane zadania administracyjne. Z niektórych pomocy systemowych można korzystać tylko jeden raz w celu zapoczątkowania i skonfigurowania pewnych elementów systemu; inne (w terminologii UNIXowej nazywane demonami) mogą działać nieustannie, obsługując takie zadania, jak odpowiadanie na sygnały nadchodzące z sieci, przyjmowanie z terminali zamówień na rozpoczęcie sesji lub uaktualnianie plików z dziennikami zdarzeń systemowych.