Programvaruportering

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 3 december 2021; kontroller kräver 2 redigeringar .

Portering ( engelsk  portering [1] ) - i programmering förstås portering som anpassning av något program eller del av det så att det fungerar i en annan miljö , annorlunda än den miljö som det ursprungligen skrevs för med maximal bevarande av dess användare egenskaper. Detta är huvudskillnaden mellan begreppen port och gaffel  - i det första fallet försöker de bevara alla användaregenskaper för paketet, och i det andra är det en oberoende utveckling baserad på en gemensam grund med nya användbara egenskaper.

Processen för portering kallas också porting , och resultatet kallas även port . Men i alla fall är huvuduppgiften under porteringen att bevara det välbekanta användargränssnittet och metoderna för att arbeta med paketet och dess egenskaper. Det är inte tillåtet att lägga till nya eller ta bort några av de befintliga egenskaperna vid portering av mjukvaruprodukter.

Portabilitet (portabilitet, eng.  portability ) syftar vanligtvis på en av två saker:

  1. Portabilitet - kompilering av kod (vanligtvis till någon mellankod , som sedan tolkas eller kompileras vid körning , "on the fly", eng.  Just-In-Time [2] ), kör den sedan på flera plattformar utan några ändringar.
  2. Portabilitet är en egenskap hos programvara som beskriver hur lätt den programvaran kan porteras. I takt med att operativsystem, språk och programmeringstekniker utvecklas blir det lättare att portera program mellan olika plattformar. Ett av de ursprungliga målen med att skapa C- språket och standardbiblioteket för detta språk var möjligheten att enkelt portera program mellan inkompatibla hårdvaruplattformar. Ytterligare fördelar vad gäller portabilitet kan ha program som uppfyller speciella standarder och regler för skrivning (se t.ex.: Smart Package Manager ).

Behovet av portering uppstår vanligtvis på grund av skillnader i processorinstruktionsuppsättningen , skillnader mellan hur operativsystemet och programmen interagerar ( API  - Application Program Interface), grundläggande skillnader i datorsystems arkitektur eller på grund av vissa inkompatibiliteter eller även den fullständiga frånvaron av det programmeringsspråk som används i målmiljön.

Internationella standarder (särskilt de som främjas av ISO ) gör portering mycket lättare [3] genom att beskriva exekveringsmiljön för program på ett sådant sätt att skillnaderna mellan plattformarna blir minimala. Ofta handlar det om att portera program mellan plattformar som implementerar samma standard (som POSIX .1 ) till att kompilera om programmet på den nya plattformen.

Det finns också en ständigt växande uppsättning verktyg för att underlätta portering, till exempel GCC , som ger ett konsekvent programmeringsspråk över plattformar.

Vissa programmeringsspråk på hög nivå ( Eiffel [4] , Esterel ) uppnår portabilitet genom att översätta källkod till ett mellanspråk som har kompilatorer för många processorer och operativsystem.

Termen portering används ofta för datorspel , nämligen processen att porta ett datorspel från dess ursprungliga målplattform ( persondator eller spelkonsol ) till en annan plattform. Tidiga videospelsportar var i huvudsak resultatet av större eller fullständiga programvaruomskrivningar, men fler och fler moderna spel utvecklas med hjälp av programvara som kan generera kod för både datorer och en eller flera videospelskonsoler.

När det gäller videospel kan en port också kallas en förbättrad moderniserad motor som ersätter spelets körbara filer och kräver de ursprungliga spelresursfilerna för dess drift. Sådana portar är inte nödvändigtvis gjorda för mjukvaru- och hårdvarukompatibilitet – ofta är målet att utöka spelets möjligheter, som hålls tillbaka av en föråldrad primitiv motor.

Beroende på vad den eller den programvaran ursprungligen utvecklades för kallas den native eller ported. Native ( engelska  native [5] ) mjukvara utvecklas omedelbart för plattformen ( hårdvara och/eller operativsystem) i fråga. Portad ( eng.  ported ) programvara utvecklas för vissa plattformar och överförs sedan till arbete på andra plattformar.

Exempel

Se även

Anteckningar

  1. port - definition av port på engelska från Oxford ordbok . Hämtad 14 juli 2016. Arkiverad från originalet 25 juli 2016.
  2. Mot intelligent teknik och informationsteknologi Arkiverad 21 mars 2013 på Wayback Machine Kapitel 6.3 Java: "En stor fördel med att använda bytekod är portering... JIT-kompilering och dynamisk omkompilering tillåter Java-program att närma sig hastigheten för inbyggd kod utan att förlora portabilitet"
  3. Donald A. Levine. POSIX programmerares guide. Skriva bärbara UNIX-program med POSIX.1 Standard Arkiverad 21 mars 2013 på Wayback Machine // O'Reilly, 1991-1994 "IEEE Std 1003.1-1988, allmänt känd som POSIX ... När applikationer följer POSIX-regler är det lättare att flytta program från ett POSIX-anpassat operativsystem till ett annat"
  4. Bertrand Meyer. Tillvägagångssätt för portabilitet Arkiverad 26 april 2012 på Wayback Machine // JOOP (Journal of Object-Oriented Programming), vol. 11, nr. 6, juli-augusti 1998, sid 93-95. "Alla nuvarande Eiffel-kompilatorer utom en … använder C som sitt mellanspråk. … Denna teknik har visat sig erbjuda viktiga fördelar: Garanti för portabilitet” och mer
  5. inbyggd programvara Arkiverad 7 maj 2012 på Wayback Machine A Dictionary of Computing, 2004
  6. Spencer Kimball & Peter Mattis. Readme (txt)  (nedlänk) (11 februari 1996). Hämtad 23 mars 2008. Arkiverad från originalet 17 februari 2011. GIMP 0.54-paket från 2006, se README: "GIMP har testats (och utvecklats) på följande operativsystem: Linux 1.2.13, Solaris 2.4, HPUX 9.05, SGI IRIX"
  7. William von Hagen. Ubuntu Linux Bible: Med Ubuntu 10.04 LTS Arkiverad 21 mars 2013 på Wayback Machine Kapitel "Använda GIMP" sidan 14-35
  8. GNU Image Manipulation Program. Användarmanual. Appendix A. GIMP-historik 2. The Early Days of GIMP Arkiverad 2 februari 2012 på Wayback Machine "De viktigaste programmeringsfördelarna var de nya verktygssatserna, GTK (GIMP Toolkit) och gdk (GIMP Drawing Kit), som eliminerade beroendet av Motif"
  9. Linux Kernel Archives arkiverade 21 augusti 2011. : Även om Linux ursprungligen utvecklades för 32-bitars x86 - datorer ( från 386), körs det idag även på (minst) följande arkitekturer: 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 och Analog Devices Blackfin; för många av dem i både 32-bitars och 64-bitarsversioner. (Även om det ursprungligen utvecklades först för 32-bitars x86-baserade datorer (386 eller högre), körs idag Linux också på (minst) 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 och Analog Devices Blackfin-arkitekturer; för många av dessa arkitekturer i båda 32- och 64-bitars varianter)

Litteratur