789:
43:
140:
796:
307:
must, for security reasons, have limited control over the host computer, especially regarding reading and writing files. Non-web programs, installed upon a computer in the normal manner, can have more control, and yet achieve system portability by linking to portable libraries providing the same
293:. The difference between larger and smaller devices is such that detailed software operation is different; an application designed to display suitably on a large screen cannot simply be ported to a pocket-sized smartphone with a tiny screen even if the functionality is similar.
320:
from source code for different operating systems and processors if written in a programming language supporting compilation for the platforms. This is usually a task for the program developers; typical users have neither access to the source code nor the required skills.
249:", is specifically designed to run on different computers with compatible operating systems and processors, without any machine-dependent installation. Porting is no more than transferring specified directories and their contents. Software installed on portable
367:
Sometimes the effort consists of recompiling the source code, but sometimes it is necessary to rewrite major parts of the software. Many language specifications describe implementation defined behaviour (e.g. right shifting a signed integer in C can do a
381:
fails under
Windows with EACCES, when it is called for a directory). The program code can contain unportable things, like the paths of include files, drive letters, or the backslash. Implementation defined things like
257:
can be used on any compatible computer on simply plugging the storage device in, and stores all configuration information on the removable device. Hardware- and software-specific information is often stored in
376:
shift). Operating system functions or third party libraries might not be available on the target system. Some functions can be available on a target system, but exhibit slightly different behavior such as
328:
environments such as Linux the source code is available to all. In earlier days source code was often distributed in a standardised format, and could be built into executable code with a standard
336:
distribute software to users in source form. In these cases there is usually no need for detailed adaptation of the software for the system; it is distributed in a way which
519:
489:
582:
226:
In the simplest case, the file or files may simply be copied from one machine to the other. However, in many cases, the software is
107:
364:
required by far the largest conversion effort of any supposedly portable program, for the simple reason that it is not portable."
79:
273:
Software which is not portable in this sense must be modified much more to support the environment on the destination machine.
60:
86:
299:
are required to be processor independent, so portability can be achieved by using web programming techniques, writing in
637:
93:
799:
748:
126:
289:
instruction sets. Smaller portable devices use processors with different and incompatible instruction sets, such as
227:
234:
for particular devices, using installed operating system and supporting software components, and using different
75:
743:
693:
575:
159:
64:
713:
708:
399:
163:
31:
764:
662:
426:
332:
for any particular system by moderately knowledgeable users if no errors occurred during the build. Some
774:
531:
387:
617:
500:
185:
Reinstalling a program from distribution files on another computer of basically the same architecture.
820:
622:
568:
451:
436:
769:
411:
391:
349:
239:
100:
26:
This article is about portability in itself. For the work required to make software portable, see
683:
416:
337:
53:
20:
718:
703:
698:
471:
182:
Transferring installed program files to another computer of basically the same architecture.
647:
325:
246:
230:
on a computer in a way which depends upon its detailed hardware, software, and setup, with
143:
Software portability can be exemplified with multiple devices running the same video game.
8:
441:
333:
317:
259:
167:
155:
652:
267:
499:. West Virginia University. Dept. of Statistics and Computer Science. Archived from
223:
it is often possible to transfer the files implementing program files between them.
591:
431:
421:
373:
296:
290:
263:
212:
612:
329:
304:
220:
657:
540:
282:
814:
369:
235:
231:
390:
can also raise the porting effort. In practice the claim of languages, like
738:
688:
361:
250:
642:
632:
195:
151:
16:
Ability of a program to run on different platforms with little alteration
383:
356:, the effort to port source code can vary considerably. The authors of
300:
191:
678:
254:
166:. When software with the same functionality is produced for several
42:
560:
357:
188:
446:
199:
27:
139:
170:, portability is the key issue for development cost reduction.
395:
353:
281:
As of 2011 the majority of desktop and laptop computers used
286:
216:
520:"Software Portability: Weighing Options, Making Choices"
472:
A Unix operating system for the DEC VAX-11/780 computer
303:. Such a program can run in a common web browser. Such
215:
of the same family are installed on two computers with
338:
modifies the compilation process to match the system
67:. Unsourced material may be challenged and removed.
812:
541:"Porting UNIX Software: From Download to Debug"
245:In some cases, software, usually described as "
490:"Bringing Portability to the Software Process"
576:
343:
470:Thomas B. London and John F. Reiser (1978).
348:Even with seemingly portable languages like
158:. An aid to portability is the generalized
583:
569:
311:
198:; this is what is usually understood by "
127:Learn how and when to remove this message
138:
276:
813:
487:
194:programs for different platforms from
154:to be easily made to run on different
564:
538:
517:
795:
590:
474:. Bell Labs internal memo 78-1353-4.
65:adding citations to reliable sources
36:
285:compatible with the 32- and 64-bit
262:in specified locations such as the
13:
206:
178:Software portability may involve:
162:between the application logic and
14:
832:
749:List of system quality attributes
794:
788:
787:
308:interface on different systems.
41:
378:
52:needs additional citations for
464:
1:
457:
316:Software can be compiled and
173:
400:write once, compile anywhere
7:
765:Software quality management
744:Non-functional requirements
427:Hardware-dependent software
405:
10:
837:
775:Software quality assurance
481:
344:Effort to port source code
150:is a design objective for
25:
18:
783:
757:
731:
671:
605:
598:
452:Source-to-source compiler
437:Language interoperability
360:(1979) reported that "he
770:Software quality control
412:C (programming language)
19:Not to be confused with
530:(11): 3. Archived from
417:Cross-platform software
312:Source code portability
21:application portability
144:
76:"Software portability"
30:. For other uses, see
142:
398:, to have the WOCA (
277:Different processors
148:Software portability
61:improve this article
732:Standards and lists
442:Portability testing
386:and the size of an
334:Linux distributions
260:configuration files
168:computing platforms
145:
808:
807:
727:
726:
653:Understandability
247:portable software
213:operating systems
164:system interfaces
137:
136:
129:
111:
828:
821:Software quality
798:
797:
791:
790:
603:
602:
592:Software quality
585:
578:
571:
562:
561:
557:
555:
554:
545:
535:
514:
512:
511:
505:
494:
475:
468:
432:Interoperability
422:Data portability
380:
305:web applications
297:Web applications
253:devices such as
221:instruction sets
132:
125:
121:
118:
112:
110:
69:
45:
37:
836:
835:
831:
830:
829:
827:
826:
825:
811:
810:
809:
804:
779:
753:
723:
667:
618:Maintainability
594:
589:
552:
550:
543:
524:The CPA Journal
509:
507:
503:
492:
488:Mooney (1997).
484:
479:
478:
469:
465:
460:
408:
402:) is arguable.
346:
314:
283:microprocessors
279:
209:
207:Similar systems
176:
133:
122:
116:
113:
70:
68:
58:
46:
35:
24:
17:
12:
11:
5:
834:
824:
823:
806:
805:
803:
802:
792:
784:
781:
780:
778:
777:
772:
767:
761:
759:
755:
754:
752:
751:
746:
741:
735:
733:
729:
728:
725:
724:
722:
721:
716:
711:
706:
701:
696:
691:
686:
681:
675:
673:
669:
668:
666:
665:
660:
658:Loose coupling
655:
650:
645:
640:
635:
630:
625:
620:
615:
609:
607:
600:
596:
595:
588:
587:
580:
573:
565:
559:
558:
539:Lehey (1995).
536:
534:on 2010-07-08.
518:Garen (2007).
515:
483:
480:
477:
476:
462:
461:
459:
456:
455:
454:
449:
444:
439:
434:
429:
424:
419:
414:
407:
404:
362:(Bourne) shell
345:
342:
313:
310:
278:
275:
232:device drivers
208:
205:
204:
203:
186:
183:
175:
172:
135:
134:
49:
47:
40:
15:
9:
6:
4:
3:
2:
833:
822:
819:
818:
816:
801:
793:
786:
785:
782:
776:
773:
771:
768:
766:
763:
762:
760:
756:
750:
747:
745:
742:
740:
737:
736:
734:
730:
720:
717:
715:
712:
710:
707:
705:
702:
700:
697:
695:
692:
690:
687:
685:
682:
680:
677:
676:
674:
670:
664:
663:Orthogonality
661:
659:
656:
654:
651:
649:
646:
644:
641:
639:
636:
634:
631:
629:
626:
624:
621:
619:
616:
614:
611:
610:
608:
604:
601:
597:
593:
586:
581:
579:
574:
572:
567:
566:
563:
549:
542:
537:
533:
529:
525:
521:
516:
506:on 2008-07-25
502:
498:
491:
486:
485:
473:
467:
463:
453:
450:
448:
445:
443:
440:
438:
435:
433:
430:
428:
425:
423:
420:
418:
415:
413:
410:
409:
403:
401:
397:
393:
389:
385:
375:
371:
365:
363:
359:
355:
351:
341:
339:
335:
331:
327:
322:
319:
309:
306:
302:
298:
294:
292:
288:
284:
274:
271:
269:
265:
261:
256:
252:
248:
243:
241:
237:
233:
229:
224:
222:
219:with similar
218:
214:
201:
197:
193:
190:
187:
184:
181:
180:
179:
171:
169:
165:
161:
157:
153:
149:
141:
131:
128:
120:
117:November 2011
109:
106:
102:
99:
95:
92:
88:
85:
81:
78: –
77:
73:
72:Find sources:
66:
62:
56:
55:
50:This article
48:
44:
39:
38:
33:
29:
22:
739:ISO/IEC 9126
689:Adaptability
627:
551:. Retrieved
547:
532:the original
527:
523:
508:. Retrieved
501:the original
496:
466:
366:
347:
323:
315:
295:
280:
272:
251:mass storage
244:
225:
210:
177:
147:
146:
123:
114:
104:
97:
90:
83:
71:
59:Please help
54:verification
51:
694:Correctness
684:Reliability
648:Testability
643:Scalability
638:Readability
633:Reusability
628:Portability
623:Flexibility
326:open-source
240:directories
196:source code
160:abstraction
152:source code
32:portability
709:Robustness
704:Efficiency
553:2010-05-27
510:2008-03-17
458:References
384:byte order
374:arithmetic
301:JavaScript
255:USB sticks
217:processors
192:executable
174:Strategies
87:newspapers
758:Processes
679:Usability
599:Qualities
330:Make tool
228:installed
156:platforms
815:Category
714:Security
699:Accuracy
672:External
606:Internal
406:See also
358:UNIX/32V
264:registry
189:Building
800:Commons
482:Sources
447:Porting
379:utime()
370:logical
268:Windows
200:porting
101:scholar
28:porting
719:Safety
548:(help)
497:(help)
372:or an
318:linked
236:drives
103:
96:
89:
82:
74:
544:(PDF)
504:(PDF)
493:(PDF)
211:When
108:JSTOR
94:books
613:Size
394:and
352:and
80:news
396:C++
388:int
354:C++
324:In
291:ARM
287:x86
270:).
266:on
238:or
63:by
817::
546:.
528:77
526:.
522:.
495:.
340:.
242:.
202:".
584:e
577:t
570:v
556:.
513:.
392:C
350:C
130:)
124:(
119:)
115:(
105:·
98:·
91:·
84:·
57:.
34:.
23:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.