Ядро Linux змінює частини вашого коду з Assembler на C

мова програмування c

Всім відомо те, що Мова асемблера - найшвидший з деяких питань, і з цієї причини він найбільш часто використовується в ядрі різних операційних систем, і те ж саме відбувається в проектах у режимі реального часу, де використовується вдосконалена електроніка. Проблема виникає пізніше, коли цей код потрібно підтримувати, а він не є, а отже У випадку ядра Linux розробники вирішили перекласти цей код Assembler на C.

C - найбільш репрезентативна мова програмування Linux (насправді з усіх платформ * nix) він був розроблений Денніс Річі і Кеном Томпсоном у 1972 році, він був виготовлений на системі Unix PDP-11 і був частиною версії Unix 2. Враховуючи високу продуктивність та портативність, він почав дедалі більше застосовуватися при впровадженні операційних систем, а отже Лінус Торвальдс Він використав його для свого проекту, коли у 1990 році він шукав безкоштовну та відкриту альтернативу Minix.

Звичайно, незважаючи на стільки сильних сторін, Асемблер має деякі переваги перед С, як ми згадували на початку, тому це рішення здивувало, але відповідно до того, що коментарі Енді Лутомирський у списках розсилки ядра ваша робота вже на стадії розробки і Ядро Linux 4.1 буде першим, хто включить цей перезапис вихідного коду Assembler у C. Зокрема, все, що стосується виходів у користувальницький режим, який в даний час складається із суміші коду з цих двох мов програмування, але який, зважаючи на його низьке обслуговування, дедалі складніший при оновленні.

Хіба що код в Асемблері Він давно не оновлювався, і це означає, що нові розробники не повністю зрозуміли його роботу, і що ще гірше, оновити його було б непросто. Таким чином, замість того, щоб намагатись частково змінити, вони вирішили почати змінювати всі ці підпрограми Assembler на C, і особисто я думаю, що хоча деяка швидкість виконання може бути втрачена (яка може бути мінімальною, якщо код C new ефективний) новий і зрозумілий код завжди кращий, ніж його застарілий і практично з нульовими можливостями оновлення тому що недостатньо добре зрозуміло, як це було здійснено.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: AB Internet Networks 2008 SL
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   Мігель Майоль Тур - сказав він

    В першу чергу це ENSAMBLADOR, іспанською мовою.

    По-друге, вся мова повинна бути СКЛАДАНА (або інтерпретована), тому якість результату залежить від КОМПІЛЯТОРА (або перекладача)

    Оскільки компілятор C значно покращився, а асемблер дуже мало (бо це вже було дуже добре), в наш час різниця між скомпільованою програмою, написаною на мові C, порівняно з тією самою, написаною в асемблері, незначна або взагалі не існує (до цього не було).
    Навіть різниця між компільованими (C та іншими) та інтерпретованими (Java та іншими) програмами також була зведена до мінімуму.

    Оскільки набагато простіше підтримувати C, ніж асемблер, це цілком обґрунтоване рішення внести ці зміни в ядро ​​під час аналізу витрат та слабких сторін, загроз, сильних сторін та можливостей або будь-якого іншого, що працює.
    для прийняття рішень.

    1.    Чигюйре Біполярний - сказав він

      Мігелю Майолю Туру: Перш за все, кожен програміст, який може похвалитися тим, що ним є, говорить ASSEMBLER і розуміє англійську мову. Інші використовують Visual Basic і називають себе програмістами. Який сором. А по-друге Асемблер НЕ СКЛАДУЄ. Програми, які це обробляють, - це безпосередньо перетворення мнемотехніки у байти. Програмування в Assembler розмовляє з машиною на тій самій мові, але, щоб зробити це трохи простішим, мнемоніка використовується замість безпосереднього запису відповідних байтів. Існує індивідуальна відповідність між набором байтів та інструкцією в Assembler. Але це, звичайно, відомо лише справжньому програмісту, одному з тих, хто каже АССЕМБЛЕР. Отже, ніяких удосконалень у "перетворювачі" від асемблера до кодів операцій немає, оскільки програміст відповідає за це вдосконалення. Компілятори C (та інші мови) перекладають інструкції у заздалегідь встановлені макропредставлення асемблера (або машинного коду), і вдосконалення даються тим, як виконуються ці перетворення.
      Навіщо використовувати С? Тому що простіше переглянути та підтримати щось більш читабельне. Більшість людей безпосередньо не розуміють коди операцій асемблера або мнемотехніку. Так просто.
      Я навіть не буду заважати говорити про Java, яка, хоча вона давно була запроваджена як стандарт, зараз не подобається тим, хто розуміє код.
      Але не вірте мені, запитайте в Google, чи те, що я тут сказав, є неправдою.
      привіт

      1.    eriugihc - сказав він

        Привіт Шигуйре, мої очі падають з мого обличчя, думаючи, що ти не можеш писати іспанською, не використовуючи терміни англосаксонського походження: це сказано «асемблер».
        Звичайно, в одному я погоджуюсь з вами, краще не говорити про Java, тому що, щоб сказати дурниці, краще залиште це. У мене був друг, схожий на вас, але столяр (не фахівець-програміст), і він сказав, що найкраще - це ручна пила та інші інструменти, не кажучи вже про те, що він навіть закрутив цим гвинти. Який приклад для наслідування!

  2.   Луїс Херардо Марін - сказав він

    Англійська мова завжди лежить в основі всіх обчислювальних термінів. Так воно і є, навіть якщо ми, що розмовляємо іспанською мовою, цього не хочемо. Додайте до цього, що є терміни, які неможливо перекласти як "біт", "байт", "unix", "linux", "DOS" та багато інших. І є деякі, які МОГЛИ б бути перекладені, але таких понять, як "CMOS", "CSS", "RAM", немає, оскільки є деякі ініціали, які не мають нічого спільного з технологією, і на завершення вони навіть не існують у Google. Немає сенсу перекладати, коли створене повідомлення є нечитабельним. Висновок: Переважно для технічних або обчислювальних питань використовувати технічні терміни англійською мовою. З тієї ж причини: я вважаю за краще писати, що використовую "windows", щоб сказати, що використовую операційну систему "windows". І я волію говорити про CSS і що я використовую type = »text / css, ніж намагатися сказати, що я використовую« таблиці таблиць стилів із типом, рівним діагональним таблицям стилів тексту ». Здоров'я.

  3.   Роберто Гомес - сказав він

    Програми, написані асемблерною мовою, завжди складаються, а ніколи не інтерпретуються. Однак немає нічого поганого у використанні іспанської замість іспанської. Власні імена ніколи не перекладаються, але технічні терміни - це коли вони не є популярними скороченнями. У будь-якому випадку, кожен може говорити як завгодно, поки ми все ще можемо зрозуміти.