Ohjelmiston siirtäminen

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 3. joulukuuta 2021 tarkistetusta versiosta . tarkastukset vaativat 2 muokkausta .

Portointi ( englanniksi  porting [1] ) - ohjelmoinnissa portauksella tarkoitetaan jonkin ohjelman tai sen osan mukauttamista niin, että se toimii eri ympäristössä , joka poikkeaa ympäristöstä, jota varten se alun perin kirjoitettiin, ja sen käyttäjä säilyy mahdollisimman hyvin. ominaisuuksia. Tämä on tärkein ero portin ja haarukan käsitteiden välillä  - ensimmäisessä tapauksessa he yrittävät säilyttää kaikki paketin käyttäjäominaisuudet, ja toisessa tapauksessa se on itsenäinen kehitys, joka perustuu yhteiseen perustaan, jolla on uusia hyödyllisiä ominaisuuksia.

Siirtoprosessia kutsutaan myös portiksi , ja tulosta kutsutaan myös portiksi . Mutta joka tapauksessa päätehtävä siirron aikana on säilyttää tuttu käyttöliittymä ja menetelmät työskennellä paketin ja sen ominaisuuksien kanssa. Uusien ominaisuuksien lisääminen tai joidenkin olemassa olevien ominaisuuksien poistaminen ohjelmistotuotteita siirrettäessä ei ole sallittua.

Siirrettävyys (siirrettävyys, eng.  siirrettävyys ) viittaa yleensä johonkin kahdesta asiasta:

  1. Siirrettävyys - koodin kokoaminen (yleensä joksikin välikoodiksi , joka sitten tulkitaan tai käännetään ajon aikana, "lennossa", eng.  Just-In-Time [2] ), jonka jälkeen se suoritetaan useilla alustoilla ilman muutoksia.
  2. Siirrettävyys on ohjelmiston ominaisuus, joka kuvaa kuinka helposti ohjelmisto voidaan siirtää. Käyttöjärjestelmien, kielten ja ohjelmointitekniikoiden kehittyessä ohjelmien siirtäminen eri alustojen välillä on helpompaa. Yksi C -kielen ja tämän kielen vakiokirjaston luomisen alkuperäisistä tavoitteista oli kyky siirtää ohjelmia helposti yhteensopimattomien laitteistoalustojen välillä. Lisäetuja siirrettävyyden kannalta voivat olla ohjelmat, jotka täyttävät erityisstandardit ja kirjoitussäännöt (katso esimerkiksi: Smart Package Manager ).

Portauksen tarve syntyy yleensä eroista prosessorin käskyjoukossa , eroista käyttöjärjestelmän ja ohjelmien vuorovaikutustapojen välillä ( API  - Application Program Interface), perustavanlaatuisista eroista laskentajärjestelmien arkkitehtuurissa tai johtuen joistakin yhteensopimattomuudesta tai jopa käytetyn ohjelmointikielen täydellinen puuttuminen kohdeympäristössä.

Kansainväliset standardit (erityisesti ISO :n edistämät ) helpottavat portaamista huomattavasti [3] kuvaamalla ohjelmien suoritusympäristöä siten, että alustojen väliset erot ovat minimaaliset. Usein ohjelmien siirtäminen samaa standardia toteuttavien alustojen välillä (kuten POSIX .1 ) tarkoittaa, että ohjelma käännetään uudelleen uudelle alustalle.

On myös jatkuvasti laajeneva joukko työkaluja, jotka helpottavat siirtämistä, kuten GCC , joka tarjoaa yhtenäisen ohjelmointikielen eri alustoilla.

Jotkut korkean tason ohjelmointikielet ( Eiffel [4] , Esterel ) saavuttavat siirrettävyyden kääntämällä lähdekoodin välikielelle , jolla on kääntäjiä monille prosessoreille ja käyttöjärjestelmille.

Termiä siirtäminen käytetään usein tietokonepeleihin , nimittäin prosessiin, jossa tietokonepeli siirretään sen alkuperäiseltä kohdealustalta ( henkilökohtainen tietokone tai pelikonsoli ) toiselle alustalle. Varhaiset videopeliportit olivat pääosin tulosta suurten tai täydellisten ohjelmistojen uudelleenkirjoituksista, mutta yhä enemmän nykyaikaisia ​​pelejä kehitetään käyttämällä ohjelmistoja, jotka voivat luoda koodia sekä tietokoneille että yhdelle tai useammalle videopelikonsolille.

Videopelien osalta porttia voidaan kutsua myös parannetuksi modernisoiduksi moottoriksi, joka korvaa pelin suoritettavat tiedostot ja vaatii toimintaansa alkuperäiset peliresurssitiedostot. Tällaisia ​​portteja ei välttämättä ole tehty ohjelmistojen ja laitteistojen yhteensopivuutta varten – usein tavoitteena on laajentaa pelin mahdollisuuksia vanhentuneen primitiivisen moottorin jarruttamina.

Riippuen siitä, mihin tämä tai tuo ohjelmisto alun perin kehitettiin , sitä kutsutaan alkuperäiseksi tai siirretyksi. Alkuperäinen ( englanninkielinen  [ 5] ) ohjelmisto kehitetään välittömästi kyseiselle alustalle ( laitteistolle ja/tai käyttöjärjestelmälle). Siirretty ( eng.  ported ) ohjelmisto kehitetään joillekin alustoille ja siirretään sitten toimimaan muilla alustoilla.

Esimerkkejä

Katso myös

Muistiinpanot

  1. portti - portin määritelmä englanniksi Oxford-sanakirjasta . Haettu 14. heinäkuuta 2016. Arkistoitu alkuperäisestä 25. heinäkuuta 2016.
  2. Kohti älykästä suunnittelua ja tietotekniikkaa Arkistoitu 21. maaliskuuta 2013 Wayback Machinessa , luku 6.3 Java: "Tavukoodin käytön suurin etu on portaaminen… JIT-käännöksen ja dynaamisen uudelleenkäännöksen ansiosta Java-ohjelmat voivat lähestyä alkuperäisen koodin nopeutta menettämättä siirrettävyyttä"
  3. Donald A. Levine. POSIX ohjelmoijan opas. Kannettavien UNIX-ohjelmien kirjoittaminen POSIX.1-standardilla Arkistoitu 21. maaliskuuta 2013 Wayback Machinessa // O'Reilly, 1991-1994 "IEEE Std 1003.1-1988, joka tunnetaan yleisesti nimellä POSIX ... Kun sovellukset noudattavat POSIX-sääntöjä, se on helpompi siirtää ohjelmia POSIX-yhteensopivasta käyttöjärjestelmästä toiseen"
  4. Bertrand Meyer. Lähestymistapoja siirrettävyyteen Arkistoitu 26. huhtikuuta 2012 Wayback Machinessa // JOOP (Journal of Object-Oriented Programming), voi. 11, ei. 6, heinä-elokuu 1998, sivut 93-95. ”Kaikki nykyiset Eiffel-kääntäjät yhtä lukuun ottamatta… käyttävät C:tä välikielenään. … Tämän tekniikan on osoitettu tarjoavan keskeisiä etuja: Siirrettävyyden takuu ja enemmän
  5. alkuperäinen ohjelmisto Arkistoitu 7. toukokuuta 2012 Wayback Machinessa A Dictionary of Computing, 2004
  6. Spencer Kimball ja Peter Mattis. Readme (txt)  (downlink) (11. helmikuuta 1996). Haettu 23. maaliskuuta 2008. Arkistoitu alkuperäisestä 17. helmikuuta 2011. GIMP 0.54 -paketti vuodelta 2006, katso README: "GIMP on testattu (ja kehitetty) seuraavissa käyttöjärjestelmissä: Linux 1.2.13, Solaris 2.4, HPUX 9.05, SGI IRIX"
  7. William von Hagen. Ubuntu Linux Bible: Mukana Ubuntu 10.04 LTS Arkistoitu 21. maaliskuuta 2013 Wayback Machinessa Luku "GIMP:n käyttö" sivut 14-35
  8. GNU-kuvankäsittelyohjelma. Ohjekirja. Liite A. GIMP:n historia 2. GIMP:n varhaiset päivät Arkistoitu 2. helmikuuta 2012 Wayback Machinessa "Tärkeimmät ohjelmoinnin edut olivat uudet työkalusarjat, GTK (GIMP Toolkit) ja gdk (GIMP Drawing Kit), jotka eliminoivat riippuvuuden motiiviin"
  9. Linux-ytimen arkistot arkistoitu 21. elokuuta 2011. : Vaikka Linux kehitettiin alun perin 32-bittisille x86 - tietokoneille ( alkaen 386), nykyään se toimii myös (ainakin) seuraavissa arkkitehtuureissa: Alpha AXP, Sun SPARC, Motorola 68000, PowerPC, ARM, Hitachi SuperH, IBM S/390 , MIPS, HP PA-RISC, Intel IA-64, AMD x86-64, AXIS CRIS, Renesas M32R, Atmel AVR32, Renesas H8/300, NEC V850, Tensilica Xtensa ja Analog Devices Blackfin; monille niistä sekä 32-bittisissä että 64-bittisissä versioissa. (Vaikka alun perin kehitettiin 32-bittisille x86-pohjaisille tietokoneille (386 tai uudempi), nykyään Linux toimii myös (ainakin) Alpha AXP:ssä, Sun SPARC:ssa, Motorola 68000:ssa, PowerPC:ssä, ARM:ssa, Hitachi SuperH:ssa, IBM S/390:ssä, MIPS-, HP PA-RISC-, Intel IA-64-, AMD x86-64-, AXIS CRIS-, Renesas M32R-, Atmel AVR32-, Renesas H8/300-, NEC V850-, Tensilica Xtensa- ja Analog Devices Blackfin -arkkitehtuurit; monille näistä arkkitehtuureista molemmissa 32- ja 64-bittiset versiot)

Kirjallisuus