Ядро Linux та Windows [закрито]


9

Я працюю в Linux і є другом у Windows 7.

Я був вражений швидкістю, що NetBeans, Eclipse, pgAdmin та інші програми відкривають набагато більше, насправді, НАБІЛЬШЕ швидше на Linux, ніж на Windows.

Яка основна відмінність Linux та ядра Windows, що спричиняє різницю в навантаженні в часі?

Обидві машини мають точно однакову апаратну конфігурацію.


1
Смішно, мій досвід якраз навпаки - на всіх моїх ПК програми в Windows, як правило, завантажуються набагато швидше, ніж на Linux (особливо в Windows 7, який здогадується, які програми ви відкриєте на основі минулого використання, і попередньо завантажує їх у пам'ять ) . Можливо, його машина Windows сповнена злому? Чи компанія антивірусна тільки для Windows? Ви спробували запустити Linux на одній машині (відмова жорстких дисків різко впливає на завантаження) .
BlueRaja - Danny Pflughoeft

@ BlueRaja-DannyPflughoeft дякую за ваш коментар. Як я вже говорив на запитання, обидві машини мають однакову конфігурацію апаратури, обидві - з Windows 7, але я користувач Linux, і ні, його вікна не роздуті
Gerep

1
@ BlueRaja-DannyPflughoeft Я виявив цікаву річ, що після встановлення антивірусу для Windows він стає набагато більш млявим. Тож насправді немає необхідності в засобах, просто встановіть антивірус. GNU / Linux не потрібен (принаймні поки що) , і ця невелика річ також дала набагато більшу продуктивність.
Привіт-Ангел

Відповіді:


8

Це лише моє здогадування, але я думаю, що коли ви працюєте в компанії, де після того, як все складено (перетворене на двійкові дані, які можуть виконувати комп'ютери), ніхто більше не може бачити вихідний код, ви, як правило, набагато лініші, як це не має значення , поки це працює .
Linux є відкритим кодом, тому кожен може бачити вихідний код, якщо бажає цього зробити. Якщо ви лінуєтесь і пишете справді хитрий фрагмент коду, який дійсно сповільнить систему чи щось подібне, то ваша репутація, як всі щойно бачили. Як розробники, так і користувачі. Я думаю, що це одна з причин, чому розробники відкритих соусів, як правило, менш ліниві.

Також факт, що ядро ​​ядра Windows ніколи не писалося з наміром стати таким, яким воно є сьогодні (ні Linux не було, але вони доклали зусиль для оптимізації старих біт), а розробники просто завжди додавали та додавали на вершині, поки код не був настільки виразним, що ніхто більше не міг щось зробити з цього. Двома властивостями брудного коду є те, що часто надмірність надмірна, і що ви не бачите зв’язків між двома фрагментами коду вже так легко, що дозволяє навіть не намагатися почати його оптимізувати. Просто приклад (не криптовалюта);

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

Наведений вище приклад можна зробити набагато ефективніше;

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

1
Я вважаю, що в області програмістів поточний консенсус полягає в тому, що ліниве та / або неохайне кодування добре оптимізоване в компіляторах. Однак компілятори не можуть допомогти розквітнути і застарілі, які можуть бути там - і пов'язані з вашим наміром.
Кріс К

4
Обидва ці приклади коду майже напевно будуть складені до одного і того ж (мінус функція-виклик проти goto) ...
BlueRaja - Danny Pflughoeft

@ BlueRaja-DannyPflughoeft Я знаю, але мені потрібен був простий приклад, щоб пояснити це.
RobinJ

5

Ще одна велика, про яку ще не було сказано, це те, що Linux має кращі файлові системи. Продуктивність NTFS з невеликими файлами не така вже й велика - ext3 краще, а ext4 - набагато, набагато краще. Є кілька цікавих міркувань, чому в іншому питанні .

Коли ви відкриваєте програму, значна кількість часу запуску завантажує купу крихітних файлів з диска, тому наявність файлової системи, яка робить це швидко, дуже важлива.


4

Це лише моя думка, але я думаю, що існують різні причини того, що системи GNU / Linux швидші, ніж Windows, і не всі стосуються ядра:

  • Очевидно, є причина, пояснена RobinJ, цілком очевидно, що якщо програмне забезпечення є відкритим кодом, код, як правило, пишеться більш ефективно
  • Linux використовує дуже оптимізовані компоненти, наприклад, використовує дуже оптимізований планувальник, який прагне максимально використовувати процесор.
  • Системи Linux менше страждають від фрагментації пам'яті
  • Системи Linux краще використовують основну пам'ять і зазвичай мають тенденцію до масового використання кешу, а натомість системи Windows масово використовують віртуальну пам'ять
  • Ядро Linux постійно оновлюється і непотрібні частини зазвичай видаляються, хоча Лінус Торвальдс заявив, що ядро ​​Linux стає "величезним і роздутим", опозиційні оновлення до ядра NT зазвичай будуються поверх існуючих.

3

Я вважаю, що одне ядро ​​не є відповіддю. Windows 7 вперше Windows виявився достатньо чуйним, що я вважаю прийнятним.

Я вважаю, що більшість диференціальних швидкостей пов'язані з думками @ RobinJ щодо інженерії програмного забезпечення. Все * в Windows побудовано на MSDN через якусь структуру Microsoft чи іншу. Це насправді пов’язано з тим, як великий бізнес любить Microsoft; Майкрософт - це допомагати різним програмам / пакетам / технологіям спілкуватися один з одним.

Далі ... щоб полегшити розробникам покриття основного (і не винаходити колеса) Microsoft дозволяє виробникам створювати та / або вимагати попередньо складених бібліотек, таких як Microsoft Visual C ++ 2008 Redistributable. Або .Net4.0, MSSQL 2005, ad nauseum. Існує щось на зразок десяти років пакетів розробників, які можуть використовувати та надбудовувати і вимагати, щоб кінцеві користувачі встановлювали на своїх комп’ютерах Windows, щоб використовувати нове програмне забезпечення.

Таким чином, для того, щоб програма Zyzzyx завантажувалася і запускалася, одна або кілька бібліотек, що перерозподіляються MSDN, повинні бути присутніми та запущеними. Ці бібліотеки визначають, як програми взаємодіють з ОС.

Для того, щоб знизити це, я б вважав, що навмисна сумісність Window протягом десятиліть програмного забезпечення робить його роздутим і час від часу більш повільним, ніж порівнянна система Linux. Також зауважте, що я розробив візуальне програмне забезпечення для Windows, але не будь-яке для Linux ... не GTK, Qt, Py, нічого, тому мої припущення щодо менш роздутого Linux є лише цим.

відредаговано, щоб додати: крім того, програмне забезпечення FOSS має людей, які його постійно вдосконалюють, так що GTK буде покращуватися в міру проходження часу, а не того, як GTK-2005 і GTK-2008 знаходяться на одному комп’ютері, в той час як Microsoft це робить весь час.

* - ок, є винятки, я впевнений.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.