Binabago ng Linux kernel ang mga bahagi ng iyong code mula sa Assembler patungong C

wika ng programa c

Kilalang lahat yan Ang wika ng Assembler ay ang pinakamabilis para sa ilang mga isyu at sa kadahilanang ito ito ang pinaka ginagamit sa kernel ng iba't ibang mga operating system at pareho ang nangyayari para sa mga real-time na proyekto kung saan ginagamit ang mga advanced electronics. Ang problema ay darating mamaya, kapag ang code na iyon ay kailangang mapanatili at hindi ito, at samakatuwid Sa kaso ng kernel ng Linux, pinili ng mga developer na isalin ang Assembler code na iyon sa C.

Ang C ay ang pinaka kinatawan ng wika ng pagprograma ng Linux (sa totoo lang, sa lahat ng * nix platform), binuo ito ng Si Dennis Ritchie at Ken Thompson noong 1972, ginawa ito sa isang sistema ng Unix PDP-11 at bahagi ng bersyon ng Unix 2. Dahil sa mataas na pagganap at kakayahang dalhin, nagsimula itong magamit nang higit pa sa pagpapatupad ng mga operating system at samakatuwid Linus Torvalds Ginamit niya ito para sa kanyang proyekto noong taong 1990 ay naghahanap siya para sa isang libre at bukas na kahalili sa Minix.

Siyempre, sa kabila ng maraming lakas, ang Assembler ay may ilang mga pakinabang sa C tulad ng nabanggit natin sa simula, kaya't ang desisyon na ito ay nagulat ngunit ayon sa kung ano komento ni Andy Lutomirsky sa mga listahan ng kernel mailing ang iyong trabaho ay nasa ilalim na ng paraan at Linux kernel 4.1 ay ang unang isasama ang Assembler source code na muling isulat ito sa C. Partikular, ang lahat na nauugnay sa paglabas sa mode ng gumagamit, na kasalukuyang binubuo ng isang halo ng code mula sa dalawang wikang ito sa pagprograma ngunit kung saan, binigyan ng mababang pagpapanatili nito, ay lalong nagiging kumplikado kapag nag-a-update.

Yan ba ang code sa Assembler Hindi ito na-update ng mahabang panahon at nangangahulugan iyon na ang mga bagong developer ay hindi ganap na malinaw tungkol sa pagpapatakbo nito, at kung ano ang mas masahol pa, hindi madali itong mai-update. Kaya, sa halip na subukan ang ilang bahagyang pagbabago na pinili nila upang simulang baguhin ang lahat ng mga gawain sa Assembler na C, at personal na sa palagay ko na kahit na ang ilang bilis ng pagpapatupad ay maaaring mawala (na kung saan ay maaaring maging minimal kung ang code C bago ay mahusay) bago at malinaw na code ay palaging higit na kanais-nais sa pagkakaroon ng ito luma na at may halos zero posibilidad ng pag-update sapagkat hindi ito gaanong nauunawaan kung paano ito ipinatupad.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: AB Internet Networks 2008 SL
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   Miguel Mayol Tur dijo

    Sa unang lugar ito ay ENSAMBLADOR, sa Espanyol.

    Pangalawa, ang lahat ng wika ay dapat na KATAPOS (o mabibigyang kahulugan), kaya't ang kabutihan ng resulta ay nakasalalay sa KOMPONER (o sa interpreter)

    Tulad ng tagatala ng C ay napabuti nang marami at ang tagapag-ipon ay napakaliit (sapagkat napakahusay na), sa panahong ito ang pagkakaiba ng isang naipong programa na nakasulat sa C kumpara sa parehong nakasulat sa assembler ay bale-wala o wala (bago ito ay hindi).
    Kahit na ang pagkakaiba sa pagitan ng naipon (C at iba pa) at binibigyang kahulugan (Java at iba pa) na mga programa ay napaliit din.

    Kaya, na mas madali upang mapanatili ang C kaysa sa assembler, napakahusay na pagpapasya na gawin ang mga pagbabagong ito sa kernel, kapag gumagawa ng pagtatasa ng benefit benefit, kahinaan, pagbabanta, kalakasan at pagkakataon, o anumang iba pang gumagana.
    para sa paggawa ng desisyon.

    1.    Bipolar Capybara dijo

      Kay Miguel Mayol Tur: Una sa lahat, ang bawat programmer na nag-aangkin na isa ay nagsasalita ng ASSEMBLER at nakakaunawa ng Ingles. Ang iba ay gumagamit ng Visual Basic at tinatawag silang mga programmer. Nakakahiya naman. At pangalawa ang Assembler AY HINDI NAGSASAMA. Ang ginagawa ng mga programang hawakan nito ay ang direktang pag-convert ng mnemonics sa mga byte. Ang pag-program sa Assembler ay nagsasalita sa makina sa parehong wika, ngunit upang gawing mas madali ito, ang mga mnemonics ay ginagamit sa halip na direktang pagsulat ng mga kaukulang byte. Mayroong isa-sa-isang sulat sa pagitan ng isang hanay ng mga byte at isang tagubilin sa Assembler. Ngunit ito, syempre, isang tunay na programmer lamang ang nakakaalam, isa sa mga nagsasabing ASSEMBLER. Dahil dito, walang mga pagpapabuti sa "converter" mula sa assembler hanggang sa mga opcode dahil ang programmer ang siyang namamahala sa pagpapabuti na iyon. Ang mga C compiler (at iba pang mga wika) ay nagsasalin ng mga tagubilin sa paunang itinatag na mga representasyong macro ng assembler (o machine code) at ang mga pagpapabuti ay ibinibigay ng kung paano ang mga conversion na iyon.
      Bakit ginagamit ang C? Sapagkat mas madaling suriin at mapanatili ang isang bagay na mas nababasa. Karamihan sa mga tao ay hindi direktang naiintindihan ang mga assembler opcode o mnemonics. Simpleng ganyan.
      Hindi na rin ako mag-abala na pag-usapan ang Java, na bagaman naipataw ito bilang pamantayan matagal na, ay kinamumuhian ngayon ng mga nakakaunawa sa code.
      Ngunit huwag kang maniwala, tanungin ang Google kung mali ang sinabi ko rito.
      Regards

      1.    eriugihc dijo

        Kumusta Chigüire, ang aking mga mata ay nahuhulog mula sa aking mukha na iniisip na hindi ka nakasulat sa Espanyol nang hindi gumagamit ng mga termino ng pinagmulan ng Anglo-Saxon: sinabi na «assembler».
        Siyempre, sa isang bagay na sumasang-ayon ako sa iyo, mas mabuti na huwag pag-usapan ang tungkol sa java dahil upang sabihin ang kalokohan mas mabuti na iwanan ito. Mayroon akong isang kaibigan na katulad mo ngunit isang karpintero (hindi isang dalubhasang programmer) at sinabi niya na ang pinakamagandang bagay ay ang handsaw at iba pang mga tool, hindi pa man banggitin, pinahigpit pa niya ang mga tornilyo kasama nito. Anong halimbawa ang dapat sundin!

  2.   Luis Gerardo Marín dijo

    Ang wikang Ingles ay palaging ugat ng lahat ng mga term ng computational. Ganun talaga, kahit tayong mga nagsasalita ng Espanya ay hindi gusto ito. Idagdag dito na may mga term na hindi maaaring isalin bilang "bit", "byte", "unix", "linux", "DOS" at marami pang iba. At may ilang MAAARI na maisasalin ngunit walang ganoong bagay tulad ng "CMOS", "CSS", "RAM" sapagkat may ilang mga inisyal na walang kinalaman sa teknolohiya at upang maitaguyod ito wala man lang sila sa Google Walang point sa pagsasalin kung ang mensahe na ginawa ay hindi nababasa. Konklusyon: Mas mabuti para sa mga isyu na panteknikal o nagkalkula na gumamit ng mga teknikal na termino sa Ingles. Para sa parehong dahilan: Mas gusto kong isulat na gumagamit ako ng "windows" upang masabing gumagamit ako ng "windows" ng operating system. At mas gusto kong pag-usapan ang tungkol sa CSS at gumagamit ako ng type = »text / css kaysa subukang sabihin na gumagamit ako ng« style sheet sheet na may uri na katumbas ng mga dayagonal na style sheet ng teksto ». Kalusugan.

  3.   Roberto Gomez dijo

    Ang mga program na nakasulat sa isang wika ng pagpupulong ay laging naipon, hindi naipapaliwanag. Gayunpaman, walang mali sa paggamit ng Espanyol sa halip na Spanglish. Ang mga wastong pangalan ay hindi kailanman isinalin, ngunit ang mga teknikal na termino ay kapag hindi sila sikat na mga akronim. Gayunpaman, lahat ay maaaring magsalita ayon sa gusto nila habang naiintindihan pa rin natin.