Skrivet av 3lander:
Porta hit och dit.. Som om det vore något bra.. :// Framtiden
Mjukvar har portats i alla tider så länge datorer funnits. Sedan mainframes och superdatorer på 60-70 talet.
Vi behöver mer gemensama API:er och klarare standarder så det blir än lättare att porta.
Porta betyder att man anpassar ett program så det kan köra spå annan hårdvara eller OS än det skrevs till först. I bland räcker det att kompilera om det i bland får man göra lite förändrigar i koden. Beror helt på hur väl man kodat det från början. Windows program är ju extra jävliga om dom använder något av MS API'er som DirectX då det är MS slutna standard som endast windows kör.
Linux stödjer över 20 talet olika ISA och GCC, gnu C compilatorn alltså och autotools klarar ofta av att kompilera dom flesta paket från källkod till alla populära arkitekturer som x86, x86_64, Alpha, PPC, ARM, Sparc etc etc och det är helt enkelt för programerarna ser till att göra mjukvaran Portabel från början genom att följa satta standarder och sedan löser förhoppnigsvis autotools mindre skillnader.
Därför många opensource program ofta existerar till både Linux, BSD, Solaris och OS X mm då dom delar API:er i betydligt större grad.
Sedan görs mycket mjukvara i dag Portabel alltså man medvetet ser till att använda API:er som är öppna och fins och fungerar på alla stora OS och man följer olika ISO och Posix standarder. Gör man det från början kan ofta kompilatorn och dess verktyg korrigera små skillnader mellan systemen när man genererar maskinkoden från källkoden programeraren genererat.
Mer öppna standarder och API:er är bättre. Om alla följde satta standarder och tolkade dom lika och Använde öppna API'er Som OpenGL, OpenGL ES OpenCL, OpenAL så skulle det vara betydligt mindre jobb att skapa mjukvara som är Portabel alltså lätt kan kompileras för flera olika OS och ISA (Instruction Set Architecture)
Mjukvara har alltid portats och många utvecklare har sedan läge inset att Portabel mjukvara är A och O speciellt om nya ISA kommer ut då hårdvara alltid förändras.
Att gamers precis upptäkt att mjukvara kan portas är ju ganska underhållande.
99% av all mjuvkara jag kör är Portabel och den fungerar lika bra i tex linux som den gör i windows.
Lite läsvärt om portar.
http://en.wikipedia.org/wiki/Porting
Det fins bra Portar och dåliga Portar. Majoriteten av mjuvkara som är Portabel är bra och portar sig bra över olika paltformer och ISA.
Dom dåliga portar som fins är pga ren lathet eller tid och pengabrist och är inget bevis på att portning är dåligt.
Ofta är det bara en liten del av koden som kan underprestera majoriteten av tiden och då räcker det att srkiva om den lilla delen av koden som är berörd.
Portar är enklaste, billigaste och snabbaste sättet att anpassa en bit mjukvara till ett annat OS eller ISA. Något annat hade inte varit hållbart. Finns igen anledning att skriva om programmet från grunden om endast 5% av koden behöver optimeras för en nya Arkitekturen. Då skriver man om dom 5% istället och låter resten vara.
Portabel mjuvkara är framtiden. Det ser till att mjukvaran snabbt kan sprida sig mellan olika digitala appraturer, telefoner, tablets ,desktops med olika OS och CPU:er med olika ISA om det sä är x86_64, x86, ARM, MIPS eller PPC.
Bra portabel mjukvara bör nyttja respektive ISA och och OS utan större skillander mellan paltformerna.
Sluta vara så förbanat gnälliga på portningar. Det har alltid existerat kommer troligen alltid göra det med så det är inget nytt fenomen och portabel mjukvara är bra för alla för det tillåter maximal spridning och konkurens på hårdvarufronten och OS fronten.
Jag körde precis samma Linux dist, Gentoo nämligen på både Alpha EV56 CPU och en Power PC G4 som jag körde på en Via C3 x86 CPU och ett par Opteron x86:&4 CPU:er. Alla använde samma källkod. Tankades ner till en gemensam dir på en server sedan skötte repsektive systems kompilator, autotools osv eventuella skillnader och genererade kompatibla binärer för respektive system när mjukvaran installerades. För användaren blir det till synes igen skillnad. PPC, Alpha, x86_64, igen skillnad för slutanvändaren när programmen ser ut och fungerar lika dant oavset. Bara vad som händer inne i processorn som skiljer.
Olika processorer pratar olika maskinspråk och kräver därför olika binärer och det genererar kompilatorn. Men Yes eller Ja betyder samma för oss om vi förstår båda språken då orden har en betydelse. På samma vis kan olika processorers instruktioner binärt skillja sig men betyda samma sak. maskinkod kan ses som ett maskinspråk där processorn läser en bok och förstår innehållet. Man kan ju anta att en svensk som läser en svensk manual och en engelsman som läser samma manual fast på engelska så kan man ju anta att om båda följer instruktionerna så bör resultatet blir det samma om det nu så är att bygga en IKEA möbel.
Som sagt en liten förenkling men portning är inget nytt eller i sig dåligt. Alltid funits och det är bra med portabel mjukvara.
Tyvär är jag ingen programerare aller systemutvecklare dom kan sådant här mycket mer i detalj men jag tror inte många av dom bryr sig om vad en svensson anser om portning då en svenssons syn på en Port är nåt helt annat än synen man har på det inom datorvetenskapen.