Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Бағдарламалық жасақтаманы басқа есептеу орталарында жұмыс істеуі үшін бейімдеу процесі. Бағдарламалық инженерияда, порттау – бұл белгілі бір бағдарламаның (осындай орындау үшін) бастапқыда жобаланған ортадан (мысалы, басқа процессор, операциялық жүйе немесе үшінші тараптың кітапханасы) өзгеше есептеу ортасында орындалуын қамтамасыз ету мақсатында бағдарламалық жасақтаманы бейімдеу процесі. Бұл термин бағдарламалық және аппараттық құралдарды түрлі орталарда пайдалануға қолайлы ету үшін өзгерту кезінде де қолданылады. Бағдарламалық жасақтама жаңа платформаға көшірудің құны, оны бастапқыдан жазу құнынан әлдеқайда төмен болса, портативті болып саналады. Бағдарламалық жасақтаманы көшіру құны оның жасалу құнына қарағанда неғұрлым төмен болса, ол соғұрлым портативті деп есептеледі.
Process of adapting software to run in other computing environments
In software engineering, porting is the process of adapting software for the purpose of achieving some form of execution in a computing environment that is different from the one that a given program (meant for such execution) was originally designed for (e. g., different CPU, operating system, or third party library). The term is also used when software/hardware is changed to make them usable in different environments. Software is portable when the cost of porting it to a new platform is significantly less than the cost of writing it from scratch. The lower the cost of porting software relative to its implementation cost, the more portable it is said to be.
Этимология
"Порт" термині латын тіліндегі portāre сөзінен шыққан, ол "тасу" деген мағынаны білдіреді. Код белгілі бір операциялық жүйемен немесе архитектурамен үйлесімсіз болған жағдайда, оны жаңа жүйеге "көшіру" қажет. Бұл термин, әдетте, бір процессор мен операциялық жүйеде бағдарламалық құралды аз жадты пайдаланып жұмыс істеуге бейімдеу процесіне қолданылмайды. Бағдарламалық құралды жасаушылар өздерінің жасаған бағдарламалық құралының портативті екенін жиі айтады, яғни оны жаңа ортаға бейімдеу үшін көп еңбек қажет емес. Бірақ, шын мәнінде қажетті еңбек мөлшері бірнеше факторға байланысты: бастапқы ортаның (көз платформасы) жаңа ортадан (мақсатты платформасы) қаншалықты өзгешелігі, бастапқы авторлардың қандай бағдарламалау тілі құрылымдары мен үшінші тарап кітапханаларын портативті емес екенін білу тәжірибесі, сондай-ақ бастапқы авторлардың тек портативті құрылымдарды пайдалануға жұмсаған еңбегі (платформаға арналған құрылымдар көбінесе арзан шешім ұсынады).
The term "port" is derived from the Latin portāre, meaning "to carry". When code is not compatible with a particular operating system or architecture, the code must be "carried" to the new system. The term is not generally applied to the process of adapting software to run with less memory on the same CPU and operating system. Software developers often claim that the software they write is portable, meaning that little effort is needed to adapt it to a new environment. The amount of effort actually needed depends on several factors, including the extent to which the original environment (the source platform) differs from the new environment (the target platform), the experience of the original authors in knowing which programming language constructs and third party library calls are unlikely to be portable, and the amount of effort invested by the original authors in only using portable constructs (platform specific constructs often provide a cheaper solution).
Тарих
Бүгінгі таңда үстелдерде қолданылатын процессорлар мен операциялық жүйелердің айқын ерекшеленетін саны бұрынғыға қарағанда әлдеқайда аз. x86 архитектурасының үстемдігі, көптеген үстел бағдарламалық жасақтамалардың басқа процессорға портталмауына себеп болады. Осы нарықта операциялық жүйелердің таңдауы үш жүйеге дейін шектелді: Microsoft Windows, macOS және Linux. Дегенмен, кіріктірілген жүйелер мен мобильді нарықтарда тасымалдау маңызды мәселе болып қала береді, ал ARM кеңінен қолданылатын балама болып табылады. ISO сияқты халықаралық стандарттар, порттауды жеңілдетіп, есептеу ортасының егжей-тегжейін нақты көрсетеді, бұл әртүрлі стандарттарға сәйкес келетін платформалар арасындағы айырмашылықтарды азайтуға көмектеседі. Осы стандарттармен белгіленген шектеулерде жұмыс істейтін бағдарламалық жасақтаманы жасау – практикалық, бірақ оңай емес күш-жігерді қажет етеді. Мұндай бағдарламаны екі стандартқа сәйкес платформалар арасында (мысалы, POSIX.1) порттау, көзінің кодын жүктеу және жаңа платформада қайта компиляциялау арқылы жүзеге асырылуы мүмкін. Алайда, тәжірибелі мамандар платформаның ұсақ-түйек айырмашылықтарына байланысты түрлі шағын түзетулер қажет екенін жиі байқайды. Көптеген стандарттарда "сұр аймақтар" бар, онда стандарттарды түсіндірудегі айырмашылықтар платформалар арасында шағын өзгерістерге алып келеді. Порттауды жеңілдету үшін, GNU Compiler Collection сияқты, әртүрлі платформаларда біркелкі бағдарламалау тілдерін ұсынатын және Autotools сияқты, компиляция алдында ортадағы ұсақ өзгерістерді автоматты түрде анықтап, бағдарламалық жасақтаманы сәйкестендіретін құралдардың саны артып келеді. Кейбір жоғары деңгейдегі бағдарламалау тілдерінің компиляторлары (мысалы, Eiffel, Esterel) тасымалдану мүмкіндігін арттыру үшін, бастапқы кодты басқа жоғары деңгейдегі аралық тілде (мысалы, C) шығарады, ал осы тілге көптеген платформалар үшін компиляторлар қолжетімді. Порттаумен байланысты, бірақ одан ерекше екі қызмет – эмуляция және кросс-компиляция.
The number of significantly different CPUs and operating systems used on the desktop today is much smaller than in the past. The dominance of the x86 architecture means that most desktop software is never ported to a different CPU. In that same market, the choice of operating systems has effectively been reduced to three: Microsoft Windows, macOS, and Linux. However, in the embedded systems and mobile markets, portability remains a significant issue, with the ARM being a widely used alternative. International standards, such as those promulgated by the ISO, greatly facilitate porting by specifying details of the computing environment in a way that helps reduce differences between different standards conforming platforms. Writing software that stays within the bounds specified by these standards represents a practical although nontrivial effort. Porting such a program between two standards compliant platforms (such as POSIX.1) can be just a matter of loading the source code and recompiling it on the new platform. However, practitioners often find that various minor corrections are required, due to subtle platform differences. Most standards suffer from "gray areas" where differences in interpretation of standards lead to small variations from platform to platform. There also exists an ever increasing number of tools to facilitate porting, such as the GNU Compiler Collection, which provides consistent programming languages on different platforms, and Autotools, which automates the detection of minor variations in the environment and adapts the software accordingly before compilation. The compilers for some high level programming languages (e. g. Eiffel, Esterel) gain portability by outputting source code in another high level intermediate language (such as C) for which compilers for many platforms are generally available. Two activities related to (but distinct from) porting are emulating and cross compiling.
Видеоойындардың портталуы
Портлау – бұл бір платформада іске қосылуға арналған бейне ойынды басқа платформада іске қосылуы үшін түрлендіру, мүмкін кейбір шағын айырмашылықтармен. Бейне ойындардың пайда болған сәттен бастап 1990 жылдарға дейін «порттар» (сол кезде көбінесе «конверсиялар» деп аталған) көбінесе нағыз порттар емес, әртүрлі жүйелердің шектеулеріне байланысты ойынның қайта жасалған нұсқалары болды. Мысалы, 1982 жылғы The Hobbit ойыны, графикалық кескіндермен толықтырылған мәтіндік оқиға, оның порттары жасалған дербес компьютерлердің әртүрлі түрлерінде әртүрлі графикалық стильдерге ие болды. Дегенмен, көптеген 21-ғасырлық бейне ойындар бағдарламалық жасақтаманы (әдетте C++ тілінде) пайдалана отырып жасалады, ол нақты порттау қажеттілігінсіз бір немесе бірнеше консольдер үшін, сондай-ақ ПК үшін кодты шығара алады (оның орнына жеке компоненттер кітапханаларын жалпы порттауға сүйенеді). Көптеген ерте порттар ойын сапасының маңызды мәселелеріне тап болды, себебі компьютерлердің өнімділігі күрт өзгеше болды. Ричард Гарриот 1984 жылы Origins Game Fair-де Origin Systems компаниясы алдымен Apple II сериясы үшін компьютерлік ойындар жасағанын, содан кейін оларды Commodore 64 және Atari 8 бит компьютерлеріне порттағанын айтты, себебі соңғы машиналардың спрайттары және басқа да күрделі мүмкіндіктері олардан Apple-ге порттауды «әлдеқайда қиын, тіпті мүмкін емес» етеді. Сарапшылар «Apple conversionitis» ауруынан зардап шеккен порттарға шағымданып, Apple-дің «жаман дыбысын және қара, ақ, жасыл, қызғылт түсті графикасын» сақтады; Гарриоттың мәлімдемесінен кейін, Дэн Бантен «Көрермендерден Atari және Commodore қолданушылары, сіздер Apple-дің қайта жасалған нұсқасынан ләззат аласыз ба?» деп сұрағанда, зал «Жоқ!» деп шу шығарды. Гарриотт: «[әйтпесе] Apple нұсқасы ешқашан аяқталмайды. Баспасөз тарапынан қарағанда, бұл ақшаға қатысты тиімсіз». Басқалары басқаша жұмыс істеді. Мысалы, Ozark Softscape, ең алдымен Atari үшін M.U.L.E. ойынын жасады, себебі ол ең озық компьютерлер үшін жасауды жөн көрді, порттау кезінде қажетті функцияларды алып тастады немесе өзгертті. Мұндай саясат әрқашан мүмкін болмады; Бунтен «M.U.L.E. Apple үшін жасалмайды» деп мәлімдеді және «Жеті алтын қала» ойынының Atari емес нұсқалары нашар болды. Compute! журналы 1986 жылы «Atari» компьютерінен «Commodore» компьютеріне порттау кезінде түпнұсқаның көбінесе артық екенін жазды. 1983 жылдың соңында жаңа бағдарламалық жасақтама жасап бастағаннан кейін ойынның сапасы жақсарды, деді журнал. Аркадалық ойындарды порттау кезінде «аркадалық кемелділік» немесе «аркадалық дәлдік» терминдері жиі қолданылды, олар портталған нұсқадағы ойын, графика және басқа да элементтердің аркадалық нұсқаға қаншалықты сәйкес келетінін сипаттау үшін. 1980 жылдардың басындағы көптеген аркадалық порттар аркадалық кемелділіктен алыс болды, себебі үй консольдары мен компьютерлерінде аркадалық ойындардағы күрделі аппараттық жабдықтар болмады, бірақ ойындар әлі де ойын ойнауға жақын бола алды. Атап айтқанда, Atari VCS-дегі Space Invaders өзінің айырмашылықтарына қарамастан консольдің ең танымал ойынына айналды, ал кейінірек Pac Man порты аркадалық нұсқадан ауытқулары үшін танымал болды. Аркадалық дәл ойындар 1990 жылдары үй консольдары аркадалық жүйелердің қуатына жеткеннен кейін кең таралды. Атап айтқанда, SNK-нің Neo Geo жүйесі, көп ойындық аркада жүйесі ретінде ұсынылып, сондай-ақ сол ерекшеліктері бар үй консолі ретінде де ұсынылды. Бұл үйде аркадалық кемелділіктегі ойындарды ойнауға мүмкіндік берді. «Консольдық порт» – бұл бастапқыда консоль үшін жасалған, ал жеке компьютерде ойнауға болатын бірдей нұсқасы жасалмастан бұрын жасалған ойын. Бұл термин ойын қауымдастығында кеңінен қолданылады. Ойынды консольдан ПК-ға порттау процесі көбінесе компьютерлердің жалпы алғанда аз пайдаланылатын жоғары өнімділік деңгейіне байланысты теріс қабылданады, ішінара консоль аппараттары олардың жұмыс істеу кезеңінде (ойын консольдық ерекшеліктері үшін жасалғандықтан) бекітіледі, ал ПК-лер аппараттық жабдықтың дамуымен күшейеді, сонымен қатар портталған ойындар кейде ПК-ге нашар оптимизацияланады немесе асығыс портталады. Жалпы алғанда ұқсас болғанымен, консольдегі біріктірілген жадты пайдалану сияқты архитектуралық айырмашылықтар болуы мүмкін.
Porting is also the term used when a video game designed to run on one platform, be it an arcade, video game console, or personal computer, is converted to run on a different platform, perhaps with some minor differences. From the beginning of video games through to the 1990s, "ports", at the time often known as "conversions", were often not true ports, but rather reworked versions of the games due to the limitations of different systems. For example, the 1982 game The Hobbit, a text adventure augmented with graphic images, has significantly different graphic styles across the range of personal computers that its ports were developed for. However, many 21st century video games are developed using software (often in C++) that can output code for one or more consoles as well as for a PC without the need for actual porting (instead relying on the common porting of individual component libraries). Many early ports suffered significant gameplay quality issues because computers greatly differed. Richard Garriott stated in 1984 at Origins Game Fair that Origin Systems developed computer games for the Apple II series first then ported them to Commodore 64 and Atari 8 bit computers, because the latter machines' sprites and other sophisticated features made porting from them to Apple "far more difficult, perhaps even impossible". Reviews complained of ports that suffered from "Apple conversionitis", retaining the Apple's "lousy sound and black white green purple graphics"; after Garriott's statement, when Dan Bunten asked "Atari and Commodore people in the audience, are you happy with the Apple rewrites?" the audience shouted "No!" Garriott responded, "[otherwise] the Apple version will never get done. From a publisher's point of view that's not money wise". Others worked differently. Ozark Softscape, for example, wrote M. U. L. E. for the Atari first because it preferred to develop for the most advanced computers, removing or altering features as necessary during porting. Such a policy was not always feasible; Bunten stated that "M. U. L. E. can't be done for an Apple", and that the non Atari versions of The Seven Cities of Gold were inferior. Compute! 's Gazette wrote in 1986 that when porting from Atari to Commodore the original was usually superior. The latter's games' quality improved when developers began creating new software for it in late 1983, the magazine stated. In porting arcade games, the terms "arcade perfect" or "arcade accurate" were often used to describe how closely the gameplay, graphics, and other assets on the ported version matched the arcade version. Many arcade ports in the early 1980s were far from arcade perfect as home consoles and computers lacked the sophisticated hardware in arcade games, but games could still approximate the gameplay. Notably, Space Invaders on the Atari VCS became the console's killer app despite its differences, while the later Pac Man port was notorious for its deviations from the arcade version. Arcade accurate games became more prevalent starting in the 1990s as home consoles caught up to the power of arcade systems. Notably, the Neo Geo system from SNK, which was introduced as a multi game arcade system, and would also be offered as a home console with the same specifications. This allowed arcade perfect games to be played at home. A "console port" is a game that was originally made for a console before an identical version is created which can be played on a personal computer. This term has been widely used by the gaming community. The process of porting a game from a console to a PC is often regarded negatively due to the higher levels of performance that computers generally have being underutilized, partially due to console hardware being fixed throughout their run (with games being developed for console specs), while PCs become more powerful as hardware evolves, but also due to ported games sometimes being poorly optimized for PCs, or lazily ported. While broadly similar, architectural differences may exist such as the use of unified memory on a console.