İşletim sistemlerinin tanımlayıcı özelliği, donanım, yazılım ve bazı durumlarda kullanıcı arabirimi arasında sağladığı bağlantıdır. Bilgisayarların kullanılması için bir işletim sistemi gerekir.
Tüm modern bilgisayarların denetlenmesi için bazı yazılımlar gerekir ve işletim sistemi mevcut en temel yazılımdır. Küçük cihazlarda kullanılan işletim sistemleri nispeten küçük ve basit olabilirken, Windows, OSX ve Linux gibi popüler işletim sistemleri, çok çeşitli cihazlar ve bir kullanıcı arabirimi için sürücüler sağlar.
Bir işletim sisteminin çekirdek kısmı çekirdeğidir. Günümüzde monolitik çekirdekler en popüler olanlarıdır. Bu çekirdekler, farklı bilgisayar işlemlerinin birbirlerine mesaj göndermesi için bir yol sağlar ve program bilgilerini depolayan RAM'i yönetir. Çekirdeklerin çoğu ayrıca monitörleri, giriş aygıtlarını, disk sürücülerini ve diğer çevre birimlerini denetlemek için aygıt sürücüleri sağlar.
Geçmişte, yazılım yalnızca belirli bir işletim sistemini hedefleyebiliyordu ve farklı platformlarda çalışması için programların ayarlanması ve derlenmesi gerekiyordu. Bununla birlikte, modern programlar bir dizi desteklenen platformda çalışacak şekilde tasarlanmıştır. Java, bu trendi başlatırken büyük ölçüde itibar kazanıyor, ancak Python, Ruby ve diğer yüksek seviye programlama platformları, programları yeni sistemlere taşımayı kolaylaştırıyor.