Linux ve Windows çekirdeği [kapalı]


9

Linux ve Windows 7'de bir arkadaşım üzerinde çalışıyorum.

NetBeans, Eclipse, pgAdmin ve diğer programların açılma hızına hayran kaldım, Linux'ta pencerelerden çok daha hızlı.

Zaman yükü farkına neden olan Linux ve Windows çekirdeği arasındaki temel fark nedir?

Her iki makine de aynı donanım yapılandırmasına sahiptir.


1
Komik, deneyimim tam tersi - tüm bilgisayarlarımda, Windows'daki programlar Linux'tan çok daha hızlı yüklenme eğilimindedir (özellikle Windows 7 altında, geçmiş kullanıma göre hangi programları açacağınızı tahmin eder ve bunları belleğe önceden yükler ) . Belki onun Windows makinesi bloatware ile dolu? Şirket yalnızca virüsten koruma yazılımı mı? Linux'u aynı makinede çalıştırmayı denediniz mi (sabit sürücüler arızası yükleme sürelerini büyük ölçüde etkiler) .
BlueRaja - Danny Pflughoeft

@ BlueRaja-DannyPflughoeft Yorumunuz için teşekkürler. Soruda söylediğim gibi, her iki makine de aynı donanım yapılandırmasına sahip, her ikisi de Windows 7 ile geldi, ancak bir Linux kullanıcısıyım ve hayır, pencereleri
şişmemiş

1
@ BlueRaja-DannyPflughoeft Bir Windows için bir antivirüs kurulduktan sonra çok daha laggish hale ilginç bir şey buldum. Yani, aslında, bir bloatware'e gerek yok, sadece bir antivirüs yükleyin. GNU / Linux bir taneye ihtiyaç duymuyor (en azından henüz) ve bu küçük şey de çok daha fazla performans verdi.
Hi-Angel

Yanıtlar:


8

Bu sadece benim tahminim, ama bence her şey derlendiğinde (bilgisayarların yürütebileceği ikili verilere dönüştürüldüğünde), artık kaynak kodunu göremeyen bir şirket için çalıştığınızda, çok daha tembel olma eğilimindesiniz, farketmez olarak sürece çalışır olarak .
Linux açık kaynak kodludur, bu yüzden herkes isterse kaynak kodunu görebilir. Eğer tembelseniz ve sistemi ya da benzeri şeyleri gerçekten yavaşlatacak gerçekten berbat bir kod parçası yazıyorsanız, herkesin gördüğü gibi itibarınız gider. Geliştiriciler ve kullanıcılar. Açık souyce geliştiricilerinin daha az tembel olma eğiliminin nedenlerinden biri olduğunu düşünüyorum.

Ayrıca, Windows çekirdeğinin çekirdeğinin, bugün olduğu gibi olma niyetiyle hiçbir zaman yazılmadığı da bir gerçektir (ikisi de Linux değildi, ancak eski bitleri optimize etmek için çaba harcadılar) ve geliştiriciler her zaman ekledi ve ekledi kod o kadar şifreli oluncaya kadar, artık kimse bundan bir şey çıkaramazdı. Dağınık kodun iki özelliği, genellikle çok fazla yedeklilik olması ve iki kod parçası arasındaki bağlantıları artık çok kolay görmemenizdir, bu da onu optimize etmeye bile başlayamazsınız. Sadece bir örnek (şifreli değil);

for (int i = 0; i < 20; i++)
{
    if (x == y)
    {
        if (z <= u)
        {
            goto banana;
        }
    }
}

Yukarıdaki örnek çok daha verimli bir şekilde yapılabilir;

for (int i = 0; (i < 20) && (x == y) && (z <= u); i++)
{
    banana ();
}

1
Programcılar alanında inanıyorum ki, mevcut fikir birliği derleyicilerde tembel ve / veya özensiz kodlamanın iyi bir şekilde optimize edilmiş olduğudur. Ancak derleyiciler, orada olabilecek ve amacınızla ilgili şişkinlik ve mirasa yardımcı olamaz.
Chris K

4
Bu kod örneklerinin her ikisi de neredeyse aynı şeyi derleyecektir (eksi fonksiyon çağrısı ve goto) ...
BlueRaja - Danny Pflughoeft 14:12

@ BlueRaja-DannyPflughoeft Biliyorum, ama açıklamak için basit bir örneğe ihtiyacım vardı.
RobinJ

5

Henüz bahsedilmeyen bir diğer büyük Linux'un daha iyi dosya sistemlerine sahip olmasıdır. NTFS'nin küçük dosyalarla performansı o kadar da iyi değil - ext3 daha iyi ve ext4 çok daha iyi. Başka bir soruda neden ilginç bazı spekülasyonlar var .

Bir programı açarken, başlangıç ​​zamanının önemli bir kısmı diskten bir sürü küçük dosya yüklüyor, bu yüzden bunu hızlı bir şekilde yapan bir dosya sistemine sahip olmak çok önemlidir.


4

Bu sadece benim görüşüm ama GNU / Linux sistemlerinin Windows'dan daha hızlı olmasının ve hepsinin çekirdekle ilgili olmasının çeşitli nedenleri olduğunu düşünüyorum:

  • Açıkçası RobinJ'in açıkladığı neden var, yazılım açık kaynaksa kodun daha verimli yazılma eğiliminde olduğu oldukça açık.
  • Linux çok optimize edilmiş bileşenleri kullanır, örneğin CPU kullanımını en üst düzeye çıkarma eğiliminde olan çok optimize edilmiş bir zamanlayıcı kullanır.
  • Linux sistemleri bellek parçalanmasından daha az zarar görür
  • Linux sistemleri ana belleği daha iyi kullanır ve genellikle büyük miktarda önbellek kullanma eğilimindedir, Windows sistemleri sanal belleği büyük ölçüde kullanma eğilimindedir
  • Linux çekirdeği sürekli olarak güncellenir ve işe yaramaz parçalar genellikle kaldırılır, ancak Linus Torvalds, Linux çekirdeğinin "çok büyük ve şişirilmiş" olduğunu söyledi, ancak NT çekirdeğine yönelik güncellemeler genellikle mevcut olanların üzerine inşa edildi.

3

Bence çekirdek tek başına cevap değildir. Windows 7, Windows ilk kez kabul edilebilir olduğunu düşündüğüm kadar duyarlıydı.

Hız farkının daha fazlasının @ RobinJ'nin yazılım mühendisliği hakkındaki düşüncelerine bağlı olduğuna inanıyorum. Windows'daki her şey * bir çeşit Microsoft çerçevesi veya diğeri aracılığıyla MSDN üzerine kurulmuştur. Bu aslında Big Business'ın Microsoft'u nasıl sevdiği ile ilgilidir; Microsoft tamamen farklı programların / paketlerin / teknolojilerin birbirleriyle konuşmasına yardımcı olmakla ilgilidir.

İleri ... geliştiricilerin temelleri kapsamasını (ve tekerleği yeniden icat etmemesini) kolaylaştırmak için Microsoft, üreticilerin Microsoft Visual C ++ 2008 Yeniden Dağıtılabilir gibi önceden derlenmiş kitaplıkları paketlemesine ve / veya bunlara gereksinim duymasına izin verir. Veya .Net4.0, MSSQL 2005, ad nauseum. Geliştiricilerin kullanabileceği ve geliştirebileceği on yıllık bir paket var ve son kullanıcıların yeni bilgisayarları kullanmak için Windows bilgisayarlarına yüklemelerini gerektiriyor.

Bu nedenle Zyzzyx programının yüklenmesi ve çalışması için bir veya daha fazla MSDN yeniden dağıtılabilir kütüphanesinin mevcut ve çalışıyor olması gerekir. Bu kütüphaneler, programların işletim sistemi ile nasıl etkileşime gireceğini belirler.

Onu kaynatmak için, Window'un onlarca yazılım boyunca kasıtlı uyumluluğunun onu karşılaştırılabilir bir linux sisteminden daha şişkin ve bazen daha yavaş hale getirdiğine inanıyorum. Ayrıca windows için görsel yazılım geliştirdiğimi ancak linux için değil ... GTK, Qt, Py, herhangi bir şey için geliştirmediğimi unutmayın, bu nedenle linux'un daha az şişkin olduğu hakkındaki varsayımlarım sadece budur.

ek olarak düzenlenmiştir: FOSS yazılımı sürekli olarak insanları geliştirir, bu nedenle GTK-2005 ve GTK-2008'in aynı bilgisayarda olması yerine GTK zaman geçtikçe iyileşir, Microsoft bunu her zaman yapar.

* - tamam istisnalar var, eminim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.