Önleyici çekirdek yalnızca Büyük Çekirdek Kilidi olmadığı anlamına gelir .
Linux, ilk anından beri önleyici çoklu görevlere sahipti (yani kullanıcı kodu öngörüldü) (bildiğim kadarıyla Linus tarafından funet ftp sunucusuna yüklenen ilk Linux 0.0.1 zaten önleyici çoklu görevdi). Örneğin, birden fazla sıkıştırma veya derleme işlemi gerçekleştirdiyseniz, bunlar ilk andan itibaren paralel olarak yürütülür.
Aksine - o sırada - yaygın olarak kullanılan Win31. Win31'de, bir görev CPU'yu "çekirdekten" aldıysa, varsayılan olarak işletim sistemine (veya diğer görevlere) ne zaman kontrol verileceğini belirlemek kendi sorumluluğundaydı. Bir işlemin bu özellik için özel bir desteği yoksa (bu da ek programlama çalışması gerektirir), yürütülürken diğer tüm görevler askıya alındı. Win31'e entegre edilen temel uygulamaların çoğu bile çalıştı.
Önleyici çoklu görev, görevlerin CPU'yu istedikleri gibi tahsis etmenin bir yolu olmadığı anlamına gelir. Bunun yerine, zaman dilimlerinin süresi dolarsa, çekirdek CPU'yu onlardan alır. Bu nedenle, önleyici işletim sistemlerinde, kötü yazılmış veya kötü çalışan bir işlem, işletim sistemini donduramaz veya diğer işlemlerin çalışmasını engelleyemez. Linux her zaman kullanıcı alanı süreçleri için önleyici olmuştur.
Büyük Çekirdek Kilidi, bazı durumlarda, çekirdek boşluğunda , yine de bazı kilitlerin olabileceği ve diğer işlemlerin korumalı kodu çalıştırmasını önleyeceği anlamına gelir . Örneğin, olamazdı monte aynı anda birden fazla dosya sistemlerini - montaj şeyler Big Kernel Lock ayırmak için gerekli çünkü birden monte komutları verdiyse, yine, arka arkaya idam edildi.
Çekirdeği önleyici hale getirmek, bu büyük çekirdek kilidini ortadan kaldırmak için gerekliydi, yani aynı anda çalışabilmek için bağ ve diğer görevleri yapmak. Bu büyük bir işti.
Tarihsel olarak, bu SMP'nin (çoklu CPU desteği) artan desteğiyle gerçekten acil hale getirildi. İlk kez, gerçekten çok işlemcili anakartlar vardı. Daha sonra birden fazla CPU ("çekirdek") tek bir yongaya entegre edildi, bugün gerçekten çok CPU'lu ana kartlar zaten nadir (tipik olarak pahalı sunucu sistemlerinde). Ayrıca gerçekten tek çekirdekli sistemler (tek çekirdekli tek bir işlemcinin olduğu yerlerde) nadirdir.
Dolayısıyla, sorunuzun cevabı "önleyici olmamanın nedeni neydi" değil, çünkü her zaman önleyici olmuştur. Asıl soru, önleyici çekirdek uygulamasını gerçekten gerekli kılan şey . Bunun cevabı şudur: çok işlemcili, çok çekirdekli sistemlerin artan oranı.